Afifit保址点
mas程碑
trwxftntn.il
i:
作任务匸作户阳
烦磧保证点
项mifw
过程流
■■■■■■■I
2
(“线性ilWii
wwrwcevsn»w
(0并triiWi*
小型项目的获取需求任务集
1•制定项目的利益相关者列表
2.邀请所有的利益相关者参加一个非正式会议。
3.征询每一个人对于软件特征和功能的需求。
4.讨论需求,并确定最终的需求列表。
5.划定需求优先级。
6.标出不确定领域。
TheseslidesaredesignedtoaccompanySoftwareEngineeringAPractttfomr'sApproach7/e
(McGraw-Hill.2009).Slidescopyright2009byRogerPressman.15
大型项目的获取需求任务集
1•制定项目的利益相关者列表
2和利益相关者的每一个成员分別单独讨论,获取所冇的要求。
3•基于任务集2中的调查,建立初步的功能和特征列表。
4•安排一系列促进需求获取的会议。
5.组织会议。
6•在每次会议上建立非正式的用户场景,
7•根据利益相关者的反馈,进一步细化用户场景。
8.建立一个修正的需求列表。
9•使用质量功能部署技术,划分需求优先级。
10.将需求打包以便软件可以增量交付。
TheseslidesaredesignedtoaccompanySoftwareEngineeringAPracttitomfsApproach7/e
(McGraw-Hill.2009).Slidescopyright2009byRogerPressman.16
大型项目的获取需求任务集(续)
11•标注系统的约束和限制。
12.讨论系统验证方法。
TheseslidesaredesignedtoaccompanySoftwareEngineeringAPractittomfsApproach7/e
(McGraw-Hill.2009).Slidescopyright2009byRogerPressman.17
过程模式类型
■步骤模式一定义了与过程的框架活动相关的问题。
例如“建立沟通”,它可能包括需求获取等任务模式■任务模式一定义了与软件工程动作或是工作任务相关、关系软件工程实践成败的问题。
例如“需求获取”
■阶段模式一定义在过程中发生的框架活动序列,即使这些活动流本质上是迭代的。
例如“螺旋模型”和“原型开发”
瀑布模型
Communication
projectinitiationrequirementgatheri
沟通项IE动需求快取
Planning
estimatingschedulingtrodcing
策划
项11估舁进度计划项n跟踪
Modelinganalysisdesign
Constructiocodetest
建模分析设汁
构建
编码
Deploymentdeliverysupportfeedback
交何
支持
反馈
19
使用中遇到的问题
■实际的项冃很少遵守瀑布模型提出的顺序。
■客户通常难以清楚地描述所有的需求。
■客户必须要有耐心。
TheseslidesaredesignedtoaccompanySoftwareEngineeringAPractitfonsr'sApproach7/e
(McGraw-Hill.2009).Slidescopyright2009byRogerPressman.21
适用情形
■当需求确定、工作采川线性方式完成时。
增量模型
23
projectcalendartime
顶n时何
适用情形
■初始的软件需求明确,但是整个开发过程却不宜单纯运川线性模型。
同时,可能迫切需要为川户迅速提供一套功能有限的软件产品,然后在后续版本屮再进行细化和扩展功能。
例如第一个增量往往是核心产品,附加功能进入下个增量计划。
特点
■综合了线性过程流和并行过程流的特征。
■每个增量都提交一个可以运行的产品。
TheseslidesaredesignedtoaccompanySoftwareEngineeringAPraclttton^sApproach7/e(McGraw-Hill.2009).Slidescopyright2009byRogerPressman.
演化模型:
原型开发
适用情形
■客户提出了一些基木功能,但没有详细定义功能和特性需求
■开发人员町能对算法的效率、操作系统的兼容性和人机交互的形式等情况并不确定
TheseslidesaredesignedtoaccompanySoftwareEngineeringAPradtttonifsApproach7/e
(McGraw-Hill・2009).Slidescopyright2009byRogerPres&man.27
特点
■很少是好川的,可能太慢太大,难以使川。
■一般作为被丢弃的系统。
特点
■采用循环的方式逐步加深系统定义和实现的深度,同时降低风险。
■确定一系列里程碑,确保利益相关者都支持可行的和令人满意的系统解决方案。
演化模型:
协同
特点(以建模活动为例)
■在某一特定时间,建模活动可能处于图中所示的任何一种状态中。
其他活动、动作或任务,可以川类似的方式表示。
■所有的软件丄程活动同时存在并处于不同的状态。
其他过
■基于构件的开发——这个过程模型能够使软件复用,是一个发展目标
■形式化方法——强调需求的数学规范说明
一个变型是净室(cleanroom)软件工程。
■面向方而的软件开发(AOSD)—为定义、说明、设计和构建方面提供过程和方法
如果某个关注点涉及系统多个方面的功能、特性和信息,可称为横切关注点,宙方面性需求來定义。
■统一过程——一种“用例驱动,以架构为核心,迭代
并且增量”的软件过程与统一建模语言的紧密结合
统一过程(UP)
production
生产
UP阶段
UPPhases呼阶段
Workflov^
Requirements
3;求
Analysis
分析
Design
设计
Inplefnontation
Test
测诚
Support
支持
Iterations
达代
UP工作产品
Inceptionphase
(始阶段
VtfionOocumont
InitlaiusecasemodolinKlaiprojectglossaryIMI*bu$»