A 实现 B 关联 C 依赖 D 泛化 E 聚合
16、已知类A需要类B提供的服务,下列所描述的四种情况中,哪种情况不好把类A和类
B之间的关系定义成依赖关系 ( D )
A、类A中存在两个操作都需要访问类B的同一个对象
B、类A的某个操作内部创建了类B的对象,而其他操作均与类B无关 C、类A的某个操作其参数是类B的对象,而其他操作均与类B无关 D、类B是一个全局变量 17、“一个研究生在软件学院做助教(teaching assistant),同时还在校园餐厅打工做收银员(cashier)。也就是说,这个研究生有3种角色:学生、助教、收银员,但在同一时刻只能有一种角色。”
根据上面的陈述,下面哪个设计是最合理的?(B)
PersonPerson<<接口>>PersonRole0..1StudentTeachingAssistantCashierStudentTeachingAssistantCashier
A B
Student<<接口>>Cashier<<接口>>TeachingAssistant<<接口>>StudentTeachingAssistantCashierPersonPerson
C D
18、类X与类Y有许多的属性,但是它的行为与类Y稍微有所不同;这时可以认为类X是
类Y的一种特例;则类X和类Y之间是( A )关系。
A 、泛化关系 B、 关联关系 C、 依赖关系 D、 实现关系 19、关于类和对象的关系,下列说法中哪个是错误的 ( B )
A、每个对象都是某个类的实例
B、每个类某一时刻必定存在对象实体 C、类是静态的描述 D、对象是动态的实例
二、填空题
4
1.下图中类的名字是:__login__类中的成员属性是:sname_、spass__ 类中的行为(方法)是:____checkuser()____。
2、在UML中分组元素是 包 。
3、在UML模型图中,最适合用来设计数据库大纲的图形是 类图 。 4、在对系统建模时、接口可分为 提供接口 、 所需接口 。
5、下图所表示的含义是WashingMachine 实现 了接口ControlKnob,Person 使用 了接口ControlKnob
三、简答题
1、在UML建模中使用“包”是为了达到怎样的效果?
在UML中,包是分组事物的一种,它是建模时用来组织模型中的元素的,在系统运行时并不存在包的实例。包在开发大型软件系统时是一个非常重要的机制,它就象一个“容器”,可用于组织模型中的相关元素以便更容易理解。
2、下图显示了某个学校课程管理系统的部分类图,其中一个学生(student)可以知道所有注册课程的教师(instructor),一个教师也可以知道所有注册课程的学生。
现在提出一个新的需求:\一个教师也可以是某些课程的学生\,那么下面设计A~C中哪一个是最好的?为什么? 设计A:
设计B:
5
. 设计C:
答案: 设计C最好。 理由:
设计A方案:应用了自身关联,可以实现新的需求,但是不便于扩展。 设计B方案:不能实现新的需求。
设计C方案:应用开闭原则,实现了新的需求,并且便于扩展。
3、 请为下面这段编译正确的代码,补充类图。 pulic class Student{ private String name;
public void setName(String name){ this.name=name; }
public String getName(){ return this.name; } }
4、 请参考下图,回答问题:
6
图A.2
1) 图中的实体类为____书籍、书目____ 2) 图中的控制类为_____书籍管理_____ 3) 图中的边界类为_____借书界面_____
4) “借书界面”类中的成员属性有___susername、spass___
四、根据下面的陈述画出类图
1)学生包括本科生、研究生两种。
2)研究生的一部分利用课余时间担任助教。 3)教师包括讲师和教授两种。
4)一名助教可以为一位讲师或一位教授助课,一位讲师只能有一名助教,一位教授可以有5名助教。
7