软件工程导论第六版 第一章 软件工程学概述知识点总结(上)

目录

      • 关于20世纪60年代 (选择题考点)
      • 软件危机
        • 软件危机的概念 (填空题考点)
        • 软件危机的表现 (简答题考点)
        • 软件危机产生的原因 (简答题考点)
      • 软件工程的概念
      • 软件工程的七条基本原理
      • 软件生命周期
      • 本章练习

关于20世纪60年代 (选择题考点)

1、为了更加有效地开发与维护软件,软件工作者在20世纪60年代后期开始认真研究消除软件危机的途径,从而逐渐形成了一门新兴的工程学科 —— 软件工程。(换句话说,计算机软件工程学出现于20世纪60年代)

2、1968年北大西洋公约组织的计算机科学家在西德召开国际会议,讨论软件危机问题,在这次会议上正式提出并使用了软件工程这个名词。(即软件工程第一次提出是在1968年)

软件危机

软件危机的概念 (填空题考点)

软件危机是指在计算机软件的开发维护过程中所遇到的一系列严重问题。
它包括:
(1)如何开发软件,满足对软件日益增长的需求(开发方面)
(2)如何维护数量不断膨胀的已有软件(维护方面)

软件危机的表现 (简答题考点)

(1)对软件的开发成本和开发进度的估计往往很不准确(开发人员方面)。实际成本比估计成本有可能高出一个数量级,实际进度比预期进度有可能慢了几个月甚至几年,这种现象降低了软件开发组织的信誉。而为了赶进度和节约成本所采取的一些权宜之计往往又损害了软件产品的质量,从而不可避免地引起了用户的不满。
(2)用户对“已完成的”软件不满意的现象时有发生(用户方面)。软件开发人员常常在对用户的要求只有模糊的了解,就匆忙着手编写程序,软件开发人员和用户之间的信息交流往往很不充分,从而导致最终的产品不符合用户的实际需要。
(3)软件常常是不可维护的。(软件方面)
(4)软件产品的质量往往靠不住。
(5)通常没有适当的文档资料。
(6)软件维护费用在计算机总成本比例中逐年提高。
(7)供求问题,开发速度跟不上计算机普及速度。

软件危机产生的原因 (简答题考点)

(1)软件自身问题,软件不同于硬件,硬件是物理部件,而软件是计算机系统中的逻辑部件,缺乏可见性。软件规模庞大复杂,修改和维护比较困难。
(2)软件开发和维护的方法不当,忽视软件需求分析的重要性,认为软件开发就是代码编写并设法使之运行,轻视了软件维护。
(3)供求矛盾,面对日益增长的需求,开发过程显得力不从心。

软件工程的概念

软件工程是从管理技术两个方面研究如何开发与维护计算机软件的一门工程学科。采用工程的概念、原理和方法来开发和维护软件,把经过时间检验而证明正确的管理技术和当前得到的最好的开发技术结合起来,以经济地开发出高质量的软件并有效地推护它。

软件工程的七条基本原理

  • 用分阶段的生命周期计划严格管理
  • 坚持进行阶段评审
  • 实行严格的产品控制。在软件开发过程中不应随意改变需求,因为改变一项需求往往需要付出较高的代价。但是,在软件开发过程中改变需求又是难免的。当改变需求时,为了保持软件各个配置成分的一致性,必须实行严格的产品控制,其中主要是实行基准配置管理。基准配置管理也称为变动控制:一切有关修改软件的建议,特别是涉及对基准配置的修改建议,都必须按照严格的规程进行评审,获得批准以后才能实施修改。 绝对不能谁想修改软件(包括尚在开发过程中的软件),就随意进行修改。
  • 采用现代程序设计技术。实践表明,采用先进的技术不仅可以提高软件开发和维护的效率,而且可以提高软件产品的质量。
  • 结果应能清楚地审查
  • 开发小组的人员应该少而精。这条基本原理的含义是,软件开发小组的组成人员的素质应该好,而人数则不宜过多。当开发小组人员数为N时,可能的通信路径有N(N一1)/2条,可见随着人数N的增大,通信开销将急剧增加。因此,组成少而精的开发小组是软件工程的一条基本原理。
  • 承认不断改进软件工程实践的必要性

注:当N=4时,显然有4(4-1)/2 = 4x3/2 = 6条通信路径
软件工程导论第六版 第一章 软件工程学概述知识点总结(上)_第1张图片

软件生命周期

概括地说,软件生命周期由软件定义、软件开发和软件维护3个时期组成,每个时期又进一步划分成若干个阶段。
软件定义时期通常进一步划分成3个阶段,即问题定义、可行性研究和需求分析。
开发时期具体设计和实现在前一个时期定义的软件,它通常由下述4个阶段组成:总体设计、详细设计、编码和单元测试、综合测试。其中前两个阶段又称为系统设计,后两个阶段又称为系统实现

问题定义:回答要解决的问题是什么?

可行性分析:这个阶段要回答的关键问题是:“对于上一个阶段所确定的问题有行得通的解决办法吗?”为了回答问题,需要进行一次大大压缩和简化了的系统分析和设计过程

需求分析:这个阶段的一项重要任务,是用正式文档准确地记录对目标系统的需求,这份文档通常称为需求规格说明书(specification)。

总体设计:回答应该怎样实现目标系统?(选择题考点 总体设计与体系结构相对应)总体设计的一项主要任务就是设计程序的体系结构,也就是确定程序由哪些模块组成以及模块间的关系

详细设计:回答应该怎样具体地实现这个系统?(选择题考点 详细设计与数据结构相对应)详细设计也称为模块设计,在这个阶段将详细地设计每个模块,确定实现模块功能所需要的算法和数据结构

编码和单元测试:这个阶段的关键任务是写出正确的容易理解﹑容易维护的程序模块。

综合测试:最基本的测试是集成测试验收测试。所谓集成测试是根据设计的软件结构,把经过单元测试检验的模块按某种选定的策略装配起来,在装配过程中对程序进行必要的测试。所谓验收测试则是按照规格说明书的规定(通常在需求分析阶段确定),由用户(或在用户积极参加下)对目标系统进行验收。

本章练习

1、软件生命周期由软件定义软件开发软件维护 3个时期组成。

2、软件定义时期通常进一步划分成3个阶段,即问题定义可行性研究需求分析

3、软件开发时期,分为总体设计(又叫概要设计)、详细设计(又叫过程设计)、编码和单元测试、综合测试四个阶段

4、软件开发时期,分为概要设计(又叫总体设计)、详细设计、编码和单元测试、综合测试四个时期,其中前两个阶段又叫 系统设计,后两个阶段叫 系统实现

软件工程导论第六版 第一章 软件工程学概述知识点总结(上)_第2张图片

顺口溜记忆法:问、可、需、总、详、编、综

5、在经典的软件开发工程中,编写程序所需的工作量只占软件开发全部工作量的10% - 20%

6、用于软件维护的费用占软件总费用的55% - 70%(维护的成本最高)。

7、测试工作所需要的工作量通常占软件开发全部工作量的40% - 50%

8、软件 = 程序 + 数据 + 文档(填空题考点)

9、软件工程关注于大型程序的构造 (判断题考点)

10、软件工程的中心课题是控制复杂性。软件规模的扩大会导致软件复杂性程指数倍数增加。(选择题考点)

11、软件工程包括技术和管理两方面的内容,是技术管理紧密结合所形成的工程学科。

12、软件工程方法学包含3个要素:方法、工具和过程

你可能感兴趣的:(软件工程,软件工程,期末考试,考研初试)