知识卡片
五种开发过程对设计工作的安排
内容
五种主流软件开发过程对”何时设计、按什么排优先级”的安排各不相同,风险驱动模型可以嵌入其中任意一种而不破坏其本质:瀑布过程只有一次迭代,架构工作集中在分析设计阶段;迭代过程可选预先设计,但不跨迭代排优先级,风险驱动模型可在每次迭代及可选预先设计阶段中运作;螺旋过程按风险划分迭代优先级、首次迭代处理最高风险,但不指导具体设计活动,与风险驱动模型”异曲同工”但范围更广(涵盖全过程而非只管设计);®UP是迭代的螺旋过程,主张早期迭代优先处理架构相关需求;XP不做预先设计(除可选的第0次迭代),按客户价值而非风险排优先级,是应用风险驱动模型时最棘手的一种。
结构图:
flowchart TD
A[五种开发过程] --> B["瀑布:单次迭代<br/>架构集中在分析设计阶段"]
A --> C["迭代过程:可选预先设计<br/>不跨迭代排优先级"]
A --> D["螺旋过程:按风险划分迭代优先级<br/>首次迭代处理最高风险"]
A --> E["(R)UP:迭代的螺旋过程<br/>早期迭代优先处理架构需求"]
A --> F["XP:不做预先设计<br/>按客户价值而非风险排优先级"]
D -.与风险驱动模型异曲同工但范围更广.- G[风险驱动模型:只管设计阶段<br/>可嵌入以上任意过程]
参考来源
- 位置:《恰如其分的软件架构》第3章《风险驱动模型》3.9节《理解过程变化》、3.10节《风险驱动模型与软件开发过程》(源文件:_epub-src/OEBPS/text00035.html, text00036.html)
- 结论依据:原文逐一介绍瀑布、迭代、螺旋、(R)UP、XP五种过程处理设计工作的方式差异,并在3.10节说明风险驱动模型可嵌入其中任意过程、与螺旋过程"异曲同工"但范围更窄(只管设计),XP因缺乏预先设计和风险排序机制而最难应用。
- 原始内容:瀑布过程……可以把整个过程视为一次单独的迭代……螺旋过程与风险驱动模型可谓异曲同工,它们都将风险视为首要依据。区别在于螺旋开发过程是完整的软件开发过程……你或许已经注意到……XP……拥有最为具体的建议。因此,最为棘手的就是将风险驱动模型应用于XP。