Skip to content
难度基础(★)
建议时长45分钟

7.1.1 软件工程概述

本课核心知识点整理
本课核心知识点手绘流程图(SVG)

这一节不是孤立概念,而是整章地图

软件工程这一章会一路讲到开发模型、需求分析、系统设计、软件测试、维护、文档和质量保证。开头这节的价值,是先建立一条主线:软件系统从立项到退役,会经历一组相对稳定的活动;不同开发模型只是把这些活动用不同方式组织起来。

课堂特别说明:软件基本生命周期本身在考试中未必直接出成一道“背定义”的题,但后面所有知识点几乎都依附于这条主线。因此这一节要学成“导航图”,而不是只背一句软件工程定义。

软件工程解决什么问题

软件工程的核心是用工程化方法开发和维护软件,让复杂软件项目变得可计划、可控制、可验证、可维护。

没有工程化时的问题软件工程的回应
需求说不清,做到一半反复变需求获取、需求分析、需求管理
项目凭经验推进,进度不可控项目计划、过程模型、里程碑和评审
代码能跑但结构混乱概要设计、详细设计、模块化和架构设计
缺陷到上线后才暴露单元测试、集成测试、系统测试、验收测试
交付后无法演化维护、文档、配置管理、质量保证

软件工程不是“写代码的高级说法”。编码只是生命周期中的一个阶段,前面有需求和设计,后面有测试、部署、运行维护和退役。

本章的学习路线

生命周期主线过程模型瀑布/增量需求分析做什么系统设计怎么做测试维护验证演化

从“软件产品”到“信息系统”

早期更常说“软件产品”,因为规模可能较小,一个程序、一个工具就能描述主要对象。现在更常说“信息系统开发”,因为软件往往与业务流程、数据库、网络、权限、运维、组织管理绑在一起。

视角关注点
软件产品程序功能、代码实现、版本发布
信息系统业务流程、用户角色、数据、接口、部署、运维

这也是为什么系统开发不可能只从编码开始:用户需求要被转换为系统功能,系统功能要被设计成模块和接口,最后才进入实现和测试。

本章考试重点预告

内容考试倾向
基本生命周期常作为后续知识的背景,不一定直接考定义
软件过程与过程改进CMM、CMMI 等级名称和关键描述需要匹配
开发模型瀑布、V、原型、螺旋、增量、喷泉、UP、敏捷是高频辨析
需求、设计、测试常考阶段任务、工具、分类和概念边界

例题

单选
软件工程更准确的含义是:
单选
软件基本生命周期在本章中的作用是:

自查要点

  1. 为什么软件工程不等于编程?
  2. 生命周期为什么是第 7 章的主线?
  3. 软件产品和信息系统开发的关注点有什么不同?
  4. 工程化方法主要解决哪些不可控问题?
  5. 本章后续哪些内容会依附生命周期展开?