资源描述
软件定义,第一级标题,第二级标题,第三级标题,Quatrime niveau,2009,BUPT TSEG,北京邮电大学 通信软件工程中心,*,软件工程模型与方法Models&Methods of Software Engineering,第一章 软件工程概述,修佳鹏 ,2009,BUPT TSEG,本章内容,1.1 计算机软件,1.2 软件的发展和软件危机,1.3 软件工程,1.4 通信软件工程,1.5 软件工程知识体系,2009,BUPT TSEG,北京邮电大学 通信软件工程中心,1.1 计算机软件,本节内容,1.1.1 软件的定义,1.1.2 软件的特点,1.1.3 软件的分类,2009,BUPT TSEG,北京邮电大学 通信软件工程中心,1.1.1 软件的定义,软件是程序的完善和发展,是经过严格的正确性检验和实际试用,并具有相对稳定的文本和完整的文档资料的程序。,Wirth中指出:,在结构化程序设计:程序算法数据结构,在软件工程中:软件程序文档。,IEEE定义:软件是计算机程序、规程以及运行计算机系统所需要的文档和数据。,2009,BUPT TSEG,北京邮电大学 通信软件工程中心,1.1.1 软件的定义,另一种对软件的公认解释是:软件是包括程序、数据及其相关文档的完整集合。,程序,是按照事先设计的功能和性能要求执行的指令序列;,数据,是使程序能正常操纵信息的数据结构;,文档,是与程序开发、维护和使用有关的图文材料。,2009,BUPT TSEG,北京邮电大学 通信软件工程中心,1.1.2 软件的特点,(1)软件是一种逻辑实体,具有抽象性。,(2)软件的开发过程中没有明显的制造过程。,(3)软件在运行和使用期间,没有硬件那样的机械磨损和老化问题,但存在软件退化问题。,(4)软件的开发和运行常常受到计算机系统的约束和限制,不同程度地依赖计算机硬件。,(5)软件的开发至今未完全摆脱手工艺的开发方式,大部分软件还是定制的,很难通过组装方式完成软件开发。,2009,BUPT TSEG,北京邮电大学 通信软件工程中心,1.1.2 软件的特点,(6)软件是复杂的。,实际需求的复杂性,程序逻辑的复杂性,(7)软件研制成本相当高,在计算机系统中软件成本比例逐步增加。,(8)软件投入运行时还涉及到许多社会因素。,2009,BUPT TSEG,北京邮电大学 通信软件工程中心,1.1.3 软件的分类,根据软件服务对象的范围不同:,通用软件:操作系统、数据库等;,定制软件:企业ERP、卫星控制系统等;,根据软件完成功能所处的层次不同:,系统软件,中间件软件,应用软件,2009,BUPT TSEG,北京邮电大学 通信软件工程中心,1.1.3 软件的分类,系统软件:指能与计算机硬件紧密配合在一起,使计算机系统各个部件、相关的软件和数据协调、高效地工作的软件。,操作系统,设备驱动程序,通信处理程序,2009,BUPT TSEG,北京邮电大学 通信软件工程中心,1.1.3 软件的分类,中间件屏蔽了底层操作系统的复杂性,使程序开发人员面对一个简单而统一的开发环境,将注意力集中在自己的业务上,不必再为程序的移植而重复工作,从而大大减少了技术上的负担。,中间件软件:为了解决分布异构系统的集成问题而开发的软件,是处于操作系统软件与用户的应用软件的中间的通用服务,具有标准的接口和协议。,2009,BUPT TSEG,北京邮电大学 通信软件工程中心,1.1.3 软件的分类,中间件的种类包括:,消息中间件,数据访问中间件,应用服务器,对象中间件,交易中间件,安全中间件,2009,BUPT TSEG,北京邮电大学 通信软件工程中心,1.1.3 软件的分类,中间件的十大优越性:,(1)缩短应用的开发周期,(2)节约应用的开发成本,(3)减少系统初期的建设成本,(4)降低应用开发的失败率,(5)保护已有的投资,(6)简化应用集成,(7)减少维护费用,(8)提高应用的开发质量,(9)保证技术进步的连续性,(10)增强应用的生命力,2009,BUPT TSEG,北京邮电大学 通信软件工程中心,1.1.3 软件的分类,应用软件:在特定领域内开发,为特定目的服务的一类软件。,商业数据处理软件,工程与科学计算软件,计算机辅助设计制造软件,系统仿真软件,智能产品嵌入软件,医疗、制药软件,事务管理、办公自动化软件,计算机辅助教学软件,计算机网络软件,2009,BUPT TSEG,北京邮电大学 通信软件工程中心,1.1.3 软件的分类,按照软件的规模:,类别,参加人员数,开发周期,产品规模(LOC),微型,1,14周,0.5k,小型,1,16月,1k2k,中型,25,12年,5k50k,大型,520,23年,50k100k,甚大型,1001000,45年,1M(=1000k),极大型,20005000,510年,1M10M,2009,BUPT TSEG,北京邮电大学 通信软件工程中心,1.1.3 软件的分类,按软件工作方式不同:,实时处理软件,分时软件,交互式软件,批处理软件,按照支撑应用开发的工具类型可以将其划分为:,支持软件开发过程的工具,支持软件维护过程的工具,支持软件管理过程和支持过程的工具,2009,BUPT TSEG,北京邮电大学 通信软件工程中心,1.2 软件的发展和软件危机,本节内容,1.2.1 软件发展阶段,1.2.2 软件危机,1.2.3 软件危机的解决途径,2009,BUPT TSEG,北京邮电大学 通信软件工程中心,1.2.1 软件发展阶段,程序设计阶段:20世纪50至60年代,程序系统阶段:20世纪60至70年代,软件工程阶段:20世纪70至90年代,现代软件工程阶段:20世纪90年代至今,2009,BUPT TSEG,北京邮电大学 通信软件工程中心,1.2.1 软件发展阶段,阶段,程序设计,程序系统,(现代)软件工程,特点,软件所指,程序,程序及说明书,程序、文档和数据,程序设计语言,汇编及机器语言,高级语言,软件语言,软件工作范围,程序编写,包括设计和测试,软件生存期,需求者,程序设计本人,少数用户,市场用户,开发软件的组织,个人,开发小组,开发小组及大中型软件开发机构,软件规模,小型,中小型,大中小型,决定质量的因素,个人程序技术,小组技术水平,管理水平,开发技术和手段,子程序/程序库,结构化程序设计,数据库、开发工具、开发环境、工程化开发方法、标准和规范、网络及分布式开发、面向对象技术、软件复用,维护责任者,程序设计者,开发小组,专职维护人员,硬件特征,价格高/存储容量小工作可靠性差,降价、速度、容量及工作可靠性明显提高,向超高速、大容量、微型化及网络化发展,软件特征,完全不受重视,软件技术的发展不能满足需求,出现软件危机,开发技术有进步,但未获突破性进展,价高,未完全摆脱软件危机,2009,BUPT TSEG,北京邮电大学 通信软件工程中心,1.2.2 软件危机,20世纪60年代后,随着计算机软件应用领域增多,软件规模不断扩大,软件系统功能多,逻辑复杂,不断扩充,从而导致许多系统开发出现了不良的后果:,系统存在大量错误,可用性和可靠性差;,系统无法增加新功能,难于维护;,系统无法按照计划时间完成;,最严重的彻底失败。,2009,BUPT TSEG,北京邮电大学 通信软件工程中心,软件危机举例,20世纪60年代IBM公司开发的(OS/360)系统就是一个很好的例子。,该系统由4000多个模块组成,约100万条指令,人工为5000人年(一个人年为一个人工作一年的工作量),耗费达数亿美元。该系统投入运行后发现了2000多个错误,发布过19个版本,而以后每个版本的更新均有1000多个大大小小的错误存在。系统开发陷入了僵局。,OS/360系统的负责人F.D.Brooms曾这样形象地描述了开发过程中的困难和混乱:“像一头巨兽在泥潭中作垂死挣扎,挣扎得越猛,泥浆就沾得越多,最后没有一个野兽能逃脱淹没在泥潭中的命运程序设计就像是这样一个泥潭一批批程序员在泥潭中挣扎没人料到问题竟会这样棘手”。,2009,BUPT TSEG,北京邮电大学 通信软件工程中心,1.2.2 软件危机,所谓软件危机(Software Crisis)就是计算机软件在开发和维护过程中所遇到的一系列严重问题,具体表现在:,软件开发成本难以估算,无法制定合理的开发计划;,用户的需求无法确切表达;,软件质量存在问题;,软件的可维护性差;,缺乏文档资料;,软件成本难以控制;,2009,BUPT TSEG,北京邮电大学 通信软件工程中心,1.2.3 软件危机的解决途径,产生软件危机的原因:,软件系统本身的复杂性;,软件开发的方法和技术不合理;,程序设计方法学,讨论程序的性质、程序设计的理论和方法,软件工程方法,运用工程化原则和方法组织软件开发工作,1968年提出,2009,BUPT TSEG,北京邮电大学 通信软件工程中心,1.3 软件工程,本节内容,1.3.1 软件工程定义,1.3.2 软件工程要素,1.3.3 软件工程的目标和原则,1.3.4 软件工程基本原理,2009,BUPT TSEG,北京邮电大学 通信软件工程中心,1.3.1 软件工程定义,1968年10月,Fritz Bauer首次提出了“软件工程”的概念:软件工程是为了经济地获得能够在实际机器上高效运行的可靠软件而建立和使用的一系列好的,工程化,原则。,Boehm为软件工程下的定义:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。,2009,BUPT TSEG,北京邮电大学 通信软件工程中心,1.3.1 软件工程定义,Fairley认为:软件工程学是为在成本限额以内按时完成开发和修改软件产品所需的系统生产和维护的技术和管理的学科。,IEEE计算机学会将“软件工程”定义为:应用,系统化的、规范化的、定量,的方法来开发、运行和维护软件,即:将工程应用到软件;对中各种方法的研究。,从以上定义可以看出,软件工程的含义:,(1)工程概念在软件领域里的一个特定应用,(2)软件工程涉及软件产品的所有环节,2009,BUPT TSEG,北京邮电大学 通信软件工程中心,1.3.2 软件工程要素,软件工程包括三个要素:方法、工具和过程。,方法:提供了“如何做”的技术;,工具:提供了自动的或半自动的软件支撑环境;,过程:将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的;,2009,BUPT TSEG,北京邮电大学 通信软件工程中心,1.3.3 软件工程的目标和原则,软件工程的目标可概括为:生产具有正确性、可用性以及开销适宜的软件产品。,正确性指软件产品达到预期功能的程度。,可用性指软件基本结构、实现及文档为用户可用的程度。,开销合宜是指软件开发、运行的整个开销满足用户要求的程度。,软件工程的最终目的是摆脱手工生产软件的状况,逐步实现软件研制和维护的自动化。,2009,BUPT TSEG,北京邮电大学 通信软件工程中心,1.3.3 软件工程的目标和原则,软件工程研究内容:,软件开发技术:,根据不同的软件类型,按不同的观点和原则,对软件开发中应遵循的策略、原则、步骤和必须产生的文档资料等作出规定,从而使软件的开发能够进入规范化和工程化的阶段,以克服早期的手工作坊生产中的随意性和非规范性做法。,包括:软件开发方法学、开发过程模型、开发工具、软件工程环境,软件工程管理,软件按工程化生产时的重要环节,它要求按照预先制定的计划、进度和预算执行,以实现预期的经济效益和社会效益。,包括:软件管理学、软件工程经济学、软件心理学等内容,2009,BUPT TSEG,北京邮电大学 通信软件工程中心,1.3.3 软件工程的目标和原则,使用软件工程开发软件系统的过程中,要坚持四项基本原则:,选取适宜的开发模型;,采用合适的设计方法;,提供高质量的工程支持;,重视开发过程的管理;,2009,BUPT TSEG,北京邮电大学 通信软件工程中心,1.3.4 软件工程基本原理,八条一般原理:,(1)抽象,(2)信
展开阅读全文