1 / 112
文档名称:

敏捷软件开发81.ppt

格式:ppt   大小:2,994KB   页数:112页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

敏捷软件开发81.ppt

上传人:落意心冢 2022/4/11 文件大小:2.92 MB

下载得到文件列表

敏捷软件开发81.ppt

文档介绍

文档介绍:敏捷软件开发81
摘要
Introduction
Agile Development
Agile Design
*
Institute of Computer Software
Nanjing University
*
关系不是对立的,而是互相协作的,具有共同的目标:提交正确的软件。
*
Institute of Computer Software
Nanjing University
*
Extreme Programming
XP强调4个因素:
交流(communication),XP要求程序员之间以及和用户之间有大量而迅速的交流
简单(simplicity),XP要求设计和实现简单和干净
反馈(feedback),通过测试得到反馈,尽快提交软件并根据反馈修改
勇气(courage),勇敢的面对需求和技术上的变化
*
Institute of Computer Software
Nanjing University
*
Extreme Programming
XP特别适用于需求经常改变的领域,客户可能对系统的功能并没有清晰的认识,可能系统的需求经常需要变动。
XP也适用于风险比较高的项目,当开发人员面对一个新的领域或技术时,XP可以帮助减低风险
XP适用于小的项目(人员上),人员在2-12人之间,XP不适用于人员太多的项目
*
Institute of Computer Software
Nanjing University
*
Practices of XP
客户作为团队成员
用户素材 user stories
短周期交付
迭代计划
发布计划
验收测试
结对编程 pair programming
*
Institute of Computer Software
Nanjing University
*
Practices of XP
测试驱动的开发方法 Test-Driven Development
集体所有权
持续集成
可持续的开发速度
开放的工作空间
计划游戏 planning game
简单的设计
重构 Refactoring
隐喻 Metaphor:将整个系统联系在一起的全局视图
*
Institute of Computer Software
Nanjing University
*
摘要
Introduction
Agile Development
Agile Design
*
Institute of Computer Software
Nanjing University
*
*
Institute of Computer Software
Nanjing University
*
What is Design?
“After reviewing the software development life cycle as I understood it, I concluded that the only software documentation that actually seems to satisfy the criteria of an engineering design is the source code listings.”
-- Jack Reeves
*
Institute of Computer Software
Nanjing University
*
Design Smells
Rigidity 僵化性  难于修改
Fragility 脆弱性  一改便乱
Immobility 牢固性  难于重用
Viscosity 粘滞性  做好事难
Needless Complexity 不必要的复杂性
Needless Repetition 不必要的重复
Opacity 晦涩性
*
Institute of Computer Software
Nanjing University
*
The “Copy” Program
Initial Design
void copy(){
int c;
while ((c=RdKbd())!= EOF)
WrtPrt(c);
}
*
Institute of Computer Software
Nanjing University
*
Requirement changes
bool ptFlag = false;
//remember to reset this flag
void Copy(){
int c;
while ((c=(ptFlag?RdPt(): RdKbd())