几个关于uml的考试题目

 

一个朋友找我帮忙做了几个关于uml的题目,放上来备忘

1.设计一个课件类,主要的属性有课件编号、课程名称名称,课件类型等等信息。要求对课件进行管理时能够及时记载已经创建了多少个课件的实例。写出java代码


package exam2;
public class Exam2 {
 private String CoursewareCode;
 private String CoursewareName;
 private String CoursewareType;
 private static int instanceCount = 0;
 
 public Exam2() {
  super();
  instanceCount++;
 }
 public String getCoursewareCode() {
  return CoursewareCode;
 }
 public void setCoursewareCode(String coursewareCode) {
  CoursewareCode = coursewareCode;
 }
 public String getCoursewareName() {
  return CoursewareName;
 }
 public void setCoursewareName(String coursewareName) {
  CoursewareName = coursewareName;
 }
 public String getCoursewareType() {
  return CoursewareType;
 }
 public void setCoursewareType(String coursewareType) {
  CoursewareType = coursewareType;
 }
 /**
  * 获取课件实例化的数量
  * @return
  */
 public static int getInstanceCount() {
  return instanceCount;
 }
}



2.客户浏览了目录,并向购物篮里添加了一些要买的物品。当客户希望付款时,他给出送货和信用卡信息,并对这一销售予以确认。系统核查信用卡许可并立即对销售确认,紧接着发一份电子邮件。请根据上述描述画出用例图



3.请建造一扇门,可以在门上喷漆,在门上可以安装门把手,也可以安装锁。实现先喷漆,后加把手,最后安装锁。请问用什么样的设计模式来实现?写出实现的UML和JAVA代码

采用Build模式实现


//门的附件
public interface DoorAppendix {
 public void install(Door door);

}

package wang.exam5;
//油漆
public class Pigment implements DoorAppendix {
 public Pigment(){
 }

 public void finalize() throws Throwable {
 }

 public void install(Door door){
 }
}

package wang.exam5;
//门锁
public class Lock implements DoorAppendix {
 public Lock(){
 }

 public void finalize() throws Throwable {
 }

 public void install(Door door){
 }
}

package wang.exam5;
//把手
public class Hand implements DoorAppendix {
 public Hand(){
 }

 public void finalize() throws Throwable {
 }

 public void install(Door door){
 }
}

package wang.exam5;
//门
public class Door {
 private DoorAppendix hand;
 private DoorAppendix lock;
 private DoorAppendix pigment;
 public Door(){
  hand = new Hand();
  Lock = new Lock();
  pigment = new Pigment();
 }

 public void build(){
  pigment.install(this);
  hand.install(this);
  lock.install(this);
 }
}


3.学校的公告发布可以采用邮件列表的形式来发布,当发布一个新的公告的时候,通知所有订阅的人员,接到邮件的人员到指定的位置把公告取出来。请问用什么样的设计模式来实现。画出UML图

采用观察者模式实现


4.学生要注册某个讨论班。学生向注册员提交其姓名和学生编号。这样他可被验证是否有资格在这所学校注册这个讨论班。注册员验证后,他可从可供选择的讨论班列表中选择出他所希望注册的讨论班。注册员验证学生是否有资格注册这门课,并且验证这门讨论班是否适合该学生现有的课程安排。注册员根据讨论班目录中公布的费用计算出这门课的收费并通知学生。确认学生愿意注册该讨论班后,注册员把学生注册到该讨论班,把相应的费用加到学生账单中,并向学生提供已经注册成功的确认。画出用例图和类图。

用例图:

类图:


5.考虑一下美女梳妆的情景,她会盘弄自己的头发,填加首饰在自己头上,可能还有耳环一类的东西。但每个美女身上的饰物并不相同。请问,用哪种设计模式来实现?给出该设计模式的UML图。

使用工厂模式实现

 

摘自 http://jim19770812.blogspot.com/2008/05/uml.html 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
1.UML的系统分析进一步要确立的三个系统模型是(对象静态模型)、对象动态模型和系统功能模型。 2.UML的的客户需求分析、系统分析和系统设计阶段产生的模型,其描述图符( 完全相同 )。 3.类和对象都有属性,它们的差别是:类描述了属性的类型,而对象的属性必须有( 具体值 )。 4.UML系统分析阶段产生的包图描述了系统的(系统体系层次结构 )。 5.在UML软件开发过程系统分析阶段产生的对象模型有三种模型。它们是:对象的 静态 模型、对象的 动态模型和对象的 系统功能 模型。 6.在UML的类图中,类之间的关系有 泛化 、 实现 、 聚集 、 依赖 和 关联 5种。 7.共享聚集的“部分”对象可以是任意“整体”对象的一部分,表示事物的整体/部分关系较弱的情况,“整体”端的重数应该是 n 。 8.在UML软件开发过程的需求分析和系统分析阶段,建立类模型的步骤分为 寻找确定类 、 定义类的接口 、定义类之间的关系、建立类图 和 建立系统包图 。 9.组合聚集是指“整体”拥有它的“部分”,它具有强的物主身份,表示事物的整体/部分关系较强的情况。“部分”生存在“整体”中,不可分离,它们与“整体”一起存在或消亡。“整体”的重数必须是 1 。 10.封装是指把对象的( 属性和操作 )结合在一起,组成一个独立的对象。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值