软件的特点 软件是一种逻辑实体,而不是具体的物理实体。因而具有抽象性 软件的生产与硬件不同,在它的开发过程中没有明显的制造过程 在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题 软件的开发和运行常受到计算机系统的限制,对计算机系统有着 不同程度的依赖性 软件的开发至今尚未完全摆脱手工艺的开发方式 软件本身是复杂的 实际问题的复杂性 程序逻辑结构的复杂性 n软件成本相当昂贵 相当多的软件工作涉及到社会因素
软件的特点 ◼ 软件是一种逻辑实体,而不是具体的物理实体。因而具有抽象性 ◼ 软件的生产与硬件不同,在它的开发过程中没有明显的制造过程 ◼ 在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题 ◼ 软件的开发和运行常受到计算机系统的限制,对计算机系统有着 不同程度的依赖性 ◼ 软件的开发至今尚未完全摆脱手工艺的开发方式 ◼ 软件本身是复杂的 ◼ 实际问题的复杂性 ◼ 程序逻辑结构的复杂性 ◼ 软件成本相当昂贵 ◼ 相当多的软件工作涉及到社会因素
成本% 100 硬件 60 40 软件 20 年份 1950 1970 1985
软件的分类按功能进行划分 系统软件 应用软件 操作系统 商业数据处理软件 数据库管理系统 工程与科学计算软件 设备驱动程序 计算机辅助设计/制造软 n通信处理程序等 件 支撑软件 系统仿真软件 文本编辑程序 文件格式化程序 智能产品嵌入软件 磁盘向磁带向数据传输的 医疗、制药软件 程序 事务管理、办公自动化软 程序库系统 件 支持需求分析、设计、实 计算机辅助教学软件 现、测试和管理的软件
软件的分类—按功能进行划分 ◼ 系统软件 ◼ 操作系统 ◼ 数据库管理系统 ◼ 设备驱动程序 ◼ 通信处理程序等 ◼ 支撑软件 ◼ 文本编辑程序 ◼ 文件格式化程序 ◼ 磁盘向磁带向数据传输的 程序 ◼ 程序库系统 ◼ 支持需求分析、设计、实 现、测试和管理的软件 ◼ 应用软件 ◼ 商业数据处理软件 ◼ 工程与科学计算软件 ◼ 计算机辅助设计/制造软 件 ◼ 系统仿真软件 ◼ 智能产品嵌入软件 ◼ 医疗、制药软件 ◼ 事务管理、办公自动化软 件 ◼ 计算机辅助教学软件
软件的分类按规模进行划分 类别参加人员数研制期限源程序行数 微型 1~4周0.5k 小型1 1~6月1k~2k 中型2~5 1~2年5k~50k 大型5~202~3年50k~100k 甚大型100~10004~5年1M(=1000k) 极大型2000~50005~10年1M~10M
软件的分类—按规模进行划分 类别 参加人员数 研制期限 源程序行数 微型 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
软件的分类 按工作方式划分 ■按使用的频度进行划 n实时处理软件 分 分时软件 次使用 n交互式软件 频繁使用 批处理软件 按软件失效的影响进 按服务对象的范围划行划分 分 高可靠性软件 项目软件 一般可靠性软件 n产品软件
软件的分类 ◼ 按工作方式划分: ◼ 实时处理软件 ◼ 分时软件 ◼ 交互式软件 ◼ 批处理软件 ◼ 按服务对象的范围划 分: ◼ 项目软件 ◼ 产品软件 ◼ 按使用的频度进行划 分: ◼ 一次使用 ◼ 频繁使用 ◼ 按软件失效的影响进 行划分: ◼ 高可靠性软件 ◼ 一般可靠性软件