实用软件工程软件工程的概念

上传人:m**** 文档编号:568834210 上传时间:2024-07-27 格式:PPT 页数:117 大小:215.50KB
返回 下载 相关 举报
实用软件工程软件工程的概念_第1页
第1页 / 共117页
实用软件工程软件工程的概念_第2页
第2页 / 共117页
实用软件工程软件工程的概念_第3页
第3页 / 共117页
实用软件工程软件工程的概念_第4页
第4页 / 共117页
实用软件工程软件工程的概念_第5页
第5页 / 共117页
点击查看更多>>
资源描述

《实用软件工程软件工程的概念》由会员分享,可在线阅读,更多相关《实用软件工程软件工程的概念(117页珍藏版)》请在金锄头文库上搜索。

1、第二章软件工程的概念第一节软件工程定义第一节软件工程定义第二节软件工程方法第二节软件工程方法第三节常见的几种软件开发模型第三节常见的几种软件开发模型第一节软件工程的定义第一节软件工程的定义 一、一、软件工程的定义软件工程的定义二、二、软件工程的性质软件工程的性质三、三、软件工程的目标软件工程的目标四、四、软件工程的研究内容软件工程的研究内容 一、软件工程的定义一、软件工程的定义 软件工程思想是软件工程思想是2020世纪世纪6060年代末提出的,年代末提出的,7070年代以后逐步发展起来的一门指导计算机软件开发年代以后逐步发展起来的一门指导计算机软件开发和维护的工程科学。和维护的工程科学。采用工

2、程的概念、原理、技术和方法来开发采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这术和当前能够得到的最好的技术方法结合起来,这就是软件工程。就是软件工程。这门学科的目的是研究如何从管理和技术两这门学科的目的是研究如何从管理和技术两方面更好地开发和维护计算机软件。方面更好地开发和维护计算机软件。 19681968年在联邦德国召开的国际会议上正年在联邦德国召开的国际会议上正式提出并使用了式提出并使用了“软件工程软件工程”这个术语,运这个术语,运用工程学的基本原理和方法来组织和管理

3、软用工程学的基本原理和方法来组织和管理软件生产。件生产。后来还发展了与软件有关的心理学、生后来还发展了与软件有关的心理学、生理学和经济学等方面的学科。理学和经济学等方面的学科。在这个期间,研究软件工程的专家学者在这个期间,研究软件工程的专家学者们陆续提出了们陆续提出了100100多条关于软件工程的准则。多条关于软件工程的准则。这这100100多条准则可以概括为下述多条准则可以概括为下述6 6条基本原则。条基本原则。 6 6条基本原则。条基本原则。 1. 1.用分阶段的生存周期计划严格管理用分阶段的生存周期计划严格管理2. 2.坚持阶段评审坚持阶段评审3. 3.实行严格的产品控制实行严格的产品控

4、制4.4.采用现代程序设计技术采用现代程序设计技术5.5.能非常清楚地审查结果能非常清楚地审查结果6.6.合理安排软件开发小组人员合理安排软件开发小组人员仅遵循以上仅遵循以上6 6 条,一成不变是不够的,软件条,一成不变是不够的,软件工程本身就是一项实践工程。随着计算机系统的工程本身就是一项实践工程。随着计算机系统的发展,必须不断地灵活地改进软件工程的实践。发展,必须不断地灵活地改进软件工程的实践。这就必须积极主动地采用新的软件技术,注意不这就必须积极主动地采用新的软件技术,注意不断地总结经验,不断地有条件地进行继承和扬弃,断地总结经验,不断地有条件地进行继承和扬弃,不断地认识未知和演变地处理

5、未知,推进软件工不断地认识未知和演变地处理未知,推进软件工程的发展。程的发展。二、软件工程的性质二、软件工程的性质软件工程涉及到计算机科学、工程软件工程涉及到计算机科学、工程科学、管理科学、经济学和数学等领域,科学、管理科学、经济学和数学等领域,是一门综合性的交叉学科。是一门综合性的交叉学科。计算机科学中的所有学科的知识都可应用于计算机科学中的所有学科的知识都可应用于软件工程,特别是计算机专业的本科生,通过计软件工程,特别是计算机专业的本科生,通过计算机科学与技术专业的课程学习,有了较扎实的算机科学与技术专业的课程学习,有了较扎实的理论基础,软件工程将给予你一个计算机知识综理论基础,软件工程将

6、给予你一个计算机知识综合应用的工程概念,会让你所学的计算机学科知合应用的工程概念,会让你所学的计算机学科知识起到一个画龙点睛的作用。有了软件工程思想识起到一个画龙点睛的作用。有了软件工程思想方法,应用所学的计算机知识,就知道如何建造方法,应用所学的计算机知识,就知道如何建造一个软件系统。一个软件系统。 软件工程要用工程科学中的思想、观点来软件工程要用工程科学中的思想、观点来进行软件项目规划、经费估算、制定项目进度、进行软件项目规划、经费估算、制定项目进度、制定项目计划和制定项目开发方案;用管理科制定项目计划和制定项目开发方案;用管理科学、经济学的思想和方法对软件项目进行管理、学、经济学的思想和

7、方法对软件项目进行管理、成本核算、投入产出分析;用数学的方法建立成本核算、投入产出分析;用数学的方法建立软件项目开发过程中的各种模型和各种算法,软件项目开发过程中的各种模型和各种算法,进行正确性、可靠性分析,建立用户需求的形进行正确性、可靠性分析,建立用户需求的形式化模型等。式化模型等。 三、软件工程的目标三、软件工程的目标 有较低的开发成本。有较低的开发成本。能达到用户所要求的软件功能。能达到用户所要求的软件功能。有很好的软件性能。有很好的软件性能。软件有较好的可移植性、稳定性、健壮性软件有较好的可移植性、稳定性、健壮性和可靠性。和可靠性。有较好的可维护性,较低的维护成本。有较好的可维护性,

8、较低的维护成本。能按计划规定的进度开发,及时交付使用。能按计划规定的进度开发,及时交付使用。软件工程是一门工程性的学科,软件工程的目的是成功地构造一个大型软件系统。所谓成功是指达到以下标准:软件产品是把思维、概念、算法、组织、软件产品是把思维、概念、算法、组织、流程、效率、质量、成本等多方面的问题融为流程、效率、质量、成本等多方面的问题融为一体的产品,它不同于一般意义上的工程开发一体的产品,它不同于一般意义上的工程开发与管理,必须通过人员组织管理、项目计划管与管理,必须通过人员组织管理、项目计划管理和配置管理来保证软件的高质量完成。软件理和配置管理来保证软件的高质量完成。软件的交付使用也不同于

9、一般意义上的工程项目交的交付使用也不同于一般意义上的工程项目交付使用,软件的交付使用必须将软件的思想方付使用,软件的交付使用必须将软件的思想方法渗透到组织、人员中去。从这个意义上看,法渗透到组织、人员中去。从这个意义上看,软件工程目标的内涵是十分丰富多彩的。软件工程目标的内涵是十分丰富多彩的。四、软件工程的研究内容四、软件工程的研究内容 软件工程是计算机领域的一个较大的研究方向,其内软件工程是计算机领域的一个较大的研究方向,其内容十分丰富,包括:理论、结构、方法、工具、环境、管理、容十分丰富,包括:理论、结构、方法、工具、环境、管理、经济、规范等。经济、规范等。软件工程理论与结构是软件开发的技

10、术基础,包括程软件工程理论与结构是软件开发的技术基础,包括程序正确性证明理论、软件可靠性理论、软件成本估算模型、序正确性证明理论、软件可靠性理论、软件成本估算模型、软件开发模型、模块划分原理等。软件开发模型、模块划分原理等。软件开发技术包括软件开发方法学、软件工具和软件软件开发技术包括软件开发方法学、软件工具和软件开发环境,良好的软件工具可促进方法的研制,而先进的软开发环境,良好的软件工具可促进方法的研制,而先进的软件开发方法能改进工具,软件工具集成软件开发环境。软件件开发方法能改进工具,软件工具集成软件开发环境。软件开发方法、工具和环境是相互作用的。开发方法、工具和环境是相互作用的。软件工具

11、一般是指为了支持软件人员开发和维护软件工具一般是指为了支持软件人员开发和维护活动而使用的软件。活动而使用的软件。例如,项目估算工具、需求分析工具、设计工具、例如,项目估算工具、需求分析工具、设计工具、编码工具、测试工具和维护工具等。编码工具、测试工具和维护工具等。 使用了软件工具后,可大大提高软件生产率。机使用了软件工具后,可大大提高软件生产率。机械工具可以放大人类的体力,软件工具可以放大人类械工具可以放大人类的体力,软件工具可以放大人类的智力。的智力。最初的软件工具是以工具箱的形式出现的,一种最初的软件工具是以工具箱的形式出现的,一种工具支持一种开发活动,然后将各种工具简单组合起工具支持一种

12、开发活动,然后将各种工具简单组合起来。来。 这类工具箱的工具界面不统一,工具内部无联系,这类工具箱的工具界面不统一,工具内部无联系,工具切换由人工操作。工具切换由人工操作。 工具箱主要由八类工具组成:工具箱主要由八类工具组成: 1.1.业务系统规划工具。业务系统规划工具。 2.2.项目管理工具。项目管理工具。 有效地估算软件项目所有效地估算软件项目所需的工作量、成本和研制周期。需的工作量、成本和研制周期。3.3.支持工具。支持工具。 用于支持软件工程过程,有用于支持软件工程过程,有文档编制工具、系统软件工具、质量保证文档编制工具、系统软件工具、质量保证工具、数据库管理工具、软件配置管理工工具、

13、数据库管理工具、软件配置管理工具。具。4.4.分析和设计工具。分析和设计工具。5.5.编程工具。编译器、编辑器、调试器(编程工具。编译器、编辑器、调试器(如如4 4GLGL)。)。6.6.测试与分析工具。常用的测试与分析工具。测试与分析工具。常用的测试与分析工具。7.7.原型工具。原型工具。8.8.维护工具。维护工具。由于工具箱存在的问题,人们在工具系统的整由于工具箱存在的问题,人们在工具系统的整体化及集成化方法上展开了一系列研究工作,使体化及集成化方法上展开了一系列研究工作,使之形成完整的软件开发环境。其目的是使软件工之形成完整的软件开发环境。其目的是使软件工具支持整个生存周期。它不仅能支持

14、软件开发和具支持整个生存周期。它不仅能支持软件开发和维护中的个别阶段,而且能够支持从项目开发计维护中的个别阶段,而且能够支持从项目开发计划、需求分析、设计、编码、测试到维护等所有划、需求分析、设计、编码、测试到维护等所有阶段,做到不仅支持各阶段中的技术工作,还支阶段,做到不仅支持各阶段中的技术工作,还支持管理和操作工作,保证项目开发的高度可预见持管理和操作工作,保证项目开发的高度可预见性、可控制性和可追踪性。性、可控制性和可追踪性。软件开发环境是指全面支持软件开发全过程软件开发环境是指全面支持软件开发全过程的软件工具集合,主要体现在三个级别上:的软件工具集合,主要体现在三个级别上:程序设计环境

15、、系统合成环境、项目管理环程序设计环境、系统合成环境、项目管理环境。境。如,以语言为中心的环境、面向结构的环境、如,以语言为中心的环境、面向结构的环境、工具箱环境、基于方法的环境及计算机辅助软件工具箱环境、基于方法的环境及计算机辅助软件(CASECASE)。)。软件管理技术是实现开发质量的保证。软件管理技术是实现开发质量的保证。软件工程管理包括软件开发管理和软件经济软件工程管理包括软件开发管理和软件经济管理。管理。软件开发管理包括软件开发规划的制定、软件开发管理包括软件开发规划的制定、人员的组成、制定计划、确定软件标准与配人员的组成、制定计划、确定软件标准与配置。置。软件经济管理主要指成本估算

16、、效益评软件经济管理主要指成本估算、效益评价、风险分析、投资回收计划、质量评价等。价、风险分析、投资回收计划、质量评价等。软件工程学的最终目的是研究开发以较少的软件工程学的最终目的是研究开发以较少的投入获得易维护、易理解、可靠性高的软件产品。投入获得易维护、易理解、可靠性高的软件产品。所以软件工程学就必须研究软件结构、软件设计所以软件工程学就必须研究软件结构、软件设计与开发方法、软件的维护方法、软件工具与开发与开发方法、软件的维护方法、软件工具与开发环境、软件工程的标准与规范、软件工程经济学环境、软件工程的标准与规范、软件工程经济学以及软件开发技术与管理技术的相关理论。以及软件开发技术与管理技

17、术的相关理论。软件工程软件开发技术软件工程管理软件开发方法软件开发工具软件开发环境软件开发管理软件心理学软件工程经济学第二节软件工程方法第二节软件工程方法软件工程是系统工程概念、思想、软件工程是系统工程概念、思想、方法在软件开发和维护中的具体体现,方法在软件开发和维护中的具体体现,是由系统工程派生出来的。系统工程就是由系统工程派生出来的。系统工程就是把组织是把组织管理管理管理管理与与技术技术技术技术管理相结合,软件管理相结合,软件工程也是将软件开发的管理与技术紧密工程也是将软件开发的管理与技术紧密结合的学科。结合的学科。所谓所谓管理管理管理管理是指通过计划、组织、领导、控制是指通过计划、组织、

18、领导、控制和创新等一系列活动,合理地配置和使用各种资和创新等一系列活动,合理地配置和使用各种资源,以达到既定目标的过程。源,以达到既定目标的过程。技术技术技术技术是指在软件生命周期的全过程中使用的是指在软件生命周期的全过程中使用的一整套技术的集合。一整套技术的集合。技术由各种方法组成,方法又称范型。技术由各种方法组成,方法又称范型。pp方法pp语言pp工具pp过程软件工程方法学包括四个要素:方法提供如何构造软件的技术。包括与方法提供如何构造软件的技术。包括与项目有关的计算和各种估算,系统和软件需求项目有关的计算和各种估算,系统和软件需求分析,数据结构设计,程序体系结构,算法过分析,数据结构设计

19、,程序体系结构,算法过程,编码,测试和维护等。软件工程方法通常程,编码,测试和维护等。软件工程方法通常引入多种专用的图形符号以及一套软件质量的引入多种专用的图形符号以及一套软件质量的准则。方法是解决如何做的问题。准则。方法是解决如何做的问题。语言用以支持软件的分析、设计和实现。随着语言用以支持软件的分析、设计和实现。随着编译程序和软件技术的完善,传统的编程语言表编译程序和软件技术的完善,传统的编程语言表述能力更强,更加灵活,而且支持过程实现更加述能力更强,更加灵活,而且支持过程实现更加抽象的描述。与此同时,规格说明语言和设计语抽象的描述。与此同时,规格说明语言和设计语言也开始有更大的可执行子集

20、。言也开始有更大的可执行子集。现在还发展了原型开发语言、面向对象语言。现在还发展了原型开发语言、面向对象语言。原型开发语言除必须具有执行的能力外,还必须原型开发语言除必须具有执行的能力外,还必须有规格说明和设计这两种语言能力。有规格说明和设计这两种语言能力。工具为方法和语言提供了自动化或半自动化的软工具为方法和语言提供了自动化或半自动化的软件支持环境。件支持环境。今天,工具可以支持上面提到的任一种方法和语今天,工具可以支持上面提到的任一种方法和语言。当这些工具集成起来,由一个工具产生的信息可言。当这些工具集成起来,由一个工具产生的信息可以被另一个工具使用时,就形成了一个支持软件开发以被另一个工

21、具使用时,就形成了一个支持软件开发的系统。这个系统我们称之为计算机辅助软件工程系的系统。这个系统我们称之为计算机辅助软件工程系统统( (Computer-Aided Software Engineering)Computer-Aided Software Engineering),简称简称CASECASE。CASECASE把软件、硬件、软件工程数据库把软件、硬件、软件工程数据库( (包括分析、包括分析、设计、编码和测试重要信息的数据结构设计、编码和测试重要信息的数据结构) )组成一个软件组成一个软件工程环境,类似于硬件的计算机辅助设计工程环境,类似于硬件的计算机辅助设计/ /计算机辅助计算机辅

22、助工程工程( (CAD/CAE)CAD/CAE)。过程是粘结剂,把方法、语言和工具粘结在一过程是粘结剂,把方法、语言和工具粘结在一起,它能使计算机软件开发理性化和适时化。起,它能使计算机软件开发理性化和适时化。过程定义了方法使用的顺序、可交付产品过程定义了方法使用的顺序、可交付产品( (文文档、报告以及格式等档、报告以及格式等) )的要求以及帮助确保质量和的要求以及帮助确保质量和变更的控制,使软件管理人员能对它们的进展进变更的控制,使软件管理人员能对它们的进展进行评价。行评价。过程是为了获得高质量的软件所需要完成的一过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的

23、工作系列任务的框架,它规定了完成各项任务的工作步骤。步骤。这些工作步骤通常叫作软件工程模式,软件这些工作步骤通常叫作软件工程模式,软件工程模式是根据项目和应用的性质、方法、语言、工程模式是根据项目和应用的性质、方法、语言、工具的使用、控制和可交付产品的要求来选择的。工具的使用、控制和可交付产品的要求来选择的。是软件工程方法研究的主要内容。目前使用最广泛是软件工程方法研究的主要内容。目前使用最广泛的工程方法学是:的工程方法学是:生命周期方法学原型方法学面向对象方法学生命周期方法学,也称传统方法学,或称生命周期方法学,也称传统方法学,或称结构化方法学。它采用结构化技术来完成软件结构化方法学。它采用

24、结构化技术来完成软件开发的任务,在其过程中使用适当的软件工具开发的任务,在其过程中使用适当的软件工具或软件环境来支撑结构化技术的运用。或软件环境来支撑结构化技术的运用。 所谓结构化技术包括:所谓结构化技术包括:结构化分析、结构化设计、结构化程序设计结构化分析、结构化设计、结构化程序设计和结构化测试。和结构化测试。这种方法学把软件生命周期的全过程依次划这种方法学把软件生命周期的全过程依次划分为任务相对独立、相对简单的若干个阶段,分为任务相对独立、相对简单的若干个阶段,然后顺序地完成每个阶段的任务。然后顺序地完成每个阶段的任务。从对任务的抽象逻辑开始,一个阶段一个阶从对任务的抽象逻辑开始,一个阶段

25、一个阶段地顺序开发,前一个阶段的完成是后阶段开始段地顺序开发,前一个阶段的完成是后阶段开始的前提和基础,后一阶段的完成通常是使前一阶的前提和基础,后一阶段的完成通常是使前一阶段提出的算法更进一步具体化,增加了更多的实段提出的算法更进一步具体化,增加了更多的实现细节。每一个阶段结束之前都必须进行正式的现细节。每一个阶段结束之前都必须进行正式的技术审查和管理复审,从技术和管理两方面对这技术审查和管理复审,从技术和管理两方面对这个阶段的开发成果进行检查,通过这个阶段才算个阶段的开发成果进行检查,通过这个阶段才算结束;如果不通过,则必须进行必要的返工,并结束;如果不通过,则必须进行必要的返工,并且返工

26、后还要再经过审查。且返工后还要再经过审查。审查的一条主要标准就是每个阶段都应该审查的一条主要标准就是每个阶段都应该交出与所开发的软件相一致的文档资料,保证交出与所开发的软件相一致的文档资料,保证在软件开发结束时有一个完整准确的软件配置在软件开发结束时有一个完整准确的软件配置交付使用。交付使用。在进行生命周期的每个阶段的任务时,应在进行生命周期的每个阶段的任务时,应该采用适合该阶段任务特点的系统化的技术,该采用适合该阶段任务特点的系统化的技术,即结构化分析、结构化设计、结构化程序设计即结构化分析、结构化设计、结构化程序设计和结构化测试技术。和结构化测试技术。 这种传统的软件开发方法,是面向过程的

27、这种传统的软件开发方法,是面向过程的( (或说或说是面向行为的是面向行为的) )。其优点是开发的软件整体性较强。其优点是开发的软件整体性较强。缺点是软件开发的成功率较低,对需求分析的缺点是软件开发的成功率较低,对需求分析的要求很高,维护很困难。要求很高,维护很困难。它适合开发功能和性能预先知道的软件,如系它适合开发功能和性能预先知道的软件,如系统软件、嵌入式软件、实时控制系统等。而对于一统软件、嵌入式软件、实时控制系统等。而对于一些功能和性能事先不太明确的软件,开发的成功率些功能和性能事先不太明确的软件,开发的成功率较低。较低。目前,这种传统的软件开发方法仍然广泛使用。目前,这种传统的软件开发

28、方法仍然广泛使用。原型方法学是根据简单的用户需求,用软件原型方法学是根据简单的用户需求,用软件工具快速生成软件原型工具快速生成软件原型( (模型模型) ),用户与开发人员,用户与开发人员针对这个原型进行讨论,用户提出意见,开发人针对这个原型进行讨论,用户提出意见,开发人员进行修改,直到用户对这个原型满意为止。然员进行修改,直到用户对这个原型满意为止。然后,以修改好的原型为基础开发软件。后,以修改好的原型为基础开发软件。原型方法学是针对传统方法学的缺点而产原型方法学是针对传统方法学的缺点而产生的一种方法学。它们属于系统工程中的两种生的一种方法学。它们属于系统工程中的两种不同的方法。不同的方法。传

29、统方法学属于霍尔的以传统方法学属于霍尔的以“优化优化”为核心为核心的方法学,原型方法学属于切克兰德的以的方法学,原型方法学属于切克兰德的以“比比较、学习较、学习”为核心的方法学为核心的方法学。传统方法学有一个严格的需求分析过程,需传统方法学有一个严格的需求分析过程,需要准确、完整的需求分析,软件开发成功与否就要准确、完整的需求分析,软件开发成功与否就建立在需求分析的基础上,然而人类的认识能力建立在需求分析的基础上,然而人类的认识能力是有限的,对问题的认识不可能一步到位,有个是有限的,对问题的认识不可能一步到位,有个反复的螺旋上升过程,这就决定了传统方法学不反复的螺旋上升过程,这就决定了传统方法

30、学不适合于需求模糊易变的软件开发。适合于需求模糊易变的软件开发。原型方法学没有严格的需求分析阶段,只有原型方法学没有严格的需求分析阶段,只有需求验证阶段,在需求阶段反复地与用户勾通,需求验证阶段,在需求阶段反复地与用户勾通,满足用户的需求,其整个过程就是一个比较、学满足用户的需求,其整个过程就是一个比较、学习过程,因此原型方法学比较符合人类认识、分习过程,因此原型方法学比较符合人类认识、分析、理解客观事物的规律。析、理解客观事物的规律。原型方法学在软件开发早期阶段应是一个学习和原型方法学在软件开发早期阶段应是一个学习和实践过程,它的活动应该包括开发人员和用户两个实践过程,它的活动应该包括开发人

31、员和用户两个方面。方面。为了使其更有效,不仅要求开发人员要与用户紧为了使其更有效,不仅要求开发人员要与用户紧密合作,而且还要有一个实际系统,只有这样才能密合作,而且还要有一个实际系统,只有这样才能获得成功。尽管用户在开始时说不清所要求的未来获得成功。尽管用户在开始时说不清所要求的未来软件系统是什么样,但他们却可以对现有系统非常软件系统是什么样,但他们却可以对现有系统非常熟练地进行挑剔。熟练地进行挑剔。原型法的主要哲学观点就是允许失败。原型法的主要哲学观点就是允许失败。 面向对象方法学是面向数据同时又面向行为面向对象方法学是面向数据同时又面向行为的一种崭新的软件开发方法学。的一种崭新的软件开发方

32、法学。它是把数据和行为它是把数据和行为( (或称为操作或称为操作) )等同看待,等同看待,以数据为主线,把数据和对数据的操作紧密结合以数据为主线,把数据和对数据的操作紧密结合在一起的一种方法。在一起的一种方法。面向对象方法学的出发点和基本原则是尽可面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,使开发软件的方法能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界、解决问题的方与过程尽可能接近人类认识世界、解决问题的方法与过程,从而使描述问题的问题空间与实现的法与过程,从而使描述问题的问题空间与实现的解空间在结构上尽可能一致。解空间在结构上尽可能一致。用面向对象

33、方法学开发软件的过程是一个主动用面向对象方法学开发软件的过程是一个主动地多次反复迭代的演化过程,如同喷泉一样。地多次反复迭代的演化过程,如同喷泉一样。面向对象方法在概念和表示方法上的一致性保面向对象方法在概念和表示方法上的一致性保证了在各项开发活动之间的平滑证了在各项开发活动之间的平滑( (无缝无缝) )过渡。过渡。面向对象方法普遍进行的对象分类过程支持从面向对象方法普遍进行的对象分类过程支持从特殊到一般的归纳思维过程,通过建立类等级而获特殊到一般的归纳思维过程,通过建立类等级而获得的继承性支持从一般到特殊的演绎思维过程。得的继承性支持从一般到特殊的演绎思维过程。面向对象方法有如下几个特点:面

34、向对象方法有如下几个特点:1 1、对象、对象( (Object)Object)是融合了数据及在数据上的是融合了数据及在数据上的操作行为的软件构件。对象是用数据来刻划属性操作行为的软件构件。对象是用数据来刻划属性及定义了该属性对象的行为的一个被封装了的模及定义了该属性对象的行为的一个被封装了的模块。数据用于表示对象的静态属性,是对象的状块。数据用于表示对象的静态属性,是对象的状态信息,而施加于数据上的操作是用于实现对象态信息,而施加于数据上的操作是用于实现对象的动态行为。面向对象的程序是由对象组成,程的动态行为。面向对象的程序是由对象组成,程序中的元素就是对象,复杂的对象由比较简单的序中的元素就

35、是对象,复杂的对象由比较简单的对象组合而成。对象组合而成。2 2、把对象分类、把对象分类( (Class)Class)。每个类都定义了一每个类都定义了一组数据和一组操作,类是对具有相同数据和相同组数据和一组操作,类是对具有相同数据和相同操作的一组相似对象的定义。对象是类的一个实操作的一组相似对象的定义。对象是类的一个实例,类是由对象群抽象而得到例,类是由对象群抽象而得到 3 3、类有一个、类有一个“ “继承继承” ”性质。有父类、子性质。有父类、子类之分,父类称为基类,子类称为派生类。类之分,父类称为基类,子类称为派生类。子类继承了父类的全部属性和操作。子类继承了父类的全部属性和操作。即,我们

36、可把若干个相似类组成一个层即,我们可把若干个相似类组成一个层次结构的系统。在这个结构中,下层派生类次结构的系统。在这个结构中,下层派生类自动拥有上层基类中定义的数据和操作,这自动拥有上层基类中定义的数据和操作,这就是继承。就是继承。4 4、封装。对象的数据属性以及对象的操作、封装。对象的数据属性以及对象的操作( (或称行为或称行为) )是被封装在一起的,它是进行处理是被封装在一起的,它是进行处理的主体,其它对象必须向它发送消息请求它执的主体,其它对象必须向它发送消息请求它执行它的某个操作,而不能从外界直接对它访问。行它的某个操作,而不能从外界直接对它访问。这种封装性,很符合软件的信息隐蔽、信息

37、局这种封装性,很符合软件的信息隐蔽、信息局部性原则,其独立性很好。部性原则,其独立性很好。面向对象方法面向对象方法= =对象对象+ +类类+ +继承继承+ +用消息通信。面用消息通信。面向对象既用对象又用类的继承机制,对象之间通过向对象既用对象又用类的继承机制,对象之间通过传递消息实现彼此通信。当软件规模较大、软件需传递消息实现彼此通信。当软件规模较大、软件需求较模糊易变时,传统的方法学往往显得力不从心,求较模糊易变时,传统的方法学往往显得力不从心,面向对象方法学能起一定的作用,可以简化软件的面向对象方法学能起一定的作用,可以简化软件的开发和维护工作,能提高软件的可重用性。开发和维护工作,能提

38、高软件的可重用性。近年来在许多应用领域中,面向对象方法学已近年来在许多应用领域中,面向对象方法学已经取代了传统的方法学,但我们必须清楚地认识到,经取代了传统的方法学,但我们必须清楚地认识到,面向对象方法学并不是如人们所期望的那样万能,面向对象方法学并不是如人们所期望的那样万能,也有一定的局限性。也有一定的局限性。 明确问题选择目标系统综合系统分析方案优化作出决策付诸实施霍尔“优化”方法流程图问题现状说明弄清关联因素建立概念模型改善概念模型比较实施切克兰德“调查学习”方法流程图第三节第三节 常见的几种软件开发模型常见的几种软件开发模型模型是为了理解事物而对事物作出的一种抽象,模型是为了理解事物而

39、对事物作出的一种抽象,它忽略了不必要的细节,是事物的一种抽象形式、它忽略了不必要的细节,是事物的一种抽象形式、一个规划、一个程式。软件开发模型就是描述软件一个规划、一个程式。软件开发模型就是描述软件开发过程中各种活动如何执行的模型。一个强有力开发过程中各种活动如何执行的模型。一个强有力的软件开发模型,为软件开发提供了强有力的支持,的软件开发模型,为软件开发提供了强有力的支持,为软件开发过程中所有活动提供了统一的规范保证,为软件开发过程中所有活动提供了统一的规范保证,为参与软件开发的所有成员提供帮助和指导。同时为参与软件开发的所有成员提供帮助和指导。同时它也揭示了如何演绎软件过程的思想,是软件开

40、发它也揭示了如何演绎软件过程的思想,是软件开发模型化技术的基础,也是建立软件开发环境的核心。模型化技术的基础,也是建立软件开发环境的核心。 软件开发模型确立了软件开发和演绎中各阶段软件开发模型确立了软件开发和演绎中各阶段的次序限制,以及各阶段活动的准则,确立了开发的次序限制,以及各阶段活动的准则,确立了开发过程所遵守的规定和限制,便于各种活动的协调以过程所遵守的规定和限制,便于各种活动的协调以及各种人员的有效通信,有利于活动重用和活动管及各种人员的有效通信,有利于活动重用和活动管理。软件开发模型能表示各种活动的实际工作方式,理。软件开发模型能表示各种活动的实际工作方式,各种活动间的同步和制约关

41、系,以及活动的动态特各种活动间的同步和制约关系,以及活动的动态特性。模型应该容易为软件开发过程中的各类人员所性。模型应该容易为软件开发过程中的各类人员所理解,应该适应不同的软件项目,具有较强的灵活理解,应该适应不同的软件项目,具有较强的灵活性以及支持软件开发环境的建立。性以及支持软件开发环境的建立。 软件开发模型与开发模式是有区别的,开发模软件开发模型与开发模式是有区别的,开发模式指一种开发思想。常见的软件开发模式:结构化式指一种开发思想。常见的软件开发模式:结构化开发模式、原型开发模式、面向对象开发模式及开发模式、原型开发模式、面向对象开发模式及CASECASE模式。模式。常用的软件开发模型

42、:常用的软件开发模型:瀑布模型增量模型螺旋模型喷泉模型四代技术变换模型基于知识的模型过程开发模型瀑布模型瀑布模型瀑瀑布布模模型型是是属属于于传传统统的的结结构构化化开开发发模模式式,是是由由硬硬件件和和系系统统工工程程派派生生出出来来的的,是是一一种种将将软软件件生生存存周周期期各各活活动动阶阶段段规规定定为为依依线线性性顺顺序序联联接接的的,系系统统的和顺序的开发方法。的和顺序的开发方法。它它包包括括可可行行性性分分析析、项项目目开开发发计计划划、 需需求求分分析、概要设计、详细设计、编码、测试和维护。析、概要设计、详细设计、编码、测试和维护。这这种种模模型型的的实实质质是是面面向向阶阶段段

43、的的、线线性性的的或或传传统统的的开开发发策策略略。除除了了确确认认和和验验证证外外,其其它它所所有有阶阶段段都都是是线线性性执执行行的的,即即每每个个阶阶段段只只有有在在前前一一个个阶阶段段完成后才能开始。完成后才能开始。它规定了由前至后、相互衔接的固定次序,它规定了由前至后、相互衔接的固定次序,如同瀑布流水,逐级下落。如同瀑布流水,逐级下落。瀑布模型为软件开发提供了一种有效的管理瀑布模型为软件开发提供了一种有效的管理模型。根据这一模型制定开发计划,进行成本预模型。根据这一模型制定开发计划,进行成本预算,组织开发力量,算,组织开发力量, 以项目的阶段评审和文档控以项目的阶段评审和文档控制为手

44、段有效地对整个开发过程进行指导。制为手段有效地对整个开发过程进行指导。因此它是以文档作为驱动、适合于需求很明因此它是以文档作为驱动、适合于需求很明确的软件项目开发的模型。确的软件项目开发的模型。 需求定义确认设计确认编码确认测试确认维护确认需求说明书设计说明书源程序清单测试报告软件维护报告瀑布模型瀑布模型瀑布模型瀑布模型该模型说明整个软件开发过程是按图中该模型说明整个软件开发过程是按图中5 5个阶个阶段进行的。段进行的。每个阶段的任务完成之后,产生右边相应的每个阶段的任务完成之后,产生右边相应的文档文档( (图中只列出该阶段最主要的文档图中只列出该阶段最主要的文档) ),这些文,这些文档通过确

45、认后,表明该阶段工作完成,并进入下档通过确认后,表明该阶段工作完成,并进入下一阶段的工作。一阶段的工作。每个阶段均以上一阶段的文档作为开发的基每个阶段均以上一阶段的文档作为开发的基础,础, 如果某一文档出现问题,则要返回到上一如果某一文档出现问题,则要返回到上一阶段去重新进行工作。阶段去重新进行工作。 一、瀑布模型往往会碰到让人头痛的问题。一、瀑布模型往往会碰到让人头痛的问题。一、瀑布模型往往会碰到让人头痛的问题。一、瀑布模型往往会碰到让人头痛的问题。例如:例如:1 1)一一个个活活动动在在项项目目中中出出现现得得越越早早,对对这这个个活活动动的的注释就越不足;注释就越不足;2 2)一一个个活

46、活动动在在项项目目中中出出现现得得越越早早,我我们们对对这这个个活活动的理解就越少;动的理解就越少;3 3)一一个个错错误误在在项项目目中中形形成成越越早早,这这个个错错误误所所造造成成的影响就越严重。的影响就越严重。瀑布模型有如下特点:问题的本质是这种模式是建立在完备的需求分析的基础问题的本质是这种模式是建立在完备的需求分析的基础上,而需求分析是不可能完备的、准确的。上,而需求分析是不可能完备的、准确的。原因主要是:原因主要是:1 1)用户与开发者之间,以及他们之间的交流存在巨大)用户与开发者之间,以及他们之间的交流存在巨大的文化差异;的文化差异;2 2)用户由于不熟悉信息技术,可能提出非常

47、含糊的需)用户由于不熟悉信息技术,可能提出非常含糊的需求,而这种需求又可能被开发人员随意解释;求,而这种需求又可能被开发人员随意解释;3 3)经验证明,一旦用户开始使用计算机系统,他们对)经验证明,一旦用户开始使用计算机系统,他们对目标系统的理解可能又会发生变化,这显然会使原始需求无目标系统的理解可能又会发生变化,这显然会使原始需求无效。效。 用户需求常常是一个变动的目标。由用户需求常常是一个变动的目标。由于知识背景的不同,工作中的疏漏和通讯于知识背景的不同,工作中的疏漏和通讯媒介的局限性,使通讯中的误解无法避免。媒介的局限性,使通讯中的误解无法避免。随着项目向前推进,用户会产生新的随着项目向

48、前推进,用户会产生新的要求,或因环境变化希望系统也能随之变要求,或因环境变化希望系统也能随之变化。化。 二、瀑布模型要求严格按照生存周期各个阶段的二、瀑布模型要求严格按照生存周期各个阶段的二、瀑布模型要求严格按照生存周期各个阶段的二、瀑布模型要求严格按照生存周期各个阶段的目标、任务、文档和要求来进行开发。目标、任务、文档和要求来进行开发。目标、任务、文档和要求来进行开发。目标、任务、文档和要求来进行开发。它强调了每一阶段的严格性,尤其是开发前期的它强调了每一阶段的严格性,尤其是开发前期的良好需求说明,这样,就能解决在开发阶段后期因良好需求说明,这样,就能解决在开发阶段后期因修正不完善的需求说明

49、而导致巨大费用的问题。修正不完善的需求说明而导致巨大费用的问题。于是人们需要付出极大的努力来加强各阶段活动于是人们需要付出极大的努力来加强各阶段活动的严格性,的严格性, 特别是需求定义阶段,希望得到完整、特别是需求定义阶段,希望得到完整、准确、无二义性的需求说明,以减少后面各阶段不准确、无二义性的需求说明,以减少后面各阶段不易估量的浪费。易估量的浪费。 在传统的观念中,人们认为只要认真努力,在传统的观念中,人们认为只要认真努力,总可以通过详尽分析来确定完整、准确的需求总可以通过详尽分析来确定完整、准确的需求说明,从而明确系统的各种需求,只要采用一说明,从而明确系统的各种需求,只要采用一套严格规

50、定的术语及表达方式,就一定可以准套严格规定的术语及表达方式,就一定可以准确清楚地表达和通讯,在严格的开发管理下得确清楚地表达和通讯,在严格的开发管理下得到完美的结果。到完美的结果。 在在这这种种严严格格定定义义的的模模型型中中,开开发发人人员员试试图图在在每每一一活活动动过过程程结结束束后后,通通过过严严格格的的阶阶段段性性复复审审与与确确认认,得得到到该该阶阶段段的的一一致致、完完整整、准准确确和和无无二二义义性性的的良良好好文文档档,以以“冻冻结结”这这些些文文档档为为该该阶阶段段结结束束的的标标志志,保保持持不不变变,作作为为下下一一阶阶段段活活动动的的唯唯一一基基础础,从从而而形形成成

51、一一个个理理想想的的线线性性开开发发序序列列,以以每每一一步步的的正正确确性性和和完完整整性性来来保保证证最最终系统的质量。终系统的质量。瀑布模型是以瀑布模型是以文档形式文档形式文档形式文档形式驱动的,为合同双方驱动的,为合同双方最终确认产品规定了蓝本,为管理者进行项目开最终确认产品规定了蓝本,为管理者进行项目开发管理提供了基础,为开发过程施加了发管理提供了基础,为开发过程施加了“政策政策”或纪律限制,约束了开发过程中的活动。瀑布模或纪律限制,约束了开发过程中的活动。瀑布模型以里程碑开发原则为基础,提供各阶段的检查型以里程碑开发原则为基础,提供各阶段的检查点,确保用户需求,满足预算和时间限制。

52、点,确保用户需求,满足预算和时间限制。三三三三、 瀑瀑瀑瀑布布布布模模模模型型型型是是是是一一一一种种种种整整整整体体体体开开开开发发发发模模模模型型型型,在在在在开开开开发发发发过过过过程程程程中中中中,用用用用户户户户看看看看不不不不见见见见系系系系统统统统是是是是什什什什么么么么样样样样,只只只只有有有有开开开开发发发发完完完完成成成成向向向向用用用用户户户户提提提提交交交交整整整整个个个个系系系系统统统统时时时时,用用用用户户户户才才才才能能能能看到一个完整的系统。看到一个完整的系统。看到一个完整的系统。看到一个完整的系统。 四四四四、 瀑瀑瀑瀑布布布布模模模模型型型型适适适适合合合合

53、于于于于功功功功能能能能和和和和性性性性能能能能明明明明确确确确、完完完完整整整整、无重大变化的软件开发。无重大变化的软件开发。无重大变化的软件开发。无重大变化的软件开发。 如如,系系统统软软件件、嵌嵌入入式式软软件件等等就就具具有有这这些些特特征征。在在开开发发这这些些系系统统前前均均可可完完整整、准准确确、 一一致致和和无无二二义义性性地地定定义义其其目目标标、功功能能和和性性能能等等。有有人人称称这这类类软件为预先指定系统。软件为预先指定系统。对于当前的大型软件项目,特别是应用软件项对于当前的大型软件项目,特别是应用软件项目,在开发前期用户常常对系统只有一个模糊的目,在开发前期用户常常对

54、系统只有一个模糊的想法,很难明确确定和表达对系统的全面要求,想法,很难明确确定和表达对系统的全面要求,称这类软件为由称这类软件为由用户驱动软件用户驱动软件。这类软件经过详细的需求定义,尽管可得到一这类软件经过详细的需求定义,尽管可得到一份较好的需求说明,但却很难期望该需求说明能份较好的需求说明,但却很难期望该需求说明能将系统的一切都描述得完整、准确、一致并与实将系统的一切都描述得完整、准确、一致并与实际环境相符,很难通过它在逻辑上推断出系统的际环境相符,很难通过它在逻辑上推断出系统的运行效果,并以此达到各类人员对系统的共同理运行效果,并以此达到各类人员对系统的共同理解。解。 因因此此,要要保保

55、证证每每个个阶阶段段特特别别是是定定义义阶阶段段是是正正确确的的、完完整整的的,只只是是理理想想情情况况,实实际际上上是是做做不不到到或或很难做到的。很难做到的。 开开发发者者也也可可能能在在设设计计中中遇遇到到某某些些未未曾曾预预料料的的实实际际困困难难,希希望望能能在在需需求求中中有有所所权权衡衡。这这些些都都成成为为进进行行严严格格线线性性开开发发的的重重大大障障碍碍,尽尽管管通通过过加加强强复复审审与与确确认认、全全面面测测试试和和设设立立维维护护阶阶段段来来缓缓解解上上述述困难,但均未在根本上解决这些问题。困难,但均未在根本上解决这些问题。 五五五五、作作作作为为为为整整整整体体体体

56、开开开开发发发发的的的的瀑瀑瀑瀑布布布布模模模模型型型型,由由由由于于于于不不不不支支支支持持持持软软软软件件件件产产产产品品品品的的的的演演演演化化化化,对对对对开开开开发发发发过过过过程程程程中中中中的的的的一一一一些些些些很很很很难难难难发发发发现的错误只有在最终产品运行时才能发现。现的错误只有在最终产品运行时才能发现。现的错误只有在最终产品运行时才能发现。现的错误只有在最终产品运行时才能发现。 瀑瀑布布模模型型缺缺乏乏对对付付变变化化的的机机制制,所所以以最最终终产产品将难以维护。品将难以维护。瀑布模型在大量的软件开发实践中也逐渐暴瀑布模型在大量的软件开发实践中也逐渐暴露出它的严重缺点

57、。露出它的严重缺点。它是一种理想的线性开发模式,缺乏灵活性,它是一种理想的线性开发模式,缺乏灵活性, 特别是无法解决软件需求不明确或不准确的问题。特别是无法解决软件需求不明确或不准确的问题。这些缺点对软件开发带来了严重影响,最终这些缺点对软件开发带来了严重影响,最终可能导致开发出的软件并不是用户真正需要的软可能导致开发出的软件并不是用户真正需要的软件,并且这一点在开发过程完成后才能发现,件,并且这一点在开发过程完成后才能发现, 但已为时太晚。但已为时太晚。 针对这些情况,无疑需要进行返工,或者在运针对这些情况,无疑需要进行返工,或者在运行中进行大量修改。不管是返工或进行大量修改行中进行大量修改

58、。不管是返工或进行大量修改都必须付出巨大的代价,都必须付出巨大的代价, 给软件开发带来不必要给软件开发带来不必要的损失。的损失。同时,随着软件开发项目的规模日益扩大,瀑同时,随着软件开发项目的规模日益扩大,瀑布模型缺乏灵活性的缺点引发的问题更为严重。布模型缺乏灵活性的缺点引发的问题更为严重。为克服瀑布模型的不足,现在已提出若干其他模为克服瀑布模型的不足,现在已提出若干其他模型。型。 增量模型增量模型瀑瀑布布模模型型是是一一种种整整体体开开发发模模型型。在在开开发发过过程程中中,用用户户看看不不到到软软件件是是什什么么样样子子,只只有有开开发发完完成成后后,整整个个软软件件才才全全部部展展现现在

59、在用用户户面面前前。针针对对它它的的这种缺点,提出了增量模型。这种缺点,提出了增量模型。增增量量模模型型属属于于原原型型开开发发模模式式,是是一一种种非非整整体体开开发发的的模模型型。它它适适合合开开发发那那种种需需求求是是可可变变的的、模模糊的以及用户与开发者难以沟通的软件。糊的以及用户与开发者难以沟通的软件。增量模型的基本思想增量模型的基本思想软件在该模型中是软件在该模型中是“逐渐逐渐”开发出来的,开发开发出来的,开发出一部分,向用户展示一部分,可让用户及早看到出一部分,向用户展示一部分,可让用户及早看到部分软件,部分软件, 及早发现问题。及早发现问题。或者先开发一个或者先开发一个“原型原

60、型”软件,完成部分主要软件,完成部分主要功能,展示给用户并征求意见,功能,展示给用户并征求意见, 然后逐步完善,然后逐步完善,最终获得满意的软件产品。最终获得满意的软件产品。该模型具有较大的灵活性,适合于软件需求不该模型具有较大的灵活性,适合于软件需求不明确、设计方案有一定风险的软件项目。明确、设计方案有一定风险的软件项目。 原型模型原型模型原型模型原型模型 计划需求分析原型开发原型评价最终系统设计最终系统实现渐增模型原型模型增量构造模型演化提交模型探索型模型实验型模型演化型模型 增量模型增量构造模型增量构造模型增量构造模型增量构造模型是在瀑布模型的基础上,对是在瀑布模型的基础上,对一阶段进行

61、整体开发,对另一些阶段进行增一阶段进行整体开发,对另一些阶段进行增量开发。量开发。演化提交模型演化提交模型演化提交模型演化提交模型是在瀑布模型的基础上,所是在瀑布模型的基础上,所有阶段都进行增量提交式开发,即开发一个有阶段都进行增量提交式开发,即开发一个提交一个。提交一个。 原型模型原型模型原型模型原型模型,又称,又称快速原型模型快速原型模型快速原型模型快速原型模型。在开发真实系统前,构造一个原型,在该原在开发真实系统前,构造一个原型,在该原型的基础上,逐渐完成整个系统的开发任务。型的基础上,逐渐完成整个系统的开发任务。它又可分为探索型原型、实验型原型、演化它又可分为探索型原型、实验型原型、演

62、化型原型。型原型。 探索型原型探索型原型探索型原型探索型原型是把原型法用于开发的需求分析,是把原型法用于开发的需求分析,目的是弄清楚用户的需求,确定所期望的软件特目的是弄清楚用户的需求,确定所期望的软件特征。它适用于对开发目标模糊、用户与开发者对征。它适用于对开发目标模糊、用户与开发者对开发软件都缺乏经验的情况下,通过对原型的开开发软件都缺乏经验的情况下,通过对原型的开发、交互来验证需求。发、交互来验证需求。 实验型原型实验型原型实验型原型实验型原型主要用于设计阶段,验证方案是主要用于设计阶段,验证方案是否合适、能否实现。对于一个大型系统,若对否合适、能否实现。对于一个大型系统,若对设计方案心

63、中没有把握时,可通过这种原型来设计方案心中没有把握时,可通过这种原型来证实设计方案的正确性。证实设计方案的正确性。 演化型原型演化型原型演化型原型演化型原型主要用于及早向用户提交一个原主要用于及早向用户提交一个原型系统,该原型系统包含系统的框架,或包含系型系统,该原型系统包含系统的框架,或包含系统的主要功能,在得到用户的认可后,将原型系统的主要功能,在得到用户的认可后,将原型系统不断扩充演变为最终的软件系统。统不断扩充演变为最终的软件系统。它将原型的思想扩展到软件开发的全过程。它将原型的思想扩展到软件开发的全过程。 螺旋模型螺旋模型螺螺旋旋模模型型将将瀑瀑布布模模型型与与增增量量模模型型结结合

64、合起起来来,汲汲取取了了这这两两种种模模型型的的优优点点,增增加加了了风风险险分分析析来来弥弥补这两种模型的不足。补这两种模型的不足。螺螺旋旋模模型型将将开开发发过过程程分分为为几几个个螺螺旋旋周周期期,每每个螺旋周期大致和瀑布模型相符合。个螺旋周期大致和瀑布模型相符合。每个螺旋周期可分为 4 个工作步骤。第一,制定计划,即确定目标,选定实施方案,明确开发限制条件;第二,风险分析,即分析所选方案,识别风险,通过原型消除风险;第三,开发实施, 即实施软件开发;第四,用户评估,即评价开发工作,提出修改意见,建立下一个周期的计划。 螺旋模型螺旋模型螺旋模型螺旋模型 需求计划操作概念软件需求提交部分确

65、定目标方案限制条件费用累加风险分析风险分析风险分析原型1原型2原型3可操作原型详细设计编程模块测试组装测试确认测试运行评估方案,标识、解决风险软件产品设计设计验证和确认需求验证开发计划测试计划集成和计划下阶段工作开发验证下一级产品螺旋模型是一种风险驱动的模型。在软件开发螺旋模型是一种风险驱动的模型。在软件开发中,有各种各样的风险。对于不同的软件项目,中,有各种各样的风险。对于不同的软件项目,其开发风险有大有小。其开发风险有大有小。在制定项目开发计划时,分析员要明确项目的在制定项目开发计划时,分析员要明确项目的需求是什么,需要多少资源,如何安排开发进度需求是什么,需要多少资源,如何安排开发进度等

66、一系列问题。等一系列问题。 要给出准确无误的回答是不容易的。分析员通常要给出准确无误的回答是不容易的。分析员通常凭借经验的估计而给出初步的设想,这难免会带来一凭借经验的估计而给出初步的设想,这难免会带来一定的风险。定的风险。同样,在设计阶段给出的设计方案是否能实现用同样,在设计阶段给出的设计方案是否能实现用户的功能,也会具有一定风险。户的功能,也会具有一定风险。实践表明,项目越复杂,设计方案、资源、成本实践表明,项目越复杂,设计方案、资源、成本和进度等因素的不确定性就越大,项目开发的风险也和进度等因素的不确定性就越大,项目开发的风险也越大。因此,应该对风险进行识别、分析并采取对策,越大。因此,

67、应该对风险进行识别、分析并采取对策,从而消除或减少风险的危害。从而消除或减少风险的危害。 螺旋模型适合于大型软件的开发,它吸收了软螺旋模型适合于大型软件的开发,它吸收了软件工程件工程“演化演化”的概念,使得开发人员和用户对每的概念,使得开发人员和用户对每个螺旋周期出现的风险有所了解,从而作出相应的个螺旋周期出现的风险有所了解,从而作出相应的反应。反应。但是,使用该模型需要有相当丰富的风险评估但是,使用该模型需要有相当丰富的风险评估经验和专门知识,这使该模型的应用受到一定的限经验和专门知识,这使该模型的应用受到一定的限制。制。 图形中半径的大小代表了完成现在步骤所需的图形中半径的大小代表了完成现

68、在步骤所需的费用累加。螺旋角度的大小代表了完成螺旋的每次费用累加。螺旋角度的大小代表了完成螺旋的每次循环需做的工作,该模型反映了一个重要的概念,循环需做的工作,该模型反映了一个重要的概念,即每一次循环包含一次进展,该进展对产品的每一即每一次循环包含一次进展,该进展对产品的每一部分及每一级改进都指出了从用户需求文档至每一部分及每一级改进都指出了从用户需求文档至每一单独程序的编程步骤的相同次序。单独程序的编程步骤的相同次序。 一一、确确定定目目标标、方方案案和和限限制制条条件件。确确定定软软件件产产品品各各部部分分的的目目标标,如如性性能能、功功能能和和适适应应变变化化的的能能力力等等;确确定定软

69、软件件产产品品各各部部分分实实现现的的各各种种方方案案,选选择择如如A A设设计计、 B B设设计计、软软件件重重用用和和购购买买等等;确确定定不不同同方方案案的的限限制制条条件件,如成本、规模、接口调度、资源分析和时间表安排等。如成本、规模、接口调度、资源分析和时间表安排等。二二、评评估估方方案案、标标识识风风险险和和解解决决风风险险。对对各各个个不不同同实实现现方方案案进进行行评评估估,对对出出现现的的不不确确定定因因素素进进行行风风险险分分析析,提提出出解解决决风风险险的的策策略略,建建立立相相应应的的原原型型。若若原原型型是是可可运行的、健壮的,则可作为下一步产品演化的基础。运行的、健

70、壮的,则可作为下一步产品演化的基础。螺旋模型的开发步骤:螺旋模型的开发步骤:螺旋模型的开发步骤:螺旋模型的开发步骤:三三、开开发发确确认认产产品品。若若以以前前的的原原型型已已解解决决了了所所有有性性能能和和用用户户接接口口风风险险,目目前前占占主主要要位位置置的的是是程程序序开开发发和和接接口口控控制制风风险险,那那么么接接下下来来应应采采用用瀑瀑布布模模型型的的方方法法,进进行行用用户户需需求求、软软件件需需求求、软软件件设设计计和和软软件件实实现现等等。同同时时要要对对其其作作适适当当修修改改,以以适适应应增增量量开开发发。也也可可选选择择原原型,模拟原型,导致了步骤的不同子集的使用。型

71、,模拟原型,导致了步骤的不同子集的使用。四四、计计划划下下一一周周期期工工作作。主主要要工工作作包包括括对对下下一一周周期期的的软软件件需需求求、软软件件设设计计和和软软件件实实现现进进行行计计划划;对对部部分分产产品品进进行行增增量量开开发发;或或者者是是由由部部分分组组织织和和个个人人开开发发软软件件的的各各个个组组成成部部分分。我我们们可可设设想想有有一一系系列列平平行行的的螺螺旋旋循循环环,每每一一个个螺螺旋旋循循环环对对应应一一个个组组成成部部分分, 好好像像在在图图中中加加入入第第三三维维,即即加加入入若若干干重重叠叠的的螺螺旋旋平平面面,不不同同的的螺螺旋平面对应于不同的软件组成

72、部分,以便分别演化。旋平面对应于不同的软件组成部分,以便分别演化。与其他模型相似,在螺旋模型中每次循环都以评与其他模型相似,在螺旋模型中每次循环都以评审结束,评审涉及产品的原来人员或组织,评审覆审结束,评审涉及产品的原来人员或组织,评审覆盖前一次循环中所开发的全部产品,包括下一次循盖前一次循环中所开发的全部产品,包括下一次循环的计划以及实现它们的资源。环的计划以及实现它们的资源。评审的主要任务是确保所有有关部分的质量,以评审的主要任务是确保所有有关部分的质量,以共同提交给下一阶段。共同提交给下一阶段。 喷泉模型喷泉模型喷喷泉泉模模型型是是属属于于面面向向对对象象方方法法学学的的,是是一一种种以

73、以用用户需求为动力,以对象作为驱动的模型。户需求为动力,以对象作为驱动的模型。它它适适合合于于面面向向对对象象的的开开发发方方法法。它它克克服服了了瀑瀑布布模模型型不不支支持持软软件件重重用用和和多多项项开开发发活活动动集集成成的的局局限限性性。喷喷泉泉模模型型使使开开发发过过程程具具有有迭迭代代性性和和无无间间隙隙性性。系系统统某某些些部部分分常常常常重重复复工工作作多多次次,相相关关功功能能在在每每次次迭迭代代中中随随之之加入演化的系统。加入演化的系统。无无间间隙隙是是指指在在分分析析、设设计计和和实实现现等等开开发发活活动动之之间间不存在明显的边界。不存在明显的边界。 喷泉模型喷泉模型喷

74、泉模型喷泉模型 实 现软件设计系统设计分 析喷喷泉泉模模型型的的图图形形如如图图所所示示。它它以以面面向向对对象象的的软软件件开开发发方方法法学学为为基基础础,以以用用户户需需求求作作为为喷喷泉泉模模型型的源泉。其特点如下:的源泉。其特点如下: 一一、 喷喷泉泉模模型型规规定定软软件件开开发发过过程程有有 4 4 个个阶阶段段, 即系统分析、即系统分析、 系统设计、系统设计、 软件设计和实现。软件设计和实现。二二、喷喷泉泉模模型型的的各各阶阶段段相相互互重重叠叠, 它它反反映映了了软件过程并行性的特点。软件过程并行性的特点。 三三、喷喷泉泉模模型型以以分分析析为为基基础础, 资资源源消消耗耗呈

75、呈塔塔型,型, 在分析阶段消耗的资源最多。在分析阶段消耗的资源最多。 四四、喷喷泉泉模模型型反反映映了了软软件件过过程程迭迭代代的的自自然然特特性性, 从高层返回低层无资源消耗。从高层返回低层无资源消耗。五五、喷喷泉泉模模型型强强调调增增量量开开发发,它它依依据据分分析析一一点点, 设设计计一一点点的的原原则则, 并并不不要要求求一一个个阶阶段段的的彻彻底底完完成成, 整个过程是一个迭代的逐步提炼的过程。整个过程是一个迭代的逐步提炼的过程。六六、喷喷泉泉模模型型是是对对象象驱驱动动的的过过程程,对对象象是是所所有有活动作用的实体,也是项目管理的基本内容。活动作用的实体,也是项目管理的基本内容。

76、四代技术模型四代技术模型四四代代技技术术,简简称称4 4GTGT。4GT4GT拥拥有有一一组组工工具具,它它们们都都有有一一个个共共同同的的特特点点,即即每每个个工工具具都都能能使使开开发发人人员员在在高高层层次次上上定定义义软软件件的的某某些些特特性性,并并把把开开发发人人员员定定义义的的这这些特性自动生成源代码。些特性自动生成源代码。机机器器如如果果能能在在越越高高层层上上定定义义软软件件,则则程程序序生生成成越越快快。软软件件工工程程的的4 4GTGT模模型型能能在在机机器器的的一一定定层层次次上上用用一一种种近近似似自自然然的的语语言言或或一一种种能能赋赋予予特特殊殊功功能能的的符符号

77、号来来定定义义软件。软件。目前,支持目前,支持4 4GTGT模型的软件开发环境的常见的模型的软件开发环境的常见的工具:工具:数据查询的非过程性语言,报表生成,数据数据查询的非过程性语言,报表生成,数据处理,屏幕交互和定义,代码生成,高层图形功处理,屏幕交互和定义,代码生成,高层图形功能和电子表格等。能和电子表格等。四代技术模型四代技术模型四代技术模型四代技术模型 需求分析设计策略用4GT实现测 试变换模型变换模型变变换换模模型型是是一一种种适适合合于于形形式式化化开开发发方方法法的的模模型型。从从软软件件需需求求的的形形式式化化说说明明开开始始,经经过过一系列变换,最终得到系统的目标程序。一系

78、列变换,最终得到系统的目标程序。 变变换换模模型型主主要要用用于于软软件件的的形形式式化化开开发发方方法法。一一个个形形式式化化的的软软件件开开发发方方法法要要提提供供一一套套思思维维方方法法和和描描述述开开发发手手段段,如如规规范范描描述述的的原原则则、程程序序开开发发的的一一般般过过程程、描描述述语语言言等等,使使开开发发者者能能利利用用数数学学概概念念和和表表示示方方法法恰恰当当合合理理地地构构造造形形式式规规范范,根根据据开开发发过过程程的的框框架架及及设设计计原原则则进进行行规规范范描描述述和和系系统统化化的的设设计计, 并对规范的性质和设计的步骤进行分析验证。并对规范的性质和设计的

79、步骤进行分析验证。用于软件形式化开发方法的变换模型分为模型用于软件形式化开发方法的变换模型分为模型规范的建立和规范实现开发的一系列变换过程。规范的建立和规范实现开发的一系列变换过程。 模型检查软件需求形式化说明(M0)(M2)软件设计形式化说明(M)程序(Mn)变换变换变换一一、建建立立软软件件系系统统的的模模型型规规范范。将将对对实实现现环环境境和和系系统统的的功功能能需需求求进进行行分分析析,提提出出与与系系统统有有关关的的基基本本概概念念和和固固有有属属性性,并并以以此此为为基基础础建建立立问问题题求求解解的的抽抽象象模模型型,称称为为模模型型抽抽象象。它它由由相相互互关关联联的的两两部

80、部分分组组成成,即即表示抽象和运算抽象。表示抽象和运算抽象。二二、表表示示抽抽象象。表表示示抽抽象象是是模模型型规规范范构构造造者者在在分分析析求求解解问问题题及及其其实实现现环环境境的的基基础础上上,对对形形成成系系统统可可观观察属性的对象域及其组成元素的形式描述。察属性的对象域及其组成元素的形式描述。 三、运算抽象。运算抽象是定义若干运算来模拟三、运算抽象。运算抽象是定义若干运算来模拟系统中可能发生的事件,即围绕表示抽象给出若干运系统中可能发生的事件,即围绕表示抽象给出若干运算的规范描述。这种描述规定了运算所模拟的事件发算的规范描述。这种描述规定了运算所模拟的事件发生前后,系统可观察属性的

81、变化关系,即状态转换关生前后,系统可观察属性的变化关系,即状态转换关系。系。 开发过程中注意如下六个问题:开发过程中注意如下六个问题:开发过程中注意如下六个问题:开发过程中注意如下六个问题: 四四、变变换换过过程程。当当软软件件系系统统模模型型规规范范的的构构造造完完成成之之后后,进进一一步步开开发发满满足足规规范范的的实实现现系系统统。程程序序开开发发过过程程应应是是设设计计和和验验证证并并行行的的多多步步精精化化过过程程,对对开开发发的的每每一一步步, 均均要要慎慎重重考考虑虑该该步步开开发发是是否否正正确确,在在发发现现问问题题时时要要及及时时解解决决。只只有有这这样样才才能能大大大大减

82、减少少开开发发费费用用, 保保证证最最终终产产品品的的质质量量和和开开发发效效率率。 从从抽抽象象模模型型规规范范( (M M0 0) )开始的多步开发过程可表示为开始的多步开发过程可表示为 M M0 0MM1 1MM2 2M Mn n的的变变换换,其其中中,M Mi+1i+1是是M Mi i的的实实现现模模型型,变变换换中中的的每每一一步步的的“强强度度”都都影影响响到到整整个个变变换换的的强强度度,还还要要论论证证每每个个M Mi+1i+1是是M Mi i的的正正确确实实现现。这这种种开开发发过过程程中中的的证证明明推推理理是是以以诸诸模模型型的的形形式式化化为为前前提提的的,也也是是保保

83、证证最最终终的的实实现现系系统统( (M Mn n) )正确实现模型规范的必要阶段。正确实现模型规范的必要阶段。五五、变变换换的的独独立立性性。这这种种多多步步变变换换过过程程的的一一个个重重要要性性质质是是每每步步变变换换对对相相关关模模型型描描述述是是“封封闭闭的的”,即即每每步步变变换换的的正正确确性性仅仅与与该该步步变变换换所所依依据据的的规规范范M Mi i以以及及对对变变换换后后的的假假设设( (如如M Mi+1i+1) )有有关关。变变换换步步骤骤在在这这种种意意义义下下独立于其他变换步骤。独立于其他变换步骤。 假假若若没没有有这这种种独独立立性性, 就就无无法法控控制制错错误误

84、的的恶恶性性蔓蔓延,而变换步骤的经验也就成了一句空话。延,而变换步骤的经验也就成了一句空话。六六、变变换换的的设设计计。变变换换的的设设计计过过程程是是一一种种“ “发发明明” ”的的过过程程。在在模模型型具具体体化化的的变变换换过过程程中中,具具体体实实现现模模型的设计是开发者的职责。型的设计是开发者的职责。目目前前还还没没有有相相当当高高级级的的规规范范能能自自动动翻翻译译成成高高效效程程序序代代码码的的工工具具,这这种种设设计计“ “发发明明” ”,是是以以开开发发者者自自己己对对正正在在设设计计中中的的系系统统的的功功能能和和使使用用环环境境的的理理解解,是是对对实实现现效效率率及及进

85、进一一步步开开发发的的预预测测等等程程序序设设计计经经验验以以及及对对软件开发基本原则的理解为基础的。软件开发基本原则的理解为基础的。形形式式化化开开发发方方法法仅仅提提供供给给开开发发者者一一种种严严格格有有效效的的思思维维工工具具和和描描述述工工具具,而而不不能能代代替替开开发发者者进进行行变变换换的的“ “发明发明” ”。1.1.该模型只适合于软件的形式化开发方法。该模型只适合于软件的形式化开发方法。2.2.必必须须有有严严格格的的数数学学理理论论和和形形式式化化技技术术支支持持。3.3.缺乏相应的支持工具,缺乏相应的支持工具, 处于手工处理方式。处于手工处理方式。4.4.尚尚处处于于研

86、研究究和和实实验验阶阶段段, 离离使使用用前前景景尚尚有有一段距离。一段距离。5.5.对软件开发人员要求较高。对软件开发人员要求较高。 变换模型有以下几个的特点:变换模型有以下几个的特点:变换模型有以下几个的特点:变换模型有以下几个的特点:基于知识的模型基基于于知知识识的的模模型型又又称称智智能能模模型型,它它把把瀑瀑布布模模型型和和专专家系统结合在一起。家系统结合在一起。该该模模型型在在开开发发的的各各个个阶阶段段上上都都利利用用了了相相应应的的专专家家系系统统来来帮帮助助软软件件人人员员完完成成开开发发工工作作,使使维维护护在在系系统统需需求求说明一级上进行。说明一级上进行。为为此此,该该

87、模模型型建建立立了了各各阶阶段段所所需需要要的的知知识识库库,将将模模型型、相相应应领领域域知知识识和和软软件件工工程程知知识识分分别别存存入入数数据据库库,把把在在软软件件工工程程知知识识基基础础上上生生成成规规则则构构成成的的专专家家系系统统,与与含含有有应应用用领领域域知知识识规规则则的的其其他他专专家家系系统统相相结结合合,构构成了该应用领域的开发系统。成了该应用领域的开发系统。基于知识的模型基于知识的模型基于知识的模型基于知识的模型 用户概念支持需求分析专家系统需求分析概要设计详细设计编码测试维护支持设计专家系统支持测试专家系统支持维护专家系统一一、支支持持需需求求活活动动的的专专家

88、家系系统统。支支持持需需求求活活动动的的专专家家系系统统用用来来帮帮助助减减少少需需求求活活动动中中的的二二义义性性、不不精精确确性性和和冲冲突突易易变变的的需需求求。这这种种专专家家系系统统要要使使用用应应用用领领域域的的知知识识,要要用用到到应应用用系系统统中中的的规规则则,建建立立应应用用领领域域的的专专家系统来支持需求活动。家系统来支持需求活动。二、支持设计活动的专家系统。支持设计活动的专二、支持设计活动的专家系统。支持设计活动的专家系统用于支持设计功能的家系统用于支持设计功能的CASECASE中的工具和文档的选中的工具和文档的选择,这种专家系统要使用软件开发的知识。择,这种专家系统要

89、使用软件开发的知识。 在各阶段都有相应的专家系统支持在各阶段都有相应的专家系统支持在各阶段都有相应的专家系统支持在各阶段都有相应的专家系统支持三三、支支持持测测试试活活动动的的专专家家系系统统。支支持持测测试试活活动动的的专专家家系系统统用用于于支支持持测测试试自自动动化化,利利用用基基于于知知识识的的系系统统选选择择测测试试工工具具,生生成成测测试试数数据据,跟跟踪踪测测试试过程,分析测试结果。过程,分析测试结果。 四、支持维护活动的专家系统。支持维护活动四、支持维护活动的专家系统。支持维护活动的专家系统将维护变成新的应用开发过程的重复,的专家系统将维护变成新的应用开发过程的重复,运行可利用

90、的基于知识的系统来进行维护。运行可利用的基于知识的系统来进行维护。 知知识识模模型型以以瀑瀑布布模模型型与与专专家家系系统统的的综综合合应应用用为为基基础础。该该模模型型通通过过应应用用系系统统的的知知识识和和规规则则帮帮助助设设计计者者认认识识一一个个特特定定软软件件的的需需求求和和设设计计,这这些些专专家家系系统统已已成成为为开开发发过过程程的的伙伙伴伴,并并指指导导开发过程。开发过程。将软件工程知识从特定领域分离出来,这些知识将软件工程知识从特定领域分离出来,这些知识随着过程范例收入知识库,产生规则,在接受软件工随着过程范例收入知识库,产生规则,在接受软件工程技术的基础上被编码成专家系统

91、,用来辅助软件工程技术的基础上被编码成专家系统,用来辅助软件工程的开发。程的开发。在使用过程中,软件工程专家系统与其他领域的在使用过程中,软件工程专家系统与其他领域的应用知识的专家系统连接起来,形成了特定软件系统,应用知识的专家系统连接起来,形成了特定软件系统,为开发一个软件产品所应用。为开发一个软件产品所应用。 知识模型的优点如下:知识模型的优点如下:知识模型的优点如下:知识模型的优点如下:1. 1. 通通过过领领域域的的专专家家系系统统, 可可使使需需求求说说明明更更完完整、整、 准确和无二义性。准确和无二义性。2. 2. 通通过过软软件件工工程程专专家家系系统统,提提供供一一个个设设计计

92、库库支持,支持, 在开发过程中成为设计者的助手。在开发过程中成为设计者的助手。3. 3. 通通过过软软件件工工程程知知识识和和特特定定应应用用领领域域的的知知识识和规则的应用来提供开发的帮助。和规则的应用来提供开发的帮助。知识模型的缺点如下:知识模型的缺点如下:知识模型的缺点如下:知识模型的缺点如下:1. 1. 建建立立适适合合于于软软件件设设计计的的专专家家系系统统是是非非常常困困难难的的,超超出出了了目目前前的的能能力力,是是今今后后软软件件工工程程的的发发展展方向,要经过相当长的时间才能取得进展。方向,要经过相当长的时间才能取得进展。2. 2. 建建立立一一个个既既适适合合软软件件工工程

93、程又又适适合合应应用用领领域域的的知识库也是非常困难的。知识库也是非常困难的。3. 3. 目目前前的的状状况况是是在在软软件件开开发发中中正正在在应应用用AIAI技技术术,在在CASECASE工工具具系系统统中中使使用用专专家家系系统统,用用专专家家系系统统来来实实现现测测试试自自动动化化,这这只只在在软软件件开开发发的的局局部部阶阶段段有有所进展。所进展。过程开发模型过程开发模型又又称称混混合合模模型型,或或称称元元模模型型。近近几几年年来来,为为了了克克服服瀑瀑布布模模型型式式模模型型的的种种种种缺缺陷陷,出出现现了了很很多多开开发发模模型型。但但是是,这这些些开开发发模模型型仍仍被被限限

94、制制在在整整个个项项目目开开发发按按定定义义所所确确定定的的阶阶段段性性的的系系统统开开发发方方向向上上。解解决决这这一一问问题题的的方方法法之之一一是是把把几几种种模模型型组组合合为为一一种种混混合合模型。这种思想属于问题导向方法论。模型。这种思想属于问题导向方法论。 瀑布式瀑布式瀑布式瀑布式给了人们一种软件开发过程的概念,即一给了人们一种软件开发过程的概念,即一个项目要经过需求分析、设计、实现、测试和维护等个项目要经过需求分析、设计、实现、测试和维护等阶段的一系列软件工程活动。阶段的一系列软件工程活动。原型模型原型模型原型模型原型模型是在需求分析阶段生成的原型上开发系是在需求分析阶段生成的

95、原型上开发系统。统。螺旋模型螺旋模型螺旋模型螺旋模型则把开发分为计划、风险、工程和用户则把开发分为计划、风险、工程和用户评价四个阶段。评价四个阶段。4 4 4 4GTGTGTGT就其本质来看更像是开发方法和工具,而不是就其本质来看更像是开发方法和工具,而不是具体模型。具体模型。 OOOOOOOO开发与传统的结构化生存期比较,具有更多开发与传统的结构化生存期比较,具有更多的递增和迭代性质,生存期的各个阶段可以相互重的递增和迭代性质,生存期的各个阶段可以相互重叠和多次反复,而在项目的整个生存期中还可以嵌叠和多次反复,而在项目的整个生存期中还可以嵌入子生存期。所以有人称入子生存期。所以有人称OOOO

96、生存期为喷泉模型,就生存期为喷泉模型,就像水喷上去落下来,可以落在中间,也可以落在最像水喷上去落下来,可以落在中间,也可以落在最底部。底部。 变换模型变换模型变换模型变换模型是一种属于形式化开发方法的模型。是一种属于形式化开发方法的模型。知识模型知识模型知识模型知识模型是把瀑布模型和专家系统结合在一起。是把瀑布模型和专家系统结合在一起。在开发的各个阶段上都利用了相应的专家系统来在开发的各个阶段上都利用了相应的专家系统来帮助软件人员完成开发工作,使维护在系统需求帮助软件人员完成开发工作,使维护在系统需求说明一级上进行。说明一级上进行。 以以上上这这些些方方法法看看起起来来十十分分严严谨谨,但但实

97、实际际上上很很少少完完全全按按上上述述过过程程一一步步一一步步的的进进行行。这这是是因因为为任任何何一一个个项项目目的的开开发发决决定定于于许许多多因因素素,如如软软件件的的应应用用领领域域,规规模模大大小小,可可重重用用构构件件的的大大小小和和多多少少,软软件件实实现现的的硬硬软软环环境境,开开始始和和交交付付的的规规定定等等。这这就就需需要要一一种种更更为为灵灵活活和和更加动态的方法。更加动态的方法。在在19851985年年美美国国国国防防部部软软件件研研究究所所提提出出了了混混合合模模型型。它是根据具体的项目问题,制定开发策略。它是根据具体的项目问题,制定开发策略。混混合合模模型型有有多

98、多种种开开发发方方法法,提提供供了了一一种种适适合合于各种具体系统、环境或机构的灵活的结构。于各种具体系统、环境或机构的灵活的结构。它它的的好好处处是是:项项目目管管理理人人员员无无疑疑不不愿愿意意在在工工作作中中没没有有某某种种构构思思的的框框架架就就去去进进行行一一个个项项目目的的开开发发。联联合合几几种种模模型型构构成成一一种种混混合合模模型型,给给管管理理人人员员提提供供了了在在具具体体操操作作中中使使用用结结构构框框架架的的某某种种形形式式。这样就可以使每个模型的长处得到充分的发挥。这样就可以使每个模型的长处得到充分的发挥。所所有有项项目目都都始始于于一一些些初初始始的的想想法法,在

99、在混混合合模模型型中称之为构思。中称之为构思。一一个个项项目目有有了了构构思思,预预计计划划就就有有了了确确定定的的过过程程方方向向。混混合合模模型型允允许许管管理理人人员员按按照照当当前前项项目目的的情情况况,指指导导项项目目构构造造一一种种开开发发方方法法。由由于于混混合合模模型型结结构构中中的的不不确确定定性性,管管理理人人员员在在一一开开始始不不必必去去决决定定完完成成开开发过程的方向。发过程的方向。需需要要在在基基于于项项目目的的情情况况,确确定定项项目目的的决决策策点点,管管理理人人员员可可在在项项目目的的生生存存期期内内做做出出决决策策,当当一一个个项项目目的的环环境境完完全全不

100、不同同于于开开始始时时,早早决决策策不不如如晚晚些些时时候候决策好。决策好。过过程程开开发发模模型型对对开开发发人人员员的的要要求求是是比比较较高高的的,开开发发人人员员不不仅仅要要有有扎扎实实的的软软件件工工程程理理论论基基础础,而而且要有丰富的软件项目开发经验。且要有丰富的软件项目开发经验。习习 题题1. 1. 什什么么是是软软件件工工程程?软软件件工工程程产产生生的的背背景景是是什什么么?2. 2. 什什么么是是软软件件工工具具和和软软件件环环境境?它它们们有有什什么么区区别别?3. 3. 软软件件工工程程开开发发软软件件有有哪哪些些基基本本模模式式?它它们们有有什什么特点?其适用范围是什么?么特点?其适用范围是什么?4. 4. 常用软件工程的开发模型有哪些?常用软件工程的开发模型有哪些?5. 5. 过程开发模型的方法论基础是什么?过程开发模型的方法论基础是什么?6. 6. 软软件件工工程程的的基基本本目目标标是是什什么么?怎怎样样做做才才能能达达能能理想的程度?理想的程度?

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号