欢迎来到天天文库
浏览记录
ID:43356661
大小:46.01 KB
页数:5页
时间:2019-09-30
《软件工程导论(第五版)课件-第1章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第一章软件工程学概述一、复习要求1.了解软件概念及分类方法。2.了解软件发展及软件危机的起因。3.了解软件工程的概念及其要素。4.了解软件工程的基本目标和方法学。5.了解软件过程及软件生存期的概念。二、内容提要1.软件的概念软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发,维护和使用有关的图文材料。2.软件的分类(1)按软件的功能进行划分:·系统软件:能与计算机硬件紧密配合在一起,使计算机系统各个部件、相关的软件和数
2、据协调、高效地工作的软件。例如,操作系统、数据库管理系统、设备驱动程序以及通信处理程序等。·支撑软件:是协助用户开发软件的工具性软件,其中包括帮助程序人员开发软件产品的工具,也包括帮助管理人员控制开发的进程的工具。·应用软件:是在特定领域内开发,为特定目的服务的一类软件。(2)按软件规模进行划分:按开发软件所需的人力、时间以及完成的源程序行数,可确定六种不同规模的软件。表1.1软件规模的分类类别参加人员数研制期限产品规模(源程序行数)微型11~4周0.5k小型11~6月1k~2k中型2~51~2年5k~50k大型5~202~3年50k~100k甚大型100~1
3、0004~5年1M(=1000k)极大型2000~50005~10年1M~10M(3)按软件工作方式划分:·实时处理软件:指在事件或数据产生时,立即予以处理,并及时反馈信号,控制需要监测和控制的过程的软件。主要包括数据采集,分析,输出三部分。·分时软件:允许多个联机用户同时使用计算机。·交互式软件:能实现人机通信的软件。·批处理软件:把一组输入作业或一批数据以成批处理的方式一次运行,按顺序逐个处4理完的软件。(4)按软件服务对象的范围划分:·项目软件:也称定制软件,是受某个特定客户(或少数客户)的委托,由一个或多个软件开发机构在合同的约束下开发出来的软件。例如
4、军用防空指挥系统、卫星控制系统。·产品软件:是由软件开发机构开发出来直接提供给市场,或是为千百个用户服务的软件。例如,文字处理软件、文本处理软件、财务处理软件、人事管理软件等。3.软件的发展和软件危机自20世纪40年代中出现了世界上第一台计算机以后,就有了程序的概念。其后经历了几十年的发展,计算机软件经历了三个发展阶段:·程序设计阶段,约为50至60年代·程序系统阶段,约为60至70年代·软件工程阶段,约为70年代以后在软件技术发展的第二阶段,随着计算机硬件技术的进步,要求软件能与之相适应。然而软件技术的进步一直未能满足形势发展提出的要求。致使问题积累起来,形
5、成了日益尖锐的矛盾。这就导致了软件危机。问题归结起来有:(1)缺乏软件开发的经验和有关软件开发数据的积累,使得开发工作的计划很难制定。致使经费预算常常突破,进度计划无法遵循,开发完成的期限一拖再拖。(2)软件需求,在开发的初期阶段提得不够明确,或是未能得到确切的表达。开发工作开始后,软件人员和用户又未能及时交换意见,造成开发后期矛盾的集中暴露。(3)开发过程没有统一的、公认的方法论和规范指导,参加的人员各行其事。加之设计和实现过程的资料很不完整;或忽视了每个人工作与其他人的接口,使得软件很难维护。(4)未能在测试阶段充分做好检测工作,提交用户的软件质量差,在运
6、行中暴露出大量的问题。如果这些障碍不能突破,进而摆脱困境,软件的发展是没有出路的。4、软件工程的概念和要素软件工程的定义1990年,CMU对软件工程的定义是:软件工程是以工程的形式应用计算机科学和数学原理,从而经济有效地解决软件问题。1993年,IEEE对软件工程的定义是:软件工程是将系统化的、严格约束的、可量化的方法,应用于软件开发、运行和维护中去。后来尽管又有一些人提出了许多更为完善的定义,但主要思想都是强调在软件开发过程中需要应用工程化原则的重要性。软件工程包括三个要素:方法、工具和过程。软件工程方法为软件开发提供了“如何做”的技术。它包括了多方面的任务
7、,如项目计划与估算、软件系统需求分析、数据结构、系统总体结构的设计、算法过程的设计、编码、测试以及维护等。软件工具为软件工程方法提供了自动的或半自动的软件支撑环境。目前,已经推出了许多软件工具,这些软件工具集成起来,建立起称之为计算机辅助软件工程(CASE)的软件开发支撑系统。CASE将各种软件工具、开发机器和一个存放开发过程信息的工程数据库组合起来形成一个软件工程环境。4软件工程的过程则是将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。过程定义了方法使用的顺序、要求交付的文档资料、为保证质量和协调变化所需要的管理、及软件开发各个阶段
8、完成的里程碑。5、软件工程的目标和方法
此文档下载收益归作者所有