有谁了解敏捷吗?

mastudio 2007-07-14 04:53:07
敏捷到底是个什么? 有同志用过吗?

说说看具体是什么?

顺便发发分...
...全文
143 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yydrewdrew 2007-07-15
  • 打赏
  • 举报
回复
是敏捷开发吗?


敏捷开发是一种应对快速变化的需求的一种软件开发能力。相对于“非敏捷”更强调沟通、变化、产品效益,也更注重做为软件开发中人的作用。
人与人之间的交互是复杂的,并且其效果从来都是难以预期的,但却是工作中最重要的方面。
--- Tom DeMacro和Timothy Lister
敏捷软件开发宣言:
n 个体和交互 胜过 过程和工具
n 可以工作的软件 胜过 面面俱到的文档
n 客户合作 胜过 合同谈判
n 响应变化 胜过 遵循计划
虽然右项也有价值,但是我们认为左项具有更大的价值。
敏捷宣言遵循的原则:
n 我们最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意。
n 即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势。
n 经常性地交付可以工作的软件,交付的间隔可以从几个星期到几个月,交付的时间间隔越短越好。
n 在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。

n 围绕被激励起来的个体来构建项目。给他们提供所需的环境和支持,并且信任他们能够完成工作。

n 在团队内部,最具有效果并富有效率的传递信息的方法,就是面对面的交谈。

n 工作的软件是首要的进度度量标准。

n 敏捷过程提倡可持续的开发速度。责任人、开发者和用户应该能够保持一个长期的、恒定的开发速度。

n 不断地关注优秀的技能和好的设计会增强敏捷能力。

n 简单是最根本的。

n 最好的构架、需求和设计出于自组织团队。

n 每隔一定时间,团队会在如何才能更有效地工作方面进行反省,然后相应地对自己的行为进行调整。

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

n 僵化性: 很难对系统进行改动,因为每个改动都会迫使许多对系统其他部分的其它改动。

n 脆弱性: 对系统的改动会导致系统中和改动的地方在概念上无关的许多地方出现问题。

n 牢固性: 很难解开系统的纠结,使之成为一些可在其他系统中重用的组件。

n 粘滞性: 做正确的事情比做错误的事情要困难。

n 不必要的复杂性: 设计中包含有不具任何直接好处的基础结构。

n 不必要的重复性: 设计中包含有重复的结构,而该重复的结构本可以使用单一的抽象进行统一。

n 晦涩性: 很难阅读、理解。没有很好地表现出意图。

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

为了改变上面软件设计中的腐化味,敏捷开发采取了以下面向对象的设计原则来加以避免,这些原则如下:

n 单一职责原则(SRP)

就一个类而言,应该仅有一个引起它变化的原因。

n 开放-封闭原则(OCP)

软件实体应该是可以扩展的,但是不可修改。

n Liskov替换原则(LSP)

子类型必须能够替换掉它们的基类型。

n 依赖倒置原则(DIP)

抽象不应该依赖于细节。细节应该依赖于抽象。

n 接口隔离原则(ISP)

不应该强迫客户依赖于它们不用的方法。接口属于客户,不属于它所在的类层次结构。

n 重用发布等价原则(REP)

重用的粒度就是发布的粒度。

n 共同封闭原则(CCP)

包中的所有类对于同一类性质的变化应该是共同封闭的。一个变化若对一个包产生影响,则将对该包中的所有类产生影响,而对于其他的包不造成任何影响。

n 共同重用原则(CRP)

一个包中的所有类应该是共同重用的。如果重用了包中的一个类,那么就要重用包中的所有类。

n 无环依赖原则(ADP)

在包的依赖关系图中不允许存在环。

n 稳定依赖原则(SDP)

朝着稳定的方向进行依赖。

n 稳定抽象原则(SAP)

包的抽象程度应该和其稳定程度一致。

上述中的包的概念是:包可以用作包容一组类的容器,通过把类组织成包,我们可以在更高层次的抽象上来理解设计,我们也可以通过包来管理软件的开发和发布。目的就是根据一些原则对应用程序中的类进行划分,然后把那些划分后的类分配到包中。

敏捷设计是一个过程,不是一个事件。它是一个持续的应用原则、模式以及实践来改进软件的结构和可读性的过程。它致力于保持系统设计在任何时间都尽可能得简单、干净和富有表现力。
取自"http://www.wiki.cn/wiki/%E6%95%8F%E6%8D%B7%E5%BC%80%E5%8F%91"
CathySun118 2007-07-15
  • 打赏
  • 举报
回复
http://www.builder.com.cn/2005/0510/189009.shtml
Avoid 2007-07-14
  • 打赏
  • 举报
回复
SMART,以前CTO讲过。。。

讲过就忘。哈哈。。。

上街买本书看看吧。

不过真的要达到敏捷编程还是很困难的
rzsheng 2007-07-14
  • 打赏
  • 举报
回复
google一下,
oakfire 2007-07-14
  • 打赏
  • 举报
回复
引用
敏捷软件开发不是一个具体的过程,而是一个涵盖性术语(umbrella term),用于概括具有类似基础的方式和方法。这些方法,其中包括极限编程(Extreme Programming)、动态系统开发方法(Dynamic System Development Method)、SCRUM、Crystal和Lean等,都着眼于快速交付高质量的工作软件,并做到客户满意。

似乎有本书卖啊,我这只是谷歌来的,我也是第一次听说,囧。
codeloveforever 2007-07-14
  • 打赏
  • 举报
回复
这两天在CSDN上看到新闻才知道有这东西的,以前没听说过!
liuxiuk 2007-07-14
  • 打赏
  • 举报
回复
敏捷..?
听都没听过.
luohongming 2007-07-14
  • 打赏
  • 举报
回复
开发工具还是应用软件?没听说过

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧