软件工程导论第五版复习重点必考题
(最后部分为每年必考题)(最后部分为每年必考题) 第一章第一章 1. .软件工程的定义:软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。 它借鉴传统工程的原则、方法,以提高质量,降低成本为目的. 2. 软件危机的概念:软件危机是指计算机软件的开发和维护过程中所遇到的一系列严重的 问题。 3. 产生软件危机的原因:(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理 解软件产品是一个完整的配置组成。造成开发中制定计划盲目、编程草率,不考虑 维护工作的必要性。 (2) 软件本身方面,对于计算机系统来说,软件是逻辑部件, 软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。 (3) 尤 其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、 质量不 能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的 发展已经远远不能适应社会需求。 4. 面向对象方法学的四个要点: 1.把对象作为融合了数据及在数据上的操作行为的统一的软 件构件 2.把所有对象都划分成类 3.按照父类(或称为基类)与子类(或称为派生类)的关 系,把若干个相关类组成一个层次结构的系统(也称为类等级) 。4.对象彼此间仅能通过发 送消息互相联系。 5. 软件生命周期:软件定义(问题定义,可行性研究,需求分析) 、软件开发(总体设计, 详细设计,编码,单元测试,总体测试) 、运行维护(持久地满足用户的需要) 6. 瀑布模型,快速原型模型,增量模型,螺旋模型,喷泉模型,概念.方法.优缺点.区别。 7. 微软过程把软件生命周期划分为成 5 个阶段:规划阶段,设计阶段,开发阶段,稳定阶 段,发布阶段。 第二章第二章 1.可行性包括:技术可行性,经济可行性,操作可行性。 2. 系统流程图是概括地描绘物理系统的传统工具。它的基本思想是用图形符号以黑盒子形 势描绘组成系统的每个部件(程序,文档,数据库,人工过程等) 。系统流程图表达的是数 据在系统各部件之间流动的情况, 而不是对数据加工处理的控制过程, 因此尽管系统流程图 的某些符号和程序流程图的符号形式相同,但是它却是物理数据流图而不是程序流程图。 4. 书库流图(DFD)是一种图形化技术, 它描绘信息流和数据从输入移动到输出的过程中所经 受的变换。 在数据流图中没有任何具体的物理部件, 它只描绘数据在软件中流动和被处理的 逻辑过程。数据流图是系统逻辑功能的图形表示。 5. 用系统流程图描绘一个系统时,系统的功能和实现每个功能的具体方案是混在一起的。 有数据元素组成的数据的方式只有下述3 种基本类型: 顺序 (即以确定次序连接两个或多个 分量) 。选择 即从两个或多个可能的元素中选取一个重复即把指定的分量重复零次或 多次 第三章第三章 1.访谈有两种基本形式,分别是正式的和非正式的访谈 2.所谓情景分析就是对用户将来使用目标系统解决某个具体问题的方法和结果进行分析 3.结构化分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法。 4.使用简易的应用规格说明技术分析需求的典型过程: (总结出来) 5.快速原型就是快速建立起来的旨在演示目标系统主要功能的可运行的程序。 6.所谓模型就是为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面描 述。 7.需求分析过程应该建立3 种模型,它们分别是数据模型,功能模型,行为模型. 8.概念性数据模型是一种面向问题的数据模型,是按照用户的观点对数据建立的模型 9.数据对象是对软件必须理解的符合信息的抽象。 10.数据对象彼此之间相互连接的方式称为联系,也称为关系。联系可分为 3 种类型:一对 一联系,一对多联系,多对多联系。 11.状态时任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。 12.事件就是引起系统做动作或(和)转换状态的控制信息。 13.IPO 图是输入,处理,输出图的简称。 14.软件的验证:一致性,完整性,现实性,有效性 第四章第四章 1.所谓形式化方法,是描述系统性质的基于数学的技术,也就是说,如果一种方法有件事的 数学基础,那么它就是形式化的。 2.用于确定系统中隐含的定时问题的一种有效技术是Petri 网 3.用 Z 语言描述的、最简单的形式化规格说明含有下述4 个部分:给定的集合、数据类型及 常数。 状态定义初始状态操作 第五章第五章 1.总体设计过程通常由两个主要阶段组成:系统设计阶段,确定系统的具体实现方案;结构 设计阶段,确定软件结构。 2.模块是由边界元素限定的相邻程序元素(例如,数据说明,可执行的语句)的序列。 3.抽象就是抽出事物的本质特性而暂时不考虑它们的细节。 4.逐步求精定义:为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。 5.抽象程序对抽象的数据进行某些特定的运算并用某些合适的记号(可能是自然语言)来表 示。 6.信息隐藏,信息隐藏的原理, 1.局部化就是把一些关系密切的软件元素物理的放得彼此靠近。 2.耦合是对一个软件结构内不同模块之间互连程度的度量。 3.数据耦合是低耦合,控制耦合式中等程度的耦合,最高程度的耦合式内容耦合。 4.如果一个模块完成一组任务,这些任务彼此间即使有关系,关系也是很松散的,就叫做偶 然内聚。 5.中内聚主要有两类:如果一个模块内的处理元素是相关的,而且必须以特定次序执行,则 称为过程内聚。 6.高内聚也有两类:如果一个模块内的处理元素和同一个功能密切相关,而且这些处理必须 顺序执行,则称为顺序内聚。深度表示软件结构中控制的层数, 它往往能粗略的标志一个系 统的大小和复杂程度。 7.宽度是软件结构内同一个层次上的模块总数的最大值。 8.扇出事一个模块直接控制(调用)的模块数目。 9.一个模块的扇入表明有多少个上级模块直接调用它。 10.设计的很好的软件结构通常顶层扇出比较高,中层扇出比较少,底层扇入到公共的实用 模块中去(底层模块有高扇出) 11.模块的作用域应该在控制域之内(2 种方法)????? 12.面向数据流的设计方法把信息流映射成软件成结构,信息流的类型决定了映射的方法。 信息流有两种类型:变换流,事务流。 13.总体设计阶段的基本目的是用比较抽象概括的方式确定系统如何完成预定的任务,也就 是说,应该确定系统的物理配置方案。并且进而确定组成系统的每个程序的结构。 14.在进行软件结构设计时应该遵循的最主要的原理是模块独立原理。 第六章第六章 1.结构程序设计的经典定义:如果一个程序的代码仅仅通过顺序,选择和循环这3 种基本结 构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。 2.系统响应时间指从用户完成某个控制动作(例如,按回车键或单击鼠标) ,到软件给出预 期的响应(输出信息或动作)之间的这段时间。 3.系统响应时间有两个重要的属性:长度和易变性。 4.易变性指系统响应时间相对于平均响应时间的偏差。 5.一般交互指南涉及信息显示,数据输入和系统整体控制。 6.过程涉及的工具:程序流程图,盒图,PAD图,判定表,判定树 7.PDL 作为一种设计工具有如下一些特点(要求看懂伪码) 第七章第七章 1.通常把编码和测试统称为实现。 2.编码和单元测试属