要点:
- 程序:按实现设计的功能和性能需求执行的指令序列。
- 数据结构:程序正常操纵信息的数据结构。
- 文档:与程序开发、维护和使用有关的图文材料。
软件的特点 VS 硬件
- 软件无磨损,抽象的、潜能不受物理因素的限制。
- 软件易修改,因此也容易变得复杂。
软件工程发展历史
程序设计阶段
背景:1946 年世界上第一台计算机诞生。
特点:
- 硬件处理能力弱,软件规模小。
- 软件设计采用机器代码和汇编语言。
- 个人编写代码。
- 程序设计 = 数据结构 + 算法,着重编程技巧。
软件工程阶段
背景:
- 大容量、高速度计算机的出现。
- 高级语言,操作系统和数据库管理系统的诞生。
特点:软件危机
- 硬件处理能力大幅度提升,软件规模越来越大,复杂度越来越高。
- 软件开发进度失控、费用失控。
- 软件的可靠性和可维护性低。
解决:向传统工业学习工程经验,创建出属于自己的工程——软件工程。
软件工作:需求分析,代码编写,测试,维护。
软件评估:可读性、可理解性、可测试性、易修改性。
软件过程阶段
背景:
- 互联网的广泛应用。
- 市场在变,需求在变,技术在变。
软件工作:流程活动 + 流程活动各要素(人员、方法、产品等)
软件评估:多目标函数(软件质量,开发效率,开发成本)
什么是软件工程
我的理解是:遵循一系列规范,按照适当的方法开发出符合需求的、可维护的、可升级的软件系统。