软件工程-软件过程_第1页
软件工程-软件过程_第2页
软件工程-软件过程_第3页
软件工程-软件过程_第4页
软件工程-软件过程_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章软件过程福州大学亓晓静2第2章软件过程2.1软件生命周期与瀑布模型2.2软件过程的概念2.3几个典型的软件过程模型2.4迭代与递增2.5RUP软件开发过程2.6敏捷开发2.1软件生命周期与瀑布模型1.什么是软件生命周期2.软件生命周期的阶段3.各阶段的任务与文档4.瀑布模型福州大学亓晓静31.什么是软件生命周期一个软件从定义、开发、使用和维护,直到陈旧退役,要经历一个漫长的时期,称为软件的生命周期。SoftwareLifeCycle也称为软件生存周期福州大学亓晓静4人的生命周期:婴儿、幼儿、儿童、少年、…2.软件生命周期的阶段P18福州大学亓晓静软件生命周期软件定义开发时期运行维护问题定义可行性研究需求分析概要设计详细设计编码和单元测试综合测试系统设计系统实现WhatHowChange系统分析员系统设计员测试员程序设计员5福州大学亓晓静阶段任务结果(文档)

问题定义问题是什么问题概况说明可行性研究是否可行可行性研究报告需求分析系统要做什么需求规格说明总体设计如何解决总体规格说明详细设计应该怎样具体地实现详细规格说明编码和单元测试编写正确的程序程序说明、清单、单元测试方案和结果系统测试符合要求的软件测试方案和结果系统维护持久地满足用户需要完整准确的维护记录逐步细化6可行性研究任务了解用户要求和现实环境,从技术、经济、市场等方面研究并论证开发该软件系统的可行性技术途径调查和了解用户要求和现实环境攒写调查报告可行性论证和分析(技术、经济等)如可行,制定初步项目开发计划(人员,进度)阶段性产品可行性论证报告初步的项目开发计划福州大学亓晓静7需求分析任务确定用户对拟开发软件系统的需求包括:功能性能运行环境约束重要性软件开发依据,软件验收的标准困难性难以说清,动态变化,歧义,复杂技术途径和工具需求分析人员需与用户不断、反复地交流和商讨,使用户需求逐步准确化、一致化、完全化抽象、问题分解、快速原型、多视点等技术阶段性产品软件需求规格说明书SRS(功能,性能和运行环境约束)福州大学亓晓静8概要设计(总体设计)任务根据SRS建立目标软件系统总体结构、设计全局数据库和数据结构,规定设计约束,制定集成测试计划等等。技术途径和工具根据软件需求规格说明书,自顶向下,逐步求精,抽象,模块化,局部化,信息隐藏…...阶段性产品概要设计规格说明书数据库或数据结构设计说明书集成测试计划。福州大学亓晓静9详细设计任务细化概要设计所生成的各个模块,并详细描述程序模块的内部细节(算法,数据结构等),形成可编程的程序模块,制订单元测试计划技术途径根据SRS和概要设计结果进行,单入口单出口阶段性产品详细设计规格说明书单元测试计划福州大学亓晓静10实现任务根据详细设计规格说明书编写源程序,并对程序进行调试和单元测试,验证程序与详细设计文档一致性技术途径和工具以详细设计规格说明书为依据、基于某种程序设计语言进行编码阶段性产品源程序代码单元测试报告福州大学亓晓静11集成测试任务根据概要设计规格说明书,将经过单元测试的模块逐步进行集成和测试技术途径和工具以概要设计规格说明书和集成测试计划为依据,进行集成模块并进行测试IDE,专有工具等阶段性产品生成满足概要设计要求、可运行的系统源程序和系统集成测试报告福州大学亓晓静12确认测试任务根据软件需求规格说明书,测试软件系统是否满足用户的需求途径由用户参与,以软件需求规格说明书为依据进行确认测试阶段性产品可供用户使用的软件产品(文档,源程序)福州大学亓晓静13软件维护任务对使用后的软件进行维护例如:修正使用过程中发现的错误-纠错性维护增加新的功能-完善性维护从一个环境搬迁到另一个环境-适应性维护……途径以文档和源程序为基础按用户要求进行阶段性产品版本更新的软件产品福州大学亓晓静14福州大学亓晓静15福州大学亓晓静16瀑布模型图4.瀑布模型主要思想存在的问题福州大学亓晓静17主要思想基本活动与软件生命周期的阶段是一致的应制定软件开发规范或开发标准,明确规定各个开发阶段应交付的产品开发流程:线性每个阶段只有当其前一个阶段完成,并经过确认和验证以后才能开始(因果关系)需对阶段性产品进行评审福州大学亓晓静18存在的问题与软件规律不符软件工作是一个高速的、永不停止的变化流需求必须准确定义和相对稳定应对需求变化的能力非常弱与用户见面晚,纠错慢直到项目结束之前,都不能演示系统,增加了项目的风险。福州大学亓晓静19当条件满足时,瀑布模型仍然很有效福州大学亓晓静202.2软件过程的概念1.软件过程的公共框架2.软件过程模型3.软件过程能力成熟度模型福州大学亓晓静211.软件生存期过程过程为了达到目标所进行的一系列活动或路线图软件开发和维护的目标按时交付高质量的、满足需求的、低成本的软件1995年ISO/IEC12207给出了一个软件过程的公共框架,P18图2-1为了获得软件产品所需要完成的一系列有关的活动每个过程包含一组活动,每项活动又包含一组任务福州大学亓晓静22福州大学亓晓静232.软件过程模型描述了整个软件生存期中所实施的全部过程、活动和任务的结构框架是一个子集根据开发的软件项目规模和应用性质、采用的方法、需要的控制、参与的人员等多种因素进行裁剪常用的软件过程模型没有最佳的软件过程软件过程需要不断改进福州大学亓晓静243.软件过程能力成熟度模型CMM评价软件开发组织的软件过程的能力评估调查表福州大学亓晓静252.3几个典型的软件过程模型1.快速原型2.增量模型3.螺旋模型4.构件组装模型福州大学亓晓静26福州大学亓晓静271.快速原型开发流程快速构建原型

明确需求

丢弃原型重新开发基本思想利用原型与用户沟通,以获取需求样品【提示】快速原型法实际上是了解软件需求的一种方法,通常不做为一个独立的模型来使用。福州大学亓晓静282.增量模型基本思想把项目拆解成若干个部分,分别开发开发流程拆解的方法有两种:图2-5、图2-6线性流+并行流如何实施第一个增量往往是核心产品优缺点P25福州大学亓晓静29例:文字处理软件第一个增量提供基本的文件管理、编辑和文档生成第二个增量提供复杂的编辑和文档生成第三个增量提供拼写和语法检查第四个增量提供高级页面排版功能福州大学亓晓静30福州大学亓晓静313.螺旋模型开发流程以螺旋的方式运用瀑布模型基本思想是瀑布模型、原型模型的有机结合,同时强调了风险分析风险驱动把原型开发作为降低风险的机制福州大学亓晓静32螺旋模型的优缺点对于大型系统及软件的开发,这种模型是一个很好的方法。开发者和客户能够较好地对待和理解每一个演化级别上的风险。需要相当的风险分析评估专门技术,比较复杂。不适用于合同项目福州大学亓晓静334.构件组装模型基于构件的软件开发接口组装利用已有的构件优点P27问题福州大学亓晓静34例如果你的客户要求你在一个不可能完成的时间提交产品,你会如何处理?建议采用增量模型,先迅速地为用户提供一套功能有限但包含核心功能的软件产品,然后在后续版本中进行细化和扩展功能。福州大学亓晓静352.4迭代与递增福州大学亓晓静36需求设计实现、测试、集成和进一步设计最终集成和系统测试需求设计3周(例如)系统是增量式增长的.根据迭代N的反馈,在迭代第N+1中对需求和设计进行调整。如此反复,不断进化。迭代:一系列的短期小项目.时间最终集成和系统测试实现、测试、集成和进一步设计迭代软件开发过程是OOAD的最佳实践由一系列短时快速的开发小项目组成每次迭代都有各自的需求分析、设计、实现和测试活动,并集成为可执行的局部系统通过不断的反馈,持续地扩展和精化系统,使之最终成为满足用户需求的系统需求和设计的不稳定性

随时间下降福州大学亓晓静37早期迭代远离系统的“真实路径”。通过反馈和设计,系统向最适宜的需求和设计收敛包括设计、实现、集成和测试的一次迭代,(快速的一小步)及时反馈、适应变化软件开发过程中充斥着变化无论是需求、设计还是编码,不可能一次性就达到完美变化不是对过去工作的否定,而是着眼于未来,是使工作更加完善的必要手段及时准确的反馈,才能应对变化快速反应,周期不宜过长用户的积极参与,才能得到正确的、有价值的反馈福州大学亓晓静38周期短、目标明确迭代周期在2~6周目标明确达到什么目的如何检查该目标是否已经达到福州大学亓晓静39例子P29A、B、C、D四个大的业务模块,每个约两周增量第一次完成A、B第二次完成C、D迭代第一次仅完成ABCD四个的基本业务第二次逐渐细化补充完成结果两周之后,迭代的四个模块都与用户见面,基本可用福州大学亓晓静40迭代+增量:每次迭代,既有新增模块,也有对已开发模块的完善2.5RUP软件开发过程一、RUP的二维开发模型二、RUP的6个最佳实践活动三、开发过程的4个阶段和里程碑四、9个核心工作流五、RUP的十大要素福州大学亓晓静41RUP:RationalUnifiedProcess一、RUP的二维开发模型42值得注意的是,几乎所有的工作流在所有的时间段内均有工作量,只是工作量的大小不同而已。这与瀑布式开发模型有明显的不同。横轴:时间轴展开了过程的生命周期初始、细化、构造和交付体现开发过程的动态结构纵轴:内容轴列出开展的活动项目:9个核心工作流分为6个核心过程工作流(CoreProcessWorkflows)3个核心支持工作流(CoreSupportingWorkflows)体现开发过程的静态结构福州大学亓晓静43二、RUP的6个最佳实践活动1.迭代开发规避风险,更好地获取需求2.管理需求提高软件质量和客户满意度3.使用构件的体系框架系统结构稳定4.可视化的建模(UML)更好地理解与沟通福州大学亓晓静445.持续的质量检验及早发现软件中的缺陷6.管理变更项目成败的关键福州大学亓晓静45三、开发过程的4个阶段和里程碑初始阶段----目标建立商业模型并确定边界细化阶段----结构分析问题领域,建立完整的体系结构,编制计划构造阶段----初始功能开发构件并集成为产品交付阶段----产品发布确保软件对用户是可用的福州大学亓晓静46四、9个核心工作流1.商业建模2.需求3.分析和设计4.实现5.测试6.部署7.配置和变更8.项目管理9.环境福州大学亓晓静47五、RUP的十大要素P33福州大学亓晓静48六、RUP的运用经验P35福州大学亓晓静492.6敏捷开发敏捷开发一些经验丰富的软件设计师在应对快速交付、需求易变的开发要求实践中分别总结出自己独特且有效的软件开发方法,被业界概括为敏捷软件开发方法。其中以“极限编程”最为流行。特点:以人为核心、循环迭代、响应变化目标:能高质量地快速交付客户满意的工作软件福州大学亓晓静50敏捷宣言敏捷开发实例问题定义企业网站项目主要功能包括新闻发布、产品信息发布以及后台的用户管理和权限设置外围的论坛、FTP和电子邮件系统福州大学亓晓静51需求分析列出网站所有的功能,标记各功能之间的关系所有网页的布局问题:用户权限管理的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论