




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件过程模型第1页,共36页,2023年,2月20日,星期日软件危机软件工程软件生命周期和软件过程第一章绪论第2页,共36页,2023年,2月20日,星期日1.1软件工程简述一、什么是软件危机软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。主要是两个问题。1.如何开发软件,怎样满足对软件的日益增长的需求。2.如何维护数量不断膨胀的已有软件第3页,共36页,2023年,2月20日,星期日1.1软件工程简述二、软件危机的主要表现1.对软件开发成本和进度的估计不准确2.用户不满意3.软件质量不高、可靠性差4.软件常常不可维护、错误难以改正。5.缺乏适当的文档资料6.软件成本占系统总成本的比例逐年上升7.软件开发速度跟不上计算机发展速度第4页,共36页,2023年,2月20日,星期日1.1软件工程简述三、产生软件危机的原因1.与软件本身的特点有关软件不同于硬件,它是计算机系统的逻辑部件而不是物理部件。在写出程序代码并在计算机运行之前,软件开发过程的进展情况较难衡量,软件开发的质量也较难评价。因此,管理和控制软件开发过程相当困难。2.软件不易于维护(1)软件维护通常意味着改正或修改原来的设计,客观上使软件较难维护。(2)软件不同于一般程序,它的规模大,不易于维护。第5页,共36页,2023年,2月20日,星期日三、产生软件危机的原因3.在软件开发过程中,或多或少地采用了错误的方法和技术。4.对用户需求没有完整准确的认识,就匆忙着手编写程序。第6页,共36页,2023年,2月20日,星期日1.1软件工程简述四、解决软件危机的途径1.技术措施使用更好的软件开发方法和开发工具2.组织管理措施软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。第7页,共36页,2023年,2月20日,星期日1.1软件工程简述六、什么是软件工程软件工程是指导计算机软件开发和维护的工程学科。它采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。软件工程是一门涉及软件计划、需求分析、设计、编码、测试和维护的原理、方法及工具的研究和应用的学科。第8页,共36页,2023年,2月20日,星期日1.1软件工程简述七、软件工程的基本原理1968年,北大西洋公约组织(NATO),召开的有关计算机软件会议上正式提出“软件工程”术语。目前有100多条关于软件工程的准则,其中最出名的是著名软件工程专家B.W.Boehm在1983年提出的7条基本原理。第9页,共36页,2023年,2月20日,星期日1.1软件工程简述1.用分阶段的生命周期计划严格管理经统计表明,不成功的软件项目中有一半左右是由于计划不周造成的。Boehm认为,在软件的整个生命周期中应制定并严格执行六类计划:项目概要计划、里程碑计划、项目控制计划、产品控制计划、验证计划、运行维护计划。第10页,共36页,2023年,2月20日,星期日1.1软件工程简述2.坚持进行阶段评审大部分错误是在编码之前造成的因此,在每个阶段都进行严格的评审,以便尽早发现在软件开发过程的错误第11页,共36页,2023年,2月20日,星期日1.1软件工程简述3.实行严格的产品控制在软件开发过程中不要随意改变需求,因为改变某项需求往往需要付出较高的代价,但在实践中用户往往会提出需求变更,因此需要采取科学的产品控制技术。目前主要实行基准配置管理:基准配置是指经过阶段评审后的软件配置成分,如各个阶段产生的文档或程序代码。对涉及基准配置的修改,必须经过严格的评审,通过后才能实施修改。第12页,共36页,2023年,2月20日,星期日1.1软件工程简述4.采用现代程序设计技术实践表明:采用先进的技术既可提高软件开发的效率,又可提高软件维护的效率。80年代及之前:结构化分析、设计技术90年代:面向对象分析、设计技术第13页,共36页,2023年,2月20日,星期日1.1软件工程简述5.结果应能清楚地审查软件产品是看不见、摸不着的逻辑产品,开发过程难以评价和管理。根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准,使所得的结果能够清楚地审查第14页,共36页,2023年,2月20日,星期日1.1软件工程简述6.开发小组的人员应该少而精开发小组人员的素质和数量是影响软件产品质量和开发效率的重要因素。开发小组人员数目的增加,使相互交流复杂、费用增加。第15页,共36页,2023年,2月20日,星期日1.1软件工程简述7.承认不断改进软件工程实践的必要性遵循前6条基本原理,就能够按照当代软件工程基本原理实现软件的工程化生产,但不能保证赶上时代前进的步伐。积极主动采纳新的软件技术,且不断总结经验。第16页,共36页,2023年,2月20日,星期日1.2软件的生存周期及其开发模型“生命周期法”的起源。
软件工程采用的“生命周期法”,就是从时间角度对软件开发和维护的复杂问题进行分解,把软件生存的漫长周期依次划分为若干个阶段,每个阶段有相对独立的任务,然后再逐步完成每个阶段的任务.软件生存周期包括问题定义、可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等活动,可以将这些活动以适当方式分配到不同阶段去完成。第17页,共36页,2023年,2月20日,星期日1.2软件的生存周期及其开发模型2.生命周期划分的原则任务的性质尽可能相同,从而降低每个阶段任务的复杂性,简化不同阶段之间的联系,有利于软件开发过程的组织管理。3.生命周期的划分软件生命周期一般分为:软件定义(问题定义、可行性研究、需求分析)、软件开发(总体设计、详细设计、编码和单元测试、综合测试)、软件使用与维护等三个时期。第18页,共36页,2023年,2月20日,星期日1.2软件的生命周期及其开发模型软件生命周期的各个阶段:(1)问题定义(2)可行性分析(3)需求分析
分析软件需求,编写软件需求规格说明(4)概要设计和详细设计
确定软件体系结构,设计软件模块(5)程序编写(6)软件测试(7)运行和维护第19页,共36页,2023年,2月20日,星期日1.2软件的生存周期及其开发模型一、瀑布模型第20页,共36页,2023年,2月20日,星期日1.2软件的生存周期及其开发模型一、瀑布模型阶段间具有顺序性和依赖性这个特点有两重含义:①必须等前一阶段的工作完成之后,才能开始后一阶段的工作;②前一阶段的输出文档就是后一阶段的输入文档,因此,只有前一阶段的输出文档正确,后一阶段的工作才能获得正确的结果。推迟实现的观点对于规模较大的软件项目来说,往往编码开始得越早最终完成开发工作所需要的时间反而越长。这是因为,前面阶段的工作没做或做得不扎实,过早地考虑进行程序实现,往往导致大量返工,有时甚至发生无法弥补的问题,带来灾难性后果。瀑布模型尽可能推迟程序的物理实现,是按照瀑布模型开发软件的一条重要的指导思想。第21页,共36页,2023年,2月20日,星期日1.2软件的生存周期及其开发模型一、瀑布模型3.质量保证的观点软件工程的基本目标是优质、高产。为了保证所开发的软件的质量,在瀑布模型的每个阶段都应坚持两个重要做法:(1)每个阶段都必须完成规定的文档,没有交出合格的文档就是没有完成该阶段的任务。完整、准确的合格文档不仅是软件开发时期各类人员之间相互通信的媒介,也是运行时期对软件进行维护的重要依据。(2)每个阶段结束前都要对所完成的文档进行评审,以便尽早发现问题,改正错误。事实上,越是早期阶段犯下的错误,暴露出来的时间就越晚,排除故障改正错误所需付出的代价也越高。因此,及时审查,是保证软件质量,降低软件成本的重要措施。第22页,共36页,2023年,2月20日,星期日1.2软件的生存周期及其开发模型一、瀑布模型4传统的瀑布模型过于理想化了,事实上,人在工作过程中不可能不犯错误。在设计阶段可能发现规格说明文档中的错误,而设计上的缺陷或错误可能在实现过程中显现出来,在综合测试阶段将发现需求分析、设计或编码阶段的许多错误。实际的瀑布模型是带“反馈环”的。当在后面阶段发现前面阶段的错误时,需要沿图中左侧的反馈线返回前面的阶段,修正前面阶段的产品之后再回来继续完成后面阶段的任务。第23页,共36页,2023年,2月20日,星期日第24页,共36页,2023年,2月20日,星期日1.2软件的生存周期及其开发模型一、瀑布模型瀑布模型的优点:通过设置里程碑,明确每阶段的任务与目标。可为每阶段制定开发计划,进行成本预算,组织开发力量。通过阶段评审,将开发过程纳入正确轨道。严格的计划性保证软件产品的按时交付。瀑布模型的缺点:缺乏灵活性,不能适应用户需求的改变。开始阶段的小错误被逐级放大,可能导致软件产品报废。返回上一级的开发需要十分高昂的代价。随着软件规模和复杂性的增加,软件产品成功的机率大幅下降。瀑布模型的适应范围:它主要适应于小规模的软件开发。第25页,共36页,2023年,2月20日,星期日1.2软件开发过程模型二、原型模型1.基本思想在获取一组基本的需求定义后,利用高级软件工具的可开发环境,快速地建立一个目标系统的最初版本,并把它交给用户试用、补充和修改,再进行新的版本开发。反复进行这个过程,直到得出系统的“精确解”,即用户满意为止。第26页,共36页,2023年,2月20日,星期日1.2软件开发过程模型二、原型模型第27页,共36页,2023年,2月20日,星期日1.2软件的生存周期及其开发模型原型的种类。(1)渐增型(2)用于验证软件需求的原型(3)用于验证设计方案第28页,共36页,2023年,2月20日,星期日1.2软件的生存周期及其开发模型3.软件原型是软件的最初版本,以最少的费用、最短的时间开发出的、以反映最后软件的主要特征的系统。它具有以下特征:(1)它是一个可实际运行的系统。(2)它没有固定的生存期。一种极端是扔掉原型(以最简便方式大量借用已有软件,做出最后产品的模型,证实产品设想是成功的,但产品中并不使用);另一种极端是最终产品的一部分即增量原型(先做出最终产品的核心部分,逐步增加补充模块),演进原型居于其中(每一版本扔掉一点,增加一点,逐步完善至最终产品)。第29页,共36页,2023年,2月20日,星期日1.2软件的生存周期及其开发模型(3)从需求分析到最终产品都可作原型,即可为不同目标作原型。(4)它必须快速、廉价。(5)它是迭代过程的集成部分,即每次经用户评价后修改、运行,不断重复双方认可。第30页,共36页,2023年,2月20日,星期日快速原型法的特点:有直观的系统开发过程用户参与系统开发的全过程可以逐步明确用户需求用户直接掌握系统的开发进度用户接受程度高1.2软件的生存周期及其开发模型第31页,共36页,2023年,2月20日,星期日1.2软件的生存周期及其开发模型快速原型法的不足:不适用于拥有大量计算或控制功能的系统不适用于大型或复杂的系统容易掩盖需求、分析、设计等方面的问题结果不确定——随原型构造评价过程而定整体考虑较少快速原型法主要适应于:适用于解决有不确定因素的问题适用于对用户界面要求高的系统适用于决策支持方面的应用适用于中型系统第32页,共36页,2023年,2月20日,星期日1.2软件的生存周期及其开发模型三、螺旋模型在原型基础上,进行多次原型反复并增加风险评估,形成螺旋模型。第33页,共36页,2023年,2月20日,星期日1.2软件的生存周期及其开发模型第34页,共36页,2023年,2月20日,星期日1.2软件的生存周期及其开发模型螺旋模型分析在螺旋模型结构中,维护只是螺旋模型的另一个周
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 征信合规管理培训课件
- 语言培训班课件制作指南
- 急性乳房炎的护理
- 感恩团队培训
- 中医嗳气病例分享
- 气道异物的护理
- 仓库管理的安全培训
- 新教师法培训
- 小学国教育主题班会
- 天津市2025年中考语文模拟试卷7(含答案)
- 2025年陕西省中考英语试题(附答案和音频)
- 家庭急救包物品清单
- 护理安全管理课件
- 附件:小学2025年暑假跨学科实践作业实施方案
- 2025年甘肃省陇南市事业单位招聘247人笔试参考题库及答案详解一套
- 实验室菌种管理制度
- 如何当好一名班主任 课件-2024-2025学年高一下学期班主任工作经验分享
- 2025年基础电气工程考试试题及答案
- 2025年心理健康指导师职业资格考试试题及答案
- 七年级下册道德与法治期末复习必刷主观题含答案
- 2024年广东省揭西县教师招聘考试《教育学和心理学基础知识》真题库及答案
评论
0/150
提交评论