1.1 软件
1. 软件定义
1983 年 IEEE 的软件定义:计算机程序、文档、运行程序必须的数据、方法、规则。
简化的软件定义: 程序 + 文档 + 数据
扩充的软件定义 : 知识 + 程序 + 文档 + 数据
知识:知识是软件的载体
2. 软件分类
基于软件功能:系统软件、支撑软件、应用软件。
系统软件:与计算机硬件紧密配合使计算机各个部件与相关软件及数据协调、高效工作的软件。如操作系统、编译程序等。
支撑软件:协助用户开发软件的工具性软件。如 Rational Rose 、 PlayCase 等。
应用软件:在特定领域开发,为特定目的服务的一类软件。如商业数据处理软件、工程与科学计算软件、智能产品嵌入软件、人工智能软件、个人计算机软件。
基于软件规模:微型、小、中、大、极大、甚大、极大型。
类别 | 开发人员数 | 开发周期 | 产品规模(LOC) |
---|---|---|---|
微型 | 1 | 1~4 周 | 0.5k |
小型 | 1 | 1~6 月 | 1k~2k |
中型 | 2~5 | 1~2年 | 5k~50k |
大型 | 5~20 | 2~3年 | 50k~100k |
甚大型 | 100~1000 | 4~5年 | 1M(=1000k) |
极大型 | 2000~5000 | 5~10年 | 1M~10M |
如 甚大型软件: windows95 有 1000 万行代码; Windows2000 有 5000 万行代码。