《软件工程》2软件过程模型.ppt

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

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

1、.,1,第2讲 软件过程模型(Process Model),.,2,软件过程软件生命周期软件过程模型瀑布模型快速原型模型喷泉模型演化模型增量模型螺旋模型软件开发过程的一般视图,主要内容,.,3,方法使用的顺序;要求交付的文档资料;为保证质量和适应变化所需要的管理;软件开发各个阶段完成的里程碑。,软件开发提供了“如何做”的技术。,为软件工程方法提供了自动的或半自动的软件支撑环境,CASE,软件工程层次图,任何工程方法必须以有组织的质量承诺为基础。支持软件工程的根基在于对质量的关注。,.,4,1 软件过程,软件过程需要提供一个公共过程框架,在该框架下可以建立一个软件开发的综合计划。选择一个公共过程

2、框架是根据产品、人员和项目而调整的。,.,5,框架活动Framework Activities 任务集合work tasks工作任务work products交付物milestones&deliverables质量保证点QA checkpoints,.,6,软件生命周期,软件生命周期是软件过程模型的基础,是软件产品或系统一系列相关活动的全周期。软件生命周期阶段:可行性研究及项目定义需求分析设计(总体设计和详细设计)编程实现测试使用与维护,.,7,软件生命周期,运行和维护,.,8,问题定义和可行性研究,确定要开发软件系统的总目标和规模。从技术、经济和社会因素等方面的要求来论证完成该软件任务的可行

3、性。估计可利用的资源(计算机硬件,软件,人力等)、成本、效益、开发进度。制定出完成开发任务的实施计划,连同可行性研究报告,提交管理部门审查。,.,9,需求分析,理解用户需求,并将用户需求用书面形式表达出来。编写软件需求规格说明书或系统功能说明书及初步的系统用户手册。需求说明书是以后阶段工作的基础。将需求规格说明书提交管理机构评审。,.,10,设计,总体设计“如何解决问题”在需求说明书的基础上建立软件的体系结构。结构中每一组成部分都是意义明确的模块,每个模块都和某些需求相对应可以列出多种解决方案进行比较详细设计 对每个模块要完成的工作进行具体的描述,为源程序编写打下基础编写设计说明书(模块说明书

4、、数据库或文件结构说明书等),提交评审。,.,11,编码,把软件设计转换成计算机可以接受的程序代码,即写成以某一种特定程序设计语言表示的“源程序清单”。写出的程序应当是结构良好、清晰易读的(如匈牙利法则),且与设计相一致的。,.,12,测试,单元测试:查找各模块在功能和结构上存在的问题并加以纠正。集成测试:将已测试过的、并且相关的模块按一定顺序组装起来进行测试。按规定的各项需求,逐项进行系统测试,决定已开发的软件是否合格,能否交付用户使用。,.,13,运行和维护,改正性维护:运行中发现了软件中的错误需要修正。适应性维护:为了适应变化了的软件工作环境,需做适当变更。完善性维护:为了增强软件的功能

5、需做变更。预防性维护:修改软件为将来的维护活动预先做准备,.,14,2 传统瀑布模型,可行性研究报告,需求规格说明书,设计规格说明书,程序,测试报告,软件定义,可行性研究与计划,需求分析,设计,编码,测试,运行和维护,问题描述,.,15,瀑布模型,所有过程模型的鼻祖。-Royce,1970软件开发过程划分成若干阶段,每个阶段的任务相对独立。从技术和管理两个角度进行严格的审查,经确认之后才开始下一阶段的工作。-项目是按照一定的顺序执行。瀑布模型是文档驱动的,各个阶段不连续也不交叉。,.,16,瀑布模型的特点,阶段间具有顺序性和依赖性。(两重含义)推迟程序的物理实现。(重要指导思想)质量保证:每个

6、阶段必须完成规定的文档;每个阶段结束前完成文档审查,及早改正错误。(两个重要做法)是一种严格线性的、按阶段顺序的、逐步细化的过程模型(开发模式)。强调需求分析和设计,.,17,瀑布模型的缺陷,缺乏灵活性,不能适应用户需求的改变开始阶段的小错误被逐级放大,可能导致软件产品报废返回上一级的开发需要十分高昂的代价随着软件规模和复杂性的增加,软件产品成功的机率大幅下降,.,18,3 快速原型模型(Rapid Prototype Model),.,19,原型开发过程,原型规划,框架定义,可执行原型,评估报告,.,20,原型模型的优点,快速开发用户反馈逐渐完善,.,21,原型模型的特点,适用于用户驱动的系

7、统(即需求模糊或随时间变化的系统)。,.,22,原型模型存在的问题,不宜用原型作为最后产品(成本)原型模型的作用问题(定义需求)原型法要求开发者与用户密切接触,有时这是不可能的。例如外包软件。,.,23,4 演化模型,演化模型是利用一种迭代的思想方法,它的特征是使软件工程师渐进地开发逐步完善的软件版本。增量模型(Incremental Model)螺旋模型(Spiral Model),.,24,增量模型示意图,分析,设计,编码,测试,使用,分析,设计,编码,测试,分析,设计,编码,测试,使用,使用,第1个增量,第2个增量,第n个增量,分析组,设计组,编码组,测试组,.,25,增量模型的特点,融

8、合了瀑布模型的基本成分和快速原型的迭代特征;可以根据需要补充人员;以功能递增的方式进行软件开发;能够减少软件产品给用户带来的影响;投资回报随功能增加而渐增;可以有计划的管理风险。,.,26,增量模型和原型模型的区别,增量模型与快速原型模型,本质上都是迭代的。两者区别在:增量模型强调每一个增量发布一个可操作的产品。早期的增量提供了为用户服务的功能和给用户评价的平台。,.,27,增量模型存在的问题,如果产品整体结构设计不当,则难以为其增加新的增量(对设计水平要求很高)采用增量开发,难以采用彻底的测试,.,28,风险分析,原型 1,建模 模拟 评价,需求计划,生存期计划,原型2,风险分析,软件需求,

9、需求确认,开发计划,风险分析,原型3,软件产品设计,设计确认和验证,集成与测试计划,风险分析,可运行原型,详细设计,单元测试,编码,集成测试,验收测试,实现,计划下一个阶段,开发,确认以及下一级产品,确定目标 选择方案 设定约束条件,评估方案,识别并排除风险,累计成本,各步骤的进度,The spiral model,.,29,螺旋模型(Spiral Model),Spiral 模型(Boehm,1988提出)每一圈是一个阶段,每个阶段里又有一些活动。阶段可分为:操作的概念、软件需求、产品设计、详细设计、编码、单元测试、集成和测试、验收测试、实现。活动有:需求与计划、风险分析、设计与制作、用户评

10、价。,.,30,螺旋模型的特点,阶段性+迭代演化;风险分析推动(风险分析使得用户和开发人员更好的理解和管理每个阶段的风险);可结合采用多种软件开发方法,但究竟结合哪一种方法仍由风险分析来决定;适合大型软件开发。,.,31,螺旋模型不足,要求软件开发人员擅长风险分析;风险分析会导致项目终止而终止合同;对于小项目可能对于风险分析的成本与整个项目相当。,.,32,5 喷泉模型,.,33,喷泉模型的特点,是典型的面向对象生命周期模型“喷泉”这个词体现了面向对象软件开发过程迭代和无缝的特性应该把线性过程作为总目标,.,34,6 其他模型,极限编程模型(强调对变化的适应)构件组装模型(基于构件组装)簇模型

11、(强调并行开发)智能模型(将瀑布模型与专家系统结合)RUP模型,.,35,7 软件开发过程的一般视图,无论哪种软件过程模型,软件开发过程都要经历三个典型阶段:定义 Definition开发 Development维护 Maintenance,.,36,定义阶段,集中于“做什么”三个基本任务系统分析 system analysis软件项目计划 software project planning 需求分析 requirements analysis,.,37,开发阶段,集中于“如何做”三个特定的任务软件设计 software design编码 coding 软件测试 software testin

12、g,.,38,维护阶段,关注于“变化”四种类型的修改改正 correction适应 adaptation增强 enhancement预防 prevention(软件再工程、逆工程),.,软件过程,软件开发过程中的坎坎坷坷,仿佛只是人脸的凹凸不平,用热水毛巾一把就可抹平。让我们高举程序主义、软件工程思想的伟大旗帜,紧密团结在以Microsoft为核心的软件公司周围,沿着比尔盖茨的生财之道,不分白天黑夜地编程,把建设有中国特色的软件产业的伟大事业全面推向新世纪。林锐,.,40,小结,软件过程和软件过程模型的概念一系列不同的软件过程模型,以及各自的优点和缺点。软件通过应用三个不同的阶段定义、开发和维护来实现工程化生产。,.,41,推荐读物,IEEE软件(IEEE Software)计算机(Computer)IEEE软件工程学报(IEEE Transactions on Software Engineering)软件发展(Software Development)ACM软件工程和方法学学报(ACM Transactions on Software Engineering)ACM软件工程评论(ACM Software Engineering Notes),

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

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


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号