本书为《Software Engineering: The Tao of C》的配套习题解答,提供英文版课后练习解析,旨在帮助学生深入理解C语言编程原理及其在软件工程中的应用。
第七章 软件工程
第一节 软件与软件工程
一、软件的定义与特点
(一)软件的定义
计算机系统通过运行程序来实现各种不同的应用功能,包括用户为特定目的编写的应用程序、检查和诊断机器系统的程序以及支持这些应用运行的各种系统和服务程序等统称为软件。
(二)软件的组成
在实际操作中能够提供所需功能与性能的一系列指令集;使上述指令集有效运作的数据结构;描述开发过程及方法的相关文档资料,这些都是构成软件的重要组成部分。
(三)软件的特点
1. 抽象性: 软件是一种逻辑构造体而非物理实体,因此它具有抽象的特性。
2. 智力劳动产物: 它是通过智力活动将知识和技术转化为信息的产品,并在开发过程中被创造出来。
3. 无备件特征: 在软件运行和使用期间没有像硬件那样的机械磨损或老化问题。
4. 对硬件依赖性: 软件的开发与运行往往受限于计算机系统的条件,因此对系统有着不同程度上的依存关系。
5. 主要由人工完成:尽管自动化工具日益增多,但至今为止软件研发仍主要依靠人力进行。
6. 无明确制造过程:随着技术进步和复杂度提升, 软件开发成本变得越来越高。
二、软件工程
(一)软件危机
在计算机软件的开发与维护过程中经常遇到一系列严重问题的现象称为软件危机.
(二)定义及目标
软件工程是一门应用工程技术原理来指导计算机程序设计研发工作的学科。它结合了经过验证有效的管理技术和最新的技术方法,旨在提高软件项目的成功率和质量水平。