欢迎来到天天文库
浏览记录
ID:57229881
大小:919.50 KB
页数:46页
时间:2020-08-04
《软件开发规范培训课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、软件开发规范培训蓝网技术2004.11王宁大纲什么是软件开发方法论成熟的软件开发方法蓝网的软件开发能力软件开发是什么?软件开发是一种艺术、工艺、科学、工程还是其他什么东西?这有什么意义吗?软件开发现状80%的软件项目以失败告终项目的最终交付时间=(工程师的估算×120%)×2目标——为什么一定要有方法?希望软件能尽快完成,尽可能的没有缺陷,并且找到一种方法来考察团队是如何工作的。不同的软件理念编程应该工程化:软件工程“以人为本”和“以沟通为中心”没有银弹任何技术都有局限性,不可能找到一种最好、最正确的软件开发方法。到实践中寻找20年成功的软件项目实践是检验真理的
2、唯一标准分析提炼方法论方法论把这些方法论(methodology)的思想原理作为行为准则把追求具有普遍性的行为准则与“每个项目都是独一无二的”思想结合起来推出一套有效的和“自我演进(self-evolving)”的准则方法论和三个层次人们学习和掌握新技能要经历三个阶段:照猫画虎following(保持、遵守)突破框架detaching(有所创新)融会贯通fluent(超越)首先,根据写下的规则去做然后,调整规则并进行认证最后,不要关心你是在运用XP还是CMM方法论的要素过程里程碑活动质量团队产品技术角色工具标准技能个性团队价值取向检验方法论的7条原则原则1交互式
3、、面对面的交流是费用最低、速度最快的信息交换方式原则2方法超重的后果是高昂的代价原则3更大的团队需要更重的一些方法原则4项目危险度越高对正规度的要求也越高原则5增加反馈和交流,减少对中间工件的需求原则6纪律、技能、理解与过程、形式、文档对立原则7从非瓶颈活动中求效率应用原则的结果推论1在项目中增加人手是代价高昂的推论2团队大小的增加有很大的跳跃性推论3团队应该被改进,而不是被扩大A.培训、学习,以提高他们的技能B.让他们坐的更近,以降低沟通成本C.改进他们的关系和加强团队精神D.用一些更有才能的人替换团队中的某些人推论4不同的项目需要不同的方法论推论5轻量级方法
4、论更好,除非他们不够再用推论6方法论应该能够被缩放以适应不同情况软件开发的正规军CMMRational统一过程(RUP)敏捷软件开发(极限编程XP)软件生命周期模型瀑布模型(顺序开发)迭代模型(并行开发)大师的声音《软件开发的创新思维》交互设计《软件工艺》软件技术是门工艺特征概念极限编程(ExtremeProgramming):一种高度动态的软件开发过程,它通过非常短的迭代周期来应对需求的变化。能力成熟度模型(CMM):一个过程框架,对过程进行优化和评估。个体软件过程(PSP):是一个过程描述、测量和方法的结构化集合,能够帮助软件工程师来改善其个体性能。敏捷软件
5、开发宣言我们正在通过亲身实践以及帮助他人实践,揭示更好的软件开发方法。通过这项工作,我们认为:个体和交互胜过过程和工具可以工作的软件胜过面面俱到的文档客户合作胜过合同谈判响应变化胜过遵循计划虽然右项也具有价值,但我们认为左项具有更大的价值。敏捷宣言遵循的原则最优先做的是通过尽早的、持续的交付有价值的软件来使客户满意。即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势。经常性的交付可以工作的软件,交付的时间越短越好。在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。围绕被激励起来的个体来构建项目。给他们提供所需的项目环境和支持,并且
6、信任他们能够完成工作。在团队内部,最有效果并且富有效率的传递信息的方法,就是面对面的交谈。工作的软件是首要的进度衡量的标准。敏捷过程提倡可持续的开发速度。责任人、开发者和用户应该能够保持一个长期的、恒定的开发速度。不断关注优秀的技能和好的设计会增强敏捷能力。简单是根本的。最好的构架、需求和设计出自于自组织的团队。每隔一段时间,团队会在如何才能更有效的工作方面进行反省,然后相应地对自己的行为进行调整。极限编程实践完整团队项目的所有参与者(开发人员、业务分析师、测试人员等)一起工作在一个开发的环境中,他们是同一个团队的成员。计划游戏计划是持续的、循序渐进的。每两周,
7、开发人员就为下两周估算候选特性的成本,而客户则根据成本和商务价值来选择要实现的特性。客户测试作为选择每个所期望特性的一部分,客户定义出自动验收测试来表明该特性可以工作。简单设计团队保持设计恰好和当前的系统功能相匹配,它通过了所有的测试,不包含任何重复,表达出了编写者想表达的所有的东西,并且包含尽可能少的代码。结对编程所有的产品软件都是由两个程序员、并排坐在一起在同一台机器上构建的。测试驱动开发程序员以非常短的循环周期工作,他们先增加一个失败的测试,然后使之通过。改进设计随时改进糟糕的代码,保持代码尽可能的干净、具有表达力。持续集成团队总是使系统完整的被集成。集体
8、代码所有权任何结对的程序
此文档下载收益归作者所有