广州大学《软件工程》实验报告三软件设计

广州大学学生实验报告(三)

开课学院及实验室:

学院

年级/专业/班

姓名

学号

实验课程名称

软件工程导论实验

成绩

实验项目名称

软件设计

指导老师

一、实验目的

掌握软件设计建模技术,能够撰写软件设计文档。

二、实验器材

  • 计算机一台;
  • Rational Rose 等支持软件设计建模的软件。

三、实验内容

本实验需要完成如下任务:

  1. 实现类图建模;

类图表示类以及类与类之间的关系,显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图不显示暂时性的信息。类图是面向对象建模的主要组成部分。它既用于应用程序的系统分类的一般概念建模,也用于详细建模,将模型转换成编程代码。类图也可用于数据建模。

类图中存在的类有游客类、用户类、收件人类、商家类、客服类、物流公司类、账号类、个人信息类、浏览记录类、产品类、图书类、订单类、送货单类、订单项类。各个类中包含的具体内容如下:

(1)游客类包括游客昵称、游客号。

(2)用户类包括用户账号、用户账号密码、微信号、QQ号、收货地址、电话号、用户昵称、个人简介。

(3)收件人类包括收件人地址、姓名、手机号。

(4)商家类包括商家号、商家账号密码、商家地址、商家昵称。

(5)客服类包括客服账号、客服账号密码、客服昵称。

(6)物流公司类包括物流公司号、物流公司地址。

(7)账号类包括用户账号、用户账号密码、微信号、QQ号、电话号、账号状态、注册时间、最后登录时间。

(8)个人信息类包括用户账号、用户账号密码、微信号、QQ号、收货地址、电话号、用户昵称、个人简介。

(9)浏览记录类包括浏览时间、浏览内容、浏览记录号。

(10)产品类包括图书型号、图书数量、图书名。

(11)图书类包括图书号、图书名称、图书型号、图书价格、作者、出版社。

(12)订单类包括订单号、下单时间、订单地址、总计、支付类型。

(13)送货单类包括送货单号、发货时间、发货地址、收货地址、

(14)订单项类包括图书号、订单项号、商家号、图书型号、单价、送货状态。

  1. 绘制出相应的顺序图并生成协作图;

2.1生成订单的顺序图和协作图

其能够清晰描述网络书城商品管理子系统中生成订单的流程,其一共设计了五个类的对象,包括:用户、图书界面、图书、产品、支付。

首先用户请求图书下单界面,然后图书界面通过图书对象和产品对象分别获取图书号、图书型号和图书号对应的库存量。若库存量为空,则图书界面显示缺货提示;否则要求用户填写订单界面。用户选择单品数量,提交订单,图书界面返回订单生成界面给用户,要求用户进行订单支付。若用户成功支付,系统自动修改产品库存量,并显示订单成功支付界面;否则,显示订单待支付界面。

2.5 更新库存的顺序图和协作图

其能够清晰描述网络书城商品管理子系统中更新库存的流程,其一共设计了五个类的对象,包括:商家、图书库存信息修改界面、身份管理系统、库存管理系统、产品。

首先商家请求图书库存更新界面,然后身份管理系统检查商家身份。若商家身份异常,则由图书库存信息修改界面显示无法进行图书库存更新的提示;否则,库存管理系统从产品对象中获取图书类型和图书数量,然后再递交给图书库存信息修改界面进行图书库存信息显示。然后由商家指定需要更新库存量的图书类型,然后交由库存管理系统进行更新。若当前图书类型的库存数量为空,则图书库存信息修改界面显示图书库存更新失败提示;否则图书库存量更新成成功,显示图书库存量更新成功提示。

2.6 拆分订单的顺序图和协作图

其能够清晰描述网络书城商品管理子系统中拆分订单的流程,其一共设计了六个类的对象,包括: 拆分订单:订单、某订单:订单、订单项、图书、产品、送货单。

首先由系统自动执行拆分订单,然后某订单通过订单项获取商家号和图书型号,然后订单项再通过图书来获取商家号和图书型号,然后再依次由图书、订单项把图书号和图书型号递交给某订单。然后某订单再向产品类获取商家号对应的图书型号的库存。若库存为空,则拆分失败;否则,若商家号及其对应的图书型号的库存不为空且不存在于送货单中,则为送货单创建商家号并添加产品号;若商家号及其对应的图书型号的库存不为空且存在于送货单中,则只需添加产品号。最后显示拆分结果。

  1. 绘制相应的状态图;

3.1 订单状态图

事件开始(用户下单)后,订单处于待支付状态。若用户在规定时间(一天)内完成付款操作,订单状态转向已支付状态;否则订单逾时自动取消,事件结束。订单用户完成付款后,就会进入备货中的状态。订单中的商品发货后,就会进入运输中状态。在已支付、备货中、运输中这三种状态时,用户均可取消订单。订单中的商品送达目的地后,状态变为已送达,待确认收货。若用户签收并点击确认收货或用户签收后超过7天后自动确认收货,订单状态转为订单完成,事件结束;若用户拒绝签收,用户退货,订单状态转为退货中。商品退回时,订单状态变为已送达商家收货地址,待商家确认收货后,订单状态转为订单完成,事件结束。

3.2 库存查询状态图

事件开始(商家点击库存查询按钮)后,状态处于库存查询提示的状态。商家输入库存查询条件后,状态转向图书号已写入的状态。待商家点击库存查询提价按钮后,状态变为等待库存查询结果的状态。若无查询结果,则状态变为图书不存在的状态,事件结束;否则,状态变为图书数量显示状态,事件结束。

  1. 绘制相应的活动图。

4.3 创建订单活动图

事件开始(用户下单)后,系统自动创建订单,然后等待用户进行支付订单。用户支付订单后,商家进行备货,然后交由物流公司进行商品运输,待物流公司将商品送达至客户时,判断用户是否签收商品。若用户拒绝签收,用户选择进行退货,则用户将商品交由物流公司退回运输,待物流公司将商品送回至商家后,商家进行确认收货,最终订单完成,事件结束。若用户签收商品,则订单完成,事件结束。

4.4 拆分订单活动图

事件开始(用户下单)后,系统自动生成订单,然后进行拆分订单。系统获取商家号和商品型号,然后获取商家号对应的商品型号的库存。判断库存是否为空,若为空,订单拆分失败,事件结束;否则,判断商家号和商品型号是否存在于送货单中,若不存在,则为送货单创建商家号并添加产品号;若存在,则直接添加产品号。最后显示订单拆分结果,事件结束。

  • 实验感想

1、在本实验中,我根据实验一中的用例图来进行网络书城地类图的设计,在类图中绘制了用户类、个人信息类、订单类等相关类,并绘制类与类之间的关系,其中尤为需要注意不要出错的是订单和订单项的关系是聚合关系。

2、在绘制网络书城系统的商品管理相关的顺序图过程中,我一开始没有将类设置为类的三种版型,在具体询问老师之后,明白了顺序图中大多数类都描述成实体类,很少使用控制类。课堂上提到的“界面”相关的类使用边界类的这种版型,“用户”、“游客”等相关类使用实体类的这种版型。在考虑到这些问题之后,我对顺序图进行了重新绘制。

3、顺序图和协作图是统一建模语言中两种不同但密切相关的图表,它们均用于描述系统中的交互和通信,均属于UML的行为图。顺序图主要关注系统中对象之间的交互信顺序和信息传递,展示生命周期中某特定时间点上对象之间的相互作用。协作图则强调对象之间结构和协作关系,显示对象之间的关联以及它们如何一起协作完成某个功能。在实验过程中,每个绘制出来的顺序图可以通过rational rose中的F5键进行直接转化为,非常方便。

4、通过绘制订单状态图,我能够清晰地描述了订单的整个生命周期,从用户下单到订单完成的各个阶段都有详细的状态和事件定义。这有助于理解订单在不同阶段的状态转换和用户与系统之间的交互。尤其是在用户取消订单、确认收货和退货的情境下,状态图很好地捕捉了用户的各种操作和系统的响应。库存查询状态图展示了商家进行库存查询的流程。通过定义不同的状态和事件,呈现了商家查询库存的步骤,包括输入查询条件、提交查询请求以及处理查询结果的过程。

5、在绘制创建订单互动图中,我明确地描述了商家、物流公司和用户之间的协同流程。此外,我还考虑到了用户拒绝签收并选择退货的情景。在绘制拆分订单活动图中,展示了系统如何处理订单的拆分过程。

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

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

相关文章

前端入门:HTML(列表和边框案例)

1.列表知识&#xff1a; list-style-position有两个值&#xff0c;分别是inside&#xff0c;outside&#xff0c;分别表示在标签里面和在标签外面。 2.案例&#xff1a; 源代码&#xff1a; html: <body> <div class"bigBox"> <div>在线解答问题…

力扣(leetcode) 407. 接雨水 II 3D接雨水

力扣(leetcode) 407. 接雨水 II 3D接雨水 给你一个 m x n 的矩阵&#xff0c;其中的值均为非负整数&#xff0c;代表二维高度图每个单元的高度&#xff0c;请计算图中形状最多能接多少体积的雨水。 示例 1: 输入: heightMap [[1,4,3,1,3,2],[3,2,1,3,2,4],[2,3,3,2,3,1]] 输…

【Qt】:界面优化(二:控件样式)

界面优化 一.按钮二.复选框三.输入框四.列表五.菜单栏六.登陆界面七.小结 一.按钮 二.复选框 单选框的属性与复选框一样&#xff0c;就不多演示了。 三.输入框 四.列表 关于qlineargradient&#xff1a; qlineargradient有6个参数.x1, y1:标注了一个起点.x2, y2:标注了一个终点…

【Hadoop】-Apache Hive概述 Hive架构[11]

目录 Apache Hive概述 一、分布式SQL计算-Hive 二、为什么使用Hive Hive架构 一、Hive组件 Apache Hive概述 Apache Hive是一个在Hadoop上构建的数据仓库基础设施&#xff0c;它提供了一个SQL-Like查询语言来分析和查询大规模的数据集。Hive将结构化查询语言&#xff08;…

编写一款2D CAD/CAM软件(十六)交互绘制图形

绘制步骤 以交互绘制圆形为例&#xff1a; 点击鼠标左键&#xff0c;确定圆心位置&#xff1b;抬起鼠标&#xff0c;移动鼠标&#xff0c;半径随鼠标位置变化&#xff1b;点击左键确定半径&#xff0c;完成圆的绘制。 绘制结果 Code /// j-operator-create-circle.h#pragma…

自定义表单系统开源是否好用?

在竞争激烈的社会中&#xff0c;拥有够灵活、易维护、可视化界面等优势特点的低代码技术平台获得了很多中小型企业的认可与信赖。在提升企业竞争力、办公效率和规避信息孤岛等方面具有重要的应用价值和作用。流程信息为客户提供低代码技术平台、自定义表单系统开源&#xff0c;…

Android驱动开发之如何编译和更换内核

编译内核可以使用图形化的界面配置,也可以直接使用脚本。在X86_64模拟器环境下,不用交叉编译,而交叉编译工具很容易出现兼容问题,一般也只能使用芯片厂商提供的工具,而不是GNU提供的工具。 android内核开发流程以及架构变化了很多,详情请看 内核官网 内核版本选择 由…

去雾笔记-Pixel Shuffle,逆Pixel Shuffle,棋盘效应,转置卷积

文章目录 1.Pixel Shuffle2.Inverse Pixel Shuffle3.棋盘效应4.转置卷积5.宽激活块6.PSPNet7.反射填充层&#xff08;Reflective Padding Layer&#xff09;8.tanh层 1.Pixel Shuffle Pixel Shuffle是一种用于图像超分辨率的技术&#xff0c;它通过重新排列图像的像素来增加图…

Windows 安全中心:页面不可用 你的 IT 管理员已限制对此应用的某些区域的访问,并且你尝试访问的项目不可用。有关详细信息,请与 IT 支持人员联系。

问题 1&#xff1a;Windows 安全中心提示&#xff1a;【页面不可用 你的 IT 管理员已限制对此应用的某些区域的访问&#xff0c;并且你尝试访问的项目不可用。有关详细信息&#xff0c;请与 IT 支持人员联系。】 修复 Microsoft.SecHealthUI 方法 1&#xff1a;命令自动重装安…

Hive架构原理

Hive Hive 的架构是设计用于在大数据环境下进行数据仓库操作和分析的系统。它建立在 Hadoop 生态系统之上&#xff0c;利用 Hadoop 的存储&#xff08;HDFS&#xff09;和计算&#xff08;MapReduce、Tez、Spark 等&#xff09;能力。 1. 元数据存储&#xff08;Metastore&am…

Linux(centos)服务器10秒快速配置Java环境

查看是否已安装Java java -version 查看yum能下载的Java版本 yum -y list java*这里选择安装Java 11 yum install -y java-11-openjdk.x86_64查看是否安装成功并配置到环境里 java -version结束

linux系统安全与应用【下】

目录 1.开关机安全控制 1.1GRUB限制 2.终端登录安全控制 2.1 限制root只在安全终端登录 2.2 禁止普通用户登录 3.弱口令检测 3.1 Joth the Ripper&#xff08;JR&#xff09; 4.网络端口扫描 4.1 nmap命令 1.开关机安全控制 1.1GRUB限制 通常情况下在系统开机进入GRU…