ImageVerifierCode 换一换
格式:PPT , 页数:78 ,大小:555.90KB ,
文档编号:4142830      下载积分:28 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-4142830.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(晟晟文业)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(第十章面向对象设计课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

第十章面向对象设计课件.ppt

1、第十章第十章面向对象设计面向对象设计从面向对象分析(OOA)到面向对象设计(通常缩写为OOD),是一个逐渐扩充模型的过程。或者说,面向对象设计就是用面向对象观点建立求解域模型的过程。尽管分析和设计的定义有明显区别,但是在实际的软件开发过程中二者的界限是模糊的。许多分析结果可以直接映射成设计结果,而在设计过程中又往往会加深和补充对系统需求的理解,从而进一步完善分析结果。分析和设计活动是一个多次反复迭代的过程10.1 面向对象设计的准则 模块化 对象就是模块。它是把数据结构和操作这些数据的方法紧密地结合在一起所构成的模块。抽象 面向对象方法不仅支持过程抽象,而且支持数据抽象。类实际上是一种抽象数据

2、类型,某些面向对象的程序设计语言还支持参数化抽象。信息隐藏 在面向对象方法中,信息隐藏通过对象的封装性实现:10.1 面向对象设计的准则 弱耦合交互耦合:如果对象之间的耦合通过消息连接来实现,则这种耦合就是交互耦合。为使交互耦合尽可能松散,应该遵守下述准则。尽量降低消息连接的复杂程度。减少对象发送(或接收)的消息数。继承耦合与交互耦合相反,应该提高继承耦合程度。为获得紧密的继承耦合,特殊类应该确实是对它的一般化类的一种具体化,10.1 面向对象设计的准则 强内聚服务内聚一个服务应该完成一个且仅完成一个功能。类内聚设计类的原则是,一个类应该只有一个用途,它的属性和服务应该是高内聚的。一般特殊内聚

3、设计出的一般特殊结构,应该符合多数人的概念,更准确地说,这种结构应该是对相应的领域知识的正确抽取。可重用尽量使用已有的类(包括开发环境提供的类库,及以往开发类似系统时创建的类),如果确实需要创建新类,则在设计这些新类的协议时,应该考虑将来的可重复使用性。10.2 启发规则 设计结果应该清晰易懂 一般特殊结构的深度应适当 设计简单的类 使用简单的协议 使用简单的服务 把设计变动减至最小10.3 软件重用 重用知识的重用方法和标准的重用软件成分的重用 软件成分的重用级别代码重用源代码剪贴源代码包含继承设计结果重用重用某个软件系统的设计模型分析结果重用 典型的可重用软件成分项目计划、成本估计、体系结

4、构、需求模型和规格说明、设计、源代码、用户文档和技术文档、用户界面、数据、测试用例 类构件 可重用软构件应具备的特点 模块独立性 具有高度可塑性 接口清晰、简明、可靠 类构件的重用方式 实例重用 继承重用 多态重用10.4构件级设计 构件是计算机软件中的一个模块化的构造块在UML规范中将构件定义为“系统中某一定型化的、可配置的和可替换的部件,该部件封装了实现并暴露一系列接口”。面向对象的观点:构件包括一组协作类构件中的每一个类都被详细阐述,包括所有的属性和与其实现相关的操作。从分析模型开始,详细描述分析类(对于构件而言该类与问题域相关)和基础类(对于构件而言该类为问题域提供了支持性服务)。传统

5、观点:一个构件就是程序的一个功能要素,有处理逻辑、实现处理逻辑所需的内部数据结构以及能够保证构件被调用和实现数据传递的接口构成。传统构件称为模块模块控制构件,协调问题域中所有其他构件的调用;问题域构件,完成部分或全部用户的需求;基础设施构件,负责完成问题域中所需要相关处理的功能10.4构件级设计 1:标识出所有与问题域相对应的设计类 2:确定所有与基础设施相对应的设计类 3:细化所有不能作为复用构件的设计类在类或构件的协作时说明消息的细节为每一个构件确定适当的接口细化属性并且定义相应的数据类型和数据结构详细描述每个操作中的处理流 4:说明持久性数据源(数据库和文件)并确定管理数据源所需要的类

6、5:开发并且细化类或构件的行为表示 6:细化部署图以提供额外的实现细节 7:考虑每一个构件级设计表示,并且时刻考虑其他选择10.4构件级设计 基于类的构件设计原则基于类的构件设计原则开闭原则(The Open-Closed Principle,OCP):模块应该对外延具有开放性,对修改具有封闭性。替换原则(Subsitution Principle,SP):子类可以替换它们的基类。依赖倒置原则(Dependency Inversion Principle,DIP):依赖于抽象、而非具体实现接口分离原则(Interface Segregation Principle,ISP):多个用户专用接口比

7、一个通用接口要好。迪米特法则(最少知道原则)合成复用原则 打包的原则发布复用等价性原则(Release Reuse Equivalency Principle,REP):复用的粒度就是发布的粒度。共同封装原则(Common Closure Principle,CCP):一同变更的类应该和在一起。共同复用原则(Common Reuse Principle,CRP):不能一起复用的类不能被分到一组。10.4构件级设计 有经验的软件开发者建立了既有通用原则又有惯用方案的指令系统来指导他们编制软件。如果以结构化形式对这些问题、解决方案和命名进行描述使其系统化,那么这些原则和习惯用法就可以称为模式。基于

8、职责设计对象(General Responsibility Assignment Software Patterns,GRASP)信息专家、创建者、控制器、高内聚、低耦合、多态、纯虚构、间接性和防止变异 GoF(Gang of Four)模式23种设计模式,其中基本的有适配器、工厂、单实例类、策略、组合、外观和观察者等模式10.4构件级设计 创建模式 工厂方法模式:如swing 中的BorderFactory使用工厂类统一创建继承了同一接口的多个产品对象 抽象工厂模式为产品族提供了统一的创建接口 单例模式:如日历单例类 calendar一个类只有一个实例,并提供对该实例的全局访问 创造者模式如

9、字符串建造者 StringBuilder将一个复杂对象的创建与它们的表示分开 原型模式:如进程建造者ProcessBuilder通过复制原型实例创建新的对象10.4构件级设计 结构型模式 讨论类和对象的结构 适配器模式:如Iterator,Enumeration,EventListener 装饰模式:如I/O输入输出流管道 代理模式:如动态代理机制 外观模式 桥接模式 组合模式 亨元模式10.4构件级设计 行为模式:类与对象之间的通信关系父类与子类策略模式模板方法模式类之间观察者模式迭代子模式责任链模式命令模式类的状态备忘录模式状态模式通过中间类访问者模式中介者模式解释器模式10.4构件级设计

10、 职责驱动设计也即基于职责的设计。在设计中软件对象具有职责,即对其所作所为进行抽象。UML把职责定义为“类元的契约或义务”。就对象的角色而言,职责与对象的义务和行为相关。职责分为以下两种类型:对象的行为职责包括:自身执行一些行为,如创建对象或计算 初始化其他对象中的动作 控制和协调其他对象中的活动对象的认知职责包括:对私有封装数据的认知 对相关对象的认知 对其能够导出或计算的事物得认知 职责的粒度会影响职责到类和方法的转换10.5 系统分解 大多数系统的面向对象设计模型,在逻辑上都由四大部分组成。这四大部分对应于组成目标系统的四个子系统,它们分别是问题域子系统,人-机交互子系统、任务管理子系统

11、和数据管理子系统 当然,在不同的软件系统中,这四个子系统的重要程度和规模可能相差很大,规模过大的在设计过程中应该进一步划分成更小的子系统,规模过小的可合并在其他子系统中。某些领域的应用系统在逻辑上可能仅由3个(甚至少于3个)子系统组成。10.5 系统分解在软件系统中,子系统之间的交互有两种可能的方式,客户供应商(Client_supplier)关系(P 240)平等伙伴(peer_to_peer)关系。(P 240)总的说来,单向交互比双向交互更容易理解,也更容易设计和修改,因此应该尽量使用客户供应商关系 把子系统组织成完整的系统时,有水平层次组织和垂直块组织两种方案可供选择。水平层次组织这种

12、组织方案把软件系统组织成一个层次系统,每层是一个子系统。上层在下层的基础上建立,下层为实现上层功能而提供必要的服务。垂直块组织这种组织方案把软件系统垂直地分解成若干个相对独立的、弱耦合的子系统,一个子系统相当于一块,每块提供一种类型的服务。10.6 设计问题域子系统 只要可能,就应该保持面向对象分析所建立的问题域结构。面向对象设计仅需从实现角度对问题域模型作一些补充或修改,主要是增添、合并或分解类对象、属性及服务,调整继承关系等 在面向对象设计过程中,可能对面向对象分析所得出的问题域模型作的补充或修改。调整需求 重用已有的类 把问题域类组合在一起 增添一般化类以建立协议 调整继承层次 10.6

13、 设计问题域子系统10.7 设计人机交互子系统 设计人-机交互子系统的策略 分类用户 描述用户 设计命令层次研究现有的人-机交互含义和准则确定初始的命令层次精化命令层次 设计人机交互类10.8 设计任务管理子系统 分析并发性 通过面向对象分析建立起来的动态模型,是分析并发性的主要依据。如果两个对象彼此间不存在交互,或者它们同时接受事件,则这两个对象在本质上是并发的。设计任务管理子系统 常见的任务有事件驱动型任务、时钟驱动型任务、优先任务、关键任务和协调任务等。设计任务管理子系统,包括确定各类任务并把任务分配给适当的硬件或软件去执行。设计步骤确定任务确定确实需要的任务确定资源把任务分配给硬件或软

14、件10.9 设计数据管理子系统 选择数据存储管理模式 文件管理系统 关系数据库管理系统 面向对象数据库管理系统 设计数据管理子系统 设计数据格式 设计相应的服务 类中的服务设计和关联的设计(P252-P255)10.10 面向对象详细设计 面向对象详细设计的目的就是不断精化设计类 1、领域模型精化 领域模型也称为概念模型、领域对象模型和分析对象模型。领域模型的精化对类图和交互图的精化起了至关重要的作用,也是设计个良好系统的关键。使用泛化、关联类、时间间隔、组合和包等概念精化领域模型。10.10 面向对象详细设计 泛化泛化是在多个概念中识别共性和定义超类(普遍概念)与子类(具体概念)关系的活动。

15、在领域中识别父类和子类是一个有价值的活动,这样可以使我们对概念有更概括、精炼和抽象的描述。10.10 面向对象详细设计 将概念类划分为子类的动机有:子类有额外的有意义的属性;子类有额外的有意义的关联;子类概念的操作、处理、反应或使用的方式不同于其超类或其他子类,而这些方式是我们所关注的;子类概念表示了一个活动体,其行为与超类或者其他子类不同,而这些行为是我们所关注的。泛化和定义概念超类的动机:潜在的概念子类表示的是相似概念的不同变体;子类满足100%准则(即概念超类的定义必须100%适用于子类,子类必须100%与超类一致。);所有子类都具有相同的属性,可以将其解析出来并在超类中表达;所有子类都

16、具有相同的关联,可以将其解析出来并与超类关联。10.10 面向对象详细设计10.10 面向对象详细设计 关联类在POS机系统中,授权服务给每个商店分配一个商业ID,商店发送授权服务的支付授权请求需要商业ID标识商店,商店对于每个服务有不同的商业ID。Store可能有多个merchantID值,所以将merchantID作为Store的属性是不正确的。同理,放入Authorization Service中也不正确。原则:在领域模型中,如果类A可能同时有多个相同的属性B,则不要将属性B置于A之中。应该将属性B放在另一个类C中,并且将其与类A关联。这样就得出一个关联类C。可以用一个关联类Servic

17、eContract来拥有属性merchantID关联类的增加具有原则:有某个属性与关联相关;关联类的实例具有依赖于关联的生命期;两个概念之间有多对多关联,并且存在与关联自身相关的信息。10.10 面向对象详细设计10.10 面向对象详细设计(聚合)关系和(组合)关系共享聚集是UML中的是UML中的一种模糊关联,其不明确的暗示了整体和部分关系组合聚集也称组成聚集,是一种强的整体部分聚合关系,并且在某些模型中具有效用。组合关系意味着:在某一时刻,部分的一个实例只属于一个组成实例;部分必须总是属于组成;组成要负责创建和删除部分,可以自己创建和删除部分也可以和其它对象协作进行创建和删除部分;组成被销毁

18、,其部分必须要销毁。组合关系的识别准则是:部分的生命期在组成的生命期之内,部分的创建和删除依赖于整体;在物理或者逻辑组装上,有明确的整体部分关系;组成的某些属性会传递给部分;对组成的操作可能传递给部分。识别组合聚集的好处有利于澄清部分对整体的依赖的领域约束;对整体的复制、拷贝这些操作经常会传递给部分10.10 面向对象详细设计10.10 面向对象详细设计 时间间隔例如,POS机系统在初始设计时,SalesLineItems与ProductDescriptions关联,记录了销售项的价格。在精化过程中,需要关注与信息、合同等相关的时间间隔问题。如果SalesLineItems从ProductDe

19、scriptions取得当前价格,当价格改变时,以前的销售将指向新的价格,这很显然是不正确的。需要区别销售发生时的历史价格和当前价格。基于信息需求,可以采用两种方法对此问题解决:一是可以在ProductDescriptions中保存当前价格,仅将销售发生时的价格写入SalesLineItem;二是将一组ProductPrices与ProductDescriptions关联,每个ProductPrices关联适用的时间间隔。10.10 面向对象详细设计10.10 面向对象详细设计 使用包来组织领域模型将领域模型划分成包结构时,将满足下述条件的元素放在一起:在同一个主题领域,概念或目标密切相关的元

20、素;在同一个类层次结构中的关系;参与同一个用例的元素;有很强的关联性的元素。例如,在POS机系统领域模型中包的结构10.10 面向对象详细设计 2、精化的交互图在交互图中,领域模型指出了需要设计的软件对象,设计模型中的设计类是以领域模型的类为基础的。在顺序图和协作图精化设计中,一些类直接来自前面的分析模型中的类,还有一些针对软件系统的更好的实现虚构出来的。例如设计makeNewSale操作。要处理一次新的销售,首先必须创建软件对象Sale。根据控制器模式我们还需要设计一个转发makeNewSale请求的对象Register。Register是记录Sale的类。又根据创建者模式得出应该由Regi

21、ster创建Sale。在销售过程中必须设计一个集合来存储一系列的商品,所有由Sale对象创建了记录所有将来会添加的集合SalesLineItem实例。10.10 面向对象详细设计10.10 面向对象详细设计10.10 面向对象详细设计10.10 面向对象详细设计 3、精化的类图 类图和对象图是设计阶段的主要制品 顺序图和协作图中的消息映射为类图中的方法,交互消息的对象映射为类的对象,每个消息的交互实现映射为类图和对象图中方法的实现。在类图的精化设计中不仅要得到每个类中的属性和方法,还要有方法的粗略实现(也即方法的实现过程)10.10 面向对象详细设计 可见性的设计主要有四种:属性可见性:一个类

22、中有另一个类的对象参数可见性:一个对象是另一个对象中方法的参数局部可见性:一个类对象的方法中有另一个类的对象作为其方法的局部变量全局可见性:一个类对象具有某中方式的全局可见性,不提倡 类图的细化类图的设计是以交互图的设计为基础的,类图中的元素也是从交互图中抽象提取出来的。通过交互图中对象之间的交互,找出对象所属的类以及类之间的关系。通过对交互图中对象之间消息的交互的分析和细化得到类图中的属性和方法。对类图进行分析的时候也必须理解类图和类之间的关系如何映射得到具体的实现类。10.11 设计优化 提高效率的几项技术 增加冗余关联以提高访问效率 调整查询次序 保留派生属性10.11 设计优化 调整继

23、承关系 在面向对象设计过程中,建立良好的继承关系是优化设计的一项重要内容 抽象与具体 首先创建一些满足具体用途的类,然后对它们进行归纳,一旦归纳出一些通用的类以后,往往可以根据需要再派生出具体类 为提高继承程度而修改类定义 如果在一组相似的类中存在公共的属性和公共的行为,则可以把这些公共的属性和行为抽取出来放在一个共同的祖先类中,供其子类继承 利用委托实现行为共享 仅当存在真实的一般特殊关系(即子类确实是父类的一种特殊形式)时,利用继承机制实现行为共享才是合理的。如果只想把继承作为实现操作共享的一种手段,则利用委托(即把一类对象作为另一类对象的属性,从而在两类对象间建立组合关系)也可以达到同样

24、目的,而且这种方法更安全。10.11 设计优化10.12 举例 POS机系统收银员可以记录销售商品信息,系统计算总价。收银员能够通过系统处理支持,包括现金支付、信用卡支付和支票支付。经理还能处理顾客退货。系统要求具有一定的容错性,即如果远程服务(如库存系统)暂时中断,系统必须仍然能够获取销售信息并且至少能够处理现金付款。POS机必须支持日益增多的各种的客户终端和接口,比如多种形式的用户图形界面、触摸屏输入装置、无线PDA等。系统需要一种机制提供灵活的处理不同客户独特的业务逻辑规则和定制能力。10.12 举例 POS机系统的相关者收银员:能够准确、快速地输入,而且没有支付错误,因为如果少收货款,

25、将从其薪水众扣除。售货员:自动更新销售提成。顾客:希望以最小代价完成购买活动并得到快速服务。便捷、清晰地看到所输入的商品项目和价格。得到购买凭证,以便退货。公司:希望准确地记录交易,满足顾客要求。确保记录了支付授权服务的支付票据。有一定的容错性。能够自动、快速地更新记帐和库存信息。经理:能够快速执行超控操作,并易于更正收银员的不当操作。支持授权服务:依据正确的通信格式进行授权服务。库存系统:正确的方式更新库存信息。记账系统:能够准确地记录每次销售支付信息。用例图 主要功能 处理销售:收银员完成一次销售记录,并出具票据和更新库存系统和帐务系统。处理支付:完成一次销售对应的支付,包括现金支付,信用

26、卡支付和支票支付。处理退货:根据顾客请求完成商品退货处理。办理会员卡:注册、注销和更新会员记录 用例文档用例名称:用例名称:处理销售范围范围:POS机应用级别级别:用户目标主要参与者主要参与者:收银员涉众及其关注点涉众及其关注点:收银员:希望能够准确、快速地输入,而且没有支付错误,因为如果少收货款,将从其薪水众扣除。售货员:希望自动更新销售提成顾客:希望以最小代价完成购买活动并得到快速服务。希望便捷、清晰地看到所输入的商品项目和价格。希望得到购买凭证,以便退货。公司:希望准确地记录交易,满足顾客要求。希望确保记录了支付授权服务的支付票据。希望有一定的容错性,即便在某些服务器构件不可用时(如远程

27、信用卡验证),也能够完成销售。希望能够自动、快速地更新帐户和库存信息。经理:希望能够快速执行超控操作,并易于更正收银员的不当操作。前置条件前置条件:收银员必须经过确认和认证。成功保证(或后置条件)成功保证(或后置条件):存储销售信息,更新帐户和库存信息,记录提成,生成票据,记录支付授权的批准。主要交互过程1.顾客携带所购商品或服务到收银台通过POS机付款。2.收银员开始一次新的销售交易。3.收银员输入商品条码。4.系统逐步记录出售的商品,并显示该商品的描述、价格和累计额。价格通过一组价格规则来计算。收银员重复34步,直到输入结束。5.系统显示总额和计算折扣。6.收银员告知顾客总额,并请顾客付款

28、。7.顾客付款,系统处理支付。8.系统记录完整的销售信息,并将销售和支付信息发送到外部的账务系统(进行账务处理和提成)和库存系统(更新库存)。9.系统打印票据。10.顾客携带商品和票据离开。用活动图描述交互过程用活动图描述交互过程边界类、控制类、“处理销售”用例的类图“处理销售”用例的协作图 处理销售的顺序图 1创建一次新的销售 2、添加商品项 3、计算总价 处理支付 状态图 逻辑架构 设计 顺序图 创建一次新销售 输入商品 计算总价 处理支付 类图OOOO分析模型转换到分析模型转换到OOOO设计模型设计模型 OO分析模型转换到分析模型转换到OO设计模型设计模型消息设计消息设计类及对象设计类及

29、对象设计子系统设计子系统设计责任责任设计设计设计模型设计模型属性、操作、属性、操作、协作者协作者对象对象-行为模行为模型型对象对象-关 系 模关 系 模型型类类/对对象象模型模型使用使用实例实例分析模型分析模型可由整体客户可由整体客户需求(用例)需求(用例)和外部可观察和外部可观察到的事件和状到的事件和状态(对象态(对象-行为)行为)导出导出由包含在类由包含在类/对象模型中的对象模型中的属性、操作和属性、操作和协作的描述而协作的描述而映射得来映射得来可由对象可由对象-关系关系模型导出模型导出利用类利用类/对象对象模型中的属性、模型中的属性、操作和协作导操作和协作导出出 需求分析图书馆将书和杂志

30、借给读者,读者和书、杂志一样必须在系统中注册图书馆负责购买图书。对于流行的书一般要多买几本。如果旧书或杂志过期了或很破烂则可以从图书馆中删除图书馆管理员是图书馆的雇员,负责与客户(借书者)打交道。借书者可以预定目前借不到的书或杂志,一旦预定的书被返还给图书馆或图书馆新购买的书到达,就立即通知预定者图书馆可以方便的产生、更新和删除系统中与书目、借书者、借书和预定的有关信息系统能够在所有流行的技术环境下运行(UNIX,Windows,OS/2等等),还应该有一个非常好的图形用户界面(GUI)系统应该具有很好的可扩展性Borrow er the BookReturn the BookBorrower

31、ManagerR eserve the BookSearch for BookQuery InfoBorrowerReturn With FineKnow the Title of the BookLogon the SystemMaintenance BooksMaintenance TitlesMaintenance BorrowersSystem Manager 用例定义定义actor图书管理员借书者:不直接参与系统交互用例借出书目(Lend Item)返还书目(return Item)预定(Make Reservation)删除预定(Remove Reservation)增加标题(Ad

32、d Title)更新和删除标题(Updata or Remove Title)增加书目(Add Item)删除书目(Remove Item)增加借书者(Add Borrower)更新和删除借书者(Updata or Remove Borrower 图书馆将书和杂志借给读者,读者和书、杂志一样必须在系统中注注册册 图书馆负责购买图书。对于流行的书一般要多买几本。如果旧书或杂志过期了或很破烂则可以从图书馆中删除 图书馆管理员是图书馆的雇员,负责与客户(借书者)打交道。借书者可以预定预定目前借不到的书或杂志,一旦预定的书被返还给图书馆或图书馆新购买的书到达,就立即通知预定者 图书馆可以方便的产生、更

33、新和删除系统中与书目、借书者、借书和预定的有关信息 系统能够在所有流行的技术环境下运行(UNIX,Windows,OS/2等等),还应该有一个非常好的图形用户界面(GUI)系统应该具有很好的可扩展性 问题域对象 类 借书者 标题 书的标题 杂志的标题 书目 预定 借书LoginFormBorrowBookFormReturnBookFormReserveBookFormQueryInfoFormSearchBookFormMainBookFormMainBorrowerFromMainTitlesFormBookBorrowerTitleMagazineLoanRecordReserveRec

34、ordLoanReturnReserveManageMagazineBookItemLoanReserve1111ReserveRecordBorrower0.n10.n10.n10.n1LoanRecordReturnTitle11.n11.n1111:BorrowerPeople:BorrowerM.:BorrowBookForm:Loan Find Borrower:Title:Item:Borrower:LoanRecord1:Begin Loan2:Logo the system3:request Loan4:Check book item5:find item6:Find Borrower7:8:Create RecordNewBorrowerAvailabledo/Check the number of borrowerloan or return number max loan number=0 UnavailabneLoan number=Max-1 ReturnNewStateDelete number=0

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|