软件过程及其模型.ppt
《软件过程及其模型.ppt》由会员分享,可在线阅读,更多相关《软件过程及其模型.ppt(42页珍藏版)》请在三一办公上搜索。
1、第2章 软件过程及其模型,2.1 软件过程概述,2.2 软件生命周期,2.3 敏捷软件过程,2.4 软件工程实践,2.5 软件过程模型,2.6 能力成熟度模型,2.1 软件过程概述,什么是软件过程?与软件生产(开发)相关的活动。规定科学、有效的软件过程可以提高软件生产效率和软件质量。,2.1 软件过程概述,2.1.1 软件过程框架包含两个方面的内容:一是组织及管理框架,包括实现软件过程改进活动时所涉及的角色与职责;项目经理、系统分析员、程序员、测试员、文档管理员二是技术及工具框架,包括实现过程活动自动化,以及为实现不同角色和职责提供支持时所需的设备与工具。软件、硬件、开发模式、框架是一个十分重
2、要的概念,通常其中的角色既可以为过程活动的执行提供帮助与指导,还可以为过程活动的实施与监控提供工具与渠道。,2.1.2 软件过程模型,软件过程是整个软件生命周期中一系列有序的软件生产活动的流程。为了能高效地开发一个高质量的软件产品,通常把软件生命周期中各项开发活动的流程用一个合理的框架开发模型规范描述。这就是软件过程模型,或者称为“软件生命周期模型”。软件过程模型从一个特定的角度表现一个过程,一般使用直观的图形标识软件开发的过程。主要根据软件的类型和规模,特别是软件的开发方法及开发环境等多种因素确立过程模型。典型代表:瀑布模型、螺旋模型、面向对象模型等。,2.2 软件生命周期,软件生命周期可划
3、分为定义、开发和运行3个大的阶段,进一步可细分为6个阶段,每个阶段有明确的任务,使规模大、结构复杂且管理复杂的软件开发变得容易控制和管理。(1)问题的定义及规划:在该阶段软件开发人员与客户进行需求交流,确定软件的开发目标及其可行性。(2)需求分析:在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。(3)软件设计:该阶段主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计,以及数据库设计等。(4)程序编码:该阶段是将软件设计的结果转换成计算机可运行的程序代码。(5)软件测试:在软件设计完成后要经过严密的测试,以便发现软件在整个设计过程中存在的问题并加以纠正。(6)软件维
4、护:这是软件生命周期中持续时间最长的阶段。,2.3 敏捷软件过程,敏捷方法说明开发项目是一个学习的体验。没有谁能在完全理解所有需求之后才开始项目,即使是顾客也一样。2.3.1 敏捷软件过程敏捷方法的两大特征:对“适应性”的强调和对“人”的关注。,2.3 敏捷软件过程,2.3.1 敏捷软件过程敏捷开发提出了以下12条原则。(1)开发人员最优先要做的是通过尽早且持续地交付有价值的软件从而使客户满意。(2)即使到了开发的后期,也欢迎改变需求,敏捷过程利用变化为客户创造竞争优势。(3)经常性地交付可以工作的软件,交付的间隔可以从几个星期到几个月,交付的时间间隔越短越好。(4)在整个项目开发期间,业务人
5、员和开发人员必须天天都在一起工作。(5)围绕被激励起来的个体构建项目为开发人员提供所需的环境和支持,并且信任他们能够完成工作。,2.3.1 敏捷软件过程,(6)在团队内部,最具有效果并富有效率的传递信息的方法就是面对面的交谈。(7)工作的软件是首要的进度度量标准。(8)敏捷过程提倡可持续的开发速度,责任人、开发人员和用户应该能够保持一个长期且恒定的开发速度。(9)不断地关注优秀的技能和好的设计会增强敏捷能力。(10)简单是最根本的。(11)最好的构架、需求和设计出自于组织团队。(12)每隔一定时间团队会在如何才能更有效地工作方面进行反省,然后相应地对自己的行为进行调整。,2.3.2 极限编程,
6、极限编程(eXtreme Programming)是敏捷软件开发中的一种方法。具有强沟通、简化设计和迅速反馈等特点。一般适合于规模小、进度紧、需求不稳定、开发小项目的小团队。观点:软件需求的不断变化是很自然的,是不可避免的,应欣然接受。极限是指对比传统的项目开发方式,XP强调把列出的每个方法和思想做到极限并做到最好。优点:轻量型、灵活;专家协作开发方式。重视客户反馈。,2.3.2 极限编程,极限编程的核心有4个要点:交流、简单、反馈和勇气,它们构成了极限编程的精髓。1交流(1)开发人员与客户的交流(2)开发人员之间的交流(3)开发人员与管理人员的交流2简单(1)设计简单(2)编码简单(3)注释
7、简单(4)测试简单,3反馈(1)客户对软件的反馈(2)测试代码对功能代码的反馈4勇气接受任务的勇气。,2.3.3 结对编程,1什么是结对编程结对编程是一个非常直观的概念,简单的说是指两位程序员肩并肩地坐在同一台计算机前,面对同一个显示器,使用同一个键盘和同一个鼠标一起工作。他们一起分析,一起设计,一起写测试用例,一起编码,一起单元测试,一起集成测试,一起编写文档等。基本上所有的开发环节都面对面、平等、互补地进行开发工作,并且这两人的角色可以随时交换。2结对编程的发展历史1995年,澳大利亚悉尼理工大学计算机科学教授、国际公认的软件工程理论与实践之人类因素研究权威人士Larry Constant
8、ine,在专栏中第1次提到他所观察到的一个现象:“两个开发人员一起工作,可以比以往更快地交出完成并经过测试的代码,而且这些代码几乎是没有错误的”。这是结对编程概念的雏形。1996年,由Kent Beck、Ward Cunningham和Ron Jeffries软件开发理论与实践极限编程倡导者一同提出了极限编程及其12个实践,极限编程是由他们开发面向对象软件经验发展而来的。,2.3.3 结对编程,3结对编程的早期实践Larry Constantine在发表于20世纪80年代初的一篇文章里说,Withtsmith公司里的“动态搭档”能够以前所未有的速度编写出漏洞更少的代码来。在对贝尔实验室的Pas
9、teur项目进行总结研究之后,软件模式运动中最有影响力的人物之一James Coplien,于1995年提出了“结对开发”的企业模式。2001年秋,美国北卡州大学的Laurie Williams做了一个实验,该实验主要用于研究两个课题,即结对编程的作用和积极协作学习的重要性。2002年,ThoughtWorks公司的Amr Elssamadisy在项目中实施结对编程从而对结对编程编程进行研究。通过对计划、提交周期、设计的简单性、测试和重构等方面和单独工作进行对比,验证了结对编程的效率比单独编程更高。,2.3.3 结对编程,4结对编程角色互换5结对编程优势与问题(1)可以最大化地提高工作效率。(
10、2)可以生成更好的代码。(3)可以减少风险。(4)是知识传播的最好途径。(5)可以打造出最佳的合作团队。6结对编程分析(1)结对编程与敏捷实践。(2)结对编程与测试驱动开发。(3)结对编程与代码重构。(4)结对编程与简单设计。,2.3.4 分布式结对编程,1面对面结对编程的不足基础设施缺乏、地理位置分离和时间安排冲突等。2分布式结对编程概念分布式结对编程是一种编程风格,两个开发人员在地理上是分布的,但可以通过网络在同一软件制品上同步协作。3分布式结对编程优势,2.3.4 分布式结对编程,4分布式结对编程的要求当决定使用哪一种分布式结对编程工具时,要考虑以下几种特征。(1)能不能容易地和当前集成
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 过程 及其 模型

链接地址:https://www.31ppt.com/p-6611028.html