用户操作
[即时聊天] [发私信] [加为好友]
hz liuID:cqboy
31046次访问,排名3792好友0人,关注者0
fire
cqboy的文章
原创 0 篇
翻译 0 篇
转载 34 篇
评论 4 篇
cqboy的公告
    月 [<<>>]
最近评论
gavingey:VC6.0对标准C和c++的支持程度很低,在VC6下面做这些试验没有什么意义,VC8.0支持程度挺高,可以考虑一哈~
AlphaYi:在VC6.0环境下编译能够通过,运行出错!
AlphaYi:学习了!不过好像Chapter "4.6 避免提喻法" 中有点小错误:
q[1] = 'Y'; /*赋值错误,不能更改常量字符串的内容*/


zhengzhouzhuangshi:河南装饰公司 大铭装饰 铭人设计工作室 工程终身保修;不一定要选择贵的,但一定要选择对的。选择大铭,绝对是您最好的选择,我们相信:缘分+专业+实力=今天我们合作的见证。 www.zzdmzs.com 郑州大铭装饰 Top: World: Chinese Simplified: 商业: 房地产: 装修家居: 装饰公司 专业从事商装、家装、工装的装饰装潢公司。http://blog.csdn.n……
文章分类
收藏
相册
OA
官方站点
Apache Home
DEV.java.net
Eclipse Home
PostgreSQL中文站点
SourceForge
技术专区
Hibernate中文站点
huihoo动力
IBM DeveloperWorks
SpringFramework中文论坛
Sun技术社区
UNIX / LINUX 技术乐园
中国UNIX技术社区
中文Zope用户组
其他资源
Eclipse Plugins
EclipsePluginCentral
JAVA Digest
java-source.net
slashdotcn
TheServerSide
unix指令在线查询
WebFX
www.javalobby.org
一个不错个人主页
工作流
窦哲的UNIX中文文
维基百科,自由的百科全书
面向异步消息的WEB应用
收藏BLOG
Arbow's Personal Weblog
Java Project & Groovy
Nuke的专栏
ROSEN
冰云@Blogging
山南水北--udoo
田春峰的专栏
透明思考
存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    转载 敏捷开发[文摘]收藏

     | 

    来自:http://www.vckbase.com/document/viewdoc/?id=1027

    敏捷开发
    人与人之间的交互是复杂的,并且其效果从来都是难以预期的,但却是工作中最重要的方面。

    -- Tom DeMacro和Timothy Lister

    敏捷软件开发宣言:

    • 个体和交互     胜过 过程和工具
    • 可以工作的软件 胜过 面面俱到的文档
    • 客户合作       胜过 合同谈判
    • 响应变化       胜过 遵循计划

    虽然右项也有价值,但是我们认为左项具有更大的价值。

    • 我们最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意。
    • 即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势。
    • 经常性地交付可以工作的软件,交付的间隔可以从几个星期到几个月,交付的时间间隔越短越好。
    • 在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。
    • 围绕被激励起来的个体来构建项目。给他们提供所需的环境和支持,并且信任他们能够完成工作。
    • 在团队内部,最具有效果并富有效率的传递信息的方法,就是面对面的交谈。
    • 工作的软件是首要的进度度量标准。
    • 敏捷过程提倡可持续的开发速度。责任人、开发者和用户应该能够保持一个长期的、恒定的开发速度。
    • 不断地关注优秀的技能和好的设计会增强敏捷能力。
    • 简单是最根本的。
    • 最好的构架、需求和设计出于自组织团队。
    • 每隔一定时间,团队会在如何才能更有效地工作方面进行反省,然后相应地对自己的行为进行调整。

    当软件开发需求的变化而变化时,软件设计会出现坏味道,当软件中出现下面任何一种气味时,表明软件正在腐化。

    • 僵化性: 很难对系统进行改动,因为每个改动都会迫使许多对系统其他部分的其它改动。
    • 脆弱性: 对系统的改动会导致系统中和改动的地方在概念上无关的许多地方出现问题。
    • 牢固性: 很难解开系统的纠结,使之成为一些可在其他系统中重用的组件。
    • 粘滞性: 做正确的事情比做错误的事情要困难。
    • 不必要的复杂性: 设计中包含有不具任何直接好处的基础结构。
    • 不必要的重复性: 设计中包含有重复的结构,而该重复的结构本可以使用单一的抽象进行统一。
    • 晦涩性: 很难阅读、理解。没有很好地表现出意图。

    敏捷团队依靠变化来获取活力。团队几乎不进行预先设计,因此,不需要一个成熟的初始设计。他们更愿意保持设计尽可能的干净、简单,并使用许多单元测试和验收测试作为支援。这保持了设计的灵活性、易于理解性。团队利用这种灵活性,持续地改进设计,以便于每次迭代结束生成的系统都具有最适合于那次迭代中需求的设计。为了改变上面软件设计中的腐化味,敏捷开发采取了以下面向对象的设计原则来加以避免,这些原则如下:

    • 单一职责原则(SRP)
      就一个类而言,应该仅有一个引起它变化的原因。
    • 开放-封闭原则(OCP)
      软件实体应该是可以扩展的,但是不可修改。
    • Liskov替换原则(LSP)
      子类型必须能够替换掉它们的基类型。
    • 依赖倒置原则(DIP)
      抽象不应该依赖于细节。细节应该依赖于抽象。
    • 接口隔离原则(ISP)
      不应该强迫客户依赖于它们不用的方法。接口属于客户,不属于它所在的类层次结构。
    • 重用发布等价原则(REP)
      重用的粒度就是发布的粒度。
    • 共同封闭原则(CCP)
      包中的所有类对于同一类性质的变化应该是共同封闭的。一个变化若对一个包产生影响,则将对该包中的所有类产生影响,而对于其他的包不造成任何影响。
    • 共同重用原则(CRP)
      一个包中的所有类应该是共同重用的。如果重用了包中的一个类,那么就要重用包中的所有类。
    • 无环依赖原则(ADP)
      在包的依赖关系图中不允许存在环。
    • 稳定依赖原则(SDP)
      朝着稳定的方向进行依赖。
    • 稳定抽象原则(SAP)
      包的抽象程度应该和其稳定程度一致。

    发表于 @ 2005年03月10日 11:55:00|评论(loading...)|编辑

     | 

    评论:没有评论。

    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © cqboy