第1章
软件工程概述
1
内容
?1.0软件概念
?1.1软件危机
?1.2软件工程
?1.3软件生命周期
?1.4软件过程
1.0软件概念
?软件
?软件的特点
?软件发展历程
软件概念-软件
软件(Software)是计算机系统中与硬件相
互依存的另一部分,它是包括程序(Program)
,数据(Data)及其相关文档(Document)的完
整集合。
Software=Program+Data+Document
?程序是按事先设计的功能和性能要求执行的指令序列
?数据是使程序能正常操纵信息的数据结构
?文档是与程序开发,维护和使用有关的图文材料
软件概念-软件的特点
?抽象性
?软件是逻辑实体,没有明显的制造过程,运行和使用没有磨损与老化问题
。
?依存性
?软件开发和运行依赖于计算机系统。
?工艺性
?软件开发至今尚未完全摆脱手工工艺的开发方式。
?复杂性
?软件逻辑结构、开发技术、项目管理复杂。
?成本高
?开发成本、维护成本高。
?风险大
?软件项目的成功率低。
?维护难
?维护不能依靠原开发者,理解软件代码难,维护也是开发,维护成本高
?软件工作涉及各种社会因素
?政策规章、管理思想、文化背景、信息素养、技术水平、系统接口等。
软件的复杂性
?逻辑复杂
?软件的逻辑结构非常复杂
?开发复杂
?成本难以估算、进度难以控制、人员素质要
求、质量得不到保证
成本高
例:软件成本
产品代码行工作量成本(百万)
(人年)
Lotus1-2-3400k26322
Version3.0
SpaceShuttle25.6M12
1989Lincoln83.5M351.8
Continental
CityBankTeller780k15013.2
machine
IBMChechout90k583
Scanner
风险大
?1995年美国Standish咨询集团的统计分析(至90年
代初的软件项目执行情况)
?成功:16.2%
?失败:31%
?受到挑战:53.8%
?近几年来的统计数据
?成功:26%
?失败:28%
?受到挑战:46%
维护难
?维护形式多样化
?改正性:修改故障
?完善性:增加功能
?适应性:移植
?维护成本越来越高
?55%到70%
?维护带来的问题
?可能引发新的错误,经维护后逻辑结构更复杂
1.1软件危机
?软件危机
?软件发展历程,软件危机,软件危机的表现。
?产生软件危机的原因
?软件特点有关,开发中的问题,维护中的问题。
?消除软件危机的途径
?正确认识“软件”,重视软件过程,采用有效的软件开