收藏 分享(赏)

软件工程实用教程PPT第01章软件工程概述.ppt

上传人:bubibi 文档编号:18831117 上传时间:2023-11-02 格式:PPT 页数:42 大小:730KB
下载 相关 举报
软件工程实用教程PPT第01章软件工程概述.ppt_第1页
第1页 / 共42页
软件工程实用教程PPT第01章软件工程概述.ppt_第2页
第2页 / 共42页
软件工程实用教程PPT第01章软件工程概述.ppt_第3页
第3页 / 共42页
软件工程实用教程PPT第01章软件工程概述.ppt_第4页
第4页 / 共42页
软件工程实用教程PPT第01章软件工程概述.ppt_第5页
第5页 / 共42页
亲,该文档总共42页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、软软软软件件件件工工工工程程程程 说说说说明明明明软件工程课程说明一、课程的性质和特点 软件工程软件工程是计算机科学与技术专业本科生的是计算机科学与技术专业本科生的一门重要的专业课程。通过学习使我们掌握软件工程一门重要的专业课程。通过学习使我们掌握软件工程的基本概念和基础理论知识,达到熟练地运用各种实的基本概念和基础理论知识,达到熟练地运用各种实用开发方法和基本技术方法,了解软件工程各领域的用开发方法和基本技术方法,了解软件工程各领域的发展动向,从事各种类型软件项目的工程化开发;培发展动向,从事各种类型软件项目的工程化开发;培养具有独立工作能力的高素质高水平的软件人才。养具有独立工作能力的高素

2、质高水平的软件人才。软软软软件件件件工工工工程程程程 说说说说明明明明二、课程的基本要求(1)掌握软件工程的基本概念,基本原理,基本方法和基掌握软件工程的基本概念,基本原理,基本方法和基本实现技术。本实现技术。(2)能运用软件工程的基本技术方法和开发工具,独立承能运用软件工程的基本技术方法和开发工具,独立承当软件项目开发,设计和管理。当软件项目开发,设计和管理。(3)了解本领域出现的新概念,新技术和新方法,达到进了解本领域出现的新概念,新技术和新方法,达到进一步提高自己的理论水平和实践能力。一步提高自己的理论水平和实践能力。(4)了解软件开发过程应遵循的流程了解软件开发过程应遵循的流程,准则准

3、则,标准和规范。标准和规范。三、与有关课程的联系要求:有一定的程序设计经验,因此至少应学习过一门有一定的程序设计经验,因此至少应学习过一门程序设计语言。程序设计语言。先行课程:面向对象程序设计、数据结构、数据库系统面向对象程序设计、数据结构、数据库系统概论概论。软软软软件件件件工工工工程程程程 说说说说明明明明四、课程学习方法指导(1)在全面系统学习的基础上掌握基本理论、基本知在全面系统学习的基础上掌握基本理论、基本知识、基本方法。本课程从软件开发、维护和软件管理等识、基本方法。本课程从软件开发、维护和软件管理等方面系统地阐述了软件工程的基本概念和常用的方法,方面系统地阐述了软件工程的基本概念

4、和常用的方法,各章之间既有联系又有很大的区别,有的还有相对独立各章之间既有联系又有很大的区别,有的还有相对独立性。应全面系统的学习各章,再认识各章之间的联系,性。应全面系统的学习各章,再认识各章之间的联系,在全面系统学习的基础上掌握重点。在全面系统学习的基础上掌握重点。(2)把学习软件工程理论和应用软件工程的方法结合把学习软件工程理论和应用软件工程的方法结合起来。本课程的内容既有理论又有方法,应学会正确运起来。本课程的内容既有理论又有方法,应学会正确运用和应用软件工程的方法去分析和解决有关的软件问题用和应用软件工程的方法去分析和解决有关的软件问题(3)重视理论联系实际,结合软件开发全过程的实践

5、重视理论联系实际,结合软件开发全过程的实践来进行学习。在学习过程中应把课程的内容同实际软件来进行学习。在学习过程中应把课程的内容同实际软件开发联系起来,进行对照比较,分析研究,以增强感性开发联系起来,进行对照比较,分析研究,以增强感性认识,提高自己分析问题和解决问题的能力。认识,提高自己分析问题和解决问题的能力。软软软软件件件件工工工工程程程程说说说说明明明明五、课程的考核方法本门课程为必修课,考核成绩有三部分组成:平时本门课程为必修课,考核成绩有三部分组成:平时成绩(占成绩(占20%)、综合设计(占)、综合设计(占30%)、期末考试(占)、期末考试(占50%)说明:平时成绩:上课出勤情况、上

6、课纪律情况、上课平时成绩:上课出勤情况、上课纪律情况、上课提问情况等。提问情况等。综合设计:在讲课过程中向学生布置题目,在规综合设计:在讲课过程中向学生布置题目,在规定的时间完成,按做的质量评定。定的时间完成,按做的质量评定。期末考试:参加学院组织的考试,以卷面成绩为期末考试:参加学院组织的考试,以卷面成绩为准。准。软软软软件件件件工工工工程程程程 说说说说明明明明课程设计(1)根据本课程的学习根据本课程的学习,用结构化方法、面向对象方法设用结构化方法、面向对象方法设计一个小型软件,实现一定的功能计一个小型软件,实现一定的功能,比如人事管理软件、图书资比如人事管理软件、图书资料管理软件、商场商

7、品管理软件、学校学籍管理软件等。料管理软件、商场商品管理软件、学校学籍管理软件等。(2)软件的设计按照软件工程的方法软件的设计按照软件工程的方法,各个阶段必须有相各个阶段必须有相应文档记录,比如可行性分析报告应文档记录,比如可行性分析报告,项目开发计划,需求规格说项目开发计划,需求规格说明书明书,概要设计说明书,详细设计要有流程图概要设计说明书,详细设计要有流程图,编码有源代码编码有源代码(改改进前后的进前后的)及软件测试报告等。及软件测试报告等。(3)软件维护修改过程中软件维护修改过程中,必须有文档记录修改原因必须有文档记录修改原因,改进改进前后优缺点等内容。前后优缺点等内容。(4)软件不要

8、求十分商业化软件不要求十分商业化,要求基本运行正确要求基本运行正确,无重大无重大错误。错误。(5)提交内容及提交方式提交内容及提交方式:最好是设计完成后采用安装最好是设计完成后采用安装程序打包程序打包,可以发行。将设计好的下列材料保存刻成光盘供评定。可以发行。将设计好的下列材料保存刻成光盘供评定。(a)软件软件(运行版本或安装版本运行版本或安装版本)。(b)以上要求的设计文档报告。以上要求的设计文档报告。(c)源程序源程序(各阶段分目录保存各阶段分目录保存)。第第1章章软件工程概述软件工程概述软软软软件件件件工工工工程程程程 第第第第一一一一章章章章软软软软件件件件工工工工程程程程概概概概述述

9、述述本章概括地介绍了软件工程的产生、软件危机、软件生本章概括地介绍了软件工程的产生、软件危机、软件生产的发展、软件生存周期各阶段、软件生存周期各种模型及产的发展、软件生存周期各阶段、软件生存周期各种模型及各种软件开发方法。各种软件开发方法。通过本章的学习可以了解软件工程的基本概念、内容、通过本章的学习可以了解软件工程的基本概念、内容、性质、特点、目标;软件生产发展的三个阶段,软件危机的性质、特点、目标;软件生产发展的三个阶段,软件危机的产生及其表现形式,初步了解各种生存周期模型和各种开发产生及其表现形式,初步了解各种生存周期模型和各种开发方法。其中的一些开发方法和模型在后续章节中进一步详细方法

10、。其中的一些开发方法和模型在后续章节中进一步详细介绍。介绍。在学习本章时,主要掌握软件工程的一些基本概念、软在学习本章时,主要掌握软件工程的一些基本概念、软件危机产生原因、软件工程面临的主要问题。件危机产生原因、软件工程面临的主要问题。软软软软件件件件工工工工程程程程 第第第第一一一一章章章章软软软软件件件件工工工工程程程程概概概概述述述述v软件软件是计算机系统中与硬件相互依存的另一部分,是计算机系统中与硬件相互依存的另一部分,它是包括它是包括程序程序,数据数据及其相关及其相关文档文档的完整集合。的完整集合。v 程序程序是按事先设计的功能和性能要求执行的指令是按事先设计的功能和性能要求执行的指

11、令 序列。序列。v 数据数据是使程序能正常操纵信息的数据结构。是使程序能正常操纵信息的数据结构。v 文档文档是与程序开发,维护和使用有关的图文材料。是与程序开发,维护和使用有关的图文材料。1.1软件的概念、特点和分类1.1.1软件的概念与特点基本概念软件的特点软软软软件件件件工工工工程程程程 第第第第一一一一章章章章软软软软件件件件工工工工程程程程概概概概述述述述v软件是一种逻辑实体,而不是具体的物理实体。因而软件是一种逻辑实体,而不是具体的物理实体。因而它具有抽象性。它具有抽象性。v软件的生产与硬件不同,在它的开发过程中没有明显软件的生产与硬件不同,在它的开发过程中没有明显的制造过程。的制造

12、过程。v在软件的运行和使用期间,没有硬件那样的机械磨损在软件的运行和使用期间,没有硬件那样的机械磨损老化问题。但在软件生存期中,为了使它能够克服以前老化问题。但在软件生存期中,为了使它能够克服以前没有发现的故障,适应硬件和软件环境的变化以及用户没有发现的故障,适应硬件和软件环境的变化以及用户新的要求,必须要多次修改(维护)软件,每次修改必新的要求,必须要多次修改(维护)软件,每次修改必然引入新的错误,导致软件失效率升高。然引入新的错误,导致软件失效率升高。硬件、软件生命周期的比较硬件失效率曲线硬件失效率曲线软件失效率曲线软件失效率曲线生磨生磨命合命合初调初调期整期整磨磨损损用用坏坏理想曲线理想

13、曲线实际曲线实际曲线由于副作用造成由于副作用造成的失效率提高的失效率提高修修改改失失效效率率时间时间失失效效率率时间时间软软软软件件件件工工工工程程程程 第第第第一一一一章章章章软软软软件件件件工工工工程程程程概概概概述述述述v 软件的开发和运行常受到计算机系统的限制,对计算软件的开发和运行常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。软件的开发至今尚未完机系统有着不同程度的依赖性。软件的开发至今尚未完全摆脱硬件单独活动。在开发和运行中必须以硬件提供全摆脱硬件单独活动。在开发和运行中必须以硬件提供的条件为依据。的条件为依据。v 软件的开发至今尚未完全摆脱手工艺的开发方式。软软件的开

14、发至今尚未完全摆脱手工艺的开发方式。软件产品大多都是件产品大多都是“定做定做”的,很少能做到利用现成的部的,很少能做到利用现成的部件组装成所需的软件。件组装成所需的软件。v软件本身是复杂的:实际问题的复杂性;程序逻辑结软件本身是复杂的:实际问题的复杂性;程序逻辑结构的复杂性。软件技术的发展落后于复杂的软件需求。构的复杂性。软件技术的发展落后于复杂的软件需求。软软软软件件件件工工工工程程程程 第第第第一一一一章章章章软软软软件件件件工工工工程程程程概概概概述述述述v软件成本相当昂贵。软件的研制工作须要投入大量的软件成本相当昂贵。软件的研制工作须要投入大量的复杂的、高强度的脑力劳动。复杂的、高强度

15、的脑力劳动。软软件件复复杂杂性性时间时间软件技术发展落后于需求软件技术发展落后于需求差距差距软件需求软件需求软件技术软件技术硬件硬件软件软件1950196019701980199020406080100成本成本%年份年份计算机系统硬、软件成本比例变化计算机系统硬、软件成本比例变化v相当多的软件工作涉及到社会因素。相当多的软件工作涉及到社会因素。1.1.2软件的分类v系统软件系统软件 :能与计算机硬件紧密配合在一起,使计算机系能与计算机硬件紧密配合在一起,使计算机系统各个部件、相关的软件和数据协调、高效工作的软件。是统各个部件、相关的软件和数据协调、高效工作的软件。是计算机系统必不可少的组成部分

16、。计算机系统必不可少的组成部分。如:如:操作系统、数据库管操作系统、数据库管理系统、设备驱动程序、通信处理程序等理系统、设备驱动程序、通信处理程序等 。v支撑软件:支撑软件:是协助用户开发软件的工具性软件。是协助用户开发软件的工具性软件。如:如:文本文本编辑程序、文件格式化程序、磁盘向磁带做数据传输的程序、编辑程序、文件格式化程序、磁盘向磁带做数据传输的程序、程序库系统等支持需求分析、设计、实现、测试和支持管理程序库系统等支持需求分析、设计、实现、测试和支持管理的软件。的软件。v应用软件:应用软件:是在特定领域内开发,为特定目的服务的一类是在特定领域内开发,为特定目的服务的一类软件。软件。如:

17、如:商业数据处理软件、工程与科学计算软件、计算商业数据处理软件、工程与科学计算软件、计算机辅助设计制造软件机辅助设计制造软件(CAD/CAM)、系统仿真软件、智、系统仿真软件、智能产品嵌入软件、医疗制药软件、事务管理、办公自动化软能产品嵌入软件、医疗制药软件、事务管理、办公自动化软件、计算机辅助教学软件件、计算机辅助教学软件(CAI)等。等。按软件的功能进行划分:按软件的规模进行划分:类别类别 参加人员数参加人员数 研制期限研制期限 源程序行源程序行数数微型微型 1 14周周 0.5k(500行)行)小型小型 1 16月月 1k2k 中型中型 25 12年年 5k50k 大型大型 520 23

18、年年 50k100k 甚大型甚大型 1001000 45年年 1M(=1000k)极大型极大型 20005000 510年年 1M10M按软件的工作方式进行划分:v 实时处理软件:实时处理软件:指在事件或数据产生时,立即予以处理,指在事件或数据产生时,立即予以处理,并及时反馈信号,控制需要监测和控制过程的软件。主要包并及时反馈信号,控制需要监测和控制过程的软件。主要包括数据采集、分析、输出三部分。括数据采集、分析、输出三部分。v 分时软件:分时软件:允许多个联机用户同时使用计算机的软件。系允许多个联机用户同时使用计算机的软件。系统把处理机时间轮流分配给各联机用户,使各用户都感到只统把处理机时间

19、轮流分配给各联机用户,使各用户都感到只是自己在使用计算机。是自己在使用计算机。v 交互式软件:交互式软件:能实现人机通信的软件。能实现人机通信的软件。v 批处理软件批处理软件 :把一组输入作业或一批数据以成批处理的把一组输入作业或一批数据以成批处理的方式一次运行,按顺序逐个处理完的软件。方式一次运行,按顺序逐个处理完的软件。按软件的服务对象的范围划分:v 项目软件:项目软件:也称定制软件,是受某个特定用户(或少数用也称定制软件,是受某个特定用户(或少数用户)的委托,由一个或多个软件开发机构在合同的约束下开户)的委托,由一个或多个软件开发机构在合同的约束下开发出来的软件。发出来的软件。v 产品软

20、件产品软件 :是由软件开发机构开发出来直接提供给市场,是由软件开发机构开发出来直接提供给市场,或为千百个用户服务的软件。或为千百个用户服务的软件。按软件的使用频度进行划分:v 一次使用软件:一次使用软件:也软件开发出来仅供一次使用。也软件开发出来仅供一次使用。v 频繁使用软件频繁使用软件 :需要每天都及时进行数据处理的软件。需要每天都及时进行数据处理的软件。按软件的失效的影响进行划分:v 高可靠性软件(关键软件):高可靠性软件(关键软件):一但失效会造成灾难性后果一但失效会造成灾难性后果的软件。的软件。v 一般可靠性软件一般可靠性软件 :一但失效,对整个系统带来的影响不一但失效,对整个系统带来

21、的影响不大的软件。大的软件。1.2软件的发展和软件危机1.2.1软件的发展程序设计阶段程序设计阶段 50至至60年代年代 程序系统阶段程序系统阶段 60至至70年代年代 软件工程阶段软件工程阶段 70年代以后年代以后见教材见教材P7表表1.3计算机软件发展三个时期及其特点计算机软件发展三个时期及其特点Evolutionofsoftware早期早期面向批处理面向批处理 有限的分布有限的分布 自定义软件自定义软件 195019601970Evolutionofsoftware早期早期第二阶段第二阶段面向批处理面向批处理 多用户多用户有限的分布有限的分布 实时实时自定义软件自定义软件 数据库数据库

22、软件产品软件产品 1950196019701980Evolutionofsoftware早期早期第二阶段第二阶段第三阶段第三阶段面向批处理面向批处理 多用户多用户 分布式系统分布式系统 有限的分布有限的分布 实时实时 嵌入嵌入“智能智能”自定义软件自定义软件 数据库数据库 低成本硬件低成本硬件 软件产品软件产品 消费者的影响消费者的影响 19501960197019801990早期早期第二阶段第二阶段第三阶段第三阶段第四阶段第四阶段面向批处理面向批处理 多用户多用户 分布式系统分布式系统 强大的桌强大的桌面系统面系统有限的分布有限的分布 实时实时 嵌入嵌入“智能智能”面向面向对象技术对象技术自

23、定义软件自定义软件 数据库数据库 低成本硬件低成本硬件 专家系专家系统统 软件产品软件产品 消费者的影响消费者的影响 人人工神经网络工神经网络 并行计算并行计算 网络计算机网络计算机195019601970198019902000Evolutionofsoftware1.2.2软件的危机在软件发展的第二阶段,随着计算机硬件技术的进步,在软件发展的第二阶段,随着计算机硬件技术的进步,计算机容量、速度和可靠性有明显提高,生产硬件的成本降计算机容量、速度和可靠性有明显提高,生产硬件的成本降低了。这样,要求软件能与之相适应。一些开发复杂的、大低了。这样,要求软件能与之相适应。一些开发复杂的、大型的软件

24、项目提了出来。但此时软件的发展一直未能满足需型的软件项目提了出来。但此时软件的发展一直未能满足需求。在软件开发过程中遇到的问题找不到解决的办法,形成求。在软件开发过程中遇到的问题找不到解决的办法,形成了日益尖锐的矛盾。归纳有:了日益尖锐的矛盾。归纳有:v 软件开发无计划性。软件开发无计划性。v 软件需求不充分。软件需求不充分。v 软件开发过程无规范。软件开发过程无规范。v 软件产品无评测手段。软件产品无评测手段。这就形成了软件危机。这就形成了软件危机。软件危机的主要特征v软件开发周期大大超过规定日期。软件开发周期大大超过规定日期。v软件系统开发成本高,周期长,质量差,满足不了市场需求。软件系统

25、开发成本高,周期长,质量差,满足不了市场需求。v 软件质量无保证。软件质量无保证。v软件系统开发人员数量少,质量低。软件系统开发人员数量少,质量低。i软件系统维护难度大。软件系统维护难度大。i软件开发缺乏合适的工具和方法。软件开发缺乏合适的工具和方法。i软件的版权问题得不到保证。软件的版权问题得不到保证。例例1 :Windows95程序超过程序超过1000万行。万行。例例2:WWMCCS(军事和控制)花费(军事和控制)花费3500多人拖了几年才多人拖了几年才完成,交付后发现出了完成,交付后发现出了100多多个错误,最后失败。个错误,最后失败。1.3软件工程过程和软件生存期1.3.1软件工程过程

26、软件工程过程软件工程过程是为获得软件产品,在软件工具支持下由是为获得软件产品,在软件工具支持下由软件工程师完成的一系列软件工程活动。软件工程师完成的一系列软件工程活动。每个软件开发机构每个软件开发机构都可以规定自己的软件工程过程(针对某一类软件产品为自都可以规定自己的软件工程过程(针对某一类软件产品为自己规定的工作步骤,应当是科学的、合理的,否则将影响到己规定的工作步骤,应当是科学的、合理的,否则将影响到软件产品质量)。软件产品质量)。概念软件工程过程基本过程活动v 软件规格说明:软件规格说明:规定软件的功能及其运行的限制规定软件的功能及其运行的限制 。v 软件开发:软件开发:产生满足规格说明

27、的软件。产生满足规格说明的软件。v 软件确认:软件确认:确认软件能够完成客户提出的要求确认软件能够完成客户提出的要求 。v 软件演进:软件演进:为满足客户的变更要求,软件必须在使用的过为满足客户的变更要求,软件必须在使用的过程中演进程中演进 。软件工程过程具备的特性v 易理解性。易理解性。v 可见性:可见性:每个过程活动均能以取得明确的结果而告终,使每个过程活动均能以取得明确的结果而告终,使过程的进展对外可见。过程的进展对外可见。v 可支持性:可支持性:易于得到计算机辅助软件工程工具的支持。易于得到计算机辅助软件工程工具的支持。v 可接受性:可接受性:易于为软件工程师接受和使用。易于为软件工程

28、师接受和使用。v 可靠性:可靠性:不会出现过程错误。不会出现过程错误。v 健壮性:健壮性:不受意外发生问题的干扰。不受意外发生问题的干扰。v 可维护性:可维护性:过程可随软件机构需求的变更而演进。过程可随软件机构需求的变更而演进。v 速度:速度:从给出规格说明起,就能较快地完成开发而交付使从给出规格说明起,就能较快地完成开发而交付使用。用。1.3.2软件生存期(lifecycle)概念 软件的生存期软件的生存期就是软件孕育、诞生、成长、成熟、衰亡的就是软件孕育、诞生、成长、成熟、衰亡的生生 存过程。存过程。软件生存期六个步骤v 制定计划:制定计划:确定要开发软件系统的总目标;给出功能、性确定要

29、开发软件系统的总目标;给出功能、性能、可靠性以及接口等方面的要求;完成该软件任务的可行能、可靠性以及接口等方面的要求;完成该软件任务的可行性研究;估计可利用的资源性研究;估计可利用的资源(计算机硬件,软件,人力等计算机硬件,软件,人力等)、成本、效益、开发进度;制定出完成开发任务的实施计划成本、效益、开发进度;制定出完成开发任务的实施计划,连连同可行性研究报告,提交管理部门审查。同可行性研究报告,提交管理部门审查。v 需求分析:需求分析:对待开发软件提出的需求进行分析并给出详细对待开发软件提出的需求进行分析并给出详细的定义;编写软件需求说明书或系统功能说明书及初步的系的定义;编写软件需求说明书

30、或系统功能说明书及初步的系统用户手册;提交管理机构评审。统用户手册;提交管理机构评审。v 程序编码:程序编码:把软件设计转换成计算机可以接受的程序代把软件设计转换成计算机可以接受的程序代码,即写成以某一种特定程序设计语言表示的码,即写成以某一种特定程序设计语言表示的“源程序清单源程序清单”,写出的程序应当是结构良好、清晰易读的,且与设计相,写出的程序应当是结构良好、清晰易读的,且与设计相一致的。一致的。v 软件设计:是软件工程核心部分。软件设计:是软件工程核心部分。概要设计概要设计 把各项需求转换成软件的体系结构。结构把各项需求转换成软件的体系结构。结构中每一组成部分都是意义明确的模块,每个模

31、块都和某些中每一组成部分都是意义明确的模块,每个模块都和某些需求相对应。需求相对应。详细设计详细设计 对每个模块要完成的工作进行具体的描述对每个模块要完成的工作进行具体的描述,为源程序编写打下基础。为源程序编写打下基础。编写设计说明书,提交评审。编写设计说明书,提交评审。v 软件测试:是保证软件质量的重要手段。软件测试:是保证软件质量的重要手段。单元测试:单元测试:查找各模块在功能和结构上存在的问题并加以查找各模块在功能和结构上存在的问题并加以 纠正。纠正。组装测试:组装测试:将已测试过的模块按一定顺序组装起来。将已测试过的模块按一定顺序组装起来。最后,按规定的各项需求,逐项进行最后,按规定的

32、各项需求,逐项进行有效性测试有效性测试,决定,决定已已 开发的软件是否合格,能否交付用户使用。开发的软件是否合格,能否交付用户使用。v 运行运行/维护:已交付的软件投入使用,便进入了维护:已交付的软件投入使用,便进入了运行运行阶段。阶段。改正性维护改正性维护 运行中发现了软件中的错误需要修正。运行中发现了软件中的错误需要修正。适应性维护适应性维护 为了适应变化了的软件工作环境,需做适当为了适应变化了的软件工作环境,需做适当 变更。变更。完善性维护完善性维护 为了增强软件的功能需做变更。为了增强软件的功能需做变更。1.4软件生存期模型 软件生存期模型是跨越整个生存期的系统开发、运作和软件生存期模

33、型是跨越整个生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架。有:维护所实施的全部过程、活动和任务的结构框架。有:瀑布模瀑布模型演化模型、螺旋模型、喷泉模型、智能模型型演化模型、螺旋模型、喷泉模型、智能模型等。等。1.4.1瀑布模型(线形顺序模型)瀑布模型瀑布模型规定了各项软件工程活动,包括制定开发计划、规定了各项软件工程活动,包括制定开发计划、进行需求分析和说明,软件设计,程序编码,测试及运行维护。进行需求分析和说明,软件设计,程序编码,测试及运行维护。规定了它们自上向下、互相衔接的固定次序,如同瀑布流水,逐规定了它们自上向下、互相衔接的固定次序,如同瀑布流水,逐级下落。级

34、下落。如图:如图:可行性研究与计划可行性研究与计划需求分析需求分析设计设计编码编码运行维护运行维护测试测试定义定义阶段阶段开开发发阶阶段段维护阶段维护阶段软件生存期瀑布模型软件生存期瀑布模型瀑布模型开发软件的特点:1)阶段间具有顺序性和依赖性。阶段间具有顺序性和依赖性。2)推迟实现的观点。推迟实现的观点。3)每个阶段必须完成规定的文档每个阶段必须完成规定的文档 每个阶段结束前完成文档审查每个阶段结束前完成文档审查 及早改正错误。及早改正错误。瀑布模型开发软件的原则1)承接上一项活动中接收本项活动承接上一项活动中接收本项活动 所需的对象作为输入。所需的对象作为输入。2)利用输入进行本项活动。利用

35、输入进行本项活动。3)把本项的活动成果作为输出传送把本项的活动成果作为输出传送 下一项。下一项。4)对本项工作进行评审,若评审正对本项工作进行评审,若评审正 确才能进行下一项工作。确才能进行下一项工作。瀑布模型特点v瀑布模型为软件开发和软件维护提供了一种有效的管理瀑布模型为软件开发和软件维护提供了一种有效的管理图式。图式。v消除非结构化软件、降低软件复杂度、促进软件开发工消除非结构化软件、降低软件复杂度、促进软件开发工程化。程化。v缺乏灵活性,无法解决软件需求不明确或不准确的问题缺乏灵活性,无法解决软件需求不明确或不准确的问题1.4.2演化模型第一次只是试验开发(产品称原型),其目标只是在于探

36、索可第一次只是试验开发(产品称原型),其目标只是在于探索可行性,弄清软件需求。行性,弄清软件需求。第二次(迭代)则在此基础上获得较为满意的软件产品。第二次(迭代)则在此基础上获得较为满意的软件产品。针对事先不能够完整定义需求的软件项目针对事先不能够完整定义需求的软件项目,建立起来的开发方法。建立起来的开发方法。(1)根据用户给出的待开发系统的核心需求,先开发出核心系根据用户给出的待开发系统的核心需求,先开发出核心系统。统。(2)用户试用后,提出精化系统、增强系统能力的需求,开发用户试用后,提出精化系统、增强系统能力的需求,开发人员实施开发的迭代过程。人员实施开发的迭代过程。演化模型概念 演化模

37、型一般开发过程需求需求设计设计编码编码测试测试集成集成运运行行、试试用用核心系统开发核心系统开发第二次迭代第二次迭代反馈反馈设计设计需求需求编码编码测试测试集成集成运运行行、试试用用反馈反馈软件生存期演化模型演化模型克服了瀑布模型缺点演化模型克服了瀑布模型缺点1.4.3螺旋模型 开发复杂的大型软件,开发一个原型往往达不到要求。开发复杂的大型软件,开发一个原型往往达不到要求。螺旋模型将瀑布模型和演化模型结合起来,并且加入两种模型螺旋模型将瀑布模型和演化模型结合起来,并且加入两种模型忽略了的风险分析,祢补了两者的不足。忽略了的风险分析,祢补了两者的不足。螺旋模型沿着螺线旋转,在四个象限上分别表达了

38、四个螺旋模型沿着螺线旋转,在四个象限上分别表达了四个方面的活动,即:方面的活动,即:制定计划制定计划确定软件目标,选定实施方案,弄清项目确定软件目标,选定实施方案,弄清项目开开 发的限制条件。发的限制条件。风险分析风险分析分析所选方案,考虑如何识别和消除风险。分析所选方案,考虑如何识别和消除风险。实施工程实施工程实施软件开发。实施软件开发。客户评估客户评估评价开发工作,提出修正建议。评价开发工作,提出修正建议。风险风险分析分析工程工程实施实施制定制定计划计划客户客户评估评估产生维护计划产生维护计划产生增加计划产生增加计划新产生发展计划新产生发展计划发展的观点发展的观点软件生存期螺旋模型软件生存

39、期螺旋模型“基于版本发布”的特点V1.01.0功功能能V2.02.0V1.11.1时间时间1.4.4喷泉模型 喷泉模型主要喷泉模型主要是是迭代和无间隙性。对迭代和无间隙性。对于迭代,系统某部分于迭代,系统某部分重复工作,相关功能重复工作,相关功能每次迭代中随之加入每次迭代中随之加入演进系统。无间隙是演进系统。无间隙是指在开发活动,各阶指在开发活动,各阶段间无明显界限。段间无明显界限。喷泉模型特征:喷泉模型特征:主要主要用于支持面向对象开用于支持面向对象开发过程体现了软件创发过程体现了软件创建所固有的迭代和无建所固有的迭代和无间隙的特征。间隙的特征。软件生存期喷泉模型软件生存期喷泉模型演化演化维

40、护维护测试测试实现实现设计设计分析分析1.4.5智能模型 智能模型也称为基于知识的软件开发模型,它综合智能模型也称为基于知识的软件开发模型,它综合了其它若干模型,并把专家系统结合在一起。该模型应用了其它若干模型,并把专家系统结合在一起。该模型应用基于规则的系统,采用规约和推理机制,帮助软件人员完基于规则的系统,采用规约和推理机制,帮助软件人员完成开发工作,并使维护在系统规格说明一级进行。为此建成开发工作,并使维护在系统规格说明一级进行。为此建立知识库,将模型、软件工程知识与特定领域的知识分别立知识库,将模型、软件工程知识与特定领域的知识分别存入数据库。以软件工程知识为基础的生成规则构成的专存入

41、数据库。以软件工程知识为基础的生成规则构成的专家系统与含有应用领域知识规则的其他专家系统相结合,家系统与含有应用领域知识规则的其他专家系统相结合,构成了这一应用领域软件的开发系统。构成了这一应用领域软件的开发系统。1.5软件工程的基本目标1.5.1软件工程的定义Boehm:运用现代科学技术知识来设计并构造计算机程序及为运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。开发、运行和维护这些程序所必需的相关文件资料。IEEE:软件工程是开发、运行、维护和修复软件的系统方法。软件工程是开发、运行、维护和修复软件的系统方法。Fritz Bauer:建立并使用完

42、善的工程化原则,以较经济的手段建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。获得能在实际机器上有效运行的可靠软件的一系列方法。“软件工程软件工程”术语首次出现:术语首次出现:1968年德国照开的年德国照开的NATO(北大西洋公约组织北大西洋公约组织)会议上。在德国会议上。在德国Garmish召开的召开的学术会议学术会议FritzBauer首先提出了首先提出了“软件工程软件工程”概念,引入了概念,引入了现代软件开发的方法,希望用工程化的原则和方法来克服软现代软件开发的方法,希望用工程化的原则和方法来克服软件危机。件危机。软件工程软件工程:是采用工程的

43、概念、原理、技术和方法来开发与:是采用工程的概念、原理、技术和方法来开发与 维护软件,把经过时间考验而证明正确的维护软件,把经过时间考验而证明正确的管理技管理技 术和当前能够得到的最好的技术方法结合术和当前能够得到的最好的技术方法结合起来。起来。软件工程三要素软件工程三要素:方法、工具和过程。方法、工具和过程。软件工程软件工程方法方法为软件开发提供了为软件开发提供了 “如何做如何做”的技术。的技术。软件软件工具工具为软件工程方法提供了自动的或半自动的软件支撑为软件工程方法提供了自动的或半自动的软件支撑 环境。环境。软件工程软件工程过程过程则是将软件工程的方法和工具综合起来以达到则是将软件工程的

44、方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。定义了合理、及时地进行计算机软件开发的目的。定义了方法使用方法使用的顺序;要求交付的文档资料;为保证质量和适应变化所需的顺序;要求交付的文档资料;为保证质量和适应变化所需要的管理;软件开发各个阶段完成的里程碑。要的管理;软件开发各个阶段完成的里程碑。1.5.2软件工程项目的基本目标v 付出较低的开发成本。付出较低的开发成本。v 达到要求的软件功能。达到要求的软件功能。v 取得较好的软件性能。取得较好的软件性能。v 开发的软件易于移植。开发的软件易于移植。v 需要较低的维护费用。需要较低的维护费用。v 能按时完成开发工作,及时交付使用

45、。能按时完成开发工作,及时交付使用。v 在实际开发具体项目中,企图让几个目标都达到理在实际开发具体项目中,企图让几个目标都达到理 想的程度是很困难的。而且上述目标很可能是互想的程度是很困难的。而且上述目标很可能是互相相 冲突的。冲突的。v 但有些目标之间存在互补的。但有些目标之间存在互补的。v 基本目标成为了判断软件开发方法或管理方法优劣基本目标成为了判断软件开发方法或管理方法优劣 的衡量尺度。的衡量尺度。如图:如图:基本目标 说明低开发成本低开发成本按时交付按时交付易于维护易于维护高可靠性高可靠性高性能高性能互补关系互补关系互斥关系互斥关系软件工程目标之间的关系软件工程目标之间的关系互斥互斥:如,只顾降低开发成本,同时可能降低了软件可靠:如,只顾降低开发成本,同时可能降低了软件可靠性;过于追求软件性能,可能造成开发出的软件对硬件具性;过于追求软件性能,可能造成开发出的软件对硬件具有较大依赖性,一是可以影响软件可移植性,也可以影响有较大依赖性,一是可以影响软件可移植性,也可以影响开发成本的提高等。开发成本的提高等。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 旅游攻略 > 广东广西

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报