第2部分高级软件工程面向对象软件建模技术_第1页
第2部分高级软件工程面向对象软件建模技术_第2页
第2部分高级软件工程面向对象软件建模技术_第3页
第2部分高级软件工程面向对象软件建模技术_第4页
第2部分高级软件工程面向对象软件建模技术_第5页
已阅读5页,还剩281页未读 继续免费阅读

下载本文档

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

文档简介

1、软件建模精要软件建模精要 可行性研究与计划可行性研究与计划需求分析需求分析设计设计编码编码运行维护运行维护测试测试定义定义阶段阶段开开发发阶阶段段维护阶段维护阶段瀑布模型瀑布模型 一、对象一、对象 1、对象的概念 对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。 对象既可以描述客观存在的事物客观存在的事物,也可以表示由人主观构造的抽象观念抽象观念。 汽车汽车灯泡灯泡扳手扳手农村农村共产主义共产主义对象对象汽车汽车灯泡灯泡扳手扳手农村农村汽车汽车客观世界:客观世界:(客观事物)(客观事物)主观世界:主观世界:(概念)(概念) 软件世界:软件世界: (对象)(对象)灯泡灯泡扳手

2、扳手农村农村共产共产主义主义共产共产主义主义2、对象在三个世界中的含义 软件中对象由一组属性和操作组成。软件中对象由一组属性和操作组成。 3、软件中的对象及性质 例如例如: : 3、软件中的对象及性质雇员雇员姓名雇员出生日期雇佣日期雇员( )Public class Employee private String name; private EmployeeDate birthDate; private EmployeeDate hireDate; public Employee(Sting name,int bYYYY, int bMM, int bDD, int hYYYY, int hM

3、M,int hDD) = name; birthDate = new EmployeeDate(bYYYY,bMM,bDD); hireDate = new EmployeeDate(hYYYY,hMM,hDD); public String to String() return name+” birthday:”+ birthDate.toString()+ “hired:”+hireDate.toString(); 雇员对象Java编写的“雇员对象”程序 二、类类 1 1、类的概念、类的概念 类类用来描述具有相同性质的一组对象。用来描述具有相同性质的一组对象。 汽车汽车

4、灯泡灯泡扳手扳手农村农村共产主义共产主义类类 2 2、类的表示、类的表示增加学生( )删除学生( )学校校名:Name地址:String电话:Number类名属性操作 三、封装三、封装 1 1、封装的概念、封装的概念 封装封装是把某些可以独立存在的内容封裹起是把某些可以独立存在的内容封裹起来,构成一个整体,并把内部细节隐藏起来,来,构成一个整体,并把内部细节隐藏起来,仅向外部提供可以提供的外在描述。仅向外部提供可以提供的外在描述。 2 2、对象的封装、对象的封装 对象封装对象封装是把对象的属性和操作结合成一是把对象的属性和操作结合成一个独立的系统单位,并隐藏对象的内部细节,个独立的系统单位,并

5、隐藏对象的内部细节,向外部提供对象的接口。向外部提供对象的接口。在类的外部不能访问在类的外部可以访问私有公有类封装封装 3 3、对象封装的作用、对象封装的作用 保护对象:保护对象: 防止用户直接存取对象的内部细节。防止用户直接存取对象的内部细节。 保护客户:保护客户: 对象内部细节变化,接口不变,并不影响对象内部细节变化,接口不变,并不影响用户对对象的使用和访问。用户对对象的使用和访问。 四、继承四、继承 1 1、继承的概念、继承的概念 继承继承描述一般事物与特殊事物之间的关系,描述一般事物与特殊事物之间的关系,特殊事物可以直接继承一般事物的属性。特殊事物可以直接继承一般事物的属性。花花 四、

6、继承四、继承 2 2、面向对象中的继承、面向对象中的继承 继承:继承:子类子类( (特殊事物特殊事物) )无需定义,就可以无需定义,就可以直接继承父类直接继承父类( (一般事物一般事物) )的属性和操作。的属性和操作。 3 3、继承的类型、继承的类型 单继承:单继承:子类只能继承一个父类;子类只能继承一个父类; 多继承:多继承:子类可以继承多个父类。子类可以继承多个父类。 五、多态五、多态 1 1、多态的概念、多态的概念 多态多态描述子类在继承父类的属性和操作时,描述子类在继承父类的属性和操作时,根据子类的特点,赋予子类的特殊性。根据子类的特点,赋予子类的特殊性。 六、消息六、消息 消息消息是

7、一个对象向另外一个对象发出的服是一个对象向另外一个对象发出的服务请求。消息一般包括提供服务的对象标识,务请求。消息一般包括提供服务的对象标识,操作名,输入信息,输出信息等。操作名,输入信息,输出信息等。1.1 软件模型软件模型 1.1.1 软件模型的概念软件模型的概念 1.1.2 软件模型的内容软件模型的内容 1.2 面向对象的基本概念面向对象的基本概念2.1.1 UML2.1.1 UML的含义的含义 UML: Unified Modeling Language UML: Unified Modeling Language 统一建模语言统一建模语言. . 作用作用: : 建立软件模型建立软件模

8、型 建模语言建模语言: : 提供交流的词汇和规提供交流的词汇和规则则 可视化可视化: : 通过标准图符构成图形来描述模通过标准图符构成图形来描述模型型 建模语言而非编程语言建模语言而非编程语言 通用标准通用标准: : 成为软件建模的标准语言成为软件建模的标准语言, ,并且并且在其他领域也得到应用。在其他领域也得到应用。 Whats UML29Booch 91Booch 93Unified Method 0.8UML 1.0OMT - 2OMT - 1OOSEUML 0.9 & 0.919595年年96.1 96.1 到到 96.1096.1097.1297.12 OMG Standard OM

9、G StandardOther methodsOther methods向上向上96.1296.12UML PartnersUML PartnersUML 1.1UML 1.3UML 1.4UML 2.0 工工业业化化 标标准准 集成集成 多种方法多种方法2.1.2 UML的的发发展展历历史史UML的创建人的创建人: OMT方法方法 Booch方法方法 OOSE方法方法UML Rumbaugh Booch Jacobson (朗伯夫) (布奇) (雅各布森) UML之父 IBM Rational部门首席科学家 现代语言学家2.2.1 UML2.2.1 UML构成概述构成概述 作为建模语言作为建

10、模语言,UML,UML由以下几部分构成由以下几部分构成: : 基本语言组成基本语言组成 语言的构成成分语言的构成成分, ,包括包括: : 要素,关系,图要素,关系,图 语义规则语义规则: : 语言的语法和语义规则语言的语法和语义规则 公共机制公共机制: : 规范说明规范说明, ,语言扩展等语言扩展等UML的构成的构成图图基本语言构成基本语言构成语义语义规则规则要素要素结构: (共7种)行为: (消息, 状态)分组: (包)注释: (注释)关系关系依赖关联泛化实现类图, 对象图, 用例图, 顺序图, 协作图, 状态图, 活动图, 构件图, 部署图命名命名范围范围可见性可见性完整性完整性执行执行规

11、范说明规范说明修饰修饰通用划分通用划分扩展机制扩展机制(版型版型, 标记值标记值,约束约束)通用(或公共)机制通用(或公共)机制2.2.2 UML2.2.2 UML基本语言要基本语言要素素 UML UML语言中的要素语言中的要素 UMLUML语言的基本构成要素语言的基本构成要素, ,包括四类包括四类: : 结构结构: : 语言的静态构成要素语言的静态构成要素, ,有有7 7种种 行为行为: : 语言的动态构成要素语言的动态构成要素, ,表示事物表示事物 的变化和状态的变化和状态 分组分组: : 对模型中事物分组组织的要素对模型中事物分组组织的要素 注释注释: : 对

12、模型中事物标注和解释对模型中事物标注和解释1 1 结构结构 结构结构: : UMLUML语言的静构成要素语言的静构成要素, ,包括包括7 7种种: :类名属性操作类类: 描述一组具有相同性质的对象。描述一组具有相同性质的对象。接口接口: 描述一个类或一个构件的服描述一个类或一个构件的服务操作集。务操作集。类名属性操作主动类主动类: 对象至少拥有一个进程或线对象至少拥有一个进程或线程,能启动控制活动程,能启动控制活动。用例用例: 描述一组动作序列,参与者通描述一组动作序列,参与者通过它能够完成一定的功能。过它能够完成一定的功能。构件构件: 描述软件系统的构成件。描述软件系统的构成件。结点结点:

13、一个基本计算单元,可以是一一个基本计算单元,可以是一个物理结点,客户机或服务器个物理结点,客户机或服务器。协作协作: 描述一组动作序列的实现描述一组动作序列的实现。1 结构结构2 2 行为行为 行为行为: : UMLUML的动态构成要素的动态构成要素, ,包括包括2 2种种: :消息消息: 一组对象之间为完成某一项任一组对象之间为完成某一项任务而进行的一系列消息交换的行为务而进行的一系列消息交换的行为说明。说明。状态状态: 一个对象或一个交互在生命期一个对象或一个交互在生命期内响应事件所经历的状态序列。内响应事件所经历的状态序列。3 3 分组分组 分组分组: : UMLUML对模型的组织要素。

14、对模型的组织要素。包包: UMLUML用包来对模型进行分组组织,用包来对模型进行分组组织,一个包中包括若干个相关的模型元一个包中包括若干个相关的模型元素。素。4 4 注释注释 注释注释: : 解释解释模型元素的要素。模型元素的要素。注释注释:对模型中的元素进行解释。对模型中的元素进行解释。 UML UML中的关系中的关系 关系关系: : UMLUML定义的模型元素之间的关系定义的模型元素之间的关系, ,包包括四种括四种: :l关联关联l泛化泛化l依赖依赖l实现实现1 1 关联关联关联关联: : 本指事物之间存在的固有的牵连关系,本指事物之间存在的固有的牵连关系,在在

15、UMLUML中,是对具有共同结构特征、关系和语义的中,是对具有共同结构特征、关系和语义的对象或实例之间的链接描述。对象或实例之间的链接描述。表示:表示:一条实线一条实线教师教师学生学生教学2 2 泛化泛化超类超类子类子类家具家具沙发沙发泛化泛化: 在在UML中,描述事物之间的一般中,描述事物之间的一般和特殊关系。特殊事物具有并继承一般事物和特殊关系。特殊事物具有并继承一般事物的特性。的特性。表示:表示:一条带空心三角形箭头的实箭线一条带空心三角形箭头的实箭线特殊特殊一般一般例子:例子:3 3 依赖依赖依赖依赖: : 两个要素之间的因果关系,其中一个两个要素之间的因果关系,其中一个要素(独立要素

16、)发生变化会影响另外一个要素要素(独立要素)发生变化会影响另外一个要素(依赖要素)的语义。(依赖要素)的语义。表示表示:一条虚箭线:一条虚箭线 教师教师课表课表授课独立要素独立要素(因因)依赖要素依赖要素(果)(果)依赖于4 4 实现实现 实现实现: : 描述类元之间的语义关系,表示说明和实描述类元之间的语义关系,表示说明和实现间的关系。一种是接口与实现它的类和构件;现间的关系。一种是接口与实现它的类和构件;另一种是用例和实现它们的协作。另一种是用例和实现它们的协作。 表示表示:一条带空心三角形箭头的虚箭线。:一条带空心三角形箭头的虚箭线。类类接口接口用例用例协作协作实现实现说明说明2.2.2

17、.3 UML UML中的图中的图 UMLUML共定义了共定义了9 9种图种图: : 用例图用例图 状态图状态图 类图类图 活动图活动图 对象图对象图 构件图构件图 顺序图顺序图 部署图部署图 协作图协作图1 1 用例图用例图 用例用例: :是外部可见的一个系统功能单元。是外部可见的一个系统功能单元。 作用作用: :描述一组用例描述一组用例, ,参与者及其它们之间的关系,是外参与者及其它们之间的关系,是外部用户所能观察到的系统功能的模型图。用于需求建模。部用户所能观察到的系统功能的模型图。用于需求建模。2 2 类图类图 作用作用: :描述一组类之间的关系。用于对应用领域中的描述一组

18、类之间的关系。用于对应用领域中的概念以及与系统实现有关的内部概念建模。概念以及与系统实现有关的内部概念建模。3 3 对象图对象图 作用作用: :描述一组对象之间的关系。它是对象类图的一个描述一组对象之间的关系。它是对象类图的一个实例,表示在某一时刻系统对象的状态、对象之间关实例,表示在某一时刻系统对象的状态、对象之间关系的状态以及对象行为静态方面的状态。系的状态以及对象行为静态方面的状态。4 4 顺序图顺序图 作用作用: :描述一个交互,表示了对象之间传送消息的时间描述一个交互,表示了对象之间传送消息的时间顺序。顺序。5 5 协作图协作图 作用作用: :描述一个交互,强调对象与对象之间的消息传

19、描述一个交互,强调对象与对象之间的消息传递。递。6 6 状态图状态图 作用作用: :描述一个对象所处的状态及其变化,是一个类对象描述一个对象所处的状态及其变化,是一个类对象所可能经历的所有历程的模型图。所可能经历的所有历程的模型图。7 7 活动图活动图 作用作用: :描述执行算法的工作流程中涉及的活动,描述执行算法的工作流程中涉及的活动,是对人类组织的现实世界中的工作流程建模。是对人类组织的现实世界中的工作流程建模。8 8 构件图构件图 作用作用: :描述一组构件及其关系,用于为系统的构描述一组构件及其关系,用于为系统的构件建模。件建模。9 9 部署图部署图 作用作用: :描述一组节点及其关系

20、,允许评估分配结果和资源分配。节点是描述一组节点及其关系,允许评估分配结果和资源分配。节点是一组运行期间的系统资源,如计算机、数据库、设备或存储器。一组运行期间的系统资源,如计算机、数据库、设备或存储器。2.2.3 UML2.2.3 UML的基本语义规则的基本语义规则UML有一套规则,这些规则描述了一个结构良好的模型看起来应该象什么。一个结构良好的模型应该在语义上是前后一致的,并且与所有的相关模型协调一致。 UMLUML的基本语义规则有的基本语义规则有: : 命名命名 范围范围 可视性可视性 完整性完整性 执行执行UML的构成的构成图图基本语言要素基本语言要素语义语义规则规则事物事物结构事物:

21、 (共7种)行为事物: (交互, 状态机)分组事物: (包)注释事物: (注释)关系关系依赖关联泛化实现类图, 对象图, 用例图, 顺序图, 协作图, 状态图, 活动图, 构件图, 部署图命名命名范围范围可视性可视性完整性完整性执行执行规范说明规范说明修饰修饰通用划分通用划分扩展机制扩展机制(版型版型, 标记值标记值,约束约束)通用机制通用机制2.2.3 UML2.2.3 UML的基本语义规则的基本语义规则 1)1)命名命名 规定对要素、关系、图命名。规定对要素、关系、图命名。 例如:例如:student student 为一个类的名字为一个类的名字 2)2)范围范围 给一个名字特定含义的语境

22、。给一个名字特定含义的语境。 例如:属性例如:属性name:string name:string 3)3)可视性可视性 规定外界对该名字识别和使用的范围。规定外界对该名字识别和使用的范围。 三种:三种:public:public:公共公共 + + protected:protected:保护保护 # # private:private:私用私用 - -2.2.3 UML2.2.3 UML的基本语义规则的基本语义规则 4)4)完整性完整性 保证事物正确、一致地相互联系。保证事物正确、一致地相互联系。 例如:一个对象出现在不同的图中时,如何例如:一个对象出现在不同的图中时,如何保证其一致性。保证其

23、一致性。5)5)执行执行 运行或模拟动态模型的含义是什么。运行或模拟动态模型的含义是什么。 2.2.4 UML2.2.4 UML的通用机制的通用机制通用机制:通过与具有公共特征的模式通用机制:通过与具有公共特征的模式取得一致性,使模型更为简单和协调。取得一致性,使模型更为简单和协调。 UMLUML的通用机制有的通用机制有: : 规格说明规格说明 修饰修饰 对应划分对应划分 扩展机制扩展机制UML的构成的构成图图基本语言要素基本语言要素语义语义规则规则事物事物结构事物: (共7种)行为事物: (交互, 状态机)分组事物: (包)注释事物: (注释)关系关系依赖关联泛化实现类图, 对象图, 用例图

24、, 顺序图, 协作图, 状态图, 活动图, 构件图, 部署图命名命名范围范围可视性可视性完整性完整性执行执行规格说明规格说明修饰修饰对应划分对应划分扩展机制扩展机制(版型版型, 标记值标记值,约束约束)通用机制通用机制2.2.4 UML2.2.4 UML的通用机制的通用机制 1)1)规格说明规格说明 UMLUML对每一个元素都有确定的图形表示符对每一个元素都有确定的图形表示符号,但对该图形符号还有语法、语义的文字说号,但对该图形符号还有语法、语义的文字说明。明。 例如:例如:ActorActor:参与者,:参与者,UMLUML表示为:表示为: 2.2.4 UML2.2.4 UML的通用机制的通

25、用机制 2)2)修饰修饰 图形符号表示一个元素的主要特征,此外,图形符号表示一个元素的主要特征,此外,可以加上修饰,表示该元素的特征。可以加上修饰,表示该元素的特征。 例如:矩形框表示一个类,有类名,属性,例如:矩形框表示一个类,有类名,属性,操作等。但也可增加操作等。但也可增加“可视性可视性” 等修饰。等修饰。可视性2.2.4 UML2.2.4 UML的通用机制的通用机制3)3)对应划分(通用划分)对应划分(通用划分) 指元素指元素/ /元素实例、接口元素实例、接口/ /实现这样的划分方法。实现这样的划分方法。 抽象抽象- -实例实例 例如,类例如,类- -对象,用例对象,用例- -具体用例

26、具体用例 接口接口- -实现实现 接口表示约定,实现表示对约定的实施接口表示约定,实现表示对约定的实施 2.2.4 UML2.2.4 UML的通用机制的通用机制4)4)扩展机制扩展机制 UMLUML提供了一种绘制软件蓝图的标准语言,为了表示提供了一种绘制软件蓝图的标准语言,为了表示出各种领域的各种模型在不同时刻所有可能的细微差别,出各种领域的各种模型在不同时刻所有可能的细微差别,以受控方法扩展该语言。以受控方法扩展该语言。 版型版型( (构造型构造型) ) 用来扩展用来扩展UMLUML的词汇,增加语言元素;的词汇,增加语言元素; 或者划分或者划分某一种元素的不同类型。某一种元素的不同类型。 形

27、式:形式:扩展描述扩展描述 例例1 1,把,把“包包” 构造为构造为“subsystem(subsystem(子系统子系统) )”类型。类型。 2.2.4 UML2.2.4 UML的通用机制的通用机制4)4)扩展机制扩展机制 例例2 2,参与者是一个版型化的类,其版型为,参与者是一个版型化的类,其版型为ActorActor。 2.2.4 UML2.2.4 UML的通用机制的通用机制4)4)扩展机制扩展机制 标记标记- -值值 标记标记- -值用来规定模型元素的特性。通常把标记值用来规定模型元素的特性。通常把标记与值用等号相连,放在花括号中,放在模型元素后与值用等号相连,放在花括号中,放在模型元

28、素后面。面。 形式:形式: 标记标记= =值值 例如,例如, 院校院校= =云南大学云南大学 指出类指出类studentstudent是云南是云南大学的学生。大学的学生。 student院校=云南大学2.2.4 UML2.2.4 UML的通用机制的通用机制4)4)扩展机制扩展机制 约束约束 约束规定所约束的模型元素的某个条件或命题约束规定所约束的模型元素的某个条件或命题必须为真,否则模型无效。约束也用必须为真,否则模型无效。约束也用 描述。描述。 形式:形式: 约束条件约束条件 例如,例如, 子集子集 指出领导属于成员的子集。指出领导属于成员的子集。 人学会*成员成员*领导领导*子集子集【UM

29、LUML支持工具支持工具】 StarUML(免费英文UML建模工具) Rational Rose(商业版IBM开发UML建模工具) Visio(商业版微软开发通用建模工具) Visual Paradigm for UML(免费中文社群版) Archware (免费自主研发UML建模工具)2.1 UML概述概述 2.1.1 UML的含义的含义 2.1.2 UML的发展历史的发展历史 2.1.3 UML的特点的特点2.2 UML构成构成 2.2.1 概述概述 2.2.2 UML的基本语言要素的基本语言要素 2.2.3 UML的语义规则的语义规则 2.2.4 UML的通用机制的通用机制 2.3 UM

30、L的视图和应用领域的视图和应用领域 2.3.1 UML视图视图 2.3.2 UML的应用领域的应用领域3.1 用例用例3.2 参与者参与者3.3 用例之间的关系用例之间的关系3.4 用例图用例图3.5 发现用例发现用例3.1 3.1 用例用例 1. 1. 用例的概念用例的概念 用例用例(use case):(use case): 表示参与者与系统的一次交互过程。表示参与者与系统的一次交互过程。 2.2.用例的表示用例的表示 用例用椭圆表示用例用椭圆表示 3. 3. 用例的特点用例的特点 用例用于描述系统的功能,这个功能是用例用于描述系统的功能,这个功能是外部使用者看到的系统功能,不反映功能的实

31、外部使用者看到的系统功能,不反映功能的实现方式。现方式。 储蓄系统储蓄系统开户开户存款存款取款取款转帐转帐 3. 3. 用例的特点用例的特点 用例描述用户提出的一些可见需求,对应用例描述用户提出的一些可见需求,对应一个具体的用户目标。一个具体的用户目标。 储蓄系统储蓄系统开户开户存款存款取款取款转帐转帐数据上传数据上传 3. 3. 用例的特点用例的特点 用例反映系统与用户的一次交互过程,应用例反映系统与用户的一次交互过程,应该具有交互的信息的传递。该具有交互的信息的传递。 帐户,密码,金额数帐户,密码,金额数确认信息,帐户余额确认信息,帐户余额取款取款 3. 3. 用例的特点用例的特点 用例是

32、对系统功能的描述,属于需求建模。用例是对系统功能的描述,属于需求建模。 a a 通过读卡机,储户插入通过读卡机,储户插入ATM卡卡 b b ATM系统从卡上读取银行系统从卡上读取银行ID、帐号、并验证帐号。、帐号、并验证帐号。 c 储户键入密码,系统检验密码。储户键入密码,系统检验密码。 d 储户按确认键,输入取款金额。储户按确认键,输入取款金额。 e ATM把帐号和取款金额传递给银行系统,取回帐户余额。把帐号和取款金额传递给银行系统,取回帐户余额。 f ATM输出现金,并显示帐户余额。输出现金,并显示帐户余额。 d ATM记录事务到日志文件。记录事务到日志文件。取款取款用例的动态事件流用例的

33、动态事件流 用例的特点用例的特点 用例用于描述系统的功能,这个功能是外用例用于描述系统的功能,这个功能是外部使用者看到的系统功能,不反映功能的实现部使用者看到的系统功能,不反映功能的实现方式。方式。 用例描述用户提出的一些可见需求,对应用例描述用户提出的一些可见需求,对应一个具体的用户目标。一个具体的用户目标。 用例反映系统与用户的一次交互过程,应用例反映系统与用户的一次交互过程,应该具有交互的信息的传递。该具有交互的信息的传递。 用例是对系统功能的描述,属于需求建模。用例是对系统功能的描述,属于需求建模。 3.2 3.2 参与者参与者 1. 1. 参与者的概念参与者的概念 参与者参与者(ac

34、toractor)是外部需要与系统交互的事)是外部需要与系统交互的事物。也被称为活动者。物。也被称为活动者。 2.2.参与者的三种类型参与者的三种类型 . . 人:客户,读者,库管员人:客户,读者,库管员 . . 设备:计算机,磁盘,读卡机等设备:计算机,磁盘,读卡机等 . . 外部系统:上层系统等外部系统:上层系统等 3. 3. 参与者的表示参与者的表示 参与者可以表示为下面三种形式。参与者可以表示为下面三种形式。3.3 3.3 用例之间的关系用例之间的关系 用例之间可以具有以下几种关系:用例之间可以具有以下几种关系: . . 关联关系关联关系 . . 泛化关系泛化关系 . . 包含关系包含

35、关系 . . 扩展关系扩展关系 1 1. . 关联关系关联关系 参与者与用例之间是关联关系,表示参与者参与者与用例之间是关联关系,表示参与者与用例之间具有使用,交互信息的关联。与用例之间具有使用,交互信息的关联。 2 2. . 泛化关系泛化关系 参与者与参与者之间,用例与用例之间存在参与者与参与者之间,用例与用例之间存在一般与特殊的关系。一般与特殊的关系。 3 3. . 包含关系包含关系 两个用例之间,一个用例两个用例之间,一个用例( (基本用例基本用例) )的行为的行为包含了另外一个用例包含了另外一个用例( (包含用例包含用例) )的行为。的行为。 包含关系用依赖关系的包含关系用依赖关系的构

36、造型来构造型来表示,箭头指向被包含的用例。表示,箭头指向被包含的用例。 4 4. . 扩展关系扩展关系 扩展关系表示基本用例在扩展点要增加新的扩展关系表示基本用例在扩展点要增加新的行为或功能,以扩展到新用例。行为或功能,以扩展到新用例。 扩展关系用依赖关系的扩展关系用依赖关系的构造型来构造型来表示,箭头指向被扩展的用例。表示,箭头指向被扩展的用例。关系关系解释解释图图参与者与用例之间的关系关联关联表示参与者与用例之间的交互,通信途径。(关联有时候也用带箭头的实线来表示,这样的表示能够显示地表明发起用例的是参与者。)用例之间的关系包含包含箭头指向的用例为被包含的用例,称为包含用例;箭头出发的用例

37、为基用例。包含用例是必选的,如果缺少包含用例,基用例就不完整;包含用例必须被执行,不需要满足某种条件;其执行并不会改变基用例的行为。 include扩展扩展箭头指向的用例为被扩展的用例,称为扩展用例;箭头出发的用例为基用例。扩展用例是可选的,如果缺少扩展用例,不会影响到基用例的完整性;扩展用例在一定条件下才会执行,并且其执行会改变基用例的行为。参与者之间或用例之间的关系泛化泛化发出箭头的事物“is a”箭头指向的事物。泛化关系是一般和特殊关系,发出箭头的一方代表特殊的一方,箭头指向的一方代表一般一方。特殊一方继承了一般方的特性并增加了新的特性。extend5.5.用例图中的关系及解释用例图中的

38、关系及解释3.4 3.4 用例图用例图 1. 1. 用例图的作用用例图的作用 用例图用例图用来描述软件需求模型中的系统功用来描述软件需求模型中的系统功能,通过一组用例可以描述软件系统能够给用能,通过一组用例可以描述软件系统能够给用户提供的功能。户提供的功能。 用例图用例图可以作为整个系统开发过程中的开可以作为整个系统开发过程中的开发依据,指导和驱动其他模型。发依据,指导和驱动其他模型。 2. 2. 用例图的形式用例图的形式 自然语言 内容:用例的目标用例是怎么启动的参与者和用例之间的消息是如何传送的用例中除了主路径外,其它路径是什么用例结束后的系统状态其它需要描述的内容3.5 3.5 用例的描

39、述用例的描述模板描述项描述项说明说明用例名称用例名称用例的用途标识符标识符*唯一,在文档别处可引用用例描述用例描述简单描述参与者表参与者表与此用例相关的参与者列表优先级优先级数字越小,优先级越高。以此决定用例开发的顺序状态状态*进行中、等待审查、通过审查或未通过审查前置条件前置条件条件列表,访问用例之前应得到满足后置条件后置条件条件列表,访问用例之后得到满足 基本操作流基本操作流描述用例中各项工作正常进行是用例工作方式可选操作流可选操作流描述变更工作方式、出现异常所遵循的工作路径被泛化用例表被泛化用例表该用例的特化用例列表被包含用例表被包含用例表该用例所包含用例列表被扩展用例表被扩展用例表该用

40、例的扩展用例列表修改历史记录修改历史记录*关于用例的修改时间、原因和修改人信息等问题问题*与此用例开发相关的问题列表决策决策*关键决策列表频率频率*参与者访问该用例的频率用例:取款用例:取款参与者:储户参与者:储户操作流:操作流: 通过读卡机,储户插入通过读卡机,储户插入ATM卡卡 ATM系统从卡上读取银行系统从卡上读取银行ID、帐号、并验证帐号。、帐号、并验证帐号。 储户键入密码,系统检验密码。储户键入密码,系统检验密码。 储户按确认键,输入取款金额。储户按确认键,输入取款金额。 ATM把帐号和取款金额传递给银行系统,取回确认信把帐号和取款金额传递给银行系统,取回确认信息和帐户余额。息和帐户

41、余额。 ATM输出现金,并显示帐户余额。输出现金,并显示帐户余额。 ATM记录事务到日志文件。记录事务到日志文件。取款用例描述实例取款用例描述实例3.6 3.6 发现用例发现用例 发现用例的一般方法:发现用例的一般方法: 找出系统外部参与者,确定系统边界和范围。找出系统外部参与者,确定系统边界和范围。 确定各参与者所期望的系统行为。确定各参与者所期望的系统行为。 把这些系统行为命名为用例。把这些系统行为命名为用例。 确定各用例之间的关系确定各用例之间的关系(泛化,包含,扩展泛化,包含,扩展)。 绘制用例图。绘制用例图。 编制用例说明。编制用例说明。 对异常流程确定单独用例。对异常流程确定单独用

42、例。 优化用例图,解决用例之间的冲突和重复。优化用例图,解决用例之间的冲突和重复。某学校网上选课系统的用例分析某学校网上选课系统的用例分析 管理员通过系统管理界面进入系统,建立本学管理员通过系统管理界面进入系统,建立本学期要开设的各种课程,将课程信息保存到系统中,期要开设的各种课程,将课程信息保存到系统中,并可以对课程进行改动和删除。并可以对课程进行改动和删除。 学生通过客户机浏览器进入系统,选择课程:学生通过客户机浏览器进入系统,选择课程:可以查询课程,选择课程,支付课程费用。可以查询课程,选择课程,支付课程费用。 找出系统外部参与者,确定系统边界和范围。找出系统外部参与者,确定系统边界和范

43、围。 确定各参与者所期望的系统行为。确定各参与者所期望的系统行为。 管理员:管理员: 增加课程增加课程 修改课程修改课程 删除课程删除课程学生:学生: 查询课程查询课程 选择课程选择课程 网上付费网上付费 找出系统外部参与者,确定系统边界和范围。找出系统外部参与者,确定系统边界和范围。 确定各参与者所期望的系统行为。确定各参与者所期望的系统行为。 把这些系统行为命名为用例。把这些系统行为命名为用例。 确定各用例之间的关系确定各用例之间的关系(泛化,包含,扩展泛化,包含,扩展)。 绘制用例图。绘制用例图。 用例:增加课程用例:增加课程参与者:管理员参与者:管理员操作流:操作流: 管理员选择进入管

44、理界面,用例开始。管理员选择进入管理界面,用例开始。 系统提示输入管理员密码。系统提示输入管理员密码。 管理员输入密码。管理员输入密码。 系统检验密码。系统检验密码。 A1:密码出错。:密码出错。 进入管理界面,系统显示当前所建立的全部课程信息。进入管理界面,系统显示当前所建立的全部课程信息。 管理员选择增加课程,管理员输入新课程信息。管理员选择增加课程,管理员输入新课程信息。 系统验证是否与已有课程冲突。系统验证是否与已有课程冲突。:有冲突。:有冲突。 系统添加新课程,并提示添加成功。系统添加新课程,并提示添加成功。 系统回到管理主界面,显示所有课程,用例结束。系统回到管理主界面,显示所有课

45、程,用例结束。 编制用例说明。编制用例说明。 对异常流程确定单独用例。对异常流程确定单独用例。 优化用例图,解决用例之间的冲突和重复。优化用例图,解决用例之间的冲突和重复。3.1 用例用例 3.1.1 用例的概念用例的概念 3.1.2 用例的表示用例的表示 3.1.3 用例的特点用例的特点3.2 参与者参与者 3.2.1 参与者的概念参与者的概念 3.2.2 参与者的类型参与者的类型 3.2.3 参与者的表示参与者的表示 3.2.4 参与者之间的关系参与者之间的关系 3.3 用例之间的关系用例之间的关系 3.3.1 关联关系关联关系 3.3.2 泛化关系泛化关系 3.3.3 包含关系包含关系

46、3.3.4 扩展关系扩展关系 3.4 用例图用例图 3.4.1 用例图的作用用例图的作用 3.4.2 用例图的形式用例图的形式 3.5 用例的描述用例的描述 3.6 发现用例发现用例1、下面说法错误的是、下面说法错误的是: A 泛化表示一般和特殊的关系泛化表示一般和特殊的关系 B 用例之间存在泛化关系用例之间存在泛化关系 C 参与者之间存在泛化关系参与者之间存在泛化关系 D 参与者和用例之间存在泛化关系参与者和用例之间存在泛化关系?2、下面说法错误的是、下面说法错误的是: A 参与者是与所建立系统交互的人或物参与者是与所建立系统交互的人或物 B 参与者可以是人参与者可以是人,也可以是其他系统也

47、可以是其他系统 C 参与者是系统的一部分参与者是系统的一部分,是用例图的重是用例图的重要组成部分要组成部分 D 参与者之间存在泛化关系参与者之间存在泛化关系?4.1 类的定义类的定义4.2 类的关系类的关系4.3 类图类图4.4 对象图对象图4.5 几个特殊问题几个特殊问题4.1.1 类的概念类的概念4.1.2 类的属性类的属性4.1.3 类的操作类的操作4.1.4 类的类型类的类型4.1.1 4.1.1 类的概念类的概念 1. 1. 类的定义类的定义 类类(class):(class): 具有相似结构、行为和关系的一组对象。具有相似结构、行为和关系的一组对象。 2.2.类的表示类的表示 类名

48、类名属性属性操作操作 3 3. .类的其他几种表示形式类的其他几种表示形式 简化表示简化表示 缩略表示缩略表示实体类实体类界面类界面类控制类控制类学生学生 4 4. .类名类名 名词或名词短语名词或名词短语(动词或动词短语表示控制类动词或动词短语表示控制类) 尽可能用明确、简短,业务领域中事物的名称尽可能用明确、简短,业务领域中事物的名称,避免使用抽象、无意义的名词避免使用抽象、无意义的名词例如:人,桌子,图形,汇总例如:人,桌子,图形,汇总 用英文,第用英文,第1 1个字母大写个字母大写例如:例如:Shape, Person, CheckingAccdount 可分为简单类名,带路径类名可分

49、为简单类名,带路径类名例如:例如: CheckingAccdount Banking:CheckingAccdount例如:帐户,订单,事物例如:帐户,订单,事物1、指出下面命名有问题的的类。、指出下面命名有问题的的类。?4.1.2 4.1.2 类的属性类的属性 1. 1. 属性的含义属性的含义 属性属性(attribute): (attribute): 描述类所表示事物的静态性质。描述类所表示事物的静态性质。 2.2.属性的格式属性的格式 可见性可见性 属性名属性名:类型类型 多重性多重性 次序次序 =初始值初始值特性特性4.1.2 4.1.2 类的属性类的属性 1. 1. 属性的含义属性的

50、含义 属性属性(attribute): (attribute): 描述类所表示事物的静态性质。描述类所表示事物的静态性质。 2.2.属性的格式属性的格式 第第1个英文单词首字母小写个英文单词首字母小写,其它单其它单词首字母大写词首字母大写 contactName credintLimit isPrepaid 可见性可见性 属性名属性名:类型类型 多重性多重性 次序次序 =初始值初始值特性特性4.1.2 4.1.2 类的属性类的属性 1. 1. 属性的含义属性的含义 属性属性(attribute): (attribute): 描述类所表示事物的静态性质。描述类所表示事物的静态性质。 2.2.属性

51、的格式属性的格式 该属性对外部实体的显现程度该属性对外部实体的显现程度. 可见可见public : + 受限受限protected: # 私有私有private : - 可见性可见性 属性名属性名:类型类型 多重性多重性 次序次序 =初始值初始值特性特性4.1.2 4.1.2 类的属性类的属性 1. 1. 属性的含义属性的含义 属性属性(attribute): (attribute): 描述类所表示事物的静态性质。描述类所表示事物的静态性质。 2.2.属性的格式属性的格式 属性的数据类型属性的数据类型: 字符串字符串:String 日期日期:Date 布尔布尔:Boolean 整型整型:int

52、 可见性可见性 属性名属性名:类型类型 多重性多重性 次序次序 =初始值初始值特性特性4.1.2 4.1.2 类的属性类的属性 1. 1. 属性的含义属性的含义 属性属性(attribute): (attribute): 描述类所表示事物的静态性质。描述类所表示事物的静态性质。 2.2.属性的格式属性的格式 表示属性值的取值的多寡表示属性值的取值的多寡,以及有序性以及有序性: 例如例如: name:String0.1 表示属性表示属性”name”可能无值可能无值,也可能仅有一个值也可能仅有一个值. points:Point2.* ordered 表示有两个或多个值表示有两个或多个值,有序有序

53、可见性可见性 属性名属性名:类型类型 多重性多重性 次序次序 =初始值初始值特性特性4.1.2 4.1.2 类的属性类的属性 1. 1. 属性的含义属性的含义 属性属性(attribute): (attribute): 描述类所表示事物的静态性质。描述类所表示事物的静态性质。 2.2.属性的格式属性的格式 表示属性初始所取的值表示属性初始所取的值: 例如例如: #visibility:Boolean=false 表示属性表示属性”visibility”初始取初始取”false” 可见性可见性 属性名属性名:类型类型 多重性多重性 次序次序 =初始值初始值特性特性4.1.2 4.1.2 类的属性

54、类的属性 1. 1. 属性的含义属性的含义 属性属性(attribute): (attribute): 描述类所表示事物的静态性质。描述类所表示事物的静态性质。 2.2.属性的格式属性的格式 表示属性约束说明表示属性约束说明: 例如例如: #visibility:Boolean=false读写读写 表示属性表示属性”visibility”可读可读,写写 可见性可见性 属性名属性名:类型类型 多重性多重性 次序次序 =初始值初始值特性特性1、指出下面属性名的含义。、指出下面属性名的含义。?+姓名姓名:String=“黎明黎明”#出生日期出生日期:Date=1999-10-21-年薪年薪:floa

55、t=12.01R/W4.1.3 4.1.3 类的操作类的操作 1. 1. 操作的含义操作的含义 操作操作(operation): (operation): 描述类所表示事物的动态性质。描述类所表示事物的动态性质。 2.2.操作的格式操作的格式 可见性可见性 操作名操作名(参数列表参数列表):):返回类型返回类型特性特性4.1.3 4.1.3 类的操作类的操作 1. 1. 操作的含义操作的含义 操作操作(operation): (operation): 描述类所表示事物的动态性质。描述类所表示事物的动态性质。 2.2.操作的格式操作的格式 可见性可见性 操作名操作名(参数列表参数列表):):返回

56、类型返回类型特性特性第第1个英文单词首字母小写个英文单词首字母小写,其它单其它单词首字母大写词首字母大写 close() creditRecording()4.1.3 4.1.3 类的操作类的操作 1. 1. 操作的含义操作的含义 操作操作(operation): (operation): 描述类所表示事物的动态性质。描述类所表示事物的动态性质。 2.2.操作的格式操作的格式 该操作对外部实体的显现程度该操作对外部实体的显现程度. 可见可见public : + 受限受限protected: # 私有私有private : - 可见性可见性 操作名操作名(参数列表参数列表):):返回类型返回类型

57、特性特性4.1.3 4.1.3 类的操作类的操作 1. 1. 操作的含义操作的含义 操作操作(operation): (operation): 描述类所表示事物的动态性质。描述类所表示事物的动态性质。 2.2.操作的格式操作的格式 该操作的输入参数该操作的输入参数,可以为空可以为空. 例如例如: #create() +hide() -ttachXWindow(xwin:Xwindow) 可见性可见性 操作名操作名(参数列表参数列表):):返回类型返回类型特性特性4.1.3 4.1.3 类的操作类的操作 1. 1. 操作的含义操作的含义 操作操作(operation): (operation):

58、 描述类所表示事物的动态性质。描述类所表示事物的动态性质。 2.2.操作的格式操作的格式 该操作的返回值的类型该操作的返回值的类型. 例如例如: +display():Location 可见性可见性 操作名操作名(参数列表参数列表):):返回类型返回类型特性特性1、指出下面操作名的含义。、指出下面操作名的含义。?+设置姓名设置姓名(String:name)+获取名字获取名字():String+创建一本书创建一本书()4.1.4 4.1.4 类的类型类的类型 边界类位于系统与外界的交界处边界类位于系统与外界的交界处, ,承担系统与承担系统与外界的信息功能外界的信息功能. .1.1.边界类边界类(

59、 (界面类界面类) ) 边界类处在用例图中边界类处在用例图中,参与者与用例的关联处参与者与用例的关联处,可以根据用例图发现边界类。可以根据用例图发现边界类。 实体类对应着现实中的客观实物,用来保存实体类对应着现实中的客观实物,用来保存信息,一般对应着数据表、文件等。信息,一般对应着数据表、文件等。2.2.实体类实体类 实体类可以从现实中存在的客观事物,以及实体类可以从现实中存在的客观事物,以及需要持久存放的信息两方面来发现。需要持久存放的信息两方面来发现。 控制类承担着事务处理,控制调控的控制作控制类承担着事务处理,控制调控的控制作用。用。3.3.控制类控制类 一个用例中最少会有一个控制类,用

60、来控制一个用例中最少会有一个控制类,用来控制用例中的事件顺序,也可以在多个用例之间协用例中的事件顺序,也可以在多个用例之间协调用例之间的联系。调用例之间的联系。例子:订货系统例子:订货系统4.2.1 关联关联4.2.2 聚集和组合聚集和组合4.2.3 泛化泛化4.2.4 依赖依赖4.2.1 4.2.1 关联关联 1. 1. 关联的定义关联的定义 关联的通俗含义关联的通俗含义 表示事物之间的一种牵连式的固有联系。表示事物之间的一种牵连式的固有联系。 例如:例如: 关联关联4.2.1 4.2.1 关联关联 1. 1. 关联的定义关联的定义 关联的本质含义关联的本质含义 关联关联(associati

温馨提示

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

评论

0/150

提交评论