开发模型
- 螺旋模型:适用于大型软件开发;风险驱动;开发人员必须有丰富的经验;降低过多测试或测试不足带来的风险;维护和开发之间没有本质区别;
敏捷过程的典型方法
- 极限编程XP是激发开发人员创造性、使得管理负担最小的一组技术.。
- 水晶法Crystal认为每—个不同的项目都需要一套不同的策略、约定和方法论。
- ==并列争球法(Scram)==使用迭代的方法,其中把每30天一次的迭代称为个冲刺,并按需求的优先级来实现产品多个自组织和自治小组并行地递增实现产品,协调是通过简短的日常情况会议进行。
自适应软件开发(ASD)有六个基本的原则:
①在自适应软件开发中,有一个使命作为指导,它设立了项目的目标,但不描述如何达到这个目标;
②特征被视为客户键值的关键,因此,项目是围绕着构造的构件来组织并实现特征;
③过程中的迭代是很重要的,因此重做与做同样重要,变化也包含其中;
④变化不视为是一种更正,而是对软件开发实际情况的调整;
⑤确定的交付时间迫使开发人员认真考虑每一个生产版本的关键需求;
⑥风险也包含其中,它使开发人员首先跟踪最艰难的问题。
极限编程(XP) - 它由价值观、原则、实践和行为4个部分组成。其中4大价值观为沟通、简单性、反馈和勇气。
- 极限编程是一个轻量级的、灵巧的软件开发方法;同时它也是一个非常严谨和周密的方法。
- XP主要解决代码质量低的问题,编码速度不能改变。
敏捷开发方法XP是一种轻量级、高效、低风险、柔性、可预测的、科学的软件开发方法,其特性包含在12个最佳实践中。
(1)计划游戏:快速制定计划、随着细节的不断变化而完善;
(2)小型发布:系统的设计要能够尽可能早地交付;
(3)隐喻:找到合适的比喻传达信息;
(4)简单设计:只处理当前的需求使设计保持简单;
(5)测试先行:先写测试代码再编写程序;
(6)重构:重新审视需求和设计,重新明确地描述它们,以符合新的和现有的需求;
(7)结队编程;
(8)集体代码所有制;
(9)持续集成:可以按日甚至按小时为客户提供可运行的版本;
(10)每周工作40个小时;
(11)现场客户;
(12)编码标准。
软件过程
- 软件过程改进的框架:过程改进基础设施、过程改进线路图、软件过程评估方法和软件过程改进计划。
- CMM (Capability Maturity
Model)是指软件过程能力成熟度模型,该模型按照软件过程的不同成熟度划分了5个等级,1级被认为成熟度最低,5级则为成熟度最高。一般来说,采用更成熟的软件过程模型,往往可以得到更高质量的软件产品。1997年美国卡内基梅隆大学软件工程研究所SEI将已有的几个CMM模型结合在一起,构造成“集成模型”即 CMMI (Capability Maturity Model Integration) 。 - 在可重复级(2),建立了基本的项目管理过程和实践来跟踪项目费用、进度和功能特性。在已定义级(3),所有项目都采用根据实际情况修改后得到的标准软件过程来开发和维护软件。在已管理级(4),收集对软件过程和产品质量的详细度量,对软件过程和产品都有定量的理解与控制。在优化级(5),过程的量化反馈和先进的新思想、新技术促使过程不断改进。
- 级别1为初始级,特点是混乱和不可预测;级别2为重复级,特点是项目得到管理监控和跟踪,有稳定的策划和产品基线;级别3为确定级,通过软件过程的定义和制度化确保对产品质量的控制;级别4为管理级,特点是产品质量得到策划,软件过程基于度量的跟踪;级别5为优化级,特点是持续的过程能力改进。
- 统一过程模型是一种“用例和风险驱动, 以架构为中心,迭代并且增量”的开发过程,由UML方法和工具支持,定义了不同阶段及其制品。
起始阶段专注于项目的初创活动。精化阶段理解了最初的领域范围之后,进行需求分析和架构演进。构建阶段关注系统的构建,产生实现模型。移交阶段关注于软件提交方面的工作,产生软件增量。产生阶段运行软件并监控软件的持续使用,提供运行环境的支持,提交并评估缺陷报告和变更请求。 - RUP对软件开发过程的描述。RUP应用了角色、活动、制品和工作流4种重要的模型元素,其中角色表述“谁做”,制品表述“做什么”,活动表述“怎么做”,工作流表述“什么时候做”。
- UP (统一过程)模型是一种以用例和风险为驱动、以架构为中心、迭代并且增量的开发过程,由UML方法和工具支持。UP过程定义了五个阶段,起始阶段、精化阶段、构建阶段、移交阶段和产生阶段。开发过程中有多次迭代,每次迭代都包含计划、分析、设计、构造、集成和测试,以及内部和外部发布。每个迭代有五个核心工作流,捕获系统应该做什么的需求工作流、精化和结构化需求的分析工作流、在系统结构内实现需求的设计工作流、构造软件的实现工作流和验证是否如期望那样工作的测试工作流。
软件质量管理
-
软件评审的内容包括设计质量评审、程序质量评审和与运行环境接口的评审。评审的主要目标是为了发现软件中的错误。
-
ISO/IEC9126软件质量模型由三个层次组成:第一层是质量特性,第二层是质量子特性,第三层是度量指标。可靠性是一个重要的质量特性,其子特性包括成熟性、容错性和易恢复性。