一、什么是软件
软件(software)是计算机系统中与硬件(hardware)相互依存 的另一部分,它是包括程序(program)、数 据(date)和文档 (document)的完整集合。
![在这里插入图片描述](https://img-blog.csdnimg.cn/202104121950294.png#pic_center)
软件=程序+数据+文档
程序:是能够完成预定功能和性能的可执行的指令序列 数据:是使程序能够适当地处理信息的数据结构,输入 与输出,数据库等 文档:是开发、使用和维护程序所需要的图文资料,需 求分析、概要设计、详细设计等各阶段文档,还包括用 户文档
二、软件危机与软件工程
软件危机
软件危机是指在计算机软件的开发和维护过程中所遇到的一系列 严重问题。
软件危机包含两方面问题:
一、如何开发软件,以满足不断增长,日趋复杂的需求
二、如何维护数量不断膨胀的软件产品
**软件危机的典型表现**
1.对软件开发成本和进度的估计常常很不准确
2.用户“已完成的”软件系统不满意的现象经常发生
3.软件产品的质量往往靠不住
4.软件常常是不可维护的
5.软件通常没有适当的文档资料
6.软件成本在计算机系统总成本中所占的比例逐年上升
7.软件开发生产率提高的速度,即跟不上硬件的发展速度,也远远 跟不上计算机应用迅速普及及深入的趋势
**软件危机产生的原因**
1.忽视软件开发前期的调研和需求分析工作
2.缺乏软件开发的经验和有关软件开发数据的积累,使得开发计划 很难制定
3.开发过程缺乏统一的、规范化的方法论指导
4.忽视与用户、开发组成员间的及时有效的沟通
5.文档资料不规范或不准确,导致开发者失去工作的基础,管理者 失去管理的依据
没有完善的质量保证体系
软件工程
软件工程是一门研究怎么用系统化、规范化、数量化等工程原则和方法去进行软件的研发和 维护的学科。
软件工程包括两方面内容:软件研发技术和软件项目管理
软件研发技术包括:软件研发方法学、软件工具和软件工程环境
软件项目管理包括:软件度量、项目估算、进度控制、人员组织、 设置管理、项目计划等
三、软件测试的意义
从工作量上来说:解放程序员和售后服务人员 软件测试可以降低软件质量风险,使程序员能够 更专 心于解决程序的算法和效率;同时经过严格检 验的完整产品也减轻了售后服务人员的工作量。 •
从软件测试过程的角度来说:它推动了软件工程的 发展,使软件的质量得到了阶段性的提升。