软考软件设计师必做练习题附答案
2024年上半年软件设计师试题

一、选择题1.在软件设计中,下列哪项不是模块化设计的主要目的?A.提高软件的可维护性。
(正确答案)B.增加软件的复杂性。
C.促进软件开发的并行性。
D.便于软件功能的重用。
2.关于软件测试,以下哪种测试方法主要关注软件内部结构和处理过程?A.黑盒测试。
B.白盒测试。
(正确答案)C.灰盒测试。
D.验收测试。
3.在面向对象编程中,下列哪项不是多态性的实现方式?A.通过接口实现。
(正确答案)B.通过继承实现。
C.通过方法重载实现。
D.通过方法重写实现。
4.下列哪项是软件生命周期中,位于需求分析之后的阶段?A.可行性研究。
B.总体设计。
(正确答案)C.问题定义。
D.软件维护。
5.在数据库设计中,下列哪项不是数据字典的内容?A.数据流。
B.数据存储。
(正确答案,但通常数据字典包含数据存储描述,此处为题目设定,实际应为数据流描述可能位于数据流程图等文档中)C.数据项。
D.数据结构。
6.关于软件配置管理,以下哪项不是其主要任务?A.版本控制。
B.变更控制。
(正确答案)C.状态报告。
D.软件发行。
7.在软件质量保证中,下列哪项不是常用的审查技术?A.代码走查。
B.静态分析。
C.动态测试。
(正确答案)D.同行评审。
8.关于UML(统一建模语言),以下哪种图用于描述系统的动态行为?A.类图。
B.用例图。
C.顺序图。
(正确答案)D.组件图。
计算机软考:软件设计师练习试题及答案解析(2)

计算机软考:软件设计师练习试题及答案解析(2) 21. 新软件项⽬与过去成功开发过的⼀个项⽬类似,但规模更⼤,此时⽐较适合使⽤ (25) 进⾏项⽬开发设计。
(25) A.原型法 B.变换模型 C.瀑布模型 D.螺旋模型 参考答案:(25)C。
解析:由于新项⽬与过去成功开发过的⼀个项⽬类似,已经有了成功的项⽬开发经验和积累的软件模块,因此,应尽可能将这些经验和软件模块应⽤到新项⽬中,即对于这个规模更⼤的软件项⽬应该使⽤瀑布模型进⾏开发。
22.在下列代码中,正确的C代码是(26) (26) A. #defineMYNAME="ABC" B. #includestring.h C. for(i=0;i<10;i++); D. structintstu{intname}; 参考答案:(26) C。
解析:A是关于宏定义的,在宏的定义形式中,宏名与字符列之间⾄少有⼀个空⽩符,并在宏名希望代表的字符序列之间也不能有任何⾮空格类字符,若有也被当作是字符序列的⼀部分。
有了宏定义,以后程序中若要有宏名后的字符序列就可简写成宏名。
选择①在宏名之后紧接字符=。
B是关于包含命令的,在上述包含命令的格式中,被包含⽂件应放在⼀对尖括号之间,或⼀对双引号之间,不可在⽂件名字符列的⾸末没有这种符号。
C是for语句,for语句的循环体可以⽤空语句,从语⾔的句法规则来说,该语句是正确的。
但通常循环是为了完成某种重复计算操作,单⼀地让⼀个变量循环增1到某个值,程序员是不会编写这种代码的。
D是想定义结构类型,定义结构时,struct后接结构类型名,不可在结构名之前插⼊某些其它类型符。
正确解答是C。
23.在下列代码中,正确的C代码是(27) (27)A. #definePI=3.14159 B. include"stdio.h" C. for(i=0,i<10,i++)a++; D. staticstruct{inti;}b={2}; 参考答案:D。
软件设计师模拟题及答案四十四套

软件设计师模拟题及答案四十四套1.下列网络协议不能通过路由器中的是( )。
A.TCPB.IPC.IPXbeui【答案】D2.以下那一个( )Windows 2000 的版本可以支持4 块CPU?A.Windows 2000 ServerB.Windows 2000 Advanced ServerC.Winodws 2000 Datacenter ServerD.以上皆可。
【答案】A3.下列哪一个选项不能解析主机名与IP地址( )。
A.hostsB.LmhostC.winsD.dhcp【答案】D4.在Win 2k系统中可以查看网卡的MAC地址的命令是( )。
use viewC.ipconfig/all help【答案】C5.下列各命令不能检测DNS 设置是否正确的是()。
A.pingB.tracertC.nslookup use【答案】D6.局部总线是解决I/O 瓶颈的一项技术。
下列说法哪个是正确的( )。
A.PCI 总线与ISA 总线进行了激烈的竞争,PCI取得明显优势B.PCI 总线与EISA总线进行了激烈的竞争,EISA 取得明显优势C.PCI 总线与VISA总线进行了激烈的竞争,VISA 取得明显优势D.PCI 总线与VISA总线进行了激烈的竞争,PCI 取得明显优势【答案】D7.广域网覆盖的地理范围从几十公里到几千公里。
它的通信子网主要使用( )。
A.报文交换技术B.分组交换技术C.文件交换技术D.电路交换技术【答案】B8.分辨率为640*480的真彩色图象,象素分辨率为24bit,如果以每秒25 帧动态显示,则需要的通信带宽是( )。
A.1.54MbpsB.2.048MbpsC.18.4MbpsD.184Mbps【答案】D9.以下关于城域网建设方案特点的描述中,那些是正确的( )。
1、主干传输介质采用光纤2、交换结点采用基于IP 交换的高速路由交换机或ATM 交换机3、采用ISO/OSI 七层结构模型4、采用核心交换层,业务汇聚层与接入层3 层模式A.1、2、4B.2、3C.1、3、4D.1、2、3【答案】A10.160.hfc 电缆调制解调器一般采用的调制方式为( )。
软件水平考试《软件设计师》历年真题及答案汇总

软件水平考试《软件设计师》历年真题及答案汇总软件水平考试《软件设计师》历年真题及答案(1)1.通常在软件的( )活动中无需用户参与。
A. 需求分析B. 维护C. 编码D. 测试参考答案:C2.( )详细描述软件的功能、性能和用户界面,以使用户了解如何使用软件。
A. 概要设计说明书B. 详细设计说明书计C. 用户手册D. 用户需求说明书参考答案:C3.下述任务中,不属于软件工程需求分析阶段的是( )。
A.分析软件系统的数据要求B.确定软件系统的功能需求C.确定软件系统的性能要求D.确定软件系统的运行平台参考答案:D4.在开发信息系统时,用于系统开发人员与项目管理人员沟通的主要文档是( )。
A. 系统开发合同B. 系统设计说明书C. 系统开发计划D. 系统测试报告参考答案:B5.系统测试人员与系统开发人员需要通过文档进行沟通,系统测试人员应根据一系列文档对系统进行测试,然后将工作结果撰写成( ),交给系统开发人员。
A. 系统开发合同B. 系统设计说明书C. 测试计划D. 系统测试报告参考答案:D6.常见的软件开发模型有瀑布模型、演化模型、螺旋模型、喷泉模型等。
其中( )模型适用于需求明确或很少变更的项目,( )模型主要用来描述面向对象的软件开发过程。
A.瀑布模型B.演化模型C.螺旋模型D.喷泉模型参考答案:A、D7.在开发一个系统时,如果用户对系统的目标是不很清楚,难以定义需求,这时最好使用( )。
A.原型法瀑布模型 C.V-模型 D.螺旋模型参考答案:A8.采用瀑布模型进行系统开发的过程中,每个阶段都会产生不同的文档。
以下关于产生这些文档的描述中,正确的是( )。
A.外部设计评审报告在概要设计阶段产生。
B.集成测评计划在程序设计阶段产生。
C.系统计划和需求说明在详细设计阶段产生。
D.在进行编码的同时,独立的设计单元测试计划参考答案:D9.( )是一种面向数据流的开发方法,其基本思想是软件功能的分解和抽象。
2024年下半年软件设计师试题

1、在软件设计中,模块独立性是重要原则之一。
以下哪项不是衡量模块独立性的标准?A. 耦合性B. 内聚性C. 复杂性(答案)D. 接口的明确性2、在面向对象编程中,以下哪项不是多态性的实现方式?A. 方法重载B. 方法覆盖C. 接口实现D. 数据封装(答案)3、关于软件测试,以下哪项描述是错误的?A. 单元测试是对软件中的最小可测试单元进行检查和验证B. 集成测试是在单元测试的基础上,将所有模块按照设计要求组装成为子系统或系统C. 系统测试是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试D. 验收测试主要由开发团队进行,以确保软件满足规格说明书和需求文档的要求(答案)4、在软件维护中,以下哪项不是常见的维护类型?A. 改正性维护B. 适应性维护C. 预防性维护D. 创新性维护(答案,通常称为完善性维护或增强性维护)5、关于软件设计模式,以下哪项描述是正确的?A. 单例模式是一种创建型模式,它保证一个类仅有一个实例,并提供一个访问它的全局访问点(答案)B. 观察者模式是一种结构型模式,它允许对象组合成树形结构以表示部分-整体的关系C. 工厂方法模式是一种行为型模式,它定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个D. 模板方法模式是一种创建型模式,它在一个方法中定义一个算法的骨架,并将一些步骤延迟到子类中实现6、在软件开发过程中,需求分析阶段的主要任务是?A. 确定软件开发方法B. 确定软件开发工具C. 确定软件系统的功能、性能等要求(答案)D. 制定软件开发计划7、关于软件架构,以下哪项描述是错误的?A. 软件架构是软件设计过程中的一个层次B. 软件架构包括软件元素的描述、元素间的交互以及指导元素集成的模式C. 软件架构与具体实现无关,只关注高层次的结构和设计决策(答案,实际上软件架构与实现有一定关联,它指导实现)D. 软件架构为软件系统提供了一个结构、行为和属性的高级抽象8、在软件配置管理中,以下哪项不是版本控制的主要任务?A. 记录和追踪每个软件配置项的状态和变更情况B. 维护软件配置项的完整性和一致性C. 防止对软件配置项的非法修改D. 确保软件配置项的开发效率(答案)9、关于软件质量保证,以下哪项描述是正确的?A. 软件质量保证的主要目标是确保软件产品满足规定的质量标准(答案)B. 软件质量保证与软件测试是同一概念C. 软件质量保证只在软件开发结束后进行D. 软件质量保证的主要手段是代码审查10、在软件项目中,风险管理的主要目的是?A. 消除项目中所有的风险B. 识别、分析和控制风险,以最小化潜在损失(答案)C. 提高项目的开发效率D. 确保项目按时交付。
2024上半年软件设计师软考试题

1、在软件开发过程中,需求分析阶段的主要任务是确定:A. 软件的总体结构B. 软件的具体实现算法C. 软件的功能和性能要求D. 软件的测试计划(答案:C)2、下列关于模块化设计的说法中,错误的是:A. 模块之间的耦合应尽可能低B. 模块的内聚性应尽可能高C. 模块的规模越大,可维护性越好D. 模块化设计有助于提高软件的可重用性(答案:C)3、在面向对象编程中,继承机制的主要作用是:A. 实现代码的重用B. 提高程序的运行效率C. 简化数据结构的定义D. 增强程序的可读性(答案:A)4、下列关于软件测试的说法中,正确的是:A. 软件测试的目的是证明软件没有错误B. 软件测试应尽可能在编码阶段之后进行C. 软件测试应贯穿软件开发的各个阶段D. 单元测试主要由用户来完成(答案:C)5、在数据库设计中,实体-关系图(ER图)主要用于表示:A. 数据流图B. 数据结构C. 概念模型D. 物理模型(答案:C)6、下列关于敏捷开发的说法中,错误的是:A. 敏捷开发强调以人为本、团队协作B. 敏捷开发适用于需求变化频繁的项目C. 敏捷开发不需要文档和计划D. 敏捷开发提倡持续集成和持续交付(答案:C)7、在软件架构设计中,MVC模式是一种常用的设计模式,其中M、V、C分别代表:A. Model、View、ControllerB. Module、View、ComponentC. Message、View、ControlD. Master、View、Client(答案:A)8、下列关于软件配置管理的说法中,正确的是:A. 软件配置管理仅涉及源代码的管理B. 软件配置管理的目的是提高软件开发效率C. 软件配置管理不包括对变更的控制和管理D. 软件配置管理的主要活动包括标识、控制、状态记录和审计(答案:D)9、在软件测试中,黑盒测试主要关注:A. 软件的内部结构和实现细节B. 软件的功能和性能要求是否满足用户需求C. 软件的代码质量和编程风格D. 软件的可靠性和可用性(答案:B)10、下列关于软件维护的说法中,错误的是:A. 软件维护是软件开发周期中持续时间最长的阶段B. 软件维护包括改正性维护、适应性维护、完善性维护和预防性维护C. 软件维护的目的是提高软件的可用性和可维护性D. 软件维护只能在软件发布后进行(答案:D)。
历年软考软件设计师经典真题及答案

历年软考软件设计师经典真题及答案1.软件水平成熟模型(CMM)是当前国际上最流行、最实用的软件生产过程标准和软件企业成熟度的等级认证标准。
该模型将软件水平成熟度自低到高依次划分为初始级、可重复级、已定义级、已管理级、优化级。
从( )开始,要求企业建立基本的项目管理过程的政策和管理规程,使项目管理工作有章可循。
A.初始级B.可重复级C.已定义级D.已管理级参考答案:C2.一个软件开发过程描述了“谁做”、“做什么”、“怎么做”和“什么时候做”,RUP用( )来表述“谁做”。
A. 角色B. 活动C. 制品D. 工作流参考答案:A3.RUP 在每个阶段都有主要目标,并在结束时产生一些制品。
在( )结束时产生“在适当的平台上集成的软件产品”。
A. 初期阶段B. 精化阶段C. 构建阶段D. 移交阶段参考答案:C4.RUP分为4个阶段,每个阶段结束时都有重要的里程碑,其中生命周期架构是在( )结束时的里程碑。
A.初期阶段B. 精化阶段C. 构建阶段D. 移交阶段参考答案:A5.ISO/IEC 9126 软件质量模型中第一层定义了六个质量特性,并为各质量特性定义了相对应的质量子特性。
子特性( )属于可靠性质量特性。
A.准确性B. 易理解性C. 成熟性D. 易学性参考答案:C6.结构化开发方法中,数据流图是( )阶段产生的成果。
A. 需求分析B. 总体设计C. 详细设计D. 程序编程参考答案:A例如:学籍管理系统的数据流图例如:学籍管理系统的顶层图7.下列要素中,不属于DFD的是( )。
当使用DFD对一个工资系统实行建模时,( )能够被认定为外部实体。
(1)A.加工 B.数据流 C.数据存储 D.联系(2)A.接收工资单的银行 B.工资系统源代码程序C.工资单D.工资数据库的维护参考答案:D、A8.【说明】某公司拟开发一个销售管理系统,其主要功能描述如下:1.接受客户订单,检查库存货物是否满足订单要求。
如果满足,实行供货处理:即修改库存记录文件,给库房开具备货单并且保留客户订单至订单记录文件;否则实行缺货处理:将缺货订单录入缺货记录文件。
计算机软考:软件设计师练习试题及答案解析(3)

计算机软考:软件设计师练习试题及答案解析(3) 41.不是C语⾔提供的合法关键字是(46) (45)A. switch B. begin C. case D. default 参考答案:(46)B。
解析:因C语⾔的关键字表中没有begin,它不是C语⾔的关键字。
所以解答是B。
42.下列字符列中,能作为单个标识符是(47) (47)A. ?a B. a=2 C. a.3 D.a___3 参考答案:(47)D。
解析:在C语⾔中,规定标识符是这样⼀种字符序列,由英⽂字母或下线字符开始,后接任1个英⽂字母、下线字符和数字符组成。
所以问题所列的字符列只有a_3是标识符,其余都l是标识符,⼀个是由字符’?’开头、⼀个中间有字符’=’,另⼀个有字符’.’。
所以解答是D。
43.在C语⾔中,下列说法中错误的是(48) (47)A. 函数定义可以分为两个部分:函数说明部分和函数体 B. 主函数可以调⽤任何⾮主函数 C. 任何⾮主函数可以调⽤其它任何⾮主函数 D. 程序可以从任何函数开始执⾏ 参考答案:(48)D。
解析:每个C函数的定义分两部分,函数说明部分和函数体,所以叙述①是正确的叙述。
C语⾔中,函数可以递归调⽤,主函数可以调⽤程序中的任何函数,当然可以调⽤任何⾮主教的其它函数,所以叙述②是⼀个正确的叙述。
同样理由,叙述③也是正确的。
C语⾔规,C程序只有⼀个主函数,并总是从主函数开始执⾏,不能从⾮主函数开始执⾏。
所以,说程可以从任何函数开始执⾏是错误的。
所以解答是D。
44. 为了直观地分析系统的动作,从特定的视点出发描述系统的⾏为,需要采⽤动态分析的⽅法。
其中, (49) 适⽤于描述与分析相互独⽴、协同操作的处理系统,也就是并发执⾏的处理系统。
(49) A.状态迁移图 B.时序图 C.Petri D.HIPO图 参考答案:(49)C。
解析:为了直观地分析系统的动作,从特定的视点出发描述系统的⾏为,需要采⽤动态分析的⽅法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软考软件设计师必做练习题及答案软件设计师考试属于全国计算机技术与软件专业技术资格考试(简称计算机软件资格考试)中的一个中级考试。
考试不设学历与资历条件,也不论年龄和专业,考生可根据自己的技术水平选择合适的级别合适的资格,但一次考试只能报考一种资格。
考试采用笔试形式,考试实行全国统一大纲、统一试题、统一时间、统一标准、统一证书的考试办法。
下面是希赛小编整理的软考软件设计师考前必做的练习题。
试题一分析本题主要考查类图和顺序图。
【问题 1】需要分析此门禁系统的体系结构,根据体系结构的描述来看什么数据放在什么类中最为合适。
题目中提到:系统中的每个电控锁都有一个唯一的编号。
锁的状态有两种:“已锁住”和“未锁住”。
所以Lock 中含有锁编号和锁状态这两个属性。
又因为题中有:在主机上可以设置每把锁的安全级别以及用户的开锁权限。
只有当用户的开锁权限大于或等于锁的安全级并且锁处于“已锁住”状态时,才能将锁打开。
因此,Lock 中还有锁的安全级别。
【问题 2】首先,( 1 )、( 2 )是 FingerReader和LockController之间的交互。
所以我们看题目中是如何描述他们的交互的。
题目中有“指纹采集器将发送一个中断事件给锁控器,锁控器从指纹采集器读取用户的指纹”,所以(1)应填“中断事件”,( 2 )应填“读取指纹”。
(3 )是主机与UserInfo的交互,从图2-35中可以看出,UserInfo中存储了用户的指纹信息和开锁权限,所以( 3 )应是从 UserInfo读取用户的指纹信息和开锁权限。
(4)空应填“读取锁的安全级别”。
( 5 )是 MainFrame向自己发送的一条消息,从题目中的“主机根据数据库中存储的信息来判断用户是否具有开锁权限,若有且锁当前处于已锁住状态,则将锁打开;否则系统报警”可以看出,主机在得到所有信息后要判断用户是否能开锁,所以( 5)应填“判断用户是否能开锁”。
【问题 3】这是纯理论题,请直接阅读参考答案。
试题一参考答案【问题 1】锁的编号、安全级别、锁的当前状态。
【问题 2】1 )中断事件( 2)读取用户指纹3 )读取用户开锁权限(4 )读取锁的安全级别5 )判断用户是否有权限开锁,或用户是否可以开锁【问题 3】组装和聚集都表示实例之间的整体/ 部分关系。
组装是聚集的一种形式。
聚集是概念性的,只是区分整体与部分。
组装具有很强的归属关系,而且整体与部分的对象生存周期是一致的。
试题二分析本题考查的是UML 类图和顺序图的基本知识。
【问题 1】由于一个商品分类中可以有多个商品,而一个商品仅仅对应一个商品分类,所以商品分类与商品之间的关系是1:0..* ,即第( 1 )空填“ 0..* ”,第( 2 )空填“ 1 ”。
促销活动与商品之间的关系是这样的:一个促销活动至少得有一种促销商品,否则就无法成为促销活动;而一种商品可以参与多个促销活动,所以促销活动与商品之间的关系有些特别,应是0..*:1..* ,故第( 3)空填“ 0..* ”,第( 4 )空填“ 1..* ”。
再看订单与促销活动之间的关系:由于题目中说明“用户可选择参与某一个促销(Promotion )活动”,同时对于一个促销活动可以有多个客户下订单,所以它们之间的关系为 1:0..* ,所以第( 5 )空填“ 1”,第( 6 )空填“ 0..* ”。
【问题 2】在顺序图中,消息的执行顺序为:在垂直方向自上至下地执行,其中的虚线表示消息结果的返回。
在图 2-38 中,包含着两个操作,第一个操作是得到某个商品的信息,其流程是:先在商品分类列表中找到相应的分类,再从分类中找到具体的商品,从此商品对应的类中得到相应信息。
所以第( 7 )空应填“ getCategories ”,第(8 )空应填“ getCommodities ”。
第二个操作是创建一次促销活动,并为其指定促销品,所以第(9)空应填“createPromotion ”,第( 10 )空应填“ addCommodities ”。
【问题3】这是一个纯理论问题,请直接阅读参考答案。
试题二参考答案【问题 1】(1) 0..n 或 1..n ( 2) 1 ( 3 )0..n(4) 1..n ( 5 )1 ( 6 )0..n【问题 2】7 ) getCategories (8 )getCommodities9 ) createPromotion ( 10 ) addCommodities【问题 3】关系:聚集(聚合)是关联的特例。
(聚集是关联的一种)不同点:聚集表示部分与整体关系的关联。
试题三分析本题考查类图和状态图。
【问题 1】根据“每首歌曲的描述信息包括:歌曲的名字、谱写这首歌曲的艺术家及演奏这首歌曲的艺术家”和图2-39中类A与类B之间约束为“编写”、“演奏”,所以类 A 与类 B只能是艺术家和歌曲,又根据图上标示的关联关系(1,0..*),可以确定类 A 为艺术家( Artist );类 B 为歌曲( Song )。
类 B 与类 E 之间是聚集关系,根据题中“一条音轨中只包含一首歌曲或为空,一首歌曲可分布在多条音轨上”,可以得到类 E 为音轨( Track )。
接下来看类 E 与类 F 之间存在组成的关系,根据“每张唱片由多条音轨构成”得到,类 F 为唱片( Album )。
再来看类 C 和类 D,它们与类 A 存在泛化关系,根据“艺术家可能是一名歌手或一支由 2 名或 2 名以上的歌手所组成的乐队”可知,类 C 与类 D 为歌手和乐队,又因为类 C 与类 D 存在聚集关系,根据题中“一名歌手可以不属于任何乐队,也可以属于一个或多个乐队”可知,类 C 为乐队( Band ),类 D 为歌手( Musician)。
【问题 2】类 C 为乐队,类 D 为歌手,题中“一支由 2 名或 2 名以上的歌手所组成的乐队。
一名歌手可以不属于任何乐队,也可以属于一个或多个乐队”,则第( 1 )空应填“ 0..* ”,第(2 )空应填“ 2..* ”。
类 B 与类 E 存在聚集关系,题中“一条音轨中只包含一首歌曲或为空,一首歌曲可分布在多条音轨上”,所以第( 3 )空应填“ 0..1 ”,第( 4 )空应填“ 1..* ”。
类 E 与类 F 存在泛化关系,题中“每张唱片由多条音轨构成”,所以第(5)空应填“ 1..*”,第( 6)空应填“ 1 ”。
特别要说明一下,是“0..* ”还是“ 1..* ”,要看表述和实际情况,比如第(5)空,一张唱片至少有几条音轨,当然至少有一条,否则就不是唱片了,故是从 1 开始的。
【问题 3】本问题考查的是类/ 对象关联中的一种特殊关联:递归关联,它描述的是同一个类的不同实例之间的关系。
而类 Track 的不同实例之间恰好具有这种关系(因此对于任意一条音轨,播放器需要准确地知道,它的下一条音轨和上一条音轨是什么)。
所以缺少的那条联系的两端都是类Track ,其多重度都为0..1 。
下限为 0 ,是对应不存在上一条或下一条音轨的情况。
【问题 4】问题 4 给定了两个状态“关闭”和“播放”,要求找出从“关闭”到“播放”的最短事件序列。
这就要求我们能够在状态图上找到连接这两个状态的最短迁移,然后将迁移上的事件记录下来就可以了。
从“关闭”状态到“播放”状态可以选择经过迁移“连接电脑”到达“联机”状态,再经过迁移“断开连接”到达状态“打开”,再从“打开”状态的初始状态“歌曲待选”,经过迁移“选择歌曲”到达“播放状态”。
这样经过的事件序列为:连接电脑电量饱和/ 完成复制断开连接选择歌曲。
显然这样的事件序列远比“关闭” 经过“按任意键” 直接到达“打开”状态要长得多。
所以从“关闭”到“播放”的最短事件序列是:按任意键,选择歌曲。
试题三参考答案【问题 1】A : ArtistB : SongC :BandD : MusicianE:TrackF:Album【问题 2】1) 0..* (2 )2..* ( 3) 0..14) 1..* (5 )1..* ( 6) 1【问题 3】【问题 4】按任意键,选择歌曲。
试题四分析题目以希赛公司在线会议审稿系统为例,考查考生对UML用例图与活动图的掌握情况。
【问题 1】题目已经给出了 4 类参与者:用户、作者、审稿人、委员会主席,关键在于弄清楚各个参与者之间的关系,这些关系是通过题目中的系统功能描述来获得的。
1 )“用户在初始使用系统时,必须在系统中注册( register )成为作者或审稿人”,从此处可以得知系统中的用户分成了两类:作者和审稿人。
2 )“会议委员会主席是一个特殊审稿人”。
从上面两个条件得知:A1 对应用户, A2 对应作者, A3 对应审稿人, A4 对应会议委员会主席。
同时由于UML 图中不允许出现中文,且题目明确要求用英文名称给出A1 ~A4所对应的参与者,所以A1 ~ A4 处应分别填写User 、 Author、Reviewer和PCChair。
【问题 2】由“会议委员会主席是一个特殊审稿人,可以浏览提交的稿件,给审稿人分配稿件,罗列录用和(或)拒绝的稿件,以及关闭审稿过程”结合“用例名称列表”可以得知:会议委员会主席能操作的功能有浏览提交的稿件、分配稿件给审稿人、罗列录用或/ 和拒绝的稿件、关闭审稿过程。
而从“其中关闭审稿过程须包括罗列录用和(或)拒绝的稿件”可以看出,用例“关闭审稿过程”与“罗列录用或/ 和拒绝的稿件”之间有包含关系。
从这个关系可以得知, U1 对应的用例为:罗列录用或/ 和拒绝的稿件。
同时(2)对应的关系为包含关系,即 U1 应填“ listaccepted/rejectedpapers”,(2)应填“ >”。
这样,剩余的两项功能“浏览提交的稿件”和“分配稿件给审稿人”对应的为U2 与 U3,所以 U2 和 U3 分别应填“ browsesubmittedpapers”和“ assignpapertoreviewer”。
【问题 3】该小题考查考生对包含与扩展关系的理解。
在对问题 2 的分析中,已经得出( 2)填“ > ”。
现在来看( 1 ),该空是填“登录”与“提交稿件”之间的关系,在提交稿件时,若用户已经登录,则可直接提交;但如果用户没有登录,则需要先登录再提交,所以它们之间的关系应是扩展关系,即( 1 )应填“ > ”。
【问题 4】该活动图所描述的是作者提交稿件的过程,对此过程题目有详细的描述:“作者登录(login )后提交稿件和浏览稿件审阅结果。
提交稿件必须在规定提交时间范围内,其过程为先输入标题和摘要、选择稿件所属主题类型、选择稿件所在位置(存储位置)。
上述几步若未完成,则重复;若完成,则上传稿件至数据库中,系统发送通知。