敏捷软件开发
2021-09-01 20:34:48 0 举报
AI智能生成
敏捷软件开发原则、模式与实践
作者其他创作
大纲/内容
I 敏捷开发
1、敏捷实践
背景
没有实践的指导导致项目噩梦
添加过程约束
过多的过程约束又降低了开发效率
敏捷联盟宣言
个体和交互 > 过程和工具
可以工作的软件 > 面面俱到的文档
客户合作 > 合同谈判
响应变化 > 遵循计划
原则
结论
敏捷软件开发的原则和价值,帮助团队打破过程膨胀
2、极限编程概述
实践
结论
极限编程是一种优良的、通用的软件开发方法
3、计划
初始探索
发布计划
迭代计划
任务计划
迭代
结论
4、测试
测试驱动开发
验收测试
结论
5、重构
子主题
结论
重构好比用餐后对厨房的清理工作,忽略清理工作并不能加快做饭速度
6、一次编程实践
eg.保龄球比赛
结论
最好的设计是在你首先编写测试,一小步一小步前进时逐渐形成的
II 敏捷设计
7、什么是敏捷设计
软件系统的源代码就是它的主要设计文档——Reeves
设计的臭味
僵化性(Rigidity)
"一改都改"
改动某一处,连锁改动很多处
脆弱性(Fragility)
“一改就挂”
改动某一处,其他业务不相关的地方挂了
牢固性(Immobility)
“无法剥离”
很难剥离成一个可重用的组件
粘滞性(Viscosity)
软件粘滞性
保持系统设计的改动 >难于> 破坏设计的改动方法
多种改动方法
环境粘滞性
开发环境迟钝、低效
不必要的复杂性(Needless Complexity)
包含当前没用的组件
不必要的重复(Needless Repetition)
“Ctrl + C/V”的编码
晦涩性(Opacity)
编码/模块难以理解
开发人员必须站在代码阅读者的位置去编码
what 激发了腐化
一直不停变化的需求
敏捷团队不允许腐化
敏捷团队依靠变化来获取活力
保持尽可能好的设计
每天、每小时、甚至每分钟都要保持软件尽可能地干净、简单并富有表现力
总结
敏捷设计是一个过程
它是一个持续的应用原则、模式以及实践来改进软件的结构和可读性的过程
8、单一职责原则(SRP)
就一个类而言,应该仅有一个引起它变化的原因
9、开放封闭原则(OCP)
软件实体应该是可以扩展的,但是不可以修改的
10、李氏替换原则(LSP)
子类型(subtype)必须能够替换掉它们的基类型(base type)
11、依赖倒置原则(DIP)
12、接口隔离原则(ISP)
III 薪水支付案例
13、Command 和 Active Object 模式
14、Template Method 和 Strategy 模式
15、Facade 和 Mediator 模式
16、Singleton 和 Monostate 模式
17、Null Object 模式
18、第一次迭代S1
19、案例实现
IV 打包薪水支付系统
20、包的设计原则
21、Factory 模式
22、案例研究
V 气象站案例
23、Composite 模式
24、Observer 模式
25、Abstract Server、Adapter 和 Bridge 模式
26、Proxy 和 Stairway To Heaven 模式
27、案例:气象站
VI ETS案例研究
28、Vistor 模式
29、State 模式
30、ETS 框架
附录
UML表示法I:CGI示例
UML表示法II:统计多路复用器
0 条评论
下一页