软件设计师软考软件设计师必做练习题及答案软件设计师考试属于全国计算机技术与软件专业技术资格考试(简称计算机软件资格考试)中的一个中级考试。考试不设学历与资历条件,也不论年龄和专业,考生可根据自己的技术水平选择合适的级别合适的资格,但一次考试只能报考一种资格。考试采用笔试形式,考试实行全国统一大纲、统一试题、统一时间、统一标准、统一证书的考试办法。下面是希赛小编整理的软考软件设计师考前必做的练习题。试题一分析本题主要考查类图和顺序图。【问题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)getCommodities(9)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..1(4)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)后提交稿件和浏览稿件审阅结果。提交稿件必须在规定提交时间范围内,其过程为先输入标题和摘要、选择稿件所属主题类型、选择稿件所在位置(存储位置)。上述几步若未完成,则重复;若完成,则上传稿件至数据库中,系统发送通知。”,所以Action1~Action4分别对应:输入标题和摘要、选择稿件所属主题类型、选择稿件所在位置、上传稿件。所以Action1~Action4分别填:entertitleandabstract、selectsubjectgroup、selectpaperlocation和uploadpaper。试题四参考答案软件设计师【问题1】A1:UserA2:AuthorA3:ReviewerA4:PCChair【问题2】U1:listaccepted/rejectedpapersU2:browsesubmittedpapersU3:assignpapertoreviewer注:U2和U3的答案可互换【问题3】(1)(2)【问题4】Action1:entertitleandabstractAction2:selectsubjectgroupAction3:selectpaperlocationAction4:uploadpaper试题五分析本题考查面向对象系统开发时,采用UML模型进行建模的方法。【问题1】识别参与者时,考查和系统交互的人员和外部系统。在本题中,与系统交互的人员包括员工、注册到系统的员工(顾客)、餐厅员