软件
软件 = 程序 + 文档 + 数据
程序:机器指令的集合
文档:描述程序操作与使用的文档
数据:程序运行时需要使用的信息
注意:
编程是软件开发活动的核心,但软件开发远比编程要复杂!
软件危机
1968年,北大西洋公约组织的计算机科学家们在联邦德国召开的国际学术会议上,提出“软件危机(Software crisis)”。
软件危机:指的是计算机软件的开发和维护过程中遇到的一系列严重的问题。
常见软件危机情况:
- 开发成本超出预算,实际进度比预定计划一再拖延。
- 软件产品的质量往往靠不住,Bug一大堆,Patch一个接一个。
- 用户对“已完成”的系统不满意的现象经常发生。
- 软件的可维护性程度非常低。
- 软件通常没有适当的文档资料。
- 软件的成本不断提高。
- 软件开发生产率的提高赶不上硬件的发展和人们需求的增长。
软件工程
定义 [IEEE610.12-1990]
-
应用系统的、规范的、可量化的方法来开发、运行和维护软件,即将工程应用到软件。
-
对1)中各种方法的研究。
软件工程的动机
① 要解决的问题?
软件危机…
混乱的现实世界中的复杂问题…
② 要解决的实际问题范围广泛
没有行业和领域限制,需要客户和用户紧密合作。
实际问题通常模糊不清。
③ 科学性、实践性和工艺性并重
特点
- 软件工程追求足够好,不是最好。
- 成本效益比有效的方案,都是足够好的方案。
目的与意义
软件、软件工程要服务于整个社会的进步。