UML分析类、状态图基础和画法
第10章:UML系统分析与设计-状态图

状态图的概念
状态
状态用于对实体在其生命周期中的各种状况进行建模,一 个实体总是在有限的一段时间内保持一个状态。状态由一 个带圆角的矩形表示,状态的描述应该包括:名称、入口 和出口动作、内部转换和嵌套状态。
状态图的概念
转换
• 在UML的状态建模机制中,转换用带箭头的直线表示, 一端连接源状态,箭头指向目标状态。转换还可以标 注与此转换相关的选项,如事件、监护条件和动作等, 如果转换上没有标注触发转换的事件,则表示此转换 自动进行。
要创建状态图,首先要标识出哪些实体需要使用状态图进一步建 模。虽然我们可以为每一个类、操作、包或用例创建状态图,但 是这样做势必浪费很多的精力。一般来说,不需要给所有的类都 创建状态图,只有具有重要动态行为的类才需要。 从另一个角度看,状态图应该用于复杂的实体,而不必用于具有 复杂行为的实体。使用活动图可能会更加适合那些有复杂行为的 实体。具有清晰、有序的状态实体最适合使用状态图进一步建模。 对于聊天系统来说,需要建模的实体就是用户的状态。
从一个状态引出的多个转换可以有同样的触发器事件。若此事 件发生,所有监护条件都被测试,测试的结果如果有超过一个 的值为真,也只有一个转换会激发。如果没有给定优先权,则 选择哪个转换来激发是不确定的。
构成状态图的元素
触发器事件
触发器事件就是能够引起状态转换的事件。如果此事 件有参数,这些参数可以被转换所用,也可以被监护 条件和动作的表达式所用。触发器事件可以是信号、 调用和时间段等。 对应与触发器事件,没有明确的触发器事件的转换称 作结束转换(或无触发器转换),是在结束时被状态 中的任一内部活动隐式触发的。
创建状态图
1. 创建状态图
• 在Rational Rose中,可 以为每个类创建一个或 者多个状态图,类的转 换和状态都可以在状态 图中体现。首先,展开 “Logic View”菜单项, 然后在“Logic View”图 标上单击鼠标右键,在 弹出的菜单中选择 “New”下的 “Statechart Diagram” 选项建立新的状态图。
UML各种图例齐全—用例图、类图、状态图、包图、协作图、顺序图详细说明画法和功能

UML各种图例面向对象的问题的处理的关键是建模问题.建模可以把在复杂世界的许多重要的细节给抽象出.许多建模工具封装了UML(也就是Unified Modeling Language™),这篇课程的目的是展示出UML的精彩之处.UML中有九种建模的图标,即:∙用例图∙类图∙对象图∙顺序图∙协作图∙状态图∙活动图∙组件图∙配置图本课程中的某些部分包含了这些图的细节信息的页面链接.而且每个部分都有一个小问题,测试一下你对这个部分的理解.为什么UML很重要?为了回答这个问题,我们看看建筑行业.设计师设计出房子.施工人员使用这个设计来建造房子.建筑越复杂,设计师和施工人员之间的交流就越重要.蓝图就成为了这个行业中的设计师和施工人员的必修课.写软件就好像建造建筑物一样.系统越复杂,参与编写与配置软件的人员之间的交流也就越重要.在过去十年里UML就成为分析师,设计师和程序员之间的“建筑蓝图”.现在它已经成为了软件行业的一部分了.UML提供了分析师,设计师和程序员之间在软件设计时的通用语言.UML被应用到面向对象的问题的解决上.想要学习UML必须熟悉面向对象解决问题的根本原则――都是从模型的建造开始的.一个模型model就是根本问题的抽象.域domain就是问题所处的真实世界.模型是由对象objects组成的,它们之间通过相互发送消息messages来相互作用的.记住把一个对象想象成“活着的”.对象有他们知道的事(属性attributes)和他们可以做的事(行为或操作behaviors or operations).对象的属性的值决定了它的状态state.类Classes是对象的“蓝图”.一个类在一个单独的实体中封装了属性(数据)和行为(方法或函数).对象是类的实例instances.用例图用例图Use case diagrams描述了作为一个外部的观察者的视角对系统的印象.强调这个系统是什么而不是这个系统怎么工作.用例图与情节紧紧相关的.情节scenario是指当某个人与系统进行互动时发生的情况.下面是一个医院门诊部的情节.“一个病人打电话给门诊部预约一年一次的身体检查.接待员找出在预约记录本上找出最近的没有预约过的时间,并记上那个时间的预约记录.”用例Use case是为了完成一个工作或者达到一个目的的一系列情节的总和.角色actor是发动与这个工作有关的事件的人或者事情.角色简单的扮演着人或者对象的作用.下面的图是一个门诊部Make Appointment用例.角色是病人.角色与用例的联系是通讯联系communication association(或简称通讯communication)角色是人状的图标,用例是一个椭圆,通讯是连接角色和用例的线.一个用例图是角色,用例,和它们之间的联系的集合.我们已经把Make Appointment作为一个含有四个角色和四个用例的图的一部分.注意一个单独的用例可以有多个角色.用例图在三个领域很有作用.决定特征(需求).当系统已经分析好并且设计成型时,新的用例产生新的需求∙客户通讯.使用用例图很容易表示开发者与客户之间的联系.∙产生测试用例.一个用例的情节可能产生这些情节的一批测试用例.类图类图Class diagram通过显示出系统的类以及这些类之间的关系来表示系统.类图是静态的-它们显示出什么可以产生影响但不会告诉你什么时候产生影响.下面是一个顾客从零售商处预定商品的模型的类图.中心的类是Order.连接它的是购买货物的Customer和Payment.Payment有三种形式:Cash,Check,或者Credit.订单包括OrderDetails(line item),每个这种类都连着Item.UML类的符号是一个被划分成三块的方框:类名,属性,和操作.抽象类的名字,像Payment是斜体的.类之间的关系是连接线.类图有三种关系.关联association-表示两种类的实例间的关系.如果一个类的实例必须要用另一个类的实例才能完成工作时就要用关联.在图中,关联用两个类之间的连线表示.dependencies关系.如果另一个的包B改变可能会导致一个包A改变,则包A依赖包B.包是用一个在上方带有小标签的矩形表示的.包名写在标签上或者在矩形里面.点化线箭头表示依赖对象图Object diagrams用来表示类的实例.他们在解释复杂关系的细小问题时(特别是递归关系时)很有用.这个类图示一个大学的Department可以包括其他很多的Departments.这个对象图示上面类图的实例.用了很多具体的例子.UML中实例名带有下划线.只要意思清楚,类或实例名可以在对象图中被省略.每个类图的矩形对应了一个单独的实例.实例名称中所强调的UML图表.类或实例的名称可能是省略对象图表只要图的意义仍然是明确的.顺序图类图和对象图是静态模型的视图.交互图是动态的.他们描述了对象间的交互作用.顺序图将交互关系表示为一个二维图.纵向是时间轴,时间沿竖线向下延伸.横向轴代表了在协作中各独立对象的类元角色.类元角色用生命线表示.当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时,生命线是一个双道线.消息用从一个对象的生命线到另一个对象生命线的箭头表示.箭头以时间顺序在图中从上到下排列.协作图协作图也是互动的图表.他们像序列图一样也传递相同的信息,但他们不关心什么时候消息被传递,只关心对象的角色.在序列图中,对象的角色放在上面而消息则是连接线.对象角色矩形上标有类或对象名(或者都有).类名前面有个冒号(:).协作图的每个消息都有一个序列号.顶层消息的数字是1.同一个等级的消息(也就是同一个调用中的消息)有同样的数字前缀,再根据他们出现的顺序增加一个后缀1,2等等.状态图对象拥有行为和状态.对象的状态是由对象当前的行动和条件决定的.状态图statechart diagram显示出了对象可能的状态以及由状态改变而导致的转移.我们的模型例图建立了一个银行的在线登录系统.登录过程包括输入合法的密码和个人账号,再提交给系统验证信息.登录系统可以被划分为四种不重叠的状态:Getting SSN, Getting PIN, Validating, 以及Rejecting.每个状态都有一套完整的转移transitions来决定状态的顺序.状态是用圆角矩形来表示的.转移则是使用带箭头的连线表示.触发转移的事件或者条件写在箭头的旁边.我们的图上有两个自转移.一个是在Getting SSN,另一个则在上Getting PIN.初始状态(黑色圆圈)是开始动作的虚拟开始.结束状态也是动作的虚拟结束.事件或条件触发动作时用(/动作)表示.当进入Validating状态时,对象并不等外部事件触发转移.取而代之,它产生一个动作.动作的结果决定了下一步的状态.活动图活动图activity diagram是一个很特别的流程图.活动图和状态图之间是有关系的.状态图把焦点集中在过程中的对象身上,而活动图则集中在一个单独过程动作流程.活动图告诉了我们活动之间的依赖关系.对我们的例子来说,我们使用如下的过程.“通过ATM来取钱.”这个活动有三个类Customer, ATM和Bank.整个过程从黑色圆圈开始到黑白的同心圆结束.活动用圆角矩形表示.。
UML状态图的画法

转移类型:简单转移、自转移、自动转移、复合转移等。
14
事件
事件(event是指某个时刻发生的事情 事件中最常见的是:
信号事件(signal event):从一个对象到另一个对象 的明确的单向信息流动。
购入项目 在店内
entry/ 令store = theStore本店)
弃置项目
租出项目 归还项目
已租出
租出项目
正常 entry/ 令store = null空值) 已出租do/ 每天检查到期时间
超过到期日子
过期 entry/ 通知会员
25
3.4.2 顺序子状态
顺序子状态:子状态是一个一个顺序转移的不是并发存在 的
源状态
目标状态1
源状态1
目标状态2
源状态2
目标状态
30
3.4.4 并发子状态—同步
在并发状态图中一个子状态图中 的子状态常常需要与另一个子 状态图中的子状态的行为同步 在UML中使示(伪状态,放 在分隔子状态的虚线上。
例:建筑住宅的并发状态图。 其中有二个子状态图,分别 代表主体工程施工和水电工程 施工,它们是并行进行的。
历史状态是一个伪状态的图形标记,只能作为组合状态中 的子状态,不能在顶层状态图中使用。
32
3.4.5 历史状态2
活动 停止
恢复
H
暂停
播发
中断
选择
影碟机对象工作的部分状态图
33
3.5 状态图的应用
状态图为一个对象的生命周期建立模型状态图可以表示一 个对象的历史引起一个状态向另一个状态转移的事件,以 及由于状态的转移而引发的动作。
UML-4-状态图

7.3.2 迁移
1. 引发迁移的事件 2. 迁移的文字标签
2. 迁移的文字标签
为了使迁移线有明确的意义,UML提供了由 三部分组成的文字标签来解释该迁移的发生 事件
触发 警戒条件 行为
2. 迁移的文字标签
文字标签的语法可以表示为:
触发[警戒条件]/行为 trigger[guard] / behavior
UML及建模工具
——状态图
State Diagram
7.1 7.2 7.3 7.4 7.5
基于状态的对象行为建模 状态图 状态图的表示方法 案例分析 总结
第7章 状态图(State Diagram)
7.1
基于状态的对象行为建模
对象既有行为又有状态,对象的行为由其状 态决定,对象根据其状态的不同而产生不同 的行为 为了描述对象在状态之间的转变过程中将产 生什么行为,需要捕获对象所有可能发生的 状态
2. 状态内部的活动
Enter Password entry/set echo to star; do/handle and check password exit/set echo normal
图7-7带有活动的状态图
7.3.2 迁移
迁移指从一个状态到另一个状态的瞬间变化 过程 从源状态到目标状态一发生变化,就称发生 了迁移 UML用从源状态到目标状态的带开放式箭头 的实线表示迁移,箭头指向目标状态
7.2
状态图
状态图由状态(State)和迁移(Transitions) 组 成 它的表达方式为:
状态图 = 状态 + 迁移 State Diagram = State + Transitions
7.3
状态图的表示方法
UML中各种图的画法(全)

UML中各种图的画法(全)一、UML中基本的图范畴:在 UML 2 中有二种基本的图范畴:结构图和行为图。
每个 UML 图都属于这二个图范畴。
结构图的目的是显示建模系统的静态结构。
它们包括类,组件和(或)对象图。
另一方面,行为图显示系统中的对象的动态行为,包括如对象的方法,协作和活动之类的内容。
行为图的实例是活动图,用例图和序列图。
二、UML中的类图:1.类图的表示:类的 UML 表示是一个长方形,垂直地分为三个区,如图 1 所示。
顶部区域显示类的名字。
中间的区域列出类的属性。
底部的区域列出类的操作。
在一个类图上画一个类元素时,你必须要有顶端的区域,下面的二个区域是可选择的(当图描述仅仅用于显示分类器间关系的高层细节时,下面的两个区域是不必要的)。
描述:顶部区域显示类的名字。
中间的区域列出类的属性。
底部的区域列出类的操作。
当在一个类图上画一个类元素时,你必须要有顶端的区域,下面的二个区域是可选择的(当图描述仅仅用于显示分类器间关系的高层细节时,下面的两个区域是不必要的)。
·类名:如果是抽象类,则采用斜体·类属性列表:name : attribute type 如 flightNumber : Integer,这是最常见的表达形式n ame : attribute type = default value 如balance : Dollars = 0,这是带有默认值的表达形式·类方法列表:name(parameter list) : type of value returned注意:在业务类图中,属性类型通常与单位相符,这对于图的可能读者是有意义的(例如,分钟,美元,等等)。
然而,用于生成代码的类图,要求类的属性类型必须限制在由程序语言提供的类型之中,或包含于在系统中实现的、模型的类型之中。
2.继承的表示:为了在一个类图上建模继承,从子类(要继承行为的类)拉出一条闭合的,单键头(或三角形)的实线指向超类。
UML类图的绘制步骤与技巧

UML类图的绘制步骤与技巧UML(Unified Modeling Language)是一种用于软件系统建模的标准化语言,其中最常用的一种图形表示方式就是类图。
类图能够清晰地展示系统中的类、属性、方法以及它们之间的关系,是软件开发过程中必不可少的工具。
本文将介绍UML类图的绘制步骤与技巧,帮助读者更好地理解和运用类图。
一、确定系统的需求和范围在绘制类图之前,我们首先需要明确系统的需求和范围。
这包括确定系统中的主要功能、模块和类的关系等。
只有明确了需求和范围,我们才能有针对性地绘制类图,避免过度设计或者遗漏重要的类和关系。
二、识别类和类之间的关系在确定了系统需求和范围之后,我们需要识别系统中的类以及它们之间的关系。
类是指具有相似属性和方法的对象的抽象表示。
在识别类时,我们可以根据系统的功能和需求,将类进行分类,并确定它们之间的关系,如继承、关联、依赖等。
三、绘制类图的基本结构类图的基本结构包括类名、属性和方法。
类名应该清晰地反映类的职责和功能,属性则表示类的特征或状态,方法表示类的行为或操作。
在绘制类图时,我们可以使用矩形框表示类,类名位于框的顶部,属性位于框的中间,方法位于框的底部。
属性和方法可以使用可见性符号表示其访问权限,如"+"表示public,"-"表示private,"#"表示protected。
四、绘制类之间的关系类图中的关系包括继承、关联、依赖、聚合和组合等。
继承关系表示一个类继承另一个类的属性和方法,可以使用带有箭头的实线表示。
关联关系表示两个类之间的关联,可以使用带有箭头的实线表示,箭头指向被关联的类。
依赖关系表示一个类依赖于另一个类,可以使用带有箭头的虚线表示,箭头指向被依赖的类。
聚合关系表示一个类包含另一个类,可以使用带有空心菱形的实线表示,菱形指向被包含的类。
组合关系表示一个类包含另一个类,并且包含的类的生命周期与包含类的生命周期相同,可以使用带有实心菱形的实线表示,菱形指向被包含的类。
UML第13章-状态图-16-17-18

聊天
entry/ 验证密码 exit/ 清空聊天记录 do/ 更改个人信息(密码除外)
UML状态图-转换
转换用带箭头的直线表示,一端连接源状态,箭头指向目 标状态。转换还可以标注与此转换相关的选项,如事件、 监护条件和动作等,如果转换上没有标注触发转换的事件, 则表示此转换自动进行。
• 例如,当一个班人数少于10人的时候需要和其他班合为一班上课,大 于10人则单独上课。
16/48
第13章 状态图
重点内容:
Review 状态图的基本概念 构成状态图的元素 使用Rose创建状态图 创建项目中的状态图
17
构成状态图的元素
状态图由状态、转换、判定、事件等元素组成
事件1
在活动图中,判定可以覆盖所有的可能,保证一些转换被激发。 否则,活动图就会因为输出转换不再重新激发而被冻结。
UML元素-同步
同步条是为了说明并发工作流的分叉与结合。 状态图和活动图中都可能用到同步。在UML中,同步用一条线
段来表示。
状态图的作用
状态图清晰的描述了一个对象的状态之间的转换顺序 清晰的事件顺序有利于开发程序时避免出现事件错序的情况
状态机由状态、转换、事件、活动和动作五部分组 成。
• 在状态机的语境中,一个事件就是一次激发的产生,每个 激发都可以触发一个状态转换。
4
状态机五部分
状态:对象在其生命周期中的一种状况。 转换:两个不同状态之间的一种关系。 事件:促使状态机从一种状态切换到另一种状态。如信号、对象
额度创建和销毁。
去指定楼层
向上升
向一楼移动
到达指定楼层
向下降
到达指定楼层
UML学习——状态图(四)

UML学习——状态图(四)1.什么是UML状态图 UML状态图是描述类对象可能经历的所有状态的模型图,描述了对象基于事件反应的动态⾏为。
显⽰实体根据当时的状态做出具体的动作。
2.UML类图的作⽤。
UML类图的作⽤是研究类对象,⾓⾊,⼦系统或者其他组件之间的实时⾏为。
3.UML状态图的绘制 3.1 状态图的模型组成元素 状态,转换,时间 3.2状态的表⽰法 状态由两部分组成:名称和内部动作 名称:表⽰状态的名字 内部动作:表⽰进⼊或者⾛出此状态的应该执⾏的动作。
内部动作可以分为以下四种类型。
entry:表⽰进⼊该状态时该进⾏的动作。
exit:表⽰退出该状态时该进⾏的动作。
do:表⽰该状态下进⾏的动作。
on:表⽰该状态下,发⽣某件事件时发⽣的动作。
⼀个状态可以包含多个内部动作。
如图: 3.3转换的表⽰法 转换:原状态在满⾜⼀定的条件,或者触发某个事件时,执⾏完内部动作后,转到⽬标状态的过程。
转换包含的元素:原状态,⽬标状态,触发事件,监护条件,执⾏动作。
触发事件:引起状态转换的事件,如:信号,调⽤,时间等。
监护条件:状态转化必须满⾜的条件,是⼀个Boolean值,不同转化的监护条件不同,但是触发事件可以相同。
执⾏动作:⼀组可执⾏语句或者计算处理的过程。
3.4 转换的分类 转换通常分为内部转换,外部转换,完成转换,复合转换四种。
内部转换:不离开状态本⾝,执⾏完动作后依旧在此状态。
外部转换:最常见的转换,状态从原状态转换到⽬标状态、 完成转换:或者叫⾃转换,⽆触发事件。
复合转换:由简单转换组成,通过分⽀判断将简单转换组合起来。
3.5状态的绘制 初始状态:⽤⼀个实⼼圆表⽰,⼀个状态图中只有⼀个 终⽌状态:⽤⼀个包含实⼼圆的空⼼圆表⽰。
⼦状态:有⼦状态的状态称为复合状态。
3.6状态图模型 3.7⼦状态图表⽰。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
识别分析类
识别实体类
–实体类通常是用例中的参与对象,对应着现实世界中的 “事物”
识别分析类
识别实体类应当注意的问题
–实体类的识别质量在很大程度上取决于分析人员书写文档 的风格和质量; –自然语言是不精确的,因此在分析自然语言描述时应该规 范化描述文档中的一些措辞,尽量弥补这种不足; –在自然语言描述中,名词可以对应类、属性或同义词等多 种类型,开发人员需要花费大量的时间进行筛选。
MiniLibrary:识别边界类
识别分析类
识别控制类
–控制类负责协调边界类和实体类,通常在现实世界中没有 对应的事物。 –一般来说,一个用例对应一个控制类。
识别分析类
识别控制类应当注意的问题
–当用例比较复杂时,特别是产生分支事件流的情况下,一 个用例可以有多个控制类。 –在有些情况下,用例事件流的逻辑结构十分简单,这时没 有必要使用控制类,边界类可以实现用例的行为。
–描述一个用例所具有的事件流控制行为 –实现对用例行为的封装,将用例的执行逻辑与边界和实 体进行隔离 控制类是控制系统中对象之间的交互,通常每个用例都是一 个控制类。
控制类的UML表示
课堂作业
图中的实体类为: 图中的控制类为: 图中的边界类为:
内容提纲
1、面向对象分析概念
•
•
分析类:边界类、控制类、实体类 用例实现 识别分析类 定义交互行为 建立分析类图 检查分析模型
补充用例描述
补充用例描述
–为了发现分析类,有必要补充说明系统的内部行为,即系 统内部必须做什么才能响应外部的要求。 –可能的情况
•用例描述的内容足够充分,不用补充直接可用; •现有事件流中没有明确定义系统内部应该执行的行为,直接在现有用 例描述中作出补充行为; •独立于原始用例描述系统的内部行为。
•举例:MiniLibrary系统中的用例“登录”
–如果不同用例包含的任务之间存在着比较密切的联系,则 这些用例可以使用一个控制类,其目的是复用相似部分以便 降低复杂性。
•通常情况下,应该按照一个用例对应一个控制类的方法识别出多个控 制类,再分析这些控制类找出它们之间的共同之处。
MiniLibrary:识别控制类
分析类的类型
–实体类:表示系统存储和管理的永久信息 –边界类:表示参与者与系统之间的交互 –控制类:表示系统在运行过程中的业务控制逻辑
实体类
实体类
–描述必须存贮的信息及其相关行为 –通常对应现实世界中的“事物” 实体类与数据库中的表对应,类的实例对应于表中的一条 记录;类中的属性和记录中的字段对应。
思考:如何识别MiniLibrary的实体类?
MiniLibrary:识别实体类
定义交互行为
交互图可以将用例和分析对象联系在一起,实现将 用例的行为分配到所识别的分析类中,并且帮助开 发人员发现和补充前面遗漏的分析类。
MiniLibrary:“登记借书”基本 流
MiniLibrary:“登记借书”基本 流
实体类的UML表示
边界类
边界类
–描述外部的参与者与系统之间的交互 –类型:用户界面、系统接口、设备接口 边界类是系统的用户界面,直接跟系统外部参与者交互,与 系统进行信息交流。如网上购物系统中登陆子功能里的登录 页面(login.html或index.jsp)
边界类的UML表示
控制类
控制类
–找出分析类之间的关关系,并通过泛化实现复用。
MiniLibrary:分析类图
检查分析模型
检查“正确性”
–用户是否可以理解实体对象的术语表? –抽象类与用户层次上的概念对应吗? –所有的描述都与用户定义一致吗? –所有的实体类和边界类都使用具有实际含义的名词短语吗? –所有的用例和控制类都使用具有实际含义的动词短语吗? –所有的异常情况都被描述和处理了吗? –是否描述了系统的启动和关闭? –是否描述了系统功能的管理?
检查分析模型
检查“完整性”
–每一个分析类都是用例需要的吗?它在什么用例中被创建、 修改和删除?是否存在边界类可以访问它? –每一个属性是在什么时候设置的?其类型是什么?它是限定 词吗? –每一个关系是在什么时候被遍历?为什么选定指定的重数? 一对多和多对多的关系能被限定吗? –每一个控制类对象是否有必要访问参与用例的对象?
2、基于用例的分析建模
• • • •
分析建模过程
理解用例模型
–理解用例模型和词汇表,适当补充系统内部情况的描述
识别分析类
–找出可能的能够执行用例行为的分析类
定义交互行为
–将用例行为分配到分析类中
建立分析类图
–确定分析类的关键属性和责任,定义分析类之间的关系
检查分析模型
示例:MiniLibrary
注意:没有必要规定系统的哪些部分完成哪些特定 任务。
MiniLibrary:补充用例描述
举例:“登记还书”用例
识别分析类
识别边界类
–通常,一个参与者与一个用例之间的交互或通信关联对应 一个边界类。
识别分析类
识别边界类应当注意的问题
–边界类应关注于参与者与用例之间交互的信息或 者响应的 事件,不要描述窗口组件等界面的组成元素; –在分析阶段,力求使用用户的术语描述界面; –边界类实例的生命周期并不仅限于用例的事件流, 如果两 个用例同时与一个参与者交互,那么它们有可能 会共用一个边界类,以便增加边界类的复用性。
分析类、分析模型
1、面向对象分析概念
•
分析类:边界类、控制类、实体类
2、基于用例的分析建模
•
•
• •
识别分析类 定义交互行为 建立分析类图 检查分析模型
分析类
分析类的概念
–在分析模型中,分析类是概念层次上的内容,用于描述系 统中较高层次的对象。 –分析类直接与应用逻辑相关,而不关注于技术实现的问题。
检查分析模型
检查“一致性”
–类或用例有重名吗? –具有相同名字的实体表示相同的现象吗? –所有的实体都以同样的细节进行描述吗? –是否存在具有相同属性和关系却不在同一继承层次的对象?
检查“可行性”
–系统中有什么创新之处?建立了什么计划或原型来确保这 些创新的可行性? –性能是否符合可靠性需求?这些需求是否已被运行在指定 硬件上进行原型验证?
MiniLibrary:分析类
将“登记还书”用例行为分配到相应的分析类之后, 系统的一些分析类具有相应的职责
建立分析类图
定义关系
定义属性
–按照一般常识,找出对象的某些属性; –认真研究问题域,找出对象的某些属性; –根据系统责任的要求,找出对象的某些属性; –考虑对象需要系统保存的信息,找出对象的相应属性; –对象为了在服务中实现其功能,需要增设一些属性; –识别对象需要区别的状态,考虑是否需要增加一个属性来 区别这些状态; –确定属性表示整体与部分结构和实例连接。