软件工程第六小组【萌友宠物圈】UML图设计

发布时间 2023-11-20 12:59:50作者: Htreys

一、数据流图【绘制人:刘兆隆】

 

主要外部实体:

  1. 用户 (User)
  2. 管理员 (Admin)

主要过程:

  1. 账户管理 (Account Management)

    • 处理用户注册、登录、信息修改等功能。
  2. 宠物笔记管理 (Pet Note Management)

    • 处理用户创建、编辑、删除宠物笔记,以及评论、点赞等互动。
  3. 宠物信息管理 (Pet Information Management)

    • 管理宠物的基本信息、习性、喂食记录等。
  4. 领养服务管理 (Adoption Service Management)

    • 处理宠物领养流程,包括发布领养信息、处理领养请求等。
  5. 内容监管 (Content Moderation)

    • 管理员对内容进行审核、删除不当信息、封禁违规用户。 

主要数据存储:

  1. 用户数据库 (User Database)

    • 存储用户的个人信息、账号状态等。
  2. 宠物数据库 (Pet Database)

    • 存储宠物信息、宠物状态(如在校、已领养、逝去)等。
  3. 笔记数据库 (Note Database)

    • 存储宠物笔记、评论、点赞数等。
  4. 领养信息数据库 (Adoption Database)

    • 存储领养信息、领养申请状态等。

主要数据流:

  1. 用户注册/登录信息 (User Signup/Login Information)

    • 从用户到账户管理的数据流。
  2. 用户资料更新 (User Profile Updates)

    • 从用户到用户数据库的数据流。
  3. 宠物笔记和互动 (Pet Notes and Interactions)

    • 从用户到宠物笔记管理的数据流,以及从宠物笔记管理到笔记数据库的数据流。
  4. 宠物信息 (Pet Information)

    • 从用户到宠物信息管理的数据流,以及从宠物信息管理到宠物数据库的数据流。
  5. 领养请求和状态更新 (Adoption Requests and Status Updates)

    • 从用户到领养服务管理的数据流,以及从领养服务管理到领养信息数据库的数据流。
  6. 内容审核和用户管理 (Content Review and User Management)

    • 从内容监管到笔记数据库和用户数据库的数据流。
     

 

二、用例图 【绘制人:李玉炜、刘兆隆】

在此用例图中,有两种类型的参与者:普通用户(User)和管理员(Admin)。图中的椭圆形表示系统的不同用例,即系统能够执行的操作或功能。

以下是用户和管理员可以执行的操作:

用户能够执行的操作:

  • 发布宠物信息:用户可以在系统中发布关于宠物的信息。
  • 查看领养信息:用户可以查看关于宠物领养的信息。
  • 编辑个人资料:用户可以编辑自己的个人资料。
  • 宠物逝去纪念:用户可以为逝去的宠物创建纪念内容。
  • 添加习性喂食:用户可以为宠物添加习性和喂食记录。
  • 领养宠物:用户可以领养宠物。
  • 参与宠物笔记:用户可以在宠物笔记中参与,例如发表自己的笔记。
  • 发送私信:用户可以给其他用户发送私信。
  • 点赞评论笔记:用户可以对宠物笔记进行点赞和评论。

管理员能够执行的操作:

  • 用户管理:管理员可以对用户账户进行管理操作。
  • 内容管理:管理员可以对系统中的内容进行管理,可能包括删除不当内容或审核用户发布的信息。

 三、类图【绘制人:刘兆隆】

 

主要类和它们的功能:

  1. User(用户类)

    • 属性:用户ID、昵称、性别、年龄、学校等。
    • 方法:登录、登出、编辑个人资料、查看宠物笔记、发送消息等。
  2. Admin(管理员类)

    • 方法:封禁用户、管理内容等。
  3. Pet(宠物基类)

    • 属性:宠物ID、名称、品种、状态(在校、已领养、逝去)、健康信息等。
    • 方法:添加宠物、更新宠物信息、删除宠物等。
  4. Cat(猫类,继承自Pet)

    • 特有属性和方法:针对猫的特定属性和行为。
  5. Dog(狗类,继承自Pet)

    • 特有属性和方法:针对狗的特定属性和行为。
  6. PetNote(宠物笔记类)

    • 属性:笔记ID、作者ID、内容、发布日期、点赞数、评论数等。
    • 方法:创建笔记、编辑笔记、删除笔记、点赞笔记、评论笔记等。
  7. Feeding(喂养记录类)

    • 属性:喂养记录ID、宠物ID、食物、喂食时间等。
    • 方法:添加喂养记录、更新喂养记录、删除喂养记录等。
  8. Adoption(领养信息类)

    • 属性:领养信息ID、宠物ID、领养者ID、领养日期、状态等。
    • 方法:领养宠物、退回宠物、更新领养信息等。
  9. Memorial(纪念类)

    • 属性:纪念ID、宠物ID、献花数等。
    • 方法:创建纪念、献花等。
  10. KnowledgeArticle(知识文章类)

    • 属性:文章ID、标题、内容、发布日期等。
    • 方法:查看文章、搜索文章等。

类之间的关系:

  • 继承关系:CatDog 类继承自 Pet 类。Admin 类继承自 User 类。
  • 关联关系:例如,User 类与 PetNote 类有关联,表示用户可以写宠物笔记。

四、时序图

1.喂养宠物

这个时序图的步骤描述:

用户向喂养系统提交喂养操作的请求。
喂养系统收到请求后,将喂养信息发送给机器审核系统进行自动审核。
机器审核系统根据预设的规则对喂养请求进行评估。
如果喂养信息符合规则(例如,喂养次数没有超过限制),机器审核系统会将审批结果返回给喂养系统,表示喂养次数加一,即喂养操作成功。
如果喂养信息不符合规则(例如,超出喂养次数限制),机器审核系统会将审批结果返回给喂养系统,表明喂养操作失败。
同时,喂养信息也会发送给人工审核系统。
人工审核系统允许操作人员手动检查喂养请求。
如果操作人员决定喂养信息是有效的,他们可以覆盖机器的决定,允许喂养次数加一。
如果操作人员决定喂养信息是无效的,喂养操作将被拒绝。

2.发帖

用户在客户端发起发帖请求。
客户端将发帖请求发送给服务器。
服务器接收到请求后,进入一个“alt”条件判断区块,在这里有两种可能的路径:
如果帖子内容不合规(条件“内容不合规”成立),服务器将处理结果返回给客户端,通知用户发帖不成功。
如果帖子内容合规(条件“内容合规”成立),服务器会将帖子数据存储到数据库中,并返回发帖成功的消息给客户端。
客户端接收到服务器的回应后,如果是发帖成功,则向用户显示发帖成功的信息。
如果发帖失败,客户端则显示发帖失败的信息。

在发帖功能中,涉及到了内容审核的逻辑,这是发帖功能的一个重要组成部分,以确保发出的内容符合预定规则或社区指南。

服务器和数据库之间的交互部分中:其中服务器在帖子内容合规时会将帖子数据保存到数据库。这个操作表明,一旦帖子通过审核,它就会被永久地记录在系统中供以后检索和显示。

3.私信

 

私信的功能实现可以描述如下:

用户开始发送私信的动作。
用户的私信请求被发送到身份验证系统(Authentication)。
身份验证系统验证用户的身份。
如果用户身份验证成功,系统将返回验证成功的消息给用户。
随后,用户的私信请求被发送到消息处理系统(Message Processing)。
消息处理系统处理私信请求,执行必要的消息格式化和检查等步骤。
消息处理完毕后,消息处理系统将私信发送给接收者。
接收者接收到私信,并可以开始阅读消息。
阅读完毕后,接收者可以选择回复消息。
如果接收者决定回复,他们的回复将被发送到消息处理系统。
消息处理系统处理回复,执行必要的消息格式化和检查等步骤。
处理完毕后,消息处理系统将回复发送给最初的发送者。
最初的发送者接收到回复消息,并可以阅读回复。
这个过程展示了私信功能中的基本交互流程,从发送私信的用户动作开始,通过身份验证,再到消息处理,最后到接收者阅读和回复消息。

 4.添加性格

 

行为者(用户)开始添加性格特征的操作。
用户的客户端向服务器发送添加性格特征的请求。
服务器接收到请求后,进行身份验证。
身份验证成功后,服务器将添加请求发送至数据库进行处理。
数据库处理完毕后,服务器会接收到一个来自数据库的响应。这个过程包含两个“alt”条件块,具体如下:
如果数据库保存成功(条件“保存性格特征成功”),服务器会向客户端发送成功保存的消息。
如果数据库保存失败(条件“保存性格特征失败”),服务器会向客户端发送失败的消息。
客户端接收到服务器的响应后,向用户显示相应的成功或失败的消息。
这是一个基本的客户端-服务器交互模式,用户发起操作后,客户端与服务器通信,并根据服务器处理的结果给用户一个反馈。

 

5.添加宠物

 

添加宠物的功能实现流程如下:

  1. 用户(Actor)启动添加宠物的过程。
  2. 用户在客户端输入宠物的相关信息,如种类、年龄、性别等,并发送这些信息到服务器。
  3. 服务器接收到宠物信息,并对其进行处理。这个处理过程涉及到两个“alt”条件框,分别对应于不同的情况:
    • 如果宠物信息有效并成功保存到数据库("宠物信息有效且保存成功"),服务器将向客户端返回一个成功的响应。
    • 如果宠物信息无效或保存失败("宠物信息无效或保存失败"),服务器将向客户端返回一个失败的响应。
  4. 客户端接收到来自服务器的响应。
    • 如果是成功的响应,客户端将显示宠物添加成功的消息。
    • 如果是失败的响应,客户端将显示宠物添加失败的消息。

同时,流程中还包含管理员(Admin)的角色:

    1. 管理员可以看到宠物的添加请求,并有权进行审核。
    2. 如果管理员同意添加宠物,他们将使用管理员客户端发送审核通过的消息。
    3. 服务器接收管理员的审核响应,并根据审核结果更新数据库。
    4. 数据库更新完成后,服务器将审核结果返回给用户的客户端。
    5. 用户的客户端接收到来自服务器的审核结果,并将结果展示给用户。
 

在“alt”条件框中,还有一个更深层次的条件分支,这可能涉及到更详细的业务规则或数据验证。

这个时序图展示了一个多步骤的交互流程,包括用户输入、服务器处理、管理员审核,以及最终用户接收反馈的过程。这种流程不仅考虑了用户操作的即时反馈,还涉及到了后续的管理员审批步骤,确保了系统的管理与控制。