1
软 件 工 程
2
\r 《软件工程》 \r \r 近二十年来计算机软件已经成为现代科学研究和解决工程问题的基础,以及管理部门、生产部门、服务行业中的关键因素,渗透到了各个领域,成为当今世界不可缺少的一部分。\r展望二十一世纪,软件仍将成为驱动任何事情, 从基础教育到遗传工程取得新进展的动力。\r学习研究工程化的软件开发方法,使开发过程更加规范,是我们学习的目标和动力。\r
3
软件工程 -实践者的研究方法 (英译版 第五版)\r Roger S.Pressman \r 机械工业出版社
实用软件工程 (第二版)\r郑人杰 殷人昆 陶永雷\r清华大学出版社(1996)
参考书目
4
§第一章 产品1.1 软件角色的演化\r1.2 软件\r 1.2.1软件特征\r 1.2.2软件应用\r1.3 软件:地平线上的危机\r1.4 软件神话\r1.5 小结
第一部分 产品和过程
5
概念: \r\r 计算机软件是软件工程师设计和建造的产品。它包括:一个在任意规模和体系结构的计算机中执行的程序,以硬复制和电子形式存在的文档,以及组合数字和文本并且包含表示图形、视频和音频信息的数据。\r
§第一章 产品
6
§第一章 产品
产品: \r\r 从软件工程师的视角来看,产品是被称为计算机软件的程序、文档和数据。但是,从用户的视角来看,产品是以某种方式使用户世界变得更好的结果信息。
7
1.1 软件角色的演化
软件担任着双重角色:\r 是一种产品,同时又是开发和运行产品的载体。\r 软件是一个信息转换器\r 软件是计算机控制(操作系统) 、信息通信(网络) 、创建和控制其他程序(软件工具和环境)的基础
8
软件是:\r当它被执行时提供希望功能和性能的指令(计算机程序)\r使得程序能够适当地操作信息的数据结构\r描述程序的操作和使用的文档。
1.2 软件
9
软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合\r程序是按事先设计的功能和性能要求执行的指令序列\r数据是使程序能正常操纵信息的数据结构\r文档是与程序开发,维护和使用有关的图文材料
1.2 软件
10
1.软件是被开发或设计的,而不是传统意义上被制造的。\r2.软件不会“磨损”。\r3.虽然软件产业正在向基于构件的组装前进,大多数软件仍是定制的。
1.2.1软件特征
11
1.2.1软件特征
软件是一种逻辑实体,而不是具体的物理实体。因而它具有抽象性\r软件的生产与硬件不同,在它的开发过程中没有明显的制造过程\r在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题
12
硬件失效曲线
软件理想失效曲线和实际失效曲线
13
软件的开发和运行常受到计算机系统的限制,对计算机系统有着不同程度的依赖性\r软件的开发至今尚未完全摆脱手工艺的开发方式\r软件本身是复杂的\r实际问题的复杂性\r程序逻辑结构的复杂性 \r软件成本相当昂贵\r相当多的软件工作涉及到社会因素
14
1.2.2软件应用
软件可以应用于任何情况,只要定义了一组预先定义好的程序步骤(即一个算法)。\r信息的内容和确定性是决定一个软件应用的特性的重要因素。\r内容指的是输入和输出信息的含义和形式\r信息的确定性指的是信息的处理顺序及时间的可预定性\r
15
软件的分类
系统软件\r实时软件\r商业软件\r工程和科学计算软件\r嵌入式软件\r个人计算机软件\r基于网的软件\r人工智能软件
16
1.3软件:地平线上的危机
软件危机:\r 在计算机软件开发、维护过程中所遇到的一系列严重问题。
在程序运行时发现的错误,必须设法改正
用户有新的需求,必须相应地修改程序
硬件或OS的更新,通常需要相应地修改程序
17
1.4 软件神话
管理神话:维持预算、保持进度及提高质量。\r客户神话:用户过高的期望值,并引起对开发者的极端不满意。\r实践者的神话:在软件的早期阶段,程序设计被看作是一门艺术。这种旧的观念和方式是很难改变的。\r\r
18
1.5 小结
软件已经成为基于计算机的系统及产品的关键组成成分。\r在过去50年中,软件已经从特定的问题解决和信息分析工具演化为一门独立的产业。\r软件工程的目的就是为建造高质量的软件提供一个框架。