在一个真正的迭代开发环境中,我们不需要把所有的结构和设计问题事先完成。我们通过重构(改善代码而不影响功能)可以持续地对最初建立的设计进行改造,这是十分重要的。因为当真正开始编码后,可能会发现很多实现问题的更好方法。尽管项目的范围在一开始就定义好了,但随着迭代的逐渐进行,客户需求才不断地被加入其中,而不是在一开始就把一切锁定下来。
问题的关键在于项目相关的所有人必须积极地交流沟通。
不需要在一开始对类设计得很具体,可以只在必要时进行。
设计系统时先制定出规范,然后不断的循环进行测试。
如果你认为极限编程人员不进行设计和文档工作的话,我希望能在你看完本章后将此误解消除,事实并非如此。
迭代后的第一天是将用例分割成一个个的任务,这其实也是设计中的一部分,这样有助于分解模块并且得到最终的实现点。
另一个关于XP工作类型的观点是出于一个资深的软件架构师,他在一家提供IT解决方案的知名公司工作,并使用XP和AMDD技术在很多项目中取得成功。他说:“在XP项目中还有一种级别的设计,它每天都会进行。这就是重构,它也是一种很重要的设计活动。虽然迭代开始阶段的设计很重要,但在代码写好后的设计工作使得一个好的设计更加出色。”
综上几条可以看出,软件工程其实就是设计加上重构,这样每一个版本的产品才会更加的有效。
CRC用来表示各种类、它们的责任以及合作者。表3.1显示了一个CRC卡片布局的范例以及对3个组成部分的描述。虽然图中显示的是一个电子版的CRC卡,实际中的CRC卡画在一个3×5英寸大小的卡片上,如果需要的话,可以把它转换为类图。
表3.1 一个简单的CRC卡片的布局范例
类名(名词)
责任(一个类的功能,例如业务方法、异常处理、安全方法、属性或变量)
合作者(提供实现高级需求的解决方案需要的其他类)
CRC卡是一种非正式的面向对象技术,它可以帮助我们发现类之间的关系。我喜欢使用CRC卡,这样客户和开发者可以在非正式的会议上讨论对象而不需使用电脑。除此之外,如果需要的话,可以用CRC卡来生成正式的类图(在本章后面我们将做这个工作)。
表3.2到表3.4是本书后面将要开发的一些类图的CRC卡的范例,它们实现了时间报表清单页面的需求。
表3.2 Timesheet类的CRC卡范例
Timesheet
获得阶段的结束时间
获得输入的时间
获得部门代码
表3.3 TimesheetManager类的CRC卡的范例
TimesheetManager
从数据库中获得时间报表
将时间报表存入数据库中
Timesheet
表3.4 TimesheetListController类的CRC卡的范例
TimesheetListController
(在MVC中)控制时间报表清单的显示
TimesheetManager
我们已经了解了一些CRC卡的基础知识。具备了这些知识,我们就知道接下来该做什么了。
CRC卡片使用
敏捷开发者应该在数据建模、对象建模、重构、映射、实现和性能调整等问题上反复迭代
分享到:
相关推荐
•AMM(敏捷成熟度模型) 全称Agile Maturity Model,是一套用来评估软件开发团队或者整个开发组织的当前敏捷状态和将来的目标状态的框架,评估的结果用来帮助团队识别改善点。 •可以评估一个IT组织的敏捷程度,其...
敏捷成熟度模型,8个维度5个级别
(完整word版)软件敏捷模型开发流程图-V4.0.pdf
对比十几种软件开发模型 瀑布模型 演化模型 螺旋模型 喷泉模型 快速原型模型 智能模型 混合模型 敏捷开发 极限编程XP
SpecDD是一种基于敏捷研发模型,适用于大型团队研发,解决了大团队不适用于敏捷的问题。
敏捷开发的学习资料,关于Scrum的PPT
应急物资敏捷配送是灾难救援的重要工作之一,为了给灾区快速配送应急物资,构建了包含救灾物资储备库、应急物资配送中心及受灾点三层结构的应急物资敏捷配送体系。建立相应双层优化模型,其中下层模型决策车辆路径...
基于敏捷模型的D公司移动互联网软件项目管理策略研究.pdf
第一章 概述知识点:软件开发过程模型3. 增量模型目录4. 螺旋模型2. 瀑布模型1. 软件生命周期5. 软件开发新形势与敏捷开发模型DevOps框架软件生命周
本文的目的是通过敏捷RE的元模型来构建有关各种现有过程模型的抽象层。 它是通过多次迭代创建的,并且依赖于相关过程模型的评估。 此外,我们通过在两种不同情况下展示元模型的实例来推导工业中敏捷RE的过程模型:...
CMMI从1.2版本升级到1.3后,相应的SG,SP,GG,GP的变化及每个相关的敏捷模型
敏捷和CBR程序的思想用于改进当前模型。 该模型为使用敏捷开发实践与CBR集成进行软件开发提供了全面指南。 CBR和RBR使用的敏捷开发方法提供了更有效和准确的工作方案。 基于案例的推理只是领域中有限数量的案例,而...
敏捷模式介绍:为什么Spotify的敏捷模型有效,又为何不应该复制它们1
从瀑布模型、极限编程到敏捷开发 从瀑布模型、极限编程到敏捷开发
敏捷软件开发模型相关资料下载,很有用的学习资料
敏捷软件开发模型—Scrum
系统分析师-敏捷开发模型
论文研究-敏捷供应链质量兼容生产计划模型与算法.pdf, 描述了敏捷供应链质量兼容生产计划问题,建立了有限企业资源约束条件下的极大化模糊交货期满意度数学模型,设计了一...
介绍敏捷开发中的一个典型模型SCRUM,SCRUM 同极限编程一样越来越广泛地应用到日常软件开发实践中。
敏捷制造业务模型设计方案.pptx