软件开发模型课件.ppt

上传人(卖家):三亚风情 文档编号:3219315 上传时间:2022-08-07 格式:PPT 页数:43 大小:380.50KB
下载 相关 举报
软件开发模型课件.ppt_第1页
第1页 / 共43页
软件开发模型课件.ppt_第2页
第2页 / 共43页
软件开发模型课件.ppt_第3页
第3页 / 共43页
软件开发模型课件.ppt_第4页
第4页 / 共43页
软件开发模型课件.ppt_第5页
第5页 / 共43页
点击查看更多>>
资源描述

1、第1章 概述2022年8月6日第1页第第1章章 概述概述本章内容结构本章内容结构l本章引言本章引言l学习目标学习目标l教学内容教学内容l本章小结本章小结l思考和练习思考和练习l课堂讨论课堂讨论第1章 概述本章引言本章引言l本书将分成本书将分成3篇,全面详细地讲述软件工程的知识。篇,全面详细地讲述软件工程的知识。第第1篇按照生存周期模型详细阐述面向过程的软件工程;篇按照生存周期模型详细阐述面向过程的软件工程;第第2篇介绍面向对象软件工程的分析、设计和实现;篇介绍面向对象软件工程的分析、设计和实现;第第3篇则分别给出面向过程和面向对象软件工程队实验指导和案例。篇则分别给出面向过程和面向对象软件工程

2、队实验指导和案例。l“软件工程软件工程”一词是由北大西洋公约组织(一词是由北大西洋公约组织(North Atlantic Treaty Organization,NATO)的计算机科学家)的计算机科学家在联邦德国召开的国际会议上首次提出来的。产生软件工在联邦德国召开的国际会议上首次提出来的。产生软件工程这门学科的时代背景是程这门学科的时代背景是“软件危机软件危机”。软件工程的发展。软件工程的发展和应用不仅缓和了软件危机,而且促使一门新兴的工程学和应用不仅缓和了软件危机,而且促使一门新兴的工程学科诞生了。科诞生了。l本章将讲述软件、软件危机及软件工程的相关概念、历史本章将讲述软件、软件危机及软件

3、工程的相关概念、历史发展和开发模型。发展和开发模型。2022年8月6日第2页第1章 概述2022年8月6日第3页学习目标学习目标l掌握软件的定义、特点和分类掌握软件的定义、特点和分类l理解软件危机的定义、表现形式、产生原因及解理解软件危机的定义、表现形式、产生原因及解决途径决途径l理解和掌握软件工程的定义、目标、研究内容和理解和掌握软件工程的定义、目标、研究内容和基本原理,了解软件工程的发展史基本原理,了解软件工程的发展史l理解和掌握软件过程和软件生存周期的相关概念理解和掌握软件过程和软件生存周期的相关概念和特点和特点l了解不同软件开发模型的特点和应用范围了解不同软件开发模型的特点和应用范围l

4、理解传统软件工程和面向对象软件工程的区别与理解传统软件工程和面向对象软件工程的区别与联系联系第1章 概述2022年8月6日第4页教学内容教学内容1.1 软件和软件危机软件和软件危机 1.2 软件工程软件工程1.3 软件过程和软件生存周期软件过程和软件生存周期1.4 软件开发模型软件开发模型1.5 传统软件工程和面向对象软件工程传统软件工程和面向对象软件工程1.6 本章小结和习题本章小结和习题 第1章 概述2022年8月6日第5页1.1 软件和软件危机软件和软件危机1.1.1 软件的定义、特点及分类软件的定义、特点及分类1.1.2 软件危机的定义及表现形式软件危机的定义及表现形式1.1.3 软件

5、危机的产生原因及解决途径软件危机的产生原因及解决途径第1章 概述2022年8月6日第6页1.1.1 软件的定义、特点及分类软件的定义、特点及分类一、软件的定义一、软件的定义软件软件不是程序,而是程序、数据以及开发、使用和维护程序不是程序,而是程序、数据以及开发、使用和维护程序需要的所有文档的完整集合。需要的所有文档的完整集合。19831983年年IEEEIEEE为为软件软件下的定义是:下的定义是:计算机程序、方法、规则、计算机程序、方法、规则、相关的文档资料以及在计算机上运行程序时所必须的数据。相关的文档资料以及在计算机上运行程序时所必须的数据。其中的方法和规则通常是在文档中说明并在程序中实现

6、的。其中的方法和规则通常是在文档中说明并在程序中实现的。特别是当软件成为商品时,相关的文档资料是必不可少的。特别是当软件成为商品时,相关的文档资料是必不可少的。没有相关文档,仅有程序是不能称为软件产品的。没有相关文档,仅有程序是不能称为软件产品的。程序程序是为了解决某个特定问题而用程序设计语言描述的适合是为了解决某个特定问题而用程序设计语言描述的适合计算机处理的语句序列。计算机处理的语句序列。文档文档则是软件开发活动的记录,主要供人们阅读,既可用于则是软件开发活动的记录,主要供人们阅读,既可用于专业人员和用户之间的通信和交流,也可以用于软件开发专业人员和用户之间的通信和交流,也可以用于软件开发

7、过程的管理和运行阶段的维护。过程的管理和运行阶段的维护。第1章 概述2022年8月6日第7页1.1.1 软件的定义、特点及分类软件的定义、特点及分类二、软件的特点二、软件的特点软件软件是一种特殊的产品,与传统的工业产品相比,它具有以下是一种特殊的产品,与传统的工业产品相比,它具有以下一些独特的特点一些独特的特点。(1)软件是一种逻辑产品,而不是具体的物理实体,具有抽象)软件是一种逻辑产品,而不是具体的物理实体,具有抽象性。性。(2)软件产品的生产主要是开发研制,没有明显的制造过程。)软件产品的生产主要是开发研制,没有明显的制造过程。(3)软件产品在使用过程中,不存在磨损、消耗、老化等问题)软件

8、产品在使用过程中,不存在磨损、消耗、老化等问题(4)软件产品的开发主要是脑力劳动,还未完全摆脱手工开发)软件产品的开发主要是脑力劳动,还未完全摆脱手工开发方式,大部分产品是方式,大部分产品是“定做的定做的”,生产效率低。,生产效率低。第1章 概述2022年8月6日第8页1.1.1 软件的定义、特点及分类软件的定义、特点及分类二、软件的特点二、软件的特点软件软件是一种特殊的产品,与传统的工业产品相比,它具有以下是一种特殊的产品,与传统的工业产品相比,它具有以下一些独特的特点一些独特的特点(续)(续)(5)软件产品的成本相当昂贵,软件费用不断增加,软件的研)软件产品的成本相当昂贵,软件费用不断增加

9、,软件的研制需要投入大量的人力、物力和资金,生产过程中还需对产制需要投入大量的人力、物力和资金,生产过程中还需对产品进行质量控制,对每件产品进行严格的检验。品进行质量控制,对每件产品进行严格的检验。(6)软件对硬件和环境有不同程度的依赖性,为了减少这种依)软件对硬件和环境有不同程度的依赖性,为了减少这种依赖性,在软件开发中提出了软件的可移植性问题。赖性,在软件开发中提出了软件的可移植性问题。(7)软件是复杂的。软件是人类有史以来生产的复杂度最高的)软件是复杂的。软件是人类有史以来生产的复杂度最高的工业产品,软件是一个庞大的逻辑系统。软件开发,尤其是工业产品,软件是一个庞大的逻辑系统。软件开发,

10、尤其是应用软件的开发常常涉及到其他领域的专门知识,这就对软应用软件的开发常常涉及到其他领域的专门知识,这就对软件开发人员提出了很高的要求。件开发人员提出了很高的要求。第1章 概述2022年8月6日第9页1.1.1 软件的定义、特点及分类软件的定义、特点及分类三、软件的分类三、软件的分类从计算机系统角度看,分为两大类:系统软件和应用软件。从计算机系统角度看,分为两大类:系统软件和应用软件。从计算机软件用途来划分,分为从计算机软件用途来划分,分为:服务类、维护类和操作管服务类、维护类和操作管理类。理类。第1章 概述2022年8月6日第10页1.1.2 软件危机的定义及表现形式软件危机的定义及表现形

11、式l软件危机的定义软件危机的定义指在计算机软件的开发和维护过程中所遇到的一系列严重问题。软件危指在计算机软件的开发和维护过程中所遇到的一系列严重问题。软件危机主要包含了这样两方面的问题:一是如何开发软件以满足多软件日机主要包含了这样两方面的问题:一是如何开发软件以满足多软件日益增长的需求;二是如何维护数量不断增长的已有软件。益增长的需求;二是如何维护数量不断增长的已有软件。l软件危机的典型表现形式软件危机的典型表现形式(1)对软件开发成本和研制进度的估计常常很不精确。)对软件开发成本和研制进度的估计常常很不精确。(2)“已完成已完成”的软件不能满足用户要求。的软件不能满足用户要求。(3)软件产

12、品质量差,可靠性得不到保证。)软件产品质量差,可靠性得不到保证。(4)软件产品可维护性差)软件产品可维护性差。(5)软件成本在计算机系统总成本中所占的比例逐年上升。)软件成本在计算机系统总成本中所占的比例逐年上升。(6)软件开发生产率提高的速度,远远跟不上计算机应用速度普及深入)软件开发生产率提高的速度,远远跟不上计算机应用速度普及深入的趋势。的趋势。第1章 概述1.1.3 软件危机的产生原因及解决途径软件危机的产生原因及解决途径l产生原因产生原因(1)软件是计算机系统中的逻辑部件,软件产品往往规模软件是计算机系统中的逻辑部件,软件产品往往规模庞大,结构复杂。庞大,结构复杂。(2)软件开发的管

13、理困难。软件开发的管理困难。(3)软件开发费用不断增加,维护费用急剧上升,直接威软件开发费用不断增加,维护费用急剧上升,直接威胁计算机应用的扩大。胁计算机应用的扩大。(4)软件开发技术落后。软件开发技术落后。(5)生产方式落后。生产方式落后。(6)开发工具落后,生产效率提高缓慢。开发工具落后,生产效率提高缓慢。2022年8月6日第11页第1章 概述1.1.3 软件危机的产生原因及解决途径软件危机的产生原因及解决途径l解决途径解决途径(1)首先应该对计算机软件有一个正确的认识,彻底清除)首先应该对计算机软件有一个正确的认识,彻底清除“软件就是程序软件就是程序”的错误观念。的错误观念。(2)要使用

14、好的开发技术和方法,并且要不断研究探索更)要使用好的开发技术和方法,并且要不断研究探索更好更有效的技术和方法。尽快消除在计算机系统早期发展好更有效的技术和方法。尽快消除在计算机系统早期发展阶段形成的一些错误观念和作法。阶段形成的一些错误观念和作法。(3)要有良好的组织、严密的管理,各类人员要相互配合)要有良好的组织、严密的管理,各类人员要相互配合,共同完成任务。充分认识软件开发不是某种个体劳动的,共同完成任务。充分认识软件开发不是某种个体劳动的神秘技巧。神秘技巧。(4)应该开发和使用好的软件工具。)应该开发和使用好的软件工具。2022年8月6日第12页第1章 概述2022年8月6日第13页1.

15、2 软件工程软件工程1.2.1 软件工程的定义及目标软件工程的定义及目标1.2.2 软件工程的研究内容和基本原理软件工程的研究内容和基本原理1.2.3 软件工程的发展史软件工程的发展史第1章 概述2022年8月6日第14页1.2.1 软件工程的定义及目标软件工程的定义及目标l软件工程定义软件工程定义软件工程是指导计算机软件开发和维护的一门工程学科软件工程是指导计算机软件开发和维护的一门工程学科,采采用工程的概念、原理、技术和方法来开发和维护软件。用工程的概念、原理、技术和方法来开发和维护软件。1968年的定义年的定义1993年年IEEE给出的定义给出的定义软件工程的不同定义使用了不同的词句,强

16、调的重点也有所软件工程的不同定义使用了不同的词句,强调的重点也有所差异,但是它的差异,但是它的中心思想中心思想,是把软件当作一种工业产品,是把软件当作一种工业产品,要求要求“采用工程化的原理和方法对软件进行计划、开发和采用工程化的原理和方法对软件进行计划、开发和维护。维护。”宗旨宗旨是为了提高软件生产率、降低生产成本,以是为了提高软件生产率、降低生产成本,以较小的代价获得高质量的软件产品。较小的代价获得高质量的软件产品。第1章 概述2022年8月6日第15页1.2.1 软件工程的定义及目标软件工程的定义及目标l软件工程的目标软件工程的目标1)降低软件开发成本;)降低软件开发成本;2)满足用户要

17、求的全部软件功能;)满足用户要求的全部软件功能;3)符合用户要求,令用户满意的软件性能;)符合用户要求,令用户满意的软件性能;4)具有较好的易用性、可重用性和可移植性;)具有较好的易用性、可重用性和可移植性;5)较低的维护成本,较高的可靠性;)较低的维护成本,较高的可靠性;6)按合同要求完成开发任务,即使交付用户使用。)按合同要求完成开发任务,即使交付用户使用。第1章 概述2022年8月6日第16页1.2.2 软件工程的研究内容和基本原理软件工程的研究内容和基本原理l软件工程的研究内容软件工程的研究内容软件工程的主要研究内容是指软件工程的主要研究内容是指软件开发技术软件开发技术和和软件开发过程

18、软件开发过程管理管理两个方面。两个方面。在在软件开发技术软件开发技术方面主要研究软件开发方法、软件开发过程、软方面主要研究软件开发方法、软件开发过程、软件开发工具和技术。件开发工具和技术。在在软件开发过程管理软件开发过程管理方面主要研究软件工程经济学和软件管理学。方面主要研究软件工程经济学和软件管理学。l软件工程的基本原理软件工程的基本原理 用分阶段的生存周期计划严格管理用分阶段的生存周期计划严格管理 坚持进行阶段评审坚持进行阶段评审 实行严格的产品控制实行严格的产品控制 采用现代程序设计技术采用现代程序设计技术 结果应能清楚地审查结果应能清楚地审查 开发小组人员应该少而精开发小组人员应该少而

19、精 承认不断改进软件工程实践的必要性承认不断改进软件工程实践的必要性第1章 概述2022年8月6日第17页1.2.3 软件工程的发展史软件工程的发展史1.1.程序设计时代程序设计时代 1946年到1956年为程序设计年代2.程序系统时代程序系统时代 1956年到1968年为程序系统时代,或者程序+说明时代3 软件工程时代软件工程时代1968年至今为软件工程年代,或者程序+文档时代。第1章 概述2022年8月6日第18页1.3 软件工程和软件生存周期软件工程和软件生存周期1.3.1 软件过程软件过程1.3.2 软件生存周期软件生存周期第1章 概述2022年8月6日第19页1.3.1 软件过程软件

20、过程lISO 9000把软件过程定义为:把软件过程定义为:“把输入转化为输出的一把输入转化为输出的一组彼此相关的资源和活动组彼此相关的资源和活动”。l软件过程是为了获得高质量所需要完成的一系列任务的框软件过程是为了获得高质量所需要完成的一系列任务的框架,它规定了完成多项任务的工作步骤。其中框架由几个架,它规定了完成多项任务的工作步骤。其中框架由几个重要过程组成,包括用来获取、供应、开发、操作和维护重要过程组成,包括用来获取、供应、开发、操作和维护软件所用的基本的、一致的要求。各种组织和开发机构可软件所用的基本的、一致的要求。各种组织和开发机构可以根据具体情况进行选择和取舍。以根据具体情况进行选

21、择和取舍。l软件开发过程是把用户要求转化为软件需求,把软件需求软件开发过程是把用户要求转化为软件需求,把软件需求转化为设计,用代码来实现设计,对代码进行测试,完成转化为设计,用代码来实现设计,对代码进行测试,完成各阶段的文档编制并确认软件可以投入运行使用的过程。各阶段的文档编制并确认软件可以投入运行使用的过程。第1章 概述2022年8月6日第20页1.3.2 软件生存周期软件生存周期l软件生存周期是借用工程软件生存周期是借用工程中产品生存周期的概念而中产品生存周期的概念而得来的,是指某一软件项得来的,是指某一软件项目被提出来并着手实现开目被提出来并着手实现开始直到该软件报废或停止始直到该软件报

22、废或停止使用为止。使用为止。l软件的生存周期一般分为软件的生存周期一般分为软件计划、软件开发和软软件计划、软件开发和软件运行三个时期。件运行三个时期。问题定义可行性研究需求分析软件设计编码测试维护计划时期开发时期运行时期第1章 概述2022年8月6日第21页1.3.2 软件生存周期软件生存周期l软件软件计划时期计划时期(1)问题定义)问题定义(2)可行性研究)可行性研究l软件开发时期软件开发时期(1)需求分析)需求分析(2)概要设计)概要设计(3)详细设计)详细设计(4)编码)编码(5)测试)测试l软件运行软件运行维护维护时期时期问题定义可行性研究需求分析软件设计编码测试维护计划时期开发时期运

23、行时期第1章 概述2022年8月6日第22页1.4 软件开发模型软件开发模型1.4.1 瀑布模型瀑布模型1.4.2 快速原型模型快速原型模型1.4.3 增量模型增量模型 1.4.4 螺旋模型螺旋模型1.4.5 喷泉模型喷泉模型1.4.6 基于构件的开发模型基于构件的开发模型1.4.7 统一过程模型统一过程模型1.4.8 基于形式化的模型基于形式化的模型 模型是为了理解事物而对事物做出的一种抽象。建摸是软件工程最常使用的一种技术。所谓软件开发模型,就是为整个软件期建立的模型。第1章 概述2022年8月6日第23页1.4.1 瀑布模型瀑布模型l瀑布模型也称生存周期模型或线性顺序模型,是瀑布模型也称

24、生存周期模型或线性顺序模型,是WRoyce于于1970年年首先提出来的。这种模型是将软件生存周期各个活动规定为依线性顺首先提出来的。这种模型是将软件生存周期各个活动规定为依线性顺序连接的若干阶段的模型序连接的若干阶段的模型,包括问题定义、可行性研究、需求分析、包括问题定义、可行性研究、需求分析、概要设计、详细设计、编码、测试和维护。概要设计、详细设计、编码、测试和维护。l瀑布模型规定了由前至后、相互衔接的固定次序,恰如奔流不息拾级瀑布模型规定了由前至后、相互衔接的固定次序,恰如奔流不息拾级而下而下的的瀑布。瀑布。l在在20世纪世纪80年代之前,瀑布模型一直是唯一被广泛采用的生存周期年代之前,瀑

25、布模型一直是唯一被广泛采用的生存周期模型,现在它仍然是软件工程中应用得最广泛的过程模型。传统软件模型,现在它仍然是软件工程中应用得最广泛的过程模型。传统软件工程方法学的软件过程,基本上可以用瀑布模型来描述。而且是以文工程方法学的软件过程,基本上可以用瀑布模型来描述。而且是以文档为驱动,适合于需求很明确的软件项目开发的模型。档为驱动,适合于需求很明确的软件项目开发的模型。第1章 概述2022年8月6日第24页1.4.1 瀑布模型瀑布模型需求分析需求规格说明书概要设计软件结构图详细设计模块说明编码验收测试集成测试单元测试源程序清单图图1.2 1.2 瀑布模型各阶段的相互关系瀑布模型各阶段的相互关系

26、第1章 概述2022年8月6日第25页1.4.1 瀑布模型瀑布模型l瀑布模型瀑布模型的特点的特点(1)阶段的顺序性和依赖性)阶段的顺序性和依赖性:首先必须等前一阶段的首先必须等前一阶段的工作完成之后,才能开始后一阶段的工作;其次前一工作完成之后,才能开始后一阶段的工作;其次前一阶段的输出文档就是后一阶段的输入文档。阶段的输出文档就是后一阶段的输入文档。(2)推迟实现的观点)推迟实现的观点(3)质量保证的观点)质量保证的观点:每一个阶段都必须完成所规每一个阶段都必须完成所规定的相应文档定的相应文档;每一个阶段结束之前都必须对已完每一个阶段结束之前都必须对已完成的文档进行评审成的文档进行评审(4)

27、存在的问题)存在的问题:是一种理想的线性开发模式,缺乏是一种理想的线性开发模式,缺乏灵活性。特别是无法解决软件需求不明确或不准确的灵活性。特别是无法解决软件需求不明确或不准确的问题。问题。第1章 概述2022年8月6日第26页1.4.2 快速原型模型快速原型模型l主要思想主要思想:首先快速建立一个能够反映用:首先快速建立一个能够反映用户主要需求的原型系统,让用户在计算机户主要需求的原型系统,让用户在计算机上试用它,通过实践让用户了解未来目标上试用它,通过实践让用户了解未来目标系统的概貌,以便判断哪些功能是符合需系统的概貌,以便判断哪些功能是符合需要的,哪些方面需要改进,用户会提出许要的,哪些方

28、面需要改进,用户会提出许多改进意见,开发人员按照用户的意见快多改进意见,开发人员按照用户的意见快速地修改原型系统,然后再次请用户试速地修改原型系统,然后再次请用户试用用,这样反复改进,最终建立完全符,这样反复改进,最终建立完全符合用户需求的新系统。合用户需求的新系统。第1章 概述2022年8月6日第27页1.4.2 快速原型模型快速原型模型需求分析需求分析原形开发原形开发原形评价原形评价最终软件设计最终软件设计最终软件实现最终软件实现图1.3 快速原型模型法生存期模型第1章 概述2022年8月6日第28页1.4.3 增量模型增量模型 增量模型增量模型也称为渐增模型,是瀑布模型的顺序也称为渐增模

29、型,是瀑布模型的顺序特征和快速原型法的迭代特征相结合的产物特征和快速原型法的迭代特征相结合的产物,是一种非整体开发的模型。是一种非整体开发的模型。软件在模型中是软件在模型中是“逐渐逐渐”开发出来的,把软件开发出来的,把软件产品作为一系列的增量构件来设计、编码、组产品作为一系列的增量构件来设计、编码、组装和测试。每个构件由多个相互作用的模型构装和测试。每个构件由多个相互作用的模型构成,并且能够完成特定的功能。开发出一部分,成,并且能够完成特定的功能。开发出一部分,向用户展示一部分,可让用户及早看到部分软向用户展示一部分,可让用户及早看到部分软件,及早发现问题。件,及早发现问题。第1章 概述202

30、2年8月6日第29页1.4.3 增量模型增量模型 规格说明规格说明设计设计编码和集成编码和集成交付用户交付用户规格说明规格说明设计设计编码和集成编码和集成交付用户交付用户规格说明规格说明设计设计编码和集成编码和集成交付用户交付用户图图1.4 1.4 增量模型增量模型构件构件1:构件构件2:构件构件n:第1章 概述2022年8月6日第30页1.4.4 螺旋模型螺旋模型螺旋模型螺旋模型加入了瀑布模型与增量模型都忽略了加入了瀑布模型与增量模型都忽略了的风险分析,即将两种模型结合起来,弥补了的风险分析,即将两种模型结合起来,弥补了两种模型的不足。它是一种风险驱动的模型。两种模型的不足。它是一种风险驱动

31、的模型。螺旋模型是一种迭代模型,它把开发过程分为螺旋模型是一种迭代模型,它把开发过程分为几个螺旋周期,每迭代一次,螺旋线就前一周,几个螺旋周期,每迭代一次,螺旋线就前一周,如图如图1.5所示。所示。第1章 概述2022年8月6日第31页1.4.4 螺旋模型螺旋模型图图1.5 1.5 螺旋模型螺旋模型第1章 概述2022年8月6日第32页1.4.5 喷泉模型喷泉模型喷泉模型是一种比喷泉模型是一种比较典型的面向对较典型的面向对象软件开发模型,象软件开发模型,以用户需求为动以用户需求为动力,以对象作为力,以对象作为驱动的模型,适驱动的模型,适合面向对象的开合面向对象的开发方法。发方法。实 现软件设计

32、系统设计分 析图图1.6 1.6 喷泉模型喷泉模型第1章 概述2022年8月6日第33页1.4.6 基于构件的开发模型基于构件的开发模型l经过一定的设计和实现的类可称为构件,经过一定的设计和实现的类可称为构件,它们可以有不同的计算机软件系统中复用,它们可以有不同的计算机软件系统中复用,在某个领域具有一定的通用性。在某个领域具有一定的通用性。l基于构基于构件件的开发模型是利用预先封装的软的开发模型是利用预先封装的软件构件来构造应用软件系统,从而提高软件构件来构造应用软件系统,从而提高软件的重用性和可靠性。件的重用性和可靠性。第1章 概述2022年8月6日第34页1.4.7 统一过程模型统一过程模

33、型软件统一开发过程是经过近软件统一开发过程是经过近4040多年的发展形成的,多年的发展形成的,它是基于面向对象统一建模语言它是基于面向对象统一建模语言UML(Unified UML(Unified Modeling Language)Modeling Language)的一种面向对象的软件过程模的一种面向对象的软件过程模型。它汲取了多种生存周期模型的先进思想和丰富型。它汲取了多种生存周期模型的先进思想和丰富的实践经验而产生的。的实践经验而产生的。RUP(Rational Unified RUP(Rational Unified Process)Process)是一个通用的过程框架,可以用于各种

34、不是一个通用的过程框架,可以用于各种不同模型的软件系统,各种不同的应用领域和不同规同模型的软件系统,各种不同的应用领域和不同规模的项目。模的项目。RUPRUP的特点是由用例驱动,以构架为中心,的特点是由用例驱动,以构架为中心,采用迭代和增量的开发策略。采用迭代和增量的开发策略。RUPRUP软件生存周期是一软件生存周期是一个二维的软件开发模型。个二维的软件开发模型。第1章 概述2022年8月6日第35页1.4.8 基于形式化的模型基于形式化的模型 变换模型变换模型和和净室模型净室模型是两种比较典型的适合于形式是两种比较典型的适合于形式化开发的模型。化开发的模型。变换模型变换模型是结合形式化软件开

35、发方法和程序自动生是结合形式化软件开发方法和程序自动生成技术的一种软件开发模型。它采用严格的、数学成技术的一种软件开发模型。它采用严格的、数学的表示体系来表示软件规格说明,从软件需求形式的表示体系来表示软件规格说明,从软件需求形式化说明开始,经过一系列变换,最终的得到了系统化说明开始,经过一系列变换,最终的得到了系统的目标程序。的目标程序。净室模型净室模型是一种化的增量开发模型。其基本思想是是一种化的增量开发模型。其基本思想是力求在分析和设计阶段就消除缺陷,却保正确,然力求在分析和设计阶段就消除缺陷,却保正确,然后在无错误或后在无错误或“净室净室”的状态下实现软件的开发。的状态下实现软件的开发

36、。第1章 概述2022年8月6日第36页各种软件开发模型的对比各种软件开发模型的对比1 瀑布模型瀑布模型 :经典,需求变化不大经典,需求变化不大2 快速原型模型快速原型模型 :快速获取用户需求快速获取用户需求3 增量模型增量模型 :灵活,允许软件变化灵活,允许软件变化4 螺旋模型螺旋模型 :加入风险加入风险5 喷泉模型喷泉模型 :典型面向对象开发模型典型面向对象开发模型6 基于构件的开发模型基于构件的开发模型:提高软件重用性和可靠性提高软件重用性和可靠性7 统一过程模型统一过程模型 :基于基于UML的的OO过程模型过程模型8 基于形式化的模型基于形式化的模型 :确保严格、无措确保严格、无措第1

37、章 概述2022年8月6日第37页1.5 传统的软件工程和面向对象的软件工程传统的软件工程和面向对象的软件工程1.5.1 传统软件工程方法传统软件工程方法1.5.2 面向对象软件工程方法面向对象软件工程方法1.5.3 两种软件工程方法的对比两种软件工程方法的对比第1章 概述1.5.1 传统软件工程方法传统软件工程方法l采用结构化技术采用结构化技术(结构化分析、结构化设计和结构化结构化分析、结构化设计和结构化实现实现)来完成软件开发的各项任务来完成软件开发的各项任务l具体过程如下:具体过程如下:(1(1)采用结构化技术(结构化分析、结构化设计和结构)采用结构化技术(结构化分析、结构化设计和结构化

38、实现)完成软件开发的各项任务。化实现)完成软件开发的各项任务。(2 2)把软件生存周期划分成若干个阶段,然后顺序完成各)把软件生存周期划分成若干个阶段,然后顺序完成各个阶段的任务。个阶段的任务。(3 3)每一个阶段的开始和结束都有严格标准,前一阶段结)每一个阶段的开始和结束都有严格标准,前一阶段结束的标准是后一阶段工作开始的标准。束的标准是后一阶段工作开始的标准。(4 4)在每一阶段结束之前必须正式地进行严格的技术审查)在每一阶段结束之前必须正式地进行严格的技术审查和管理复审。和管理复审。2022年8月6日第38页第1章 概述1.5.2 面向对象软件工程方法面向对象软件工程方法l面向对象的开发

39、方法的面向对象的开发方法的重点重点是放在软件生存周期的是放在软件生存周期的分析阶段。因为面向对象方法在开发的早起就定义分析阶段。因为面向对象方法在开发的早起就定义了一系列面向问题领域的对象,即建立了对象模型了一系列面向问题领域的对象,即建立了对象模型,整个开发过程统一使用这些对象,并不过分充实,整个开发过程统一使用这些对象,并不过分充实和扩展对象模型。和扩展对象模型。l面向对象开发过程的面向对象开发过程的特点特点是,开发阶段界限模糊,是,开发阶段界限模糊,开发过程逐步求精,开发活动反复迭代。通常开发开发过程逐步求精,开发活动反复迭代。通常开发活动是在分析、设计和实现阶段的反复迭代。活动是在分析

40、、设计和实现阶段的反复迭代。2022年8月6日第39页第1章 概述1.5.3 两种软件工程方法的对比两种软件工程方法的对比l与面向过程的软件工程的与面向过程的软件工程的开发思想开发思想相比,相比,面向对象开发方法不再是以功能划分为导面向对象开发方法不再是以功能划分为导向,而是以对象作为整个问题分析的中心向,而是以对象作为整个问题分析的中心,围绕对象展开系统的分析与设计工作。,围绕对象展开系统的分析与设计工作。l在在开发过程开发过程方面,面向对象软件工程和传方面,面向对象软件工程和传统软件工程一样也是把软件开发划分为分统软件工程一样也是把软件开发划分为分析、设计、编码和测试等几个阶段,但各析、设

41、计、编码和测试等几个阶段,但各个阶段的具体工作不同个阶段的具体工作不同2022年8月6日第40页第1章 概述2022年8月6日第41页本章小结本章小结l本章对计算机软件工程学作了一个简短的概述,使读者对软本章对计算机软件工程学作了一个简短的概述,使读者对软件工程的基本原理和方法有概括的本质的认识。件工程的基本原理和方法有概括的本质的认识。l软件工程自软件工程自1968年提出至今,正式发展成为用于指导软件年提出至今,正式发展成为用于指导软件生产工程化、覆盖软件开发方法学、软件工具和环境,软件生产工程化、覆盖软件开发方法学、软件工具和环境,软件工程管理学等内容的一门学科。工程管理学等内容的一门学科

42、。l随着编程语言从结构化程序设计发展到面向对象程序设计,随着编程语言从结构化程序设计发展到面向对象程序设计,软件工程也由传统的软件工程演变为面向对象的软件工程。软件工程也由传统的软件工程演变为面向对象的软件工程。l本章主要介绍了软件工程的基本内容,包括软件工程的学科本章主要介绍了软件工程的基本内容,包括软件工程的学科背景、软件生存周期理论、软件开发模型、软件工程方法论背景、软件生存周期理论、软件开发模型、软件工程方法论等,这些知识都是后续章节的基础。等,这些知识都是后续章节的基础。第1章 概述思考和练习思考和练习 什么是软件?软件和程序的区别是什么?什么是软件?软件和程序的区别是什么?什么是软

43、件生存周期?划分生存周期的主要原则是什什么是软件生存周期?划分生存周期的主要原则是什么?么?什么是软件危机?它有哪些主要表现?为什么会产生什么是软件危机?它有哪些主要表现?为什么会产生软件危机?软件危机?什么是软件工程?怎样利用软件工程消除软件危机?什么是软件工程?怎样利用软件工程消除软件危机?何谓面向对象软件工程?简述它和传统软件工程的区何谓面向对象软件工程?简述它和传统软件工程的区别与联系。别与联系。什么是软件生存周期模型?试比较本章介绍的四种模什么是软件生存周期模型?试比较本章介绍的四种模型的优缺点,说明每种模型的使用范围。型的优缺点,说明每种模型的使用范围。2022年8月6日第42页第1章 概述课堂讨论课堂讨论查阅资料,用自己的语言组织材料,理解软查阅资料,用自己的语言组织材料,理解软件工程产生、发展及其作用;件工程产生、发展及其作用;2022年8月6日第43页

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(软件开发模型课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|