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