机房重构之用例图

一、为什么画用例图

用例图(Use Case Diagram)是由软件需求分析到最终实现的第一步,它描述人们如何使用一个系统。用例视图显示谁是相关的用户、用户希望系统提供什么样的服务,以及用户需要为系统提供的服务,以便使系统的用户更容易理解这些元素的用途,也便于软件开发人员最终实现这些元素。用例图在各种开发活动中被广泛的应用,但是它最常用来描述系统及子系统。

二、怎样画

用例图包含六个元素,分别是:参与者(Actor)、用例(Use Case)、关联关系(Association)、包含关系(Include)、扩展关系(Extend)以及泛化关系(Generalization)。

1、参与者: 参与者是系统外部的一个实体,它以某种方式参与用例的执行过程。  在机房收费系统中的参与者有三个一般用户,操作员,管理员。

参与者的确定方法:

(1)谁将使用该系统的主要功能。

(2)谁将需要该系统的支持以完成其工作。

(3)谁将需要维护、管理该系统,以及保持该系统处于工作状态。

(4)系统需要处理哪些硬件设备。

(5)与该系统那个交互的是什么系统。

(6)谁或什么系统对本系统产生的结果感兴趣。

通过以上方法可以确定参与者有:一般用户,操作员,管理员

对于学生在这个系统中我不认为他是一个参与者,因为我理解的是这个系统是学校的机房管理者使用的,而不是学生使用的,学生只是卡的持有者,机房管理员(一般用户,操作员,管理员)操作的学生卡进行注册,充值,退卡,上下机等操作。也就是说机房管理员是和学生的卡打交道的,而不是学生。

一般用户,操作员,管理员之间是泛化关系,即操作员继承一般用户,管理员继承操作员。

2、用例: 用例是外部可见的系统功能单元,这些系统功能由系统单元所提供,并通过一系列系统单元与一个或多个参与者之间交换的消息所表达。用例的用途是,在不揭示系统内部构造的前提下定义连贯的行为。

在识别用例的过程中,通过回答以下几个问题,系统分析者可以获得帮助。

(1) 特定参与者希望系统提供什么功能。

(2) 系统是否存储和检索信息,如果是,由哪个参与者触发。

(3) 当系统改变状态时,是否通知参与者。

(4) 是否存在影响系统的外部事件。

(5) 哪个参与者通知系统这些事件。

在本机房收费系统中用例有:上下机,查看记录,修改密码等用例。

3、关联关系(Association)

关联关系描述参与者与用例之间的关系,它是用于表示类的挂系的关联元类的实例。在UML中,关联关系用箭头来表示。

4、 包含关系(Include)

虽然每个用例的实例都是独立的,但是一个用例可以用其它的更简单的用例来描述。这有点像通过继承父类并增加附加描述来定义一个类。一个用例可以简单地包含其它用例具有的行为,并把它所包含的用例行为作为自身行为的一部分,这被称作包含关系。在这种情况下,新用例不是初始用例的一个特殊例子,并且不能被初始用例所代替。在UML中,包含关系表示为虚线箭头交<<include>>字样,箭头指向被包含的用例。

5、扩展关系(Extend)

一个用例也可以被定义为基础用例的增量扩展,这被称作扩展关系,扩展关系是把新的行为插入到已有的用例中的方法。同一个基础用例的几个扩展用例可以在一起应用。基础用例的扩展增加了原有的语义,此时基础用例而不是扩展用例被作为例子使用。在UML中,扩展关系表示为虚线箭头加<<extend>>字样,箭头指向被扩展展的用例。

6、泛化关系(Generalization)

一个用例可以被特别列举为一个或多个用例,这被称为用例泛化。当父用例能够被使用时,任何子用例也可以被使用。在UML中用例泛化与其它泛化关系的表示法相同,用一个三角箭头从子用例指向父用例。

时间: 2024-11-06 05:11:06

机房重构之用例图的相关文章

[机房重构]UML图(包图、类图、用例图、时序图)

机房重构画图是一个非常重要的一个阶段,机房重构之前也画过UML的图,但是这一次与上一次不同,这一次有分层的思想在里面. 包图 之前三层的时候各层之间的传递很清晰,包图也很容易就画出来了,先来看之前三层的包图.通过实体将输入的信息从U层传入B层,同时通过实体将信息从D层传入B层,B层进行判断,通过实体将结果返回给U层. 之前的三层不能很好的实现低耦和的思想,并且我们学习了设计模式,要继续进行分层,进行七层的编写.之前不太理解,看大家的博客,知道在U层和B层之间加入了外观模式,降低U层和B层之间的耦

机房重构总结之步履蹒跚

一.惨淡的回忆 1.艰难的开始 记得我很早就开始机房重构了,好像是在六月份,当时正好赶上考试,它就自然搁浅了.当暑假开始后,搬到了五楼学英语,虽然每天晚上都能干自己的事情,但是心里总是对它有点抵触,所以一直迟迟不肯下手,只是小打小闹,学着画图,分析着功能,重新设计了一下数据库,而实际上却总想去看自考书或者三级网络的书,总之,能逃就逃.最后,实在是不能再拖了,硬着头皮上吧.时间再抓紧点,自己在用心一点,开始了前期的画图.设计等工作. 2.平淡的过程 整个过程只能用平淡来形容.由于是在不知道该怎么画

机房重构---我们“重构”出了什么?

机房重构立即就要结束了,在这"第三个"系统结束的时候,有必要思考一下我们重构的目的了. 或许有人说,还有什么目的呀,不就是编程语言换成了.Net,做出来,调完bug,能执行就得了呗.这么浮夸的日子里,还叫什么劲啊? 对于有这样的想法的人,我必须道一声:您(白)辛苦了 ! 不管做什么事,没有一点总结性思考是无法进步的. 我以下的一些重构论述或者说反思性总结也存在很多不足,希望大家多多指正,在此先致谢! 本文将从五个方面论述一下这次的重构系统,各自是系统架构.UML图指导.设计模式应用.数

【机房重构】——UML

机房重构UML图浩浩荡荡开始,现也让它告一段落,再下面敲的过程肯定还要完善..... 这一遍,较第一遍有很大的进步.因为最起码有了三层的思想,到现在,我画了用例.包图.类图.时序图: 用例图和第一遍没什么区别,依然是按角色划分的,用例图将所有的功能按用户列出,让各个功能之间的关系一目了然--这也是用例图的作用. 第二个画的包图,将三层清晰明了展现出来. 对应的各个包下,是相应层的类图.这次类图与第一遍有很大的不同.第一遍的类图那叫个宏伟,很大很大,整个系统用一个类图就全囊括了,但这次分了4部分:

机房重构-完结篇

机房重构已经结束了,自从软考开始,光顾着准备软考和三级网络等级考试就没来得急总结.软考一开始,突然觉得时间好少,时间过得好快.这节奏,有点飕飕的. ---------------------技术总结: 熟悉了对Visual Studio这一开发环境的使用,深入了解了VB.net语言基础有了一定的认识并且学会使用.这一次使用三层架构,利用分分层的思想,深入理解了各层的职责.代码规范,这一次再敲代码的时候先学了一下代码规范,也把头文件注释设计好,让自己的代码漂亮一点. 最终的要思想还是面向对象,根据

【机房重构】—上机&amp;订餐

前几天通过UML图中的时序图,让我对于机房重构中的每一条线理解的更加清晰,以前觉得上机特别的乱,在一次偶遇中,得知了原来它可以转化成我们平时订餐,下面就听我说一说上机&订餐的故事吧! 又是发生在一个风和日丽的早上(廊坊师范学院时间:11:30),其实对于大多数人来说应该是中午了吧,睁开朦胧的睡眼,拿起手机看了看Time,到了吃饭的时间了,由于昨天晚上一直整理自己的机房收费系统上机部分,到很晚才睡,朦胧记得我最后"搞"成功了!为了庆祝我昨天的战果于是果断在美图团网上订了一份排骨盖

机房重构 之 SqlHelper

机房收费开始一段时间了,刚开始也是敲了一段时间,发现D层访问数据库出现了大量的重复代码,每个D层类都要 单独访问数据库.发现问题,咱们就解决问题,查阅前人的博客,发现了一个SqlHelper类,运用一下,果然好用,省 去了大量时间去写重复的代码. 小面对SQL中的一些类方法进行简单的介绍. 1.SQLHelper.ExecuteNonQuery    作用:用于执行语句 2. SQLHelper.ExecuteScalar       作用:用于获取单字段值语句 3. SQLHelper.Exe

机房重构(3)——存储过程

在敲机房收费过程中我们都会遇到这样的问题:很多功能实现都需要涉及到多张表的操作,比如充值.退卡.结账等功能的实现.这就需要我们多次对数据库进行操作,不仅代码量大大增加,而且执行效率也会大打折扣.为了提高效率,于是,存储过程就华丽登场了. 1.简介 存储过程是一组为了完成特定功能的语句集,经过编译后存储在数据库中,用户通过制定存储过程的名称并给出参数来执行它.存储过程在运算时生成执行方式并存储在数据库当中,当其再次运行时速度比单个的SQL语句要快.    2.优缺点 1)优点 a.复用性强.存储过

机房重构——视图

视图.存储过程.触发器等等早就听说过,却没有真正接触过,一直处在一个以后再说的状态中,逃是逃不掉了. 机房重构,重构出了什么?留着这个疑问.重构完以后再做总结. 视图:在SQL中,外模式一级数据结构的基本单位是视图,就是从若干个基本表和(或)其他视图构造出来的表.其实就是一张虚表. 注意:在使用视图的时候,应当提前设置好关联表的主外键. 在机房收费系统里功能之一,学生查看余额时,用到了两张表的内容,Card表里的状态和余额,其他信息都来自学生表. 视图的创建和删除: 方法一:使用SQL语句创建视