uml实验三

news/2025/1/10 16:45:25/文章来源:https://www.cnblogs.com/-Xuxu/p/18664234

逻辑视图模型建模
班级:信2305-3 学号: 20234316 姓名: 徐戌
一 实验目的
 理解面向对象系统分析和对象类建模的概念;
 了解和掌握面向对象系统分析的方法和步骤;
 了解和掌握寻找待开发系统中类的方法和技巧;
 了解和掌握分析类之间继承关系的方法;
 了解和掌握分析类之间的关联关系的方法;
 掌握使用Rational Rose建立类图模型的方法;
二 实验环境及实验准备
 所需硬件环境为微机;
 所需软件环境为Rational Rose、Miscrosoft Word等;
 熟悉Rational Rose下类模型建模的方法和步骤;
 完成系统用例模型建模;
三 实验内容
(1)分析系统用例,确定对象类

  1. 收集相关信息
    1.1 系统交互角色(Actors)
    • 酒店工作人员:负责客户入住、退房、预订管理、调整房间配置操作。
    • 客户:通过系统进行预订、入住、查询房间、结账。
    • 酒店经理:管理酒店的运营、查看报表、调整房间配置。
    • 酒店服务人员:负责房间清洁、维护。
    1.2 工作环境/场所(Environment)
    • 前台:客户办理入住、退房、查询等操作的主要地点。
    • 客房:客户入住并享受酒店服务的地方。
    • 餐厅:提供食物与饮品的地方。
    • 会议室:用于商务会议等活动的场所。
    1.3 概念实体或事件(Conceptual Entities/Events)
    系统中涉及的概念实体和事件是系统中的核心数据和操作,如:
    • 预订:客户通过系统进行房间预订的操作。
    • 入住:客户正式进入酒店并登记的过程。
    • 结账:客户退房并支付账单的过程。
    • 账单:显示客户消费和应支付金额的单据。
    • 房间类型:房间的不同类型,如单人间、双人间、套房。
    1.4 部门(Department)
    酒店内部的各个部门也是潜在的对象类,例如:
    • 前台部:负责客户入住、退房、信息登记。
    • 客房服务部:负责客房清洁、用品更换、客户特殊需求的处理。
    • 餐饮部:负责餐厅服务、餐饮管理。
    • 安保部:负责酒店的安全保障、监控管理。
    对象类整理并分类
  2. 人类角色类(有形性、可操作性):
    • 酒店工作人员
    • 客户
    • 酒店经理
    • 酒店服务人员
  3. 物理空间类(有形性、操作性):
    • 前台
    • 客房
    • 餐厅
    • 会议室
  4. 操作类(事件类)(顺序性、持久性):
    • 预订
    • 入住
    • 结账
  5. 数据类(概念实体类)(持久性、完整性):
    • 账单
    • 房间类型
  6. 部门类(包含性、持久性):
    • 前台部
    • 客房服务部
    • 餐饮部
    • 安保部
    (2)、采用 CRC 卡片标识对象类及其属性、操作
  7. 酒店工作人员(类名)
    • 类的类型:角色类、人员
    • 类的特征:有形的、可操作性
    • 责任:
    • 属性:
    • name: String // 员工姓名
    • employeeId: String // 员工编号
    • position: String // 职位
    • shift: String // 工作班次
    • 操作:
    • checkIn(customer: Customer): void // 办理客户入住
    • checkOut(customer: Customer): void // 办理客户退房
    • handleBooking(customer: Customer, room: Room): void // 处理客户预订
    • manageRoomAssignments(room: Room, status: String): void // 管理房间分配和状态
    • 协作者:
    • Customer: 与客户进行入住、退房、预订操作。
    • Room: 进行房间分配和状态更新。
    • FrontDesk: 与前台协调操作,记录客户入住、退房。

  1. 客户(类名)
    • 类的类型:角色类、人员
    • 类的特征:有形的、可操作性
    • 责任:
    • 属性:
    • name: String // 客户姓名
    • id: String // 客户ID
    • contactInfo: String // 联系方式
    • 操作:
    • makeReservation(roomType: RoomType): void // 客户进行房间预订
    • checkInAtHotel(): void // 客户办理入住
    • checkOutOfHotel(): void // 客户办理退房
    • payBill(amount: float): void // 客户支付账单
    • 协作者:
    • Booking: 与预订类合作进行预订操作。
    • Room: 与房间类合作分配房间。
    • Bill: 用于计算和结算客户账单。

  1. 酒店经理(类名)
    • 类的类型:角色类、人员
    • 类的特征:有形的、可操作性
    • 责任:
    • 属性:
    • name: String // 经理姓名
    • employeeId: String // 经理ID
    • role: String // 职位(例如:酒店经理)
    • 操作:
    • generateReport(): Report // 生成运营报表
    • adjustRoomAvailability(room: Room, availability: Boolean): void // 调整房间的可用性
    • handleCustomerComplaints(complaint: Complaint): void // 处理客户投诉
    • manageHotelOperations(): void // 管理酒店运营
    • 协作者:
    • Room: 管理房间的可用性。
    • FrontDesk: 通过前台管理客户的入住和退房。
    • Staff: 协调和管理酒店工作人员的工作。
    • Report: 生成和查看酒店运营报告。

  1. 酒店服务人员(类名)
    • 类的类型:角色类、人员
    • 类的特征:有形的、可操作性
    • 责任:
    • 属性:
    • name: String // 服务员姓名
    • employeeId: String // 服务员编号
    • tasksAssigned: List // 被分配的任务列表
    • 操作:
    • cleanRoom(room: Room): void // 清洁房间
    • respondToCustomerRequest(request: String): void // 响应客户请求
    • reportMaintenanceIssue(issue: String): void // 上报维护问题
    • 协作者:
    • Room: 负责清洁和维护房间。
    • Customer: 提供服务和回应客户请求。
    • Maintenance: 与维护部门协作,报告设备问题。

  1. 前台(类名)
    • 类的类型:物理空间类
    • 类的特征:有形的、操作性
    • 责任:
    • 属性:
    • location: String // 前台位置(例如:大厅中央)
    • hoursOfOperation: String // 前台营业时间
    • 操作:
    • checkInCustomer(customer: Customer): void // 办理客户入住
    • checkOutCustomer(customer: Customer): void // 办理客户退房
    • processBooking(customer: Customer, roomType: RoomType): void // 处理客户预订
    • provideRoomInfo(room: Room): void // 提供房间信息
    • 协作者:
    • Customer: 办理客户的入住、退房、预订。
    • Room: 提供房间信息并分配房间。
    • HotelStaff: 协助管理客户入住和退房。

  1. 客房(类名)
    • 类的类型:物理空间类
    • 类的特征:有形的、操作性
    • 责任:
    • 属性:
    • roomNumber: String // 房间号
    • roomType: RoomType // 房间类型(单人间、双人间等)
    • status: String // 房间状态(如:已入住、空闲、维修中等)
    • price: float // 房间价格
    • 操作:
    • updateRoomStatus(status: String): void // 更新房间状态
    • assignRoomToCustomer(customer: Customer): void // 为客户分配房间
    • 协作者:
    • Customer: 处理房间分配。
    • HotelStaff: 协助管理房间状态。

  1. 账单(类名)
    • 类的类型:数据类
    • 类的特征:持久性、完整性
    • 责任:
    • 属性:
    • billNumber: String // 账单编号
    • totalAmount: float // 账单总金额
    • items: List // 账单项目列表(如:住宿费、餐饮费等)
    • 操作:
    • generateBill(customer: Customer): void // 生成账单
    • addItemToBill(item: String, cost: float): void // 向账单添加项目
    • processPayment(amount: float): void // 处理支付
    • 协作者:
    • Customer: 客户生成并支付账单。
    • HotelStaff: 协助生成和处理账单。

  1. 房间类型(类名)
    • 类的类型:数据类
    • 类的特征:持久性、完整性
    • 责任:
    • 属性:
    • typeName: String // 房间类型名称(如:单人间、双人间、套房等)
    • price: float // 每种房间类型的价格
    • description: String // 房间类型描述(如:房间大小、设施等)
    • 操作:
    • setRoomTypePrice(price: float): void // 设置房间类型价格
    • updateRoomTypeDescription(description: String): void // 更新房间类型描述
    • 协作者:
    • Room: 为房间类型提供信息。
    • Booking: 客户选择房间类型时使用。

  1. 餐厅(类名)
    • 类的类型:物理空间类
    • 类的特征:有形的、操作性
    • 责任:
    • 属性:
    • location: String // 餐厅位置
    • menu: List // 餐厅菜单
    • 操作:
    • takeOrder(order: String): void // 接收客户订单
    • serveFood(order: String): void // 上菜
    • updateMenu(newItem: String): void // 更新菜单
    • 协作者:
    • Customer: 提供点餐服务。
    • Kitchen: 协同厨房准备食物。

(3)对象类间继承关系建模,绘制类图

(4)对象类间语义关联关系建模,完善类图

四 实验分析及问题思考
绘制类图时不够言简意赅,要提取关键词

逻辑视图模型建模
班级: 信2305-3 学号: 20234316 姓名:徐戌
实验自评
实验内容 自评结果(在对应格内打)
不熟练 一般 比较熟练 熟练
识别对象类及其属性、操作 √
确定类间关系 √
绘制类图,描述系统静态逻辑结构 √
实验体会
逻辑视图模型建模是一项具有挑战性但也非常有意义的任务。在进行逻辑视图模型建模实验的过程中,我认为以下几点是比较重要的体会:

首先,对系统的功能和需求有清晰的理解是至关重要的。只有明确了系统的目标和用户的需求,才能更好地设计逻辑视图模型,确保模型能够准确地反映系统的结构和行为。

其次,注重模型的抽象和简化。逻辑视图模型应该能够捕捉系统的主要特征和关系,避免过于复杂的细节,以便于理解和分析。

另外,良好的文档记录也是必不可少的。在建模过程中,及时记录模型的设计思路、假设和决策,有助于后续的维护和改进,也方便与其他团队成员进行沟通和协作。

最后,不断地验证和改进模型。通过实际的案例和数据对模型进行验证,发现问题及时进行调整和优化,以提高模型的准确性和实用性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/867212.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通过本地私有的镜像仓库harbor解决网络原因导致的jdk无法加载而造成的docker打包错误.v2.250110

​各种网络原因,或是docker.io无法访问,或是阿里的镜像源故障,导致java打包发布的时候报错,很影响代码发布的质量。解决思路:墙出去把jdk下载下来,代码使用本地的harbor库进行引用,一劳永逸。此解决方法也适用于国外优质不频繁变动的镜像源的本地化使用。解决方法 1. 自…

[题目记录]AGC005E Sugigma: The Showdown

一道通过自己生成思路做出的思维题 . 通过分析博弈过程发现问题其实没有那么复杂 , 然后层层分析转化问题即可 .AGC005E Sugigma: The Showdown 题意 给出两棵树 , 点的编号相同 , 连边方式不同 . 初始 A 在树 \(a\) 上的点 \(x\) , B 在树 \(b\) 上的点 \(y\) , 两人轮流走 , …

代码随想论算法训练营第3天 | 链表理论基础,203.移除链表元素,707.设计链表,206.反转链表

一、刷题部分 1.1 链表理论基础原文链接:代码随想录 题目链接:🈚️链表是由一个个节点串联而成的,节点包含数据域和指针域,数据域用来存放数据,而指针域实现了节点之间的串联。 链表中有单链表、双链表、循环链表:链表的物理空间是不连续的,通过指针存储下一节点的物理…

ABAP配置:OY01 定义国家/地区

配置:OY01 定义国家/地区 事务代码:OY01 配置路径 SPRO-ABAP平台-常规设置-设置国家-定义国家/地区 配置路径截图配置描述 国家是SAP里面一个非常重要的概念,SAP国家概念涉及公司代码、工厂、主数据、跨国银行交易,系统默认自带ISO相关的国家编码,在S/4中,一些配置转移到…

关于GTM,这些评价指标你都知道吗?

目标跟踪指标是企业实现持续增长和盈利的重要工具。通过定期监控和分析这些指标,企业可以及时发现潜在问题并采取相应的改进措施,以保持其竞争力并实现业务目标。因此,企业应该重视这些指标的应用,并不断优化其监控和分析流程,以确保其业务运营的顺利进行。Goal Tracking …

ODX诊断数据库转换工具 - DDC

INTEWORK-DDC (Diagnostic Database Convertor) 是将诊断调查问卷转换为标准ODX(2.2.0)数据库的工具。ODX是格式标准化的诊断数据库文件,我们在诊断不同的车或者不同的ECU时,只需要加载适配这个车型或ECU的ODX文件即可,而无需对诊断仪做任何改变。ODX统一了诊断文件的格式,…

异地多活架构进阶:如何解决写后立即读场景问题?【转】

在《醍醐灌顶!异地多活架构设计看这篇就够了》一文中,基于容灾需要,讨论了数据写入的架构模型。数据读取方面,重点在于解决读取请求的负载分担、路由选择的问题,对于容灾架构的选择影响不大。不过,其中的“写后立即读”场景,是个一致性范畴的问题,即写入的数据和写入后…

JAVA之面向对象

1、设计对象并使用类和对象 类(设计图):是对象共同特征的描述; 对象:是真实存在的具体实例; 在java中,必须先设计类,才能获得对象。 如何得到类的对象:类名 对象名 = new 类名(); 如何使用对象: 访问属性:对象名.成员变量 访问行为:对象名.方法…

免费手动打Windows Server补丁

免费手动打Windows Server 2008 R2补丁https://catalog.update.microsoft.com/search.aspx?q=kb4474419然后到windows上双击运行即可本文来自博客园,作者:六月OvO,转载请注明原文链接:https://www.cnblogs.com/chenlifan/p/18664077

pwn1_sctf_2016 1

打开ida反汇编看一下,是c++,无所谓,复制问一下ai先让我们输入s的数据,读取长度限制在32字节。然后replace函数会将s里面的 I 替换成 you 。最后输出s。 分析一下,s距离ebp为0x3C(60字节),且我们最多只能输入32字节的,但经过replace函数,一个字节的‘I’会被替换成三个…

UDS-ECU程序刷写

UDS(unified diagnostic services)统一诊断服务主要是针对汽车上对ECU进行诊断服务规范,下图是UDS在OSI分层中的具体规范,基于UDS的刷写应用逻辑体现在应用层的ISO14229规范。一、功能介绍 UDS(unified diagnostic services)统一诊断服务主要是针对汽车上对ECU进行诊断服…

主体分割技术,提升图像信息提取能力

在智能设备普及和AI技术进步的推动下,用户对线上互动的质量、个性化以及沉浸式体验的追求日益增强。例如,对于热衷于图片编辑或视频制作的用户来说,他们需要一种快速而简便的方法来将特定主体从背景中分离出来。 HarmonyOS SDK 基础视觉服务(Core Vision Kit)提供主体分割…