转自:https://www.cnblogs.com/fuhaots2009/p/3430666.html

上一篇博客写了uml在软件开发过程中的应用,这以篇要详细介绍一下UML在需求分析过程中的应用。

以机房收费系统为例进行讲解,先介绍一个该系统。

首先该系统的用户分为三个等级,一般用户,操作员,管理员,一般用户的权限,能够查看学生余额,充值记录,上机记录,学生上机状态查看等。操作员可以进行 学生注册,充值,退卡,收取金额查询,学生退卡查询,学生基本信息的维护,查看操作员的工作记录。管理员负责对上机的一些基本数据的设定,结账。添加,删 除用户,查看日结账单,周结账单。首先看一下设备连接图:

读卡器的工作就是读取卡的id号,并触发系统中一次enter 事件。

工作流程就是,

主要的流程就是这五个步骤,其他的在这个过程中,或者以后都可以进行实现。

一.用户需求:

了解了工作过程之后,就可以开始获取用户需求了,所以开始进行需求分析。

通过了解,与系统相关的人员主要有以下几种,

(1)      学生。提供细心给操作员,进行注册。拿着卡进行刷卡上下机。

(2)      一般用户。能够查看学生余额,充值记录,上机记录,学生上机状态查看,强制下机。

(3)      操作员。学生注册,充值,退卡,收取金额查询,学生退卡查询,学生基本信息的维护,查看操作员的工作记录。

(4)      管理员。基本数据的设定,结账。添加,删除用户,查看日结账单,周结账单的打印。

(5)      系统开发人员。负责开发机房收费系统的项目组成员。

(6)      机房主任。查看所有账务项目。

备注:在收集用户的需求时,要考虑到关心软件系统开发所有人员的需求,不仅要了解最终用户的需求,还有了解其他使用系统的需求,(如机房主任),还要了解软件开发人员的需求。

二.需求分析与描述

首先要对用户提出的需求进行分析,以此来确定其中要实现的系统功能,然后再同用户进行更加深入的讨论交流,确定哪些需求是功能性,那些是非功能性的,哪些是软件系统的需求,哪些不是,哪些需求是可以实现的,哪些需求是无法实现或暂时无法实现。

由于需求过多,所以以其中的一条需求为例

需求原文:操作员的学生注册功能。

操作员需要对学校所有要上机的学生进行注册,注册的内容包括姓名,性别,学号,班级,年级,备注,和每个学生卡的卡号。他是机房收费系统中最基本的一项需求,在开发的过程中,要认真的进行考虑。

将所有的需求分析进行完成以后,得到了用户需求分析结构,为了更好的表示一般采用表格的形式:(这里不全部例出)

表(1)

序号

用户需求

软件需求

功能需求

可以实现

01

提供自己关于注册卡的所有信息给操作员,进行注册

可以

02

查看学生卡内的余额

可以

03

学生卡注册

可以

04

设定上机需要的基本数据

可以

.

….

……

三.用例分析

在需求分析完成后,开始进行用例分析,为了能够正确的找出系统的用例,需要确定系统的边界,找出系统的执行者。根据表1的需求结果进行用例分析。

1.      系统的边界

从需求中可以看出,学生可以将卡放在读卡器上进行读取信息,读卡器将信息发送到系统中,并触发enter事件。

这时要考虑机房收费系统是否包括读卡器。机房收费系统是一个软件系统,因此不包括读卡器。

2.      系统的执行者

有了系统的边界,就可以更容易的找出系统的执行者,从系统的边界中可以知道读卡器是系统的执行者。

执行者主要分析每一个操作是由谁来执行的。由需求描述可以看出,用例的执行者还有,一般用户,操作员,管理员。所有该系统总共有四个执行者。读卡器,一般用户,操作员,管理员。

3.      系统的用例

有了边界和执行者,就可以分析这些执行者是如何与系统进行交互的,进一步找出系统的用例。通过需求的分析,可以看出每个执行者的目标和希望得到的价值。

读卡器     读取卡的卡号,发送给系统。

一般用户。能够查看学生余额,充值记录,上机记录,学生上机状态查看。

操作员。学生注册,充值,退卡,收取金额查询,学生退卡查询,学生基本信息的维护,查看操作员的工作记录。

管理员。基本数据的设定,结账。添加,删除用户,查看日结账单,周结账单的打印。

4.      画出系统用例模型图

可以看出这个系统有四个执行者,和24个用例。如果这里的每个用例需要进行详细的解释,还需要些用例描述,这里不再给出。

四.领域模型分析

这里所说的领域是用例的业务领域,也就是需要解决问题的领域。对领域知识的理解直接关系到系统开发的成败。

1.      领域概念

领域概念就是描述一个现实世界中的某个问题的一些名词和术语。建立领域模型的第一步是找出描述这些问题的概念和术语。

对机房收费系统的所有用例和用户需求分析,找到尽力能找到的所有的明细,动词,动词词组。

需求过程中的名词

学生

读卡器

一般用户

操作员

管理员

机房管理人员

学生基本信息

日结账单

周结账单

充值记录

基本数据

需求过程中的动词或动词词组

查看学生余额

基本数据设定

注册

充值

退卡

收取金额查询

学生退卡查询

学生基本信息维护

强制下机

结账

添加用户

删除用户

打印账单

在记录用户的需求时,应该尽可能的记录所有出现过的词汇,方便以后挑选,避免漏掉重要的词汇。

2.      概念类

从上边列出的名词开始筛选,找出可能的概念类。

学生:是一个概念类。

卡:是一个概念类

读卡器:与系统没有关系,所以不是概念类。

一般用户:是概念类,操作时,要知道是谁进行的操作

操作员:是概念类,操作时,要知道是谁进行的操作

管理员:是概念类,操作时,要知道是谁进行的操作

机房管理人员: 不是一个概念类,与系统的开发无关

学生基本信息:是一个概念类,注册的时候需要。但是包含在学生类里。

日结账单:是一个概念类

周结账单:是一个概念类

基本数据:是一个概念类

经过上面对所有的名词进行分析,可以得到所有的概念类,在应用时为了方便,每个概念类都有一个英文名称。

概念类名称

英文名称

概念类名称

英文名称

概念类名称

英文名称

学生

Student

一般用户

General user

操作员

Operator

管理员

Admin

日结账单

Daycheck

周结账单

Weekcheck

基本数据

BasicData

Card

找出了所有的概念类以后,然后找到类与类之间的关系,并找到他们呢所具有的方法与属性,如何找这里不再解释,最后画出一张类图。

机房收费系统的领域模型 1

五.工作流程分析

流程图

前边建立的领域模型,描述了系统的各个类之间的静态结构,下面使用活动图顺序图来描述系统的动态行为。

机房收费系统的核心工作就是,注册卡,充值,负责学生刷卡上下机,然后打印账单。

机房收费系统学生卡注册上机流程图 1

管理员登陆系统以后,先要进行基本数据的设定,基本数据设定成功以后,就可以进行注册,充值,然后就可以刷卡上机,刷卡下机,或者进行一些其他的操作(上边需求分析提到的用例)。

顺序图

前边分析了系统的领域模型,和系统流程,下面看一下系统是如何与外界进行交互的。用例描述时是用文字描述的,下面用顺序图来描述一个用例的执行过程。他主要描述系统的外在行为,即系统的输入域输出。

系统是软件系统的抽象,顺序图描述了系统接受一条数据和对这条数据进行的处理过程。首先要从读卡器哪里获取数据。然后由系统或者操作员进行操作。

这个顺序图描述的内容与用例的文本是完全一样的。顺序图更加直观的描述了用例的执行过程。为进一步设计系统打下基础。

需求分析是软件开发的起始部分,也是软件中最为关键的部分,对于用户的需求理解,直接决定了系统的正确性。所以在进行需求分析的时候,一定要全面,正确的分析。

UML在需求分析阶段的应用的更多相关文章

  1. uml 在需求分析阶段的应用

    上一篇博客写了uml在软件开发过程中的应用,这以篇要详细介绍一下UML在需求分析过程中的应用. 以机房收费系统为例进行讲解,先介绍一个该系统. 首先该系统的用户分为三个等级,一般用户,操作员,管理员, ...

  2. UML从需求到实现----用例

    关于用例图的概念相信不用我去说了 .能看到这篇文章的都是知道用例图概念的人. UML 中最重要的是什么图呢 ?毫无疑问应该是用例图 ,用例是后期时序图 和实际开发的重要依据. 说明一下用例图是怎么产生 ...

  3. UML大战需求与分析--阅读笔记4

    今天阅读了UML大战需求与分析第五.六章. 第五章,状态机图(State Machine Diagram),状态机图是通过描述某事物状态的改变来展现流程的.一般适用于流程围绕某个事物展开,例如请假的流 ...

  4. UML从需求到实现---类图(2)

    上节写到了UML中的类图:UML从需求到实现---类图(1) 写完以后总觉得写的不够详细.里面很多细节没有说到.一篇文章就把强大的面向对象的类说完.当然是不可能的.这次我再补充一些关于UML中类图和类 ...

  5. UML从需求到实现---类图(1)

    上次写到了UML的包图,用例等:接上:UML从需求到实现---包图 按照UML中图的出现顺序.当做完包图以后.我们下一步要做的当然是类图,类图也是UML中的三大核心图之一. 看到很多文章在描述类图的时 ...

  6. UML从需求到实现----包图

    上接:UML中图出现顺序 上回讲到用例图,UML中各个图之间的关系.接着根据UML建模中图出现的顺序来总结包图. 用例图确定以后.用户的需求基本上就确定了.接下来要根据用户的要求去设计系统.建模的顺序 ...

  7. 2013(1)需求工程, 需求开发, 需求分析, 面向对象需求分析, UML,需求建模

    案例一 某软件公司拟为物流企业开发一套库存管理系统,该系统的部分需求陈述如下: (1) 库存管理系统主要包括货物入库管理.货物出库管理.仓库管理.统计报表和系统管理等功能. (2) 库存管理系统的用户 ...

  8. uml和模式01

    // */ // ]]> uml和模式01 1. UML 2. 用例图 3. 用例和类的关系 4. 类图 1 UML 模型语言(Modeling Language 检查ML)是一种设计语言,人们 ...

  9. 【转】UML图与软件开发过程那点关系

    首先,软工文档, 软工文档,也就是计划,设计,描述,使用软件的一些文件,它最大的特点就是固定不变,用来给不同的人和计算机来阅读.在期间,文档起到了桥梁的作用,看这张图很形象: 在这里在看一下国家统一规 ...

随机推荐

  1. java中集合类详解

    集合类说明及区别 Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ├Hashtable ├HashMap └W ...

  2. review33

    当JVM加载代码,发现main方法之后,就会启动一个线程,这个线程称为“主线程”(main线程),该线程负责执行main方法.那么在main方法执行中再创建的其他线程就称为程序中的其他线程. 如果ma ...

  3. 命令行下载Baiduyun files

    源码 步骤1:先拿到一个插件插件地址1,插件地址2 步骤2:解压并保存 下载的文件中,包含了一个Baidu-PCS的文件夹.然后打开我们的资源管理器.将Baidu-PCS随意移动到一个文件目录下,但文 ...

  4. js 图片加载失败处理方法

    在项目中不可避免会用到图片,尤其是列表,有时候图片会加载失败:这样就会显示一个很难看的坏图片缩略图:下面介绍两种方法,解决这个问题: 1.如果在你的项目中有引入jQuery插件,你可以使用error( ...

  5. Redis源码分析:serverCron - redis源码笔记

    [redis源码分析]http://blog.csdn.net/column/details/redis-source.html   Redis源代码重要目录 dict.c:也是很重要的两个文件,主要 ...

  6. SQL Sever删除外键

    declare @sql varchar(max), @tab_name varchar(128), @fk_name varchar(128);declare c cursor forselect ...

  7. hive中order by,sort by, distribute by, cluster by的用法

    1.order by hive中的order by 和传统sql中的order by 一样,对数据做全局排序,加上排序,会新启动一个job进行排序,会把所有数据放到同一个reduce中进行处理,不管数 ...

  8. Linux_服务器_09_新虚拟机下linux网络配置

    一.设置VMnet8 控制面板—>网络和Internet—>网络共享中心—>更改网络适配器,即可进入网络连接 找到VMnet8,右键—>属性—>Internet协议版本4 ...

  9. 201621123014《Java程序设计》第十四周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结与数据库相关内容. 2. 使用数据库技术改造你的系统 2.1 简述如何使用数据库技术改造你的系统.要建立什么表?截图你的表设计. 答 ...

  10. hdoj-1285-确定比赛名次(拓扑排序)

    题目链接 /* Name:hdoj-1285-确定比赛名次 Copyright: Author: Date: 2018/4/11 15:59:18 Description: 标准的拓扑排序模板题,注意 ...