第01章软件工程概述

上传人:cn****1 文档编号:592482872 上传时间:2024-09-20 格式:PPT 页数:36 大小:542.50KB
返回 下载 相关 举报
第01章软件工程概述_第1页
第1页 / 共36页
第01章软件工程概述_第2页
第2页 / 共36页
第01章软件工程概述_第3页
第3页 / 共36页
第01章软件工程概述_第4页
第4页 / 共36页
第01章软件工程概述_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《第01章软件工程概述》由会员分享,可在线阅读,更多相关《第01章软件工程概述(36页珍藏版)》请在金锄头文库上搜索。

1、第第第第1 1章章章章第第1章章软件与软件工程软件与软件工程导读: 软件工程产生;软件工程产生; 软件工程的定义、内容、目标、原则和原理;软件工程的定义、内容、目标、原则和原理; 软件软件、软件生命周期软件生命周期基本概念;基本概念; 软件开发模型。软件开发模型。 1 1 1 1 1 1软件工程的产生和发展软件工程的产生和发展软件工程的产生和发展软件工程的产生和发展软件工程的产生和发展软件工程的产生和发展 1 1软件工程的产生和发展软件工程的产生和发展 软软软软件件件件工工工工程程程程(Software Software Software Software Engineering)Engine

2、ering)Engineering)Engineering)是是是是在在在在克克克克服服服服20202020世世世世纪纪纪纪60606060年年年年代代代代末末末末所所所所出出出出现现现现的的的的“软软软软件件件件危危危危机机机机”的的的的过过过过程程程程中中中中逐逐逐逐渐渐渐渐形形形形成成成成与与与与发发发发展展展展的的的的。在在在在不不不不到到到到40404040年年年年的的的的时时时时间间间间里里里里,在在在在软件工程的理论和实践两方面都取得了长足的进步。软件工程的理论和实践两方面都取得了长足的进步。软件工程的理论和实践两方面都取得了长足的进步。软件工程的理论和实践两方面都取得了长足的进

3、步。软软软软件件件件工工工工程程程程是是是是一一一一门门门门指指指指导导导导计计计计算算算算机机机机软软软软件件件件系系系系统统统统开开开开发发发发和和和和维维维维护护护护的的的的工工工工程程程程学学学学科科科科,是是是是一一一一门门门门新新新新兴兴兴兴的的的的边边边边缘缘缘缘学学学学科科科科,它它它它涉涉涉涉及及及及到到到到计计计计算算算算机机机机科科科科学学学学、工工工工程程程程科科科科学学学学、管管管管理理理理科科科科学学学学、数数数数学学学学等等等等多多多多学学学学科科科科,研研研研究究究究的的的的范范范范围围围围广广广广,主主主主要要要要研研研研究究究究如如如如何何何何应应应应用用用

4、用软软软软件件件件开开开开发发发发的的的的科科科科学学学学理理理理论论论论和和和和工工工工程程程程技技技技术术术术来来来来指指指指导导导导大大大大型型型型软软软软件件件件系系系系统统统统的的的的开开开开发发发发。例例例例如如如如,现现现现代代代代操操操操作作作作系系系系统统统统的的的的开开开开发发发发,如如如如果果果果不采用软件工程的方法是不可能的。不采用软件工程的方法是不可能的。不采用软件工程的方法是不可能的。不采用软件工程的方法是不可能的。在在在在我我我我国国国国加加加加入入入入WTOWTO后后后后,大大大大力力力力推推推推广广广广、应应应应用用用用软软软软件件件件工工工工程程程程的的的的

5、开开开开发发发发技技技技术术术术及及及及管管管管理理理理技技技技术术术术,提提提提高高高高软软软软件件件件工工工工程程程程的的的的应应应应用用用用水水水水平平平平,对对对对促促促促进进进进我我我我国国国国软软软软件件件件产产产产业业业业与与与与国国国国际际际际接接接接轨轨轨轨, ,推推推推动动动动我我我我国软件产业的迅速发展起着十分重要的关键作用。国软件产业的迅速发展起着十分重要的关键作用。国软件产业的迅速发展起着十分重要的关键作用。国软件产业的迅速发展起着十分重要的关键作用。1 1 1 1软件工程的发展过程软件工程的发展过程软件工程的发展过程软件工程的发展过程 1 1软件工程的产生和发展软件

6、工程的产生和发展自自从从第第一一台台计计算算机机诞诞生生以以来来,就就开开始始了了软软件件的的生生产产,到到目目前前为为止止,软软件件发展经历了三个阶段:发展经历了三个阶段: 1. 1. 1. 1. 程序设计时代程序设计时代程序设计时代程序设计时代(1946194619561956年)年)采用采用“个体生产方式个体生产方式”,即软件开发完全依赖于程序员个人的能力水平。,即软件开发完全依赖于程序员个人的能力水平。 2. 2. 2. 2. 程序系统时代程序系统时代程序系统时代程序系统时代(1956195619681968年)年)由由于于软软件件应应用用范范围围及及规规模模的的不不断断扩扩大大,个个

7、体体生生产产已已经经不不能能够够满满足足软软件件生生产产的需要,一个软件需要由几个人协同完成,采用的需要,一个软件需要由几个人协同完成,采用“生产作坊方式生产作坊方式” ” 。该该阶阶段段的的后后期期,随随着着软软件件需需求求量量、规规模模及及复复杂杂度度的的增增大大,生生产产作作坊坊的的方方式式已经不能够适应软件生产的需要,出现所谓已经不能够适应软件生产的需要,出现所谓“软件危机软件危机”。 3. 3. 3. 3. 软件工程时代软件工程时代软件工程时代软件工程时代(19681968年至今)年至今)这这阶阶段段的的主主要要任任务务是是为为了了克克服服软软件件危危机机,适适应应软软件件发发展展的

8、的需需要要,而而采采用用“工程化的生产工程化的生产” ” 方式。方式。软件工程的产生和发展是与软件的发展紧密相关的。软件工程的产生和发展是与软件的发展紧密相关的。软件危机软件危机20世纪60年代末70年代初,西方工业发达国家曾出现过软件危机事件,所谓软件危机是指在软件开发和维护过程中所遇到的一系列严重问题。“软软件件危危机机”(Software Software crisiscrisis)的的出出现现是是由由于于软软件件的的规规模模越越来来越越大大,复复杂杂度度不不断断增增加加,软软件件需需求求量量增增大大。而而软软件件开开发发过过程程是是一一种种高高密密集集度度的的脑脑力力劳劳动动,软软件件

9、开开发发的的模模式式及及技技术术不不能能适适应应软软件件发发展展的的需需要要。致致使使大大量量质质量量低低劣劣的的软软件件涌涌向向市市场场,有有的的花花费费大大量量人人力力财财力力,而而在在开开发发过过程中就夭折。程中就夭折。 例例如如: IBMIBM公公司司的的 OS/360OS/360,共共约约100100万万条条指指令令,花花费费了了50005000个个人人年年;经经费费达达数数亿亿美美元元,而而结结果果却却令令人人沮沮丧丧,错错误误多多达达20002000个个以以上上,系系统统根根本本无无法法正正常常运运行行。 OS/360OS/360系系统统的的负负责责人人BrooksBrooks这

10、这样样描描述述开开发发过过程程的的困困难难和和混混乱乱:“像像巨巨兽兽在在泥泥潭潭中中作作垂垂死死挣挣扎扎,挣挣扎扎得得越越猛猛,泥泥浆浆就沾得越多,最后没有一个野兽能够逃脱淹没在泥潭中的命运。就沾得越多,最后没有一个野兽能够逃脱淹没在泥潭中的命运。” 1963 1963年,美国飞往火星的火箭因为一个软件错误而爆炸。年,美国飞往火星的火箭因为一个软件错误而爆炸。 19671967年年8 8月月2323日日,原原苏苏联联”结结盟盟一一号号”载载人人宇宇宙宙飞飞船船也也因因软软件件错错误误烧毁。烧毁。 2 2 2 2 软件危机软件危机软件危机软件危机2 2 2 2 软件危机软件危机软件危机软件危机

11、“软件危机软件危机”主要表现在两个方面:主要表现在两个方面:(1)软件产品质量低劣,甚至开发过程就夭折软件产品质量低劣,甚至开发过程就夭折;(2)软件生产率低,不能满足需要。软件生产率低,不能满足需要。具体具体:对软件开发成本和进度的估计不准确;对软件开发成本和进度的估计不准确; 用户对用户对“完成的完成的”软件系统不满意;软件系统不满意;软件产品质量不稳定;软件产品质量不稳定;软件常常不可维护;软件常常不可维护;软件没有文档或文档不足;软件没有文档或文档不足;软件成本逐年上升;软件成本逐年上升;软件供不应求;软件供不应求;软件本身十分复软件本身十分复杂。结论结论:(1)如何开发新的软件,以满

12、足对软件日益增长的需求;)如何开发新的软件,以满足对软件日益增长的需求;(2)如何维护数量不断膨胀的软件。)如何维护数量不断膨胀的软件。 软件工程的定义软件工程的定义19681968年年北北大大西西洋洋公公约约组组织织在在联联邦邦德德国国的的一一次次学学术术会会议议上上,首首次次提提出出软软件件工工程程的的概概念念,从从而而形形成成一一门门新新兴兴的的学学科科软软件件工工程程学学,从从此此软软件件生生产产开开始了一个新的飞跃。始了一个新的飞跃。自自从从提提出出软软件件工工程程这这个个术术语语,对对于于软软件件工工程程就就有有了了各各种种各各样样的的定定义义,但但是是它们的基本思想都是强调在软件

13、开发过程中应用工程化原则的重要性。它们的基本思想都是强调在软件开发过程中应用工程化原则的重要性。BoehmBoehm曾曾为为软软件件工工程程下下了了定定义义:“运运用用现现代代科科学学技技术术知知识识来来设设计计并并构构造造计计算算机机程程序序及及为为开开发发、运运行行和和维维护护这这些些程程序序所所必必需需的的相相关关文文件件资资料料”。这这里里的的“设设计计”应应包包括括软软件件的的需需求求分分析析和和对对软软件件修修改改时时所所进进行行的的再再设设计活动。计活动。FairleyFairley认认为为:“软软件件工工程程学学是是为为在在成成本本限限定定以以内内按按时时完完成成开开发发和和修

14、修改改软软件产品所需的系统生产以及维护的技术和管理的科学件产品所需的系统生产以及维护的技术和管理的科学”。Fritz Fritz BauerBauer则则给给出出一一个个软软件件工工程程学学的的定定义义:“建建立立并并使使用用完完善善的的工工程程化化原原则则,以以较较经经济济的的手手段段获获得得能能在在实实际际机机器器上上有有效效运运行行的的可可靠靠软软件件的的一一系列方法系列方法”。19831983年年IEEEIEEE的的定定义义:“软件工程是开发、运行、维护和修复软件的系统方法”。19931993年年IEEEIEEE又有进一步的定义:又有进一步的定义:“(1 1)把系统化的、规范化的、可度

15、量)把系统化的、规范化的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中;(软件中;(2 2)研究()研究(1 1)中提到的途径。)中提到的途径。”软件工程的定义软件工程的定义软件工程的定义软件工程的定义 软件工程研究的内容软件工程研究的内容软件工程是一门新兴的边缘学科软件工程是一门新兴的边缘学科,涉及的学科多,研究的范围广。归结起来软件工程涉及的学科多,研究的范围广。归结起来软件工程研究的主要内容有以下几方面:软件质量、软件工程的过程、研究的主要内容有以下几方面:软件质量、软件工程的过程、软件开发方法和技术

16、;软件开发方法和技术;软件开发方法和技术;软件开发方法和技术;软件开发工具及环境;软件管理技术;软件规范(软件开发工具及环境;软件管理技术;软件规范(软件开发工具及环境;软件管理技术;软件规范(软件开发工具及环境;软件管理技术;软件规范(软件工程标准和规范)。传统软件软件工程标准和规范)。传统软件工程把工程把方法、工具和过程方法、工具和过程称为称为3要素。要素。软件工程软件工程软件工程软件工程研究的内容研究的内容研究的内容研究的内容软件质量是软件工程的基础。软件质量是软件工程的基础。全面质量管理的理念产全面质量管理的理念产生了软件过程的文化。即:软件开发组织在软件开发过生了软件过程的文化。即:

17、软件开发组织在软件开发过程要遵守一系列规约和质量承诺。程要遵守一系列规约和质量承诺。软件开发过程。软件开发过程。过程定义就是一系列活动以及它们的过程定义就是一系列活动以及它们的关系。它把软件工程方法与软件工具相结合,实现合理、关系。它把软件工程方法与软件工具相结合,实现合理、及时地进行软件开发的目的。及时地进行软件开发的目的。过程给出了软件开发要遵过程给出了软件开发要遵循的基本路线。循的基本路线。方法与技术。方法与技术。软件工程方法是解决软件工程方法是解决“怎样做怎样做”的技术的技术问题,是完成软件工程项目的技术手段。例如分析、设问题,是完成软件工程项目的技术手段。例如分析、设计、测试等活动。

18、计、测试等活动。工具与环境。工具与环境。工具为软件工程的过程和方法提供了自工具为软件工程的过程和方法提供了自动或半自动的支持。动或半自动的支持。当一系列的工具被有效的集成,便当一系列的工具被有效的集成,便形成了形成了“工具箱工具箱”,工具箱,工具箱提供的是一个工具产生的信提供的是一个工具产生的信息被另一个工具所使用的支持。息被另一个工具所使用的支持。软件工具的集成环境称软件工具的集成环境称为计算机辅助软件工程为计算机辅助软件工程CASE,CASE集成了软件、集成了软件、硬件和工程数据库(包括分析、设计、测试等重要信息)硬件和工程数据库(包括分析、设计、测试等重要信息),它提供了一个,它提供了一

19、个支持支持软件开发的环境。软件开发的环境。软件工程层次软件工程层次软件工程软件工程软件工程软件工程研究的内容研究的内容研究的内容研究的内容对对软软件件正正向向工工程程的的研研究究还还可可以以从从3 3方方面面(3 3条条主主轴轴)考考虑:虑:软件开发(包括软件开发方法与技术);软件开发(包括软件开发方法与技术);软件测试与评估(包括软件测试方法与技术);软件测试与评估(包括软件测试方法与技术);软件管理(包括软件管理方法与技术)软件管理(包括软件管理方法与技术) ;人员组织上相应有人员组织上相应有3 3套马车。套马车。 软件工程项目具有多目标特性,软件工程项目具有多目标特性,软件工程项目具有多

20、目标特性,软件工程项目具有多目标特性,其基本目标如图所示:其基本目标如图所示:其基本目标如图所示:其基本目标如图所示:低开发成本低开发成本易于维护易于维护高可靠性高可靠性高性能高性能按时交付按时交付互斥互补可见,软件工程所追求的目标是:可见,软件工程所追求的目标是: 多、快、好、省多、快、好、省多、快、好、省多、快、好、省. . 软件工程的基本目标软件工程的基本目标软件工程的基本目标软件工程的基本目标软件工程的基本目标在于使软件系统向高性价比发展,在给定的成本、进度的前提下,最终获得项目的成功。成功指的是达到以下几个主要目标:付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发的软

21、件易于移植;需要较低的维护费用;能按时完成开发工作,及时交付使用。软件工程的原则和原理软件工程的原则和原理软件工程的原则和原理软件工程的原则和原理所谓原则就是一些经验总结、依据的标准、基本的事实、规所谓原则就是一些经验总结、依据的标准、基本的事实、规则和假定。则和假定。原则应该是实践的结晶,是普遍适用的。例原则应该是实践的结晶,是普遍适用的。例如,选择适宜的开发模型;采用好的、适合的开发方法如,选择适宜的开发模型;采用好的、适合的开发方法和技术;提供高质量的工程支持,使用好的软件工具和和技术;提供高质量的工程支持,使用好的软件工具和环境,提高软件的生产率;重视开发过程的管理,要有环境,提高软件

22、的生产率;重视开发过程的管理,要有良好的组织、严格的管理、各类人员协同配合共同完成良好的组织、严格的管理、各类人员协同配合共同完成项目等等。项目等等。软件工程的基本原则软件工程的基本原则抽象抽象 (abstractianabstractian)模块化(模块化(modularitymodularity)信息隐蔽(信息隐蔽(information hiding information hiding )局部化局部化 (localizationlocalization)一致性(一致性(consistencyconsistency)完备性(完备性(completenesscompleteness)可验证

23、性(可验证性(verifiabilityverifiability)软件工程的基本原理软件工程的基本原理所所谓谓原原理理是是带带有有普普遍遍性性的的、最最基基本本的的基基础础规规律律(道理)。(道理)。具体可以考虑以下的具体可以考虑以下的7 7条:条: 用分阶段的生命周期计划严格管理用分阶段的生命周期计划严格管理; ; 坚持进行阶段评审坚持进行阶段评审; ; 实行严格的产品控制实行严格的产品控制; ; 采用现代软件开发技术采用现代软件开发技术; ; 结果应该能审查结果应该能审查 ; ; 开发小组的人员应该少而精开发小组的人员应该少而精; ; 承认不断改进软件工程实践的必要性。承认不断改进软件工

24、程实践的必要性。 2222软件与软件与软件与软件与软件生命周期软件生命周期软件生命周期软件生命周期 、软件及特点软件及特点软件软件 首先,要纠正软件就是程序,开发软件就是编写程序的错误观念。首先,要纠正软件就是程序,开发软件就是编写程序的错误观念。首先,要纠正软件就是程序,开发软件就是编写程序的错误观念。首先,要纠正软件就是程序,开发软件就是编写程序的错误观念。有两种较为普遍的定义:有两种较为普遍的定义: 软软件件是是与与计计算算机机系系统统操操作作有有关关的的程程序序,规规程程、规规则则及及任任何何与与之之相相关关的的文档和数据。文档和数据。 软软件件是是程程序序以以及及开开发发,使使用用和

25、和维维护护程程序序所所需需要要的的文文档档, 包包括括机机器器运运行行所需要的各种程序及有关资料。所需要的各种程序及有关资料。其中:其中:其中:其中:程序,由应用程序、系统程序等构成。程序,由应用程序、系统程序等构成。程序,由应用程序、系统程序等构成。程序,由应用程序、系统程序等构成。文档,由面向用户的文档及面向开发者的文档构成。文档,由面向用户的文档及面向开发者的文档构成。文档,由面向用户的文档及面向开发者的文档构成。文档,由面向用户的文档及面向开发者的文档构成。软件的基本特点软件的基本特点 计算机软件产品是一种逻辑产品部件而不是物理产品部件。计算机软件产品是一种逻辑产品部件而不是物理产品部

26、件。 软件产品的生产主要是研制,软件产品的生产主要是研制,软件产品的生产主要是研制,软件产品的生产主要是研制,是通过人们的智力活动,把知识与技术转化是通过人们的智力活动,把知识与技术转化成信息的一种产品。成信息的一种产品。 软件具有软件具有软件具有软件具有“ “复杂性复杂性复杂性复杂性” ”,其开发和运行常受到计算机系统的限制。而且,其开发和运行常受到计算机系统的限制。而且,其开发和运行常受到计算机系统的限制。而且,其开发和运行常受到计算机系统的限制。而且,软软件投入使用后,仍需要进行维护,这就带来软件维护复杂性的问题。件投入使用后,仍需要进行维护,这就带来软件维护复杂性的问题。 软件不存在磨

27、损软件不存在磨损软件不存在磨损软件不存在磨损,物理上不会老化,物理上不会老化, ,但但存在存在存在存在软件软件退化问题退化问题退化问题退化问题 。软件成本昂贵,其开发方式目前尚未完全摆脱手工生产方式。软件成本昂贵,其开发方式目前尚未完全摆脱手工生产方式。软件成本昂贵,其开发方式目前尚未完全摆脱手工生产方式。软件成本昂贵,其开发方式目前尚未完全摆脱手工生产方式。硬硬硬硬件件件件失失失失效效效效率率率率曲曲曲曲线线线线,是是是是一一一一U U型型型型曲曲曲曲线线线线(即即即即浴浴浴浴盆盆盆盆曲曲曲曲线线线线)。软软软软件件件件失失失失效效效效率率率率曲曲曲曲线线线线,它它它它没没没没有有有有U U

28、型型型型曲曲曲曲线线线线的的的的右右右右半半半半翼翼翼翼。因因因因为为为为软软软软件件件件不不不不存存存存在在在在磨磨磨磨损损损损和和和和老老老老化化化化问问问问题题题题,然然然然而而而而存存存存在在在在退化问题。退化问题。退化问题。退化问题。 失效率失效率失效率失效率时间时间时间时间硬件失效率曲线硬件失效率曲线硬件失效率曲线硬件失效率曲线失效率失效率失效率失效率时间时间时间时间实际曲线实际曲线实际曲线实际曲线理想曲线理想曲线理想曲线理想曲线软件失效率曲线软件失效率曲线软件失效率曲线软件失效率曲线软、硬件失效情况的对比软、硬件失效情况的对比软件特点软件特点软件特点软件特点2. 2. 2. 2.

29、 按照软件规模划分按照软件规模划分按照软件规模划分按照软件规模划分类类别别参加人数参加人数研制期限研制期限产品规模(源代码行数)产品规模(源代码行数)微微型型114周周500小小型型116月月10002000中中型型2-512年年550000大大型型5-2023年年50500000甚大型甚大型100-100045年年1000000极大型极大型2000-5000510年年100000010000000软件分类软件分类1. 1. 1. 1. 按照软件功能划分按照软件功能划分按照软件功能划分按照软件功能划分系统软件系统软件 如操作系统、设备驱动程序等。如操作系统、设备驱动程序等。支支撑撑软软件件(实

30、实用用软软件件) 协协助助用用户户开开发发的的工工具具软软件件,如如编编辑辑程程序序、程程序序库、图形软件包等。库、图形软件包等。应应用用软软件件 如如工工程程与与科科学学计计算算软软件件、CAD/CAMCAD/CAM软软件件、CAICAI软软件件、信信息息管管理理系统等。系统等。3. 3. 3. 3. 按照软件工作方式划分按照软件工作方式划分按照软件工作方式划分按照软件工作方式划分 实时处理软件实时处理软件交互式软件交互式软件批处理软件批处理软件4. 4. 4. 4. 按照软件服务对象的范围划分按照软件服务对象的范围划分按照软件服务对象的范围划分按照软件服务对象的范围划分 项目软件项目软件

31、由客户委托开发的软件。由客户委托开发的软件。 产品软件产品软件 由软件开发机构开发,提供给市场的。由软件开发机构开发,提供给市场的。 此外,还可以按照软件使用的频度及按照软件失效的影响进行划分。此外,还可以按照软件使用的频度及按照软件失效的影响进行划分。 软件分类软件分类软件生命周期软件生命周期软件生命周期软件生命周期1.1.软件生命期的概念软件生命期的概念传统的软件生命期(传统的软件生命期( software life cycle software life cycle )是指软件产品从形成概念(构是指软件产品从形成概念(构思)开始,经过定义、开发、使用和维护,直到最后被废弃(不能再使用)为

32、止的思)开始,经过定义、开发、使用和维护,直到最后被废弃(不能再使用)为止的全过程。全过程。GB8567中规定,软件生命周期分为中规定,软件生命周期分为7个阶段:个阶段:(1)可行性研究和项目开发计划可行性研究和项目开发计划(2)需求分析需求分析(3)概要设计概要设计(4)详细设计详细设计(5)编码编码(6)测试测试(7)维护维护按照传统的软件生命周期方法学,可以把软件生命期划分为软件定义、软件开按照传统的软件生命周期方法学,可以把软件生命期划分为软件定义、软件开发、软件运行和维护发、软件运行和维护3 3个阶段。个阶段。软件定义时期软件定义时期软件开发时期软件开发时期软件运行和维护软件运行和维

33、护在大部分文献中将生存周期划分为在大部分文献中将生存周期划分为5个阶段,即需求定义、设计、编码、测试个阶段,即需求定义、设计、编码、测试及维护。及维护。其中:其中:需求定义阶段包括可行性研究和项目开发计划、需求分析,需求定义阶段包括可行性研究和项目开发计划、需求分析,设计阶段包括概要设计和详细设计。设计阶段包括概要设计和详细设计。2 2 2 2软件过程模型的基本概念软件过程模型的基本概念软件过程模型的基本概念软件过程模型的基本概念 软件过程软件过程 软软件件过过程程是是制制作作软软件件产产品品的的一一组组活活动动以以及及结结果果,这这些些活活动动主主要要由由软软件件人员来完成。人员来完成。通常

34、包括以下类基本过程:通常包括以下类基本过程:1.软件规格说明软件规格说明(软件描述)软件描述):规定软件的功能及其运行环境(规定软件的功能及其运行环境(使用的限使用的限制)制)。2.软件开发:软件开发:也就是软件的设计和实现,软件工程人员制作也就是软件的设计和实现,软件工程人员制作产生满足规格产生满足规格说明的软件。说明的软件。3.软件确认软件确认(有效性验证)有效性验证):软件必须经过严格的验证,以保证能够满足软件必须经过严格的验证,以保证能够满足客户的需求;即客户的需求;即确认软件能够完成客户提出的要求。确认软件能够完成客户提出的要求。4.软件演进软件演进(进化)进化):为满足客户的变更要

35、求,软件必须在使用的过程中为满足客户的变更要求,软件必须在使用的过程中演进。演进。软件随着客户需求的变化不断地改进。软件随着客户需求的变化不断地改进。软件过程模型软件过程模型软软件件生生存存周周期期模模型型又又称称软软件件开开发发模模型型(software software develop develop modelmodel)或或软软件件过过程程模模型型(software software process process modelmodel),它它是是从从某某一一个个特特定定角角度度提提出出的的软软件件过过程程的的简简化化描描述述。模模型型的的主主要要特特点点是是简简单单化化。软软件件过过

36、程程模模型型是是软软件件开开发发实实际际过过程程的的抽抽象象与与概概括括,它它应应该该包包括括构构成成软软件件过过程程的的各各种种活活动动,也也就是对软件开发过程各阶段之间关系的一个描述和表示。就是对软件开发过程各阶段之间关系的一个描述和表示。瀑布模型瀑布模型 瀑布模型(瀑布模型(waterfall modelwaterfall model)可以说是最早使用的软件生存周期模型之可以说是最早使用的软件生存周期模型之一。由于这个模型描述了软件生命的一些基本过程活动,所以它称为一。由于这个模型描述了软件生命的一些基本过程活动,所以它称为软件生命周期模型。这些活动从一个阶段到另一个阶段逐次下降,它软件

37、生命周期模型。这些活动从一个阶段到另一个阶段逐次下降,它的工作流程形式上又很像瀑布,人们更多的把它称为瀑布模型,该模的工作流程形式上又很像瀑布,人们更多的把它称为瀑布模型,该模型如图所示。型如图所示。开发时期运行时期计划时期(目标与范围说明书)(可行性论证报告)(维护报告)(测试报告)(程序)(设计文档)(需求说明书)瀑布模型瀑布模型瀑布模型瀑布模型循环模型循环模型循环模型循环模型 循环模型循环模型为为了了描描述述软软件件开开发发过过程程中中可可能能的的回回溯溯,尤尤其其是是维维护护阶阶段段往往往往要要经经历历上上述述各各个阶段,采用循环模型描述。个阶段,采用循环模型描述。 需求分析需求分析设

38、计设计编码编码测试测试运行运行评价评价计划计划 循环模型原型模型原型模型原原型型模模型型(prototype prototype modelmodel) 又又称称快快速速原原型型。由由于于瀑瀑布布型型的的缺缺点点,人人们们借借鉴鉴建建筑筑师师或或是是工工厂厂中中的的工工程程师师建建造造原原型型的的经经验验,提提出出了了原原型型模模型型。该模型如图所示。该模型如图所示。原型模型原型模型原型模型原型模型快快速速原原型型法法的的工工作作模模型型是是一一个个循循环环的的模模型。型。循环执行步骤:循环执行步骤: 1.1.快快速速分分析析 快快速速确确定定软软件件系系统统的的基基本本要要求求,确确定定原原

39、型型所所要要体体现现的的特特征征( (界界面,总体结构,功能,性能面,总体结构,功能,性能) )。 2.2.构构造造原原型型 在在快快速速分分析析的的基基础础上上,根根据据基基本本规规格格说说明明,忽忽略略细细节节,只只考考虑虑主主要要特特征征,快快速速构构造造一一个个可可运运行行的的系系统统。有有三三类类原原型型:用用户户界界面面原原型型、功功能能原原型型和性能原型。和性能原型。 3.3.运运行行和和评评价价原原型型 用用户户试试用用原原型型并并与与开开发发者者之之间间频频繁繁交交流流,发发现现问问题题,目目的是验证原型的正确性。的是验证原型的正确性。 4.4.修修改改与与改改进进 对对原原

40、型型进进行行修修改改、增增删。删。 原型的工作模型评价评价 构造构造快速分析或修改快速分析或修改运运行行原型模型原型模型原型模型原型模型YYYYNNYYNN细化的快速原型模型细化的快速原型模型细化的快速原型模型细化的快速原型模型螺旋模型螺旋模型螺旋模型(螺旋模型(spiral modelspiral model)是在快速原型的基础上扩展而成,也有人把螺是在快速原型的基础上扩展而成,也有人把螺旋模型归到快速原型,实际上,它是生命周期模型与原型模型的一个旋模型归到快速原型,实际上,它是生命周期模型与原型模型的一个结合,该模型如图所示。结合,该模型如图所示。软件开发模型软件开发模型软件开发模型软件开

41、发模型 螺旋模型将开发过螺旋模型将开发过程分为几个螺旋周期,程分为几个螺旋周期,每个螺旋周期可分为每个螺旋周期可分为4 4个工作步骤:个工作步骤:(1 1)确定目标、方案确定目标、方案和限制条件;和限制条件;(2 2)评估方案、标识)评估方案、标识风险和解决风险;风险和解决风险;(3 3)开发确认产品;)开发确认产品;(4 4)计划下一周期工)计划下一周期工作。作。 基于四代技术的模型基于四代技术的模型四代语言(四代语言(4GL4GL)是在大型数据库管理系统的基础上发展起来的程序设计语是在大型数据库管理系统的基础上发展起来的程序设计语言。言。4GL4GL目前还没有统一的定义,它的描述定义:目前

42、还没有统一的定义,它的描述定义:用于快速开发应用软件的高产工具(重点强调了提高软件开发的生产率)用于快速开发应用软件的高产工具(重点强调了提高软件开发的生产率)。用于快速事务处理系统的高产工具(突出了主要应用领域)。用于快速事务处理系统的高产工具(突出了主要应用领域)。主要特征描述:主要特征描述:(1 1)它是非过程化的语言,目的在于高效,直接地实现各种应用系统。在)它是非过程化的语言,目的在于高效,直接地实现各种应用系统。在完成了常见的功能时,它却完全不用编程的方式来构造应用系统。例如,完成了常见的功能时,它却完全不用编程的方式来构造应用系统。例如,菜单生成器、报表生成器、屏幕生成器、图形软

43、件包等等。程序员可以菜单生成器、报表生成器、屏幕生成器、图形软件包等等。程序员可以不再使用通常编程的方法、算法等来完成某一个功能,而是利用一些生不再使用通常编程的方法、算法等来完成某一个功能,而是利用一些生成器,在屏幕上以对话的交互方式;通过填表或操作屏幕上的窗口、按成器,在屏幕上以对话的交互方式;通过填表或操作屏幕上的窗口、按钮图标;或者在某一个按钮定义时加上适当的一段程序等等。从而,构钮图标;或者在某一个按钮定义时加上适当的一段程序等等。从而,构造用户需要的应用系统生成器自动生成源程序。造用户需要的应用系统生成器自动生成源程序。(2 2)它与数据库的关系密切,能够对大型数据库进行高效处理。

44、它被广泛)它与数据库的关系密切,能够对大型数据库进行高效处理。它被广泛地应用于数据管理系统中。地应用于数据管理系统中。基于四代技术的模型基于四代技术的模型基于四代技术的模型基于四代技术的模型以以4GL4GL为核心的软件开发技术称为四代技术。使用四代技术,可以为核心的软件开发技术称为四代技术。使用四代技术,可以带来许多的方便,在软件开发的时间,成本和质量等方面都会带来许多的方便,在软件开发的时间,成本和质量等方面都会取得较好的效果,但它毕竟在系统开发全过程中所占有的比例取得较好的效果,但它毕竟在系统开发全过程中所占有的比例是很少的。是很少的。基于四代技术的模型,如图示:基于四代技术的模型,如图示

45、:基于四代技术的模型基于四代技术的模型基于四代技术的模型基于四代技术的模型构件组装模型构件组装模型事事实实上上,在在许许多多的的软软件件项项目目中中,都都存存在在一一些些重重用用软软件件,当当软软件件人人员员意意识识到到某某一一个个项项目目中中的的设设计计或或者者代代码码是是另另一一个个项项目目重重复复出出现现时时,重重用用就就自自然然地地发发生生了了,构构件件也也正正是是基基于于这这一一思思想想而而产产生生的的。构构件件的的重重用用又又导导致致软软件件的的可可靠靠性性和和易易维维护护性性,程程序序在在进进行行修修改改时时产产生生较较少少的的副副作作用用。近近几几年年来来,以以组组件件为为基基

46、础础的的软软件件工工程程方方法法出出现现了了,基基于于构构件件组组装装的的软软件件过过程程模模型型也也随随之之产产生生,并并且且逐逐渐渐地地被被广广泛泛使使用用,该该模模型型如图所示。如图所示。构件组装模型构件组装模型构件组装模型构件组装模型基于面向对象的模型基于面向对象的模型自自从从面面向向对对象象技技术术问问世世后后,很很快快被被人人们们所所接接受受,并并得得到到广广泛泛的的应应用用。面面向向对对象象技技术术确确实实有有很很多多的的优优点点,其其中中构构件件重重用用是是非非常常重重要要的的技技术术之之一一。对对象象技技术术强强调调了了类类的的创创建建与与封封装装,一一旦旦一一个个类类创创建

47、建与与封封装装成成功功,就就可可以以在在不不同的应用系统重用。同的应用系统重用。对对象象技技术术为为基基于于构构件件的的软软件件过过程程模模型型提提供供了了更更强强的的技技术术框框架架,基基于于面面向向对对象象的的模模型型,是是综综合合了了面面向向对对象象和和原原型型方方法法以以及及重重用用技技术术的的一一种种模模型型。该该模模型型如图所示。如图所示。基于面向对象的模型基于面向对象的模型基于面向对象的模型基于面向对象的模型基于知识工程的模型基于知识工程的模型基于知识工程模型简称智能模型,该模型是知识工程与软件工程结合的基于知识工程模型简称智能模型,该模型是知识工程与软件工程结合的产物。产物。如

48、图所示。如图所示。基于知识工程的模型基于知识工程的模型基于知识工程的模型基于知识工程的模型知识库知识库专家系统专家系统智能模型变换模型变换模型变换模型变换模型 (transformational modeltransformational model)是基于形式化规格说明语言及程是基于形式化规格说明语言及程序变换的软件开发模型,又称自动程序设计模型,在这个模型中,应序变换的软件开发模型,又称自动程序设计模型,在这个模型中,应用系统是自动生成。该模型如图所示。用系统是自动生成。该模型如图所示。变换模型变换模型变换模型变换模型33软件工程面临的问题软件工程面临的问题1.1.软件价格问题软件价格问题

49、由于计算机硬件的功能和质量在不断地提高,成本由于计算机硬件的功能和质量在不断地提高,成本却大幅度降低。软件的研制工作往往要投入大量却大幅度降低。软件的研制工作往往要投入大量的、高强度的脑力劳动,它的成本比较高,而又的、高强度的脑力劳动,它的成本比较高,而又常常是估计不准确的。从常常是估计不准确的。从2020世纪的世纪的8080年代开始,年代开始,软件的开销大大超过硬件的开销,美国每年投入软件的开销大大超过硬件的开销,美国每年投入软件开发的经费有几百亿美元。另一方面,软件软件开发的经费有几百亿美元。另一方面,软件不能完全摆脱硬件单独活动,当新一代的计算机不能完全摆脱硬件单独活动,当新一代的计算机

50、硬件取代旧的硬件时,相应的软件也要随之更新,硬件取代旧的硬件时,相应的软件也要随之更新,软件的发展往往滞后于硬件,软件的需求量在不软件的发展往往滞后于硬件,软件的需求量在不断的上升,软件成本也逐年上升断的上升,软件成本也逐年上升2.2.可靠性问题可靠性问题 软软件件的的可可靠靠性性是是指指:“在在给给定定的的时时间间间间隔隔及及给给定定的的环环境境条条件件下下,按按设设计计要要求求,成成功功地地运运行行程程序序的的概概率率”。软软件可靠性还应包括安全性和健壮性。件可靠性还应包括安全性和健壮性。软软件件系系统统的的测测试试是是一一件件复复杂杂和和费费时时的的工工作作,为为了了提提高高软软件件的的

51、可可靠靠性性,软软件件人人员员在在完完成成设设计计和和编编码码后后,要要花花费费很很大大的的代代价价进进行行测测试试和和排排错错,不不幸幸的的是是,尽尽管管如如此此,也也不能保证一个软件系统没有任何的错误。不能保证一个软件系统没有任何的错误。另一方面,可能存在软件开发者没有了解清楚用户的需求另一方面,可能存在软件开发者没有了解清楚用户的需求, ,急于编写程序,导致完成的系统不符合要求;也可能急于编写程序,导致完成的系统不符合要求;也可能是用户当时不清楚或表达不清楚系统的目标,到完成是用户当时不清楚或表达不清楚系统的目标,到完成后发现有差异而发生争执,最终使得软件产品发生质后发现有差异而发生争执

52、,最终使得软件产品发生质量问题。量问题。3.3.维护性问题维护性问题 软软件件维维护护是是指指修修改改已已经经运运行行了了的的软软件件系系统统所所需需要要的的工工作作。例例如如,改改正正潜潜伏伏错错误误所所进进行行的的“纠纠错错性性维维护护”;提提高高和和完完善善软软件件性性能能所所进进行行的的“完完善善性性维维护护”;为为了了使使软软件件适适应应新新的的运运行行环环境境所所进进行行的的“适适应性性维维护护”等等。由由于于软软件件本本身身的的抽抽象象性性和和复复杂杂性性,软软件件在在维维护护过过程程中中可可能能产产生生新新的的错错误误,软软件的维护就显得更为复杂。件的维护就显得更为复杂。现现在

53、在使使用用的的软软件件,可可能能是是许许多多年年前前开开发发的的,到到现现在在依依然然承承担担着着重重要要责责任任。由由于于早早期期许许多多程程序序是是以以“个个体体”手手工工编编写写的的,往往往往都都带带有有一一些些个个人人特特性性,这这些些程程序序常常常常是是不不可可维维护护,错错误误非非常常难难修修改改。另另一一方方面面,由由于于软软件件没没有有文文档档或或文文档档不不足足带带来来的的软软件件不不可可维维护护是是明明显显的的。对对于于软软件件维维护护人人员员来来说说,文文档档是是至至关关重重要要的的资资料料,缺缺乏乏文文档档或或文文档档不不合合格格都都会会给给软软件件维维护护带带来来严严

54、重重的的困困难难。文文档档应应该该是是在在软软件件开开发发过过程程产产生生出来,而且要保证文档与程序的一致性。出来,而且要保证文档与程序的一致性。对于维护和更新这些遗留系统,所面临的问题是,既要避免对于维护和更新这些遗留系统,所面临的问题是,既要避免过高的维护费用,又要交付基本的业务服务。过高的维护费用,又要交付基本的业务服务。4.4.生产率问题生产率问题 随随着着计计算算机机的的广广泛泛应应用用,软软件件的的需需求求量量也也在在迅迅速速的的上上升升,软软件件生生产产率率的的提提高高,远远远远跟跟不不上上计计算算机机应应用用的的发发展展。目目前前,软软件件产产品品大大多多数数是是“定定做做”的

55、的,近近年年来来,虽虽然然软软件件技技术术和和开开发发方方法法都都取取得得很很大大的的进进展展,例例如如,重重用用技技术术、自自动动生生成成技技术术等等,也也有有一一些些比比较较成成熟熟的的软软件件开开发发工工具具和和开开发发环环境境,但但软软件件仍仍不不能能像像工工业业上上的的产产品品一一样样大大批批量量生生产产。另另一一方方面面,至至今今软软件件仍仍然然以以传传统统的的手手工工编编程程开开发发方方式式为为主主,软软件件的的生生产产率率自自然然受受到到限限制制,软软件件产产品品往往往往供供不应求。不应求。许许多多传传统统的的软软件件工工程程,在在技技术术上上耗耗费费大大量量的的时时间间来来提

56、提高高软软件件质质量量。但但是是,今今天天的的软软件件制制作作要要求求响响应应快快,更更换换迅迅速速,支支持持软软件件也也必必须须同同步步更更换换。人人们们往往往往要要求求在在不不降降低低系系统统质量的前提下,缩短大型的、复杂系统的移交时间质量的前提下,缩短大型的、复杂系统的移交时间5 5多样性的问题多样性的问题软件的开发和运行环境越来越向综合性发展,人软件的开发和运行环境越来越向综合性发展,人们提出越来越强烈地要求,软件基于网络的分们提出越来越强烈地要求,软件基于网络的分布系统一样运行,然而,网络中包含了各种不布系统一样运行,然而,网络中包含了各种不同类型的计算机和支持系统。这样必然带来新同

57、类型的计算机和支持系统。这样必然带来新的挑战,软件人员必须采用综合性技术,制作的挑战,软件人员必须采用综合性技术,制作可靠的软件,以适应多样性(例如多种类型的可靠的软件,以适应多样性(例如多种类型的硬件平台、多种操作系统、大型数据库、协同硬件平台、多种操作系统、大型数据库、协同系统等)。系统等)。6.6.重用性问题重用性问题 过过去去,很很多多软软件件人人员员一一次次又又一一次次地地设设计计一一些些互互相相类类同同的的程程序序,花花费费在在许许多多基基本本的的重重复复工工作作上上。软软件件重重用用是是提提高高软软件件质质量量和和生生产产率率、降降低低软软件件成成本本的的重重要要技技术术之之一一

58、。人人们们可可以以把把各各种种可可重重用用软软部部件件按按照照某某一一种种规规则则存存放放在在一一个个软软部部件件库库中中,供供软软件件工工程程师师在在开开发发软软件件系系统统时时选选用用。可可重重用用部部件件的的应应用用可可以以降降低低软软件件的的维维护护费费用用。从从广广义义上上理理解解,重重用用性性可可以以包包括括概概念念和和方方法法的的重重用用、分分析析结结果果重重用用、设计结果重用、代码重用、测试用例重用等等。设计结果重用、代码重用、测试用例重用等等。近年来,随着面向对象技术得到了广泛的应用,基近年来,随着面向对象技术得到了广泛的应用,基于可重用构件库的软件开发模型也越来越成熟,于可

59、重用构件库的软件开发模型也越来越成熟,也出现了一些的自动生成系统。软件重用是越来也出现了一些的自动生成系统。软件重用是越来越受到人们重视的重要课题,预料将会有强大的越受到人们重视的重要课题,预料将会有强大的生命力。生命力。小结小结小结小结小结小结软件工程有软件工程有4 4个关键元素个关键元素: :方法方法(method)(method)、语言、语言(languages)(languages)、工具、工具(tools)(tools)和过程和过程(procedures)(procedures)方法方法: :提供如何构造软件的技术。例如,结构化开发方法、原型化开发方提供如何构造软件的技术。例如,结构

60、化开发方法、原型化开发方法、面向对象的开发方法等。法、面向对象的开发方法等。语言语言: :支持软件的分析设计和实现。例如,传统的编程语言、规格说明语支持软件的分析设计和实现。例如,传统的编程语言、规格说明语言和设计语言,近年来原型开发语言也得到了发展。言和设计语言,近年来原型开发语言也得到了发展。工具工具: :为方法和语言提供自动化或半自动化的支持。软件工具种类繁多,为方法和语言提供自动化或半自动化的支持。软件工具种类繁多,涉及面广。涉及面广。过程过程: :过程如同黏结剂(过程如同黏结剂(glueglue)。它把方法、语言和工具黏结在一起,它)。它把方法、语言和工具黏结在一起,它能使软件开发理性化和适时化。能使软件开发理性化和适时化。结论结论:软件工程基本原则之一软件工程基本原则之一,应该根据软件项目的性质和实际情况等因数,应该根据软件项目的性质和实际情况等因数,选择合适的软件开发模型。选择合适的软件开发模型。

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

最新文档


当前位置:首页 > 资格认证/考试 > 自考

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