`
lgstarzkhl
  • 浏览: 334605 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

敏捷模型2

    博客分类:
  • java
阅读更多
在一个真正的迭代开发环境中,我们不需要把所有的结构和设计问题事先完成。我们通过重构(改善代码而不影响功能)可以持续地对最初建立的设计进行改造,这是十分重要的。因为当真正开始编码后,可能会发现很多实现问题的更好方法。尽管项目的范围在一开始就定义好了,但随着迭代的逐渐进行,客户需求才不断地被加入其中,而不是在一开始就把一切锁定下来。问题的关键在于项目相关的所有人必须积极地交流沟通

不需要在一开始对类设计得很具体,可以只在必要时进行。

设计系统时先制定出规范,然后不断的循环进行测试。

如果你认为极限编程人员不进行设计和文档工作的话,我希望能在你看完本章后将此误解消除,事实并非如此。

迭代后的第一天是将用例分割成一个个的任务,这其实也是设计中的一部分,这样有助于分解模块并且得到最终的实现点。

另一个关于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卡片使用


敏捷开发者应该在数据建模、对象建模、重构、映射、实现和性能调整等问题上反复迭代


分享到:
评论

相关推荐

    敏捷成熟度模型使用说明

    敏捷成熟度模型使用说明 敏捷成熟度模型(Agile Maturity Model,简称 AMM)是一种评估敏捷团队成熟度的模型,它通过 8 个维度和 5 个级别来评估团队的成熟度,并帮助团队找到持续改进的方向和目标。该模型建议每...

    (完整word版)软件敏捷模型开发流程图-V4.0.pdf

    敏捷模型开发流程是一种迭代和增量的软件开发方法,强调快速反应变化和持续交付有价值的软件产品。根据提供的文件内容,我们可以从中提炼出以下敏捷开发的相关知识点: 1. 产品待办事项(Product Backlog): 产品...

    敏捷成熟度评估-Agile Maturity Model(AMM)模型分享

    •AMM(敏捷成熟度模型) 全称Agile Maturity Model,是一套用来评估软件开发团队或者整个开发组织的当前敏捷状态和将来的目标状态的框架,评估的结果用来帮助团队识别改善点。 •可以评估一个IT组织的敏捷程度,其...

    对比十几种软件开发模型 传统模型(瀑布模型,演化模型,螺旋模型,喷泉模型),敏捷开发,极限编程XP.zip

    对比十几种软件开发模型 瀑布模型 演化模型 螺旋模型 喷泉模型 快速原型模型 智能模型 混合模型 敏捷开发 极限编程XP

    系统分析师-敏捷开发模型

    2. 客户参与:敏捷开发模型强调客户的参与和反馈,确保软件开发的方向正确。 3. 小版本发布:敏捷开发模型采用小版本发布的方式,快速提交可工作的软件,提高项目的进度和质量。 4. 降低项目风险:敏捷开发模型能够...

    软件系统分析与设计-知识点2(开发过程模型:嵌入华为敏捷模型)1

    本文主要探讨了四种常见的软件开发模型:瀑布模型、增量模型、螺旋模型以及敏捷开发模型,并结合华为云DevCloud HE2E DevOps框架,阐述了软件开发的新形势与挑战。 首先,瀑布模型是一种线性的开发模型,它按照固定...

    敏捷制造业务模型设计方案.pptx

    敏捷制造业务模型设计方案 通过对敏捷制造业务模型设计方案的分析,我们可以总结以下几个关键知识点: 一、敏捷制造业务模型设计的重要性 在当前的工业4.0时代,制造业面临着激烈的竞争和数字化转型的挑战。为了...

    基于敏捷模型的D公司移动互联网软件项目管理策略研究.pdf

    基于敏捷模型的D公司移动互联网软件项目管理策略研究.pdf

    敏捷软件开发模型—Scrum

    Scrum是一种广泛应用于软件开发领域的敏捷开发框架,它强调团队协作、迭代增量式开发和持续改进,以适应快速变化的需求。Scrum的核心理念是通过短期的、固定的迭代周期(称为Sprint)来实现灵活和高效的项目管理。在...

    从瀑布模型、极限编程到敏捷开发

    瀑布模型、极限编程和敏捷开发是软件开发管理的三种典型模式,它们之间的演进关系反映了软件开发管理者在管理模式上的变化。瀑布模型强调文档、流程化和管理控制,适合大型软件开发项目,但缺乏灵活性和客户参与。...

    CMMI1.2版本升级1.3后变化及相关敏捷模型

    综上所述,CMMI 1.3版本的变化旨在使模型更加贴近现实的软件开发环境,尤其是在敏捷开发领域的最佳实践,同时也强化了需求管理、结果导向和与组织目标的连接。这些改进有助于组织更好地适应快速变化的软件开发场景,...

    软件项目管理 3.5.敏捷生存期模型.doc

    敏捷模型的核心在于其灵活性和自适应性,它强调快速响应变化,通过迭代和增量的方式实现软件的开发和交付。 **敏捷模型的特点**: 1. **敏捷宣言**:敏捷模型遵循敏捷宣言,强调个体和互动高于流程和工具,可工作的...

    敏捷模型详解-流程与关键节点

    ### 敏捷模型详解 #### 前言: 在当今快速变化的市场环境中,软件开发团队面临着越来越多的挑战。为了适应这种变化并提高产品的质量,许多团队转向了敏捷开发模式。敏捷开发是一种以人为本、迭代、逐步推进的软件...

    敏捷模式介绍:为什么Spotify的敏捷模型有效,又为何不应该复制它们1

    Spotify的敏捷模型的有效性和不可复制性主要源于其独特的企业文化和瑞典的文化背景。 首先,Spotify的敏捷模型建立在其高度自主和灵活的小队结构之上。这些小队由跨职能的团队成员组成,每个团队都有明确的业务目标...

    研发运营一体化(DevOps)能力成熟度 模型 第 2 部分:敏捷开发管理

    研发运营一体化(DevOps)能力成熟度 模型 第 2 部分:敏捷开发管理

Global site tag (gtag.js) - Google Analytics