1、软件工程导学材料软件工程导学材料一.单项选择题.软件需求分析一般应确定的是用户对软件的()。A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求1 .数据字典是对数据定义信息的集合,它所定义的对象都包含于()。A.数据流图B.程序框图C.软件结构D.方框图2 .结构化分析方法是一种预先严格定义需求的方法,它在实施时强调的是分析对象的 ()oA.控制流B.数据流C.程序流D.指令流.具有风险分析的软件生命周期模型是()。A.瀑布模型B.喷泉模型C.螺旋模型D.增量模型3 . “软件危机”是指()。A.计算机病毒的出现B.利用计算机进行经济犯罪活动C.软件开发和维护中出现的一系列问题D.
2、人们过分迷恋计算机系统4 .需求分析中开发人员要从用户那里了解()。A.软件做什么B.用户使用界面C.输入的信息D.软件的规模5 .过程设计的工作是确定软件各个组成局部内()。A.算法以及数据结构.外部接口C.功能D.编程8.面向对象方法是将现实世界的事物以对象的方式()到计算机世界的方法。A.对应 B.映射 C.反映 D.反射软件工程导学材料A. 2个1个C.多个D. 3个12 .结构化程序设计主要强调程序的()。A.效率B.速度C.可读性D.大小13 .注释是提高程序可读性的有效手段,好的程序注释占到程序总量的()。A. 1/61/5B. 1/41/314 .在发现错误后,排错应由()完成
3、。A.测试者B.高级程序员C.用户D.软件的开发者15 .进行单元测试时,需要一个()被测模块的程序。A.传递B.管理C.调用D.驱动* *1*; ,卜卜 ,卜.、*T* ,、.卜.;、,卜.;、. 1. ,卜卜、卜、*Jw -、,; 卜,R ;、1 .具有风险分析的软件生命周期模型是()。A.瀑布模型B.喷泉模型C.螺旋模型D.增量模型2 .软件工程的基本要素包括方法、工具和()。A.过程B.软件系统C.硬件环境D.人员3 .软件的复杂性是(),它引起人员通信困难、开发费用超支、开发时间超时等问题。A.固有的B.人为的C.可消除的D.不可降低的10软件工程导学材料.在结构化分析方法中,()表
4、达系统内部数据运动的图形化技术。A.数据字典B.实体关系图C.数据流图D.状态转换图4 . “软件危机”是指()。A.计算机病毒的出现B.利用计算机进行经济犯罪活动C.软件开发和维护中出现的一系列问题D.人们过分迷恋计算机系统5 .随着软硬件环境变化而修改软件的过程是()。A.校正性维护B.适应性维护C.完善性维护D.预防性维护6 .需求分析中开发人员要从用户那里了解()。A.软件做什么.用户使用界面C.输入的信息D.软件的规模8 .软件详细设计的主要任务是确定每个模块的()。A.算法和使用的数据结构B.外部接口C.功能D.编程9 .为了提高模块的独立性,模块内部最好是()。A.逻辑内聚B.时
5、间内聚C.外部耦合、功能内聚D.通信内聚10 . 一个模块的。太大一般是因为缺乏中间层次,应当适当增加中间层次的控制模块。A.深度B.宽度C.扇出D.扇入11 .模块的内聚性最高的是()。A.逻辑内聚B.时间内聚C.偶然内聚D.功能内聚12 .需求分析是()oA.软件开发工作的基础B.软件生存周期的开始C.由系统分析员单独完成的11软件工程导学材料D.由用户自己单独完成的.在白盒测试技术测试用例的设计中,()是最强的覆盖标准。A.语句覆盖B.路径覆盖C.条件组合覆盖D.判定覆盖13 .软件维护时,对测试阶段未发现的错误进行测试、诊断、定位、纠错,直至修改的回 归测试过程称为()。A.改正性维护
6、B.适应性维护C.完善性维护D.预防性维护14 .()是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是 隐蔽的,外界只能通过有限的接口与对象发生联系。A.多态性B.继承C.封装D.消息15 .对象实现了数据和操作的结合,使数据和操作()于对象的统一体中。A.结合B.隐藏C.封装D.抽象16 .面向对象的开发方法中,()将是面向对象技术领域内占主导地位的标准建模语言。A. Booch 方法Coad方法B. UML语言OMT方法18 .()意味着一个操作在不同的类中可以有不同的实现方式。A.多态性B.多继承C.类的可复用D.信息隐藏19 .单元测试的测试用例主要根据()的结果
7、来设计。A.需求分析B.源程序C.概要设计D.详细设计20 .软件测试是为了 ()而执行程序的过程。A.纠正错误B.发现错误C.防止错误D.证明正确12软件工程导学材料21 .类构件的重用方式有多态重用、继承重用和()。A.实例重用B.重载重用C.代码重用D.方法重用22 .支持面向对象技术的软件生存周期模型是()。A.喷泉模型B.螺旋模型C.增量模型D.瀑布模型23 .在白盒测试技术测试用例的设计中,()是最弱的覆盖标准。A.语句覆盖B.路径覆盖C.条件组合覆盖D.判定覆盖rTw T* T* T* *T*ri* T* *T* 彳、1 T* T*rTw T* .、*ywT* T* *T*.瀑布
8、模型把软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求分析、 系统总体设计、详细设计、编码、测试和运行、维护。八个阶段又可归纳为三个大的阶段: 计划阶段、开发阶段和(C)。A.详细计划B.可行性分析C.运行阶段D.测试与排错1 .在结构化的瀑布模型中,哪一个阶段定义的标准将成为软件测试年勺系统测试阶段的 目标(A)oA.需求分析阶段B.详细设计阶段C.概要设计阶段D.可行性研究阶段.软件工程的出现主要是由于(C)。A.程序设计方法学的影响B.其它工程科学的影响C.软件危机的出现D.计算机的开展2 .软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实旅的 主要保证
9、是(C)。A.硬件环境B.软件开发的环境C.软件开发工具和软件开发的环境D.开发人员的素质5 .软件开发常使用的两种基本方法是结构化和原型化方法,在实际的应用中,它们之间 的关系表现为(B)。A.相互排斥13软件工程导学材料B.相互补充C.独立使用D.交替使用6 . UML是软件开发中的一个重要工具,它主要应用于哪种软件开发方法(C)。A.基于瀑布模型的结构化方法B.基于需求动态定义的原型化方法C.基于对象的面向对象的方法D.基于数据的数据流开发方法7 .在下面的软件开发方法中,哪一个对软件设计和开发人员的开发要求最高(B)。A.结构化方法.原型化方法C.面向对象的方法D.控制流方法8 .结构
10、化分析方法是一个预先严格定义需求的方法,它在实施时强调的是分析对象的 (B)oA.控制流B.数据流C.程序流D.指令流.软件开发的结构化生命周期方法将软件生命周期划分成(A)。A.计划阶段,开发阶段,运行阶段B.计划阶段,编程阶段,测试阶段C.总体设计,详细设计.编程调试D.需求分析,功能定义,系统设计10.软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码和测试等阶段,一 般认为可能占用人员最多的阶段是(C)。A.分析阶段B.设计阶段C.编码阶段D.测试阶段11.适合于面向对象方法学的软件生存周期模型是(B)oA.瀑布模型B.喷泉模型C.螺旋模型D.增量模型12.从结构化的瀑布模型
11、看,在它的生命周期中的八个阶段中,下面的儿个选项中哪个环 节出错,对软件的影响最大的是(C)。A.详细设计阶段B.概要设计阶段C.需求分析阶段D.测试和运行阶段13 .从实用角度看,数据规范化在大多数场合选用第(C)范式。A. 1214软件工程导学材料3B. 5.可行性分析研究的目的是(A)。A.工程值得开发否B.争取工程C.开发工程D.功能内聚14 .模块的内聚性最高的是(D)。A.逻辑内聚B.时间内聚C.偶然内聚D.功能内聚15 .开发软件所需高本钱和产品的低质量之间有着尖锐的矛盾,这种现象称(B)。A.软件工程B.软件危机C.软件周期D.软件产生16 .需求分析阶段的任务是确定(D)。A
12、.软件开发方法B.软件开发工具C.软件开发费D.软件系统的功能18.完整的软件结构通常用(B)图来表示。A. IPO图B. HIPO 图C. PAD 图D. DFD图19 .在白盒法技术测试用例的设计中(A)是最弱的覆盖标准。A.语句B.路径C.条件组合D.判定20 .软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为(A)。A.瀑布模型B.对象模型C.螺旋模型D.层次模型概述 软件需求软件设计面向对象15软件工程导学材料软件测试二.判断概述 .据统计,软件维护人员为了分析和理解原软件系统所花费的工作量约占整个维护工作 量的60%以下。(F)1 .按照功能,软部件可划分为系统软件和应
13、用软件两类。(T).软件在使用过程中维护不十分复杂。(F)2 .软件也会磨损和老化。(F).完善性维护是提高或完善软件的性能。(T)3 . 一般人为,软件开发阶段是由设计、编码和测试三个基本活动组成。(F).软件概要设计包括软件系统结构设计以及数据结构和数据库设计。(F)4 .软件是指用程序设计语言(如Pascal, C, VisualBasic等)编写的程序,软件开发实际 上就是编写程序代码。(F). PowerDesigner是 一 个CASE工具。(T)5 .人机界面(Human-Computerlnterface,简称HCI)又称人-机接口或用户界面。(T).随着软件复杂性的不断提高,
14、软件的维护难度越来越大。(T)6 .软件的可维护性差是软件维护工作量和费用激增的直接原因。(T).软件危机完全是由于硬件问题引起的。(F)7 .为了加强软件维护作业的进度,应尽可能增加维护人员的数目。(F)软件需求1 .在用户需求分析时观察用户手工操作过程不是为了模拟手工操作过程,而是为了获取 第一手资料,并从中提取出有价值的需求。(T).快速原型技术适用于软件产品要求大量的用户交互、或产生大量的可视输出、或设计 一些复杂的算法等场合。(T)2 .数据流图中各构成元素的名称不一定必须具有明确的含义以代表对应元素的内容或功 能(F).如果某子功能可以用一段简洁、精确的文字描述清楚,就无需进一步分
15、解,是创立用 户需求的数据流模型应遵循的规那么。(T)3 .用户对软件需求的描述不精确,往往是产生软件危机的原因之一。(T).数据字典是对数据流图中的数据流,处理过程、数据存储、数据的源和终点进行详细 定义。(T)4 .可行性研究进一步研究问题分析阶段所确定的问题是否有可行的解。(T).验证软件需求的方法主要靠人工审查的方法。(T)5 .在进行概要设计时应加强模块间联系。(F).在进行需求分析时需同时考虑维护问题。(F)16软件工程导学材料.软件设计也可看作将需求规格说明逐步转换为软件源代码的过程。(T)6 .快速原型模型可以有效地适应用户需求的动态变化。(T)软件设计1 .目前的绝大多数软件
16、都不适合于快速原型技术。(F).快速原型模型可以有效地适应用户需求的动态变化。(T)2 .软件可重用性(reusability),是指软部件可以在多种场合使用的程度。(T).文档可用于专业人员和用户之间的通信和交流;软件开发过程的管理;运行阶段的维护。(T).软件开发、设计几乎都是从头开始,本钱和进度很难估计。(T)3 .适应性维护是改进软件未来的可维护性和可靠性。(F).由于软件是逻辑产品,软件质量较容易直接度量。(F)4 . V (G)值越高的程序往往是越不复杂、越不容易出问题的程序。(F).目前我国还没有公布软件开发标准。(F)5 .开发大型软件易产生疏漏和错误,往往是产生软件危机的原因
17、之一。(T).目前,软件工程的进度安排的两种比拟常用的方法是程序评估与审查技术(PERT)和 关键路径法(CPM)。(T)6 . 一个好的开发人员应具备的素质和能力包括善于与周围人员团结协作,建立良好的人 际关系,善于听取别人的意见。(T).缺乏处理大型软件工程的经验。是产生软件危机的唯一原因。(F)7 .缺乏有力的方法学的指导和有效的开发工具的支持,这往往是产生软件危机的原因之一。 (T). 一个好的开发人员应具备的素质和能力不包括具有良好的书面和口头表达能力。(F)8 .为了提高程序的易读性,尽可能使用高级语言或4GL编写程序。(T).软件工程学只有理论意义,没有实际用途。(F)9 .软件
18、工程的方法只适用于大型软件的开发,对小型软件的开发没有帮助。(F).耦合度是对软件结构中模块间关联程度的一种度量。在设计软件时应追求尽可能紧密 的耦合的系统。(F)10 .在面向对象设计阶段那么着重完成“如何做”的问题,也就是着重考虑对象的实现细节。(T) 11.流程图也称为程序(框图)是最常用的一种表示法。(T)11 .面向数据设计方法一般都包括以下任务:确定数据结构特征;用顺序、选择和重复三种 基本形式表示数据等步骤。(T).面向数据的设计方法适用场合是具有明显的层次信息结构的应用如:企事业的信息管理系统;系统软件(如操作系统)等(T).编码时应尽可能使用全局变量(F)12 .重视程序结构
19、的设计,能使程序具有较好的层次结构(T).程序中的注解越少越好(F)o13 .通常紧致性好的语言一致性就好。(F).以对象、类、继承和通信为基础的面向对象设计方法(OOD)也是常见的软件概要设 计方法之一。(T)14 .理想的人机界面应针对具有典型个性的特定的一类用户设计。(T).数据输入的一般准那么中包括尽量(增加)用户输入的动作。(F)17软件工程导学材料15 .编程中应采用统一的标准和约定,降低程序的复杂性。(T).在同一用户界面中,所有的菜单项选择择、命令输入、数据显示和其他功能应采用不同的 形式和风格。(F)16 .为提高可交互性一般对大多数操作动作应允许用户恢复。同时应尽量减少用户
20、记忆的 信息量。(T).并发系统中遇到的一个主要问题是定时问题。(T)17 .编码风格由个人喜好决定,没有固定格式。(F).软件重用是提高软件开发生产率和目标系统质量的重要途径。(T)面向对象.面向对象建模得到的模型包含系统的3个要素,即静态结构、交互次序和数据变换。 (T)1 . UML是一种面向对象的分析设计方法,即OOA/OOD方法。(F).在面向对象的软件开发方法中,每个类都存在其相应的对象,对象是类的实例,类是 生成对象的模板。(T)2 .系统结构图是精确表达程序结构的图形表示法。因此,有时也可以将系统结构图当作 系统流程图使用。(F).最高耦合度是数据耦合。(F)3 .模块化,信息
21、隐藏,抽象和逐步求精的软件设计原那么有助于得到高内聚,低耦合度的 软件产品。(T)7,模块化,信息隐藏,抽象和逐步求精的软件设计原那么有助于得到高内聚,低耦合度的 软件产品。(T)8 .统一的建模语言,是一种软件工程设计语言。(F).模块化使程序设计比拟方便,但比拟难以维护。(F)9 . 一个模块实际上就是一个进程。(F).过程描述语言可以用于描述软件的系统结构。(F)10 .编程语言应该在软件概要设计时选择。(F)软件测试1 .如果通过软件测试没有发现错误,那么说明软件是正确的。(F).代码审查方法没有计算机测试方法好。(F)2 .判定覆盖不一定包含条件覆盖,条件覆盖也不一定包含判定覆盖。(
22、T).判定覆盖必然满足语句覆盖”(T)3 .确认测试计划应该在可行性研究阶段制定。(F).用穷举测试是较现实的测试方法。(F)4 .测试计划、测试用例、出错统计和有关的分析报告一般不用长期保存。(F).数据输入的一般准那么中包括保证信息显示方式与数据输入方式的协调一致;允许用户 定做输入格式等内容。(T)18软件工程导学材料5 .如果通过软件测试没有发现错误,那么说明软件是正确的。(F).用黑盒法测试时,测试用例是根据程序内部逻辑设计的。(F)6 .集成测试主要由用户来完成。(F).在程序调试时,找出错误的位置和性质比改正该错误更难。(T)三.名词解释概述 1 .基线参考答案:已经通过正式复审
23、和批准的某规约或产品,它因此可以作为进一步开发的基础, 并且只能遵循正式的变化控制过程得到改变。2 .软件配置管理参考答案:软件配置管理,简称SCM,它用于整个软件工程过程。其主要目标是:标识 变更、控制变更、确保变更正确地实现、报告有关变更。SCM是一组管理整个软件生存 期各阶段中变更的活动。3 .软件配置项参考答案:软件配置项是软件工程中产生的信息项,它是配置管理的基本单位,对已成为 基线的SCL虽然可以修改,但必须按照一个特殊的正确的过程进行评估,确认每一处的 修改。4 .软件工程参考答案:指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来 开发与维护软件,把经过时间
24、考验而证明正确的管理技术和当前能够得到的最好的技术方法 结合起来,这就是软件工程。5 .模块参考答案:模块在程序中是数据说明、可执行语句等程序对象的集合,或者是单独命名 和编址的元素,如高级语言中的过程、函数和子程序等。在软件的体系结构中,模块是可 组合、分解和更换的单元。软件需求.事务流参考答案:数据沿输入通路到达一个处理,这个处理根据输入数据的类型在假设干个动作序 列中选出一个来执行。这类数据流应该划分为一类特殊的数据流,称为事务流。1 .社会可行性参考答案:要开发的工程是否存在任何侵犯、阻碍等责任问题,要开发工程目的运行方式 在用户组织内是否行得通,现有管理制度、人员素质、操作方式是否可
25、行。2 .结构化分析参考答案:面向数据流进行需求分析的方法,旨在减少分析活动中的错误,建立满足用户 需求的系统逻辑模型。3 .数据流图参考答案:数据流图是以图形方式来表达数据处理系统中信息的变换和传递过程。4 .系统流程图19软件工程导学材料9.盒图也称为(),这种表达方式取消了流程线,它强迫程序员以结构化方式思考和解决 问题。A.流程图B.框图C.判定表D. N-S 图10 .在白盒测试技术测试用例的设计中,()是最强的覆盖标准。A.语句覆盖B.路径覆盖C.条件组合覆盖D.判定覆盖11 .()是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是 隐蔽的,外界只能通过有限的接
26、口与对象发生联系。A.多态性B.继承C.封装D.消息12.面向对象的开发方法中,()将是面向对象技术领域内占主导地位的标准建模 语言。A. Booch方法B. Coad方法UML语言C. OMT方法.软件测试是为了 ()而执行程序的过程。A.纠正错误B.发现错误C.防止错误D.证明正确13 .支持面向对象技术的软件生存周期模型是()。A.喷泉模型B.螺旋模型C.增量模型D.瀑布模型14 .在白盒测试技术测试用例的设计中,()是最弱的覆盖标准。A.语句覆盖B.路径覆盖C.条件组合覆盖D.判定覆盖15 .面向对象分析是对系统进行()的一种方法。A.需求分析B.程序设计C.设计评审D.测试验收16
27、.在以下测试技术中,()不属于黑盒测试技术。A.等价划分软件工程导学材料参考答案:是描绘物理系统的传统工具,它用图形符号来表示系统中的各个元素,例如 人工处理、数据处理、数据库、文件、设备等。它表达了系统中各个元素之间的信息流动 的情况。软件设计.事务流参考答案:数据沿输入通路到达一个处理,这个处理根据输入数据的类型在假设干个动作序 列中选出一个来执行。这类数据流应该划分为一类特殊的数据流,称为事务流。1 .软件结构图参考答案:软件结构图也称模块结构图,又称程序结构图,是采用结构化设计方法进行软 件概要设计的重要描述手段。2 .详细设计参考答案:也称过程设计,是在概要设计的基础上,设计出软件各
28、模块内部的详细算法,并 精确地表。3 .结构化设计参考答案:面向数据流的设计是以需求分析阶段产生的数据流图为基础,按一定的步骤 映射成软件结构,因此又称结构化设计。面向对象.多态性参考答案:指相同的操作或函数、过程可作用于多种类型的对象上并获得不同结果。或 (不同的对象,收到同一消息可以产生不同的结果。).活动图参考答案:活动图通过提供特定的场景内交流的图形化表示来补充用例。在某个处理环境 中,活动图可以描述存在的并且已经被定义为需求导出任务一局部的活动或功能。1 .耦合性参考答案:耦合性是对一个软件结构内不同模块之间互连程度的度量。2 .类图参考答案:一个分析类及其对象经常参与多个用例实现,
29、而一个具体类的某些职责、属性 及关联只与一个用例实现相关。3 .瀑布模型参考答案:将软件生存周期各个活动规定为依线性顺序连接的假设干阶段的一种软件开发模 型。它包括可行性分析、工程开发计划、需求分析、概要设计、详细设计、编码、测试和 维护。4 .父图与子图的平衡参考答案:建立分层的数据流图时,子图的输入输出数据流同父图相应加工的输入输出数据流必须保持一致,这就是父图与子图的平衡。5 .对象模型参考答案:对象模型表示了静态的、结构化的系统数据性质,描述了系统的静态结构,它 是从客观世界实体的对象关系角度来描述,表现了对象的相互关系。软件测试.黑盒测试参考答案:黑盒测试指把测试对象看成一个黑盒子,
30、测试人员完全不考虑程序的内部结20软件工程导学材料构和处理过程,只在软件的接口处进行测试,依据需求规格说明书,检查程序是否满足功 能要求,又称为功能测试或数据驱动测试。1 .白盒测试参考答案:白盒测试指把测试对象看成一个翻开的盒子,测试人员需了解程序的内部结构 和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内 部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。2 .语句覆盖参考答案:语句覆盖指设计足够的测试用例,使被测程序中每个语句至少执行一次。3 .判定覆盖参考答案:判定覆盖指设计足够的测试用例,使被测程序中每个判定表达式至少获得一次 “真”
31、值或“假”值,从而使程序的每个分支至少都通过一次,因此判定覆盖又称分支覆至 rm o.条件覆盖参考答案:条件覆盖指设计足够测试用例,使判定表达式中每个条件的各种可能的值至少 出现一次。4 .判定/条件覆盖参考答案:判定/条件覆盖指设计足够的测试用例,使得判定表达式中每个条件的所有可能取值至少出现一次,并使每个判定表达式所有可能的结果也至少出现一次。5 .条件组合覆盖参考答案:条件组合覆盖指设计足够的测试用例,使得每个判定表达式中条件的各种可能 的值的组合都至少出现一次。6 .路径覆盖参考答案:路径覆盖指设计足够的测试用例,覆盖被测程序中所有可能的路径。7 .测试用例参考答案:测试用例指为寻找程
32、序中的错误而精心设计的一组测试数据。四.解答题(简答题)概述 1 .简述什么是软件危机?为什么会产生软件危机?参考答案:软件危机是指软件在开发和维护过程中遇到的一系统严重问题,主要包含二方 面的问题,一是如何开发利用软件,二是如何维护数量不断膨胀的已有软件。产生软件危机 的原因,一方面与软件本身的特点有关,另一方面和软件开发与维护的方法不正确有关。2 .简述瀑布模型的优点和缺点。参考答案:瀑布模型的优点是:(1)可强迫开发人员采用规范化的方法(2)严格地规定了每个阶段必须提交的文档。(3)要求每个阶段交出的所有产品都必须是经过验证(评审)的。瀑布模型的缺点是:(1)由于瀑布模型儿乎完全依赖于书
33、面的规格说明,很可能导致最终开发出的软件产品 不能真正满足用户的需要。如果需求规格说明与用户需求之间有差异,就会发生这种情况。(2)瀑布模型只适用于工程开始时需求已确定的情况。21软件工程导学材料3 .简述目前国内软件开发在实现(编码)环节普遍采用面向对象的开发工具或语言,简 述几种(至少三种)目前常用的软件实现(编码)工具或语言,说明这些工具的主要应用 领域。参考答案:如c# (C/B/S结构软件),JAVA (B/S结构软件),C+ (系统软件),DEPHI (开发C/S结构软件)、PB (开发C/S结构下基于数据库的软件)。软件需求.简述原型化方法主要用于解决什么问题?试说明这种方法的主
34、要优缺点。参考答案:建立原型的主要原因是为了解决在产品开发的早期阶段需求不确定的问题,用 户、经理和其他非技术工程风险承当者发现在确定和开发产品时,原型可以使他们的想象更 具体化。原型在软件开发过程中可以起到以下主要作用:(1)明确并完善需求原型作为一种需求工具,它初步实现所理解的系统的一局部。用户 对原型的评价可以指出需求中的许多问题,在你开发真正产品之前,可以最低的费用来解 决这些问题。(2)探索设计选择方案原型作为一种设计工具,用它可以探索不同的用户界面技术,使 系统到达最正确的可用性,并且可以评价可能的技术方案。(3)开展为最终的产品原型作为一种构造工具,是产品最初子集的完整功能实现,
35、通过 一系列小规模的开发循环,你可以完成整个产品的开发。1 .简述统一过程的6个核心过程工作流是什么。参考答案:统一过程中有6个核心过程工作流,即业务建模、需求、分析与设计、实现、测 试和部署。1)业务建模工作流。用业务用例为业务过程建立模型。2)需求工作流。描述系统应该做什么,确保开发人员构建正确的系统。为此,需明确系统 的功能需求和非功能需求(约束)。3)分析与设计工作流。分析和细化需求,并建立分析模型和设计模型。4)实现工作流。用选择的实现语言实现目标系统。以分层的方式组织代码的结构,用构件 的形式来实现类,对构件进行单元测试,将构件集成到可执行的系统中。5)测试工作流。执行集成测试,验
36、证对象之间的交互,是否所有的构件都集成了,是否表 示正确实现了所有需求,查错并改正。6)部署工作流。制作软件的外部版本,软件打包、分发,为用户提供帮助和支持。2 .简述需求分析工作可以分成咖四个方面?软件需求分析的有哪三个基本原那么? 参考答案:需求分析阶段分成四个方面:对问题的识别、分析与综合、制定规格说明和评 审。三个基本原那么:必须能够表达和理解问题的数据域和功能域;必须按自顶向下、逐步 分解的方式对问题进行分解和不断细化;要给出系统的逻辑视图和物理视图。2.简述变换型映射方法的步骤。4 .简述基于数据流方法的设计过程。参考答案:(1)复查并精化数据流图。对需求分析阶段得出的数据流图认真
37、复查,并在必要时进 行精化。不仅要确保数据流图给出了目标系统正确的逻辑模型,而且应该使数据流图中每22软件工程导学材料个处理都代表一个规模适中、相对独立的子功能。(2)确定数据流图中数据流的的数据流类型有变换型数据流事务型数据流数据流类型决 定了映射的方法。(3)导出初始的软件结构图:根据数据流类型,应用变换型映射方法或事务型映射方法 得到初始的软件结构图。(4)逐级分解:对软件结构图进行逐级分解,一般要进行一级分解和二级分解,如果需 要,也可以进行更多级的分解。(5)精化软件结构:使用设计度量和启发式规那么对得到的软件结构进一步精化。参考答案 (1)重画数据流图;(2)区分有效(逻辑)输入、
38、有效(逻辑)输出和中心变换局部; (3)进行一级分解,设计上层模块;(4)进行二级分解,设计输入、输出和中心变换部 分的中、下层模块。(6)导出接口描述和全局数据结构:对每一个模块,给出进出该模块的信息,即该模块 的接口描述。止匕外,还需要对所使用的全局数据结构给出描述。5 .简述软件需求分析阶段的四个步骤,并作简要分析。参考答案:(1)需求获取:通过启发、引导,从客户(或用户)那里得到的原始需求(2)需求分析:需求分析人员在这一步骤中认真地研究获取的需求,为此必须考虑完整性、正确性、充分性、合理性、可行性,且获取的每项需求必须具有:技术可行性:在现有条件和环境下技术实现是不存在问题的。经济可
39、行性:设计和实现不会超出预算范围。如果为实现此功能需外购工具或设备就必须 认真考虑这一点。社会可行性:不会涉及知识产权的侵权问题,这包括工程的实施既不会对其他组织构成侵 权,也不会使本组织的知识产权受到侵害。(3)需求定义:编写软件需求规格说明,作为软件开发的依据,必须将已经过分析的需求清晰、全面、系统、准确地描述成正式的文档。(4)需求验证:为了确保已定义的需求准确无误,并能为客户(或用户)理解和接受,需要 对其进行严格的评审。该评审一定要有客户(或用户)参加,并且充分听取他们的意见。软件 设计 .简述耦合性有哪几种类型,其耦合度的顺序如何。参考答案:低:非直接耦合一数据耦合-标记耦合一控制
40、耦合一外部耦合-公共耦合一 内容耦合:高.简述数据对象之间的关系类型,并举例说明。参考答案:从关联数量的角度,可以将实例的关联分为3种:(1)一对一(1:1)关联,如学校中的系和系主任、大学和大学校长。(2) 一对多(1: m)关联,如学生班和班干部,一个学生班可以有多名班干部。(3)多对多(m: m)关联,如学生和课程,一个学生可以选多门课程,一门课程由多名学 生选。实例关联还有“必须”和“可选”之分,如大学和校长之间的关系是“必须”的,一所大学 必须有一名校长;学生和课程之间的关系是“可选”的,如在一个学期里有的课程可能没有 学生选,而个别的学生可能由于特殊原因没有选任何课程。3.简述什么
41、是内聚?模块的内聚包括哪些类型。参考答案:内聚标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部23软件工程导学材料化概念的自然扩展。模块的内聚包括以下几种类型:低内聚一偶然内聚,逻辑内聚,时间 内聚,中内聚一过程内聚,通信内聚,高内聚一顺序内聚,功能内聚。4 .简述什么是耦合?模块的耦合包括哪些类型。参考答案:耦合是对一个软件结构内不同模块之间互连程度的度量。模块的耦合包括以下儿种类型:数据耦合,控制耦合,特征耦合,公共环境耦合,内容耦 合,标记耦合,无耦合/非直接耦合。5 .简述软件设计的过程。参考答案:软件设计是把许多事物和问题抽象起来,并且抽象它们不同层次和角度,是将需 求
42、转变为软件陈述的过程,是迭代的过程。软件设计,要根据需求规格说明书,对整个设计 过程进行计划,然后实施具体的设计过程,即“先整体,再局部”,也是不断迭代和精化的 过程。然后需要对生成的设计规格说明书进行评审,启动质量评价的标准,假设未通过评审, 需重新修改设计,直至评审通过,确定最后定型的过程本身。进入后续阶段,完成软件设计 过程。面向对象.简述在面向对象设计中,类、关联关系以及继承关系进行映射时的规那么。参考答案:(1) 一个普通的可以映射为一个表或多个表,当分解为多个表时,可以采用横切相竖切 的方法。(2)关联关系的映射。分为以下3种:1 ) 一对一关联的映射:对于一对一关联,可以在两个表
43、中都引入外键这样两个表之间可 以进行双向导航。也可以根据具体情况,将类组合成一张单独的表。2)对多关联的映射:可以将关联中的“一”端毫无变化地映射到一张表,将关联中表示 “多”的端上的类映射到带有外键的另一张表,使外键满足关系引用的完整性。3)多对多关联的映射:为了表示多对多关联,关系模型必须引入一个关联表将两个类之 间的多对多关联转换成表上的两个一对多关联。(3)继承关系的映射工通常使用以下两种方法来映射继承关系:1)将基类映射到一张表,每个子类映射到一张表。在基类对应的表中定义主键,而在子 类定义的表中定义外键。2)将每个子类映射到一张表,没有基类表,在每个子类的表中包括基类的所有属性,这
44、 种方法适用于子类的个数不多,基类属性比拟少的情况。2 .简述常用的优化对象设计模型的三种方法。参考答案:增加冗余关联以提高访问效率:利用冗余关联构成效率最高的访问路径。调整 查询次序:优化算法,尽量缩小查找范围。保存派生属性:有些数据可以通过某种运算从其 他数据计算出来,可以把这类冗余数据作为派生属性保存起来防止使用时重新计算,从而可 以提高计算的时间效率。3 .简述面向对象分析需要建立的三个模型。参考答案:面向对象分析模型由3种独立的模型构成:由用例和场景表示的功能模型(用例 模型);类和对象表示的静态模型(对象模型);由状态图、顺序图等表示的动态模型(交互模 型)。4 .简述对于复杂的系
45、统,其对象模型应该由哪五个层次组成以及相对应的五项主要活动。 参考答案:5个层次组成:主题层、类-对象层、结构层、属性层、服务层; 5项主要活动:划分主题、确定类与对象、确定结构、确定属性、确定服务。24软件工程导学材料软件测试1 .简述什么是黑盒测试法。参考答案:黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程,它只 检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据,产 生正确地输出信息。2 .简述软件测试的步骤是什么?这些测试与软件开发各阶段之间的关系。参考答案:(1)软件测试的步骤如下图。(2)简述测试与软件开发各阶段之间的关系如下图。因为系
46、统测试已经超出了软件工 程的范围,所以系统测试不包括在图内。3 .简述软件测试的过程是什么。参考答案:软件测试是一个规那么的过程,包括测试设计、测试执行以及测试结果比拟等。(1)测试设计:根据软件开发各阶段的文档资料和程序的内部结构,利用各种设计测试 用例技术精心设计测试用例。(2)测试执行:利用这些测试用例执行程序,得到测试结果。(3)测试结果比拟:将预期的结果与实际测试结果进行比拟,如果二者不符合,对于出 现的错误进行纠错,并修改相应文档。修改后的程序还要进行再次测试,直到满意为止。如 果测试发现不了错误,可能由于测试配置考虑不周到,应考虑重新制定测试方案,设计测试用 例。4 .简述为什么说软件测试是软件开发中不可缺少的重要一环,但不是软件质量保证的安 全网。参考答案:(1)软件测试是软件开发中不可缺少的重要一环,原因是:测试的工作量约占 整个工程开发工作量的40%左右,几乎一半。如果是关系到人的生命平安的软件,测试的 工作量还要成倍增加。软件测试代表了需求分析、设计、编码的最终复审。(2)软件测试不是软件质量保证的平安网,因为软件测试只能发现错误,不能保证没有 错误。5 .简述软件测试的目的是什么?为什么把软件测试的目的定义为只是发现错误。参考答案:软件测试的目的有:(1)软件