(一)软件工程概述
1.计算机软件【分类】(十大类)
系统软件、应用软件(解决特定业务需要的独立应用程序)
工程/科学软件、嵌入式软件(控制面向最终使用者和系统本身的特征和功能)
产品线软件(多个不同用户的使用提供特定的功能)、web应用(计算机网络为中心 )
人工智能软件、开放计算(无线网络)、
网络资源、开源软件(开放系统引用程序的代码)
2.【软件工程基本原理】
(1)用分阶段的生命周期计划严格管理
(2)坚持进行阶段评审
(3)实现严格的产品控制
(4)采用现代程序设计技术
(5)结果能清楚地审查
(6)开发小组的人员应少而精(开发小组人为N时,可能通信通道为N(N-1)/2,人数增大,通信开销增大)
(7)承认不断改进软件工程的必要性
3.【软件的生命周期】
软件生命周期(&主要目标) | 参加人员(&主要文档) |
---|---|
可行性分析与项目开发计划 (软件开发目标及可行性) | 用户、项目负责人、系统分析师(可行性分析报告、项目开发计划) |
需求分析(软件系统的功能、性能、数据和界面要求,逻辑模型) | 用户、项目负责人、系统分析师(软件需求说明书) |
概要设计(各项功能需求转换成需要的体系结构,模块、数据库) | 系统分析师、软件设计师(概要设计说明书) |
详细设计(对每个模块完成的功能进行具体描述) | 软件设计师和程序员(详细设计文档) |
编码 | – |
测试(另一部门的软件设计师或系统分析师 ) | 软件测试计划、测试用例、软件测试报告 |
维护(时间最长) | – |
4.成熟度模型(CMM)
确定当前成熟度并识别对其团建过程执行中的【薄弱】环节,确定对软件质量和过程改进最为【关键】的几个问题,从而形成对其过程的【改进】策略。
【5个级别】
(1)初始级(杂乱无章)
(2)可重复级(建立了基本的项目管理过程和实践来跟【踪项目费用】、进度和功能特性)
(3)已定义级(管理和工程已经【文档化】、标准化,并综合成软件开发组织的标准过程)
(4)已管理级(制定了软件过程和产品质量的【详细度量标准】,产品质量被开发组织的成员所理解和控制 )
(5)优化级(加强了定量分析,通过来自过程质量【反馈】和【新概念】、新技术的反馈过程持续改进)
5.【CMMI】6个过程能力等级
CL0(未完成的) :过程域未执行或未得到CL1中定义的所有目标
CL1(已执行的):将可标识的【输入】工作产品转换成可标识的【输出】工作产品
CL2(已管理的):管理过程的【制度化】,文档、工作计划,监控、控制、评审
CL3(已定义的):已定义过程的制度化,按组织剪裁指南从组织标准中剪裁,收集过程资产过程度量
CL4(定量管理的):可定量管理的制度化,使用测量和质量保证来控制和改进过程域,建立管理准测
CL5(优化的):使用【量化】手段改变和优化过程域,满足客户要求的改变和持续改进的计划
(二)软件过程模型
1.软件过程模型
模型 | 优缺点 |
---|---|
瀑布模型(由前至后、相互衔接的固定次序) |