敏捷软件开发总结——什么是敏捷设计

什么是软件设计

软件系统的源代码是它的主要设计文档,我们可以使用各种工具比如UML来描绘软件系统结构,但它最终体现为源代码。

敏捷开发的作用和设计方法

关于敏捷开发,大家可能会有如下疑问:
1、敏捷开发往往微小增量迭代,那么会不会忽视全局视图?
答:在敏捷开发中,全局视图和软件是一起演化,因为预测需求是徒劳的,所以更应该关注当前需求。

2、如何设计,确保软件具有灵活性、可维护和重用性的结构?
答:
(1)迭代设计,不断改进使得它尽可能适合当前系统,确保灵活性。
(2)避免臭味,确保可维护。
(3)遵循面向对象设计原则,确保重用性。

拙劣设计的症状(臭味)

项目起初,系统设计也许还是清晰的,随着需求变化,臭味增多,系统越来越难维护,重新设计也大多失败。我们需要设法使得设计对需求变化具有弹性,并且应用一些实践防止设计腐化。使用单元测试辅助。团队持续的改进设计,每次迭代结束生成的系统最适合于本次需求。

僵化性:设计难以改变,因为即使简单的改动都会导致有依赖关系的模块的连锁改动。

脆弱性:设计易于破坏,对系统的改动会导致系统中与此无关的模块出现问题。

牢固性:设计难以重用,很难分离出可在其它系统重用的模块。

粘滞性:难以做正确的事情,比做错还难。

不必要的复杂性:过分设计,过多的为可能性的需求做准备,也许永远用不到。

不必要的重复:拷贝、粘贴,当同样的代码一再出现,表示忽视了抽象。

晦涩性:混乱的表达,代码难以理解。

面向对象设计原则

单一职责原则(SRP)

开放——封闭原则(OCP)

Liskov替换原则(LSP)

依赖倒置原则(DIP)

接口隔离原则(ISP)

臭味与原则的关系

上述的臭味往往就是违反了上述原则,应用原则可以消除臭味。 没有臭味就没必要死板遵循原则,随意乱用会造成复杂性。

什么是敏捷设计

敏捷设计是一个过程,而不是一个事件。它是一个持续的应用原则、模式以及实践来迭代的过程。它致力于保持系统设计在任何时候尽可能简单、干净、富有表现力。

如何做到敏捷设计

1、遵循敏捷实践去发现问题
2、应用设计原则去诊断问题
3、应用设计模式去解决问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值