软件工程模型与方法ModelsMethodsofSoftware.ppt
2008 BUPT TSEG,软件工程模型与方法Models&Methods of Software Engineering,第一章 软件工程概述修佳鹏,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,本章内容,1.1 计算机软件1.2 软件的发展和软件危机1.3 软件工程1.4 通信软件工程1.5 软件工程知识体系,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.1 计算机软件,本节内容1.1.1 软件的定义1.1.2 软件的特点1.1.3 软件的分类,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.1.1 软件的定义,软件是程序的完善和发展,是经过严格的正确性检验和实际试用,并具有相对稳定的文本和完整的文档资料的程序。Wirth中指出:在结构化程序设计:程序算法数据结构在软件工程中:软件程序文档。IEEE定义:软件是计算机程序、规程以及运行计算机系统所需要的文档和数据。,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.1.1 软件的定义,另一种对软件的公认解释是:软件是包括程序、数据及其相关文档的完整集合。程序是按照事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发、维护和使用有关的图文材料。,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.1.2 软件的特点,(1)软件是一种逻辑实体,具有抽象性。(2)软件的开发过程中没有明显的制造过程。(3)软件在运行和使用期间,没有硬件那样的机械磨损和老化问题,但存在软件退化问题。(4)软件的开发和运行常常受到计算机系统的约束和限制,不同程度地依赖计算机硬件。(5)软件的开发至今未完全摆脱手工艺的开发方式,大部分软件还是定制的,很难通过组装方式完成软件开发。,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.1.2 软件的特点,(6)软件是复杂的。实际需求的复杂性程序逻辑的复杂性(7)软件研制成本相当高,在计算机系统中软件成本比例逐步增加。(8)软件投入运行时还涉及到许多社会因素。,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.1.3 软件的分类,根据软件服务对象的范围不同:通用软件:操作系统、数据库等;定制软件:企业ERP、卫星控制系统等;根据软件完成功能所处的层次不同:系统软件中间件软件应用软件,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.1.3 软件的分类,系统软件:指能与计算机硬件紧密配合在一起,使计算机系统各个部件、相关的软件和数据协调、高效地工作的软件。操作系统数据库管理系统设备驱动程序通信处理程序等。,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.1.3 软件的分类,中间件屏蔽了底层操作系统的复杂性,使程序开发人员面对一个简单而统一的开发环境,将注意力集中在自己的业务上,不必再为程序的移植而重复工作,从而大大减少了技术上的负担。,中间件软件:为了解决分布异构系统的集成问题而开发的软件,是处于操作系统软件与用户的应用软件的中间的通用服务,具有标准的接口和协议。,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.1.3 软件的分类,中间件的十大优越性:(1)缩短应用的开发周期(2)节约应用的开发成本(3)减少系统初期的建设成本(4)降低应用开发的失败率(5)保护已有的投资(6)简化应用集成(7)减少维护费用(8)提高应用的开发质量(9)保证技术进步的连续性(10)增强应用的生命力,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.1.3 软件的分类,应用软件:在特定领域内开发,为特定目的服务的一类软件。商业数据处理软件 工程与科学计算软件 计算机辅助设计制造软件 系统仿真软件 智能产品嵌入软件 医疗、制药软件 事务管理、办公自动化软件 计算机辅助教学软件计算机网络软件,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.1.3 软件的分类,按照软件的规模:,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.1.3 软件的分类,按软件工作方式不同:实时处理软件分时软件交互式软件批处理软件 按照支撑应用开发的工具类型可以将其划分为:支持软件开发过程的工具 支持软件维护过程的工具 支持软件管理过程和支持过程的工具,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.2 软件的发展和软件危机,本节内容1.2.1 软件发展阶段1.2.2 软件危机1.2.3 软件危机的解决途径,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.2.1 软件发展阶段,程序设计阶段:20世纪50至60年代程序系统阶段:20世纪60至70年代软件工程阶段:20世纪70至90年代现代软件工程阶段:20世纪90年代至今,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.2.1 软件发展阶段,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.2.2 软件危机,20世纪60年代后,随着计算机软件应用领域增多,软件规模不断扩大,软件系统功能多,逻辑复杂,不断扩充,从而导致许多系统开发出现了不良的后果:系统存在大量错误,可用性和可靠性差;系统无法增加新功能,难于维护;系统无法按照计划时间完成;最严重的彻底失败。,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.2.2 软件危机,所谓软件危机(Software Crisis)就是计算机软件在开发和维护过程中所遇到的一系列严重问题,具体表现在:软件开发成本难以估算,无法制定合理的开发计划;用户的需求无法确切表达;软件质量存在问题;软件的可维护性差;缺乏文档资料;软件成本难以控制;,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.2.3 软件危机的解决途径,产生软件危机的原因:软件系统本身的复杂性;软件开发的方法和技术不合理;程序设计方法学讨论程序的性质、程序设计的理论和方法软件工程方法运用工程化原则和方法组织软件开发工作1968年提出,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.3 软件工程,本节内容1.3.1 软件工程定义1.3.2 软件工程要素1.3.3 软件工程的目标和原则1.3.4 软件工程基本原理,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.3.1 软件工程定义,1968年10月,Fritz Bauer首次提出了“软件工程”的概念:软件工程是为了经济地获得能够在实际机器上高效运行的可靠软件而建立和使用的一系列好的工程化原则。Boehm为软件工程下的定义:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.3.1 软件工程定义,Fairley认为:软件工程学是为在成本限额以内按时完成开发和修改软件产品所需的系统生产和维护的技术和管理的学科。IEEE计算机学会将“软件工程”定义为:应用系统化的、规范化的、定量的方法来开发、运行和维护软件,即:将工程应用到软件;对中各种方法的研究。从以上定义可以看出,软件工程的含义:(1)工程概念在软件领域里的一个特定应用(2)软件工程涉及软件产品的所有环节,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.3.2 软件工程要素,软件工程包括三个要素:方法、工具和过程。方法:提供了“如何做”的技术;工具:提供了自动的或半自动的软件支撑环境;过程:将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的;,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.3.3 软件工程的目标和原则,软件工程的目标可概括为:生产具有正确性、可用性以及开销适宜的软件产品。软件工程的最终目的是摆脱手工生产软件的状况,逐步实现软件研制和维护的自动化。,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.3.3 软件工程的目标和原则,软件工程研究内容:软件开发技术:根据不同的软件类型,按不同的观点和原则,对软件开发中应遵循的策略、原则、步骤和必须产生的文档资料等作出规定,从而使软件的开发能够进入规范化和工程化的阶段,以克服早期的手工作坊生产中的随意性和非规范性做法。包括:软件开发方法学、开发过程模型、开发工具、软件工程环境 软件工程管理软件按工程化生产时的重要环节,它要求按照预先制定的计划、进度和预算执行,以实现预期的经济效益和社会效益。包括:软件管理学、软件工程经济学、软件心理学等内容,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.3.3 软件工程的目标和原则,使用软件工程开发软件系统的过程中,要坚持四项基本原则:选取适宜的开发模型;采用合适的设计方法;提供高质量的工程支持;重视开发过程的管理;,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.3.4 软件工程基本原理,八条一般原理:(1)抽象(2)信息隐藏(3)模块化(4)局部化(5)确定性(6)一致性(7)完备性(8)可验证性,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.3.4 软件工程基本原理,七条基本原理(1)用分阶段的生命周期计划严格管理(2)坚持进行阶段评审(3)实行严格的产品控制(4)采用现代程序设计技术(5)结果应能清楚地审查(6)开发小组的人员应少而精(7)承认不断改进软件工程实践的必要性,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.4 通信软件工程,本节内容1.4.1 通信系统1.4.2 通信软件1.4.3 通信软件工程,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.4.1 通信系统,通信系统基本组成,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.4.1 通信系统,通信网:众多点对点通信系统通过交换系统按一定拓扑结构组合在一起就构成了通信网。通信网的组成:硬件:用户终端设备、传输设备、交换设备软件:通信网为能很好地完成信息的传递和交换所必需的一整套协议、标准,包括网路结构、信令方式、协议和接口、网络管理、技术体制标准等,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.4.1 通信系统,通信网系统基本功能:基本的传输和交换功能。业务控制功能。网路管理功能。,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.4.2 通信软件,凡是用来实现两个或多个实体(计算机、电信终端、交换设备等)之间相互通信的软件都可称为通信软件。电信软件:电话交换软件、移动通信软件、智能网软件等;计算机网络软件:网络协议软件、网络应用软件;,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.4.2 通信软件,电信软件类型,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.4.2 通信软件,基本呼叫处理软件:负责呼叫接续和呼叫状态转移的处理。业务独立逻辑处理模块:将交换机侧相同的处理功能抽象封装而成,如智能网。资源管理:为业务控制软件提供资源控制和管理功能。业务控制:在通信网业务能力基础上提供业务的生成、配置、接入、管理等功能。客户服务:客户关系管理系统(CRM:Customer Relationship Management),包括业务开通、业务保障、业务计量;产品开发与管理,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,电信软件分类:OSS(Operation Support System,运行支撑系统),包括(1)(4)BSS(Business Support System,经营支撑系统),包括(5),(6)电信业内将BSS和OSS结合起来统称为BOSS(Business and Operation Support System,运营支撑系统)。,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,某电信运营商系统规划实例,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.4.3 通信软件工程,通信软件工程就是将软件工程知识应用于通信领域,完全遵循软件工程的三要素:过程、方法和工具,只是在过程、方法和工具中要结合通信软件的特点。通信系统是全程全网系统,需遵守协议标准;系统协作,在信息建模同时,需考虑行为建模;分析阶段采用UML来表达软件系统的功能需求和信息需求;用MSC图描述系统与外部环境的交互以及内部对象之间的信息交互;在系统设计阶段采用SDL来形式化描述系统设计;实时软件开发工具:Telelogic Tau,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.5 软件工程知识体系,本节内容1.5.1 软件工程知识体系指南简介1.5.2 软件工程知识体系知识域,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.5.1 软件工程知识体系指南简,IEEE计算机学会的职业实践委员会主持的一个项目,目的:促进世界范围内对软件工程的一致观点;阐明软件工程相对其它学科(如计算机科学、项目管理、计算机工程和数学等)的位置,并确立它们的分界;刻画软件工程学科的内容;提供使用知识体系的主题;为开发课程表和个人认证与许可材料提供一个基础;,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.5.2 软件工程知识体系知识域,2008 BUPT TSEG 北京邮电大学 通信软件工程中心,1.5.2 软件工程知识体系知识域,