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

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

开课学院及实验室:

学院

年级/专业/班

姓名

学号

实验课程名称

软件工程导论实验

成绩

实验项目名称

软件设计

指导老师

一、实验目的

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

二、实验器材

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

判断经济形势最常用的统计指标有哪些

分析判断经济形势常常围绕以下四大目标进行:经济增长、充分就业、物价稳定、国际收支平衡。这四大目标相互联系、相互影响、相互制约,宏观调控的目的在于恰当处理这四方面的关系,寻求一个最佳平衡点。通过全面观察这四大指标,可以…

postCss基本介绍

🌟什么是postCss? 我个人的理解postCss就是css界的babel,它提供一个过程,而在这个过程中,去干什么就是你自己的事情,所以很多人写插件,去做代码转换,或者兼容等等。 babel 提供过程 …

新的全息技术突破计算障碍

一种突破性的方法利用基于Lohmann透镜的衍射模型实时创建计算机生成全息图(CGH),在保持3D可视化质量的同时,大大降低了计算负荷要求。 全息显示为制作逼真的三维图像提供了一条令人兴奋的途径,这种图像给人以连续深度…

Pytest精通指南(26)钩子函数-依赖执行(pytest-dependency)

文章目录 前言应用场景插件安装注意事项参数分析函数名称依赖实现方式类下函数路径实现方式通过设置别名指定依赖定义依赖范围作用于类作用于模块作用于包作用于会话拓展-非常重要 前言 pytest-dependency的主要用途是确保测试用例按照指定的依赖关系顺序执行。 在一个复杂的测…

R语言绘制动态网络图Network教程WGCNA

今天分享的笔记是使用NetworkD3对WGCNA的共表达网络进行可视化,创建交互式动态网络图,展示基因之间的相互关系,可以用于转录组或者其他调控网络展示。 加权基因共表达网络分析 (WGCNA, Weighted correlation network analysis)是用来描述不同…

数值分析复习:Richardson外推和Romberg算法

文章目录 Richardson外推Romberg(龙贝格)算法 本篇文章适合个人复习翻阅,不建议新手入门使用 本专栏:数值分析复习 的前置知识主要有:数学分析、高等代数、泛函分析 本节继续考虑数值积分问题 Richardson外推 命题&a…

Python环境找不到解决方法

Python环境找不到 打开设置:Ctrl Alt S 添加Local Interpreter... 打开System Interpreter,找到本地安装的Python.exe路径,然后一路点OK Trust Project 如果打开工程时,出现如下对话框,请勾选 Trust projects in ...&…

CDN技术:全球化的数字内容快速分发系统

CDN技术:全球化的数字内容快速分发系统 在今天的互联网世界中,内容分发网络(CDN)技术起着至关重要的作用。它通过全球分布的服务器网络,快速、安全地将内容送达世界各地的用户,极大地提升了网页加载速度和…

使用 ollama 部署最新的Llama 3 70B本地模型

一、ollama是什么? 在本地启动并运行大型语言模型。运行Llama 3,Mistral, Gemma, Code Llama和其他模型。自定义并创建您自己的。 综合优点: 快速下载容器自动运行大模型,现在下载,马上上手。本地利用 cpu 运行大模型&#xff0c…

java:Java中的异常处理

目录 异常的概念与体系结构 异常的概念: 异常的体系结构: 异常的处理方式 防御式编程: 异常的抛出: 异常的捕获: finally: 代码示例: 异常的处理流程 自定义异常类 举例&#xff1a…

【Hadoop3.3.6】数据块副本放置策略及解析EditLog和FsImage

目录 一、摘要二、正文2.1 环境说明2.2 网络拓扑2.3 Hadoop副本放置策略介绍2.4 解析EditLog和Fsimage镜像文件三、小结一、摘要 通过解析存储于NameNode节点上的日志文件EditLog和镜像文件(元数据)Fsimage来反向验证HDFS的数据块副本存放策略,其目的是希望加深对Hadoop的数…

2024HVV在即| 最新漏洞CVE库(1.5W)与历史漏洞POC总结分享!

前言 也快到护网的时间了,每年的护网都是一场攻防实战的盛宴,那么漏洞库就是攻防红蓝双方人员的弹药库,红队人员可以通过工具进行监测是否存在历史漏洞方便快速打点,而蓝队则可以对资产进行梳理和监测历史漏洞,及时处理和修复,做好准备. 下面分享的…

【电控笔记5.4】pwm延迟

PWM延迟 1标准采样法 Td=MCU计算延迟+输出延迟 Tcon=电流控制周期 Ts=PWM载波周期 Td=1.5Ts(6.3节 ) 电流环跟PWM采样周期同步 2修改采样法

YOLOv5改进 | Conv篇 | 利用CVPR2024-DynamicConv提出的GhostModule改进C3(全网独家首发)

一、本文介绍 本文给大家带来的改进机制是CVPR2024的最新改进机制DynamicConv其是CVPR2024的最新改进机制,这个论文中介绍了一个名为ParameterNet的新型设计原则,它旨在在大规模视觉预训练模型中增加参数数量,同时尽量不增加浮点运算&#x…

如何使用 ArcGIS Pro 快速为黑白地图配色

对于某些拍摄时间比较久远的地图,限于当时的技术水平只有黑白的地图,针对这种情况,我们可以通过现在的地图为该地图进行配色,这里为大家讲解一下操作方法,希望能对你有所帮助。 数据来源 教程所使用的数据是从水经微…

kafka 命令行使用 消息的写入和读取 quickstart

文章目录 Intro命令日志zookeeper serverkafka servercreate topic && describe topic Intro Kafka在大型系统中可用作消息通道,一般是用程序语言作为客户端去调用kafka服务。 不过在这之前,可以先用下载kafka之后就包含的脚本文件等&#xff0…

ChromaDB教程

使用 Chroma DB,管理文本文档、将文本嵌入以及进行相似度搜索。 随着大型语言模型 (LLM) 及其应用的兴起,我们看到向量数据库越来越受欢迎。这是因为使用 LLM 需要一种与传统机器学习模型不同的方法。 LLM 的核心支持技术之一是…

数据库管理-第173期 OceanBase一体化Plus多模融合(20240422)

数据库管理173期 2024-04-22 数据库管理-第173期 OceanBase一体化Plus多模融合(20240422)1 架构简化2 不止融合2.1 行列混存2.2 多维使用2.3 多模JOIN 3 展望 数据库管理-第173期 OceanBase一体化Plus多模融合(20240422) 作者&…

Skill Check: Building Blocks for an LLM Application

Skill Check: Building Blocks for an LLM Application

腾讯云轻量2核4G5M服务器优惠价格165元1年,2024年多配置报价单

腾讯云轻量2核4G5M服务器优惠价格165元1年。腾讯云服务器价格表2024年最新价格,轻量2核2G3M服务器61元一年、2核2G4M服务器99元1年,三年560元、2核4G5M服务器165元一年、3年900元、轻量4核8M12M服务器646元15个月、4核16G10M配置32元1个月、8核32G配置11…