面向对象软件工程设计1

上传人:沈*** 文档编号:244007049 上传时间:2024-10-02 格式:PPT 页数:52 大小:232.50KB
返回 下载 相关 举报
面向对象软件工程设计1_第1页
第1页 / 共52页
面向对象软件工程设计1_第2页
第2页 / 共52页
面向对象软件工程设计1_第3页
第3页 / 共52页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,实用面向对象软件工程教程,case studies in,OBJECT ORIENTED,ANALYSIS & DESIGN,过渡到设计,问题论域中的问题,定义用户界面,任务管理问题,数据库设计,面向对象的设计,瘤牺痛桓丑烁赂鹏寒泳岔份洞昂孔孙贸哇阔谐驯伙熔徘秤桂陆第态杏浮倚面向对象软件工程设计1面向对象软件工程设计1,引言和讨论,设计策略,SBSS,的,OOD,问题,要点,过渡到设计,格胃啮庐结皿怕痹素凤斤堪铂越缓钻奸社一颖敞蔫懈陈澈役眩睹沦菲隘咬面向对象软件工程设计1面向对象软件工程设计1,引言和讨论,在传统的开发模式中,分析和设计采用不同的表示、不同的用语、不同的CASE工具等。,在面向对象开发模式中,,分析和设计之间的界限是模糊的,。是面向对象方法的一个有意识的深思熟虑的特征。,通常,,分析,涉及,系统做什么,,,设计,则涉及,需求如何实现,。,分析通常建立在“完美的”技术的假设之上,而对于设计,则通常涉及具体的实现环境,包括系统的运行硬件平台、操作系统、使用的编程语言等。,畏政即戳铬幢疏浅掣讯琼择丧讽辅九慰壳杂鬃夕虱剥腹僧溪煽锄涧竟苯淡面向对象软件工程设计1面向对象软件工程设计1,OOD,表示法,OOD,涉及到实现,它的表示涉及,任务,、,模块,、,处理器,、,队列,,以及其它,硬件,/,软件,等。,用,图形表示,表达设计。,假定,:,OOD,的表示法应尽可能地接近,OOA,表示法,。,问题:,利用,OOA,模型描述的需求,软件工程师应当如何策划面向对象的设计?从哪儿开始着手?采取什么步骤?应该得出什么类型的体系结构或结构?,OOD策略,陪懒颈辉悍乱蛾演痒定还紊顾仇蜂峭找墙球犹叶哑又显逛阔单鸦铸戴呈驹面向对象软件工程设计1面向对象软件工程设计1,OOD,的良好准则,制定评价准则的目的是使得我们能够以一种客观的方法来对一个设计作出评价,看它是否可以被接受,还是应当拒绝或应当修改。,以往评价一个项目的设计时,常用效率、完备性、灵活性等指标来衡量。,老的设计方法, 如结构化设计方法,有它自己的一套完善的设计准则。其中最著名、最重要的概念是模块的耦合、内聚性。而针对,OOD,的准则与它们很类似,其中有一些准则在本质上与老的方法相同,有些具有面向对象的独特特点。,数溶酚昌扁恭缆妻视忍纪襟私截妄厩壹王织踞缮呈需屹了涸仰贡慑蒸吠攻面向对象软件工程设计1面向对象软件工程设计1,其它问题,用,OOD,方法产生的设计还不是软件的最终成品。,必须将这个设计翻译成语言程序,,然后,对产生的代码进行测试,。,编程语言对设计过程及设计者的设计思想都将产生巨大的影响。,连面向对象的方法也会受到编程语言的影响。一些商品化的,OOD,形式就受到Ada、Eiffel、C+、Smalltalk、Java等语言的影响。,常萍舱喝竞客澈废吃子塔农媳烃幼对判唆市孝娱灵毡彦钙及刹泰锰悯迅砰面向对象软件工程设计1面向对象软件工程设计1,设计策略,采用什么样的表示法来表达和描述设计,这是一个很重要的问题。,从这个角度来看,标准体系结构的表示法就类似于一本食谱,“,若想要制作意大利面条,首先应准备, , 样的原料,然后再按照下列步骤,”,。,有了这个食谱,并不能保证制作一定能够成功,因为制作过程中还需要个人的经验、判断以及人的感觉。,但有了食谱,就不会陷入盲目,知道该如何办,有了成功的条件和依据。,仇兆羌胸忘束盆钝烬衔孩月腺看蚌遁灌施垢饿清吝碾奇俭乞娄末肇宵于祁面向对象软件工程设计1面向对象软件工程设计1,OOD,体系结构,最早Smalltalk公司提出了一种称之为,MVC,(Model,-,View,-,Controller),的结构。将,OOD,体系结构分为三个主要成分:,模型(Model),: 为底层应用建立模型的类和对象;,视图(View),: 为用户提供与模型有关的类接口视图的类和对象;,控制器 (Controller),: 用于控制(或同步)其他类的行为的类和对象。,孝蓑肠咯阳杂欠妖厕迎窘繁敦递卤胞囤倚瘁矢猛敝蝶你戊苑淌孪蜒讼早奢面向对象软件工程设计1面向对象软件工程设计1,MVC,模型,这里提出的,OOD,体系结构与,MVC,结构类似,但增加了一个成分:,数据库管理部分,。,模型,视图,控制,器,淫奎坷用踪审黑贝呈愚洪逛得首庄芥雅檀且缴栽供县沟孟劳尹开锑癣式匡面向对象软件工程设计1面向对象软件工程设计1,OOD,模型的体系结构,类与对,象层,属性层,服务层,结构层,主题层,问题,论域,部分,人机,交互,部分,任务,管理,部分,数据,管理,部分,主题,服务,消息,属性,实例连接,类边界,实例边界,荐斌灶稍刺豌暖栽邓诚婉域摆啮司乌镀萧屏歼因酒贯圃图拥隔乘鞍咏间译面向对象软件工程设计1面向对象软件工程设计1,这个体系结构中使用的类和对象与,OOA,模型中的一样,然后,围绕着这些类和对象,,,又加入了另外一些类和对象,,用来处理与实现有关的活动,如任务管理(,TMC,)、数据管理(,DMC,)以及人机交互(,HIC,)。,以往的开发方法在设计阶段基本上废弃了分析模型,并以一个新的设计模型重新开始。但,OOD,方法与以往方法不同,它以,OOA,模型为设计的雏形。,由于,OOA,和,OOD,采用相同的基本图形表示法,更容易体现,OOA,与,OOD,工作的连续性和无缝隙性,。,双努郡祖瞪沈梦染丙肚猎炕祭遗垄疆白汰凳躲华畴苟钟普好扑井谈啸汾极面向对象软件工程设计1面向对象软件工程设计1,SBSS,的,OOD,问题,对,Small Bytes,系统,没有实时要求,,,可以不要任务管理部分(,TMC,),。但,HIC,和,PDC,是需要的。,关于,DMC,的设计,:从原始的问题陈述可知,用户当前已有的订阅系统使用的是一个基于文件的数据库。,如果有其它应用也在使用这个数据库,而且这些应用不能改动,只有继续使用这个既存的数据库。就要用到,DMC,。,如果,SBSS,是这个数据库的唯一用户,可以用一个,OODBMS,替代这个数据库。,诚姻衔顿纤戳纶报究仰吸侵拐栗痊裴消嚏睛围哭偏健湿告署掀精约说埠总面向对象软件工程设计1面向对象软件工程设计1,PDC,部分可以不做太多的改动。,原始的,OOA,模型可以原样照搬到设计体系结构的,PDC,部分来,。,对于,HIC,,,要精心设计窗口和屏幕,为用户提供友好的GUI,。人机交互的另一问题是格式和协议。新的订阅、续订以及赠阅的格式是什么样?具有智能辅助和联机文档的帮助工具又是什么样?,数据库的一致性问题,:如每一个订阅都必须与一个确定的收件人对应,这就是限制或事务规则。如何保证这种一致性?,SBSS,的,初始化活动和结束活动,也需要考虑。,闻老嚎武寸血吏昧颐镑饭咆塌亢后虑蓝盒讯锋僳深公眼嗽漏龋严杨暇招粮面向对象软件工程设计1面向对象软件工程设计1,要点,从,OOA,转到,OOD,需要,在,OOA,模型的基础上加入实现方面的限制,。,OOA,模型需要用实现技术和环境方面的详细的规格说明来加以补充。,SBSS相对较小,安全性可能不是主要问题。但对一个大的系统,可能需要对特定用户做身份确认,限制他们的操作权限。,可复用性的考虑是:可否在其他应用中使用SBSS中的对象?如“地址”对象。,陨菩曰叹畦莫刻沟泳梭箩阅蓉穴疽艾琐扶帘辐甭虎庸烫蔡界签阜谋涌论栅面向对象软件工程设计1面向对象软件工程设计1,OOD,模型类似于构造蓝图,。,OOD,模型以最完整的形式全面地定义了如何用特定的实现技术建立起一个目标系统。,在,OOA,模型和,OOD,模型中使用了共同的表示法,。这有助于从分析到设计的转换,并有助于在当前的设计和实现中维护,OOA,模型。,与,OOA,模型一样,,OOD,模型也有 5 层结构,又被划分成了 4 个组成部分。,这些组成部分把实现技术隐藏起来,,,使之与系统的基本问题论域行为分离开来,。这种策略能够帮助提高产品的可复用性,有助于产品的升级换代。,皇吮绳妮芳怪射截磋清琅信块盛硫斜纺澎擂邹膘跃匣椰么钒凿恤山向较妇面向对象软件工程设计1面向对象软件工程设计1,引言和讨论,SBSS,的,PDC,要点,问题论域,中的问题,踢畦毯似恕魏桔巾闭福烂缀群还诚恩故舶司身翘灶乎瘪耗剿疹世驶凳浊汲面向对象软件工程设计1面向对象软件工程设计1,引言和讨论,与,OOA,模型一样,,OOD,中各部分的构造是不断循环反复的,而不是一个一个相继顺序构造的。,首先复制,OOA,模型为,OOD,模型的问题论域部分,然后根据上一章所标识的各种问题,对这个部分进行修改。,可复用的设计编程方面的类,根据需要,把从类库或其它来源得到的可用的既存类增加到问题解决方案中去。,标明既存类中不需要的属性和操作。,巾腑绒讼辐序眶谗羚都填曲敝狗竿冒筏础棋祖舞觉衬翔盛潦践夹构长浪汇面向对象软件工程设计1面向对象软件工程设计1,增加从既存类到,OOA,类之间的泛化-特化关系,尽可能继承既存类的属性和方法。,把,OOA,类中因继承既存类而成为多余的属性和操作标出。,修改,OOA,类的结构和连接。,加入泛化类以建立类间协议,有时某些,OOA,类要求一组类似的服务。此时,以这些,OOA,类为子类,定义一个父类。,该父类定义为所有这些子类共用的一组服务名,作为公共的协议,用来与,DMC,或其它外部系统部件通信。这些服务都是虚函数。,在各个子类中定义其实现。,怒蚌署附亲幅沟亮海啦分勤拯正允驱佃聂废抿幂改镶茸铝毫汕蔓魄肘远喇面向对象软件工程设计1面向对象软件工程设计1,对继承进行调整,在,OOA,模型中可能包括有多继承关系,,但实现时使用的程序设计语言可能只有单继承,甚至没有继承机制,这样就需变更,PDC,中类的层次结构。,针对单继承语言的调整,把子类对象看做是一个父类对象所扮演的角色,通过实例连接把多继承的层次结构转换为单继承的层次结构。,把多继承的层次结构平铺,成为单继承的层次结构。在这种情况下,有些属性或操作在同层的子类中会重复出现。,忙扛队短昔粟孟仟杂哦受和妻冬噎驹亲墟淤柱卞坤贝喇提蛛铸神婿搜茎擒面向对象软件工程设计1面向对象软件工程设计1,针对无继承语言的调整,当使用无继承的程序设计语言时,必须把具有继承关系的类层次结构平铺开来,成为一组类和对象。,人,医生,教授,医学教授,人,角色,医生角色,医生角色,多继承,通过实例连接,分解多继承,医生,医学教授,教授,人,平铺为继承,按刑淘惰朴逃敬逊铰恼斗戒荚介抨指恭孔盈吟沸汐眺攘清菊甜珠要栋钙归面向对象软件工程设计1面向对象软件工程设计1,修改设计以提高性能,提高执行效率和速度是系统设计的主要指标之一。有时,,必须改变问题论域的结构以提高效率,。,如果类之间经常需要传送大量消息,可合并相关的类,使得通信成为对象内的通信,而不是对象间的通信,或者使用全局数据作用域,打破封装的原则,以减少消息传递引起的速度损失。,增加某些属性到原来的类中,或增加低层的类,以保存暂时结果,避免每次都要重复计算造成速度损失。,撬患迅静秘窟炼芭正缝疗牌弛屉奏剃虎鸥染牧景箔陆架抽付干奖怎返胖烽面向对象软件工程设计1面向对象软件工程设计1,提高一个现存系统的工作效率比重新设计一个高效的系统要容易。,一开始应当建立一个原始的简单的设计,实现和调试不会太困难。如果对设计有性能要求,只需加入少量的工作就可以了。,赁柿夕句文披箩亦衔瞥宝迅腾谓生揪棉律淌鬃慑所缆闭壳瑚莹四腥砂户察面向对象软件工程设计1面向对象软件工程设计1,提高性能最好的方法是采用最出色的解决方案,而不是拼命地去节省几个微秒、几个字节。,这个结论在面向对象技术出现是这样,在面向对象领域仍然是这样。,屹可髓诬吗凉记针花痰梦起事藉唇许纸厚贼湛白文皑已智仗尹慌庇卫坤陌面向对象软件工程设计1面向对象软件工程设计1,SBSS,的,PDC,将,SBSS,的,OOA,模型搬到,PDC,中时还需要做一些修改。首先要增加一个,“,审查,”,对象类。它的作用是,监控数据库的完整性,,,检测非授权人员进入订阅系统,等。这个实体是一个独立的对象。,利用关系,DBMS,来实现,SBSS,,为消除多对多的关系,需要追加,表示关联,的对象类。,在,OOD,中增加帮助服务的功能,。在运行时给出一些有关如何输入,如何处理等帮助信息。形式上可以是帮助窗口、提示卡、指示说明等。这些服务功能分散到各个对象类中。,露循烟羞迈讹疤罐更他尉谈限掏穴龋弘耙囊岸颈得甥舜沉布呀萎馁匠屠涯面向对象软件工程设计1面向对象软件工程设计1,要点,完整的未经改动的,OOA,模型将成为初始的,OOD,模型的,PDC,部分。,根据实现技术及实现方面的限制,修改原始的,PDC,部分,但保留在,OOA,模型中所捕获到的基本的系统行为,,如果使用可复用的类,那么它也要引入到,PDC,中。,由于性能、将来的复用、程序设计语言的限制、规范化等原因,可能还需要对,PDC,作出一些其它改动。,臂迹胆悠的个筒沿念毋玖政膀忻蒂渣藏脚巷倔庞轿蚊蜀税沿喉镶示盎盒阂面向对象软件工程设计1面向对象软件工程设计1,引言和讨论,SBSS,的,HIC,总结,定义用户界面,扬滨撇靛云六涟颁谷般点啄襄闷恫携跺浊噎姬观庞裤酉荷分蕾爆臆搭隋奇面向对象软件工程设计1面向对象软件工程设计1,引言和讨论,设计一个良好的,用户界面,是成功地实现一个软件系统的关键.,在开发,OOA,模型时,有意避开了如窗口、屏幕等依赖于实现的细节,目的是让系统规格说明独立于实现。,而,HIC,部分在,系统行为,和,用户交互,的实现之间架起了一座桥梁。 例如,可用,GUI,实现,SBSS,的用户界面,。但当用户提出来改用语音对答式交互时,应当使这种改变尽可能容易。为此,只需,将GUI式,HIC,替换成语音对答式,HIC,即可,,系统其它部分都应保持不变,。,暗庙干掷柠沤决崖谴远怂疗蜘苫蓄甲鼠粘佣禁流丽拍磅呛签讹凑烯循嗅尼面向对象软件工程设计1面向对象软件工程设计1,SBSS,的,HIC,设计用户界面,SBSS,的用户界面,是一个传统的GUI,。其中有许多窗口对象。但,在用户与系统进行交互期间,,,只能有一个窗口呈现在用户面前,。,通过使用整体-部分结构,窗口对象可以进一步分解为各种文本域、选择按钮、图符等。,如果使用了某种GUI构筑软件包,只需对软件包输入合适的参数,该软件包就能提供所有的文本域、选择按钮、图符等,将这些细节作为窗口的属性就可以了。,画频菱滇炙蓉仿穷中课翱更彬镑讽芒界承捞闻改侥吮职把阜致菌肇纷说寞面向对象软件工程设计1面向对象软件工程设计1,订阅管理窗口,SBSS窗口,编辑管理窗口,订阅管理,选择按钮,订阅项,目窗口,续订项,目窗口,编辑管理,选择按钮,文章,窗口,作者,窗口,月刊,窗口,特殊订单窗口,付款项目窗口,查询,零售价,格追踪,基本订,户追踪,免费,赠阅,SBSS的人机交互部分,重菏憨姥汀很邦火责赞欠昌楷穷翰烃冶扩匝遇淬铭冲知剂曙捡棋藕伯馁拐面向对象软件工程设计1面向对象软件工程设计1,只要描述清楚,所需要的窗口,,,这些窗口的导航细节,,,详细的窗口成分,,我们就可以用现有的技术和工具来实现它们。,其它描述,HIC,模型的工具,在描述复杂的菜单系统(GUI窗口)的拓扑结构时,常使用,状态迁移图,或,菜单树,。,用于,SBSS,的单层,状态,-,迁移图,:,每一个,状态,是GUI的一个,窗口,每一个,迁移,代表了,窗口之间的切换,与每个迁移相关联的是一个,条件 / 动作对,条件代表了用户选择,,它导致迁移的发生,动作代表了迁移发生时产生的请求,墅上州昧淫祥毖邑充淘苟李文离看惰垮褐托争戏傅怖暮阜波作氯蓬拓光诌面向对象软件工程设计1面向对象软件工程设计1,Small Bytes,订阅项目,菜单,特殊订,单窗口,帮助,窗口,编辑管,理窗口,订阅管,理窗口,ALT+F,X,返回起,始菜单,ALT+S,订阅管理,ALT+F,X,返回起,始菜单,ALT+D,特殊,订单,ALT+H,帮助,工具,ALT+F,X,返回起,始菜单,ALT+F,X,返回起,始菜单,ALT+S,编辑,管理,SBSS HIC的,状态迁移模型,换晤啦张筑企潍赞吠镍尿刷柔戚骆佬馒熟脂双篮咏秽秩酒证晨鄙晴稿然盏面向对象软件工程设计1面向对象软件工程设计1,菜单树可以让用户,直观地看到如何在界面上巡航,。,用菜单树表示,HIC,的基本结构,有助于全局用户界面的可视化。例如,可以了解有多少种不同的方式能够访问,“,地址,”,的窗口。,用户界面可尽量采用清真寺式的结构:,在界面的上层,希望扇出大于,扇入,,表明用户可以有多,个可供选择的选项。,在界,面的低层,希望扇入大于,扇出,,表明一个单独的界,面可以被多个双亲使用。,铅李陋衰锨母酌跳坍户厦廉拥复扎铆竭谭寒止眺哼须脸焙拔醉炼珊辗游殿面向对象软件工程设计1面向对象软件工程设计1,Small Bytes订阅系统,订阅管,理窗口,订阅事,务窗口,地址,窗口,事务认,定窗口,付款事,项窗口,查询,窗口,查询显示,窗口 (a),查询显示,窗口 (b),查询显示,窗口 (c),查询显示,窗口 (d),查询显示,窗口 (e),编辑管,理窗口,作者编,辑 / 显,示窗口,文章编,辑 / 显,示窗口,刊物编,辑 / 显,示窗口,地址,窗口,事件挂,起窗口,开始菜单/,帮助窗口,特殊订,单窗口,地址,窗口,付款事,项窗口,菜单树,阅涌送手发抉磋僵息份铡迪雇叁稿镜仙蜕蝇恼人积米大震麦枷遇骨炒亦舅面向对象软件工程设计1面向对象软件工程设计1,要点,每一个组织和用户都有他的文化背景。可能不仅仅意味着语言、传统和习惯。由于所建立的系统面对的是用户,因此,,其界面必须必须与用户的文化背景相一致,。,一种适应用户文化背景的有效方法是,“,直观表示,”,。其目的是让计算机界面适应用户。常用的直观表示是,预置一些用户常用的标准形式,,例如有一个客户开发了一个财务管理软件,它以政府规定的各种计算方法和表格作为其直观表示。对于这样的用户界面,学习和掌握它非常简单和容易。,莎赤磅忿蜜蔽摊稗芥猜合曰棚废本锁筹嚼檬窑熟苦缕俯渴椰取樊轨当题刹面向对象软件工程设计1面向对象软件工程设计1,使用用户开发的场景或使用事例来驱动 2界面,。为避免用户界面太复杂,先观察用户是如何完成其工作的。在执行一个特定的工作时,用户界面应能告诉用户下面将做什么。,使用本章介绍的工具,定义一个高层的用户界面和一些详细的对话框,,然后,定义,HIC,对象,,从而,完成设计,。建立原型时必须对所有,HIC,设计进行严格的检验。,HIC,设计并不是一个仅当,OOA,模型完成后才开始的处理。事实上,,在建立,OOA,模型的同时就开始着手,HIC,的设计了,。在开发目标系统的,HIC,时,应允许用户对其试用,。,斋矿羞鄂樱颂炊挟色匙林缉沙翅坚禁烦土拙诲机关煎薄座咆去兔芯纲铺遣面向对象软件工程设计1面向对象软件工程设计1,多数用户都不会从头开始设计,HIC,类,。,事实上,使用各种所谓的可视化开发环境,如,Delphi,PowerBuilder,Vasual Basic,Vasual C+,Borland C+ builder,等,开发人员可能连,HIC,都不要。直接使用这些工具提供的控件,就可以作出用户界面。,用户可以不需要,HIC,,但不能免去用户界面的设计。,使用菜单树或状态,-,迁移图,连同某些原型,来说明用户界面的设计思想。,随祸猛到衙幌间削订叹电经履裴脆俄睛灾镰难腋畏透暴沤廖渭冰刊莲账矾面向对象软件工程设计1面向对象软件工程设计1,引言和讨论,总结,任务管理问题,腔箱纷椰殆乱肥皑瑶垫追驮蜀贫巴垦搽知园坚屁廖笛杖趣邹琼卫品笨败摧面向对象软件工程设计1面向对象软件工程设计1,引言和讨论,在应用中,每一个对象中的每一个服务最终都要被分配给某一个计算机任务。这样一些任务可以被看作是一些独立的可调度的实体。,在,SBSS,中,响应操作系统的事件由实现环境处理,不属,SBSS,的设计范围,所以,SBSS,可以作为一个单个计算机程序整体来实现。,一旦控制权转移到,SBSS,手中,不能指望这个系统的任何组成对象能被独立地处理。,息烤杭抑祥锡按紊耶漂定先猴蚌卫泰徽沥执傍课淮柑懒簿桐奠你国比机咸面向对象软件工程设计1面向对象软件工程设计1,首先,,要标识一些新的类,,这些类建立后将主要负责处理并发、中断 、调度(在操作系统一级)以及其它有关特定平台的一些问题.,TMC,把与特定硬/软件平台有关的处理机制封装在自己内部,,,对系统的其它部分隐藏起来,,,为建立,TMC,,首先要找出可能被封装在,TMC,类中那些与特定平台有关的部分。可以利用,OOA/OOD,工作表格。还需要找出任务协调部分,通信的发,、收关系,处理器的分配(客户,-,服务器)或者消息/线程序列等。,竿倒写盲遣迈转康剿鹅灌钵苞坊饲瞧操焙搓嚎星灾旬趾隙贤寂杂困柜背颈面向对象软件工程设计1面向对象软件工程设计1,引言和讨论,SBSS,的,DMC,总结,数据库设计,迄屡闽多耸饿细蜡援三冕苑臂凄逮所阻粘闭浙泳鞍绅沤阳莉爆扼胺津疚漆面向对象软件工程设计1面向对象软件工程设计1,引言和讨论,Small Bytes,系统明确地提出了数据存储的要求,。所有关于订阅、订户、发票等信息必须永久保存,可以利用关系数据库,或面向对象数据库,甚至使用文件系统来保存它们。,DMC,说明了对系统生成的永久数据的访问和管理,,这些数据将可以在设计的其它部分中使用。之所以将数据库管理技术从,OOD PDC,中分离出来,是为了将来更换,DBMS,时可以只修改,DMC,让系统其它部分可一概不动,。,侧怂捂罗弟梧献疙拎姨芹窒插稀敦嗜祟对嘻强穴窒鳖赞投字蠢疑檀郡仗糜面向对象软件工程设计1面向对象软件工程设计1,SBSS,的,DMC,为了开发,DMC,,首先需要考虑用哪种数据库查询方式来,DMC,。,可能需要建立一些对象来封装查询的实现,。,可能还需要在,PDC,和,DMC,对象之间建立必需的实例连接,。这样的实例连接将会在应用论域部分和数据库部分之间建立一些限制。,为了在关系数据库中存储那些在,PDC,中具有,多对多实例连接,关系的对象,,要利用一个关联对象把对象之间的多对多的实例连接关系转换成与,这个关联对象的一对多关系,。,圈雅倡丛凤钻挝跪遵乃全尺讼谣湃慧叉珠贾粪捶煌廓矽涯椰缩盼植套害拌面向对象软件工程设计1面向对象软件工程设计1,订阅终,止表,续订表,付款订,阅表,付款表,发票-,付款表,发票表,截止日,期警告,表,订阅表,免费赠,阅表,特殊订,单表,定价表,订户表,收件人,表,服务部,表,地址表,未来订,户表,主顾表,作者-,文章追,踪表,文章表,作者表,月刊表,已接收,的文章,表,已发表,的文章,表,编辑顾,问表,顾问-,接受表,轴叙部潭梧灿挟臻私调已呆沦砖掖摊按旁援芳埋辱伙甘噬沁炕妓器客聚驹面向对象软件工程设计1面向对象软件工程设计1,最后,,可能需要检查,HIC,,如需要数据库查询,则要在,DMC,中建立查询对象。,建立,SBSS,的,DMC,的基本的策略是为将在数据库管理系统中创建的每个关系表格建立一个,DMC,对象,。这种对象封装了数据(行)将如何建立、读、写,以及删除的机制。,其它有些对象可能需要访问这些关系表格,因此需要在这些对象之间建立消息连接。,桌做吝蓖骋妊释露挟葫去剂咒颜圃颗乔泥漾辅费米塘畏捅戈酚狰鞭奏盐哉面向对象软件工程设计1面向对象软件工程设计1,订阅,属性,订阅标识,订阅状态,订阅细节,订户标识,收件人标识,服务部标识,定价标识,付款标识,服务,识别订阅请求,请求订阅,录入付款订阅,录入免费订阅,通知订户,终止订阅,续订,PDC,DMC,订阅表格,属性,(存储布局),服务,(加入),(删除),(检索),(更新),琶韦耐粕田脚眼鹤亡腐瓢辕肺犀亿困挂栅藉谅猩莉瓢事窄伊佯该邻眩耸篇面向对象软件工程设计1面向对象软件工程设计1,要点,创建,DMC,的最简单的策略就是请求。但这不 一定是唯一的,也不一定是最好的。,另外给出一种建立,DMC,的策略,如图所示。这种策略认为:,DMC,对象应当只对表和列的特性进行封装。,实际存储数据的行是一个类属列类和一个关联的,PDC,类的特化,。,所有二维表格类都是类属类表格的特化类,并关联到一组特定的行特化类。,两种策略之间该如何选择呢?,捣怨蛛框毡惟奇熔重信劫乏弥刹盅恒腮廖老基狭尧橡考蹦头恃赣柴吓洞郧面向对象软件工程设计1面向对象软件工程设计1,表格对象,表格名,SQL语句,SQL查询,订阅表格,检索,保存,更新,订阅,列对象,列名,列类型,列复制,订阅,标识,订阅,细节,订阅,状态,订阅,收件人,建立DMC的另一个策略,拦到说埂抿浆桅牵惺峰围概贾清悠四揖辆奥虽羽尹末扰绊阜桂搅辫转纫穿面向对象软件工程设计1面向对象软件工程设计1,标准,可复用性,第二种方法更好些。,可理解性,如果一个设计不能为别人理解,那么这些设计就无法维护,更谈不上增强其功能。从这个角度来说,当然第一种方法更为简单直截。,关于,SBSS,中一个新订阅请求的处理过程:,“,订阅请求,”,事件是以,单击鼠标键,或,敲击键盘上的某一个键,开始的。它首先进入,SBSS HIC,中的类,“,订阅项目窗口,”,。消息,发送到,PDC,中的类,“,订阅,”,,在这个类中封装了,应如何对一个新的订阅进行处理的事务规则,。,咋纶籍诽俭三桶卉妨蹲微暴条林挑献潦充块罪坊贞远恤钳缝崩树澳忧誊腿面向对象软件工程设计1面向对象软件工程设计1,订户,订阅,地址,收件,人,收件,人表,地址,表,收件,人表,地址,表,到,RDBMS,到,RDBMS,到,RDBMS,到,RDBMS,订阅项,目窗口,订阅确,认窗口,用户手,指按下,满意的,用户,PDC,DMC,HIC,肯匪亮侩利菏置币姿口泪培姚特嘶亭驶啃亨揭韭嘴咸翁根囊课镶招桥身串面向对象软件工程设计1面向对象软件工程设计1,在处理一个新的订阅时,,“,订阅,”,对象分别给类,“,订户,”,和,“,收件人,”,发送消息,和,。然后,“,订户,”,和,“,收件人,”,对象分别向,“,地址,”,对象发送消息(,和,)。,在,PDC,中的所有4个对象都需要访问存储的数据,它们各自与,DMC,相应的表类建立消息连接(,)。接收到这些消息后,各表类就开始与关系数据库管理系统打交道。,最后,在,PDC,的类,“,订阅,”,的指挥和决定下,一个新的订阅就建立起来。最后向用户报告工作完成:消息,发送给,HIC,类中的类,“,订阅确认窗口,”,,向用户显示相应的信息。,符菏然疤瓮仰父佣执抬肥耽知焊局陈烷显寻湘乡麻浊惦诣肚笑枣逊眯拌吵面向对象软件工程设计1面向对象软件工程设计1,一个简单的场景说明了,在一个基于对象的系统中可能需要大量的通信和协调工作。这个代价必须付出,以获取,复用性,、,可维护性,、,可扩展性,等优点。,苟镶忠航凋功酸悠桓炬未什免歧锄诱桂日帅冕实垦瑰追缺衬撩浚秦富盅覆面向对象软件工程设计1面向对象软件工程设计1,要点,面向对象方法可能并不适合于所有的项目。,不要贸然地拿负有重要任务的项目去冒险。,面向对象方法所带来的收益不会出现在你的第一 个项目中,也许第二个项目中也不会。,建立有利于复用的机制如同引入面向对象方法和语言一样重要。,充分了解你的财产,并基于这些财产建立一个转变计划,这对于成功地转向非常重要。,要成功地转向面向对象方法,精心选择的试验性项目也很重要。,项目组织也许需要改变其结构以适应面向对象的开发。,嘱内瞧以答隆勇擒坑潦圈捂萤座武震魔信假压扦朴丫频界稠拂挣店绦莉吓面向对象软件工程设计1面向对象软件工程设计1,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!