- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2 . 1 软件过程概述 2 . 2 软件生命周期 2 . 3 敏捷软件过程 2 . 4 软件工程实践 2 . 5 软件过程模型 2 . 6 能力成熟度模型 2.1.1 软件过程框架 过程的制度化需要过程文化及过程框架的支持,框架是实现整个软件开发活动的基础,那些与过程有关的角色和职责的定义及实现也都离不开框架的支持。任何一个过程都应该包含两个方面的内容,一是组织及管理框架,包括实现软件过程改进活动时所涉及的角色与职责;二是技术及工具框架,包括实现过程活动自动化,以及为实现不同角色和职责提供支持时所需的设备与工具。 框架是一个十分重要的概念,通常其中的角色既可以为过程活动的执行提供帮助与指导,还可以为过程活动的实施与监控提供工具与渠道。 软件过程是整个软件生命周期中一系列有序的软件生产活动的流程。为了能高效地开发一个高质量的软件产品,通常把软件生命周期中各项开发活动的流程用一个合理的框架——开发模型规范描述。这就是软件过程模型,或者称为“软件生命周期模型”。 软件过程模型从一个特定的角度表现一个过程,一般使用直观的图形标识软件开发的过程。主要根据软件的类型和规模,特别是软件的开发方法及开发环境等多种因素确立过程模型。 软件生命周期可划分为定义、开发和运行3个大的阶段,进一步可细分为6个阶段,每个阶段有明确的任务,使规模大、结构复杂且管理复杂的软件开发变得容易控制和管理。 (1)问题的定义及规划:在该阶段软件开发人员与客户进行需求分析,确定软件的开发目标及其可行性。 (2)需求分析:在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。 (3)软件设计:该阶段主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计,以及数据库设计等。 (4)程序编码:该阶段是将软件设计的结果转换成计算机可运行的程序代码。 (5)软件测试:在软件设计完成后要经过严密的测试,以便发现软件在整个设计过程中存在的问题并加以纠正。 (6)软件维护:这是软件生命周期中持续时间最长的阶段。 2.3.1 敏捷软件过程 敏捷开发提出了以下12条原则。 (1)开发人员最优先要做的是通过尽早且持续地交付有价值的软件从而使客户满意。 (2)即使到了开发的后期,也欢迎改变需求,敏捷过程利用变化为客户创造竞争优势。 (3)经常性地交付可以工作的软件,交付的间隔可以从几个星期到几个月,交付的时间间隔越短越好。 (4)在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。 (5)围绕被激励起来的个体构建项目为开发人员提供所需的环境和支持,并且信任他们能够完成工作。 (6)在团队内部,最具有效果并富有效率的传递信息的方法就是面对面的交谈。 (7)工作的软件是首要的进度度量标准。 (8)敏捷过程提倡可持续的开发速度,责任人、开发人员和用户应该能够保持一个长期且恒定的开发速度。 (9)不断地关注优秀的技能和好的设计会增强敏捷能力。 (10)简单是最根本的。 (11)最好的构架、需求和设计出自于组织团队。 (12)每隔一定时间团队会在如何才能更有效地工作方面进行反省,然后相应地对自己的行为进行调整。 极限编程的核心有4个要点:交流、简单、反馈和勇气,它们构成了极限编程的精髓。 1.交流 (1)开发人员与客户的交流 (2)开发人员之间的交流 (3)开发人员与管理人员的交流 2.简单 (1)设计简单 (2)编码简单 (3)注释简单 (4)测试简单 3.反馈 (1)客户对软件的反馈 (2)测试代码对功能代码的反馈 4.勇气 1.什么是结对编程 结对编程是一个非常直观的概念,简单的说是指两位程序员肩并肩地坐在同一台计算机前,面对同一个显示器,使用同一个键盘和同一个鼠标一起工作。他们一起分析,一起设计,一起写测试用例,一起编码,一起单元测试,一起集成测试,一起编写文档等。基本上所有的开发环节都面对面、平等、互补地进行开发工作,并且这两人的角色可以随时交换。 2.结对编程的发展历史 1995年,澳大利亚悉尼理工大学计算机科学教授、国际公认的软件工程理论与实践之人类因素研究权威人士Larry Constantine,在专栏中第1次提到他所观察到的一个现象:“两个开发人员一起工作,可以比以往更快地交出完成并经过测试的代码,而且这些代码几乎是没有错误的”。这是结对编程概念的雏形。1996年,由Kent Beck、Ward Cunningham和Ron Jeffries软件开发理论与实践极限编程倡导者一同提出了极限编程及其12个实践,极限编程是由他们开发面向对象软件经验发展而来的。 3.结对编程的早期实践 Larry Constantine在发表于20世纪80年代初的一篇文章里说,Withtsmith公司里的“动态搭档”能够以前所未有的速度编写出
文档评论(0)