ch03-面向对象设计课件_第1页
ch03-面向对象设计课件_第2页
ch03-面向对象设计课件_第3页
ch03-面向对象设计课件_第4页
ch03-面向对象设计课件_第5页
已阅读5页,还剩107页未读 继续免费阅读

下载本文档

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

文档简介

16四月2024ch03面向对象设计3.1对象类建模类是包装信息和行为的基本单元,是面向对象的重要特征之一。一个类实现一个或多个接口UML中类有三种主要的版型:实体类(entity)、边界类(boundary)和控制类(control)。实体类实体类创建持久对象,持久对象可以存放进持久存储体。持久存储体就是存放在硬盘上的以面向对象数据库、关系数据库和文件等形式可以永久存储对象数据的介质。实体类可以通过事件流和交互图发现。对于关系数据库而言,每个实体类映射数据库中相应的一个二维表,实体类中的属性对应该表中的字段,而每个对象就是该表中的一条记录。控制类控制类是控制其他类工作的类。每个用例通常有一个控制类,用来控制用例中事件发生的顺序,控制类也可以在多个用例间共用。其他类一般不向控制类发送消息,而是由控制类向其他类发出消息。3.1.1确定对象类1、确定对象类正确识别对象类是面向对象方法的基础。确定和标识类包括发现潜在对象、标识对象名、筛选对象、为对象分类。(1)发现潜在对象一组具有相同属性和操作的对象可以定义成一个类,因此标识类和标识对象是一致的。可以从问题陈述或用例描述着手发现潜在的对象,通常陈述中的名词或名词短语是可能的对象。(1)发现潜在对象例如:与系统交互的角色。如管理者、工程师、销售员。系统的工作环境场所。如车间、办公室。概念实体、发生的事件或事情。如报告、显示、信函、信号。设备。如汽车、计算机。与系统有关的外部实体。如其他系统、设备、人员等,他们生产或消费计算机所使用的信息。(2)标识对象名的原则使用单个名词或名词词组对象名称必须简洁明了、含义明确、易于理解尽量使用用户熟悉的行业标准术语(3)筛选对象可以根据关键性、可操作性、信息含量、公共属性、公共操作和关键外部信息等来选择和确定最终的对象。(4)对象分类对象还可以根据有形性、包含性、顺序性、完整性等特征来进行分类。2.标识对象类的属性对象类的属性和操作是对象类所知道的或要做的任何事情。标识属性过程包括寻找潜在属性、筛选属性原则和应注意的问题、标识属性名、属性说明。(1)可以从以下角度来发现和确定对象潜在的属性常识性:按一般常识,对象应具有的属性。专业性:在当前问题域中,该对象应具有的属性。功能型:根据系统功能的要求,该对象应具有的属性。管理性:建立该对象是为了保存和管理哪些属性。操作性:为了实现对象的操作功能,需要增设哪些属性。标志性:是否需要增设属性来区别对象的不同状态。外联性:用什么属性来表示对象的整体-部分联系和实例链接。(2)在确定了对象的属性后,应对各属性命名以示区别,命名原则与对象名原则相同。并应对每个属性加以详细说明,包括以下信息:属性的解释属性的数据类型属性的取值范围及与对象类所体现的关系属性的实现要求和其他3、标识对象类的操作操作定义了对象的行为并以某种的方式修改对象的属性值或系统的状态。操作可以通过对系统的过程叙述的分析提取出来,通常叙述中的动词可作为候选的操作。(1)命名操作的标识名与类和属性的命名不同,操作名的命名应该采用动词或动词名词组成的动宾结构,操作名尽可能准确的反映该操作的智能。(2)对每个操作应加以详细说明,包括以下信息:操作解释:作用与功能。消息协议:入口消息格式。消息发送:执行期间,需要请求哪些其他对象的操作。约束条件:执行的前置、后置条件及执行事件等说明事项。操作流程:对复杂的操作应画出操作过程流程图。3.2案例分析本案例重点对“进销存管理子系统”的“销售管理”进行详细描述。3.2.1销售管理的业务需求描述(1)制定销售计划销售人员根据企业生产能力和对当前市场行情预测制定月、季度和全年产品销售计划,上报主管经理批准,并送财务管理、库存管理和生产调度管理部门备案。(2)签订销售合同销售人员与客户签订销售合同。销售合同内容主要包括:合同编号、甲方、乙方、产品名称、规格、单位、单价、数量、总金额、发货时间、发货量、客户付款时间等。合同生效后,客户向财务管理部门交付货款并从仓库提取产品。大客户可由企业安排发货送货。(3)检查合同履约率销售合同执行期间,销售人员要定期检查合同履约情况。督促“生产调度管理部门”按合同组织生产,按时从仓库提取产品发送给客户。销售人员及时向客户催缴合同中约定的应付货款,打印催款单,检查合同履约情况,合同执行完毕,设置合同履约标识。(4)生产调度管理部门组织生产生产调度管理部门按销售合同规定的产品名称、规格、数量、交货时间组织生产。(5)库存管理部门对产品进行入库、出库管理库存管理部门按销售合同规定的产品名称、规格、数量、交货时间准备货物,对生产部门生产的产品进行入库验收、存储,根据销售部门的出库申请单对产品进行出库、发货等操作。(6)财务管理部门收取客户货款按销售合同及产品已发送的数量收取客户的货款,打印付款单,对没按时交货款的客户,通知销售部门进行催款。(7)审批销售合同公司经理审批销售合同,检查合同履约率。3.2.2抽象出系统对象类1、找出实体类对进销存管理系统的销售管理子系统的业务需求描述文本进行名词/动词的词法分析,得出实体类名词。销售人员客户经理销售部门财务管理部门合同履约率生产调度管理部门大客户货款产品销售计划履约合同销售合同付款单催款单库存管理部门通过筛选,排除一些可能属于某个类的属性(合同履约率)以及一些不具备独立意义的名词(如货款),可以将财务管理部门、生产调度部门几个名词抽象为财务管理子系统和生产调度子系统,排除这些属于销售管理子系统和库存管理子系统范围之外的子系统,再排除系统自身的名词,如销售管理部门等,最后筛选出符合销售管理子系统的对象类。序号类名含义功能描述1Client客户类与销售人员签订销售合同,从仓库提取货物2BigClient大客户类与销售人员签订大宗合同,企业负责发货3SalesPerson销售人员类与客户签订销售合同,催款、提货、督促合同履约等4Manager公司经理类检查合同履约率、库存货物资产核对表等5Product产品类由生产部门生产、仓库部门保管、销售部门负责销售6SalesProject销售计划类有销售人员制定,保证企业产品及时得到销售7SalesContract销售和同类销售人员与客户签订的一种销售协议8FulfilContract履约合同类存放到履约合同库,用于作为证据以便索引查询9PaymentBill付款单类提供给客户的一种付款凭证10UrgeFunBill催款单类提醒客户及时支付所欠款项,保证企业资金周转2、找出边界类边界类主要是指系统与用户交互界面有关的类。销售管理子系统中设计与用户交互的界面类有8个:1)销售计划管理窗口类:负责销售计划的制定、录入、统计、打印查询等管理。2)客户管理窗口类:负责客户信息的录入、修改、查询等管理。3)销售合同管理窗口类:负责销售合同数据的录入、修改、查询、统计、打印等管理。4)产品管理窗口类:负责产品信息的录入、修改、查询等管理。5)履约合同管理窗口类:负责以履约销售合同数据的查询、统计等管理。6)付款单管理窗口类:负责以付款单数据的查询、统计、打印等管理。7)催款单管理窗口类:负责以催款单数据的查询、统计、打印等管理。3、找出系统控制类销售管理子系统至少应该有一个控制其他类工作的控制类。销售管理子系统中的销售管理子系统主管理窗口类就是一个控制类。3.2.3销售管理子系统中类的属性和操作3.2.4类的模型符号描述客户类详细的定义和描述3.2.5系统建模过程建立系统的对象类图就是建立系统的静态结构模型,它包括确定和建立对象类图、建立对象类及其之间的联系,确定其静态结构和动态行为。3.2.6类的继承建模在上一小节的销售管理子系统中创建了几个类:销售人员类、公司经理类、客户类和大客户类,这几个类都有一些相同的属性和操作。例如,每个类都有姓名、性别、电话、邮箱等属性,可以把这些具有共同属性的内容抽象出来,再定义一个人类,称其为基类。在实际变成过程中,销售人员类、公司经理类、客户类和大客户类可以通过继承的方式继承人类的姓名、性别、电话、邮箱等属性。这样就可以省却大量重复编码的麻烦,达到一定的代码复用效果。另外,销售合同类和履约合同类之间也有很多相同的属性和操作。例如,甲方、乙方、商品名称、规格型号、单位、单价、数量、总金额、发货时间等;和增加合同()、修改合同()等操作。可以把这些两个类共有的内容抽象出来,形成一个新类:合同类。3.3对象动态建模(系统行为建模)3.3.1顺序图建模3.3.2协作图建模3.3.3状态图建模3.3.4活动图建模3.3.1顺序图建模顺序图用来描述对象间的交互行为。它注重消息的时间顺序,即对象间消息的发送和接收的顺序。顺序图还揭示了一个特定场景的交互,即系统执行期间发生在某个时间点的对象之间的特定交互,它适合于描述实时系统中的时间特性和时间约束。顺序图的主要用途之一是为用例建造逻辑建模。即前面设计和建模的任何用例都可以使用顺序图进一步阐明和实现。实际上,顺序图的主要用途之一是用来为某个用例的泛化功能提供其所缺乏的解释,即把用例表达的需求,转化为进一步、更加正式层次的精细表达。用例常常被细化为一个或者更多的顺序图。1、顺序图的组成成分(con.)(1)对象:顺序图中所包含的每个对象用一对象框(短式)表示,对象名需带下划线。(2)生存线:对象框下画的一条垂直虚线,称为该对象的生存线,表示对象的生存时间。(3)激活期:对象生存线上的一个细长方形 框,表示该对象的激活时间段,即活动期间。(4)消息:对象之间消息的发送和接收用两个对象生存线(激活期)之间的消息箭头线。生命线对象在垂直方向向下拖出的长虚线称为生命线,生命线是一个时间线,从顺序图的顶部一直延续到底部,所用的时间取决于交互的持续长度。生命线表现了对象存在的时段。38激活当一条消息被传递给对象的时候,它会触发该对象的某个行为,这时就说该对象被激活了。在生命线上,激活用一个细长的矩形框表示。矩形本身被称为对象的控制期,控制期说明对象正在执行某个动作。39对象类定义了对象可以执行的各种行为,但是在面向对象的系统中,行为的执行者是对象,而不是类,因此顺序图通常描述的是对象层次而不是类层次。4041消息为了显示一个对象传递一些信息或命令给另外一个对象,使用一条线从对象指向接收信息或命令的对象,这条线可以有自己的名称,用来描述两个对象之间具体的交互内容。消息简介消息是用来说明顺序图中对象之间的通信,可以激发操作、创建或撤销对象。为了提高可读性,顺序图的第一个消息总是从顶端开始,并且一般位于图的左边。然后将继发的消息加入图中,稍微比前面的消息低些。4243同步消息

同步消息假设有一个返回消息,在发送消息的对象进行另一个活动之前需要等待返回的回应消息。消息被平行地置于对象的生命线之间,水平的放置方式说明消息的传递是瞬时的,即消息在发出之后会马上被收到。44异步消息异步消息表示发送消息的对象不用等待回应的返回消息,即可开始另一个活动。异步消息在某种程度上规定了发送方和接收方的责任,即发送方只负责将消息发送到接收方,至于接收方如何响应,发送方则不需要知道。对接收方来说,在接收到消息后,它既可以对消息进行处理,也可以什么都不做。从这个方面看,异步消息类似于收发电子邮件,发送电子邮件的人员只需要将邮件发送到接收人的信箱,至于接收电子邮件方面如何处理,发送人则不需要知道。45消息中的参数和序号顺序图中的消息除了具有消息名称之外还可以包含许多附加的信息。例如,在消息中包含参数、返回值和序列表达式。462、建模时间消息箭头通常是水平的,说明传递消息的时间很短,在此期间没有与其他对象的交互。对多数计算而言,这是正确的假设。但有时从一个对象到另一个对象的消息可能存在一定的时间延迟,即消息传递不是瞬间完成的。如果消息的传送需要一定时间,在此期间可以出现其他事件(来自对方的消息到达),则消息箭头可以画为向下倾斜的。这种情况发生在两个应用程序通过网络相互通信时。3、执行规范每一种技术都有它自己的执行规范,顺序图也一样。顺序图的执行规范主要表现在消息和激活期。激活期描述了对象处于激活状态,正在执行某个事件,激活期的长度粗略的描述了事件执行的持续时间。47483、创建顺序图模型创建顺序图模型需要查阅系统用例图,根据用例图创建顺序图模型。在确定了系统用例和关系之后,就可以根据用例间的关系确定用例的工作流及其顺序。创建顺序图分为以下几个步骤:确定需要建模的用例。确定用例的工作流。确定各工作流所涉及的对象,并按从左到右顺序进行布置。添加消息和条件以便创建每一个工作流。3.3.2协作图建模通信图(CollaborationDiagram/CommunicationDiagram,也叫协作图)显示了某组对象为了一个系统事件而与另一组对象进行协作的交互图。有以下特点:通信图描述的是和对象结构相关的信息。通信图的用途是表示一个类操作的实现。通信图对交互中有意义的对象和对象之间的链建模。在UML中,通信图用几何排列来表示交互作用中的对象和链顺序图和通信图在语义上是等价的,所以顺序图和通信图可以彼此转换而不会损失信息:通信图的角色和顺序图的对象是一一对应的,而通信图上的各对象上的协作关系和顺序图上的消息传递是一一对应的。动态交互模型建模案例顺序图建模步骤1.确定交互和涉及的对象(1)启动系统(2)循环处理付款单(3)核对销售合同(4)核对合同的销售货物清单(5)核对库房货物清单(6)核查预警量(7)打印库存预警清单(8)打印出库单顺序图建模步骤(con.)2.顺序图中对象排列的原则(1)对象横向排列在顺序图的顶部;(2)最重要的对象在最左边(如对全局进行 初始的对象);(3)交互密切的对象尽可能相邻;(4)交互中创建的对象,应放置在其创建的 时间点上;(5)每个对象有一个下垂的生命线。*UML系统建模与分析设计54顺序图建模步骤(con.)3.消息传递(1)消息传递的方向:按时间顺序从上到下在对象的生命线之间传递;(2)在消息箭头线上标出消息标签的内容、约束或构造型;(3)发送和接收消息的对象生命线必须处在激活期;(4)交互中对象的创建和销毁必须绘出构造型和标记;(5)区别同步消息和异步消息的图标表示符;(6)标出消息的循环结构及出口条件;(7)顺序图从初始化消息开始,以其返回消息终止。顺序图建模步骤(con.)图“付款单处理”用例的顺序图(1)合作图建模步骤(con.)图“履约合同检查”用例的顺序图合作图建模步骤1.确定交互及涉及的对象2.合作图中对象排列的原则(1)最重要的对象应在图的中央;(2)与其有直接交互的对象放置在邻近;(3)对象初始化;(4)选择初始对象。合作图建模步骤(con.)合作图建模步骤(con.)3.链接与消息传递(1)标明对象之间的链接;(2)在链接上标明消息的序号;(3)在消息箭头线上标出消息标签的内容、约束或构造型;(4)区别同步消息和异步消息的图标表示符;(5)合作图从初始对象开始,到其终止对象结束。●了解对象状态变化和活动变化的描述方式●掌握UML绘制状态图和活动图的方法和步骤●掌握状态模型中并发行为的描述方法●掌握用状态图和活动图建立对象动态行为模型的方法和步骤

3.3.3

系统动态建模——状态模型1.状态图的基本组成成分2.状态的分类与描述一个设备使用状况的状态图简单状态与嵌套状态动作:一组可执行的语句,动作具有以下特征:●迁移性:与状态迁移有关;●原子性:这组语句不可中断;●连续性:一组语句必须连续执行,直到完毕。活动:一组可执行的动作,具有以下特征:●有限性:完整的活动有一定的期限;●非原子性:这组动作可因某一事件发生而中断。简单状态与嵌套状态描述设备(车床)状况的嵌套状态图

状态的并发迁移与同步UML系统建模与分析设计6-7采用同步并发迁移图符描述的并发子状态图

3.状态迁移的触发与描述

描述状态迁移的形式化语法格式如下:

事件[条件]/动作表达式发送子句说明:●事件:指已发生并可能引发某种活动的一件事;●[条件]:由方括号围起的关系或逻辑表达式;●动作表达式:一个触发状态迁移时可执行的过程表达式;●发送子句:动作的一个特例,说明调用的事件名(操作)是哪个对象的。引起状态迁移触发的事件事件是指已发生并可能引发某种活动的一件事。事件的描述格式:

事件名(参数表)说明:●事件名:必须引用接收事件的对象类中的一个操作或信号。●参数表:传送给该事件的形式参数,为任选项。引起状态迁移触发的事件

电烤箱控制系统状态图

引起状态迁移触发的条件条件是一个由方括号围起的关系或逻辑表达式。动作表达式是一个触发状态迁移时可执行的过程表达式。状态迁移的分类(1)自迁移(2)内部迁移(3)自动迁移(4)复合迁移两种形式的条件分支状态迁移图

状态图之间的通信联系状态图之间的消息发送活动图与状态图的区别3.3.4活动图的基本概念与组成成分活动状态迁移不需要事件触发,活动执行完毕可以直接进入下一个活动状态;活动置于责任区(泳道)中,责任区将活动按责任目标和组织归属的原则分类。一个简单的出库单发放活动图检查合同、核对付款单并发放出库单的活动图

活动图中的几个基本概念1.动作状态表达不可中断的动作或操作的执行。2.活动状态拥有一组不可中断的动作或操作,表达一个非原子的运行。3.动作流

表达不可中断的动作或操作的执行。描述一个打印所有履约合同信息的活动图4.泳道泳道代表对象对活动的责任。

销售合同从签订到履约的活动图

5.活动图中的对象

活动图中的对象及对象流活动图中的并发与同步活动

活动图中的条件线程

“核对付款单”子活动图3.4系统体系结构建模

3.4.1系统体系结构模型指出系统应该具有的功能;为完成这些功能,涉及到哪些类,这些类之间如何相互联系;类和它们的对象如何协作才能实现这些功能;指明系统中各功能实现的先后时间顺序;根据软件系统体系结构模型,制定出相应的开发进度计划。软件系统体系结构模型是系统的逻辑体系结构模型。软件系统体系结构模型的作用是:通用三层软件(逻辑)系统体系结构3.4.2软件系统体系结构模型的描述方法(1)通用接口界面层::由系统接口界面类包、用户窗口包和备用构件库包组成。(2)系统业务对象层:由系统服务接口界面包、业务对象管理包、外部业务对象(遗留系统的包装)包和实际业务对象包组成。(3)系统数据库(持久对象和数据)层:由持久对象及数据包和SQL查询语言包组成。3.4.3硬件系统体系结构模型硬件系统体系结构模型涉及到系统的详细描述(根据系统所包含的硬件和软件):构件图和配置图。

硬件系统体系结构模型的作用:指出系统中的类和对象涉及的具体程序或进程;这些程序和进程的执行依赖具体计算机;标明系统中配置的计算机和其他硬件设备;并指明系统中各种计算机和硬件设备如何进行相互连接;明确不同的代码文件之间相互的依赖关系;如果修改某个代码文件,标明哪些相关(与之有依赖关系)的代码文件需要重新进行编译。3.4.4软件系统体系结构模型1.软件构件的图符表示:构件的图符表示2.构件与类的比较

构件与包含的类有依赖关系(1)构件与类的相同点二者都有名称;都可以实现一组接口;都可以参与依赖、继承、关联等关系和交互;都可以被嵌套;都可以有实例。(2)构件与类的显著不同点抽象的方式不同;抽象的级别不同;访问方式不同;与包的关系。3.软件构件的特点(1)接口。(2)操作。(3)实例化。(4)与配置环境的亲合性。(5)能与同环境下其它构件进行交互。(6)构件可以是可执行代码、二进制代码和源代码形式。(7)可替换的物理实体。(8)系统的组成部分。(9)构件是软件复用的基本单元。4.构件的组织形式(1)用包来组织构件。(2)用构件之间的交互关系来组织构件。构件的分类(1)源代码构件(2)二进制构件(3)可执行构件构件的接口接口描述一个构件能提供服务的操作,是一个有操作而无实现的类。UML系统建模与分析设计构件模型图建模步骤1.用构件图建立系统模型源代码成为可执行代码过程的构件图UML系统建模与分析设计对于复杂的大系统,采用包的形式组织构件,形成清晰的结构层次图。医院诊疗管理系统软件的一个系统构成构件模型图3.4.4构件图建模的方法和技巧

1.构件描

温馨提示

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

评论

0/150

提交评论