软件过程模型
可行性分析与项目开发计划:可行性分析报告、项目开发计划
需求分析:软件需求说明书
概要设计:概要设计说明书
详细设计:详细设计文档
编码:源程序清单
测试:软件测试计划、测试用例、报告
维护:更正性维护、适应性维护、预防性维护、完善性维护(就(纠)是(适)鱼(预)丸(完))
能力成熟度模型
(1)阶段式模型
成熟度等级 |
过程域 |
初始级 |
杂乱无章、混乱,无明确定义步骤。 |
已管理级 |
建立了基本的项目管理过程,为项目服务。需求管理,项目计划,项目监督与控制、供应商合同管理、度量与分析、过程和产品质量保证。 |
已定义级 |
过程已经文档化、标准化,为组织服务。需求开发、技术解决方案、产品集成,验证、确认、组织级过程焦点、组织级过程定义、组织级培训、集成项目经理、风险管理、集成化的团队、决策分析和解决方案、组织集成环境。 |
定量管理级 |
过程已度量和控制。组织过程性能、定量项目管理。 |
优化级 |
集中于过程改进。组织级改革与实施、因果分析和解决方案。 |
(2)连续式模型
连续式分组 |
过程域 |
过程管理 |
组织级过程焦点、组织级过程定义、组织级培训、组织级过程性能、组织级改革与实施。 |
项目管理 |
项目计划、项目监督与控制、供应商合同管理、集成项目管理、风险管理、集成化的团队、定量项目管理。 |
工程 |
需求管理、需求开发、技术解决方案、产品集成、验证、确认。 |
支持 |
配置管理、度量和分析、过程和产品质量保证、决策分析和解决方案、组织级集成环境、因果分析和解决方案。 |
软件过程模型
(1)瀑布模型
适用于需求明确,要求文档标准。
(2)V模型
强调测试的重要性。
(3)增量模型
先开发核心必要模块。
(4)演化模型(原型模型、螺旋模型)
适用于需求不明确。
(5)喷泉模型
适用于面向对象开发。
(6)基于构件的开发模型
强调软件复用。
(7)螺旋模型
(a)指定计划。
(b)风险分析
(c)实施工程
(d)用户评估
强调风险控制,适合大项目开发。
(8)统一过程RUP/UP
适用于用例和风险驱动,以架构为中心,迭代并且增量。
技术阶段 |
内容与产品 |
起始阶段 |
确定项目范围、边界。产生构想文档、初始用例模型、初始项目术语、初始业务用例、初始风险评估、项目计划、业务模型等。 |
精化阶段 |
建立架构选择构件,淘汰最高风险因素。 |
构建阶段 |
完成架构开发并进行测试。 |
交付阶段 |
将软件交付给用户群体,产品有β测试。 |
软件开发方法
结构化方法:瀑布模型。
4大价值观:沟通、简单、反馈、勇气(拥抱变更)。
结构化设计
项目管理
五大过程组、十大知识域、47个子过程。
风险显露度
RE=P*C
P是风险发生的概率,C是风险发生时带来的项目成本。
风险的成本估算完成后,可以针对风险表中的每个风险计算其风险曝光度。某软件小组计划项目中采用60个可复用的构件,每个构件平均是100LOC,每个LOC的成本是13元人民币。下面是该小组定义的一个项目风险:
1、风险识别:预定要复用的软件构件中只有60%将被集成到应用中,剩余功能必须定制开发。
2、风险概率:50%。
3、该项目风险的风险曝光度()
解析:风险曝光度,测量的是资产的整个安全性风险,它将表示实际损失的可能性与表示大量可能损失的资讯结合到单一数字评估中。在形式最简单的定量性风险分析中,风险曝光度可透过将风险可能性及影响相乘算出。
风险曝光度(risk exposure)=错误出现率(风险出现率)*错误造成损失(风险损失)风险识别
该风险可能发生概率为50%。所以该项目风险的风险曝光度是(60*100*13)*(1-60%)*50%=15600。
甘特图
PERT图
某软件项目的活动图如下图所示,其中顶点表示项目里程碑,连续顶点的边表示包含的活动,边上的数字表示相应的活动持续时间(天),则完成该项目的最少时间为()天。活动BC和BF最多可以晚()天而不会影响项目的进度。
解析:关键路径ABDGFJ和ABCEFJ,工期18天。
关键路径上的总时差为0,即BC总时差0,BF总时差7。
McCabe环路复杂度
采用McCabe度量法计算下图所示程序的环路复杂度()。
解析:公式V(G)=m-n+2,m为弧度,n为节点数量。
11-10+2=3