案例一

某软件公司拟为物流企业开发一套库存管理系统,该系统的部分需求陈述如下:

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

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

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

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

(5) 仓库管理功能要求每个月1日零点对前一个月货物入库和出库记录进行数据汇总操作。

项目组决定构造用例模型以描述系统需求。

【问题1  

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

(1)仓库管理员;(2)仓库经理;(3)系统管理员;(4)时间;(5)温度;(6)温度调节系统。

【解析】

本题考查考生对于需求建模的掌握情况。

用例方法是一种需求建模技术,在获取系统需求并记录后,从用户的要求和期望中进行整理与提炼,从而建立用例模型。在面向对象分析方法中,构建用例模型一般需要经历四个阶段,分别是识别参与者、合并需求获得用例、细化用例描述和调整用例模型。 根据题目所述需求,绘制系统用例图如下图所示。

参与者可以表示与系统接口的任何事物和任何人,这可以包括人(不仅仅是最终用户)、外部系统和其他组织。根据需求陈述(2)可知系统的用户包括仓库管理员、仓库经理和系统管理员;根据需求陈述(4)和系统有交互关系的外部系统是温度调节系统, 温度通过温度监控接口与系统关联;根据需求陈述(5)所描述时态事件,时间会触发系统的行为。所以参与者包括了仓库管理员、仓库经理、系统管理员、时间、温度、温度调节系统。

【问题2  

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

(1)用例名称;(2)简要说明;(3)事件流;(4)非功能需求;(5)前置条件和后置条件;(6)扩展点;(7)优先级。

用例模型是由用例图和每一个用例的详细描述——用例规约所组成的。RUP中提供了用例规约的模板,每一个用例的用例规约都应该包含以下内容:用例名称,简要说明,事件流,非功能需求,前置条件和后置条件,扩展点,优先级。

【问题3】

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

用例之间的关系有三种,分别是包含关系、扩展关系和泛化关系。

(1)包含关系:用例“入库管理”和用例“用户登录”之间的关系;用例“出库管理”与用例“用户登录”之间的关系;

(2)扩展关系:用例“査看统计报表”和用例“生成统计报表”之间的关系;

(3)泛化关系:用例“用户注册”和用例“电话注册”之间的关系;用例“邮件注册”和用例“电话注册”之间的关系。

用例之间的关系有包含关系、扩展关系和泛化关系。(1)包含关系:一个用例可以简单地包含其他用例具有的行为,并把它所包含的用例行为作为自身行为的一部分,这称作包含关系。用例“入库管理”和用例“用户登录”之间的关系、用例“出库管理”与用例“用户登录”之间的关系就属于包含关系;(2)扩展关系:一个用例(扩展用例)可以被定义为基础用例的增量扩展,这称为扩展关系。用例“查看统计报表”和用例“生成统计报表”之间是扩展关系;(3)泛化关系:一个用例被特别列举为一个或多个用例,这被称作用例泛化。用例“用户注册”和用例“电话注册”之间、用例“邮件注册”和用例“电话注册”之间属于泛化关系。

2013(1)需求工程, 需求开发, 需求分析, 面向对象需求分析, UML,需求建模的更多相关文章

  1. PSP个人软件开发系统面向对象需求分析与设计文档

    1.引言 1.1编写的目的 编写该文档的目的是,对产品进行定义,详尽说明该产品的软件需求,简述我们对 PSP个人软件开发系统的初步设想,及划分的各功能模块以及各模块的实体图和数据流图. 1.2预期的读 ...

  2. [开发笔记usbTOcan]需求获取与系统需求分析

    简介 一直一以来都是站在实现某个模块功能的角度去做软件开发,没有尝试过站在系统的层面去做开发.最近正好不忙,觉得是时候以系统工程师的视角,去开发一个完整的系统.接下来的几篇文章,我会记录一个USB转C ...

  3. 前端开发:面向对象与javascript中的面向对象实现(一)

    前端开发:面向对象与javascript中的面向对象实现(一) 前言: 人生在世,这找不到对象是万万不行的.咱们生活中,找不到对象要挨骂,代码里也一样.朋友问我说:“嘿,在干嘛呢......”,我:“ ...

  4. 前端开发:面向对象与javascript中的面向对象实现(二)构造函数与原型

    前端开发:面向对象与javascript中的面向对象实现(二)构造函数与原型 前言(题外话): 有人说拖延症是一个绝症,哎呀治不好了.先不说这是一个每个人都多多少少会有的,也不管它究竟对生活有多么大的 ...

  5. Python全栈开发【面向对象进阶】

    Python全栈开发[面向对象进阶] 本节内容: isinstance(obj,cls)和issubclass(sub,super) 反射 __setattr__,__delattr__,__geta ...

  6. Python全栈开发【面向对象】

    Python全栈开发[面向对象] 本节内容: 三大编程范式 面向对象设计与面向对象编程 类和对象 静态属性.类方法.静态方法 类组合 继承 多态 封装 三大编程范式 三大编程范式: 1.面向过程编程 ...

  7. 实战使用Axure设计App,使用WebStorm开发(1) – 用Axure描述需求

    系列文章 实战使用Axure设计App,使用WebStorm开发(1) – 用Axure描述需求  实战使用Axure设计App,使用WebStorm开发(2) – 创建 Ionic 项目   实战使 ...

  8. 大数据学习--day08(hnapp 后台系统开发、面向对象)

    hnapp 后台系统开发.面向对象 利用前面所学的知识,写一个控制台登陆注册后台界面 package sy180918.hnapp.array; import java.util.Arrays; im ...

  9. Java课程之团队开发(NABCD需求分析)

    N.需求 1.学生基本的录入课程功能 2.学生对于空教室使用的需求(自习或者是活动占用) 3.学生对于具体课程的查询需求 A.做法 1.制作出基于安卓的课程查询,录入以及教室查询应用软件 B.好处 1 ...

随机推荐

  1. Mac应用程序无法打开,提示不明开发者或文件损坏的处理方法

    很多用户在安装Mac软件的时候,经常会遇到提示“xxx.app已损坏,打不开.您应该将它移到废纸篓“或”打不开的xxx.app,因为它来自身份不明的开发者”,如下图的样子: 真的损坏了么?是不是真的要 ...

  2. 解决 警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:reyo' did not find a matching property.

    解决办法是:关闭tomcat,双击eclipse下tomcat服务器,在出来的Tomcat server at localhost页面中找到server options选项,选中其中的选项”Publi ...

  3. 04、状态模式(State)

    一.概念: 当一个对象的内在状态改变时,允许改变其行为,这个对象看起来像是改变了其类.[DP] 二.作用: 状态模式的主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况.吧状态的判断逻辑转 ...

  4. 基于.NET平台常用的框架整理 转自 http://www.cnblogs.com/zhuyongblogs/p/5353751.html

    常用的一些开源组件整理: 导出Excel报表的插件:NOPI.dll(基于微软OpenXml实现)开源的作业调度和自动任务框架:Quartz.NET用于大数据搜索引擎的全文检索框架:Lucene.ne ...

  5. ListView 根据 文件路径 或 扩展名 显示系统文件图标

    private void 获取文件button1_Click(object sender, EventArgs e)         {            folderBrowserDialog1 ...

  6. C# Newtonsoft.Json JsonSerializerSettings配置序列化操作

    https://blog.csdn.net/u011127019/article/details/72801033

  7. Python - 基础语法 - 第一天

    编码 默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串. 标识符 第一个字符必须是字母表中字母或下划线 _ . 标识符的其他的部分由字母.数字和下划线 ...

  8. Java虚拟机内存区域详解

    JVM 运行时的数据区域 首先获取一个直观的认识: 总共也就这么 5 个区(直接内存不属于 JVM 运行时数据区的一部分),除了程序计数器其他的地方都有可能出现 OOM (OutOfMemoryErr ...

  9. 2019 识装java面试笔试题 (含面试题解析)

      本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.识装等公司offer,岗位是Java后端开发,因为发展原因最终选择去了识装,入职一年时间了,也成为了面试官,之 ...

  10. echarts 更改tooltip提示框CSS样式

    最近 做项目,用过echarts,发现tooltip提示z-index级别很高,想更改下,看了下文档:https://www.echartsjs.com/zh/option.html#tooltip. ...