《敏捷软件开发》PPT课件.ppt
《《敏捷软件开发》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《敏捷软件开发》PPT课件.ppt(111页珍藏版)》请在三一办公上搜索。
1、敏捷软件开发,Agile Software Development,7/16/2023,Institute of Computer SoftwareNanjing University,1,摘要,IntroductionAgile Development Agile Design,7/16/2023,Institute of Computer SoftwareNanjing University,2,摘要,IntroductionAgile DevelopmentAgile Design,7/16/2023,Institute of Computer SoftwareNanjing Unive
2、rsity,3,Introduction,Robert C.Martin:“Agile Software Development Principles,Patterns,and Practices”,Prentice Hall(October 25,2002),7/16/2023,Institute of Computer SoftwareNanjing University,4,Jolt Award2003,Introduction,Robert C.Martin,7/16/2023,Institute of Computer SoftwareNanjing University,5,“De
3、signing Object Oriented C+Applications using the Booch Method”,1995“Pattern Languages of Program Design 3”,1997,“More C+Gems”,1999,“Extreme Programming in Practice”,2003“UML for Java Programmers”,2003,Uncle Bob,Agile 敏捷,敏捷开发是一种面临迅速变化的需求快速开发软件的能力。提供必要的纪律和反馈的实践-practice保持软件灵活、可维护的设计原则-principle针对特定问题的
4、设计模式-pattern适应变化和以人为中心,迭代、循序渐进,7/16/2023,Institute of Computer SoftwareNanjing University,6,The Agile Alliance 敏捷联盟,The Manifesto of the Agile Alliance 敏捷联盟宣言,2001,7/16/2023,Institute of Computer SoftwareNanjing University,7,We are uncovering better ways of developing softwareby doing it and helping
5、 others do it.Through this workwe have come to value:Individuals and interactions over processes and toolsWorking software over comprehensive documentationCustomer collaboration over contract negotiationResponding to change over following a plan,Kent Beck,Alistair Cockburn,Robert C.Martin,etc.,敏捷联盟宣
6、言,个体和交互胜过过程和工具可以工作的软件胜过面面俱到的文档客户合作胜过合同谈判响应变化胜过遵循计划,7/16/2023,Institute of Computer SoftwareNanjing University,8,Principles,我们最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意。即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势。经常性地交付可以工作的软件,交付的间隔可以从几个星期到几个月,交付的时间间隔越短越好。,7/16/2023,Institute of Computer SoftwareNanjing University,9,Pr
7、inciples,在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。围绕被激励起来的个体来构建项目。给他们提供所需的环境和支持,并且信任他们能够完成工作。在团队内部,最具有效果并富有效率的传递信息的方法,就是面对面的交谈。,7/16/2023,Institute of Computer SoftwareNanjing University,10,Principles,工作的软件是首要的进度度量标准。敏捷过程提倡可持续的开发速度。责任人、开发者和用户应该能够保持一个长期的、恒定的开发速度。不断地关注优秀的技能和好的设计会增强敏捷能力。,7/16/2023,Institute of Co
8、mputer SoftwareNanjing University,11,Principles,简单使未完成的工作最大化的艺术是最根本的。最好的构架、需求和设计出于自组织团队。每隔一定时间,团队会在如何才能更有效地工作方面进行反省,然后相应地对自己的行为进行调整。,7/16/2023,Institute of Computer SoftwareNanjing University,12,Agile Processes,SCRUMCrystalFeature Driven Development 特征驱动软件开发Adaptive Software Development 自适应软件开发eXtre
9、me Programming(XP)极限编程,7/16/2023,Institute of Computer SoftwareNanjing University,13,摘要,IntroductionAgile Development Agile DesignDesign Patterns,7/16/2023,Institute of Computer SoftwareNanjing University,14,Agile Development,Extreme Programming(XP,极限编程)是一种轻量级的软件开发方法,它使用快速的反馈,大量而迅速的交流,经过保证的测试来最大限度的满
10、足用户的需求。XP强调用户满意,开发人员可以对需求的变化作出快速的反应。XP强调team work。项目管理者,用户,开发人员都处于同一个项目中,他们之间的关系不是对立的,而是互相协作的,具有共同的目标:提交正确的软件。,7/16/2023,Institute of Computer SoftwareNanjing University,15,Extreme Programming,XP强调4个因素:交流(communication),XP要求程序员之间以及和用户之间有大量而迅速的交流简单(simplicity),XP要求设计和实现简单和干净反馈(feedback),通过测试得到反馈,尽快提交
11、软件并根据反馈修改勇气(courage),勇敢的面对需求和技术上的变化,7/16/2023,Institute of Computer SoftwareNanjing University,16,Extreme Programming,XP特别适用于需求经常改变的领域,客户可能对系统的功能并没有清晰的认识,可能系统的需求经常需要变动。XP也适用于风险比较高的项目,当开发人员面对一个新的领域或技术时,XP可以帮助减低风险XP适用于小的项目(人员上),人员在2-12人之间,XP不适用于人员太多的项目,7/16/2023,Institute of Computer SoftwareNanjing U
12、niversity,17,Practices of XP,客户作为团队成员用户素材 user stories短周期交付迭代计划发布计划验收测试结对编程 pair programming,7/16/2023,Institute of Computer SoftwareNanjing University,18,Practices of XP,测试驱动的开发方法 Test-Driven Development集体所有权持续集成可持续的开发速度开放的工作空间计划游戏 planning game简单的设计重构 Refactoring隐喻 Metaphor:将整个系统联系在一起的全局视图,7/16/20
13、23,Institute of Computer SoftwareNanjing University,19,摘要,IntroductionAgile Development Agile Design,7/16/2023,Institute of Computer SoftwareNanjing University,20,7/16/2023,Institute of Computer SoftwareNanjing University,21,What is Design?,“After reviewing the software development life cycle as I u
14、nderstood 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,7/16/2023,Institute of Computer SoftwareNanjing University,22,Design Smells,Rigidity 僵化性 难于修改Fragility 脆弱性 一改便乱Immobility 牢固性 难
15、于重用Viscosity 粘滞性 做好事难Needless Complexity 不必要的复杂性Needless Repetition 不必要的重复Opacity 晦涩性,7/16/2023,Institute of Computer SoftwareNanjing University,23,The“Copy”Program,Initial Design,void copy()int c;while(c=RdKbd()!=EOF)WrtPrt(c);,7/16/2023,Institute of Computer SoftwareNanjing University,24,Requireme
16、nt changes,bool ptFlag=false;/remember to reset this flagvoid Copy()int c;while(c=(ptFlag?RdPt():RdKbd()!=EOF)WrtPrt(c);,7/16/2023,Institute of Computer SoftwareNanjing University,25,Requirement changes again!,bool ptFlag=false;bool punchFlag=false/remember to reset these flagsvoid Copy()int c;while
17、(c=(ptFlag?RdPt():RdKbd()!=EOF)punchFlag?WrtPunch(c):WrtPrt(c);,7/16/2023,Institute of Computer SoftwareNanjing University,26,Agile design of the“copy”example,int RdKbd();void WrtPrt(int);const int EOF=-1;class Reader public:virtual int read()=0;class KeyboardReader:public Reader public:virtual int
18、read()return RdKbd();KeyboardReader GdefaultReader;void Copy(reader,7/16/2023,Institute of Computer SoftwareNanjing University,27,Agile developers,Knew what to do becauseDetect the problem by following agile practices;Diagnose the problem by applying design principlesSolve the problem by applying th
19、e appropriate design patternThe interplay between these three aspects of software development is the act of design.,A more complex example:Multi-panel interactive systems,问题简单方案结构化的方案面向对象的方案讨论,7/16/2023,Institute of Computer SoftwareNanjing University,28,28,Multi-panel interactive systems,问题:业务流程每个会
20、话(session)须经历多个步骤当前步骤显示panel(对话框),获取用户输入(选择),若输入错,给提示,直至正确;依据输入进行处理并转入下一步骤(转入哪个步骤可能依赖于用户的输入);对话界面例如航空订票,7/16/2023,Institute of Computer SoftwareNanjing University,29,29,Institute of Computer SoftwareNanjing University,30,16-Jul-23,Institute of Computer SoftwareNanjing University,7/16/2023,Institute
21、of Computer SoftwareNanjing University,31,状态转换图,设计要点,图可能很大图可能变化要考虑复用,7/16/2023,Institute of Computer SoftwareNanjing University,32,32,软件设计之难在于多种(可能冲突)的需求之间的均衡取舍,A Simple-minded solution,7/16/2023,Institute of Computer SoftwareNanjing University,33,33,A Simple-minded solution,7/16/2023,Institute of C
22、omputer SoftwareNanjing University,34,问题“Goto”!本质:转换图结构分散地hardwired到各个模块的算法中若增加状态或改动流程?如何复用?,34,A functional,top-down solution,好,我们消除goto,并将流程独立出来,放到一个函数中transition(state,choice),7/16/2023,Institute of Computer SoftwareNanjing University,35,35,7/16/2023,Institute of Computer SoftwareNanjing Universi
23、ty,36,7/16/2023,Institute of Computer SoftwareNanjing University,37,Top-down decomposition,7/16/2023,Institute of Computer SoftwareNanjing University,38,The top,7/16/2023,Institute of Computer SoftwareNanjing University,39,Critique,7/16/2023,Institute of Computer SoftwareNanjing University,40,7/16/2
24、023,Institute of Computer SoftwareNanjing University,41,Fragileness,7/16/2023,Institute of Computer SoftwareNanjing University,42,42,增加状态怎样?,如何在不同应用间复用?,object-oriented architecture,Law of inversionIf your routines exchange too many data,put your routines in your data.,7/16/2023,Institute of Compute
25、r SoftwareNanjing University,43,State as a class,7/16/2023,Institute of Computer SoftwareNanjing University,44,7/16/2023,Institute of Computer SoftwareNanjing University,45,Use inheritance and deferred class,7/16/2023,Institute of Computer SoftwareNanjing University,46,7/16/2023,47,7/16/2023,Institu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 敏捷软件开发 敏捷 软件 开发 PPT 课件
链接地址:https://www.31ppt.com/p-5518243.html