软件:是包括程序、数据及其相关文档的完整集合。
程序和数据是构造软件的基础,文档是软件质量的保证,也是保证软件更新及生命周期长短的必需品。
软件是一种逻辑实体,具有抽象性。
软件开发过程中没有明显的制造过程 ,应理解为“创作”。
不存在机械磨损和老化问题,但存在软件退化问题 。
软件的开发和运行受到计算机系统的约束和限制。
软件开发至今未完全摆脱手工艺的开发方式。
软件是复杂的原因:(1).实际需求的复杂性 (2).程序逻辑的复杂性
根据软件服务对象: (1).通用软件 (2).定制软件
根据软件完成功能所处的层次不同: (1).应用软件 (2).中间件软件 (3).系统软件(如操作系统、驱动、数据库管理软件)
| 阶段 | 时间 | 
|---|---|
| 程序设计阶段 | 20世纪50 至 60年代 | 
| 程序系统阶段 | 20世纪60 至 70年代 | 
| 软件工程阶段 | 20世纪70 至 90年代 | 
| 现代软件工程阶段 | 20世纪90年代 至今 | 
产生软件危机的原因:
(1). 软件系统本身的复杂性;
(2). 软件开发的方法和技术不合理及不成熟;
三要素:方法、工具、过程。
方法:提供了如何做的技术
工具:提供了自动或半自动的软件支撑环境
过程:将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的
目标:生产具有正确性、可用性以及开销适宜的软件产品。
最终目的:摆脱手工生产软件的状况,逐步实现软件研制和维护的自动化。
研究的内容:软件开发技术、软件工程管理。
原文:https://www.cnblogs.com/zkGaia/p/9002797.html