2021 福师网院
《软件工程》2020年期终考试卷A
( 参考答案见顶部)
1.软件需求剖析阶段的工作,可以分为以下4个方面:对问题的辨识、分析与综合、编写需求剖析文档以及( )。
A.总结 B.阶段性报告
C.需求分析评审 D.以上答案都不正确
2.在结构化剖析方式中,用以抒发系统内数据的运动情况的工具有( )。
A.数据流图 B.数据辞典
C.结构化英文 D.判定表与判定树
3.软件需求剖析的任务不应包括( )。
A.问题剖析 B.信息域剖析
C.结构化程序设计 D.确定逻辑模型
4.进行需求剖析可使用多种工具,但( )是不适用的。
A.数据流图 B.判定表 C.PAD图D.数据辞典
5.在需求剖析中,分析员要从用户那儿解决的最重要的问题是( )。
A.要让软件做哪些
B.要给该软件提供什么信息
C.要求软件工作效率怎么
D.要让软件具有什么样的结构
6.需求尺寸说明书的内容不应该包括( )。
A.对重要功能的描述
B.对算法的详尽过程性描述
C.软件确认准则
D.软件的性能
7.需求尺寸说明书在软件开发中具有重要的作用,但其作用不应该包括( )。
A.软件设计的根据
B.用户和开发人员对软件要“做哪些”的共同理解
C.软件初验的根据
D.软件可行性剖析的根据
8.在结构化剖析方式中用状态―迁移图抒发系统或对象的行为。在状态―迁移图中,由一个状态和一个风波所决定的下一状态可能会有( )个。
A.1个 B.2个 C.多个D.不确定
二、多项选择题(共20分)
1.(1分)在结构化剖析方式中用实体—关系图抒发系统中的对象及其关系。在实体―关系图中,表达对象的实例之间的关联有三种类型:(BCD)。
A.多对一联系 B.一对一联系
C.一对多联系 D.多对多联系
2.(3分)软件是计算机系统中与硬件相互依存的另一部分,它是包括( A②)、(B⑦)及( C⑤)的完整集合。其中,( A )是按事先设计的功能和性能要求执行的指令序列。( B )是使程序才能正确操纵信息的数据结构。( C )是与程序开发、维护和使用有关的图文材料。
供选择的答案:
A~C:① 软件② 程序③ 代码④ 硬件
⑤ 文档⑥ 外设⑦ 数据⑧ 图表
3.(4分)开发软件时对提升软件开发人员工作效率至关重要的是(A①)。软件工程中描述生存周期的大瀑布模型通常包括计划、( B①)、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成( C③)和(D⑥)两步。
供选择的答案:
A.① 程序开发环境② 操作系统的资源管理功能
③ 程序人员数目④ 计算机的并行处理能力
B.① 需求剖析② 需求调查
③ 可行性分析 ④ 问题定义
C、D. ① 方案设计② 代码设计③ 概要设计
④ 数据设计⑤ 运行设计⑥ 详细设计
⑦ 故障处理设计⑧ 软件体系结构设计
4.(7分)从供选择的答案中选出适当字句填入下述关于软件发展过程的表述中的( )内。
有人将软件的发展过程界定为4个阶段:
第一阶段(1950~20世纪50年代末)称为“程序设计的原始时期”,这时既没有( A①),也没有( B④),程序员只能用机器指令编撰程序。
第二阶段(20世纪50年代末~20世纪60年代末)称为“基本软件期”。出现了( A ),并渐渐普及。随着( B )的发展,编译技术也有较大的发展。
第三阶段(20世纪60年代末~20世纪70年代中期)称为“程序设计方式时代”。这一时期,与硬件费用上涨相反,软件开发费大幅上升。人们提出了( C⑤)和( D⑧)等程序设计方式,设法减少软件的开发费用。
第四阶段(20世纪70年代中期~现在)称为“软件工程时期”。软件开发技术不再仅仅是程序设计技术,而是包括了与软件开发的各个阶段,如( E⑤)、( F④)、编码、单元测试、综合测试、( G①)及其整体有关的各类管理技术。
供选择的答案:
A~D:① 汇编语言② 操作系统③ 虚拟存储器概念
④ 高级语言⑤ 结构式程序设计⑥ 数据库概念
⑦ 固件⑧ 模块化程序设计
E~G:① 使用和维护② 兼容性的确认③ 完整性的确认
④ 设计⑤ 需求定义⑥ 图象处理
5.(5分)原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于( ①A)系统。它从用户界面的开发入手,首先产生( ②C),用户( ③D),并就( ④A)提出意见,它是一种( ⑤A)型的设计过程。
① A.需求不确定性高的 B.需求确定的
C.管理信息 D.决策支持
② A.用户界面使用指南 B.用户界面需求剖析说明书
C.系统界面原型 D.完善的用户界面
③ A.改进用户界面的设计 B.阅读文档资料
C.模拟用户界面的运行 D.运行用户界面原型
④ A.同意哪些和不同意哪些
B.使用和不使用哪一种编程语言
C.程序的结构
D.执行速率是否满足要求
⑤ A.自内向内 B.自顶向下
C.自外向外 D.自底向下
三、简答题(27分)
(1分)可行性研究的应从哪几个方面进行研究?(1分)可行性研究的目的是哪些?(1分)可行性研究报告的目的是哪些?(1分)项目计划书的目的是哪些?(2分)画出图书馆的借阅的系统流图。(2分)软件工程过程有哪几个基本过程活动?试说明之。(2分)在软件需求剖析时,首先构建当前系统的数学模型,再依照化学模型构建当前系统的逻辑模型。试问:什么是当前系统?当前系统的数学模型与逻辑模型有哪些差异?(4分)试阐述大瀑布模型软件开发方式的基本过程。(4分)软件需求剖析是软件工程过程中交换意见最频繁的步骤。为什么交换意见的途径会常常阻塞?(4分)数据流图的作用是哪些?它有什么基本成分?(5分)数据辞典的作用是哪些?它有什么基本词条?
四、论述题(32分)
1. (6分)试说明“软件生存周期”的概念。
2. (6分)软件工程是开发、运行、维护和修补软件的系统化方式,它包含什么要素?试说明之。
3. (6分)软件工程学的基本原则有什么?试说明之。
4. (6分)你觉得一个系统分析员的理想训练和基础知识是哪些?请说明理由。
5. (8分)软件需求剖析说明书主要包括什么内容?
五、分析题(13分)
1.(6分)考务处理系统的分层数据流图如下图所示。
该考务处理系统有如下功能:
①对考生送来的报名表进行检测;
②对合格的报名表编好准考证号码后将准考证献给考生,并将汇总后的考生名单献给阅卷站;
③对阅卷站送来的成绩表进行检测,并依照考试中心指定的合格标准审定合格者;
④填写考生通知单(内容包含考试成绩及合格∕不合格标志),送给考生;
⑤按地区、年龄、文化程度、职业、考试级别等进行成绩分类统计及试卷难度剖析,产生统计剖析表。
(1)图(c)中,加工1.1的输入数据流是( A ),输出数据流是( B ),图 (b) 中 ,加工2的输出数据流是( C ) ,它是由( D )和( E )组成。
供选择的答案:
A~E:① 统计分析表 ② 报名表 ③ 准考证
④ 考生通知单 ⑤ 合格报名表 ⑥ 难度分析表
⑦ 错误成绩表 ⑧ 分类统计表
(2) 图(d)中的文件“试题得分表”是否在图(b)中漏掉了? 回答是( F )。
供选择的答案:
F: ① “试题得分表”没有在图(b)中画出,是错误的。
② “试题得分表”是图(b)中加工的内部文件,不必在图(b)中画出。
③ “试题得分表”是多余的。
2.(7分)阅读下述关于开发人事管理系统的交互式工作方式的表述,再回答问题。
某大企业近来决定采用高性能微机开发人事管理系统,将4台联机终端分放在人事处的3个科室。该系统可供操作员和程序员使用,也可供人事处负责人和主管人事的副厂长等查询人事信息用。人事管理系统通过录入人事数据和更改、删除等操作,产生和更新各种人事文件,通过搜索那些文件进行各种人事信息的查询。
该企业有3000多个工人 、干部和技术人员 ,大体可分成机关科室、生产车间、后勤服务和开发研发部门等几类部门。厂领导决定由计算机应用科来负责协调和开发应用系统。计算机应用科主任指示系统工程师张某负责进行系统分析。
考虑到人事处有大量的查询信息要求、频繁的人事信息更改和文件存档、查阅等特性,计算机应用科决定认真设计人机交互界面,首先设计好在终端上的交互式会话的形式。
系统工程师张某通过调查搜集到如下10条意见:
(1) 某程序员觉得:系统在屏幕格式、编码等方面应具有一致性和清晰性,否则会影响操作人员的工作效率。
(2) 某操作人员觉得:在交互式会话过程中,操作人员可能会忘掉或记错个别事情,系统应该提供HELP功能。
(3) 某操作人员觉得:既然是交互式会话,那么对所有的输入都应该做出响应,不应出现击键后计算机没有任何反应的情况。
(4) 某操作人员觉得:在出错的时侯,交互式会话系统应该给出出错信息,并且尽可能告诉我们出错的性质和错在哪些地方。
(5) 某程序员觉得:终端会话也应该符合程序员编制程序时的习惯,这样可以更高效地维护人事管理系统。
(6) 教育科党员甲觉得:应当对操作员进行一些必要的培训,让她们把握交互式会话系统的设计方法,有助于提升系统的使用效率。
(7) 教育科党员乙觉得:尽管操作人员的指法早已强化训练但在交互式会话时应尽可能减短和降低操作员输入的信息,以减少出错机率。
(8) 某程序员觉得:由于本企业中有很多较大的文件,文件的查找很费时间,交互式会话系统在响应时间较长时应给与使用者以提示信息。
(9) 人事处党员丙觉得:我们企业的人事资料相当复杂,格式十分之多,希望交互式系统使用非常清晰的格式,并容易对输入数据中的错误进行更改。
(10)人事处党员丁觉得:人事管理系统应该具有相当的保密性和数据安全性 ,因此在屏幕上显示出的信息应当含糊一些 ,以免泄露。
系统工程师张某对上述调查情况和其他要求作了剖析后,发现搜集到的10条意见中有3条意见是不能接受的 ,写出编号并各用40字以内字数表述理由。
参考答案(仅供学习参考):
一、单项选择题(每小题1分,共8分)
CACCA BDC
二、多项选择题(共20分)
1.BCD
2.A②、B⑦、C⑤
3.A①、B①、C③、D⑥
4.A①、B④、C⑤、D⑧、E⑤、F④、G①
5.①A、②C、③D、④A、⑤A
三、简答题(27分)
1.解:(1)技bai术可行性du,其研究目的是判定新的系统在当前技术条件下能够实现,或某种新技术能够获得。
(2)组织可行性,它是研究所建议的系统能够成功地实现。
(3)时间可行性,研究新系统能够在规定的时间内开发完成。
(4)经济可行性,研究开发的成本和效益,判断系统运行得到的效益是否能低于系统开发的成本,以及能够在规定的时间内收zhi开发的成本。
2.解:用最小的代价在尽可能短的时间内,确定问题是否就能解决,从而确定问题是否值得去解决。
3.解:提醒用户和使用部门仔细审查,从而决定该项目是否进行开发,是否接受可行的实现方案。
4.解:项目生命周期内的所有项目活动的行动基础、项目团队举办和检测项目工作的根据。
5.解:
6.解:软件工程过程的基本过程活动有4步:
·P(Plan):软件尺寸说明。规定软件的功能及其运行的限制;
·D(Do):软件开发。产生满足尺寸说明的软件;
·C(Check):软件确认。确认软件才能完成顾客提出的要求;
·A(Action):软件演变。为满足顾客的变更要求,软件必须在使用的过程中演化。
7.解:所谓当前系统可能是须要改进的某个已在计算机上运行的数据处理系统,也可能是一个人工的数据处理过程。当前系统的数学模型客观地反映当前系统实际的工作情况。但在数学模型中有许多数学的诱因,随着剖析工作的深入,有些非本质的数学诱因就成为不必要的负担,因而须要对化学模型进行剖析,区分出本质的和非本质的诱因,去掉这些非本质的诱因即可获得反映系统本质的逻辑模型。所以当前系统的逻辑模型是从当前系统的数学模型具象下来的。
8.解:瀑布模型规定了各项软件工程活动,包括:制定软件项目计划,进行需求剖析和定义,软件设计,程序编码,测试及运行维护。并且规定了她们自上而下,相互衔接的固定顺序,如同大瀑布流水,逐级下落。然而软件开发的实践表明,上述各项活动之间并非完全是自上而下,呈现性场域。实际情况是,每项开发活动均应具有以下特点:
(1)从上一项活动接受本项活动的工作对象,作为输入;
(2)利用这一输入施行本项活动应完成的内容;
(3)给出本项活动的工作成果,作为输出传给下一项活动;
(4)对本项活动施行的工作进行评审。若其工作得到确认,则继续进行下一项活动,否则返回前项,甚至更前项的活动进行返工。
9.解:软件需求剖析过程中,由于最初分析员对要解决的问题了解甚少,用户对问题的描述、对目标软件的要求也很零乱、模糊,再加上分析员和用户共同的知识领域不多,导致相互间通讯的需求。但是因为分析员和用户之间须要通讯的内容相当多,业务知识上的不足,表达形式的不足,可能对个别需求存在错误解释或误会的可能性,造成需求的模糊性。另外,用户和分析员之间常常存在无意识的“我们和她们”的界限,不是按工作须要组成统一的精干的队伍,而是各自定义自己的“版图”,并通过一系列备忘录、正式的意见书、文档,以及提问和回答来互相通讯。历史早已证明,这样会形成大量误读。忽略重要信息,无法构建成功的工作关系
10.解:数据流图的作用是描述数据在系统中怎样被传送和变换,以及描述怎样对数据流进行变换的功能;成份:加工;数据输入的源点或数据输出的汇点;数据流;数据储存文件。
(2)有外部实体、数据流、处理过程、数据储存
11.解:数据辞典的作用是精确、严格地定义了每位与系统相关的数据元素,并以字典式次序将它们组织上去,使得用户和分析员对所有的输入、输出、存储成分和中间估算有共同的理解。基本词条有:数据流、数据流份量、数据储存和处理。
四、论述题(32分)
1. (6分)试说明“软件生存周期”的概念。
解:软件生存周期(Software life cycle)又称为软件生命期,生存期。是指从产生开发软件概念起,所开发的软件使用之后,知道丧失使用价值衰落为止的整个过程。一般来说,整个生存周期包括计划(定义)、开发、运行(维护)三个时期测试完自动告诉你脑年龄的软件,每个时期又界定为若干个阶段。每个阶段有明晰的任务。
生命周期阶段:软件计划与可行性分析、需求分析、软件设计、编码、软件测试、运行与维护
2. (6分)软件工程是开发、运行、维护和修补软件的系统化方式,它包含什么要素?试说明之。
解:软件工程包括三个要素:方法、工具和过程。软件工程方法为软件开发提供了"如何做"的技术;软件工具为软件工程方法提供了手动的或半自动的软件支撑环境;软件工程的过程则是将软件工程的方式和工具综合上去以达到合理、及时地进行计算机软件开发的木的。
3. (6分)软件工程学的基本原则有什么?试说明之。
解:
抽象:抽取事物最基本的特点和行为,忽略非基本的细节。采用分层次具象,自顶向下、逐层细化的方式控制软件开发过程的复杂性。
信息隐蔽:将模块设计成“黑箱”,实现的细节隐藏在模块内部,不让模块的使用者直接访问。这就是信息封装,使用与实现分离的原则。使用者智能通过模块插口访问模块中封装的数据。
模块化:模块是程序中逻辑上相对独立的部份,是独立的编程单位,应有良好的插口定义。如C语言程序中的函数过程,C++语言中的类。模块化有助于信息隐蔽和具象,有助于表示复杂的系统。
4. (6分)你觉得一个系统分析员的理想训练和基础知识是哪些?请说明理由。
解:系统分析员处在用bai户和高du级程序员之间,负责沟zhi通用户和开发人员的认识和dao见
解, 起着桥梁的作zhuan用。一方面要协助shu用户对所开发的软件阐述要求, 另一方面还要与高级程
序员交换意见, 探讨用户所提要求的合理性以及实现的可能性。最后还要负责编撰软件需求
规格说明和初步的用户指南。
为此要能胜任上述任务, 分析员应该具备如下的素养:
(1 ) 能够熟练地把握计算机硬、软件的专业知识, 具有一定的系统开发经验。
(2 ) 善于进行具象的思维和创造性的思维, 善于掌握具象的概念, 并把它们重新整理成
为各类逻辑成份, 并给出简明、清晰的描述。
(3 ) 善于从互相冲突或混淆的原始资料中抽出恰当的条目来。
(4 ) 善于进行调查研究, 能够很快学习用户的专业领域知识, 理解用户的环境条件。
(5 ) 能够聆听别人的意见, 注意发挥其他人员的作用。
(6 ) 具有良好的书面和口头交流抒发能力。
5. (8分)软件需求剖析说明书主要包括什么内容?
解:包含如下:
1 前言
1.1 目的
1.2 范围
1.3 定义、缩写词、略语
1.4 参考资料
2 软件项目概述
2.1 软件产品描述
2.2 软件产品功能概述
2.3 用户特征
2.4 一般约束
2.5 假设和根据
3 具体需求
3.1 功能需求
3.2 外部插口需求
3.3 性能需求
3.4 设计约束
3.5 属性
3.6 其他需求
3.6.1 数据库
3.6.2 操作
3.6.3 场合适应性
使用面向对象的剖析方式得到的软件需求说明书内容如下:
(1) 引言
(2) 信息描述
(3) 类、对象、类图、对象图、用例概览
(4) 功能描述及用例模型
(5) 行为描述及对象行为模型
(6) 质量保证
(7) 接口描述
(8) 其他描述
五、分析题(13分)
1.解:A②、B⑤、C①、D⑥、E⑧、F②
2.解:不能接受的3条意见是(5)、(6)、(10)。
(5)终端会话不需要符合程序员编制程序时的习惯,人机交互界面首先考虑的是用户怎样使用上去便捷。
(6)人机交互界面首先考虑的是用户怎样使用上去便捷,与编程习惯、设计方法无关。
(10)屏幕上显示出的信息含糊一些是不对的,屏幕上信息应很清晰易懂,安全保密与屏幕显示无关。
PS:在线考评题目+参考答案,若有错误请联系或留言提醒,一起学习和分享你我他测试完自动告诉你脑年龄的软件,谢谢你!