软考-库存管理系统需求分析

一、场景

目标开发一套库存管理系统,该系统的部分需求如下:

(1)库存管理系统主要包括货物入库管理、货物出库管理、仓库管理、统计报表和系统管理等功能。

(2)库存管理系统的用户包括仓库管理员、仓库经理和系统管理员,用户必须在注册后才能使用系统功能;用户可以选择使用邮件注册或电话注册。

(3)仓库管理员在进行出入库操作前必须先登录;仓库经理可以通过系统查看统计报表,如果前一个月的报表未生成,则系统自动生成统计报表,否则直接显示。

(4)系统管理员可以在系统中设置仓库温度范围,当仓库内温度超过最高值或者低于最低值时,系统自动调用温控管理操作,连接温度调节系统进行制冷或加热。

(5)仓库管理功能要求每个月1日零点对前一个月货物入库和出库记录进行数据汇总操作。项目组决定构造用例模型以描述系统需求。

二、问题

2.1、问题1

用例建模的首要任务是识别系统中的参与者。请根据题目中所描述的需求,识别出系统中有哪些参与者?

2.2、问题2

用例建模的主要工作是书写用例规约。用例规约通常包括哪几部分内容?

2.3、问题3

建立了用例模型后,可以利用用例之间的关系调整用例模型,用例之间的关系包括哪几种?对于每种关系,请根据题目中所描述的需求分别给出一组用例。

三、解析

3.1、问题1

核心解题思路:谁(什么东西)在通过系统接口与系统交互?

不应该只找"人",不能漏掉"物"和"环境"。

① 具体的人:谁使用这一套系统?

根据需求找到【仓库管理员、仓库经理和系统管理员】

② 外部系统/硬件设备:系统是否需要控制机器,或者从外部机器获取数据?

根据需求找到【连接温度调节系统】

③ 时间或环境状态:有没有功能是"自动触发"的?

根据需求找到【温度超过最高值或者低于最低值时,系统自动调用温控管理操作】代表温度环境,还有【每个月1日零点对前一个月货物入库和出库记录进行数据汇总操作】代表时间环境。

3.2、问题2

通俗理解用例规约:当收到命令炒一盘菜,我们需要明确以下几点。

① 这是啥菜?

对应就是用例名称。

② 谁吃菜或者谁做菜?

对应就是参与者。

③ 做这道菜是为什么?

对应就是目标/简要说明。

④ 开火前要准备什么?

对应就是前置条件,比如需求中说的用户必须先登录,那么用户登录就是前置条件。

⑤ 具体怎么炒菜?

对应就是事件流/基本流程,比如用户第一步先点击按钮,第二步系统弹出什么界面。

⑥ 菜炒糊了怎么办?

对应扩展事件流/异常事件流,比如按钮的校验事件失败了,系统应该提出什么错误提示。

⑦ 菜炒完之后厨房变成什么样了?

对应后置条件,比如按钮点击完成,库存数据库更新。

3.3、问题3

核心解题思路:识别用例之间的关系(包含、扩展、泛化)

① 包含关系 (Include) ------ "必须做的公共步骤"

诀窍:不做A就没办法做B,就说A被B包含。

特征:复用。如果多个用例都有一段完全一样的步骤,就把这段步骤提出来做一个新用例。

根据需求找到【出入库操作前必须先登录】,所以出入库操作包含登录。

② 扩展关系 (Extend) ------ "特殊情况下的加餐"

诀窍:通常做A就可以了,特殊情况需要做B,就是A扩展出了B。

特征:可以理解为"插件"或者"分支剧情"。主流程可以独立运行,扩展流程不是必须发生的。

根据需求找到【仓库经理可以通过系统查看统计报表,如果前一个月的报表未生成,则系统自动生成统计报表,否则直接显示】,查看统计报表主流程通常可以独立完成,只有当统计报表没有的时候才需要生成统计报表。所以查看统计报表扩展出了生成统计报表。

③ 泛化关系 (Generalization) ------ "父子分类"

诀窍:A是B的其中一种。

特征:就像生物学分类,具体和抽象的区别。

根据需求找到【用户可以选择使用邮件注册或电话注册】,邮箱注册和电话注册都是注册的一种。所以注册泛化出了邮箱注册和电话注册。

四、答案

【问题1】 用例模型的参与者:仓库管理员、仓库经理、系统管理员、时间、温度、温度调节系统。

【问题2】 用例建模的主要工作是书写用例规约(use case specification),而不是画图。用例模板为一个给定项目的所有人员定义了用例规约的结果,其内容至少包括用例名、参与者、目标、前置条件、事件流(基本事件流和扩展事件流)和后置条件等,其他的还可以包括非功能需求和用例优先级等。

【问题3】 (1) 用例之间的关系包括:包含关系、扩展关系、泛化关系。 (2) "出入库操作"与"登录"属于包含关系; "查看统计报表"与"生成统计报表"属于扩展关系; "用户注册"与"电话注册"、"邮件注册"属于典型的泛化关系。

相关推荐
无心水3 天前
22、数学与经济管理(运筹学) 核心考点与学习笔记
人工智能·笔记·学习·架构师·软考·软考架构师·软考系统架构师
无心水7 天前
15、云原生架构设计理论与实践 核心考点与学习笔记
笔记·学习·云原生·架构师·软考·系统架构设计师·软考系统架构设计师
无心水9 天前
6、软件工程 核心考点与学习笔记
笔记·学习·软件工程·软考高级·架构师·软考·软考系统架构设计师
无心水9 天前
5、信息安全技术基础知识 核心学习笔
人工智能·学习·软考高级·架构师·软考·高级架构师·软考架构师
无心水9 天前
8、系统架构设计基础知识 核心考点与学习笔记
笔记·学习·系统架构·架构师·软考·软考架构师·软考高级架构师
Misnearch11 天前
第7章 面向对象技术
java·开发语言·软考
鱼头研学社17 天前
在职备考高项报班避坑:“客服说加微信发报价“到“官网自助下单“,中间差了啥
项目管理·软考·高项·备考
zlp199225 天前
软考(系统架构师)-案例分析之大模型ReAct与Plan-and-Execute
软考高级·软考·系统架构师·软考备考
我是胡杨学长1 个月前
软考考务冷知识 Vol.1:北京考区明确,雷同答卷直接成绩无效
项目管理·职场·软考·信息系统项目管理师·系统集成项目管理工程师
_默_1 个月前
软考中级—软件评测师 备考笔记:程序设计语言基础
软考·软考中级·评测师