《软件工程复习题》由会员分享,可在线阅读,更多相关《软件工程复习题(17页珍藏版)》请在金锄头文库上搜索。
1、 软件工程复习要点一、软件工程概述1、 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题,具体表现是在哪些方面?软件危机的表现1) 、无法开发复杂程度高的软件2) 、成本和进度估计不准3) 、无统一科学的规范,软件不可维护4) 、无质量保证,可靠性差5) 、软件常不能满足用户的需求6) 、无适当的文档资料 7) 、软件生产率太低 2、 简述瀑布模型软件开发方法各个阶段的任务和基本的工作过程。瀑布模型即生命周期模型,将软件生命周期的各项活动规定为依照固定顺序连接的若干阶段工作,包括:问题定义与可行性分析、软件计划、需求分析、总体设计、详细设计、编码、测试、运行维护。 (见图)各阶
2、段任务:问题定义(标与范围说明书)可行性研究(可行性分析报告)需求分析(需求说明书)设计(设计文档)编程(程序)测试(测试报告运行与维护(维护报告)优点:强调软件开发的阶段性; 强调早期计划及需求分析; 强调软件产品的测试。缺点:依赖早期需求分析,一旦需求改变,不能适应,付出很大代价; 单一流程,过程中经验教训不能反馈应用; 风险往往后期显露,丧失及早纠正机会。3、 软件工程的基本原则有哪些?抽象原则:抽取事物最基本的特性和行为,忽略非基本细节。采用层次抽象,自顶向下细化的方法控制软件开发过程复杂性。信息隐藏原则:用户只能通过模块接口访问模块中封装的数据。模块化原则:模块是程序中在逻辑上相对独
3、立的功能集成体,有良好接口定义,模块与模块或模块与操作者间通过接口联系。局部化,确定性,一致性,完备性,可验证性4、 叙述需求分析的方法和过程。过程:确定对软件系统的要求;分析软件系统的数据及操作要求;确定软件系统的详细逻辑模型;修订系统开发计划;编写软件需求规格说明书。方法:1 功能分析法:功能,子功能,功能接口,问题空间到功能和子功能映射,利用已有经验对新系统预先设定功能体系及功能实现,重点放在新系统需求进行什么样加工上。过程抽象的观点。2 信息建模法:基点是数据。现实世界找出实体,用属性描述实体,实体与关系形成网络,描述系统信息状况给出系统信息模型。3 结构化分析法:由数据流图和数据字典
4、构成,实现问题空间到某种表示映射。建立现行系统物理模型,抽象出现行系统逻辑模型,建立目标系统逻辑模型,作进一步补充优化。4 面向对象分析法:采用类结构,数据封装和继承等面向对象程序设计语言概念建模。5、 说明“软件工程”的一些概念-软件、软件质量、生命周期、软件基线、软件配置项软件:是程序及开发、使用、维护程序所需的文档(软件=程序+文档) 。软件质量:与软件产品满足需求所规定的和隐含的能力有关的特征和特性的全体。生命周期:从软件定义、开发、使用、维护到淘汰的全过程。软件基线:已经通过了正式复审的规格说明或中间产品,可以作为进一步开发的基础,并且只有通过正式的变化控制过程才能改变它。基线就是通
5、过了正式复审的软件配置项。软件配置项:是软件过程的输出信息计算机程序(源代码和可执行程序) ;描述计算机程序的文档(供技术人员或用户使用) ;数据(程序内或程序外) 。这些项组成了软件过程中产生的全部信息。6、 简述面向对象软件开发方法(OMT)面向对象分析的一般工作过程。面向对象的开发方法基本思想:对问题领域自然分割,以接近人的思维建立模型,对客观信息实体进行结构和行为模拟,使设计的软件更直接地表现问题的求解过程。以对性作为最基本元素,也是分析和解决问题的核心。面向对象方法由面向对象分析(OOA) 、面向对象设计(OOD) 、面向对象程序设计(OOP)组成。 面向对象=对象+类+继承+消息参
6、考 三, 3二、结构化软件工程方法1、 什么是当前系统?当前系统的物理模型与逻辑模型有什么差别?当前系统:已在运行的现行系统。物理模型是通过对现行系统调查收集其工作过程等资料后,以图形方式来描述,反映出分析者对现行系统的理解,客观反映现行系统的结构与行为。物理模型反映了系统的具体实现过程,抽取模型的本质因素(即系统固有的、不依赖运行环境变化而变化,且任何系统实现过程都受其影响)后,形成现行系统的逻辑模型。物理模型表达的是数据在系统各部件之间流动的情况,描述过程中涉及到的是系统的物理部件;而逻辑模型是描绘数据在软件中流动和被处理的逻辑过程,不涉及到任何具体的物理部件。2、 可行性研究主要研究哪些
7、问题?可行性研究要分析集中主要的可能解法利弊,判断原定系统规模和目标是否实现,根据将来效益判断是否值得投资开发。主要以下方面:1 技术可行性:风险分析,资源分析,技术分析。2 经济可行性:成本/效益分析。3 操作可行性:可操作性。4 调度可行性:能否按期交付。5 法律可行性:是否合法。3、 DFD 的作用是什么?它有哪些成分?数据流图是结构化分析法中用于表示系统逻辑模型的工具。以图形的方式描绘数据在系统中流动和处理的过程。反映目标系统的逻辑功能,是一种功能模型。成分:源点或终点,处理,数据存储,数据流。用途:作为交流信息工具;分析和设计工具;辅助物理系统设计;利于更详细的设计。分析员与用户之间
8、的交流工具;开发小组之间的接口工具;数据库设计的依据。4、 DFD 的作用是什么?它有哪些基本词条?数据字典是关于数据星系的集合,对数据流图中包含的所有元素的定义集合。作用:在软件分析和设计过程中给人提供关于数据的描述信息。 (DFD+DD=逻辑模型)基本词条:一般信息(名字,别名,描述)定义(数据类型,长度,结构)使用特点(值范围,条件值,使用频率,使用方式输入,输出,本地)控制信息(来源,用户,使用它的程序,改变权,使用权)分组信息(父结构,从属结构,物理位置记录,文件,数据库)组成元素:数据流,数据元素(数据流分量) ,数据存储,处理。5、 叙述结构化方法需求分析模型(三图一表) 。数据
9、模型:实体-联系图,描绘数据及对象之间的关系;功能模型:数据流图,描绘当数据在软件系统中移动时背变换的逻辑过程,指明系统具有的变换数据功能;行为模型:状态转换图,指明了作为外部事件结果的系统行为,描绘了系统的各种行为模式和在不同状态间转换的方式。数据字典是三种分析模型的粘合剂,是分析模型的核心。6、 良好的软件设计应遵守哪些原则?1 模块化原理使软件结构清晰,便于阅读理解和管理,提高软件可修改性。2 事物本质抽象使设计者能够说明过程和数据,忽略低层细节。3 逐步求精推迟对细节问题考虑,逐步揭示出低层细节。4 信息隐藏和局部化修改期间的错误很少可能传播到其他部分。5 模块独立分工合作,易于测试维
10、护。7、 如何理解模块独立性?衡量模块独立性的指标有哪些?模块独立是模块化,抽象,信息隐藏和局部化概念的直接结果。指系统中每个模块具有独立的功能,模块之间无过多的相互作用。可以并行开发减少错误的影响,使模块容易组合,修改和测试。两个定性标准度量:耦合性描述模块之间联系的紧密程度;内聚性描述模块内部联系的精密程度。8、 模块的独立性与信息隐藏有何关系?模块独立性:软件系统中每个模块只涉及软件要求的具体子功能,和其他模块接口简单。信息隐藏:每个模块的实现细节对于其他模块是隐蔽的。模块中所含信息不允许其他不需要这些信息的模块使用。如果软件系统做到了信息隐蔽,即定义和实施了对模块的过程细节和局部数据结
11、构的存取限制,那么这些模块间接口是简单的,模块的独立性就比较强。衡量模块独立性的一个准则是模块内聚,达到信息隐蔽的模块是信息内聚模块,它是搞内聚情形,模块独立性自然很强。9、 谈谈你对总体设计与详细设计的理解。从工程管理角度来看,软件设计分为两步:总体设计和详细设计。总体设计将软件需求转化为数据结构和软件系统结构。用比较抽象概括的方式确定系统如何完成预定任务,确定系统的物理配置方案,并确定组成系统的每个程序结构。两个小阶段:首先,系统设计从数据流图出发设想完成系统功能的若干种物理方案,选择最佳。然后,软件结构设计确定软件模块组成及之间动态调用关系,常用层次图和结构图。详细设计通过对结构表示的细
12、化,得到软件的详细数据结构和算法。目标:保证软件可靠性,使将来编写出的程序可读性好,容易理解,测试,修改和维护。结构程序设计技术是详细设计的逻辑基础。10、 简述用于软件架构设计(总体设计)的面向数据流的设计方法。面向数据流的设计方法=结构化设计方法(SD)基于数据流的设计方法。目标:给出设计软件结构的一个系统化途径。用数据流图来描绘信息在系统中被加工和流动的情况。该法定义了一些映射,把数据流图映射成软件结构。两种分析方法:变换分析经过一系列设计步骤把具有变换流特点的数据流图按预先确定的模式映射成软件结构。事务分析对于有明显事务特征(即能找到一个书屋和一个事务中心) ,分析数据流图,自顶向下,
13、逐步分解,建立系统结构图。设计过程:精化数据流图;确定数据流图类型并进行映射;分解上层模块,设计中下层模块结构;优化准则对软件结构求精;描述模块功能,接口及全局数据结构;复查,准备详细设计。11、 简述结构化方法的软件设计模型。详细设计描述工具:传统程序流程图,结构化流程图(N-S 图) ,问题分析图(PAD 图) ,PDL 语言等。Jackson 程序设计方法利用 Jackson 图描述数据结构和程序结构。优点:自顶向下分解,便于表示层次结构;形象直观可读性好;既能表示数据结构,也能表示程序结构。步骤:1 确定输入输出数据的逻辑结构;2 找出输入输出数据结构中对应关系的数据单元;3 从数据结
14、构 Jackson 图导出程序结构 Jackson 图;4 列出所有操作和条件,分配到程序结构图的适当位置;5 伪代码表示程序。12、 结构化方法项目开发计划,需求分析说明书,总体设计和详细设计说明书包括的主要内容。项目开发计划1引言 1.1 编写目的(读者对象,该文档目的) 1.2 项目背景 (委托单位,与其他系统关系)1.3 定义 (所用专门术语,缩写词解释) 1.4 参考资料2 任务概述 2.1 工作内容(可行性研究报告,功能性能)2.2 条件与限制(完成时限,已具应具条件)2.3 产品 2.3.1 程序(名,语言,存储) 2.3.2 交付文档2.4 运行环境(硬件,软件)2.5 服务(
15、维护,培训,保修,升级) 2.6 验收标准3 实施计划3.1 任务分解 3.2 进度 3.3 预算 3.4 关键问题(难点,风险及对策)4 人员组织分工5 交付期限需求说明书1引言 (同上)2任务概述 2.1 目标 2.2 运行环境 2.3 条件与限制3数据描述 3.1 静态数据 3.2 动态数据(输入,输出) 3.3 数据库描述(名字,类型)3.4 数据流图(DFD)+数据字典(DD) 3.5 数据采集4功能需求4.1 功能划分 4.2 功能描述5性能需求5.1 数据精确度 5.2 时间特性(响应时间,更新处理,数据转换与传输)5.3 适应性(操作方式,环境要求,接口,变化的适应)6运行需求
16、6.1 用户界面(屏幕,菜单,输入输出时间) 6.2 硬件接口 6.3 软件接口 6.4 故障处理7其他需求(安全,保密,可维护,可移植,可使用)总体设计说明书1 引言 (同上)2 任务概述 2.1 目标 2.2 运行环境 2.3 需求概述 2.4 条件与限制3总体设计3.1 处理流程(系统流程图,系统层次结构图)3.2 总体结构和模块外部设计 3.3 功能分配(各功能与程序结构关系)4接口设计4.1 外部接口(用户界面,软硬件接口) 4.2 内部接口(模块间)5数据结构设计5.1 逻辑结构设计 (E-R 图) 5.2 物理结构设计(数据库)5.3 数据结构与程序设计6运行设计6.1 运行模块组合 6.2 运行控制 6.3 运行时间7出错处理设计7.1 出错输出信息 7.2 对策(设置后备,性能,降级,重启恢复)8安