初步接触软件工程,需要对软件这一概念有一个整体的认识,接下来,简要阐述一下关于软件的知识点。
①软件定义
软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据、相关文档的完整集合。
-
程序是按事先设计好的功能和性能要求执行的指令序列
-
数据是是程序能正常操纵信息的数据结构
-
文档是与程序开发,维护和使用有关的图文材料
②软件特点
1.软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。
2.软件是通过人们的智力活动,把知识与技术转化成信息的一种产品,是在研制、开发中被创造出来的。
3.在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题。
4.软件的开发和运行经常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。在软件的开发和运行中必须以硬件提供的条件为基础。
5.软件的开发至今尚未完全摆脱手工的开发方式。
6.软件的开发费用越来越高,成本相当昂贵。
③软件的分类
功能划分:
- 系统软件
·操作系统化
·数据库管理系统
·设备驱动程序
·通信处理程序 - 支撑软件
·文本编辑程序
·文件格式化程序
·磁盘向磁带向数据传输的程序
·程序库系统
·支持需求分析,设计,实现,测试和支持管理的软件 - 应用软件
·工程与科学计算软件
·计算机辅助设计/制造软件
·系统仿真软件
·智能产品嵌入软件
·医疗、制药软件
·事务管理、办公自动化软件
·计算机辅助教学软件
规模划分:
类别 | 参加人员 | 研制期限 | 源程序行数 |
---|---|---|---|
微型 | 1 | 1一4周 | 0.5k |
小型 | 1 | 1一6月 | Ik~2k |
中型 | 2一5 | 1一2年 | 5k~50k |
大型 | 5一20 | 2一3年 | 50k一100k |
甚大型 | 100一1000 | 4一5年 | IM(=1000k) |
极大型 | 2000一5000 | 5一10年 | IM一10M |
工作方式划分:
- 实时处理软件
- 分时软件
- 交互式软件
- 批处理软件
软件服务对象的范围划分:
- 项目软件
- 产品软件
使用频度划分:
- 一次使用
- 频繁使用
软件失效的影响划分:
- 高可靠性软件
- 一般可靠性软件
④软件危机
1、定义:
指的是软件开发和维护过程中遇到的一系列严重问题。
2、表现:
- 不符合用户实际需要
- 生产率低下
- 质量差
- 成本和进度预估不准确
- 可维护性差
- 文档不完整
- 昂贵
3、化解危机:
(l)用分阶段的生存周期计划严格管理
(2)坚持进行阶段评审
(3)实行严格的产品控制
(4)采用现代程序设计技术
(5)结果应能清楚地审查
(6)合理安排软件开发小组的人
(7)承认不断改进软件工程实践的必要性
⑤软件发展阶段
程序设计阶段 ——50-60年代
程序系统阶段 ——60-70年代(作坊式)
软件工程阶段 ——70年代以后(标准化)