uml 在需求分析阶段的应用

标签: uml 需求分析 阶段 | 发表时间:2013-11-19 04:11 | 作者:zhanghongjie0302
出处:http://blog.csdn.net

         上一篇博客写了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

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

 

顺序图

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

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

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

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


作者:zhanghongjie0302 发表于2013-11-18 20:11:51 原文链接
阅读:139 评论:1 查看评论

相关 [uml 需求分析 阶段] 推荐:

uml 在需求分析阶段的应用

- - CSDN博客架构设计推荐文章
         上一篇博客写了uml在软件开发过程中的应用,这以篇要详细介绍一下UML在需求分析过程中的应用.          以机房收费系统为例进行讲解,先介绍一个该系统.          首先该系统的用户分为三个等级,一般用户,操作员,管理员,一般用户的权限,能够查看学生余额,充值记录,上机记录,学生上机状态查看等.

UML用例图

- - ITeye博客
用例图主要用来描述 用户、需求、系统功能单元 之间的关系. 它展示了一个外部用户能够观察到的系统功能模型图. 【用途】:帮助开发团队以一种可视化的方式理解系统的功能需求. 用例图所包含的元素如下:. 表示与您的应用程序或系统进行交互的用户、组织或外部系统. 用例就是外部可见的系统功能,对系统提供的服务进行描述.

UML图谱-九种图

- - 博客园_首页
用例图:用于需求分析阶段,描述用户的需求. 元素:角色、用例、关系(依赖、泛化、关联). 二、静态图:从系统的结构来描述. 类图:核心图,描述系统结构.定义系统中的类,描述系统内部结构和类之间的关系. 描述系统的具体时间上,包含的对象和对象之间的关系. 三、行为图:系统的动态模型和对象间的交互. 状态图:类的对象状态,状态之间的转移条件.

UML学习之类图

- - CSDN博客推荐文章
    说到类图(Class Diagram,用来表示系统内部的静态结构),不得不提到类,想要说明类还得阐述一下面向对象与面向过程的区别与联系:.     面向对象与面向过程的区别与联系:.     过去,开发人员在写程序时,需要分模块(Module)、定功能(Function)、定义变量,这些动作在面向对象(Object-Oriented)技术中,一样都没少.

UML中的六大关系

- - CSDN博客推荐文章
       通过不断的学习结合机房收费系统绘制UML图,整个画图的过程中深刻体会到其核心部分还是理解事物之间的关系,总结六大关系来深入学习,主要关系有六种:继承、实现、依赖、组合、聚合、组合.         继承(泛华)关系(Generalization).         继承关系是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性.

软件设计之UML—UML中的六大关系

- - BlogJava-首页技术区
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency). 1.1、 继承关系—泛化(Generalization). 指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;在Java中用extends关键字.

如何做需求分析

- - 人人都是产品经理
这段时间我做了两个大项目,其中一个项目算是商业模式上和使用规范上的调整,另一个项目是之前功能的重做,为什么重做我下面会说到. 关于需求分析,我认为把需求抽象成产品功能花费的时间占到了软件开发周期的40%,产品设计到评审完的时间大概是20%,也就是说实际开发之前产品团队介入的工作占据项目的60%,在需求分析阶段我有一些个人观点.

需求分析中的产品定位

- Jessica - 所有文章 - UCD大社区
看过《定位》最大的感受就是产品在诞生之前就决定了他是否能存活或成功. 就像走在商场中,面对玲琅满目的产品,你似乎很难找到一两款绝对同质化的大品牌:. 各式的服装,NIKE的衣服是运动的,但也不会和做户外运动的哥伦比亚冲突. 都是做化妆品,Fancl打出“无添加”没有防腐剂也收获了一群喜爱天然的用户…...

团队沟通利器之UML——用例图

- - 博客园_首页
       在所有的UML图中,最容易理解的是用例图,也是元素最少的一种UML图,也是产品经理最拿手的一种图.     用例图常用来描述需求,让用户第一时间了解系统所具有的功能,可能有人就会问,几个图怎么可能让人一下就了解系统. 所具有的功能的?其实在产品经理的prd中都是“图文相依”的形式展现,这里的“文”也就是“用例描述”.

UML中的六大关系,你能看懂的

- - 行业应用 - ITeye博客
    UML定义的关系主要有六种:依赖、类属、关联、实现、聚合和组合. 这些类间关系的理解和使用是掌握和应用UML的关键,而也就是这几种关系,往往会让初学者迷惑. 这里给出这六种主要UML关系的说明和类图描述,一看之下,清晰明了;以下就分别介绍这几种关系:.     指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性;.