1 什么是软件?
定义:计算机系统中的程序及其文档。
——程序是计算机任务的处理对象和处理规模的描述;
——文档是为了便于了解程序所需要的阐明性资料。
2 软件的特点?
软件是无形的,不可见的逻辑实体
——它的正确与否,一直到程序在机器上运行才能知道
——这就给设计、生产和管理带来许多困难
软件是定制、设计开发的,而不是生产制作的
——虽然整个工业向着基于构件的构造模式发展
——然而大多数软件仍然是根据实际的顾客需求定制的
软件是复杂的
——软件涉及人类社会的各行各业
——软件开发常常涉及其他领域的专业知识,这对软件工程提出了很高的要求
软件质量要求有所差异,有的很高,有的允许小的错误。
——例:1962.7.22,美国飞往金星的火箭“水手一号”的控制系统导航程序中,Do5 I=1,3 误写成 Do5 I=1.3,造成火箭偏离轨道,迫使地面炸毁火箭,直接损失 1850 万美元。
软件开发工作涉及到很多社会因素
——如机构设置、体制和管理方式以及人们的观念和心理
软件的开发成本高
软件在使用过程中没有磨损,老化的问题
软件易于复制
软件的开发与运行都离不开相关的计算机系统环境
3 软件发展历史:
1、第一阶段----个人程序阶段
2、第二阶段----软件作坊阶段
3、第三阶段----软件工程阶段
4 软件危机:
软件危机(软件萧条、软件困扰):是指在计算机软件的开发和维护过程中所遇到 的一系列严重问题。
包含两方面问题: (1)如何开发软件以满足不断增长、日趋复杂的需求? (2)如何维护数量不断膨胀的软件产品? 几乎所有软件都不同程度地存在这些问题。
5 软件危机的典型表现:
(1)对软件开发成本和进度的估计常常很不准确;
(2)用户对“已完成的”软件系统不满意的现象经常发生;
(3)软件产品的质量往往靠不住;
(4)软件常常是不可维护的;
(5)软件通常没有适当的文档资料;计算机软件不仅仅是程序,还应该有一整 套文档资料。
(6)软件成本在计算机系统总成本中所占的比例逐年上升;
(7)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势 。
6 产生软件危机的原因:
(1)与软件本身的特点有关:软件不同于硬件,它是计 算机系统中的逻辑部件而不是物理部件。
(2)与软件开发和维护的方法不正确有关。
7 消除软件危机的途径:
(1)对计算机软件有正确的认识。
(2)认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完 成的工程项目。
(3)应该推广使用在实践中总结出来的开发软件的成功技术和方法,并继续研 究探索
(4)应该开发和使用更好的软件工具。
8 工程:以现有技术为基础,解决实际问题;与研发不同,研发讲究深度,窄而深; 工程讲究广度,将多种技能、知识组合起来解决问题;工程要解决的是实际问题, 必须要考虑复杂的实际环境