要点:

  • 软硬件区别
  • 软件危机
  • 软件工程概念
  • 软件本质(要能甄别)

    软件概念

    软件的本质

    软件 = 程序 + 数据结构 + 文档
  1. 程序:按实现设计的功能和性能需求执行的指令序列。
  2. 数据结构:程序正常操纵信息的数据结构。
  3. 文档:与程序开发、维护和使用有关的图文材料。

软件的特点 VS 硬件

  1. 软件无磨损,抽象的、潜能不受物理因素的限制。
  2. 软件易修改,因此也容易变得复杂。

软件工程发展历史

分为 3 个阶段:程序设计阶段,软件工程阶段,软件过程阶段

程序设计阶段

背景:1946 年世界上第一台计算机诞生。
特点:

  1. 硬件处理能力弱,软件规模小。
  2. 软件设计采用机器代码和汇编语言。
  3. 个人编写代码。
  4. 程序设计 = 数据结构 + 算法,着重编程技巧。

软件工程阶段

背景:

  1. 大容量、高速度计算机的出现。
  2. 高级语言操作系统数据库管理系统的诞生。

特点:软件危机

  1. 硬件处理能力大幅度提升,软件规模越来越大,复杂度越来越高。
  2. 软件开发进度失控、费用失控。
  3. 软件的可靠性和可维护性低。

解决:向传统工业学习工程经验,创建出属于自己的工程——软件工程。
image.png
软件工作:需求分析,代码编写,测试,维护。
软件评估:可读性、可理解性、可测试性、易修改性。

软件过程阶段

背景:

  1. 互联网的广泛应用。
  2. 市场在变,需求在变,技术在变。

软件工作:流程活动 + 流程活动各要素(人员、方法、产品等)
软件评估:多目标函数(软件质量,开发效率,开发成本)

什么是软件工程

我的理解是:遵循一系列规范,按照适当的方法开发出符合需求的、可维护的、可升级的软件系统。