2301_82232237 2024-11-18 22:38 采纳率: 0%
浏览 220

面向对象分析之类图头歌

任务描述
本关主要考查面向对象分析的基本思想以及类图(Class diagram)的构建,能够从问题域中发现对象,建立对象的类。通过本关的学习,能够培养学生业务系统的抽象能力、建模能力。

相关知识
类图简单介绍
1.类图分为三部分,依次是类名、属性、方法
2.以<<开头和以>>结尾的为注释信息
3.修饰符+代表public,-代表private,#代表protected,什么都没有代表包可见。
4.带下划线的属性或方法代表是静态的。

类图关系
1.依赖(Dependence)
依赖关系的定义为:对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。定义比较晦涩难懂,但在java中的表现还是比较直观的:类A当中使用了类B,其中类B是作为类A的方法参数、方法中的局部变量、或者静态方法调用。类上面的图例中:People类依赖于Book类和Food类,Book类和Food类是作为类中方法的参数形式出现在People类中的。

2.关联(Association)
体现的是两个类、或者类与接口之间语义级别的一种强依赖关系,比如我和我的朋友;这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的、关联可以是单向、双向的。

3.聚合(Aggregation)
聚合关系是关联关系的一种,耦合度强于关联,他们的代码表现是相同的,仅仅是在语义上有所区别:关联关系的对象间是相互独立的,而聚合关系的对象之间存在着包容关系,他们之间是“整体-个体”的相互关系。

4.组合(Composition)
相比于聚合,组合是一种耦合度更强的关联关系。存在组合关系的类表示“整体-部分”的关联关系,“整体”负责“部分”的生命周期,他们之间是共生共死的;并且“部分”单独存在时没有任何意义。在下图的例子中,People与Soul、Body之间是组合关系,当人的生命周期开始时,必须同时有灵魂和肉体;当人的生命周期结束时,灵魂肉体随之消亡;无论是灵魂还是肉体,都不能单独存在,他们必须作为人的组成部分存在。

5.继承(Generalization)
继承表示类与类(或者接口与接口)之间的父子关系。在java中,用关键字extends表示继承关系。UML图例中,继承关系用实线+空心箭头表示,箭头指向父类。

6.实现(Implementation)
表示一个类实现一个或多个接口的方法。接口定义好操作的集合,由实现类去完成接口的具体操作。在java中使用implements表示。UML图例中,实现关系用虚线+空心箭头表示,箭头指向接口。

闯关要求
使用starUML工具,请画出酒店客房类的属性和操作。属性有id、hotelId(注意拼写)、status。操作有酒店客房的增删改查。

请注意:
若您的文件中有与本次测评无关的类,请在Model Explorer中将本次测评的类置顶(选中此类,右键,点击Move Up)

本案例对象分析表
对象 属性 操作
客户 id(String) saveUserInfo,getHotelInfo,cancelOrder,getOrderInfo,submitOrder,assessHotelService
酒店客房 id(String)、hotelId(String)、status(int) addRoom,deleteRoom,updateRoom,getRoom
软件管理员 id(String) updateUserInfo(userId)
酒店工作人员 id(String) updateRoomInfo,carryUserOrder,maintainHotelInfo
软件营销人员 id(String) analysisOrderInfo,cancelOrder
订单 id(String) roomId(String) status(int) addr(String) amount(int) orderPrice(decimal) addOrder, deleteOrder, updateOrder, getOrder
软件营销人员 id(String) analysisOrderInfo,cancelOrder
闯关详细说明
属性为:id(String),hotelId(String)、status(int),属性均为private。
操作为:addRoom,deleteRoom,updateRoom,getRoom.
操作均为public。

将画好的模型保存到workspace/myshixun/submit/submit_step3/下,并命名为step3,格式为mdj。

如何使用starUML工具建立类图项目
打开starUML->new一个新的工作区,之后在左侧就会出现类图的形式符号。

  • 写回答

1条回答 默认 最新

  • 关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    根据提供的任务描述和相关知识,接下来我们使用StarUML工具创建酒店客房类的类图。

    步骤:

    1. 打开StarUML工具,创建一个新的工作区(Workspace)。

    2. 在左侧的“模型资源管理器”(Model Explorer)中,右键点击工作区名称,选择“添加”->“类图”(Class Diagram)。

    3. 选中创建的类图,然后在工具栏中选择“类”(Class)工具,在画布上创建酒店客房类(假设命名为Room)。

    4. 为酒店客房类添加属性:

      • 右键点击刚刚创建的Room类。
      • 选择“属性”(Attributes)。
      • 添加三个属性:id(String类型)、hotelId(String类型,注意拼写)、status(int类型)。
      • 设置这些属性的可见性修饰符为private。
    5. 为酒店客房类添加操作(方法):

      • 右键点击Room类。
      • 选择“方法”(Methods)。
      • 添加四个操作:addRoom、deleteRoom、updateRoom、getRoom。
      • 设置这些操作的可见性修饰符为public。
    6. 确保所有的类和操作都按照要求设置完毕后,可以在StarUML的“模型资源管理器”(Model Explorer)中查看和整理你的类图。

    7. 如果你的工作区中有其他与本次测评无关的类,可以按照要求将它们移到下方或者通过右键点击进行隐藏。

    8. 最后,保存你的类图到指定的路径(workspace/myshixun/submit/submit_step3/)并命名为step3,格式为mdj。

    这样,你就完成了酒店客房类的类图绘制。这个类图展示了酒店客房对象的属性(id、hotelId、status)和方法(addRoom、deleteRoom、updateRoom、getRoom)。

    评论

报告相同问题?

问题事件

  • 创建了问题 11月18日