第12章-面向对象的分析与设计课件_第1页
第12章-面向对象的分析与设计课件_第2页
第12章-面向对象的分析与设计课件_第3页
第12章-面向对象的分析与设计课件_第4页
第12章-面向对象的分析与设计课件_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

1第12章面向对象的分析与设计

1第12章面向对象的分析与设计2面向对象开发方法

面向对象方法是一种基于对象(数据、属性、操作构成统一体)的方法。 面向对象方法在概念和表示方法上的一致性,保证了软件工程各项开发活动之间的平滑(“无缝”)过渡。 面向对象开发过程的核心是面向对象分析(OOA)和面向对象设计(OOD)两个阶段,但二者的界限比较模糊。OOA是分析使用实例,提取用户需求,建立问题域逻辑模型的过程;OOD是建立面向对象的求解域模型的过程。从OOA到OOD实际是一个多次反复、逐步迭代模型的过程。2面向对象开发方法面向对象方法是一种基于对象(数据312.1面向对象建模34面向对象模型

面向对象方法开发软件的关键是对问题域的理解。采用面向对象观点建立问题域模型,开发出尽可能完善的表现求解域模型的软件,是面向对象建模的目标。 面向对象建模技术所建立的三种模型——对象模型、动态模型和功能模型,分别从三个不同侧面描述了所要开发的系统。对象模型定义了“做什么”的实体,功能模型指明了系统应该“做什么”,动态模型明确规定在何种状态下,接受什么事件的触发而“做什么”。4面向对象模型面向对象方法开发软件的关键是对问题域5对象模型

◆对象模型是一个类(属性和行为)、对象(类的实例)、类和(或)对象之间关系的定义集。 ◆对象模型表示静态的、结构化系统的“数据”性质,为建立动态模型和功能模型提供了实质性的框架。 ◆对象模型把面向对象的概念与常用的信息建模概念结合起来,增强了模型的可理解性和表达能力。

◆对象模型还表示了类/对象之间的结构关系。类/对象之间的关系一般可概括为关联、归纳(泛化)、组合(聚集)三类。5对象模型 ◆对象模型是一个类(属性和行为)、对象(类的实6动态模型

◆动态模型表示瞬间的、行为化的系统“控制”性质,它规定了对象模型中对象的合法变化序列。

◆对象有自己的运行周期,由多个阶段组成,每个特定阶段都有规范该对象的行为的一组运行规则。 ◆对象的状态是对象属性的一种抽象,事件是某个特定时刻发生的一个系统行为,是引起对象状态转换的控制信息。对象对事件的响应,取决于当时的状态,响应包括改变自己的状态,或者是形成一个新的触发行为(事件)。

◆动态模型描绘对象的状态,触发状态转换的事件,以及对象行为(对事件的响应),即基于事件共享而互相关联的一组状态集合构成了系统的动态模型。6动态模型 ◆动态模型表示瞬间的、行为化的系统“控制”性7功能模型

◆功能模型表示变化的系统的“功能”性质,指明了系统应该“做什么”。它更直接地反映了用户对目标系统的需求,有助于软件开发人员更深入地理解问题域,改进和完善自己的分析和设计。 ◆功能模型由一组数据流图组成。顶层数据流图中的处理,对应于复杂对象提供的服务;低层数据流图中的处理,对应于基本对象(复杂对象的组成部分)的服务。一个处理可能对应多个服务,或者是一个服务可能对应多个处理。 ◆功能模型的数据流图远不如在结构化方法中那样重要,但不能忽视功能模型的作用。7功能模型 ◆功能模型表示变化的系统的“功能”性质,指明8三种模型的关系◆对象模型、动态模型和功能模型相辅相承,使得对系统的需求分析和设计描述更加直观、全面。 ◆对象模型是最基本、最重要的模型。 ◆为每个类建立的动态模型,描述了类和实例的运行周期。 ◆功能模型中的处理,可能产生动态模型中的事件。

◆动态模型中的状态转换驱使行为发生。这些行为在数据流图中被映射成处理,同时与对象模型中的服务相对应。8三种模型的关系◆对象模型、动态模型和功能模型相辅9三种模型的关系

◆功能模型中的处理,对应于对象模型中类/对象所提供的服务。 ◆功能模型中的数据存储、数据的源点/终点(在功能模型中称为动作对象)是对象模型中的对象;功能模型中的数据流是对象模型中的属性值,或者是整个对象。

◆对象模型描述了功能模型中的动作对象、数据存储,以及数据流的结构。9三种模型的关系◆功能模型中的处理,对应于对象模型中10统一建模语言(UML)

◆面向对象开发范型阶段之间的过渡是“无缝”的,定义对象抽象类和建立面向对象系统的各类模型,需要一组便于描述的图形符号,并规定用这些符号表示特定模型的语义规则。 ◆统一建模语言(UML)是专门设计的一种统一描述面向对象方法的符号系统。

◆UML是一种基于面向对象的可视化建模语言,实现了基于面向对象的建模工具的统一,已成为国际、国内可视化建模语言实际上的工业标准。

10统一建模语言(UML) ◆面向对象开发范型阶段之间的过11UML的组成

UML用图形符号隐含表示了模型元素的语法,用这些图形符号组成元模型表达语义,组成模型描述系统结构(或称为静态特征)以及行为(或称为动态特征)。

UML定义了两类模型元素。一类模型元素用于表示模型中的某个概念,如类、对象、用例、结点、构件、包、接口等;另一类模型元素用于表示模型元素之间相互连接的关系,主要有关联、泛化(表示一般与特殊的关系)、依赖、聚集(表示整体与部分的关系)等。11UML的组成UML用图形符号隐含表示了模型元素的12UML部分模型元素的图形表示

聚集依赖泛化关联状态对象属性操作类属性操作角色用例结点

构件包接口注解12UML部分模型元素的图形表示聚集依赖泛化关联状态对象类13UML模型结构

根据UML语义,UML模型结构可分为元元模型、元模型、模型和用户模型四个抽象层次结构。它们的层次关系是下一层是上一层的基础,上一层是下一层的实例。

◆元元模型层定义描述元模型的语言,它是任何模型的基础。UML元元模型定义了元类、元属性、元操作等概念。

◆元模型层定义描述模型的语言,它是组成UML模型的基本元素,包括面向对象和构件的概念。元模型是元元模型的一个实例。

◆模型层定义描述信息领域的语言,它组成了UML模型。

◆用户模型层表达一个模型的特定情况,是模型的实例。13UML模型结构根据UML语义,UML模型结构14UML模型结构和示例

图12.2UML模型结构用户模型模型元模型元元模型图12.3元元模型示例事物图12.4元模型示例n

相关1..n链接对象n

相关1..n关联类n实例1n实例1..n14UML模型结构和示例图12.2UML模型用户模型元元15UML模型

◆UML可以从不同视角为系统建模,形成不同的视图。每个视图是系统完整描述中的一个抽象,代表该系统一个特定的方面;每个视图又由一组图构成,图包含了强调系统某一方面的信息。

◆UML提供了两类图:静态图和动态图(共计九种)。 静态图包括用例图、类图、对象图、构件图和部署图。

动态图包括状态图、时序图、协作图和活动图。

◆UML提供了五种视图,包括用例视图、结构模型(逻辑)视图、行为模型(并发)视图、实现模型(构件)视图和部署视图。

15UML模型 ◆UML可以从不同视角为系统建模,16UML的特点和应用

UML是面向对象的用例模型、类/对象模型、动态模型等不同系统模型的图形符号描述。它所提供的表示模型元素的图形和方法,能简洁明确地表达面向对象技术的主要概念和建立各类系统模型。它的标准化定义、可视化描述、可扩展性机制等,显示了UML强大的生命力。

UML作为面向对象技术最重要的一种建模语言工具,特别能从不同的视角为系统建模。UML适用于各种复杂类型的系统,乃至系统各个层次的建模,而且适用于系统开发过程的不同阶段。16UML的特点和应用UML是面向对象的用例模型、1712.2面向对象分析模型

1718面向对象分析模型

面向对象分析(OOA,Object-OrientedAnalysis)是采用面向对象思路进行需求分析建模的过程。 面向对象的分析模型主要有用例模型、类/对象模型、对象-关系模型和对象-行为模型等。 类/对象模型描述系统所涉及的全部类/对象,每个类/对象都通过属性、操作、协作者进一步描述;对象-关系模型描述对象之间的静态关系,同时定义了系统所有重要的消息路径,它也可以涉及到对象的属性、操作、协作者;对象-行为模型描述了系统动态行为。18面向对象分析模型面向对象分析(OOA,Obje19OOA模型的结构OOA模型的核心是使用实例(简称用例)。需求分析通过创建一组场景,每个场景包含一个用例,从场景分析入手,进一步抽取和定义OOA模型。因此,OOA也可以说是一种半形式化的规格说明技术。使用实例

类/

对象模型

属性,操作,协作者

对象-行为模型图12.5

面向对象分析模型的结构

对象-

关系模型19OOA模型的结构OOA模型的核心是使用实例(简称20用例模型

用例模型是一种基于场景分析的,OOA的一个最基本、最重要的需求导出技术。 一个用例是系统某个动作步骤的集合,主要由角色和动作组成。角色是存在于系统之外的任何事物;动作是系统的一次执行,由角色触动。 建立用例模型主要是识别角色和用例,给出系统用例视图(可以分层次的)描述和每个用例的实例脚本(文字)描述。20用例模型用例模型是一种基于场景分析的,OOA的21用例视图及示例UML中,用例视图由角色、用例、关联和系统边界组成。图12.6保险业务系统的用例视图例保险销售员客户签定保险单销售统计资料客户数据资料21用例视图及示例UML中,用例视图由角色、用例、22对象-关系模型

UML中,对象-关系模型分别用类图和对象图描述。

◆类图包括类、类之间的关联、类关联重数和继承等基本元素。

◆对象图是系统运行某个时刻对象之间的关联关系。对象图是类图的一个实例,类似于对象是类的一个实例。

◆对象图和类图的区别是类图中的关联表示两个类是有联系的,而在某个时刻它们可能没有联系,表现在对象图中它们之间就没有关系,也就是说,只要在某个时刻对象之间有过联系,那么在类图中就认为它们存在连接关系。22对象-关系模型UML中,对象-关系模型分别用类23类图和对象图示例保险公司保险合同客户图12.7保险业务系统的类图1有0..n保险单表达0..1

表示为10..n

有1..n涉及涉及软件工程:标题图12.8图书馆系统的借书对象图借包含621375:书目李华:学生23类图和对象图示例保险公司保险合同客户图12.7保险业24对象-行为(动态)模型

对象行为模型(动态模型),说明对象的操作是如何进行的。UML中,对象-行为模型采用时序图、协作图和状态(转换)图描述。

◆时序图和协作图都是描述对象的动态行为,两者从不同的侧面,反映了系统中对象是如何交互完成功能的;不同之处是时序图注重对象交互的时间关系,协作图注重对象的空间协作关系。

状态图描述系统中对象的状态变化,常用于单个对象对不同事件的响应行为状态建模。24对象-行为(动态)模型对象行为模型(动态模型)25时序图

时序图描述对象间的事件序列的交换和相互关系,常用于对一群对象的组合行为建模。

UML的时序图主要包括对象、事件(对象发送的消息)、激活区(对象被事件激活和处理事件的过程)和生命线(对象实例化后的生存期)等。25时序图时序图描述对象间的事件序列的交换和相互关系26时序图示例:计算机:打印服务器:打印机:用户:打印队列图12.9网络打印功能的时序图打印打印打印[打印机空闲]存储[打印机忙]打印[打印机空闲]26时序图示例:计算机:打印服务器:打印机:用户:打印队列图27协作图及示例

协作图描述对象间的协作关系。协作图主要包括对象、事件、关联和消息去向四个部分。图12.10网络打印功能的协作图:打印机:打印服务器:计算机打印:打印队列打印[打印机空闲]打印文件[打印机忙]存储27协作图及示例协作图描述对象间的协作关系。协作图主28功能模型

OOA的功能模型采用类似于数据流图的形式。它表示产品在不考虑动作次序的情况下,各种不同动作操作(功能)的相关性。 结构化方法的数据流图和面向对象的功能模型之间的差别主要和数据存储有关。结构化方法的数据存储是当做文件保存的,而面向对象一个类的状态变量也是数据存储,所以功能模型的数据存储包含类的存储和不属于类的数据存储两种。28功能模型OOA的功能模型采用类似于数据流图的形29面向对象分析过程

◆面向对象分析在定义了使用方式后,即开始软件的建模过程。

◆面向对象分析过程并不是从考虑对象开始,而是从理解系统的使用方式开始。

◆如果系统是人机交互的,则考虑被人使用的方式;如果系统是涉及过程控制的,则考虑被机器使用的方式;如果系统是协调和控制应用的,则考虑被其他程序使用的方式。29面向对象分析过程 ◆面向对象分析在定义了使用方式后,即30面向对象分析步骤1.标识角色和创建用例模型2.类-责任-协作者(CRC)建模3.定义结构和层次4.定义主题和子系统5.建立各种系统模型(对象-关系模型、对象-行为模型和功能模型)30面向对象分析步骤1.标识角色和创建用例模型3112.3面向对象设计(OOD)

3132面向对象设计(OOD)

面向对象设计(OOD,Object-OrientedDesign)是根据面向对象分析(OOA)中确定的类和对象设计软件系统。从OOA到OOD是一个逐步建立和扩充对象模型的过程。 面向对象设计模型是对系统中包含的对象或对象类,以及它们之间的不同类型关系的描述。

OOD设计过程的一个重要步骤,就是根据所开发的系统类型,选择设计模型和设计模型的细节层次,并尽量减少模型使用的数量。

32面向对象设计(OOD)面向对象设计(OOD,O33面向对象设计模型

面向对象的设计一般通过以下两类设计模型描述:

◆静态模型是通过系统对象类及其之间的关系描述系统的静态结构。UML中常用分析模型的类图、用例图、构件图等描述系统中元素的关系。

◆动态模型是描述系统的动态结构和系统对象之间的交互。UML中常用分析模型的时序图、协作图、状态图等来描述系统的行为。

UML的设计模型,还有域类模型、包模型(包图)等。33面向对象设计模型面向对象的设计一般通过以下两34域类模型 ◆应用领域的商业模型分析,需要确定所有处理的概念及概念间的关系,给出域类的基本关系和类中的部分方法和数据的定义。 ◆一般是通过版类来定义域类的。版类可以用来表示类的对象,是关键域的一部分,应永久地保存在系统中。 ◆域类模型描述的只是一个“草图”状态,定义的属性和操作不是最后的版本,只是在“当前”看来这些属性和操作是比较合适的。某些域类的状态需要用状态图进一步分析。34域类模型 ◆应用领域的商业模型分析,需要确定所有处理的概35包模型 ◆在UML中,包模型是一个封装结构,它不直接反映系统中的实体,而是某一指定功能域或技术域的处理。然而,它们能由构造结构(如Java程序库)构成。 ◆由于包模型能清晰地说明设计是如何由一组逻辑上相关联的对象构成的,所以它是一种最有效的静态模型。 ◆包模型的描述工具是包图。包图由包和包之间的联系组成。一般,简单描述包可直接在大矩形中给出包的名称。如果包中还包含了其他子包,则可以嵌套描述。35包模型 ◆在UML中,包模型是一个封装结构,它不36包图示例

《子系统》图书借阅图12.22图书馆系统体系结构包图《子系统》图书维护《子系统》信息查询图书借阅图12.23图书借阅子系统体系结构包图《子系统》

交互界面《子系统》

标识图书《子系统》

标识借阅管理所有的与外部通信标识借阅者并更新信息标识图书并更新信息36包图示例《子系统》图12.22图书馆系统体系37面向对象设计过程 ◆面向对象设计可直接继承分析阶段的类图和交互图等分析结果,然后确定每个类内部的数据和方法,以及每个方法的处理算法、过程和接口等。 ◆面向对象设计过程一般仍分为结构设计和详细设计。 ◆结构设计主要定义包或子系统、以及包或子系统间的关系和基本的通信机制。结构设计的原则是包或子系统间的相关性要尽可能少,要尽可能避免双方相关性。37面向对象设计过程 ◆面向对象设计可直接继承分析阶段的类图38面向对象设计过程 ◆详细设计主要是描述用户接口和数据库包中的类,扩展和细化业务对象类的描述,将包或子系统的内容细化,即尽可能详细地描述每一个类,使得编程人员根据它们可以很容易地编码。

◆细节设计的方法是更详细地产生新的类图、状态图和活动图等,这些图涉及到更多的技术细节。38面向对象设计过程 ◆详细设计主要是描述用户接口和数据库包39系统上下文和使用模型

系统上下文和使用模型是表达系统和环境之间关系的两个补充模型。 ①系统上下文模型是一个静态模型,描述环境中与之相关的其他系统(这实际是系统总的体系结构描述),通常用关联模型表示。 ②系统使用模型是一个动态模型,描述系统是如何与环境交互的,通常用UML中的用例模型描述与系统的交互,用脚本描述每一个用例的交互细节(对象和操作)。39系统上下文和使用模型系统上下文和使用模型是表达40体系结构设计

◆体系结构设计基于系统上下文和交互环境的分析,并结合有关体系结构设计的一般性知识和具体的领域知识。

◆体系结构描述的关键:标识和建立包间相关性规则,使得包间不存在双方相关性;明确必须的标准库和其他库,如用户接口、数据库和通信包等。

◆体系结构设计一般采用包模型加上对象模型描述系统的逻辑分组。可以使用UML的包图来表示子系统模型,并能对系统体系结构进行有效得分层次的分解。40体系结构设计 ◆体系结构设计基于系统上下文和交互环境的分41对象识别

◆面向对象分析已有了系统的主要对象,而设计过程还会有很多对象浮现出来,必须识别、细化和记录相关的其他对象,并多次反复对象识别工作。

◆在设计过程中,需要综合使用许多知识来发现对象和对象类。先是从非形式化的系统描述中识别出对象和操作,然后再使用应用领域知识和脚本来分析细化和扩展这些对象。41对象识别 ◆面向对象分析已有了系统的主要对象,而设计过程42对象接口的描述

◆对不同组件之间的接口描述是设计过程的重要部分。

◆对象接口设计关心的是如何详细描述一个对象或一组对象的接口细节,这需要定义服务目标和语义。

◆对象和接口之间没有必要是简单的一对一的关系。同一个对象可能有多个接口,从不同角度观察对象,可以得到不同的接口。接口设计中应避免涉及接口的具体表示,而是将接口的具体实现隐藏起来,只提供访问对象操作和修改数据,这样将利于该组件和其他组件对象并行设计。42对象接口的描述 ◆对不同组件之间的接口描述是设计过程的重43构件类设计

面向对象方法软件设计质量的一个重要方面,是定义对象和构件连接的程序构件,并标识存在对象间的接口和对象的整体结构。

1.任务管理构件设计 设计管理并发任务构件的策略:确定任务的特征、定义协调者任务和关联的对象、集成协调者和其他任务。

2.数据管理构件设计 数据管理构件的设计包括管理对象所需的属性和操作的设计,相关的属性被附加于问题域中的每个对象。43构件类设计面向对象方法软件设计质量的一个重要方44构件类设计

3.资源管理构件设计 面向对象软件(产品)子系统往往同时竞争系统资源,应该为其设计一个良好的控制机制。

4.人机界面构件设计

OOA模型通过用例和角色定义参与者使用场景,并标识一个操作命令层次。命令层次定义了系统菜单类别,以及系统菜单类别内可用的所有子功能。界面设计只需要针对问题域的要求,实例化具有合适特征的对象。 人机界面类构件一般可以通过商用的类库构造。

44构件类设计3.资源管理构件设计45实例1:图书馆系统

问题描述: ①一个图书馆藏有图书和期刊杂志两大类书籍,每种图书/杂志可以有多册。 ②图书馆可以维护(注册、更新和删除)图书资料。 ③图书管理员在系统的支持下,负责与借书者打交道。④借书者可以预约目前借不到的书或杂志。 ⑤所有人员都可以浏览图书馆的图书信息和各种告示。 ⑥系统能够在所有流行的技术环境下运行,有一个良好的图形交互界面。 ⑦系统应该具有良好的可扩展性。45实例1:图书馆系统问题描述:46图书馆系统的OOA

采用面向对象方法开发的图书馆系统,主要从借书者的角度分析系统的各种行为。 图书馆系统有借书者、管理员、系统管理员和一般浏览者四种角色。

1.

建立用例模型 ①给出图书馆系统的用例视图。 ②给出系统每个用例的脚本描述,包括正常情景和异常情景的脚本描述。46图书馆系统的OOA采用面向对象方法开发的图书馆系47图书馆系统的用例视图查询图书查询系统信息系统管理员借书者一般浏览者普通管理员借书还书续借预约查询账户注册借书者更新借书者注销借书者更新标题删除标题录入书目更新书目删除书目管理借书者管理书目管理标题录入标题47图书馆系统的用例视图查询图书查询系统信息系统管理员借书者48图书馆系统的OOA2.建立侯选类 给出非形式化描述:借书者可以借、还、续借图书馆的图书;图书馆的管理员维护借书者、图书目录和书目信息;借书者还可以预约没有归还的图书或新书,也可以取消预约,浏览和查询个人和图书信息;每本图书可以有多本,借书者不能借超过规定数目的图书;如果借书者有超期的图书或罚金额度超过2元,则不能借书。 通过筛选的侯选类有:借书者、图书标题和图书书目,分别建立它们的CRC卡。48图书馆系统的OOA2.建立侯选类49图书馆系统的CRC卡借书者类责任:维护借的书目的数据和罚金,请求借、还、续借书目功能协作者:图书书目类图书书目类责任:维护一个具体书目数据,通知相应的图书标题完成借、还功能协作者:图书标题类图书标题类责任:维护一个抽象书的数据,知道该书的可借数、预约数协作者:图书书目类49图书馆系统的CRC卡借书者类责任:维护借的书目的数据和50图书馆系统的OOA3.构建类图 需要一个“借/还”类来存储借书者的借书记录,一个预约者的“预约”类来存储预约记录。 最终的类:借书者、图书标题、图书书目、借/还、预约。 建立图书馆系统的类图。50图书馆系统的OOA3.构建类图51图书馆系统的类图

借/还类和预约类,也称为关联类分别画在借/还/续借和预约/删除预约关联上,表明它们不仅仅与借书者、图书标题、图书书目之中的某个类关联,而且与它们的关联相关。1n借/还预约借书者图书标题图书书目图12.13图书馆系统的类图包含11nn借/还/续借预约/删除预约51图书馆系统的类图借/还类和预约类,也称为关联类分别52图书馆系统的OOA4.动态建模 图书馆系统借书(未预约)功能的动态建模可以选择使用时序图、协作图、状态图和活动图描述。

52图书馆系统的OOA4.动态建模53图书馆系统的时序图:借书者:图书书目:图书标题2.1验证可借图12.14图书馆系统借书功能的时序图:借书者借书2.借书3.创建借书记录4.更新图书标题12.更新图书书目6.更新借书者:借/还1.验证可借性53图书馆系统的时序图:借书者:图书书目:图书标题2.1验证54图书馆系统的协作图1.验证可借性:借书者借书:借书者6.更新借书者:借/还{new}:图书书目:图书标题图12.15图书馆系统借书功能的协作图2.1验证可借4.更新图书标题2.借书5.更新图书书目3.创建借书记录54图书馆系统的协作图1.验证可借性:借书者借书:借书者6.55图书馆系统的活动图图书馆管理员图12.16图书馆系统借/还书业务层的活动图[借书者]图书馆成员查找图书[还书者]排队等待[还书][借书]记录还书图书回架记录借书准备为下一个成员服务55图书馆系统的活动图图书馆管理员图12.16图书馆系统借56图书馆系统的OOD

1.领域建模

对图书馆系统进一步分析,将系统中的领域和关键类条理化,得出商业域类模型。 图书馆系统类操作的细化,分析时通过协作图、时序图、活动图等给出描述了。其中,当使用时序图建模时,很显然需要窗口(或对话框)作为与角色的接口。借书、还书、预约、续借等都需要窗口,维护窗口也是必要的。56图书馆系统的OOD1.领域建模57图书馆系统商业域类模型beloanedinabereservedina<BusinessObject>Item-id:integer+findonTitle()+findonid()+findonReservation()create()destroy<BusinessObject>Title-bookid:string-borrowednum:integer-reservatednum:integer+finde()create()destroycopyof<BusinessObject>Loan-id:integer-borroweddate:date-returndate:date-borrowerid:integercreate()destroy<BusinessObject>Borrower-borrowerid:integer-name:string-borrowednum:integer-fine:number+find()create()destroyhashas<BusinessObject>Reservation-reserveddate:date-noticedate:date-borrowerid:integer-isbn:string+find()create()destroy57图书馆系统商业域类模型beloanedinabe58图书馆系统时序图(有借书窗口)图12.27带有借书窗口的时序图1.1.1:okToBorrow2.1:borrow()2.1.1:oktoborrow3.1:loan()3.2:update()3.3:updatetitle()3.4:update()1.1:find(id):借书窗口:借书者:借书者Thecopy:图书书目thebook:图书标题:借还1:findmember()2:finditem()3:borrow(id,thecopy)58图书馆系统时序图(有借书窗口)图12.27带有借书窗口59图书馆系统的OOD

2.结构设计

图书馆系统的架构用UML的包图描述。 图书馆系统架构设计成四个子系统包: ①用户接口包 ②业务对象包 ③数据库包 ④应用包59图书馆系统的OOD2.结构设计60图书馆系统的系统架构包图图12.28图书馆系统的系统架构的包图(四个子系统)应用包用户接口包业务对象包数据库包60图书馆系统的系统架构包图图12.28图书馆系统的系统61图书借阅子系统包图图12.25图书借阅子系统《子系统》更新数据预约借还书标题《子系统》交互界面界面控制借书者书目《子系统》标识书目书目《子系统》标识借书者借书者61图书借阅子系统包图图12.25图书借阅子系统《子系统62图书馆系统的OOD

3.细节设计

UML中的动态模型被用来显示类的对象在指定的情况下如何动作,用例描述被用来验证用例在设计中的处理。还必须进行以下一些类/对象的细节设计: ⑴永久存储对象 ⑵细化业务对象 ⑶用户界面类62图书馆系统的OOD3.细节设计63图书馆系统(部分)类属性和操作<<BusinessObject>>BookItem-itemid:int-title:ObjId-loan:ObjId+BookItem()+getTitleName():string+getId():int+setLoan()+getLoan():Loan+isBorrowed():boolean+write()+read()<<BusinessObject>>Loan-Item:ObjId-Borrower:ObjId-borrowDate:date-returnDate:date-extendTimes:int+Loan()+getBorrower():Borrower+getItem():Item+setItemId():int+getTitleName():string+getExtendTimes():int+setExtendTimes()+setReturnDate()+getReturnDate():date+write()+read()Persistent{abstract}-ObjId:int-it

温馨提示

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

评论

0/150

提交评论