系统lec5面向对象分析_第1页
系统lec5面向对象分析_第2页
系统lec5面向对象分析_第3页
系统lec5面向对象分析_第4页
系统lec5面向对象分析_第5页
免费预览已结束,剩余172页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、面向对象分析UML的诞生与发展20世纪70年代出现了面向对象的程序设计语言。20世纪80年代,出现了面向对象的建模语言。在1989年到1994年期间,面向对象的方法从不到十种增加到了五十多种 ;一些方法脱颖而出,包括Booch方法、 OMT和OOSE等方法;其他的方法还有Fusion方法、Shlaer-Mellor 方法和Coad-Yourdon方法经过Booch、Rumbaugh和Jacobson三人的共同努力,于1996年发布了UML(Unified Modeling Language)。UML的三位主要奠基人,被称为“三友”(three amigos),UnifiedG.Booch 布奇

2、 Booch方法J.Rumbaugh 兰博 OMT方法I.Jacobson 雅格布森 OOSEUML的标准化1997年11月14日,UML1.1版本被OMG(对象管理组织)采纳为标准,并陆续修订颁布了1.3、1.4和1.5等版本。2000年-2003年,UML2.0版本问世。2005年,UML2.0标准版本被OMG采纳。Booch Rumbaugh JacobsonUML 的形成过程UML的主要特点统一的标准UML是被OMG接受为标准,越来越多的开发人员使用UML进行软件开发,越来越多的厂商支持UML。面向对象是支持OO软件开发的建模语言。可视化、表达能力强(概念明确)建模表示法简洁,图形结构

3、清晰,可视化、表示能力强大,容易掌握和使用。独立于过程UML不依赖于特定的软件开发过程。 可视化UML通过它的元模型和表示法,把那些通过文字或其他表达方法很难表达清楚的、隐晦的潜台词用简单直观的图形表达和暴露出来,准确而直观地描述其复杂的含义。例如:造一辆车身是红色金属漆的小轿车,装备四个普利司通牌子的轮胎,它是一辆四门车,车门时加厚的,并且前后门玻璃上贴黑色的膜。前后挡风玻璃里都装有电热丝,后视镜是电动可调的。2022/9/268UML的构成为了理解UML, 需要形成该语言的概念模型,这要求学习语言的三个要素。UML的基本构造块,也叫建模元素。UML的构造块包括事物(Things) 关系(R

4、elationships) 图(Diagrams) 支配构造块如何放在一起的规则(the rules )UML的公共机制(common mechanisms)掌握了这些思想,就能读懂UML,并能构建一些基本的UML模型。UML的上述三个要素的关系如下列图示:UML的构成图UML构成规则公共机制命名范围执行完整性可见性扩展机制通用划分详述修饰构造型约束标记值UML基本构造块事物关系结构事物行为事物分组事物辅助事物关联关系依赖关系泛化关系实现关系用例类接口协作主动类组件节点状态机交互机包注释模型元素UML基本构造块聚合关系视图UML构成模型元素用例视图逻辑视图进程视图构件视图配置视图时序图协作图状

5、态图活动图UML基本构造块用例图类图对象图构件图配置图视图UML基本构造块事物关系结构事物行为事物分组事物辅助事物关联关系依赖关系泛化关系实现关系用例类接口协作主动类组件节点状态机交互机包注释模型元素图静态图动态图用例图类图对象图组件图配置图时序图协作图状态图活动图UML软件系统体系结构的描述作用:描述系统的功能需求,找出用例和执行者;适用对象:客户、分析者、设计者、开发者和测试者;描述使用的图:用例图和活动图;重要性:系统的中心,它决定了其他视图的开发,用于确认和最终验证系统。 1用例视图2逻辑视图作用:描述如何实现系统内部的功能 ;适用对象:分析者、设计者、开发者 ;描述使用的图:类图和对

6、象图、状态图、顺序图、合作图和活动图 ;重要性:描述了系统的静态结构和因发送消息而出现的动态协作关系 。静态结构:类图、对象图动态行为:状态图、活动图、时序图、协作图 作用:描述系统代码构件组织和实现模块,及它们之间的依赖关系 ;适用对象:设计者、开发者 ;描述使用的图:构件图 ;重要性:描述系统如何划分软件构件,如何进行编程 。 3构件视图 作用:描述系统的并发性,并处理这些线程间的通信和同步 ;适用对象:开发者和系统集成者 ;描述使用的图:状态图、顺序图、合作图、活动图、构件图和配置图 ;重要性:将系统分割成并发执行的控制线程及处理这些线程的通信和同步 。 4进程视图作用:描述系统的物理设

7、备配置,如计算机、硬件设备以及它们相互间的连接 ;适用对象:开发者、系统集成者和测试者 ;描述使用的图:配置图 ;重要性:描述硬件设备的连接和哪个程序或对象驻留在哪台计算机上执行 。 5配置视图设计视图实现视图配置视图过程视图Use case视图2022/9/26UML系统建模与分析设计21高级语言程序设计UML模型元素事物关系结构事物行为事物分组事物辅助事物关联关系依赖关系泛化关系实现关系用例类接口协作主动类组件节点状态机交互机包注释模型元素图静态图动态图用例图类图对象图组件图配置图时序图协作图状态图活动图UML1.事物(Thing)事物是对模型中最具有代表性的成分的抽象。结构事物:UML中

8、的名词,它是模型基本物理元素。类、接口、协作(它是一个交互,它是由一组共同工作以提供某协作行为的角色和其它元素构成的一个群体。)、用例、主动类(至少拥有一个进程或者线程,其元素的行为可以和其它元素的行为并发)、构件(如COM+和Java Bean)、节点。 行为事物:UML中的动词,它是模型中的动态部分,是一种跨越时间、空间的行为。交互、状态机 (描述了一个对象或者一个交互在生命期内响应事件所经历的状态序列)。分组事物:UML中的容器,用来组织模型,使模型更加的结构化。例如:包。辅助事物:UML中的解释部分,和代码中的注释语句一样,是用来描述模型的。 例如:注释。结构事物(Structural

9、 things ) 结构事物是模型中的静态部分,用以呈现概念或实体的表现元素,是软件建模中最常见的元素,共有以下七种: 类(class): 用矩形表示,写有类的名称,属性和操作。 接口(interface) 用带有名称的圆表示。 协作(collaboration) 用含有名称的虚线椭圆表示。 用例(Use case) 用含有名称的实线椭圆表示。 主动类(Active class):与类相似,不同点就是对象至少拥有一个进程或线程,因此能够启动控制活动. 外框是粗线,包括名称,属性和操作。 构件(Component): 是类,接口和协作的物理包. 用带有小方框的矩形表示,只写构件的名称。 结点(n

10、ode): 与类相似,通常用只包括名称的立方体表示. 表示可计算的一种资源。结构事物部分图符结构事物部分图符27行为事物(Behavioral things)行为事物描述跨越时间和空间的行为. 行为事物指的是UML模型中的动态部分,代表语句里的“动词”,表示模型里随着时空不断变化的部分,包含两类:交互(interaction): 包括消息,动作序列和链.用一条有向直线表示。状态机(state machine): 包括状态,转换,事件和活动.用圆角矩形表示. 分组事物(Grouping things)分组事物可以看成是一个“盒子”,模型可以在其中被分解。目前只有一种分组事物,即包。结构事物、动作

11、事物甚至分组事物都有可能放在一个包中。包纯粹是概念上的,只存在于开发阶段,而组件在运行时存在。包(package): 是把元素组成组的机制.结构事物,行为事物甚至其它事物组成一个包.由左上角有一个小矩形的大矩形来表示. 注释事物(Annotational things)注释事物是UML模型的解释部分。注解(note):依附于一个元素或一组元素之上,对它进行约束或解释的简单的符号。用右上角是折角的矩形来表示。UML基本构造块事物关系结构事物行为事物分组事物辅助事物关联关系依赖关系泛化关系实现关系用例类接口协作主动类组件节点状态机交互机包注释模型元素图静态图动态图用例图类图对象图组件图配置图时序图

12、协作图状态图活动图UML基本构造块关系(Relationships)关系是将事物联系在一起的方式,UML中定义了四种关系: 关联( Association )关联是类之间的结构关系,它描述了一组链,链是对象(类的实例)之间的连接。聚合与合成是特殊类型的关联,描述了整体和部分间的结构关系。在图形上,把关联画成一条实线,它可能有方向,偶尔在其上还带有一个标记,而且它还经常含有诸如多重性和端名这样的修饰,如图所示。依赖(Dependencies)依赖是两个模型元素间的语义关系,其中一个元素(独立元素)发生变化会影响另一个元素(依赖元素)的语义。在图形上,把依赖画成一条可能有方向的虚线,偶尔在其上还带

13、有一个标记,如图所示: 泛化(Generalization)泛化是一种特殊/一般关系,在其中特殊元素(子元素)基于一般元素(父元素)而建立。用这种方法,子元素共享了父元素的结构和行为在图形上,把泛化关系画成一条带有空心箭头的实线,该实线指向父元素,如图示: 实现(Realization) 实现(realization)是类目之间的语义关系,其中的一个类目指定了由另一个类目保证执行的合约。在两种地方会遇到实现关系:一种是在接口和实现它们的类或构件之间;另一种是在用况和实现它们的协作之间。在图形上,把实现关系画成一条带有空心箭头的虚线,它是泛化和依赖关系两种图形的结合,如图所示。 UML基本构造块

14、事物关系结构事物行为事物分组事物辅助事物关联关系依赖关系泛化关系实现关系用例类接口协作主动类组件节点状态机交互机包注释模型元素图静态图动态图用例图类图对象图组件图配置图时序图协作图状态图活动图UML基本构造块用例模型及组成成分用例图从用户的角度出发描述系统的功能、需求,展示系统外部的各类角色与系统内部的各种用例之间的关系1类图(Class diagram)类图描述系统所包含的类、类的内部结构及类之间的关系类图是逻辑视图的重要组成部分,用于对系统的静态结构建模。在系统分析阶段,类图主要用于显示角色和提供系统行为的实体的职责;在系统设计阶段,类图主要用于捕捉组成系统体系结构的类结构;在系统实现阶段

15、,根据类图中的类及它们之间的关系实现系统的功能。 静态模型与系统体系结构建模2022/9/2639类是一组具有相同属性、相同行为、和其他对象有相同关系、有相同表现的对象描述,类具有属性和操作相对一个类的实例是对象,对象是一个类的实例,对象的每一个属性都具有具体的值,在UML中用如下图 所示 。若仅仅指明是某一个类的一般性对象,可表示为2对象图(Object diagram)对象图是类图的一个具体实例3包图(Package diagram) 包图表明包及其之间的依赖类图4构件图 (Component diagram) 组件图描述代码部件的物理结构以及各部件之间的依赖关系5配置图 部署图定义系统中

16、软硬件的物理体系结构动态模型与行为控制流建模 顺序图(Sequence Diagram)用来描述对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。顺序图的一个用途是用来表示用例中的行为顺序。当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或引起状态转换的触发事件 顺序图(也称时序图)表示实例之间按时间顺序组织的交互,是描述消息时间顺序的交互图。支持实时系统和复杂场景的详细建模。在图形上,顺序图是二维的。其中,垂直方向表示时间,水平方向表示不同的对象,显示的对象沿横轴排列,从左到右分布在图的顶部;而消息则沿纵轴按时间顺序排序。2合作图(协作图)描述对象间的协作关系,协作图跟顺序图

17、 相似,显示对象间的动态合作关系。除显示信息交换外,协作图还显示对象以及它们之间的关系.协作图的一个用途是表示一个类操作的实现协作图是强调发送和接受消息的对象之间的结构组织的交互图,可显示对象、对象之间的链接以及对象之间的消息,还可以显示当前模型中的简单类实例和类实体实例。高级语言程序设计2合作图3状态图 状态图是对类的一种补充描述,它展示了此类对象所具有可能的状态以及某些事件发生时其状态的转移情况。与交互图不同,交互图对共同工作的对象群体的行为建模,而状态图对单个对象的状态变化行为建模。4活动图 活动图是状态图的一个变体,用来描述执行算法的工作流程中涉及的活动活动图描述了一组顺序的或并发的活

18、动 高级语言程序设计子系统组织的系统体系结构 UML系统体系结构模型 系统模型组织的系统体系结构 系统体系结构模型的描述方式UML的构成图UML构成规则公共机制命名范围执行完整性可见性扩展机制通用划分详述修饰构造型约束标记值UML基本构造块公共机制UML具有四种贯穿整个语言且一致应用的公共机制,使得UML较为简单,他们分别是:详述(Specifications)修饰(Adornments)通用划分(Common divisions)扩展机制(Extensibility mechanisms)详述(Specifications)在UML中,每个模型元素的图形表示法之后都存在一个详述(规范说明),

19、它以文字的形式描述基本模型元素的语法和语义。例如,在类的图符背后有一个详述,它提供了对该类所拥有的属性、操作(包括完整的特征标记)和行为的全面描述;在视觉上,类的图符可能仅展示了这个详述的一小部分。此外,可能存在着该类的另一个视图,其中提供了一个完全不同的部件集合,但是它仍然与该类的基本详述相一致。UML的图形表示法用来对系统进行可视化;UML的详述用来说明系统的细节。修饰(Adornments)对类的详述可以包含其他细节,例如,它是否是抽象类,或它的属性和操作是否可见。可以把很多这样的细节表示为图形或文字修饰,放到类的基本矩形符号上。例如,下图是一个带有修饰的类,图中表明这个类是一个抽象类,

20、有两个公共操作、一个受保护操作和一个私有操作。 UML表示法中的每一个元素都有 一个基本符号,可以把各种修饰 细节加到这个符号上。 修饰举例在UML众多的修饰符中,注释是一种最重要的并且能单独存在的修饰符,它是附加在模型元素或元素集上用来表示约束或注解信息的图形符号。图中注释的作用是指出priority()的算法细节在文档exe.doc中。通用划分(Common divisions)UML提供了事物的抽象的描绘和具体的实例两种两分法表达,被称为公共划分。通常:第一种方法是对类和对象的划分。类是一种抽象,对象是这种抽象的一个具体表现。在UML中,可以对类和对象建立模型,如图所示。在图形上,UML

21、是这样辨别对象的:用与类同样的图形符号来表示对象,并且在对象名的下面画一道线。 在这个图中,有一个名称为Customer的类,它有3个对象,分别为Jan(它被明确地标记为Customer的对象),:Customer(匿名的Customer对象)和Elyse(它在详述中被说明为是一种Customer对象,尽管在这里没有明确地表示出来)。 通用划分(Common divisions)第二种方法是接口和实现的分离。接口声明了一个合约,而实现则表示了对该合约的具体实施,它负责如实地实现接口的完整语义。在UML中,既可以对接口建模又可以对它们的实现建模,如图所示。在这个图中,有一个名称为Spelling

22、Wizard.dll的构件,它实现了接口IUnknown和接口ISpelling,并且还需要一个由其他构件提供的名为IDictionary的接口。 通用划分(Common divisions)第三种方法是类型和角色的分离。类型声明了实体的种类(如对象、属性或参数),角色描述了实体在语境中的含义(如类、构件或协作等)。任何作为其他实体结构中的一部分的实体(例如属性)都具有两个特性:从它固有的类型派生出一些含义,从它在语境中的角色派生出一些含义。扩展机制 UML提供了一种绘制软件蓝图的标准语言,但是一种闭合的语言即使表达能力再丰富,也难以表示出各种领域中的各种模型在不同时刻所有可能的细微差别。由于

23、这个原因,UML是目标开放的,使人们能够以受控的方式来扩展该语言。UML的扩展机制包括:衍型(Stereotypes)标记值(Tagged values)约束(Constraints)扩展机制衍型(构造型 ):对UML的词汇的扩展,用于创建与已有的模型元素相似且针对特定问题的新种类的模型元素。用书名号括起来的名字表示,其位置在其他元素之上。 标记值:对UML元素的特性的扩展,用于在模型元素的规约中创建新的信息。用花括号括起来的字符串表示,其位置在其他元素之下。 约束:对UML元素的语义的扩展,用于增加新规则或修改已有规则。用花括号括起来的字符串表示,且放在所关联的元素附近或通过依赖关系连接相应

24、元素。扩展机制实例 衍型exception使得Overflow成为一个模型元素EventQueue中版本和作者是标记值add上的约束ordered使得EvenrQueue中的事件按序排列UML的构成图UML构成规则公共机制命名范围执行完整性可见性扩展机制通用划分详述修饰构造型约束标记值UML基本构造块4.规则(Rules of the UML)UML的规则描述了一个结构良好(well-formed)的模型看起来应该像什么。而不至于出现不太规范的使用。UML的有自己的语法和语义上的规则,用于:名字(Names):为事物、关系、图起的名字范围(Scope):使名字具有特定含义的语境可见性(Visi

25、bility):如何让其他成分看到和使用这些名字完整性(Integrity):事物如何正确、一致的相互联系执行(Execution):运行或者模拟动态模型意味着什么UML软件开发过程产生的模型与文档 (1)业务模型:建立问题领域的组织结构和业 务流程的抽象。描述方式:需求分析规格说明书。(2)领域模型:建立问题领域的需求分析说明。描述方式:需求分析规格说明书。(3)用例模型:表达系统的功能。 描述方式:用例图、活动图及需求分析规格说明书。 1模型 基本功能分析;实现功能的对象;对象之间的关系;4)分析模型(任选):只有复杂的系统才需要建立独立的分析模型。该模型包括: 描述方式:类图、对象图、包

26、图、顺序图、合 作图、状态图和活动图。(5)设计模型:系统具体解决方案,由调整和完善分析模型而成。 描述方式:类图、对象图、包图、顺序图、合作图、状态图和活动图。(7)实现模型:软件的系统体系结构。 描述方式:包图和构件图。 (6)进程模型(任选):描述系统并发和同步机制。有多线程的并发系统才建立。 描述方式:状态图、顺序图、合作图、活动图、构件图和配置图。(8)配置模型:描述系统软件在各个硬件上的配置。 描述方式:配置图。(9)测试模型:描述验证系统功能的途径。 描述方式:测试案例和测试报告。(1)技术文档(2)管理文档2文档UML软件开发过程的基本特征 1用例驱动的系统2以体系结构为中心3

27、螺旋上升式的开发过程4以质量控制和风险管理为目标 客户需求分析与用例建模用例驱动是统一过程的重要概念,或者说整个软件生产过程就是用例驱动的。分析、设计、实现、测试都是用例驱动的,都是以实现用例为目标。用例的捕获手段抽象建造需求模型用例建模 需求分析与用例建模用例建模的主要目标是:将需求规约变为可视化模型,并得到用户确认; 给出清晰、一致的关于系统做什么的描述,确定系统的功能要求; 提供从功能需求到系统分析、设计、实现各阶段的度量标准; 为最终系统测试提供基准,据此验证系统是否达到功能要求; 为项目目标进度管理和风险管理提供依据。 UML系统建模与分析设计用例图 用例建模的步骤: 确定系统的范围

28、和边界; 确定系统的执行者和用例; 对用例进行描述; 定义用例之间的关系; 审核用例模型。 定义系统的边界和范围 系统边界包括:整个组织:如一个企业; 一个组织的某个部门:如企业的财务处; 计算机系统的硬件/软件边界:如企业的进、销、存计算机管理系统。 1定义系统的范围 2定义系统的边界确定执行者 执行者(actor)是指在系统外部与系统交互的人或其他系统,他以某种方式参与了系统内用例的执行。Actor:在系统之外与系统交互的某人或某事物。Actor在建模过程中是处于核心地位的谁是执行者?小王去银行开户,向大厅经理询问了办理手续,填写了表单,交给柜台职员,拿到了银行存折。回答问题谁对系统有着明

29、确的目标和要求并且主动发出动作?系统是为谁服务的?参与者业务工人执行者可以非人需求:每天自动统计网页访问量,生成统计报表,并发送至管理员信箱。原则: 不存在没有参与者的用例,用例不应该自动启动,也不应该主动启动另一个用例。1定义执行者时应注意的几个问题 (1)执行者之间可以有继承关系 (2)执行者代表一种角色而不是具体某个人 (3)对同一个人担任角色的限制 (4)执行者可分成主执行者和副执行者 (5)执行者还可细分为主动执行者和被动执行者 寻找和确定执行者 情况一情况二情况三情况四确定用例用例,就是一件事情,要完成这件事情,需要做一系列的活动;而做一件事情可以有很多不同的方法和步骤,也可能会遇

30、到各种各样的意外情况,因此这件事情是由很多不同情况的集合构成的,在UML中我们称之为场景。一个场景就是一个用例的实例。确定用例1.用例的特征响应性。一个用例不自动执行,总是有执行者启动。回执性。 用例执行完毕,向执行者提供可识别的返回值。完整性。 用例表示一个完整的功能,必须是一完整的描述。 必须以向执行者提供返回值作为该用例完整性的标志。用例的特征-响应性这件事必须由一个执行者发起,执行者的愿望是用例存在的原因。不存在没有执行者的用例,也不应该主动启动另一个用例。用例的特征-完整性用例是相对独立的,即用例的“功能”是完备的一个用例就是一个需求单元、分析单元、设计单元、开发单元、测试单元甚至部

31、署单元。用例的特征-回执性用例的执行结果对执行者来说是可观测和有意义的用例的执行结果对参与者来说是可观测的和有意义的。如,系统会监控参与者在系统里的操作,并在参与者删除数据之前备份。虽然它是系统的一个必需组成部分,但它在需求阶段却不应该作为用例出现。因为这是一个后台进程,对参与者来说是不可观测的,它应该在系统用例分析阶段定义。又比如,登录系统是一个有效的用例,但输入密码却不是。这是因为登录系统对参与者是有意义的,这样他可以获得身份认证和授权,但输入密码却是没有意义的,输入完了呢?有什么结果吗?用例的特征-动宾短语用例必然是以动宾短语形式出现的。用例必然是以动宾短语形式出现的。即,这件事必须有一

32、个动作和动作的受体。例如,喝水是一个有效的用例,而“喝”和“水”却不是。虽然生活常识告诉我们,在没有水的情况下人是不会做出喝这个动作的,水也必然是喝进去的,而不是滑进去的.但是我们所见的很多用例中类似“计算”,“统计”,“报表”,“输出”,“录入”之类的并不在少数。寻找和确定用例业务用例:开始阶段,在确定用户需求过程中,系统分析员通过与客户交流建立业务模型来发现和确定的用例。系统用例:系统构造阶段,系统分析和设计人员在进行系统分析和设计时,根据系统的需求建立的用例。在系统开发的开端阶段,应把注意力集中在业务用例上,在精化阶段和构建阶段再考虑系统用例建立用例模型时,可询问:用户(执行者)需要系统

33、提供哪些业务功能,即系统能做什么?用户最关心系统中哪些事件?从功能观点看,这些事件表示什么?用户要了解系统在工作中发生了哪些事件及其结果?用户自己需要做什么?用户是否要在系统中创建、删除、读、修改或存储某类业务数据?系统为了维持正常运转需要增加的功能和信息的交互; 这些信息从何而来,到哪里去? 实现当前系统(可能是人工系统而不是自动化系统)的关键问题是什么?通过与用户反复交流,确定主要业务用例和次要业务用例。对于建立的每一个业务用例,都需要一组系统用例来辅助和支持。(不严谨)系统用例是执行者与系统的交互,它描述了系统的功能需求和动态行为。系统用例用于建立系统用例模型,可通过分析系统的业务流和控

34、制流来寻找和确定系统用例。(活动图)如何获得用例访谈您对系统有什么期望?您打算在这个系统里面做些什么事情?您做这件事的目的是什么?您做完这件事情希望有一个什么样的结果?一个明确的有效地目标才是一个用例的来源。一个真实的目标应当完备地表达执行者的期望。一个有效地目标应当在系统边界内,由主角发动,并具有明确的后果。应当先建立业务用例模型,然后再从业务用例模型向系统用例模型映射。 注意用例图的层次,从系统到子系统逐层建立用例图。用例和功能的误区用例就是功能划分? 在描述一个事物的时候,我们可以从以下三个观点出发:这个事物是什么?结构性观点这个事物能做什么?功能性观点人们能用这个事物做什么?使用者观点

35、结构性观点:自行车是一种交通工具,它由传动系统、刹车系统等部分组成。功能性观点:自行车可以骑行。使用者观点:人们可以用双脚蹬动踏板而向前行进,可以用手捏合刹车使自行车停下来。总结:功能是脱离使用者的愿望而存在的。功能是孤立的,给一个输入,通过计算就有一个固定的输出只要按下开关灯就亮。用例是系统性的,它需要描述谁在什么情况下通过什么方式开灯,结果是什么。功能描述的是一个个点。用例描述的是一个系统性工作。目标和步骤的误区用例的粒度ATM取钱的场景中,取钱,读卡,验证账号,打印回执单等都是可能的用例?用例粒度的划分最标准的方法应该是:以该用例是否完成了参与者的某个完整目的为依据的。同一个需求阶段,用

36、例的粒度应该时同一级别的。粒度选取的问题本质上还是因为边界认定不同而产生的。ATM示例客户代表说:我希望这台ATM能支持跨行业务,我插入卡片输入密码后,可以让我选择是取钱还是存钱;为了方便,可以设置一些默认的存取金额按钮;我可以修改密码,也可以挂失;还有我希望可以交纳水费、电费和电话等费用;为了安全起见,ATM上应当有警示小心骗子的提示条,还有摄像头;如果输入三次密码错误,卡片应当被自动吞没。判断题支持跨行业务插入卡片输入密码选择服务取钱存钱挂失卡片交纳费用警示骗子三次错误吞没卡片判断题参考答案支持跨行业务错,这是一个业务规则,限定业务的范围插入卡片错,这是一个过程步骤,不是完整目标输入密码错

37、,这是一个过程步骤,不是完整目标选择服务错,这是一个过程步骤,不是完整目标取钱对,这是一个完整有效的目标存钱对,这是一个完整有效的目标挂失卡片对,这是一个完整有效的目标交纳费用对,这是一个完整有效的目标警示骗子错,已超出了边界范围三次错误吞没卡片错,这是一个业务规则,限定业务的范围描述用例用例名:简单名: 路径名:用例的文字描述应包括以下内容:用例的目的(功能);该用例在什么情况下被哪个执行者启动执行;用例与执行者之间交互哪些消息来通知对方作出决定;交互的主消息流及因此被使用或修改的实体;用例中可供选择的异常事件流;用例结束标志:给执行者返回一个可识别的值。举例:用例名称:学生选课 执行者:学

38、生目的:完成一次学生选课的完整过程。类型:主要的、基本的级别:一级过程描述:(1)学生输入标识码(ID),系统识别标识码的有效性;(2)对学生进行注册识别;(3)流览本学期预开课程;(4)选择学生自己要上的课程并确认;(5)退出系统,系统给出所选课程列表及相应学分合计。异常事件流处理:(1)标识码有效性检查失败,允许学生重新输入(3次机会)。(2)注册识别失败,没有注册(尙未交学费)的学生不能选课。(3)选择课程确认失败,所选几门课程中在上课时间上发生冲 突时,系统提示重选。 用例之间的关联1继承关联2.扩展关联3.包含关联4.使用关联1.继承关联-泛化(generalization) 当多个

39、用例共同拥有一种类似的结构和行为的时候我们可以将它们的共性抽象成为父用例,其他的用例作为泛化关系中的子用例。泛化举例(一): 泛化举例(二):2022/9/261212.扩展(extend)箭头指向的用例为被扩展的用例,称为扩展用例;箭头出发的用例为基本用例。扩展用例是可选的,如果缺少扩展用例,不会影响到基用例的完整性;扩展用例在一定条件下才会执行,并且其执行会改变基用例的行为。扩展(extend)将扩展用例的事件流在一定的条件下按照相应的扩展点插入到基础用例中。 基础用例不必知道扩展用例的任何细节,它仅为其提供扩展点。扩展用例的行为是否被执行要取决于主事件流中的判定点。 扩展(extend)

40、扩展(extend)扩展举例(一):扩展(extend)扩展举例(二):3.包含(include)包含是指基本用例(base use case)会用到包含用例(inclusion),具体地讲,就是将包含用例的事件流插入到基础用例的事件流中。包含用例是可重用的用例多个用例的公共用例。 包含(include)箭头指向的用例为被包含的用例,称为包含用例;箭头出发的用例为基本用例。包含用例是必选的,如果缺少包含用例,基础用例就不完整;包含用例必须被执行,不需要满足某种条件;其执行并不会改变基用例的行为。包含(include)包含(include)包含举例(一):包含(include)包含举例(二):用

41、例之间的关系包含用例与扩展用例的区别相对于基础用例,扩展用例是可选的,而包含用例则不是。如果缺少扩展用例,基础用例还是完整的,而缺少包含用例,则基础用例就不完整了。扩展用例的执行需要满足某种条件,而包含用例不需要。扩展用例的执行会改变基础用例的行为,而包含用例不会。使用关联 使用关联也是一种继承关系.在使用关联中,一个用例使用另一个用例的功能和行为.考虑用例的关联类型1).图中的参与者有? (a) 1 (b) 2 (c) 3 (d) 42).图中的用例有? (a) 1 (b) 2 (c) 3 (d) 43). 2和3之间是什么关系?5和6呢? (a) 扩展,包含(b) 包含,扩展4).5缺少了

42、3仍然是个完整的用例? (a) 是的(b) 不是5).4能够参与2吗?1能够参与5吗? (a) 可以,不可以 (b) 不可以,可以习题答案:1、(a)(d) 2、(b)(c) 3、(b) 4、(b) 5、(b)习题用例图实例UML系统建模与分析设计需求分析规格说明2022/9/26138需求分析中的用例建模步骤根据UML软件开发过程的要求,问题领域的业务模型包括:业务用例模型业务对象模型系统模型包括:系统用例模型设计模型实现模型测试模型。首先应建立业务模型,再从业务模型向系统模型延伸 用例主要用于建立问题域的业务用例模型和系统用例模型, 最后建立起代表系统需求的完整的用例模型用例模型是开发者与

43、客户交流的纽带.客户能够看得懂用例模型。用例模型作为软件项目开发的后续基础,也是开发活动的指南。层次化用例图描述一个复杂的大系统,可以将系统分解为由若干子系统组成,子系统还可以有自己的下属系统子系统,形成一个系统层次结构。每一个子系统都需要相应的用例图进行描述,用例图之间也具有了层次结构。高层系统的用例可以分解为若干子系统的用例。这些具有层次结构的用例图可以简洁、全面、完整地描述用例模型。对于功能需求简单的系统,可不对用例图进行层次化.层次化用例图用例图可以描述一个系统(或子系统)的系统生存环境或系统功能需求1功能需求用例图描述系统功能需求的用例图。要在图上列出行为者和相关用例,并对每一个行为

44、者和用例给出说明描述。2生存环境用例图描述系统生存环境的用例图。要在图上列出行为者和相关用例,并将用例和行为者、用例和用例之间的各种关联标注出来客户需求分析中的活动图活动图(activity diagram)是UML的动态视图之一,用来描述事物或对象的活动变化流程。 活动图用于对系统的动态行为建模。(1)表示完成一个操作所需要的活动(2)描述一个用例实例(场景)的活动.活动图也是一种流程图迁移迁移与状态图不同,活动图的迁移是无条件的,一个活动结束即可自动进入下一个活动.条件判断条件判断是一个转折点,活动迁移按照满足条件的方向进行.条件是一个逻辑表达式,活动沿逻辑真的分支迁移.147并发活动:

45、分劈与接合: 用来对并发的控制流建模。分劈活动表示一个源活动分劈为多个目标活动。接合活动表示多个源活动接合为一个目标活动。分劈接合并发分劈并发接合活动图中的几个基本概念1. 动作状态(Action State)2. 活动状态(Activity State)3. 动作流(Action Flow)4. 泳道(Swimlane)5. 对象流(Object Flow)1.动作状态动作状态是指执行原子的、不可中断的动作,并在此动作完成后通过完成转换转向另一个状态的状态。 动作状态使用平滑的圆角矩形表示,动作状态所表示的动作写在圆角矩形内部。 动作状态的特点:动作状态是原子的,它是构造活动图的最小单位,已

46、经无法分解为更小的部分。动作状态是不可中断的状态,它一旦开始运行就不能中断,一直运行到结束。动作状态是瞬时的行为,它所占用的处理事件极短,有时甚至可以忽略。动作状态和状态图中的状态不同,它不能有入口动作和出口动作,更不能有内部转移。在一张活动图中,动作状态允许多处出现。 2. 活动状态活动状态用于表达状态机中的一个非原子的运行。 活动状态的表示图标也是平滑的圆角矩形,并可以在图标中给出入口动作和出口动作等信息。活动状态的特点:活动状态可以分解成其他子活动或动作状态,由于它是一组不可中断的动作或操作的组合,所以可以被中断。活动状态的内部活动可以用另一个活动图来表示。和动作状态不同,活动状态可以有

47、入口动作和出口动作,也可以有内部转移。动作状态是活动状态的一个特例,如果某个活动状态只包括一个动作,那么它就是一个动作状态。 3.动作流所有动作状态之间的转换流称之为动作流。 无条件动作流条件动作流条件分支条件合并 4 泳道 泳道是活动图中的区域划分,每一个泳道代表一个责任区域,指明活动是由谁负责的或发起的。一个泳道中包括一组相关活动。泳道5.活动图中的对象 对象流: 反映活动与对象之间的依赖关系,表示对象对活动的作用或活动对对象的影响,用依赖关系表示。对象流1)如果箭头从活动指向对象,表示活动对对象的创建、修改或撤销等的影响;2)如果箭头从对象指向活动,表示该活动将使用所指向的对象。对象下的

48、方括号表示对象的状态动作状态的分劈和同步接合要成对出现.同步杆一个线程经过同步杆”分劈”后分为几个线程,当这几个线程全部执行完毕后,再经过同步杆”接合”为一个新线程,这就是”同步并发迁移”。条件线程,在执行时,该线程的条件为“假”,对与同步“接合”而言,就认为该线程已执行完毕。活动图中的并发与同步活动动态并发指一个动作或活动可以并发重复执行,其并发执行次数由运动时的并发表达式确定.图3-21是图3-20的简化活动图.3.具有层次关系的活动图活动按其构成可分为简单活动和组合活动。简单活动:不能再分解的活动;组合活动:一个内部嵌套了若干活动或动作的活动。被嵌套的活动称为子活动.按结构层次关系描述活动图时,可以在最高层只描述几个组合活动,不必涉及子活动的内容.组合活动查询价格简单活动课堂练习学生请假流程1、学生请假须先经班主任同意;2、班主任在准假时,如学生请假时间超越审批权限,还要请系办审批,经系办审批后,系办将假条存根留下,事后转班主任存查。3、学生请假获准后,应立即报告班长,以便班长向任课教师报告。2022/9/26162需求分析用例建模案例客户需求分析1业务组织结构(综述)“企业综合信息管理系统”的用户是企业各级管理部门的工作人员、公

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论