软件设计师分类模拟题UML分析与设计试题一阅读下列说明及UML类图,回答问题1、问题2和问题3说明】某客户信息管理系统中保存着两类客户的信息:(1) 个人客户对于这类客户,系统保存了其客户标识(由系统生成)和基本信息(包括 姓名、住宅和E-mail) o(2) 集团客户集团客户可以创建和管理自己的若干名联系人对于这类客户,系统 除了保存其客户标识(由系统生成)之外,也保存了其联系人的信息联系人的信息包括 姓名、住宅、E-maik办公及职位该系统除了可以保存客户信息之外,还具有以下功能:① 向系统中添加客户(addCustomer)② 根据给定的客户标识,在系统中查找该客户(getCustomer)③ 根据给定的客户标识,从系统中删除该客户(removeCustomer)④ 创建新的联系人(addContact)⑤ 在系统中查找指定的联系A(getComact)⑥ 从系统中删除指定的联系人(removeContact)该系统采用面向对象方法进行开发在面向对象分析阶段,根据上述描述,得到如 表3・1所示的类表3・1类及说明类名说明CustomerinformationSystem客户信息管理系统IndividualCustomer个人客户InstitutionalCustomer集团客户Contact联系人描述该客户信息管理系统的UML类图如图3・1所示。
UML类图1、【问题1】请使用说明中的术语,给出图3-1中类Customer和类Person的属性2、 【问题2】识别关联的多重度是面向对象建模过程中的一个重要步骤根据说明中给出的描述,完成图中 的⑴〜(6) o3、 【问题3】根据说明中的叙述,抽彖出如表3-2所示的方法,请指出图37中的类Customerlnf ormafionSyst em^n Inst i tut ionalCustomerfy^WJA^^'P^Kl 明 b 些方法表3・2 类的方法功能描述方法名向系统中添加客户addCustomer根据给定的客户标识,在系统中查找 该客户getCustomer根据给定的客户标识,从系统中删除 该客户removecustomer创建新的联系人addContact在系统中查找指定的联系人getContact从系统中删除指定的联系人removeContact试题二阅读下列说明和图,回答问题1至问题3[说明]某公司的主要业务是出租图书和唱碟由于业务需求,该公司委托软件开发公司A 开发一套信息管理系统该系统将记录所有的图书信息、唱碟信息、用户信息、用户 租借信息等A公司决定采用面向对象的分析和设计方法开发此系统。
如图3・2所示为 某类图书或唱碟被借阅时应记录的信息,如图3・3所示描述了系统定义的两个类Book和CD,分别表示图书和唱碟的信息图书/唱碟 借出时间归还时间用户1 借阅信息类Book和CD4、 【问题1】经过进一步分析,设计人员决定定义一个类Items_on_loan,以表示类Book和ED的共有属性 和方法请采用图3-3中属性和方法的名称给出类工*觸_011_10411应该具冇的属性和方法(注意: 不同名称的属性和方法表示不同的含义,如CD中的composer与Book中的author无任何关系)5、 【问题2】为了记录每种图书或唱碟的历史记录,引入类CirculationHistory,类中存储的信息是如图 3-2所示的内容请采用UML表示法将下列4个类间的关系表示出来Items _on_k)anCDCircul^iionHktDry6、【问题3】现需了解十大最畅销(借出次数最釦图书或唱碟为此引入TenPopulate类以存储所有十大畅 销图书或唱碟的名称及其被借出的次数下列顺序图描述了某类图书或唱碟被借岀后成为十大畅销图 书或唱碟时对象间的消息交互系统在一次运行过程中,应有 ⑴ 个TenPopugte实例对象最合 适,一个TenPopulate类实例对象最多需要和(2)个Items on loan实例对象交互。
Ad|niD租借一本 图书或咱嗪试题三更新租借 记求莪取租借 次数1 Loanltem2 rUpdateLoanRecord J z 3:NotifyRecModigT 4:GetltemLoanedTimes5: GetLoanedTimes J―匸 7:GetltemTitleI11扶取租借1物品名称11租借信息阅读下列说明和数据流图,回答问题1和问题3说明】某指纹门禁系统结构如图3・5所示,其主要部件有:主机(MainFrname).锁控器(LockController) 指纹采集器(FingerReader)和电控锁(Lock)o(1) 系统中的每个电控锁都有一个唯一的编号锁的状态有两种:“已锁住”和“未锁住”2) 在主机上可以设置每把锁的安全级别及用户的开锁权限只有当用户的开锁权限 大于或等于锁的安全级别并且锁处于“已锁住”状态时,才能将锁打开3) 用户的指纹信息、开锁权限及锁的安全级别都保存在主机上的数据库中4) 用户开锁时,只需按一下指纹采集器指纹采集器将发送一个中断事件给锁控器, 锁控器从指纹采集器读取用户的指纹并将指纹信息发送到主机,主机根据数据库中存 储的信息来判断用户是否具有开锁权限,若有且锁当前处于“已锁住”状态,则将锁打开:否则系统报警该系统采用面向对象方法开发,系统中的类及类之间的关系用UML类图表示,图3・6是该系统类图的一部分;系统的动态行为釆用UML序列图表示,图3・7是用户成功开锁的序列图。
电控锹电控锁电控锁门禁系统结构系统部分类开锹7、 【问题1】图3-6是该系统类图的一部分,依据上述说明中给出的术语,给出类Lock的主要屈性8、 【问题2】依据上述说明中给出的词语,将图3-7中的⑴〜(5)处补充完整9、 【问题3】组合(Composition)和聚集(Aggregation)是UML中两种非常重要的关系请说明组合和聚 集分别表示什么含义?两者的区别是什么?试题四阅读下列说明及图3・8和图39回答问题1、问题2和问题3 【说明】某公司决定开发一个管理所有客户信息的交互式网络系统系统的功能如下1) 浏览客户信息:任何使用Internet的网络用户都可以浏览公司所有的客户信 息(包括姓名、住址、号码等)2) 登录:公司授予每个客户一个账号拥有授权账号的客户,可以使用系统提 供的页面设置个人密码,并使用该账号和密码向系统注册3) 修改个人信息:客户向系统注册后,可以发送电子邮件或者使用系统提供的页面, 对个人信息进行修改4) 删除客户信息:只有公司的管理人员才能删除不再接受公司服务的客户的信息 系统釆用面向对象方法进行开发,在开发过程中认定出的类如表3-3所示表3・3开发过程中认定的类编号类名描述1InternetClient网络用户2CustomerList客户信息表,记录公司所 有客户的信息3Customer客户信息,记录单个客户 的信息4CompanyCuatomer公司客户5InternalClient公司的管理人员io>【问题1】在需求分析阶段,釆用UML的用例图(Use Case Diagram)描述系统功能需求,如图3-8所示。
请指出图中的A、B、C和D分别是哪个用例?11>【问题2】在UML中,重复度(Multiplicity)定义了某个类的一个实例可以与另一个类的多少个实例相 关联通常把它写成一个表示取值范围的表达式或者一个具体的值例如图3-9所示中的类 InternetClient^FlCustomerList, InternetClient^Iz|\)''0 .・ *〃表示: ——个Cus匸omerList 的实例可以与0个或多个Internet Client的实例相关联;CustomerList端的T"表示:一个 Internet Client的实例只能与一个CustomerList的实例相关请指出图3 - 9中(1)到(4)处的重复度分别为多少?12、【问题3】类通常不会单独存在,因此当对系统建模时,不仅要识別出类,还必须对类Z间的和互关系建 模在而向对象建模中,捉供了4种关系:依赖(Dependency) >概括(Generalization) >关联 (Association)和聚集(Aggregation)请分别说明这4种关系的含义,并说明关联和聚集之间 的主要区别答案:试题一1> Cusomer类属性:客户标识。
Person类属性:姓名、住宅、emailo 2、(1) 1 (2) 0 . . * (3 ) 1 (4)1 (5) 1 (6) 1. . *3、 CustomerlnformationSystem^ZfYi: getCustomer> addCustomerx removeCustomeroInstitutionalCustomer^^T&: addContact> getContact> removecontacto[解析]本题考查UML类图,包括类的属性和方法的识别及类间关联重复度从UML类图(见图3-1)中可以看出,类Customer^类工ndividualCustom巳匕和类 InstitutionalCustomer的父类,应该包含两者的共有属性根据题中说明,两者共有属性为''客 户标识"故类Customer应有属性:客户标识同样,类Person是类Contact的父类,因此其属性应包含在Contact类的属性集中,Contact 类的属性有:姓名、住宅、emails办公及职位;乂Contact与类Individualcustomer 有关联,而Individual^含属性:姓名、住宅和email,故类Person应有属性:姓名、住宅 和email o根据题中说明,可知客户管理相关方法应该属于类Customer Informat ionSystem,有:查 找客户getCustomer、添加客/'*addCustomer和删除客户removeCustomer;联系人相关方。