第2章软件质量体系
2.1 软件能力成熟度模型:cmm
cmm为企业的软件过程能力提供了一个阶级式的进化框架,接替工五级。
第一级:初始级,第二级:可重复级;第三极:已定义级;第四级:受管理级; 第五级:优化级;
第二级:可重复级;第三极:已定义级;第四级:受管理级;第五级:优化级;
初始级:工作方式处于救火状态,不断的应对突如其来的危机;
工作组:软件开发组,工程组;
需要建立项目过程管理,建立各种计划,开展qa活动;
2.2可重复级
人们总结出软件开发的首要问题不是技术问题而是管理问题。因此第二级的焦点集中在软件管理过程上,一个可管理的过程则是一个可重复的过程,可重复的过程才能逐渐改进和成熟。可重复级的管理过程包括需求管理,项目管理,质量管理,配置管理和子合同管理5个方面
关注点:引入需求管理,项目管理,质量管理,配置管理,子合同管理;
引入工作组:测试组,评估组,质量保证组,配置管理组,合同组,文档支持组,培训组;
2.3 在可重复级定义了管理的基本过程,而没有定义执行的步骤标准。在第三极则要求制定企业范围的工程化标准,并将这些标准集成到企业软件开发标准过程中去,所有开发的项目需求根据这个标准过程,剪裁出与项目适宜的过程,并且按照过程执行,过程的裁剪不是随意的,在使用前必须经过企业有关人员的批准。
关注点:文档化,标准的一致化;软件过程标准话文档化,质量可以得到控制;工作组:sepg软件评估组。提高:对软件过程定量分析,加强质量管理。
第三章 软件的生命周期
3.1 需求管理:
需求应当具备一下特点:
完整性:每一项需求都必须将所要实现的功能描述清楚,以使开发人员获得设计和实现这些功能所需的所有必要信息。
正确性:每一项需求都必须准确滴陈述其要开发的功能。
一致性:一致性是指与其它软件需求或者高层需求不相矛盾。
可行性:每一项需求都必须是在已知系统和环境的权能和限制范围内可以实施的。
无二义性:对所有需求说明的读者都只能有一个明确统一的解释,由于自然语言极易导致二义性,所以尽量巴
每项需求用简洁明了的用户性的语言表达出来。
致二义性:所以尽量巴每项需求用简洁明了的用户性的语言表达出来。
健壮性:需求的说明中是否对可能出现的异常进行分析,并且对这些异常进行了容错出来。
必要性:可以理解为每项需求都是用来授权你编写文档的根源,要使每项需求都能回溯至某项客户的输入,如use case或者别的来源。
可测试性:每项需求都能通过设计测试用力或者其他的验证方法来进行测试。
可修改性:每项需求只应该在srs中出现一次,这样更改时易于保持一致。另外,使用目录表,索引和相互参照列表方法将使软件需求规格说明书更容易修改。
可跟中性:应能在每项软件需求与他的根源和设计元素,源代码,测试用例之间建立起连接连,这种可跟踪要求每项需求以一种结构化的,粒度好的方式编写单独标明,而不是大段大段的叙述。
3.2需求建模
需求的建模包括巴需求转换成图形模型或者形式语言模型。需求的图形化分析模型包括数据流图,实体关系图,状态转换图,对话图,和类图,这些图形化模型一般都需要借助一定的工具,选择好的分析工具应该有助于获得需求质量特性,包括有效性一致性可靠性 可存活性可用性 正确性 可维护行 可测试性 可扩展性 可交互性 可重用性 可携带x带性等。
3.3审查
需求必须经过产品经理,软件经理 系统测试组,软件工程组,系统工程组,质量保障组,软件配置管理组,文档支持组等小组审查。
通过静态手工方法进行需求测试中最常用的手段是同行评审。
3.4执行
建议需求文档,分配需求文档 修改需求。
需求的管理需求在应用领域和软件工程方面经验比较丰富的人来担任。
建议使用配套的需求管理工具
除了建立相关的文档,还需要对所有软件工程组人员进行项目应用领域的培训。
3.5需求变更
变更审查:
变更对现有约定的影响;
提出需求变更引起的后续软件活动变更,评估风险,建立文档,全程跟踪。
3.6交付工件
程序陈述和需求说明书;
需求文档的分类:用户需求cr,技术需求tr,项目需求pr;
需求的状态:已批准已分配已实现。。
3.7 软件项目计划
为软件工程的运作和软件项目获得的管理提供合理的基础和可行的工作计划。
3.8 设计阶段
包括功能的描述和设计
交付工件:设计说明书和功能说明书
3.9编码阶段
包括实施源代码,对目标代码进行单元测试
交付工件:软件,文档和产品信息
3.91 核实阶段
包括各种测试行为
第二节 软件开发过程中常见的问题
需求说明差
不切合实际的时间表
测试不充分
不断的增加功能
交流问题
第三节 流程中的组及工作
3.31 流程中的组
系统分析人员
提出测试需求并跟中,确定测试的对象/方法和范围。
软件开发人员
提供开发计划sdp,参与制定和评审测试计划;
提供软件功能需求规格/需求分析/测试建议等文档,参与制定和评审测试方案和案例;
响应测试需求,跟踪解决缺陷。
配置管理人员
对测试文档测试代码及相关配置项进行配置管理。
质量保证人员
质量保证,参与相关评审,由于质量保证和测试关系比较密切,多谢一点
保障软件组织流程体系得到遵守,促使软件组织过程改进,指导项目实施流程,增加卡发货的透明度,评审项目活动,审核工作产品,协助工作产品问题解决,度量数据采集,分析,提供决策参考,进行缺陷预防,实现质量目标。
组织和协调产品开发组对标内部的软件技术和开发标准,流程的培训和教育。
部门的和特定的产品的软件开发过程量,以及软件产品质量的度量
指出产品开发过程中应该准寻的有关软件开发的标准和流程,并监督开发过程标准和流程的符合度。
软件质量管理,采用inspection review audit技术
通过软件开发流程及标准的推行以及对软件开发过程的不断总结和优化,使软件开发过程得到持久不断的优化和提高