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

  • Post author:
  • Post category:其他




什么是软件设计

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



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

关于敏捷开发,大家可能会有如下疑问:

1、敏捷开发往往微小增量迭代,那么会不会忽视全局视图?

答:在敏捷开发中,全局视图和软件是一起演化,因为预测需求是徒劳的,所以更应该关注当前需求。

2、如何设计,确保软件具有灵活性、可维护和重用性的结构?

答:

(1)迭代设计,不断改进使得它尽可能适合当前系统,确保灵活性。

(2)避免臭味,确保可维护。

(3)遵循面向对象设计原则,确保重用性。



拙劣设计的症状(臭味)

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

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

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

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

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

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

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

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



面向对象设计原则

单一职责原则(SRP)

开放——封闭原则(OCP)

Liskov替换原则(LSP)

依赖倒置原则(DIP)

接口隔离原则(ISP)



臭味与原则的关系

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



什么是敏捷设计

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



如何做到敏捷设计

1、遵循敏捷实践去发现问题

2、应用设计原则去诊断问题

3、应用设计模式去解决问题



版权声明:本文为zhuyacheneagle原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。