©2009BUPTTSEG软件工程模型与方法Models&MethodsofSoftwareEngineering第一章软件工程概述修佳鹏media@bupt.edu.cn©2009BUPTTSEG北京邮电大学通信软件工程中心2本章内容1.1计算机软件1.2软件的发展和软件危机1.3软件工程1.4通信软件工程1.5软件工程知识体系©2009BUPTTSEG北京邮电大学通信软件工程中心31.1计算机软件本节内容1.1.1软件的定义1.1.2软件的特点1.1.3软件的分类©2009BUPTTSEG北京邮电大学通信软件工程中心41.1.1软件的定义软件是程序的完善和发展,是经过严格的正确性检验和实际试用,并具有相对稳定的文本和完整的文档资料的程序。Wirth中指出:在结构化程序设计:程序=算法+数据结构在软件工程中:软件=程序+文档。IEEE定义:软件是计算机程序、规程以及运行计算机系统所需要的文档和数据。©2009BUPTTSEG北京邮电大学通信软件工程中心51.1.1软件的定义另一种对软件的公认解释是:软件是包括程序、数据及其相关文档的完整集合。程序是按照事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发、维护和使用有关的图文材料。©2009BUPTTSEG北京邮电大学通信软件工程中心61.1.2软件的特点(1)软件是一种逻辑实体,具有抽象性。(2)软件的开发过程中没有明显的制造过程。(3)软件在运行和使用期间,没有硬件那样的机械磨损和老化问题,但存在软件退化问题。(4)软件的开发和运行常常受到计算机系统的约束和限制,不同程度地依赖计算机硬件。(5)软件的开发至今未完全摆脱手工艺的开发方式,大部分软件还是定制的,很难通过组装方式完成软件开发。©2009BUPTTSEG北京邮电大学通信软件工程中心71.1.2软件的特点(6)软件是复杂的。实际需求的复杂性程序逻辑的复杂性(7)软件研制成本相当高,在计算机系统中软件成本比例逐步增加。(8)软件投入运行时还涉及到许多社会因素。©2009BUPTTSEG北京邮电大学通信软件工程中心81.1.3软件的分类根据软件服务对象的范围不同:通用软件:操作系统、数据库等;定制软件:企业ERP、卫星控制系统等;根据软件完成功能所处的层次不同:系统软件中间件软件应用软件©2009BUPTTSEG北京邮电大学通信软件工程中心91.1.3软件的分类系统软件:指能与计算机硬件紧密配合在一起,使计算机系统各个部件、相关的软件和数据协调、高效地工作的软件。操作系统设备驱动程序...