- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第八章 迭代1--基礎
第八章 迭代1--基础
暨南大学计算机系
黄战
目标
定义细化阶段的第一个迭代。
为本部分的后续章节做铺垫。
描述初始和细化阶段的关键内容。
迭代1的需求和重点:OOA/D的技术核心
NextGen POS应用在第一个迭代要处理的需求:
实现处理销售用例中基本和关键的场景:输入商品项目并收取现金。
实现用于支持迭代初始化需要的启动用例。
不处理任何特殊和复杂的部分,仅仅针对场景的简单理想路径,并对此进行设计和实现。
不与外部服务进行协作,例如,税金计算器或产品数据库。
不应用复杂的定价规则。
迭代1
在迭代开发中,我们并非一次就实现所有需求。
迭代1的需求是所有需求或用例的子集。
对需求子集开始具有产品品质的编程和测试,并且我们在完成所有需求分析之前开始这些开发,这与瀑布过程相反。
迭代1
在多个迭代里对同一用例进行增量式开发。
通常式在若干迭代内对同以用例的各种场景进行开发,并且渐渐地扩展系统直到最终完成所有需要的功能性。
简短的用例可以在一次迭代中完成。
过程:初始和细化
案例研究的初始阶段大概只持续了一周,所创建的制品应该是简明和不完整的。
初始阶段是迈向细化阶段的一小步。
在该阶段决定基本的可行性、风险和范围,对项目是否值得进行更深入的调查进行决策。
包括
简短的需求讨论会。
大多数参与者、目标和用例名称。
确定大多数具有影响和风险的质量需求。
编写设想和补充性规格说明的第一个版本。
风险列表
技术上的概念验证原型和其他调查,用以解释特殊需求的技术可行性。
面向用户界面的原型,用于确定对功能需求的设想。
对购买/构建/复用构件的建议,在细化阶段进行精化。
对候选的高层架构和构件给出建议。
第一次迭代的计划。
候选工具列表。
细化
细化是一般项目中最初的一系列迭代,其中包括:
对核心、有风险的软件架构进行编程和测试。
发现并稳定需求的主体部分。
规避主要风险。
细化
小组进行细致的调查、实现(编程和测试)核心架构、澄清大多数需求和应对高风险问题。
细化阶段通常由两个或多个迭代组成,建议每次迭代的时间为2-6周。
每次迭代都是时间定量的,这意味这其结束日期是固定的。
细化
细化不是设计阶段,在该阶段也不是要完成所有模型的开发。
原型--产生的代码和设计是具有产品品质的最终系统的一部分。
细化
架构原型--这一术语通常用来描述局部系统,不是指可废弃的、实验性的原型。
在UP中,它表示最终系统的产品化子集。该术语更常见的名称是可执行架构或架构基线。
细化
构建核心架构,解决高风险元素,定义大部分需求,以及预计总体进度和资源。
实行短时间定量、风险驱动的迭代。
及早开始编程。
对架构的核心和风险部分进行适应性的设计、实现和测试。
尽早、频繁、实际地测试。
基于来自测试、用户、开发者的反馈进行调整。
通过一系列讨论会,详细编写大部分用例和其他需求,每个细化迭代举行一次。
在细化阶会开始构建哪些制品
领域模型
领域概念的可视化,类似于领域实体的静态信息模型。
设计模型
描述逻辑设计的一组图,包括软件类图、对象交互图、包图等。
软件架构文档
学习辅助工具,概括关键架构问题及其在设计中的解决方案。该文档是对重要设计思想及其在系统中动机的概要。
数据模型
包括数据库方案,以及在对象和非对象表示之间映射的策略
用例示意板,用户界面模型
描述用户界面、导航路径、可用性模型等。
细化阶段常见错误
对于大部分项目,细化阶段都比“几个”越更长。
只有一次迭代。
在细化开始前就定义了大部分需求。
没有处理具有风险的元素和核心架构。
没有产生可执行架构;没有进行产品代码的编程。
认为细化阶段主要是需求或设计阶段,为构造阶段的实现进行准备。
试图在编程之前进行彻底和细致的设计。
只有少量的反馈和调整;用户没有持续地参与评估和反馈。
没有尽早和实际的测试。
在编程之前推测性地结束架构设计。
认为细化阶段是进行概念验证编程的阶段,而不是对产品化核心架构编程的阶段。
过程:计划下一个迭代
通过以下三点来组织需求和迭代:
风险--既包括技术复杂性,也包括其他因素,例如工作量或可用性的不确定性。
覆盖范围--意味着在早期迭代中至少要涉及系统的所有主要部分
关键程度--客户认为具有高业务价值的功能
文档评论(0)