软件工程的基本原理:用分阶段的生命周期计划严格管理、坚持进行阶段评审、实现严格的产品控制、采用现代程序设计技术、结果应能清除的审查、开发小组的人员应少而精、承认不断改进软件工程事件的必要性。
软件工程的基本要素:方法、工具、过程
软件生存周期:可行性分析与项目开发计划、需求分析分析、概要设计(选择系统解决方案,规划子系统)、详细设计(设计子系统内部具体实现)、编码、测试、维护
1.信息系统生命周期
系统规划阶段:任务是对组织的环境、目标及现行系统的状况进行初步调查,根据组织目标和发展战略确定信息系统的发展战略,对建设新系统的需求做出分析和预测,同时考虑建设新系统所受的各种约束,研究建设新系统的必要性和可能性。根据需要与可能,给出制建系统的备选方案。
输出:可行性研究报告、系统设计任务书
系统分析阶段:任务是根据系统设计任务书所确定的范围,对现行系统进行详细调查,描述现行系统的业务流程,指出现行系统的局限性和不足之处,确定新系统的基本目标和逻辑功能要求,即提出新系统的逻辑模型。系统分析阶段又称为逻辑设计阶段(逻辑模型)。这个阶段是整个系统建设的关键阶段,也是信息系统建设与一般工程项目的重要区别所在
输出:系统说明书(需求规格说明书)
系统设计阶段:系统分析阶段的任务是回答系统 “做什么” 的问题,而系统设计阶段要回答的问题是 “怎么做”。该阶段的任务是根据系统说明书中规定的功能要求,具体设计实现逻辑模型的技术方案,也就是设计新系统的物理模型。这个阶段又称为物理设计阶段(物理模型),可分为总体设计《概要设计》和详细设计两个子阶段。
输出:系统设计说明书(概要设计、详细设计说明书)
系统实施阶段:是将设计的系统付诸实施的阶段。这一阶段的任务包括计算机等设备的购置、安装和调试、程序的编写和调试、人员培训、数据文件转换、系统调试与转换等。这个阶段的特点是几个互相联系、互相制约的任务同时展开,必须精心安排、合理组织系统实施是按实施计划分阶段完成的,每个阶段应写出实施进展报告。系统测试之后写出系统测试分析报告。
输出:实施进展报告、系统测试分析报告
系统运行与维护阶段:系统投入运行后,需要经常进行维护和评价,记录系统运行的情况,根据一定的规则对系统进行必要的修改,评价系统的工作质量和经济效益
2.能力成熟度模型
能力成熟度模型CMM
能力等级 | 特点 | 关键过程区域 |
初始级(Initial) | 软件过程的特点是杂乱无章,有时甚至很混乱,几乎没有明确定义的步骤,项目的成功完全依赖个人的努力和英雄式核心人物的作用 |
|
可重复级(Repeatable) | 建立了基本的项目管理过程和实践来跟踪项目费用、进度和功能特性,有必要的过程准则来重复以前在同类项目中的成功 |
软件配鲁管理。软件质量保证、软件子合同管理、软件项目跟踪与监督、软件项目策划、软件需求管理 |
已定义级(Defined) | 管理和工程两方面的软件过程已经文档化、标准化,并综合成整个软件开发组织的标准软件过程。所有项目都采用根据实际情况修改后得到的标准软件过程来开发和维护软件 |
同行评审、组间协调、软件产品工程、集成软件管理、培训大纲组织过程定义、组织过程集点 |
已管理级(Managed) | 制定了软件过程和产品质量的详细度量标准。对软件过程和产品质量有定量的理解和控制 |
软件质量管理和定量过程管理 |
优化级(Optimized) | 加强了定量分析,通过来自过程质量反馈和来自新观念、新技术的反馈使过程能不断持续地改进 | 过程更改管理、技术改革管理和缺陷预防 |
能力成熟度模型集成CMMI
是若干过程模型的综合和改进,不仅仅软件,而是支持多个工程学科和领域的、系统的、一致的过程改进框架,能适应现代工程的特点和需要,能提高过程的质量和工作效率
CMMI两种表示方法:
(1) 阶段式模型:类似于CMM,它关注组织的成熟度,五个成熟度模型如下:
能力等级 | 特点 | 关键过程 |
初始级 | 过程不可预测且缺乏控制 | |
已管理级 | 过程为项目服务 | 需求管理、项目计划、配置管理、项目监督与控制、供应商合同管理、度量和分析、过程和产品质量保证 |
已定义级 | 过程为组织服务 | 需求开发、技术解决方案、产品集成、验证、确认组织级过程焦点、组织级过程定义、组织级培训、集成项目管理、风险管理、集成化的团队、决策分析和解决方案、组织级集成环境 |
定量管理 | 过程已度量和控制 | 组织过程性能、定量项目管理 |
优化级 | 集中于过程改进和优化 | 组织级改革与实施、因果分析和解决方案 |
(2).连续式模型:关注每个过程域的能力,一个组织对不同的过程域可以达到不同的过程域能力等级。
【例题】( ) 是系统分析阶段结束后得到的工作产品,( )是系统测试阶段完成后的工作产品
A.系统设计规格说明 B.系统方案建议书 C.程序规格说明 D.单元测试数据
A.验收测试计划 B.测试标准 C.系统测试计划 D.操作手册
答案:B D
【例题】以下关于CMM的叙迷中,不正确的是 ()。
A、CMM是指软件过程能力成熟度模型
B、CMM根据