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明确标识,在设计时一般没有争议性;.