【笔记】软件与软件工程浅谈

来源:互联网 发布:网络kvm 编辑:程序博客网 时间:2024/06/05 11:46

  • 一软件的本质
    • 软件的本质
    • 软件的应用领域
    • 软件的变更本质
  • 二软件工程
    • 软件工程学科的定义
    • 软件过程
      • 过程框架
      • 普适性活动
      • 过程的适应性调整
    • 软件工程实践
      • 实践的精髓
      • 通用原则

一、软件的本质

1.软件的本质

  • 软件定义
    1. 指令的集合(计算机程序),通过执行这些指令可以满足预期的特性、功能和性能需求;
    2. 数据结构,使得程序可以合理利用信息;
    3. 软件描述信息,它以硬拷贝和虚拟形式存在,用来描述程序的操作和使用。
  从理论上说,软件的失效率曲线应该呈现为如下所示的“理想曲线”。未知的缺陷将在程序生命周期的造成的高失效率,然而随着错误的纠正,曲线将如图中所示趋于平缓。软件不会磨损,但是软件退化的确存在。在完整的生命周期里,软件将会面临变更,每次变更都可能引入新的错误,使得失效率像“实际曲线”那样陡然上升。可以说,**不断的变更是软件退化的根本原因**。![软件失效曲线图](http://img.blog.csdn.net/20171007195853394?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2J3ZW0=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)

2.软件的应用领域

计算机软件可分为七个大类:

系统软件——整套服务于其他程序的程序。
应用软件——解决特定业务需要的独立应用程序。
工程/科学软件——“数值计算”类程序涵盖了防范的应用领域。
嵌入式软件——嵌入式软件存在与某个产品或者系统中,可实现和控制面向最终用户和系统本身的特性和功能。
产品线软件——为多个不同用户的使用提供特定功能。
人工智能软件——利用非数值算法解决计算和直接分析无法解决的复杂问题。

3.软件的变更本质

四大类软件不断演化,在行业中占有主导地位。
  • WebApp
  • 移动App
  • 云计算
  • 产品线软件

二、软件工程

软件工程的必要性:

1. 在确定软件方案之前,需要共同努力来理解问题
2. 设计已经成为关键活动
3. 软件应该具有高质量
4. 软件需要具备可维护性

1.软件工程学科的定义

  软件工程:(1)将系统化的、规范的、可量化的方法应用于软件的开发、运行和维护,即将工程化方法应用于软件;(2)对(1)中所述方法的研究。

  软件工程是一种层次化的技术,支持软件工程的根基在于质量关注点
  软件工程的基础是过程层。软件过程将各个技术层次结合在一起,使得合理、及时地开发计算机软件成为可能。
  软件工程方法为构建软件提供技术上的解决方法(如何做)。包括沟通、需求分析、涉及建模、程序构造、测试和技术支持。
  软件工程工具为过程和方法提供自动化或半自动化的支持。

2.软件过程

  软件过程是工作产品构建时所执行的一些列活动、 动作和任务的集合。活动主要实现宽泛的目标。动作包含了主要工作产品生产过程中的一系列任务。任务关注小而明确的目标,能够产生实际产品。

过程框架

  过程框架定义了若干个框架活动,为实现完整的软件工程过程建立了基础。一个通用的软件工程过程框架通常包含以下5个活动:

  • 沟通
  • 策划
  • 建模
  • 构建
  • 部署

普适性活动

  软件工程过程框架活动由很多普适性活动来补充实现。通常,这些普适性活动贯穿软件项目始终,以帮助软件团队管理和控制项目进度、质量、变更和风险。典型的普适性活动包括如下活动:

  • 软件项目跟踪和控制
  • 风险管理
  • 软件质量保证
  • 技术评审
  • 测量
  • 软件配置管理
  • 可复用管理
  • 工作产品的准备和生产

过程的适应性调整

  软件工程过程不是教条的法则,也不要求软件团队机械地去执行;而应该是灵活可适应的(根据软件所需解决的问题、项目特点、开发团队和组织文化等进行适应性的调整)。

3.软件工程实践

  通用的框架活动——沟通、策划、建模、构建和部署——和普适性活动构成了软件工程工作的体系结构的轮廓。

实践的精髓

软件工程实践的精髓:

1.理解问题(沟通和分析)。
2.策划解决方案(建模和软件设计)。
3.实施计划(代码生成)。
4.检查结果的正确性(测试和质量保证)。

通用原则

  第1原则:存在价值
  第2原则:保持简洁
  第3原则:保持愿景
  第4原则:关注使用者
  第5原则:面向未来
  第6原则:提前计划复用
  第7原则:认真思考