《第7章 统一建模语言(UML)2.ppt》由会员分享,可在线阅读,更多相关《第7章 统一建模语言(UML)2.ppt(73页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、面向对象软件工程与UML第7章 统一建模语言UML面向对象软件工程与UMLv面向对象方法面向对象方法v统一建模语言统一建模语言UMLUMLvUMLUML模型中模型中9 9种类型的图种类型的图v面向对象的分析与设计过程面向对象的分析与设计过程 主要内容面向对象软件工程与UML 面面向向对对象象方方法法与与结结构构化化方方法法相相比比,突突出出的的优优势势体现在以下几个方面。体现在以下几个方面。(1 1)对问题空间的理解更直接,更符合人们认识客)对问题空间的理解更直接,更符合人们认识客观事物的思维规律。观事物的思维规律。结构化方法把现实世界映射成数据流和加工,结构化方法把现实世界映射成数据流和加工
2、,但它把数据流和控制流分开讨论,二者有时难以统但它把数据流和控制流分开讨论,二者有时难以统一,而且数据流方法主要构造的还是过程模型,它一,而且数据流方法主要构造的还是过程模型,它描述数据结构的能力仍然很弱,一般还需要另外使描述数据结构的能力仍然很弱,一般还需要另外使用诸如用诸如E-RE-R图之类的工具来建立数据的逻辑模型,造图之类的工具来建立数据的逻辑模型,造成了过程和数据的分离。成了过程和数据的分离。一、面向对象方法一、面向对象方法面向对象软件工程与UML 而面向对象方法把二者统一于对象内部,而面向对象方法把二者统一于对象内部,加工过程映射为对象的操作,数据映射为对象加工过程映射为对象的操作
3、,数据映射为对象的属性,任何数据和与这些数据相关的过程都的属性,任何数据和与这些数据相关的过程都是与相关的对象共同生存的,这样增强了模型是与相关的对象共同生存的,这样增强了模型的一致性和准确性。的一致性和准确性。面向对象软件工程与UML(2 2)系统分析和系统设计使用同一模型,不存在过)系统分析和系统设计使用同一模型,不存在过渡困难。渡困难。结构化方法的另一个主要问题是从分析过渡到结构化方法的另一个主要问题是从分析过渡到设计有双重负担,一是构造方法的转换;一是添加设计有双重负担,一是构造方法的转换;一是添加实施细节。实施细节。而在面向对象方法中,从分析到设计使用相同而在面向对象方法中,从分析到
4、设计使用相同的基本表示,对象模型是整个开发过程中的一个统的基本表示,对象模型是整个开发过程中的一个统一的表示工具。好处不仅是减少了各个阶段模型之一的表示工具。好处不仅是减少了各个阶段模型之间的转换,较好地支持模型到代码的正向工程及代间的转换,较好地支持模型到代码的正向工程及代码到模型的逆向工程,而且可以使需求的变化较为码到模型的逆向工程,而且可以使需求的变化较为容易地同步到模型和代码中。容易地同步到模型和代码中。面向对象软件工程与UML(3 3)开发出来的信息系统从本质上具有更强的生)开发出来的信息系统从本质上具有更强的生命力。需求的不断变化是我们不得不接受的事实。命力。需求的不断变化是我们不
5、得不接受的事实。结构化方法基于功能分析与功能分解,而用户结构化方法基于功能分析与功能分解,而用户的需求变化往往是功能或流程的变化,因此开发出的需求变化往往是功能或流程的变化,因此开发出来的系统是不稳定的。来的系统是不稳定的。而问题空间的对象最稳定,它们对潜在变化最而问题空间的对象最稳定,它们对潜在变化最不敏感。面向对象方法使代表共性的对象稳定下来,不敏感。面向对象方法使代表共性的对象稳定下来,而把不稳定的东西隐藏起来。这样可避免增加复杂而把不稳定的东西隐藏起来。这样可避免增加复杂性,系统对环境的适应和应变能力也随之增强。性,系统对环境的适应和应变能力也随之增强。面向对象软件工程与UML(4 4
6、)维护成本降低。)维护成本降低。采用结构化方法开发出来的系统是模块层次结采用结构化方法开发出来的系统是模块层次结构的,而模块的划分具有随意性,不同的开发人员构的,而模块的划分具有随意性,不同的开发人员可能分解成不同的软件结构。这样的系统维护工作可能分解成不同的软件结构。这样的系统维护工作相当困难相当困难 。面向对象方法中的类是更理想的模块机制,其面向对象方法中的类是更理想的模块机制,其独立性好,类对外的接口设计好后,类内部的修改独立性好,类对外的接口设计好后,类内部的修改不会影响到其他类。不会影响到其他类。面向对象软件工程与UML “工欲善其势,必先利其器工欲善其势,必先利其器”。2020世纪
7、世纪8080年代末,一些方法论学者、研究人员和年代末,一些方法论学者、研究人员和专家就开始提出面向对象的表示符号和方法。专家就开始提出面向对象的表示符号和方法。其中具有代表性的有科德一约顿(其中具有代表性的有科德一约顿(CoadCoad-YourdonYourdon)的)的OOAOOAOODOOD、格雷迪格雷迪布奇(布奇(Grady Grady BoochBooch)的的 BoochBooch 方法、吉姆方法、吉姆朗姆恩(朗姆恩(Jim Jim RumbaughRumbaugh)的对象建模技术(的对象建模技术(OMTOMT)、)、艾瓦艾瓦雅格布雅格布森(森(IvarIvar Jacobson
8、Jacobson)的面向对象软件工程(的面向对象软件工程(OOSOOS)等等 。二、统一建模语言UML面向对象软件工程与UML UMLUML统一了面向对象建模的基本概念、术语及统一了面向对象建模的基本概念、术语及其图形符号,为不同领域的人员提供一个交流的标其图形符号,为不同领域的人员提供一个交流的标准,它不仅可以应用于软件开发从分析到测试的各准,它不仅可以应用于软件开发从分析到测试的各个阶段,还可以支持多种领域的建模,如信息系统、个阶段,还可以支持多种领域的建模,如信息系统、嵌人式实时系统、机械系统、商业系统等。嵌人式实时系统、机械系统、商业系统等。就像数据流图作为结构化分析的建模语言,模就像
9、数据流图作为结构化分析的建模语言,模块结构图作为结构化总体设计的建模语言一样,块结构图作为结构化总体设计的建模语言一样,UMLUML是面向对象的系统分析与设计的建模语言,不要将是面向对象的系统分析与设计的建模语言,不要将它理解为一种方法论或是一种开发过程。它理解为一种方法论或是一种开发过程。面向对象软件工程与UML UMLUML定定义义了了以以下下几几种种视视图图,从从不不同同角角度度反反映映系系统:统:n用例视图(用例视图(use case viewuse case view)描描述述系系统统的的功功能能需需求求,是是最最终终用用户户、分分析析人人员员和测试人员看到的系统行为。和测试人员看到
10、的系统行为。该该视视图图的的静静态态方方面面(即即系系统统要要实实现现的的功功能能)由由用用例例图图(use use case case diagramdiagram)表表现现;动动态态方方面面(即即功功能能实实现现的的过过程程)由由交交互互图图(interaction interaction diagramdiagram)、状状态态图图(state state chart chart diagramdiagram)和和活动图(活动图(activity diagramactivity diagram)表现。表现。面向对象软件工程与UMLn设计视图(设计视图(design viewdesign
11、view)表表达达系系统统的的基基本本逻逻辑辑结结构构,描描述述问问题题以以及及问问题题的的逻逻辑辑解解决决方方案案,包包含含了了类类、接接口口和和协协作作。该该视视图图的的静静态态方方面面采采用用类类图图(class class diagramdiagram)和和对对象象图图(object object diagramdiagram)表表现现,动动态态方方面面由由交交互互图、状态图和活动图表现。图、状态图和活动图表现。面向对象软件工程与UMLn进程视图(进程视图(process viewprocess view)包含了形成系统并发与同步机制的线程和进包含了形成系统并发与同步机制的线程和进程,
12、该视图用于系统性能、可伸缩性和吞吐量的程,该视图用于系统性能、可伸缩性和吞吐量的设计。在设计。在UMLUML中,对进程视图的静态方面和动态方中,对进程视图的静态方面和动态方面的表现与设计视图相同,但注重描述线程和进面的表现与设计视图相同,但注重描述线程和进程的主动类。程的主动类。面向对象软件工程与UMLn实现视图(实现视图(deployment viewdeployment view)表达软件成分的组织结构,包含用于装配与表达软件成分的组织结构,包含用于装配与发布发布 物理系统的构件和文件。该视图主要用于物理系统的构件和文件。该视图主要用于系统发布的配置管理,其中静态方面由构件图系统发布的配置
13、管理,其中静态方面由构件图(component diagramcomponent diagram)表现,动态方面由交互表现,动态方面由交互图、状态图和活动图表现。图、状态图和活动图表现。面向对象软件工程与UMLn实施视图(实施视图(deployment viewdeployment view)包含了形成系统硬件拓扑结构的节点。这包含了形成系统硬件拓扑结构的节点。这种视图主要描述组成物理系统的部件的分布、种视图主要描述组成物理系统的部件的分布、交付和安装。该视图主要由实施图交付和安装。该视图主要由实施图(deployment diagramdeployment diagram)表现。表现。面向对
14、象软件工程与UML三、UML模型中9种类型的图 1 1用例图用例图 用例实际上就是从用户的角度去定义具有交用例实际上就是从用户的角度去定义具有交互过程的系统功能。每个功能与一个或多个参与互过程的系统功能。每个功能与一个或多个参与者(者(actoractor)相连接。参与者是指处于系统之外,相连接。参与者是指处于系统之外,需要使用用例的人或事物。一个系统的用例一般需要使用用例的人或事物。一个系统的用例一般有多个,用例图就是用来组织这些用例的。有多个,用例图就是用来组织这些用例的。面向对象软件工程与UML 下面用例图描述了一个录像租赁系统的主要用例。下面用例图描述了一个录像租赁系统的主要用例。店员
15、是参与者,主要用例有:购买货品、出租货品、店员是参与者,主要用例有:购买货品、出租货品、归还货品、报废货品。归还货品、报废货品。面向对象软件工程与UML2 2类图类图 类图用来表示系统中的类和类之间的关系。类类图用来表示系统中的类和类之间的关系。类由属性和操作共同组成。在一个大的系统中,可以由属性和操作共同组成。在一个大的系统中,可以根据某种分类方式将类组织在多个类图中。根据某种分类方式将类组织在多个类图中。下图是一个简化的租赁系统的类图。该图列出了下图是一个简化的租赁系统的类图。该图列出了7 7个类及它们的关系。租赁公司将库存货品清单记载个类及它们的关系。租赁公司将库存货品清单记载在库存目录
16、中,货品分为录像带和录像机两大类,它在库存目录中,货品分为录像带和录像机两大类,它们有不同的属性信息。目录中的货品在库存中可能存们有不同的属性信息。目录中的货品在库存中可能存有多份副本(货品实物),每份独立登记,使用不同有多份副本(货品实物),每份独立登记,使用不同的序号标识,称为项目。的序号标识,称为项目。面向对象软件工程与UML类图的类图的模型元素模型元素面向对象软件工程与UML面向对象软件工程与UML3 3对象图对象图 对象反映了一个类的实例。对象图表示系统对象反映了一个类的实例。对象图表示系统在某个特定时刻各个类可能的具体内容,帮助对在某个特定时刻各个类可能的具体内容,帮助对类图的理解
17、。类图的理解。下图是上述类图的部分对象图,表示在处理第下图是上述类图的部分对象图,表示在处理第00120012号租赁业务的特定时刻各个对象的具体内容,号租赁业务的特定时刻各个对象的具体内容,即对象当前的属性值。该时刻即对象当前的属性值。该时刻1 1号会员正在登记号会员正在登记00120012号租赁记录,产品中的第号租赁记录,产品中的第001001号录像带选中并号录像带选中并租出。租出。面向对象软件工程与UML面向对象软件工程与UML4 4状态图状态图 如果一个类的对象具有多种状态,而且这些如果一个类的对象具有多种状态,而且这些状态在系统运行中发挥着重要的作用,那么就可状态在系统运行中发挥着重要
18、的作用,那么就可以使用状态图。状态图用来描述一个特定对象的以使用状态图。状态图用来描述一个特定对象的所有可能状态及其引起状态转移的事件,常用于所有可能状态及其引起状态转移的事件,常用于对系统动态方面建模。对系统动态方面建模。面向对象软件工程与UML在状态图中定义的状态有:在状态图中定义的状态有:(1 1)初初态态。是是状状态态图图的的起起始始点点,表表示示对对象象的的初初始始状状态态,初初态态只有一个,用实心圆表示。只有一个,用实心圆表示。(2 2)终态。是状态图的终点,表示一个对象完成必要操作后终态。是状态图的终点,表示一个对象完成必要操作后的最终状态,终态可能有多个,或者没有终态(如电梯的
19、工的最终状态,终态可能有多个,或者没有终态(如电梯的工作状态)。用实心圆外加一个圆圈表示终态。作状态)。用实心圆外加一个圆圈表示终态。(3 3)中间状态。处于初态和终态之间的状态。)中间状态。处于初态和终态之间的状态。(4 4)子状态。嵌套在另一个状态中的状态,含有子状态的状)子状态。嵌套在另一个状态中的状态,含有子状态的状态被称做复合状态。态被称做复合状态。面向对象软件工程与UML 上图是租赁商店的货品项目的状态转移图。一个新购货品进人商店库上图是租赁商店的货品项目的状态转移图。一个新购货品进人商店库存,这就是初态;该货品经过租出事件后,进人租出状态,而租出状态存,这就是初态;该货品经过租出
20、事件后,进人租出状态,而租出状态中又分为正常和超期两种子状态;在租出状态的货品归还后,又回到店中又分为正常和超期两种子状态;在租出状态的货品归还后,又回到店内;货品经过报废处理后,其生命周期结束,即为终态。内;货品经过报废处理后,其生命周期结束,即为终态。面向对象软件工程与UML5 5活动图活动图 活动图显示从活动到活动的控制流。它的应用非常广泛,活动图显示从活动到活动的控制流。它的应用非常广泛,既可用来描述操作(类的方法)的行为,也可以描述用例和既可用来描述操作(类的方法)的行为,也可以描述用例和对象内部的工作过程。对象内部的工作过程。活动图提供以下丰富的描述手段:活动图提供以下丰富的描述手
21、段:(1 1)起起点点和和终终点点。活活动动仅仅有有一一个个起起始始点点(用用实实心心圆圆表表示示),但可以有多个结束点,用实心圆外加一个圆圈来表示。但可以有多个结束点,用实心圆外加一个圆圈来表示。(2 2)转转换换。当当一一个个动动作作和和活活动动结结束束时时,控控制制流流会会马马上上传传递递给下一个动作或活动,使用转换来说明流的路径。给下一个动作或活动,使用转换来说明流的路径。面向对象软件工程与UML(3 3)分支。活动图中使用一个菱形的判断标志来表)分支。活动图中使用一个菱形的判断标志来表达分支路径。达分支路径。(4 4)并发。使用一个称为同步条的水平粗线可以将)并发。使用一个称为同步条
22、的水平粗线可以将一条转换分为多个并发执行的分支,或将多个转换一条转换分为多个并发执行的分支,或将多个转换汇合为一个转换。汇合时,并发的控制流必须都执汇合为一个转换。汇合时,并发的控制流必须都执行到汇合处,取得同步后,才会触发转换,进而执行到汇合处,取得同步后,才会触发转换,进而执行后面的活动。行后面的活动。(5 5)泳道。泳道用于对一个活动图中的活动进行分)泳道。泳道用于对一个活动图中的活动进行分组表示。组表示。面向对象软件工程与UML 活动图的一个示例:它描述了顾客在归还租用活动图的一个示例:它描述了顾客在归还租用物品时的工作流。首先会员提出归还,店员检查损物品时的工作流。首先会员提出归还,
23、店员检查损坏情况,然后针对不同损坏情况对该租赁项目进行坏情况,然后针对不同损坏情况对该租赁项目进行不同的处理,如果严重损坏做报废处理,从库存中不同的处理,如果严重损坏做报废处理,从库存中删除该项目,否则将项目状态设置为在店内,最后删除该项目,否则将项目状态设置为在店内,最后记录该租赁记录的归还日期并进行结算,会员付款,记录该租赁记录的归还日期并进行结算,会员付款,活动结束。活动结束。面向对象软件工程与UML面向对象软件工程与UML6.6.顺序图顺序图 用来描述为实现一个用例,多个对象之间动态的用来描述为实现一个用例,多个对象之间动态的交互关系,着重体现对象间消息传递的时间顺序,交互关系,着重体
24、现对象间消息传递的时间顺序,图中自上至下的箭头位置对应消息传递和响应的先图中自上至下的箭头位置对应消息传递和响应的先后顺序。后顺序。面向对象软件工程与UML 下图是出租货品的顺序图,该用例一共涉及了四下图是出租货品的顺序图,该用例一共涉及了四个对象和一个参与者。从顺序上看,首先建立一个新个对象和一个参与者。从顺序上看,首先建立一个新的租赁记录,其次为该租赁记录创建一个空的租赁条的租赁记录,其次为该租赁记录创建一个空的租赁条项,而后在库存中进行选择录像带并获取名称,再提项,而后在库存中进行选择录像带并获取名称,再提取具体租借的录像带的序号进行登记(租借多个录像取具体租借的录像带的序号进行登记(租
25、借多个录像带则重复多次该过程),最后确认本次租赁记录完成,带则重复多次该过程),最后确认本次租赁记录完成,先计算总租金并登记预付款,后修改库存和项目有关先计算总租金并登记预付款,后修改库存和项目有关信息。信息。面向对象软件工程与UML面向对象软件工程与UML7 7协作图协作图 协作图用来描述为实现一个用例多个对象之间的协作关协作图用来描述为实现一个用例多个对象之间的协作关系,与顺序图不同,它着重体现的是对象间消息的连接关系。系,与顺序图不同,它着重体现的是对象间消息的连接关系。面向对象软件工程与UML8 8构件图构件图 现在的软件远不是从前只需要一个现在的软件远不是从前只需要一个EXEEXE文
26、件那么简单。文件那么简单。一个大的系统往往由多个代码单元组成,如源代码文件、可一个大的系统往往由多个代码单元组成,如源代码文件、可执行文件、动态链接库及其他组件(这里统称为构件)。执行文件、动态链接库及其他组件(这里统称为构件)。面向对象软件工程与UML9 9实施图实施图 实施图用来描述系统运行时软件和硬件的物理配置。其中实施图用来描述系统运行时软件和硬件的物理配置。其中硬件配置包含硬件节点及其连接关系,软件配置包含各构件硬件配置包含硬件节点及其连接关系,软件配置包含各构件在硬件节点上的分布情况。在硬件节点上的分布情况。面向对象软件工程与UML四、面向对象的分析与设计过程 简单的面向对象方法使
27、用的是简单的面向对象方法使用的是UMLUML的模型和符的模型和符号,它包括以下号,它包括以下5 5个活动。个活动。(1 1)识别信息系统目标和系统边界。)识别信息系统目标和系统边界。比如,一个医院门诊系统的目标描述如下:比如,一个医院门诊系统的目标描述如下:“该系统者该系统者提供普通及专家挂号和诊疗服务,并实现门诊收费管理提供普通及专家挂号和诊疗服务,并实现门诊收费管理”。(2 2)识别用例,建立用例图。)识别用例,建立用例图。(3 3)识别对象、类及其关系,建立类图。)识别对象、类及其关系,建立类图。(4 4)设计用例的详细逻辑,建立顺序图和协作图。)设计用例的详细逻辑,建立顺序图和协作图。
28、(5 5)精化并调整。)精化并调整。面向对象软件工程与UML1.1.识别系统的目标和边界识别系统的目标和边界 (1)(1)识别信息系统的目标识别信息系统的目标 n某某便便利利店店信信息息系系统统的的目目标标是是:帮帮助助收收银银员员提提高高结结账账的的工工作作效率,保存好每笔销售记录,更有效地支持商店的操作。效率,保存好每笔销售记录,更有效地支持商店的操作。n某某材材料料仓仓库库(任任何何仓仓库库应应用用)信信息息系系统统的的目目标标是是:帮帮助助人人员员更更有有效效地地实实现现进进货货和和出出货货,从从而而提提高高仓仓库库的的收收益益确确保保库存商品数量的正确性,并提高库存率。库存商品数量的
29、正确性,并提高库存率。n某某订订货货中中心心信信息息系系统统的的目目标标是是:提提高高接接收收货货单单、货货单单运运送送和付款的效率和正确率。和付款的效率和正确率。n某某自自动动导导航航系系统统(任任何何其其他他实实时时控控制制系系统统)信信息息系系统统的的目目标是:维持飞机的高度、方向和飞行途中的状态。标是:维持飞机的高度、方向和飞行途中的状态。面向对象软件工程与UML2.2.明确信息系统的边界明确信息系统的边界 如:销售公司建立一套进销存管理的信息系统,主要目标是提如:销售公司建立一套进销存管理的信息系统,主要目标是提高进货出货的效率和准确性,提供相关分析报告,辅助决策。从目高进货出货的效
30、率和准确性,提供相关分析报告,辅助决策。从目标上看该信息系统的工作范围是记录每笔业务护品进货、产品销售)标上看该信息系统的工作范围是记录每笔业务护品进货、产品销售)的具体情况,控制库存的变化,提供销售报表等,而具体的财务方的具体情况,控制库存的变化,提供销售报表等,而具体的财务方面的管理由专用的账务处理系统来完成,并提供相关接口与本系统面的管理由专用的账务处理系统来完成,并提供相关接口与本系统相连。这样,账务系统不属于本系统的范畴,它可以当做本系统的相连。这样,账务系统不属于本系统的范畴,它可以当做本系统的外部对象。这种情况下,外部对象。这种情况下,“公司公司”内部的处理不包含在该信息系统内部
31、的处理不包含在该信息系统之内。如果企业构建信息系统是以加强同合作伙伴或厂商的联系为之内。如果企业构建信息系统是以加强同合作伙伴或厂商的联系为目的,实现供应链的生产方式,那么最好选择将合作伙伴或厂商包目的,实现供应链的生产方式,那么最好选择将合作伙伴或厂商包含在信息系统范围内。在这种情况下,含在信息系统范围内。在这种情况下,“公司公司”外部的实体在信息外部的实体在信息系统内部。系统内部。面向对象软件工程与UML案例:门诊系统的需求说明案例:门诊系统的需求说明 某某医医院院门门诊诊系系统统的的目目标标是是:提提高高挂挂号号的的速速度度和和准准确确性性,完完整整实实时时地地记记录录患患者者每每次次就
32、就诊诊情情况况,简简化化患患者者交交费费手手续续,构构建一个灵活高效的门诊管理系统。其需求说明描述如下:建一个灵活高效的门诊管理系统。其需求说明描述如下:(一一)挂号挂号1 1门门诊诊挂挂号号可可以以挂挂当当天天的的号号,也也可可以以预预约约5 5天天以以内内的的号号。挂挂号分为两类。号分为两类。(1 1)窗窗口口挂挂号号:指指在在医医院院挂挂号号处处窗窗口口挂挂当当日日的的号号,挂挂号号完完成成,拿到挂号单。拿到挂号单。面向对象软件工程与UML(2 2)网上挂号:指患者通过)网上挂号:指患者通过InternetInternet访问医院的服务器访问医院的服务器挂挂5 5天以内的号,挂号成功后拿
33、到一个密码,在预约的日天以内的号,挂号成功后拿到一个密码,在预约的日期在医院挂号处凭借密码领取挂号单。期在医院挂号处凭借密码领取挂号单。2 2挂挂号号时时如如果果是是第第一一次次就就诊诊,则则挂挂号号处处给给患患者者一一个个门门诊诊病病案案号号,并并记记录录患患者者的的信信息息(姓姓名名,性性别别,血血型型,出出生生日日期期,职职业业,身身份份证证号号,住住址址,邮邮政政编编码码,联联系系电电话话,药药物物过过敏敏史史,家家族族病病史史等等等等),为为患患者者建建立立档档案案。此此患患者者以以后后来来就就诊诊,凭凭病病案案号号就就可可以以直直接接挂挂号号,并并可可以以查查到到患者的相关信息和以
34、往就诊记录。患者的相关信息和以往就诊记录。面向对象软件工程与UML3 3号号分分为为三三种种,普普通通号号、专专家家号号、教教授授号号。每每个个科科室室的的普普通通号号数数量量每每天天是是固固定定的的,如如,外外科科一一天天有有 6060个个号号,那那么么,挂挂号号处处在在一一天天之之内内只只能能挂挂出出 6060个个外外科科普普通通号号。专专家家号号和和教教授授号号是是知知名名的的专专家家或或教教授授的的号号。一一个个专专家家属属于于一一个个科科室室,每每天天的的号号也也是是固固定定的的,专专家家号号每每天天是是2020个个,教教授授号号每每天天是是1010个个。普普通通号号的的挂挂号号费费
35、是是4.54.5元元,专专家家号号是是2020元元,教教授授号号是是5050元。挂号费用根据情况可以改变。元。挂号费用根据情况可以改变。4 4挂挂号号处处可可以以有有多多个个窗窗口口,多多个个挂挂号号员员同同时时进进行行挂挂号号。可可以统计每个挂号员每天挂出的号数和金额。以统计每个挂号员每天挂出的号数和金额。5 5应能随时查询每个科室或专家当前的挂号情况,挂出多应能随时查询每个科室或专家当前的挂号情况,挂出多少号,剩余多少号。少号,剩余多少号。面向对象软件工程与UML(二)就诊(二)就诊1 1患者拿到挂号单后,到相应的科室就诊。患者拿到挂号单后,到相应的科室就诊。2 2医生根据挂号的顺序号,依
36、次给患者看病。医生根据挂号的顺序号,依次给患者看病。3 3医生诊断时可查询患者的基本信息和历次的就诊记录。医生诊断时可查询患者的基本信息和历次的就诊记录。4 4医生诊断结束后,书写患者这一次的就诊记录(包括就医生诊断结束后,书写患者这一次的就诊记录(包括就诊时间、就诊科室、患者主诉、诊断结果、就诊医师姓名等)诊时间、就诊科室、患者主诉、诊断结果、就诊医师姓名等),还要书写处方(包括开出的各种药品和各种检查)。所有,还要书写处方(包括开出的各种药品和各种检查)。所有这些都会放人病案中。这些都会放人病案中。面向对象软件工程与UML(三)交费(三)交费1 1患者拿处方去收款处交费,并拿到发票。患者拿
37、处方去收款处交费,并拿到发票。2 2收收款款处处也也有有多多个个收收款款员员,可可以以随随时时查查询询各各个个收收款款员员开开出出的发票和收款的总金额。的发票和收款的总金额。3 3处方上药品包括药品名称、规格、数量、单价。处方上药品包括药品名称、规格、数量、单价。4 4处方上检查项目包括检查项目名称、执行科室等。处方上检查项目包括检查项目名称、执行科室等。5 5检查项目和药品的单价应便于维护。检查项目和药品的单价应便于维护。6 6最后,患者去药房拿药(具体内容由药房管理系统负责)。最后,患者去药房拿药(具体内容由药房管理系统负责)。面向对象软件工程与UML2.2.用例与用例图用例与用例图 用例
38、实际上定义了与外界有交互过程的系用例实际上定义了与外界有交互过程的系统功能,该功能具有完整连续性,可能是一系统功能,该功能具有完整连续性,可能是一系列动作的集合。它描述的是一个系统要做什么,列动作的集合。它描述的是一个系统要做什么,而不是说明怎么做。而不是说明怎么做。面向对象软件工程与UMLUML用例图的基本元素。在用例模在用例模型中,前型中,前三项是必三项是必须含有的,须含有的,其他元素其他元素为可选的为可选的面向对象软件工程与UML 识识别别用用例例有有基基于于参参与与者者的的方方法法和和基基于于系系统统事事件件的的方法。方法。基基于于参参与与者者的的方方法法的的基基本本步步骤骤是是首首先
39、先识识别别出出与与系系统统或或者者组组织织有有关关的的参参与与者者,然然后后针针对对每每个个参参与与者者,识识别出他们发起或参加的执行过程。别出他们发起或参加的执行过程。基基于于系系统统事事件件的的方方法法,首首先先需需要要识识别别出出系系统统必必须须响响应应的的外外部部事事件件,制制作作出出事事件件表表;然然后后详详细细分分析析每每个个事事件件,从从而而决决定定系系统统响响应应该该事事件件采采取取的的一一般般方方式式。此此外外识识别别出出该该事事件件涉涉及及的的参参与与者者,以以及及该该事事件件会会引引发发的的其其他他用用例例。通通常常一一个个事事件件响响应应会会成成为为一一个个用用例例,但
40、但有有些情况下,一个事件可能激发多个用例。些情况下,一个事件可能激发多个用例。面向对象软件工程与UML案例:门诊系统的用例模型 面向对象软件工程与UML3.对象与类图 n发现对象的策略发现对象的策略 实实体体对对象象代代表表了了信信息息系系统统的的核核心心概概念念。如如何何才才能能发发现现系系统统中的所有对象?步骤:中的所有对象?步骤:(1 1)阅读理解需求文档(或用例说明)。)阅读理解需求文档(或用例说明)。(2 2)反反复复阅阅读读,筛筛选选出出名名词词或或名名词词短短语语,建建立立初初始始对对象象清清单单(候选对象)。(候选对象)。(3 3)将将候候选选对对象象分分成成三三类类,即即显显
41、而而易易见见的的对对象象、明明显显无无意意义义的对象和不确定类别的对象。的对象和不确定类别的对象。(4 4)舍弃明显无意义的名词或短语。)舍弃明显无意义的名词或短语。(5 5)小组讨论不确定类别的对象,直到将它们都合并或调整)小组讨论不确定类别的对象,直到将它们都合并或调整到其他两类。到其他两类。面向对象软件工程与UML利用该策略,给出门诊挂号系统中的对象列表利用该策略,给出门诊挂号系统中的对象列表 面向对象软件工程与UMLn发现属性的策略发现属性的策略可以与用户进行交谈,提出问题来帮助寻找对象的属性。可以与用户进行交谈,提出问题来帮助寻找对象的属性。(1)(1)如何为对象作一般性的描述?如何
42、为对象作一般性的描述?(2)(2)在当前的问题空间中对象还具备哪些特定描述项?在当前的问题空间中对象还具备哪些特定描述项?(3)(3)对象在系统中的责任是什么?在系统中对象还需要了解或对象在系统中的责任是什么?在系统中对象还需要了解或提供哪些信息?提供哪些信息?(4)(4)对象需要长期保存哪些信息?随着时间的推移,对象的特对象需要长期保存哪些信息?随着时间的推移,对象的特性一直在变化,旧的特性会被新特性所替代。性一直在变化,旧的特性会被新特性所替代。(5)(5)对象可能处于什么状态?对象的状态不同,则可能执行的对象可能处于什么状态?对象的状态不同,则可能执行的操作也不同。比如出租物品就有在库、
43、出租、维修三个状态。操作也不同。比如出租物品就有在库、出租、维修三个状态。面向对象软件工程与UML门诊挂号系统中的对象属性门诊挂号系统中的对象属性 面向对象软件工程与UML发现服务发现服务(操作、方法操作、方法)的策略的策略1 1考考虑虑对对象象在在系系统统中中的的可可见见行行为为。如如门门诊诊系系统统中中患患者者自自己己排队挂号,医生给患者写处方。排队挂号,医生给患者写处方。2 2分分析析用用例例应应该该由由哪哪些些对对象象来来提提供供实实现现。这这些些对对象象各各自自完完成成哪哪些些任任务务?对对象象之之间间是是否否存存在在消消息息连连接接?它它们们是是如如何何发发送消息和接受消息并响应的
44、?送消息和接受消息并响应的?3 3分分析析对对象象主主要要的的状状态态。状状态态的的转转换换是是由由什什么么操操作作引引发发的的?在特定状态下对象允许什么样的行为?在特定状态下对象允许什么样的行为?4 4系统会有哪些事件?哪些对象对事件有响应?例如发生系统会有哪些事件?哪些对象对事件有响应?例如发生库存缺货事件,库存需要打印缺货单,订货员开始订货。库存缺货事件,库存需要打印缺货单,订货员开始订货。面向对象软件工程与UML门诊挂号系统中的对象服务门诊挂号系统中的对象服务 面向对象软件工程与UML类图的类图的模型元素模型元素面向对象软件工程与UML门诊系统中的类图面向对象软件工程与UML4.4.交
45、互图与顺序图交互图与顺序图 顺序图描述了在参与交互的对象中所发生的事顺序图描述了在参与交互的对象中所发生的事件,以及这些对象如何通过相互发送消息进行通信。件,以及这些对象如何通过相互发送消息进行通信。顺序图的基本元素有对象、参与者实例、消息和消顺序图的基本元素有对象、参与者实例、消息和消息路线。息路线。在图中类在图中类和和对象的表示法对象的表示法面向对象软件工程与UML门诊系统窗口挂号用例的顺序图门诊系统窗口挂号用例的顺序图 面向对象软件工程与UML门诊系统网上挂号用例的顺序图门诊系统网上挂号用例的顺序图 面向对象软件工程与UML门诊系统发号用例的顺序图门诊系统发号用例的顺序图 面向对象软件工
46、程与UML门诊系统退号用例的顺序图门诊系统退号用例的顺序图 面向对象软件工程与UML门诊系统诊疗用例的顺序图门诊系统诊疗用例的顺序图 面向对象软件工程与UML门诊系统收费用例的顺序图门诊系统收费用例的顺序图 考察某所大学的课程登记考察某所大学的课程登记(Course Registration)系统,系统,任课教授的分配和学生的登记都很烦琐且费时间任课教授的分配和学生的登记都很烦琐且费时间每学期开始之前,教授须决定该学期教些什么课程;课每学期开始之前,教授须决定该学期教些什么课程;课程登记办公室负责把该信息输入计算机系统;为每个教程登记办公室负责把该信息输入计算机系统;为每个教授打印一份他要讲授
47、课程的报告;为每个学生打印一份授打印一份他要讲授课程的报告;为每个学生打印一份课程目录供学生选修课程目录供学生选修学生填写各式各样的课程登记表并交给课程登记办公室;学生填写各式各样的课程登记表并交给课程登记办公室;后者把学生的登记表输入计算机后者把学生的登记表输入计算机学生一般选修四门课;大多数情况下学生会如愿选修课学生一般选修四门课;大多数情况下学生会如愿选修课程,但有时会有冲突;此时,课程登记办公室要征求每程,但有时会有冲突;此时,课程登记办公室要征求每个学生的附加选择个学生的附加选择一旦课程登记期结束,教授会收到他们将要教的课程的一旦课程登记期结束,教授会收到他们将要教的课程的学生花名册
48、学生花名册系统的背景需求陈述在每学期开始之前,学生会获得一份有关本学在每学期开始之前,学生会获得一份有关本学期可选修课程的目录表,每门课程包括授课教期可选修课程的目录表,每门课程包括授课教授、系、教室位置和前提条件等授、系、教室位置和前提条件等新系统允许每个学生选择四门课程;另外,每新系统允许每个学生选择四门课程;另外,每个学生还要选两门附加课程,供某门课程选满个学生还要选两门附加课程,供某门课程选满或取消时用;每门课程选修人数在三到十人之或取消时用;每门课程选修人数在三到十人之间;登记完毕,登记系统将把该学生相关信息间;登记完毕,登记系统将把该学生相关信息发送给财务系统,以便学生交费发送给财
49、务系统,以便学生交费教授应能访问该联机系统,指定他本学期讲授教授应能访问该联机系统,指定他本学期讲授的课程,查看哪些学生选修了他的课程的课程,查看哪些学生选修了他的课程每学期有一个时间段,在该时间内,学生可以每学期有一个时间段,在该时间内,学生可以选修课程或修改他们的修课计划选修课程或修改他们的修课计划课程登记系统的课程登记系统的Use Case图图该该Use Case由学生由学生启动,它提供如下启动,它提供如下功能:创建、删除功能:创建、删除、修改或浏览某、修改或浏览某学期学生修课计划学期学生修课计划在该校注册在该校注册登记并听课登记并听课的人的人构造类和对象模型对象是一个概念,抽象或是具有
50、定义良对象是一个概念,抽象或是具有定义良好的边界及对应用系统有意义的事物好的边界及对应用系统有意义的事物类是一组具有共同属性、共同操作、共类是一组具有共同属性、共同操作、共同关系的对象的描述或模板同关系的对象的描述或模板类的模板类的模板(Stereotype)有:实体有:实体(Entity)、边界边界(Boundary)、控制控制(Control)、公用体公用体(Utility)、例外例外(Exception)课程登记系统类图类的类的Sterotype类的属性类的属性类的操作类的操作类所在的包类所在的包类的聚合关系类的聚合关系分析类之间的关系在系统分析阶段主要考虑类的联系在系统分析阶段主要考虑