宏观过程:软件开发生命周期

宏观过程是总体的软件开发生命周期,是微观过程的控制框架。

它代表了整个开发团队的活动,因此,宏观过程规定了一些可测量的产物和活动,让开发团队能够有意义地评估风险,并尽早对微观过程进行调整,以便更好地关注团队的分析设计活动。生命周期风格的选择将直接影响到宏观过程的规模和表现(例如:开发阶段的定义和数量,推荐的迭代周期,平均的迭代数等)。

宏观过程的目的是指导系统的整体开发,最终得到产品系统。宏观过程的范围从确定想法开始,直到实现该想法的第一个软件系统版本为止。

系统后续版本的开发,不论是为了演进还是为了维护,都通过执行另一次宏观过程来实现(另一个生命周期)。对于迭代增量式的宏观过程中,宏观过程确定了系统将以演进式的方式,通过不断的优化,最后得到产品系统。宏观过程的主要产物是一系列可执行的发布版本(迭代),体现了系统不断的优化(增量)。次要的产品包括系统行为原型,目的是探索可选的设计或进一步分析系统功能中不明确的部分。次要的产品还包括用于记录设计决策和理由的文档。

宏观软件开发过程一般可以从两个方面来进行描述,如:内容和时间-----做什么事情,什么时间做。内容主要描述了角色、任何和工作产品,也可以从科目或考虑的方面来描述,从逻辑上对内容进行分组。时间描述了这个过程的生命周期,可以从里程碑、阶段和迭代的角度来描述。

宏观过程的内容:科目

宏观过程包括以下科目,并且按照相对次序来执行。

1、需求,对于系统而言该做什么,这个过程一定要建立并保持与客户和其他干系人的一致意见。定义系统的边界。

2、分析与设计,将需求转换为系统设计,设计将作为在特定实现环境中进行实现的规格说明。这包括逐渐形成的一个健壮的系统架构,建立起系统不同元素必须用到的共同机制。

3、实现,单元测试以及对设计进行集成,得到一个可执行的系统。

4、测试,对实现进行测试,确保它实现了需求(即需求得到了正确的实现)。通过具体的展示来验证软件产品是否像设计的那样工作。

5、部署,确保软件产品(包括已测试的实现)能被它的最终用户使用。

在这个生命周期中将执行以下科目:

1、项目管理,管理软件开发项目,包括计划、人员配置、监控项目以及管理风险;

2、配置和变更管理,标识出配置项,控制对这些配置项的变更 ,管理这些项的配置;

3、环境,提供软件开发环境,包括支持开发团队的过程和工具。



针对科目的每个循环就构成了宏观过程的一次迭代。在实际的开发过程中,虽然这些科目一般是按照顺序执行的(需求-分析与设计-实现……),但是宏观过程不一定就是瀑布式的,在瀑布式的宏观过程中,这些科目只会执行一次。但是在迭代增量式宏观过程中,这些科目会经过很多次,每次经过每个科目时,执行的工作范围取决于你在整体开发过程中所处的位置。

宏观过程的很多部分就是很好的软件管理实践,如:需求管理,配置管理,测试和品质保证,代码走查以及编写文档。

宏观过程的时间:里程碑和阶段

在迭代增量式的宏观过程中,科目可能是重复执行的。但是,迭代式开发过程不仅仅是一系列的迭代,必须有一个整体的框架,在这个框架下,迭代的执行反映的是项目的战略计划,驱动着每次迭代的目标。这样的框架可以由一系列定义良好的里程碑来提供,通过执行一次或多次迭代来实现每个里程碑的目标。在每个里程碑处将进行一次评估,确定目标是否实现。评估满意就让项目继续进入下一个阶段 ,去实现下一个里程碑。

里程碑确保迭代取得进展,最后得到一个满意的解决方案,而不仅仅是不确定的迭代。里程碑不能简单的看成是一个项目进度表上的一个日期,而应该被看成是质量或成熟度的关口,实现了这些里程碑就意味着项目到达了某个成熟度,对演进的计划、规格说明和完成的解决方案有了进一步的理解。那么在一个迭代增量式的宏观过程中,里程碑和迭代如何结合的呢?我们看下图:


从上图中,实际上我们可以看出,这个宏观过程,我们可以分阶段(初始,细化,构造,移交)来定义里程碑。

初始阶段:

初始阶段我们从四个方面来介绍,分别是:目标,活动,工作产品,里程碑

目标:初始阶段的目标,是要确保项目有价值并可行(范围和业务价值)。对于任何真正的新软件或者原有系统的改写,很多时候会在开发者,架构师,需求分析时或最终用户的头脑中,突然出现一个想法。这个想法可能代表一种新的业务冒险,在原有产品线中的一种新的补充产品,或者是已有软件系统的一组新功能。初始阶段的目标不是完全的确认这个想法,而是建立对这个想法的愿景并验证它的假定。即使是对一个已有系统的优化,初始阶段的工作是很有必要的,也是有价值的。尽管很简单,但仍然关注与确保业务价值和技术的可行性。

活动:在初始阶段,建立起系统的核心需求并排出优先级,对应该构建什么与顾客达成一致意见,并确保理解了与构建系统相关的主要风险,决定实行什么开发环境(包括过程和工具)。初始阶段就是做决定的时候,我们定制开发过程,选择支持该过程的工具。初始阶段,没有什么活动是面向对象开发所特有的,其他也适用。

工作产品:初始阶段的主要工作产品是要构建的系统的愿景,行为原型,初始风险列表,确定的关键架构机制及开发环境。系统愿景提供了对待构建系统的清晰描述,包括它的范围,关键特征,对已有系统的影响与关系,以及必须考虑的所有限制条件。原型提供了概念验证,说明系统是可以构建的。风险列表确定了一些关键风险,必须在生命周期的早期缓解这些风险才能增加成功的可能性。架构机制定义了系统的一般能力,这种能力支持着基本的系统功能(如用户接口方式,错误检测和处理,持久,内存管理,进程间通信,事务管理和安全性等)。开发环境包括遵守的开发过程以及支持该过程的开发工具。

里程碑:范围已理解 如果清楚地理解了要构建的系统(系统的总体范围和关键需求),理解了这些需求的相对优先级以及构建该系统的重要业务原因,初始阶段就成功完成了。另外,客户和开发组织对系统的范围和总体交付时间表也达成一致意见。

细化阶段:

细化阶段同样也是可以分为四个部分来介绍,如:目标,活动,工作产品和里程碑。

目标 当已经理解待构建系统的范围并达成一致意见之后,我们的注意力就转向开发整体架构框架,这个架构框架将为后续的所有迭代奠定基础。尽早确定架构的缺陷,建立起一些通用的策略,以得到一个更简单的架构。细化阶段是对架构进行探索,选择,并通过多次迭代逐渐形成架构。这种形成过程是通过缓和最大风险,实现最高优先级的需求和实现架构最重要的部分来驱动的。

活动 细化阶段包括制定架构方面的决定,建立架构框架,实现该框架,测试该框架,以及根据测试的结果优化该框架。架构的演进基本上就是努力满足一些相互竞争的约束条件,包括功能,时间和空间。在细化阶段的早期,实际上我们队项目所知不多,不了解系统中什么地方会成为性能瓶颈,通过实际构建那些关键的架构部分,并通过测试来测量结果,开发团队就能更好地理解如何随时间的推移来优化架构。

工作产品 在细化阶段,



































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值