考点精讲
3.1 软件工程基本概念
【考点1】软件定义与软件特点
(1)软件的定义
计算机软件(Software)是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集合。
(2)软件的组成
①机器可以执行的程序和数据;
②机器不可执行的,与软件开发、运行、维护、使用等有关的文档。
(3)软件的特点
①软件是一种逻辑实体,而不是物理实体,具有抽象性。
②软件的生产与硬件不同,它没有明显的制作过程。
③软件在运行、使用期间不存在磨损、老化问题。
④软件的开发、运行对计算机系统有很大依赖性,导致软件出现移植问题。
⑤软件复杂性高,成本昂贵。
⑥软件开发涉及诸多的社会因素。
(4)软件的分类
软件按照应用功能划分,可分为:
①应用软件
应用软件是为解决特定领域的应用而开发的软件。常用的应用软件:事务处理软件,工程与科学计算软件,实时处理软件,教务管理系统等。
②系统软件
系统软件是计算机管理自身资源,提高计算机使用效率并服务于其他程序的软件。常用的系统软件:操作系统,编译程序,汇编程序,网络软件,数据库管理系统等。
③支撑软件
支撑软件是介于系统软件和应用软件之间,协助用户开发软件的工具性软件,包括辅助和支持开发和维护应用软件的工具软件。常用的支撑软件:需求分析工具软件,设计工具软件,编码工具软件,测试工具软件等。
【真题演练】
1计算机软件包括( )。[2014年9月真题]
A.算法和数据
B.程序和数据
C.程序和文档
D.程序、数据及相关文档
【答案】D
【解析】计算机软件由两部分组成:①机器可执行的程序和数据;②机器不可执行的,与软件开发、运行、维护、使用等有关的文档。答案选择D选项。
2下面对软件特点描述错误的是( )。[2015年3月真题]
A.软件没有明显的制作过程
B.软件是一种逻辑实体,不是物理实体,具有抽象性
C.软件的开发、运行对计算机系统具有依赖性
D.软件在使用中存在磨损、老化问题
【答案】D
【解析】软件的特点有:①具有抽象性,是逻辑实体;②没有明显的制作过程;③在使用期间不存在磨损、老化问题;④对硬件和环境具有依赖性;⑤复杂性高,成本昂贵;⑥开发涉及诸多的社会因素。答案选择D选项。
3下面属于系统软件的是( )。[2014年3月真题]
A.财务管理系统
B.数据库管理系统
C.编辑软件Word
D.杀毒软件
【答案】B
【解析】应用软件是为解决特定领域的应用而开发的软件,如事务处理软件,工程与科学计算软件,学生成绩管理系统、教务管理系统、浏览器、编辑软件等应用性质不同的各种软件。系统软件是计算机管理自身资源,提高计算机使用效率并服务于其他程序的软件,如操作系统,编译程序,汇编程序,数据库管理系统等。支撑软件是介于系统软件和应用软件之间,协助用户开发软件的工具性软件,包括辅助和支持开发和维护应用软件的工具软件,如需求分析工具软件,设计工具软件,编码工具软件,测试工具软件,维护工具软件等。答案选择B选项。
【考点2】软件危机与软件工程
(1)软件危机
①定义
软件危机泛指计算机软件的开发和维护过程中所遇到的一系列严重问题。
②主要表现
a.软件需求的增长得不到满足,用户对系统不满意的情况经常发生;
b.软件开发成本和进度无法控制,开发成本超出预算,开发周期大大超过规定日期的情况经常发生;
c.软件质量难以保证;
d.软件不可维护或维护程度非常低;
e.软件的成本不断提高;
f.软件开发生产率的提高赶不上硬件的发展和应用需求的增长。
③产生原因
a.对软件需求速度大大超过了技术进步带来的软件生产率的提高;
b.软件工程所面临的任务和其他工程之间的差异以及软件和其他工业产品的不同。
(2)软件工程
①定义
将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程。
②三要素
a.方法:完成软件工程项目的技术手段。
b.工具:支持软件的开发、管理、文档生成。
c.过程:支持软件开发的各个环节的控制、管理。
③核心
把软件产品当作工程产品来处理,把需求计划、可行性研究、工程审核、质量监督等工程化的概念引入到软件生产当中,以期达到工程项目的三个基本要素:进度、经费和质量的目标。
代表性的有结构化的方法、面向对象方法和软件开发模型及软件开发过程等。
【真题演练】
软件工程的三要素是( )。[2015年3月真题]
A.方法、工具和过程
B.建模、方法和工具
C.建模、方法和过程
D.定义、方法和过程
【答案】A
【解析】软件工程的三要素是:①方法;②工具;③过程。其中方法为软件开发提供了“如何做”的技术;工具为软件工程方法提供了自动或半自动的支撑环境;过程则是将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。答案选择A选项。
【考点3】软件过程与软件生命周期
(1)软件过程
ISO 9000定义:软件过程是把输入转化为输出的一组彼此相关的资源和活动。
软件过程通常包含4种基本活动:
①P(Plan)——软件规格说明。
规定软件的功能及其运行时的限制。
②D(Do)——软件开发或软件设计与实现。
生产满足规格说明的软件。
③C(Cheek)——软件确认。
确认软件能够满足客户提出的要求。
④A(Action)——软件演进。
(2)软件生命周期
①定义
软件生命周期是指软件产品从提出、实现、使用维护到停止使用退役的过程。
②阶段
a.软件定义
软件定义阶段包括可行性研究初步项目计划和需求分析阶段。
主要任务:确定软件开发工作必须完成的目标,确定工程可行性。
b.软件开发
软件开发阶段包括总体设计、详细设计、编码与测试阶段。
主要任务:具体完成设计和实现定义阶段所定义的软件,总体设计和详细设计又称为系统设计,编码和测试又称为系统实现。
c.软件运行维护
软件运行维护阶段包括使用、维护和退役阶段。
主要任务:使软件在运行中持久地满足用户的需要,及时改正软件在使用中发生的错误,修改软件以适应不同的使用环境。
③各阶段的基本任务
a.可行性研究与计划制定
确定待开发软件系统的开发目标和总的要求,给出它的功能、性能、可靠性以及接口等方面的可能方案,制定完成开发任务的实施计划。
b.需求分析
对待开发软件提出的需求进行分析并给出详细定义。编写软件规格说明书及初步的用户手册,提交评审。
c.软件设计
系统设计人员和程序设计人员应该在反复理解软件需求的基础上,给出软件的结构、模块的划分、功能的分配以及处理流程。在系统比较复杂的情况下,设计阶段可分解成概要设计阶段和详细设计阶段。编写概要设计说明书、详细设计说明书和测试计划初稿,提交评审。
d.编码
编码是把软件设计转换成计算机可以接受的程序代码。即完成源程序的编码,编写用户手册、操作手册等面向用户的文档,编写单元测试计划。
e.软件测试
在设计测试用例的基础上,检验软件的各个组成部分。编写测试分析报告。
f.运行和维护
将已交付的软件投入运行,并在运行使用中不断地维护,根据新提出的需求进行必要而且可能的扩充和删改。
【考点4】软件工程的目标与原则
(1)软件工程的目标
①定义
软件工程的目标是,在给定成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的产品。
②基本目标:
a.付出较低的开发成本;
b.达到要求的软件功能;
c.取得较好的软件性能;
d.开发的软件易于移植;
e.需要较低的维护费用;
f.能按时完成开发,及时交付使用。
③软件工程的理论和技术性研究的内容:
a.软件开发技术
软件开发技术包括:软件开发方法学、开发过程、开发工具和软件工程环境,其主体内容是软件开发方法学。
b.软件工程管理
软件工程管理包括:软件管理学、软件工程经济学、软件心理学等内容。
(2)软件工程的原则
软件工程的基本原则包括抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。
【考点5】软件开发工具与软件开发环境
(1)软件开发工具
程序设计语言、软件开发工具、软件开发方法。
(2)软件开发环境
软件开发环境或称软件工程环境是全面支持软件开发全过程的软件工具集合。