软件工程——软件过程.ppt

上传人:夺命阿水 文档编号:235698 上传时间:2023-03-10 格式:PPT 页数:55 大小:3.16MB
返回 下载 相关 举报
软件工程——软件过程.ppt_第1页
第1页 / 共55页
软件工程——软件过程.ppt_第2页
第2页 / 共55页
软件工程——软件过程.ppt_第3页
第3页 / 共55页
软件工程——软件过程.ppt_第4页
第4页 / 共55页
软件工程——软件过程.ppt_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《软件工程——软件过程.ppt》由会员分享,可在线阅读,更多相关《软件工程——软件过程.ppt(55页珍藏版)》请在课桌文档上搜索。

1、第2章 软件过程,2,第2章 软件过程,2.1 软件生命周期与瀑布模型2.2 软件过程的概念2.3 几个典型的软件过程模型2.4 迭代与递增2.5 RUP软件开发过程2.6 敏捷开发,2.1 软件生命周期与瀑布模型,1.什么是软件生命周期2.软件生命周期的阶段3.各阶段的任务与文档4.瀑布模型,3,1.什么是软件生命周期,一个软件从定义、开发、使用和维护,直到陈旧退役,要经历一个漫长的时期,称为软件的生命周期。Software Life Cycle也称为软件生存周期,4,人的生命周期:婴儿、幼儿、儿童、少年、,2.软件生命周期的阶段P18,What,How,Change,系统分析员,系统设计员

2、,测试员,程序设计员,5,逐步细化,6,可行性研究,任务了解用户要求和现实环境,从技术、经济、市场等方面研究并论证开发该软件系统的可行性技术途径调查和了解用户要求和现实环境攒写调查报告可行性论证和分析(技术、经济等)如可行,制定初步项目开发计划(人员,进度)阶段性产品可行性论证报告初步的项目开发计划,7,需求分析,任务确定用户对拟开发软件系统的需求包括:功能性能运行环境约束重要性软件开发依据,软件验收的标准困难性难以说清,动态变化,歧义,复杂技术途径和工具需求分析人员需与用户不断、反复地交流和商讨,使用户需求逐步准确化、一致化、完全化抽象、问题分解、快速原型、多视点等技术阶段性产品软件需求规格

3、说明书SRS(功能,性能和运行环境约束),8,概要设计(总体设计),任务根据SRS建立目标软件系统总体结构、设计全局数据库和数据结构,规定设计约束,制定集成测试计划等等。技术途径和工具根据软件需求规格说明书,自顶向下,逐步求精,抽象,模块化,局部化,信息隐藏.阶段性产品概要设计规格说明书数据库或数据结构设计说明书集成测试计划。,9,详细设计,任务细化概要设计所生成的各个模块,并详细描述程序模块的内部细节(算法,数据结构等),形成可编程的程序模块,制订单元测试计划技术途径根据SRS和概要设计结果进行,单入口单出口阶段性产品详细设计规格说明书单元测试计划,10,实现,任务根据详细设计规格说明书编写

4、源程序,并对程序进行调试和单元测试,验证程序与详细设计文档 一致性技术途径和工具以详细设计规格说明书为依据、基于某种程序设计语言进行编码阶段性产品源程序代码单元测试报告,11,集成测试,任务根据概要设计规格说明书,将经过单元测试的模块逐步进行集成和测试技术途径和工具以概要设计规格说明书和集成测试计划为依据,进行集成模块并进行测试IDE,专有工具等阶段性产品生成满足概要设计要求、可运行的系统源程序和系统集成测试报告,12,确认测试,任务根据软件需求规格说明书,测试软件系统是否满足用户的需求途径 由用户参与,以软件需求规格说明书为依据进行确认测试阶段性产品可供用户使用的软件产品(文档,源程序),1

5、3,软件维护,任务对使用后的软件进行维护例如:修正使用过程中发现的错误纠错性维护增加新的功能完善性维护从一个环境搬迁到另一个环境适应性维护途径以文档和源程序为基础按用户要求进行阶段性产品版本更新的软件产品,14,15,16,瀑布模型图,4.瀑布模型,主要思想存在的问题,17,主要思想,基本活动与软件生命周期的阶段是一致的应制定软件开发规范或开发标准,明确规定各个开发阶段应交付的产品开发流程:线性每个阶段只有当其前一个阶段完成,并经过确认和验证以后才能开始(因果关系)需对阶段性产品进行评审,18,存在的问题,与软件规律不符软件工作是一个高速的、永不停止的变化流需求必须准确定义和相对稳定应对需求变

6、化的能力非常弱与用户见面晚,纠错慢直到项目结束之前,都不能演示系统,增加了项目的风险。,19,当条件满足时,瀑布模型仍然很有效,20,2.2 软件过程的概念,1.软件过程的公共框架2.软件过程模型3.软件过程能力成熟度模型,21,1.软件生存期过程,过程为了达到目标所进行的一系列活动或路线图软件开发和维护的目标按时交付高质量的、满足需求的、低成本的软件1995年ISO/IEC 12207给出了一个软件过程的公共框架,P18图2-1为了获得软件产品所需要完成的一系列有关的活动每个过程包含一组活动,每项活动又包含一组任务,22,23,2.软件过程模型,描述了整个软件生存期中所实施的全部过程、活动和

7、任务的结构框架是一个子集根据开发的软件项目规模和应用性质、采用的方法、需要的控制、参与的人员等多种因素进行裁剪常用的软件过程模型没有最佳的软件过程软件过程需要不断改进,24,3.软件过程能力成熟度模型CMM,评价软件开发组织的软件过程的能力评估调查表,25,2.3 几个典型的软件过程模型,1.快速原型2.增量模型3.螺旋模型4.构件组装模型,26,27,1.快速原型,开发流程快速构建原型明确需求丢弃原型重新开发基本思想利用原型与用户沟通,以获取需求样品【提示】快速原型法实际上是了解软件需求的一种方法,通常不做为一个独立的模型来使用。,28,2.增量模型,基本思想把项目拆解成若干个部分,分别开发

8、开发流程拆解的方法有两种:图2-5、图2-6线性流+并行流如何实施第一个增量往往是核心产品优缺点P25,29,例:文字处理软件,第一个增量提供基本的文件管理、编辑和文档生成第二个增量提供复杂的编辑和文档生成第三个增量提供拼写和语法检查第四个增量提供高级页面排版功能,30,31,3.螺旋模型,开发流程以螺旋的方式运用瀑布模型基本思想是瀑布模型、原型模型的有机结合,同时强调了风险分析风险驱动把原型开发作为降低风险的机制,32,螺旋模型的优缺点,对于大型系统及软件的开发,这种模型是一个很好的方法。开发者和客户能够较好地对待和理解每一个演化级别上的风险。需要相当的风险分析评估专门技术,比较复杂。不适用

9、于合同项目,33,4.构件组装模型,基于构件的软件开发接口组装利用已有的构件优点P27问题,34,例,如果你的客户要求你在一个不可能完成的时间提交产品,你会如何处理?建议采用增量模型,先迅速地为用户提供一套功能有限但包含核心功能的软件产品,然后在后续版本中进行细化和扩展功能。,35,2.4 迭代与递增,36,迭代软件开发过程是OOAD的最佳实践由一系列短时快速的开发小项目组成每次迭代都有各自的需求分析、设计、实现和测试活动,并集成为可执行的局部系统通过不断的反馈,持续地扩展和精化系统,使之最终成为满足用户需求的系统需求和设计的不稳定性 随时间下降,37,包括设计、实现、集成和测试的一次迭代,(

10、快速的一小步),及时反馈、适应变化,软件开发过程中充斥着变化无论是需求、设计还是编码,不可能一次性就达到完美变化不是对过去工作的否定,而是着眼于未来,是使工作更加完善的必要手段及时准确的反馈,才能应对变化快速反应,周期不宜过长用户的积极参与,才能得到正确的、有价值的反馈,38,周期短、目标明确,迭代周期在26周目标明确达到什么目的如何检查该目标是否已经达到,39,例子,P29A、B、C、D四个大的业务模块,每个约两周增量第一次完成A、B第二次完成C、D迭代第一次仅完成ABCD四个的基本业务第二次逐渐细化补充完成结果两周之后,迭代的四个模块都与用户见面,基本可用,40,迭代+增量:每次迭代,既有

11、新增模块,也有对已开发模块的完善,2.5 RUP软件开发过程,一、RUP的二维开发模型二、RUP的6个最佳实践活动三、开发过程的4个阶段和里程碑四、9个核心工作流五、RUP的十大要素,41,RUP:Rational Unified Process,一、RUP的二维开发模型,42,值得注意的是,几乎所有的工作流在所有的时间段内均有工作量,只是工作量的大小不同而已。这与瀑布式开发模型有明显的不同。,横轴:时间轴展开了过程的生命周期初始、细化、构造和交付体现开发过程的动态结构纵轴:内容轴列出开展的活动项目:9个核心工作流分为6个核心过程工作流(Core Process Workflows)3个核心支

12、持工作流(Core Supporting Workflows)体现开发过程的静态结构,43,二、RUP的6个最佳实践活动,1.迭代开发规避风险,更好地获取需求2.管理需求提高软件质量和客户满意度3.使用构件的体系框架系统结构稳定4.可视化的建模(UML)更好地理解与沟通,44,5.持续的质量检验及早发现软件中的缺陷6.管理变更项目成败的关键,45,三、开发过程的4个阶段和里程碑,初始阶段-目标建立商业模型并确定边界细化阶段-结构分析问题领域,建立完整的体系结构,编制计划构造阶段-初始功能开发构件并集成为产品交付阶段-产品发布确保软件对用户是可用的,46,四、9个核心工作流,1.商业建模2.需求

13、3.分析和设计4.实现5.测试6.部署7.配置和变更8.项目管理9.环境,47,五、RUP的十大要素,P33,48,六、RUP的运用经验,P35,49,2.6 敏捷开发,敏捷开发一些经验丰富的软件设计师在应对快速交付、需求易变的开发要求实践中分别总结出自己独特且有效的软件开发方法,被业界概括为敏捷软件开发方法。其中以“极限编程”最为流行。特点:以人为核心、循环迭代、响应变化目标:能高质量地快速交付客户满意的工作软件,50,敏捷开发实例,问题定义企业网站项目主要功能包括新闻发布、产品信息发布以及后台的用户管理和权限设置外围的论坛、FTP和电子邮件系统,51,需求分析列出网站所有的功能,标记各功能之间的关系所有网页的布局问题:用户权限管理的设计方案企业部门众多:100+授权管理方式:层层授权,52,构建第一次迭代20天主要功能第二次迭代完善细节部署,53,一周之后太过繁琐的层层授权模式导致客户怨声载道,重新开发与用户共同商讨优化的权限管理模式User Story客户代表的参与整个开发期间都与项目组在一起小步前进快速迭代,54,系统规模:100多个类,6700+代码工作量:3个人,6个月 其中,实际开发不到3个月(包括二次开发),55,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号