软件工程第四周——常用uml图的整理

先放一个总体uml类型概览,本文将对小米便签中涉及到的五种图做介绍以及强调要点

注意:需求阶段的uml图可以使用中文来表示图中的元素和互动,设计阶段则应该使用编码语言(如类名、方法名、参数名...)表示

1.用例图

用例图从用户(角色)的角度出发,描述角色和用例之间的关系。它展示了谁要使用系统以及他们可以做什么

 主要构成元素:参与者(Actor),用例(Use Case),子系统(Subsystem),关系(Association)

2.类图

类图描述系统中的类以及各个类之间的关系的静态视图。它是定义其他图的基础,常见的关系包括泛化、实现、关联、聚合、组合和和依赖

 

符号含义如下:

第一格类名,第二格属性,第三格方法,格式为名称:类型

3.顺序图

用来显示你的参与者如何以一系列顺序的步骤与系统的对象交互的模型。顺序图可以用来展示对象之间是如何进行交互的。

4.包图

包(package)是用于把模型本身组织成层次结构的通用机制,它不能执行。包是一个组织模型的组块,是一种将设计元素分组组织的通用机制。

5.状态图

状态图是一种行为图。描述一个特定对象的所有可能的状态以及引起状态转换的事件。

### 小米便签应用程序 UML设计 对于小米便签应用程序而言,构建其UML有助于理解系统的内部结构以及各个组件之间的交互方式。基于提供的参考资料[^1],可以推测该应用可能存在的主要类及其属性和方法。 #### 主要类定义 - **Note** - 属性:`id`, `title`, `content`, `creationDate`, `lastModifiedDate` - 方法:`create()`, `update()`, `delete()` - **User** - 属性:`userId`, `username`, `passwordHash` - 方法:`login()`, `logout()` - **Tag** - 属性:`tagId`, `tagName` - 方法:`addTagToNote(note)`, `removeTagFromNote(note)` 这些类之间存在多种关系: - 用户(User)与笔记(Note)间存在着一对多的关系,即一个用户可以创建多个笔记; - 笔记(Note)与标签(Tag)也是一对多的关系,意味着一条笔记能够拥有若干个不同的标签; 此外,在实际开发过程中可能会涉及到更多辅助性的实体和服务层对象来支持业务逻辑的实现,比如用于数据持久化的DAO(Data Access Object),或是负责处理特定功能的服务(Service)类等[^3]。 为了更精确地描绘出整个系统架构并发现潜在的设计缺陷或优化空间,建议参考项目源码库中的现有文档资料进一步细化上述模型,并考虑引入第三方静态分析工具如SonarQube来进行全面的质量评估。 ```mermaid classDiagram class User{ +String userId +String username +String passwordHash +void login() +void logout() } class Note{ +int id +String title +String content +Date creationDate +Date lastModifiedDate +void create() +void update() +void delete() } class Tag{ +int tagId +String tagName +void addTagToNote(Note note) +void removeTagFromNote(Note note) } User "1" -- "*" Note : creates >>> Note "1" -- "*" Tag : has >>> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值