思步网

查看: 103582|回复: 45
打印 上一主题 下一主题

[其他理论] 敏捷开发实践认知

[复制链接]
敏捷开发
简单的说,敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

敏捷宣言遵循的原则
我们最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意。
即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势。
经常性地交付可以工作的软件,交付的间隔可以从几个星期到几个月,交付的时间间隔越短越好。
在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。
围绕被激励起来的个体来构建项目。给他们提供所需的环境和支持,并且信任他们能够完成工作。
在团队内部,最具有效果并富有效率的传递信息的方法,就是面对面的交谈。
工作的软件是首要的进度度量标准。
敏捷过程提倡可持续的开发速度。责任人、开发者和用户应该能够保持一个长期的、恒定的开发速度。
不断地关注优秀的技能和好的设计会增强敏捷能力。
简单是最根本的。
最好的构架、需求和设计出于自组织团队。
每隔一定时间,团队会在如何才能更有效地工作方面进行反省,然后相应地对自己的行为进行调整。
当软件开发需求的变化而变化时,软件设计会出现坏味道,当软件中出现下面任何一种气味时,表明软件正在腐化。
僵化性:很难对系统进行改动,因为每个改动都会迫使许多对系统其他部分的其它改动。
脆弱性:对系统的改动会导致系统中和改动的地方在概念上无关的许多地方出现问题。
牢固性:很难解开系统的纠结,使之成为一些可在其他系统中重用的组件。
粘滞性:做正确的事情比做错误的事情要困难。
不必要的复杂性:?设计中包含有不具任何直接好处的基础结构。
不必要的重复性:?设计中包含有重复的结构,而该重复的结构本可以使用单一的抽象进行统一。
晦涩性:很难阅读、理解。没有很好地表现出意图。
敏捷团队依靠变化来获取活力。团队几乎不进行预先设计,因此,不需要一个成熟的初始设计。他们更愿意保持设计尽可能的干净、简单,并使用许多单元测试和验收测试作为支援。这保持了设计的灵活性、易于理解性。团队利用这种灵活性,持续地改进设计,以便于每次迭代结束生成的系统都具有最适合于那次迭代中需求的设计。
为了改变上面软件设计中的腐化味,敏捷开发采取了以下面向对象的设计原则来加以避免,这些原则如下:
单一职责原则(SRP)
就一个类而言,应该仅有一个引起它变化的原因。
开放-封闭原则(OCP)
软件实体应该是可以扩展的,但是不可修改。
Liskov替换原则(LSP)
子类型必须能够替换掉它们的基类型。
依赖倒置原则(DIP)
抽象不应该依赖于细节。细节应该依赖于抽象。
接口隔离原则(ISP)
不应该强迫客户依赖于它们不用的方法。接口属于客户,不属于它所在的类层次结构。
重用发布等价原则(REP)
重用的粒度就是发布的粒度。
共同封闭原则(CCP)
包中的所有类对于同一类性质的变化应该是共同封闭的。一个变化若对一个包产生影响,则将对该包中的所有类产生影响,而对于其他的包不造成任何影响。
共同重用原则(CRP)
一个包中的所有类应该是共同重用的。如果重用了包中的一个类,那么就要重用包中的所有类。
无环依赖原则(ADP)
在包的依赖关系图中不允许存在环。
稳定依赖原则(SDP)
朝着稳定的方向进行依赖。
稳定抽象原则(SAP)
包的抽象程度应该和其稳定程度一致。
上述中的包的概念是:包可以用作包容一组类的容器,通过把类组织成包,我们可以在更高层次的抽象上来理解设计,我们也可以通过包来管理软件的开发和发布。目的就是根据一些原则对应用程序中的类进行划分,然后把那些划分后的类分配到包中。
敏捷设计是一个过程,不是一个事件。它是一个持续的应用原则、模式以及实践来改进软件的结构和可读性的过程。它致力于保持系统设计在任何时间都尽可能得简单、干净和富有表现力。





上一篇:敏捷教练的刻意训练
下一篇:中国敏捷实践中的误区
[发帖际遇]: 假如 捡了钱没交公 金币 降了 3 (金) . 幸运榜 / 衰神榜
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 支持支持 反对反对
回复 论坛版权

使用道具 举报

看帖回复是一种美德
路过 帮顶 嘿嘿
hold住就是胜利!
很有见地的探讨,先收藏着~
hold住就是胜利!
还不错哦,如果再能多分享一些就perfect了!
看起来不错
我是个凑数的。。。
打酱油的人拉,顺便赚点金币
路过 帮顶 嘿嘿
看了LZ的帖子,我只想说一句很好很强大!
very good.
看帖要回,回帖才健康,在踩踩,楼主辛苦了!
学习下我只是路过,不发表意见……
您需要登录后才可以回帖 登录 | 注册

本版积分规则



思步组织思步科技|思步网|火花学堂|思步文库|思步问答|思步英才|天下心
© 2007 思步网 浙ICP备10212573号-4(首次备案号:浙ICP备07035264号)|邮箱:service#step365.com(将#换成@)|服务热线:0571-28827450
在线培训课程|求职招聘|思步文库|官方微信|手机APP|思步问答|微博平台|官方QQ群|交流论坛|软件工程透析|关于我们|申请友链|
点击这里给我发消息     点击这里给我发消息
思步 step365 过程改进 CMMI中文 质量保证 质量管理 流程体系 需求跟踪矩阵 敏捷开发 Scrum 软件度量 项目评审 全员改进 流程管理 人力资源 6sigma 信息安全 ISO27001认证 IT服务管理 ISO20000认证 ISO9000认证 软件测试 SQA 配置管理 IPD 软件工程 PMP认证 PMP试题 PMBOK中文 精益研发 agile 顾问式管理培训
返回顶部