Use Case Model

本文详细描述了用户注册、登录及图像上传等关键业务流程的设计方案,包括必填项验证、异常处理及用户体验优化等方面。

Use Case Model

Revision History
VersionDateDescriptionAuthor
Inception draft2/4/2007开始起草申习
    
    
    
    

User Register

Main Success Scenario: 用户输入注册信息,系统创建新用户

Alternate Scenario:

  • 用户以存在:提示用户,建议改

Scope:T-Stage

Level:User Goal

Primary Actor:所有用户

Stakeholders and Interests

  • 用户希望方便的注册,希望一次提交就可完成注册;希望自己的数据保密
  • 系统:不希望同一用户多次注册,不希望有同名用户,

Preconditions:系统正常

Success Guarantee:用户必须注册信息/已填写选填信息被记录;添加用户注册审计记录;用户没有填写的选填信息被初始化

Main Success Scenario

  1. 用户填写验证吗
  2. 用户填写用户名
  3. 用户填写密码
以上为必须操作
  1. 用户填写选真信息
  2. 用户提交注册信息
  3. 系统添加注册信息
  4. 系统回复用户

Extensions

  1. 验证码错误
    提示用户,禁止用户进行下一步操作
    1. 用户名不合法
      提示用户重填,禁止用户进行下一步操作
    2. 用户名重名
      提示用户重填,禁止用户进行下一步操作
  2. 两次输入密码不同
    提示用户,禁止用户进行下一步操作

Special Requirments

  • 验证码由数字和英文大小写字母组成,4位,验证不区分大小写
  • 用户名为email地址,不可重复
  • 密码提交时要经过MD5运算

Technology and Data Variations List

  • 验证码,用户名,密码的验证都通过AJAX异步自动完成,不需用户操作
  • MD5有32位数字和英文小写字母,共256bit长
  • 用户名合法性由Javascript的Regex类验证

Frequency of Occurrence:Often

Open Issue

  • 密码是否有强度要求
  • 用户注册后是否要求验证激活账号
  • 用户注册成功后,系统是否发email通知用户

User Login

用户输入认证信息,系统认证,完成登录

Scope:T-Stage

Level:User Goal

Primary Actor:注册用户

Stakeholders and Interests

  • 用户:希望登录时,自己的数据完全;不希望每次上线都要登录;
  • 系统:希望注册用户每次上线都登录;不希望有人用不合法的信息登录

Preconditions:系统正常

Success Guarantee:客户端/服务器端用户状态更新.

Main Success Scenario

Auto Login

  1. 系统读用户Cookie
  2. 系统验证用户Cookie信息合法性
  3. 更新用户状态

Manual Login

  1. 用户填写验证码
  2. 用户填写用户名/密码
  3. 用户提交信息
  4. 系统更新用户状态
  5. 系统回复用户

Extensions

Auto Login

    1. Cookie不存在
      初始化Cookie,转入Manual Login
    2. Cookie系统不可用
      提示用户开启Cookie功能
    1. Cookie信息不合法/过期
      转入Manual Login

Manual Login

  1. 验证码错误
    提示用户,禁止下一步操作
  2. N/A
  3. 登录信息无效
    提示用户重新登录/注册

Special Requirments

  • 用户名,密码,验证码同User Register
  • Cookie有效期:1个月

Technology and Data Variations List

Cookie中要记录的信息

  1. Username
  2. Password(MD5 Encrypted)
  3. Last Loging

Frequency of Occurrence:Often

Open Issue

  • Cookie不可用怎么办?
  • 用户多次登录密码无效是否锁定账号?
  • Cookie有效期是不可制定?

 

Image Repository

Main Success Scenario: 用户上传图像;自动完成图像处理系统自动修改文件名,保证文件不重名;系统存储在图像;系统更新审计数据库

Alternate Scenario:

  • 图像大于5MB/上传失败:提示用户
  • 用户存储空间用完:提示用户

Scope: T-Stage

Level: User Goal

Primary Actor: 已注册用户

Stakeholders and Interests

  • 用户:希望快捷地上传图像文件;希望自己的图像能被更多的人查看并评分
  • 系统:不希望在很短的时间里重复读同一个文件给不同的用户

Preconditions: 系统正常

Success Guarantee: 图像存储.初始化图像记录.添加审计记录.

Main Success Scenario

  1. 用户上传图像文件.
  2. 系统接收文件.
  3. 系统处理图像(Process Image),生成缩略图(Populate Thumnail)
  4. 系统存储图像,初始化图像记录
  5. 系统添加审计记录.

Extensions

    1. 用户未登录
      提示登录
    2. 用户上传文件扩展名不支持(支持的扩展名)
      提示用户更换文件
    1. 上传文件大于5MB
      提示用户文件太大
    2. 系统存储空间不够
      提示用户系统错误
  1. 图像格式不支持
    提示用户处理失败
  2. 用户可用空间以用完
    提示用户空间不足

Special Requirments

  • 支持的扩展名:BMP,JPG,PNG,GIF
  • 处理图像:图像等比例缩小到小于等于800*600,如果原图小于等800*600则不缩放
  • 缩略图:等比例缩小到120*120,压缩50%,若一次压缩图像仍大于8KB,则重复压缩直到小于等于8KB

Technology and Data Variations List

  • 图像编码/MimeType:"image/jpeg"
  • 图像扩展名:JPG

Frequency of Occurrence: 几乎总是

Open Issues

  • 不同用户可用的空间是否不同?
  • 图像大小是否合适?
  • 怎么显示上传进度?

Image Audit

管理员审计新添加的图像,删除非法图像,并向上转非法图像的用户发出警告

Remove Image

用户选择要删除的图像,系统接收并完成删除

Add Gallery

用户添加新的分类,系统接收并创建新分类

Image Service

Scope:T-Stage

Level:User Goal

Primary Actor:所有用户

Stakeholders and Interests

  • 用户:希望快速地获得想要的,希望自己可以在其它网站上插入本站的图像链接

Preconditions:

Success Guarantee:图像提交给用户

Main Success Scenario

  1. 用户发出请求
  2. 系统获取被请求的图像文件
  3. 系统将文件发送给用户

Extensions

    1. 用户请求随机图像
      转换成固定图像链接
    2. 用户请求来到站外
      转入Queued Image Service
    1. 用户请求图像不存在
      提示用户
    2. 用户没有权限访问被请求图像
      提示用户,如果用户未登录,建议用户登录/注册

Special Requirments

  • 随机图像由系统自动生成
  • 用户可以增加过滤条件,查看一定范围的随机图像
  • 所有用户可以查看所有图像的缩略图

Technology and Data Variations List

  • 发送给用户的图像格式为JPG,编码为image/jpeg

Frequency of Occurrence:几乎总是

Open Issue

  • 怎样知道请求来到站外?

Queued Image Service

Scope:T-Stage

Level:System

Primary Actor:System

Stakeholders and Interests

  • 用户:希望图像可以链接到其他网站(论坛,Blog等)
  • 系统:从站点外发出的图像获取请求必须放入服务队列中

Preconditions:请求来到站点外.图像存在

Success Guarantee:图像提交给用户

Main Success Scenario

  1. 系统收到请求并放入队列
  2. 系统依次服务请求

Extensions

  1. 队列满
    返回错误
  2. 队列为空
    系统挂起

Special Requirments

Technology and Data Variations List

Frequency of Occurrence:

Open Issue

  • 队列容量是多少?
  • 队列是否分级?

Rank Image

用户给图像打分,系统更新评分数据

Statistic Update

Admin发起更新命令,系统暂停服务,更新统计数据

<think>好的,我现在需要帮助用户了解如何使用EA工具绘制简易在线翻译器系统的UML用例图以及相关的最佳实践。首先,我得回顾一下用户之前的提问历史。用户之前已经询问过如何绘制类图和顺序图,现在转向用例模型,可能希望补充系统的高层功能视图。 用户的需求很明确,但需要确保用例图能够准确反映系统的功能,同时符合最佳实践。用户可能对UML的基本概念有一定了解,但需要具体的步骤指导和EA操作技巧。考虑到用户之前使用EA的经验,应该详细说明工具的具体操作,比如如何创建用例、参与者,以及如何建立关系。 接下来,我需要思考用例图的基本组成部分:参与者、用例、关系(包含、扩展、泛化)。对于在线翻译器来说,主要参与者可能是用户和可能的第三方翻译服务。用例可能包括输入文本、选择语言、翻译文本、显示结果、处理错误等。 需要提醒用户注意用例的粒度,避免过于宽泛或过于琐碎。比如,“翻译文本”是一个合适的用例,而分解成“输入文本”和“点击翻译按钮”可能太细。同时,最佳实践包括使用包含关系来复用公共用例,比如验证输入可能被多个用例包含。 在EA工具的操作步骤方面,用户需要知道如何创建模型、添加用例图、拖拽元素、设置关系等。可能还需要指导如何添加注释或约束,以及如何保持图的整洁和可读性。例如,使用布局工具自动排列元素,避免交叉线。 此外,用户可能对如何识别参与者感到困惑。需要建议他们从系统外部交互的对象出发,比如普通用户、管理员、外部API等。但根据“简易”系统的描述,可能只需要考虑用户和翻译引擎。 最后,需要总结注意事项,比如保持用例的独立性,使用正确的关系类型,以及如何验证用例图是否完整。可能还需要提到与之前类图和顺序图的一致性,确保整个模型协调。 现在要组织这些思考,按照步骤和最佳实践结构化回答,确保用户能够逐步跟随操作,同时理解背后的设计原则。还要注意引用之前的回答,保持连贯性,比如提到类图中的TranslationEngine类如何对应到用例中的翻译服务。</think>#### 如何用EA绘制简易在线翻译器系统的UML用例图与最佳实践 --- ### 一、用例图核心要素设计 1. **识别参与者** - **主要参与者**:普通用户(翻译请求者)、管理员(可选,若需管理翻译引擎) - **外部系统**:第三方翻译API(如Google Translate API)[^4] 2. **定义关键用例** ```plaintext |-------------------------| |-------------------------| | <<actor>> | | <<actor>> | | 用户 | | 翻译服务API | |-------------------------| |-------------------------| | ▲ | 输入翻译文本 | 调用服务 | 选择目标语言 | | 查看翻译结果 | ▼ | |-------------------------| |-------------------------| | <<用例>> |-----| <<用例>> | | 执行文本翻译 | | 调用外部API | |-------------------------| |-------------------------| ▲ | <<include>> |-------------------------| | <<用例>> | | 验证输入格式 | |-------------------------| ``` --- ### 二、EA工具操作步骤(以v15为例) 1. **创建用例模型** - 新建包 → 右键选择 **Add Diagram → UML Behavioral → Use Case** - 建议命名规范:`UC_OnlineTranslator` 2. **绘制基础元素** - **添加参与者**:工具栏选择 **Actor** 图标,双击命名(如"用户") - **插入用例**:使用 **Use Case** 工具绘制核心功能(如"执行文本翻译") - **关联关系**: - 用 **Association** 连接参与者与用例 - 用 **Include/Extend** 表示包含/扩展关系(右键连线选择构造型) 3. **高级功能设置** - **添加用例规约**:双击用例 → Notes栏填写前置/后置条件 ```plaintext [用例:执行文本翻译] 前置条件:用户已选择目标语言 后置条件:翻译结果存入临时缓存 ``` - **分层展示**:通过 **Package** 分模块(如"用户交互层"、"服务调用层") --- ### 三、最佳实践指南 1. **粒度控制原则** - 单个用例应完成独立业务目标(如"执行翻译"包含输入文本、选择语言、获取结果) - 避免碎片化(如不单独拆分"点击翻译按钮"为用例)[^5] 2. **关系运用技巧** - **«include»**:用于必选子流程(如翻译必须包含"验证输入格式") - **«extend»**:处理可选分支(如"重试失败翻译"扩展主用例) - 示例: ```plaintext <<extend>> (执行文本翻译) <───── (重试失败翻译) ▲ | <<include>> └───── (验证输入格式) ``` 3. **可视化优化** - 使用 **Auto Route** 自动调整连线路径(Diagram → Layout → Auto Route) - 通过 **Boundary** 元素划分系统边界(如区分用户操作与API调用区域) --- ### 四、常见问题解决方案 1. **用例冲突检测** - 使用EA的 **Consistency Checker**(Tools → Data Quality → Run Checks)识别未连接的用例 2. **复杂场景建模** - 对多语言支持场景,可添加泛化关系: ```plaintext <<用例>> 翻译文本 △ ┌─────┴─────┐ <<用例>> <<用例>> 英译中 中译英 ``` 3. **与类图关联** - 在EA中通过 **Traceability** 窗口将用例与类图功能模块绑定(如"执行翻译"用例关联`TranslationEngine`类) --- ### 五、成果输出建议 1. **分层导出**: - 业务视图(仅展示用户可见用例) - 技术视图(包含API交互细节) 2. **动态验证**: - 使用 **Scenario** 功能模拟用例流程(右键用例 → New Child Diagram → Activity) ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值