软件工程诞生原因
了解
- 早期的软件:主要是指采用个体工作方式实现的程序。
- 第一次软件危机:20世纪60年代中期
- 典型表现有软件质量低下、项目无法如期完成、项目严重超支等因为软件而导致的重大事故时有发生。
- 软件工程的诞生:1968年在NATO会议上提出对软件危机的解决方法“软件工程”
- 软件工程的基本要素:方法、工具、过程。
软件工程基本原理
- 用分阶段的生命周期计划严格管理
- 坚持进行阶段评审
- 实现严格的产品控制
- 采用现代程序设计技术
- 结果应能清楚地审查
- 开发小组的人员应少而精
- 承认不断改进软件工程实践的必要性
软件生存周期
- 可行性分析与项目开发计划
- 目标:确定软件开发目标及其可行性
- 输出:可行性分析报告、项目开发计划
- 需求分析
- 目标:确定软件系统要做什么,以及它的
功能、性能、数据和界面等要求,
从而确定系统的逻辑模型。 - 输出:软件需求说明书
- 目标:确定软件系统要做什么,以及它的
- 概要设计
- 目标:明确软件中的模块、模块的层次
结构、模块的调用关系和功能。
明确数据库结构 - 输出:慨要设计说明书
- 目标:明确软件中的模块、模块的层次
- 详细设计
- 目标:明确模块的控制结构
- 输出:详细设计说明书
- 编码
- 目标:将过程描述转变为程序代码
- 输出:某种特定语言的源代码
- 测试
目标:保证软件质量
输出:软件测试计划、测试用例、软件测试报告 - 维护
能力成熟度模型-CMM
重点考各个等级的描述,死记硬背
能力等级 | 特点 | 关键过程区域 |
---|---|---|
初始级 | 软件过程的特点是杂乱无章,有时甚至很混乱,几乎没有明确定义的步骤,项目的成功完全依赖个人的努力和英雄式核心人物的作用。 | |
可重复级 | 建立了基本的项目管理过程和实践来跟踪项目费用、进度和功能特性,有必要的过程准则来重复以前在同类项目中的成功。 | |
已定义级 | 管理和工程两方面的软件过程已经文档化、标准化,并综合成整个软件开发组织的标准软件过程。所有项目都采用根据实际情况修改后得到的标准软件过程来开发和维护软件。 | |
已管理级 | 制定了软件过程和产品质量的详细度量标准。软件过程的产品质 | |
量都被开发组织的成员所理解和控制。 | ||
优化级 | 加强了定量分析,通过来自过程质量反馈和来自新观念、新技术的反馈使过程能不断持续地改进。 |
能力成熟度模型-MMI
- 能力成熟度模型集成-CMMI
是若干过程模型的综合和改进,不仅仅是软件,而是支持多个工程学科和领域的、系统的、一致的过程改进框架,能适应现代工程的特点和需要,能提高过程的质量和工作效率。 - CMMI两种表示方法:
- 阶段式模型:类似于CMM,它关注组织的成熟度。
- 连续式模型:关注每个过程域的能力,一个组织对不同的过程域可以达到不同的过程域能力等级。
- 阶段式模型成熟度等级描述如下:
能力等级 | 特点 | 关键过程区域 |
---|---|---|
初始级 | 过程不可预测且缺乏控制 | |
已管理级 | 过程为项目服务 | 需求管理、项目计划、配置管理、项目监督与控制、供应商合同管理、度量和分析、过程和产品质量保证 |
已定义级 | 过程为组织服务 | 需求开发、技术解决方案、产品集成、验证、确认组织级过程焦点、组织级过程定义、组织级培训、集成项目管理、风险管理、集成化的团队、决策分析和解决方案、组织级集成环境 |
定量管理 | 过程已度量和控制 | 组织过程性能、定量项目管理 |
优化级 | 集中于过程改进和优化 | 组织级改革和实施、因果分析和解决方案 |
练习题
(2022年真题)以下关于软件维护的叙述中,正确的是()。
A.工作量相对于软件开发而言要小很多
B.成本相对于软件开发而言要更低
C.时间相对于软件开发而言通常更长
D.只对软件代码进行修改的行为
答案C
在整个软件生成周期中,运维的时间是最长的,有的长达十几年一直在运维中。
(2009年真题)软件能力成熟度模型(CMM)的第4级(已管理级)的核心是()。
A.建立基本的项目管理和实践来跟踪项目费用、进度和功能特性
B.组织具有标准软件过程
C.对软件过程和产品都有定量的理解和控制
D.先进的新思想和新技术促进过程不断改进
答案C
在CMM的不同等级有不同的核心。在可重复级,建立了基本的项目管理过程和实践来跟踪项目费用、进度和功能特性。在已定义级,所有项目都采用根据实际情况修改后得到的标准软件过程来开发和维护软件。在已管理级,收集对软件过程和产品质量的详细度量,对软件过程和产品都有定量的理解与控制。在优化级,过程的量化反馈和先进的新思想、新技术促使过程不断改进。