上海大学软件工程试卷试题(附答案)
软件工程期末考试参考题及答案

软件工程期末考试参考题及答案1. 考试题目:软件需求工程考试要求:根据给定的需求文档,完成以下题目。
题目一:根据给定的需求文档,设计一个在线购物系统。
请根据以下要求完成系统设计:(1)使用UML类图绘制系统的类结构;(2)使用UML时序图描述用户登录和浏览商品的流程;(3)使用UML活动图描述用户下订单的流程。
答案:(1)类图如下所示:[在这里插入UML类图图片](2)时序图如下所示:[在这里插入UML时序图图片](3)活动图如下所示:[在这里插入UML活动图图片]题目二:根据给定的需求文档,设计一个在线学习系统。
请根据以下要求完成系统设计:(1)使用UML用例图描述系统的功能需求;(2)使用UML活动图描述学生完成在线学习的流程;(3)使用UML状态图描述学生的学习状态变化。
答案:(1)用例图如下所示:[在这里插入UML用例图图片](2)活动图如下所示:[在这里插入UML活动图图片](3)状态图如下所示:[在这里插入UML状态图图片]2. 考试题目:软件设计模式考试要求:根据给定的题目,选择并解答以下问题。
题目一:分析以下代码,判断其使用了哪种设计模式,并阐述该设计模式的作用和优势。
```javapublic interface Car {void drive();}public class Sedan implements Car {@Overridepublic void drive() {System.out.println("Driving a sedan car."); }}public class SUV implements Car {@Overridepublic void drive() {System.out.println("Driving an SUV car."); }}public class CarFactory {public Car createCar(String type) {if (type.equals("sedan")) {return new Sedan();} else if (type.equals("suv")) {return new SUV();} else {throw new IllegalArgumentException("Invalid car type: " + type);}}}```答案:该代码使用了工厂模式。
软件工程考试题(含答案)

软件工程考试题简答题1、什么叫软件?软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合2、什么叫软件危机?软件危机包含哪两点?软件危机产生的原因是什么?软件危机是指在计算机软件开发与维护过程中所遇到的一系列严重问题。
包括两点:(1)如何开发软件,以满足对软件日益增长的需求;(2)如何维护数量不断膨胀的已有软件。
软件开发和维护过程中存在的许多严重问题,一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。
具体表现如下:(1)软件是逻辑部件而不是物理部件。
(2)软件的规模越来越大,复杂性越来越大。
(3)轻视需求分析的重要性,轻视软件维护的错误观点和方法。
3、什么叫软件工程?1968年在第一届NATO会议上的早期定义:“建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法”。
1993年IEEE的定义:“①软件工程是:把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②进而研究①实现的途径”。
我们国家最近定义:软件工程是指导计算机软件开发和维护的工程学科。
它采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
4、两种软件工程方法学开发软件时要建立哪些模型?软件工程方法学包括:传统方法学和面向对象方法学。
常用的开发模型有:瀑布模型(需求稳定,而且可以预先指定)原型模型(需求模糊或者随时间变化)增量模型(分析员先作出需求分析和概要设计,用户参与逐步完善)螺旋模型(将瀑布模型与原型化模型结合起来,并加入了风险分析)喷泉模型(使开发过程具有迭代性和无间隙性)5、软件过程模型有哪些?简述它们的特点。
过程模型分为五大类:1.管理过程模型。
2.瀑布模型(又称为生命周期模型)。
3.增量过程模型:包括增量模型,,RAD模型。
4.烟花过程模型:包括原型开发模型,螺旋模型,协同开发模型。
上海大学软件工程试卷试题(附答案)

、单项选择题(本大题共20小题,每小题 1 分,共20分)在每小题列出的备选项中只有一个是符合题目要求的,多选或未选均无分。
请将其代码填写在题后的括号内。
错选、1. 在软件生命周期的各个阶段中,工作量最大的阶段是A .需求分析B.总体设计C.综合测试 D .软件维护2. 瀑布模型的特点不包括A.前一阶段的任务没有完成,不能进入下一阶段工作B.进入某个阶段工作后,不再回复到之前的阶段工作C.只有完成并评审了规定的文档,才标志着一个阶段的工作结束D.在软件产生之前,需求无法得到充分的测试3. 螺旋模型强调的开发手段是A.分阶段开发C.风险驱动开发4. 需求分析阶段的工作不包括A.获得当前系统的物理模型C.建立目标系统的逻辑模型5. 总体设计阶段的工作不包括A.确定程序的模块组成C.确定实现各个模块功能的处理逻辑6. 描绘系统物理模型的传统工具是A .系统流程图C.实体-联系图7. 符合信息隐藏原理的是A .将信息隐藏起来不被发现C.将可能要修改的设计决策隐藏起来B.废弃式原型开发D.增量式开发B.抽象出当前系统的逻辑模型建立目标系统的物理模型D.B.确定模块间的相互关系D.制定测试计划B.数据流图D.状态转换图B.将信息隐藏起来确保安全D.将不要修改的设计决策隐藏起来8. 模块的独立性原则是指软件设计时要尽量使模块具有A .低内聚、低耦合B.低内聚、高耦合C.高内聚、低耦合D.高内聚、高耦合[ 9. 有利于提高模块独立性的做法是A.尽量使模块具有逻辑型内聚B.尽量使模块间具有内容型耦合C.使判定作用范围内的模块尽量成为该判定所在模块的直属下级模块D.尽量提高模块的扇入数和扇出数[ 10. 有关结构化设计(SD )方法的正确叙述是]A.只使用顺序、选择和循环 3 种控制结构B.由数据结构映射出软件的结构C.是一种面向对象的设计方法D.是一种面向数据流的设计方法[ 11. 有关总体设计阶段所使用的结构图的不正确叙述是]A.能够描述软件系统的模块组成B.结构图中的模块是按照自上而下、自左向右的顺序执行的C.能够描述模块间的调用关系以及模块间调用时所传递的信息D.将模块间调用时所传递的信息分成两种:数据信息和控制信息[ 12. 要求使用顺序、选择和循环控制结构的组合或嵌套来表达程序的过程设计工具是A .程序流程图B.盒图C .判定表D.PDL13.关于好的编码风格的正确叙述是A.把多个语句写在同一行以节省空间B.要求用户指定输入数据的数目C .检查输入项重要组合的合法性D.表达式中不使用多余的括号,以简化表达式14.能发现软件需求规格说明书中的错误的测试步骤是A.模块测试B.子系统测试C .系统测试D.验收测试15.自顶向下集成测试和自底向上集成测试都具有的优点是A.较早发现主要设计错误B.可采用深度优先策略和宽度优先策略C .支持故障隔离D.可复用模块得到充分测试19.不符合面向对象设计准则的是A.用对象的封装性来实现信息隐藏B.尽可能松散对象之间的交互耦合C .尽可能减小继承耦合度D.尽可能设计小而简单的类20. 上海大学校内电话号码由 5 位数字组成,但第 1 位数字只能是 5 或6。
软件工程试卷(附答案)

软件工程试卷(附答案)1.软件生命周期模型有多种,其中不属于软件生命周期模型的是(C)功能模型。
2.下列说法错误的是(C)瀑布模型和增量模型都属于整体开发模型。
3.可行性分析中,系统流程图用于描述(A)当前运行系统。
4.研究软硬件资源的有效性是进行(A)技术可行性研究的一方面。
5.数据字典中,一般不包括下列选项中的(D)源点与终点条目。
6.SA方法的分析步骤是首先调查了解当前系统的工作流程,然后(A)获得当前系统的物理模型,抽象出当前系统的逻辑模型,建立目标系统的逻辑模型。
7.通过(B)功能分解可以完成数据流图的细化。
8.对软件进行分解,是为了(C)降低模块的复杂程度,并降低模块间接口的复杂程度。
9.为了提高模块的独立性,模块内部最好是(C)功能内聚。
10.在软件结构设计完成后,对于下列说法,正确的是(C)一个模块的扇出太多,说明该模块过分复杂,缺少中间层。
11.在软件开发过程中,以下说法正确的是(B)N-S图不可能任意转移控制,符合结构化原则。
A.软件开发过程是线性的B.软件开发过程是迭代的C.软件开发过程是风险驱动的D.软件开发过程是需求驱动的3、软件需求分析的主要任务是(ABC)。
A.确定用户需求B.建立系统模型C.规定系统功能D.编写程序代码4、以下属于软件设计阶段的活动是(BCD)。
A.编写用户手册B.确定模块划分C.设计系统结构D.选择数据结构和算法5、软件测试的主要目的是(ABD)。
A.发现软件缺陷B.提高软件质量C.证明软件正确性D.评估软件可靠性6、软件维护的主要种类有(ABC)。
A.纠错性维护B.适应性维护C.完善性维护D.重构性维护7、以下属于软件过程改进的方法是(ACD)。
A.引入新的开发方法B.增加人员数量C.培训人员D.引入新的工具和技术8、以下属于软件质量特性的是(ABCD)。
A.可靠性B.可维护性C.可用性D.可重用性9、软件工程的基本原则包括(ABCD)。
A.逐步求精B.分阶段进行C.严格控制D.重视质量10、以下属于软件开发生命周期模型的是(ABCD)。
《软件工程》试卷参考答案

考试试卷课程名称:软件工程一、选择题1、软件是一种实体。
A.有形的C.虚拟的答案:D 2、在一个用面向对象编程语言实现的软件系统中,当一个对象内的一个方法被激活,则称之为向该对象发送-A.命令B.代码C.消息D.数据答案:C 3、在整个软件过程中,哪个阶段花费最长的时间和最多的成本?A.分析B.设计C.实现D.维护答案:D 4、是语义上相连的、由边界符号界定的、由一个聚合标识符标识的一系列程序语句。
A.for 循环B.模块C.if 语句D.文件答案:B 5、好的软件设计,模块应该是。
A.低内聚、高耦合B.低内聚、低耦合C.r¾内聚、低耦合D.高内聚、高耦合答案:C6、针对下面这个用例图,哪个说法是错误的?B.物理 D.逻辑A.学生能够与系统中的用例A交互。
B.用例A的成功执行必须包括用例B的成功执行。
C.如果用例A执行,用例C也必须执行。
D,用例C可能不被激活。
答案:C7、顺序图与协作图都是图。
A.交互B.状态C.协作D.顺序答案:C8、以下关于软件系统中的实体的说法,哪个是正确的?A.实体类必须有属性。
B.实体类必须是实实在在的物理实体。
C.实体类不与逻辑类和边界类打交道。
D,用例图中的参与者是系统的外部,所以参与者肯定不能成为软件系统内部的实体类。
答案:A9、以下哪个是自顶向下实现与集成的缺点?A.逻辑模块得不到充分的测试。
B.操作模块得不到充分的测试。
C.主要设计错误发现的晚。
D.故障隔离。
答案:B10、软件测试oA.谁都能做,不需要计划和技术B.对于高水平的软件开发团队来说是不需要的,或可有可无的C.是紧接在实现阶段后面的一个阶段D.包括可执行测试和非执行测试答案:D11、使软件系统适应新的操作系统而做的维护是维护。
A.纠错性维护B.完善性维护C.适应性维护D.哪个也不是答案:C128、以下哪个软件生命周期模型是最好的?A.瀑布模型B.快速原型模型C,增量模型D.不能简单地比较优劣,要具体情况具体分析答案:D13、多态与动态绑定是所特有的。
软件工程试卷(附答案)

一、单项选择题(每题2分,共40分)1。
软件生存周期模型有多钟,下列选项中,(C)不是软件生存周期模型。
A.螺旋模型B.增量模型C。
功能模型D。
瀑布模型2.以下说法错误的是(C)。
A.增量模型是在瀑布模型的基础上加以修改而形成的B。
增量模型推迟某些阶段或所有阶段中的细节,从而较早地产生工作软件C。
瀑布模型和增量模型都属于整体开发模型D。
瀑布模型规定在开始下一个阶段的工作之前,必须完成前一阶段的所有细节3.可行性分析中,系统流程图用于描述(A)。
A。
当前运行系统B。
当前逻辑模型C。
目标系统D。
新系统4.研究软硬件资源的有效性是进行(A)研究的一方面.A。
技术可行性B.经济可行性C。
社会可行性D.操作可行性5、数据字典中,一般不包括下列选项中的(D)条目.A。
数据流B.数据存储C。
加工D。
源点与终点6、SA方法的分析步骤是首先调查了解当前系统的工作流程,然后(A)。
A。
获得当前系统的物理模型,抽象出当前系统的逻辑模型,建立目标系统的逻辑模型B.获得当前系统的物理模型,抽象出目标系统的逻辑模型,建立目标系统的物理模型C。
获得当前系统的逻辑模型,抽象出目标系统的物理模型,建立目标系统的逻辑模型D.获得当前系统的逻辑模型,抽象出目标系统的物理模型,建立目标系统的物理模型7、通过(B)可以完成数据流图的细化.A。
结构分析B。
功能分解C.数据分析D。
系统分解8、对软件进行分解,是为了(C)。
A。
降低模块的复杂程度B.降低模块间接口的复杂程度C.降低模块的复杂程度,并降低模块间接口的复杂程度D。
降低模块的复杂程度,并提高模块间接口的复杂程度9、为了提高模块的独立性,模块内部最好是(C)。
A。
逻辑内聚B.时间内聚C.功能内聚D。
通信内聚10、在软件结构设计完成后,对于下列说法,正确的是(C).A。
非单一功能模块的扇入数大比较好,说明本模块重用率高B.单一功能的模块扇入高时应重新分解,以消除控制耦合的情况C.一个模块的扇出太多,说明该模块过分复杂,缺少中间层D。
软件工程考试题(带答案)..

一、选择题1.软件开发瀑布模型中的软件定义时期各个阶段依次是:(B)A)可行性研究,问题定义,需求分析。
B)问题定义,可行性研究,需求分析。
C)可行性研究,需求分析,问题定义。
D)以上顺序都不对。
2.可行性研究主要从以下几个方面进行研究:(A)A)技术可行性,经济可行性,操作可行性。
B)技术可行性,经济可行性,系统可行性。
C)经济可行性,系统可行性,操作可行性。
D)经济可行性,系统可行性,时间可行性。
3 耦合是对软件不同模块之间互连程度的度量。
各种耦合按从强到弱排列如下:(C)A)内容耦合,控制耦合,数据耦合,公共环境耦合。
B)内容耦合,控制耦合,公共环境耦合,数据耦合。
C)内容耦合,公共环境耦合,控制耦合,数据耦合。
D)控制耦合,内容耦合,数据耦合,公共环境耦合。
4.在详细设计阶段所使用到的设计工具是:(A)A)程序流程图,PAD图,N-S图,HIPO图,判定表,判定树.B)数据流程图,Yourdon 图,程序流程图,PAD图,N-S图,HIPO图。
C)判定表,判定树,PDL,程序流程图,PAD图,N-S图。
D)判定表,判定树,数据流程图,系统流程图,程序流程图,层次图。
5 按照软件工程的原则,模块的作用域和模块的控制域之间的关系是:(A)A)模块的作用域应在模块的控制域之内。
B)模块的控制域应在模块的作用域之内。
C)模块的控制域与模块的作用域互相独立。
D)以上说法都不对。
6在软件生命周期中,能准确确定软件系统的体系结构的功能阶段是(C)A.概要设计B.详细设计C.需求分析D.可行性分析7下面不是软件工程的3个要素的是(C)A过程 B.方法 C.环境 D.工具8.下面不属于软件的组成的是(B)A程序 B.记录 C.文档 D.数据9在瀑布模型中,将软件分为若干个时期,软件项目的可行性研究一般归属于(C)A.维护时期B.运行时期C.定义时期D.开发时期10.在瀑布模型中,下面(C)是其突出的缺点。
(word版)软件工程考试题(含答案)

软件工程考试题简答题1、什么叫软件?软件是计算机系统中与硬件相互依存的另一局部,它是包括程序,数据及其相关文档的完整集合2、什么叫软件危机?软件危机包含哪两点?软件危机产生的原因是什么?软件危机是指在计算机软件开发与维护过程中所遇到的一系列严重问题。
包括两点:1〕如何开发软件,以满足对软件日益增长的需求;2〕如何维护数量不断膨胀的已有软件。
软件开发和维护过程中存在的许多严重问题,一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。
具体表现如下:1〕软件是逻辑部件而不是物理部件。
2〕软件的规模越来越大,复杂性越来越大。
3〕轻视需求分析的重要性,轻视软件维护的错误观点和方法。
3、什么叫软件工程?1968年在第一届NATO会议上的早期定义:“建立并使用完善的工程化原那么,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法〞。
1993年IEEE的定义:“①软件工程是:把系统的、标准的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②进而研究①实现的途径〞。
我们国家最近定义:软件工程是指导计算机软件开发和维护的工程学科。
它采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
4、两种软件工程方法学开发软件时要建立哪些模型?软件工程方法学包括:传统方法学和面向对象方法学。
常用的开发模型有:瀑布模型〔需求稳定,而且可以预先指定〕原型模型〔需求模糊或者随时间变化〕增量模型〔分析员先作出需求分析和概要设计,用户参与逐步完善〕螺旋模型〔将瀑布模型与原型化模型结合起来,并参加了风险分析〕喷泉模型〔使开发过程具有迭代性和无间隙性〕5、软件过程模型有哪些?简述它们的特点。
过程模型分为五大类: 1.管理过程模型。
2.瀑布模型〔又称为生命周期模型〕。
3.增量过程模型:包括增量模型,,RAD模型。
4.烟花过程模型:包括原型开发模型,螺旋模型,协同开发模型。