敏捷软件开发之什么是敏捷设计

敏捷设计强调灵活应对变化,避免僵化、脆弱、复杂的设计。通过保持设计的清洁、简单,持续改进以适应需求迭代。敏捷团队遵循设计原则,运用模式,确保设计始终保持最佳状态,如同外科医生对待消毒过程一样对待设计的整洁性。
摘要由CSDN通过智能技术生成

第7章 什么是敏捷设计

实际上满足工程设计标准的唯一软件文档,就是源代码清单 ---- Jack Reeves

设计的臭味

  1. 僵化性(Rigidity)
    僵化性是指难以对软件进行改动。如果单一的改动会导致有依赖关系的模块中的连锁改动,那么设计就是僵化的。很难对系统进行改动,因为每个改动都会迫使许多对系统其他部分的其它改动
  2. 脆弱性(Fragility)
    脆弱性是指对系统的改动会导致系统中和改动的地方在概念上无关的许多地方出现问题。也就是说,出现新问题的地方与改动的地方并没有概念上的关联。
  3. 牢固性(Immobility)
    设计中包含了对其他系统有用的部分,但是要把这些部分从系统中分离出来所需要的努力和风险是巨大的。很难解开系统的纠结,使之成为一些可在其他系统中重用的组件
  4. 粘滞性(Viscosity)
    粘滞性有两种表现形式:软件的粘滞性和环境的粘滞性。无论哪种粘滞性,都很难保持项目中的软件设计。我们希望创建易于保持设计的系统和项目环境
  5. 不必要的复杂性(Needless complexity)
    指的是设计中包含有不具任何直接好处的基础结构。如果设计中包含有当前没用的组成部分,它就含有不必要的复杂性。换句话说你为未来预留功能实现的代码都是没有必要的
  6. 不必要的重复(Needless Repetition)
    设计中包含有重复的结构,而该重复的结构本可以使用单一的抽象进行统一
  7. 晦涩性(Opacity)
    模块很难阅读、理解,没有很好地表现出意图。

在非敏捷环境中,由于需求没有按照初始设计预见的方式进行变化,从而导致了设计的退化。通常,改动都很急迫,并且进行改动的开发人员对于原始的设计思路并不熟悉,因此,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值