软件
软件定义
1983年IEEE的软件定义
计算机程序、文档、运行程序必须的数据、方法、规则。方法和规则在文档中说明,在程序中实现。
简化软件定义
程序+文档+数据
软件分类(基于软件功能的划分)
- 系统软件
与计算机硬件紧密配合使计算机各个部件与相关软件及数据协调、高效工作的软件。
如操作系统、编译程序、数据库管理系统、设备驱动程序以及通信处理程序等。
- 支撑软件
协助用户开发软件的工具性软件。
Rational Rose
PlayCase
Power Designer
青鸟系统(北大)等。
- 应用软件
(1)商业数据处理软件
管理信息系统(MIS)
企业资源计划(ERP)
(2)工程与科学计算软件
CAD/CAM(计算机辅助设计/制造)
仿真模拟、天气预报。
(3)智能产品嵌入软件
驻留在智能产品内存,控制产品工作的软件。
数码相机、GPS等
(4) 人工智能软件
利用非数值算法去解决复杂问题的软件。
专家系统、模式识别软件、人工神经网络软件
(5) 个人计算机软件
文字处理系统、电子表格、游戏娱乐软件
软件分类(基于软件规模的划分)
- 微型软件
- 小型软件
- 中型软件
- 大型软件
- 甚大型软件
操作系统、大型数据库管理系统等
Windows2000有2000万行代码
Vista有5000万行代码 - 极大型软件
弹道导弹系统等
软件工程
软件发展的四个阶段
-
程序设计:50年代中——60年代中
-
程序系统:60年代中——70年代中
-
软件工程:70年代中——80年代中
-
第四阶段:80年代中——现在
软件危机
- 定义
在计算机软件开发和维护过程中遇到的一系列严重问题
- 主要表现
(1)开发成本和进度估计不准
延迟交付、取消项目
(2)用户对已交付软件不满意
开发人员对用户信息交流不充分,产品不符合用户需求
(3)软件产品质量靠不住
软件产品保证技术(审查、复审、测试)未坚持不懈应
用软件开发全过程
(4)软件可维护性差
开发时未考虑,很多错误难以改正
(5)软件没有适当文档资料
文档资料应在软件开发过程中产生,保证最新
(6)软件成本在计算机系统总成本中所占的比例逐年上升
(7)软件开发生产率提高的速度,既跟不上硬件的发展速度,也跟不上计算机应用迅速普及深入的趋势
- 软件危机的主要特征
4. 软件危机包含两方面问题
- 软件危机产生的原因
在软件开发和维护的过程中存在这么多严重问题,一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。
软件工程
- 定义
1993年IEEE的定义
① 把系统化的、规范的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中。②研究其提到的途径
- 内容
(1)软件工程技术
软件开发方法学
软件开发过程
软件工具和软件工程环境
(2)软件工程管理
软件管理学
软件经济学
软件心理学