解析:用例(use case)用来描述系统在对事件做出响应时所采取的行动,即它确定了一个与系统参与者进行交互,并由系统执行的动作序列。可见,一个用例本身并不是一个功能需求,它代表了系统的一个单一的目标,是一个行为上相关的步骤序列。
选项D所描述的范围太广,不够准确。在UML规范中,参与者是指系统所涉及到的人,或者是用户在本系统中扮演的角色。一个参与者总是在系统的自动化边界之外。 72. 采用UML分析用户需求时,用例UCl可以出现在用例UC2出现的任何位置,那么UCl和UC2之间的关系是 (77) 关系。 (77) A.include B.extend C.generalize D.call
参考答案:(77)C。
解析:用例之间的泛化(generalize)关系类似于类之间的泛化关系。子用例继承父用例的行为与含义。子用例还可以增加或者覆盖父用例的行为。子用例可以出现在父用例出现的任何位置。
本试题中,由于用例UCl可以出现在用例UC2出现的任何位置,因此UCl与UC2之间是选项C的“泛化(generalize)”关系。要注意,不是“用例UCl可以出现在用例UC2的任何位置”。
选项A的“包含(include)”关系,表示基础用例在它内部,说明某一位置上显式的合并是另一个用例的行为。被包含用例从不孤立存在,仅作为某些包含它的更大的基础用例的一部分出现。
选项B的“扩展(extend)”关系,表示基础用例在延伸用例间的一个位置上,隐式合并了另一个用例的行为。基础用例可以单独存在,但是在一定的条件下,它的行为可以被另一个用例的行为延伸。
选项D的“call”可解释成“调用”。 73.若有以下定义,则值为3的表达式是(78)
inta[]={1,2,3,4,5,6,7,8,9,10},*p=a; (78) A. p+=2,*(p++) B. p+=2,*++p C. p+=3,*p++ D. p+=2,++*p 参考答案:(78) A。
解析:数组a有10个元素,分别有值1至10,指针变量p指向a[0],A逗号表达式p+=2,*(P++),先是P+=2使P指向a[2],接着是*(P++),以当时P所指变量a[2]取内容3为表达式的值,同时使p指向a[3]。B返号表达式p+=2,*++p,先是p+=2使p指向a[2],以后是*++p,又使p增1,让它指向a[3],并取指针p所指变量a[3]的内容4作为表达式的值。C逗号表达式p+=3,*p++,先是p+=3使p指向a[3],以后是*p++,表达式的值是a[3]为4,而使p指向a[4]。D逗号表达式p+=2,++*p,先是p+=2,使p指向a[2],以后是++*p,因当时的*p就是a[2],++a[2]使a[2]增1,变成4,并以4为表达式的值。所以只有p+=2,*(p++)的值是3。所以解答是A。
74.要求函数的功能是在一维数组a中查找x值。若找到,则返回所在的下标值;否则,返回0。设数据放在数组元素的a[1]到a[n]中。在以下给出的函数中,不能正确执行此功能的函数是(79)
(79)A. funa(int*a,intn,intx) {*a=x;
whlie(a[n]!=x)n--; returnn; }
B. funb(int*a,intn,intx) {intk;
for(k=l;k<=n;k++)
if(a[k]==x)returnk; return0; }
C. func(inta[],intn,intx) {int*k; a[O]=x;k=a+n; while(*k!=x)k--; returnk-n; }
D. fund(inta[],intn,intx) {intk=0; dok++;
while((kif((kelsereturn0; }
参考答案:(79)C。
解析:在数组中找指定值是经常遇到的计算要求,有多种编程方法。在这里,数据预放在数组下标1至n的元素中,下标为0的元素没有放数据,程序可以利用这个位置简化查找函数。函数funa先将要查找的情放入a[0],从数据表的最后一个元素开始逆序向前查找。这样做的好处是循环条件不必担心因数组中原先没有值为x的元素而一直顺序查找下去,访问不是数表的元素,需插入条件n>O。在a[0]处放入x后,这个条件就不必要了,循环至少在访问了a[0]后终止,并返回0值。所以该函数能完成指定的功能。函数funb采用常规的办法编写,循环在a[1]与a[n]之间顺序寻找,一旦找到立即返回找到处的下标,直至查找循环结束,查不到指定的值而返回0值。函数func采用与函数funa相同的方法,不过是另外引入一个指针变量。但是该函数return语句后的表达式有严重的错误,应返回k-a,两指针的差,其值等于找到元素的下标。表达式k-n是指针k向前移n个位置的指针值。函数fund预置k为0,循环让k增1,并在k在界内和a[k]不等于x的情况下循环。循环结束有
两种情况,或k已不在界内,或k在界内,并且a[k]等于x。若是后者,函数返回k,而若前者,函数返回比该函数也能正确完成查找工作。这样,不能正确完成查找工作的函数是函数fonc。所以正确选择是C。
75. 软件架构在软件需求与设计之间架起一座桥梁,也是风险承担者进行交流的手段,允许不同的风险承担者找出他们所关心的软件架构问题。逻辑视图的主要风险承担者是 (80) 。
(80) A.项目管理师 B.系统集成工程 C.系统实施工程师 D.最终用户 参考答案:(80)D。
解析:所谓风险承担者是指对软件系统某个方面(或层次)负责(或关注)的人员。也可以这样来理解风险承担者,软件系统的某个方面(或层次)如果存在缺陷或问题,对此负责任或受影响的人员。
逻辑视图描述了设计的对象模型,支持系统的功能需求。而系统的功能需求来自于最终用户,因此最终用户是逻辑
进程视图的风险承担者主要是系统集成人员;物理视图的风险承担者主要是系统实施工程师;开发视图的风险承担者主要是编程人员和软件项目管理人员;场景的风险承担者是最终用户和开发人员。
76. 某商场的部门、员工和商品3个实体之间的关系如图7所示。假设每个部门有若干名员工,每种商品只能由一个部门负责销售,那么部门到员工、部门到商品之间分别存在 (81) 的联系。
图7 某实体关系图
(81) A.1:1和1:1
B.1:1和1:n C.1:n和1:1 D.1:n和1:n 参考答案:(81)D。
解析:E-R图中实体集A与实体集B有一对多(1:n)的联系是指实体集A中的每一实体,实体集B中有0个或多个实体与之联系,而对于实体集B中的每一个实体,实体集A中至多有一个实体与之联系。
由题中的关键信息“每个部门有若干名员工,每种商品只能由一个部门负责销售”可知,实体“部门”与“员工”是一对多(1:n)的联系,实体“部门”与“商品”也是一对多(1:n)的联系,因此本试题的正确答案是选项D。
77. 关系模式Student(Sno,Sname,Cno,Cname,Grade,Tname,Taddr)的属性分别表示学号、学生姓名、课程号、课程名、成绩、任课教师名和教师地址。其中,一个学生可以选若干门课程,一个教师可以讲授若干门课程,一门课程可以由多个教师讲授,对于同一门课程,学生只能选定一个教师讲授的课程,教师不会重名。关系模式Student的分解ρ= (82) ,并且是无损联接及保持函数依赖。
(82) A.{(Sno,Sname,Cno,Tname,Taddr),(Sno,Sname,Cno,Cname,Grade)}∈1NF B.{(Sno,Sname),(Sno,Cno,Grade,Tname,Taddr),(Cno,Cname)}∈2NF C.{(Sno,Sname),(Sno,Cno,Grade),(Tname,Taddr),(Cno,Cname,)∈3NF
D.{(Sno,Sname),(Sno,Cno,Grade),(Tname,Taddr),(Tname,Cno),(Cno,Cname)}∈BCNF 参考答案:(82)B。
解析:关系模式Student(Sno,Sname,Cno,Cname,Grade,Tname,Taddr)的候选关键字有1个,为(Sno,Cno)。最小函数依赖集中有5个函数依赖。由于存在部分依赖现象,因此该关系模式属于1NF范式,分解ρ={(Sno,Sname),(Sno,Cno,Grade,Tname,Taddr),(Cno,Cname)}∈2NF,并且是无损联接及保持函数依赖。
78. 某企业职工和部门的关系模式如下所示,其中部门负责人也是一名职工。 职工(职工号,姓名,年龄,月工资,部门号,电话,办公室)
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库软考软件设计师考试上午练习试题(10)在线全文阅读。
相关推荐: