




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
UML面向对象分析与设计UML把Booch,Rumbaugh和Jacobson等各自独立的OOA和OOD方法中最优秀的特色组合成一个统一的方法。UML的特点:统一标准面向对象可视化,表示能力强大独立于过程容易掌握使用UML的定义UML定义有两个主要组成部分:语义:用自然语言描述表示法:定义UML的可视化标准表示符号使用UML时,要从不同的角度观察系统,为此定义了概念“视图”。视图是对系统的模型在某方面的投影,注重于系统的某个方面。结构视图行为视图实现视图环境视图用例视图为最终用户做什么系统静态结构程序员提供什么软件组织与管理系统集成人员如何组织与控制系统系统工程师如何配置和运行系统系统拓扑、交付、安装、操作、通信分析员或测试员系统任务控制与管理(性能,可伸缩性,吞吐量)行为结构视图:描述系统的静态结构,可根据它确定重要的设计:类、包和子系统。实现视图:描述处于开发环境中的静态软件成分的组织(源程序、构件、数据文件、可执行程序等)。行为视图:描述系统在运行时的并发性,包括任务、线程、进程及其相互作用。软件体系结构的4+1视图模型环境视图:描述处于运行环境中的各种可执行程序是如何映射到底层平台或计算结点上的。用例视图:包括若干关键场景或用例。在初始和细化阶段用来帮助发现和设计体系结构。在构造阶段用来验证各种不同视图。在文档中用来表明其他视图是如何工作的。UML分析建模着重系统的用例模型和结构模型,设计建模着重行为模型,实现模型和环境模型上。体系结构中主要的元素包括:主要的类,如为业务实体建模的类。将行为赋予类的机制,如协同。模式与框架。层次与子系统。接口以及主要的进程控制或线程控制。UML的三个主要组成元素基本构造块组织构造块的规则运用于整个UML的公共机制UML的构成UML包括三种基本构造块:事物、关系和图。UML事物—结构事物
类名属性操作open()close()move()display()originsizeWindow类接口—描述一个类或构件的服务(操作)。协作—描述合作完成某个特定任务的一组类及其关联的集合,用于对使用情形的实现建模。用例—表示系统想要实现的行为,不关心这些行为是怎样实现的。ISpellingPlaceOrderOrderManagement用例协作实现主动类—它至少拥有一个进程或线程,故能够启动控制活动。
suspend()flush()EventManager构件——系系统统中物物理的、可可替代代的部部件。。节点—系统在在运行行时存在在的物物理元元素。。Orderform.java数据库服务器应用服务器课程管理成绩管理UML事事物——行为为事物物交互—由在特特定环环境中中共同同完成成一定定任务务的一一组对对象之之间交交换的的消息息组成成。p:Person:CompanyAssign(development)消息有名对象匿名对象状态机机—描述了了一个个对象象或一一个交交互在在生存存周期期内响响应事事件所所经历历的状状态序序列。。initializingcommandidleKeypressFinishedExitUML事事物——分组组事物物包用户接口包业务对象包数据库包应用包UML事事物——注释释事物物注释—依附于于一个个元素素或一一组元元素之之上,,对其其进行行约束束或解解释的的简单单符号号。CashAccountpresentValue()Seepolicy8-5-96.docfordetailsaboutthesealgorithms.UML关关系依赖—两个事事物之之间的的语义义关系系,其其中一一个事事物发发生变变化会会影响响另一一个事事物的的语义义。CourseScheduleadd(c:Course)remove(c:Course)CourseIterator<<friend>>关联—一种描描述一一组对对象之之间连连接的的结构构关系系。聚合是是一种种特殊殊类型型的关关联,,描述述了整整体和和部分分间的的结构构关系系。泛化—一种一一般化化—特特殊化化的关关系。。employeremployee0..1*EventConsoleWindowDialogBoxControl依赖泛化关联
Windowopen()close()move()display()handleEvent()实现—类之间间的语语义关关系,,其中中的一一个类类指定定了由由另一一个类类保证证执行行的契契约。。两种情情况出出现实实现关关系::在接口口和实实现它它们的的类或或构件件之间间;用例和和它们们的协协作之之间。。PlaceOrderOrderManagement用例协作实现类属性操作对象属性操作接口用例构件节点状态机包注释依赖关联泛化实现聚合复合模型中中主要要的图图形元元素UML模模型的的图形形UseCaseDiagramsUseCaseDiagrams用例图ScenarioDiagramsScenarioDiagrams协作图StateDiagramsStateDiagrams构件图ComponentDiagramsComponentDiagrams部署图StateDiagramsStateDiagrams对象图ScenarioDiagramsScenarioDiagrams状态图UseCaseDiagramsUseCaseDiagrams顺序图StateDiagramsStateDiagrams类图活动图模型1.用用例例图用例图图展现现了一一组用用例、、参与与者以以及它它们间间的关关系。。可以用用用例例图描描述系系统的的静态态使用用情况况,它它定义义了系系统的的功能能需求求,但但这是是从系系统的的外部部观看看系统统功能能,并并不描描述系系统内内部对对功能能的具具体实实现。。在对系系统行行为组组织和和建模模方面面,用用例图图的是是相当当重要要的。。查询商品价格顾客库存系统售货员总账系统查询商品信息预售商品网上销售商品打折销售商品出售商品查询商品成分商品查询售货管理说明顾客持所欲购买的商品至收银台结帐,店员刷商品条码后,根据数量及单价计算总金额商品售出后,商品编码、单价、总金额存入电脑,数据记载到“库存系统”和“总帐系统”中(含预售、网络购物、打折销售)。。事件流基本事件流刷条码?结算金额?付款?扣库存?记入日记账?打印发票异常事件流第一异常事件流顾客结帐后更换商品第二异常事件流顾客将已售商品退回特殊需求第一个特殊需求允许退货,并将退回商品加回库存第二个特殊需求记录顾客的性别,年龄,供后续统计分析用用例规规格说说明::销售售商品品2.类类图图类图展展示了了一组组类、、接口口和协协作及及它们们间的的关系系。类图没没有时时间概概念,,是概概念数数据模模型((如E-R图图)的的一种种延伸伸。用类图图说明明系统统的静静态结结构视视图,,包含含主动动类的的类图图—专专注于于系统统的静静态处处理视视图。。系统可可有多多个类类图,,单个个类图图仅表表达了了系统统的一一个方方面,,要在在高层层给出出类的的主要要职责责,在在低层层给出出类的的属性性和操操作。。类图是从从系统构构成角度度来描述述系统。。类的表示示:类的名称属性属性:数据类型属性:数据类型=初值操作操作(参数表):结果类型限定关联联类1类2限定词关联名称角色1角色2聚合、引引用和重重复度0..*0..10..*整体类名部分类名2部分类名10..1聚合简单引用复合聚合双方捆绑关联名类1类2关联类名属性操作角色1角色2关联类泛化关系系超类子类1子类2操作抽象类操作雇员雇员标识:char姓名:char职务:char工资:long项目项目标识项目名称参与开始日期结束日期任务任务标识任务名称任务费用技能技能标识技能名称团队团队标识承担工作部门部门标识部门名称客户客户标识客户名称客户地址客户电话客户代表0..*0..*10..*1..*10..*1..*1..*110..*11..*0..*1..*3.对对象图对象图展展示了一一组对象象及它们们间的关关系。用对象图图说明类类图中类类的对象象实例的的数据结结构和静静态快照照,即在在某一时时刻,一一组对象象的状态态及其关关系。对象图表表达了系系统的静静态设计计视图或或静态过过程视图图,除了了现实和和原型的的方面因因素外,,它与类类图作用用是相同同的。c:公司名称=“研发”d2:部门d1:部门名称=“销售”d3:部门名称=“打印机销售”
:联系信息地址=“清华产业楼411”p:人员姓名=“郑人杰”雇员标识=6037职务=“销售副总”经理连接link属性值对象匿名对象4.包包图包图表明明包及其其之间的的依赖类类图。包是对模模型中涉涉及的元元素分组组所得的的结果,,是具有有特定语语义的一一个子集集,必须须保证低低耦合、、高内聚聚。广义地讲讲,包可可以包含含类、接接口、构构件、节节点、协协作、用用例等,,还可以以内嵌其其他子包包。包之间的的访问权权限通过过输出((输出品品)和导导入(进进口货))设置,,虚箭头头从从源包到到目标包包。5.构构件图构件图展展现了一一组构件件之间的的组织和和依赖,,用于对对源代码码、可执执行的发发布、物物理数据据库等的的系统建建模。构件图表表示系统统的静态态实现视视图。CourseCourseOfferingStudentProfessorCourse.dllPeople.dll课程用户Register.exeBilling.exe课表系统6.部部署图部署图展展现了对对运行时时处理节节点以及及其中构构件的配配置每一一节点代代表一个个计算单单元。。。它描述系系统硬件件的物理理拓扑结结构(包括括网络布布局和构构件在网网络上的的位置),以以及在此此结构上上执行的的软件((即运行行时软构构件在节节点中的的分布情情况)。。用部署图图说明系系统结构构的静态态环境视视图,即即说明分分布、交交付和安安装的物物理系统统。注册服务器数据库宿舍客户机图书馆客户机主排课客户机8.活活动图活动图是是一种特特殊的状状态图,,描述要要做的活活动、执执行这些些活动的的顺序以以及工作作流。它它对于系系统的功功能建模模特别重重要,强强调对象象间的控控制流程程。高层活动动图用于于表示任任务。即即用于分分析用例例,理解解涉及多多个用例例的工作作流、多多线程及及并行,,显示相相互联系系的行为为整体,,还可用用于业务务过程建建模,对对系统的的功能建建模。低低层活动动图用于于表示类类的方法法。按订单供货接订单开发票结清订单快速交付正常交付收款起点分叉活动分支合并汇合结束[紧急订单][非紧急订单]变迁9.状状态图状态图展展示了一一个特定定对象的的所有可可能状态态以及由由于各种种事件的的发生而而引起的的状态间间的转移移。一个状态态图描述述了一个个状态机机,用状状态图说说明系统统的动态态视图。。状态图对对于接口口、类或或协作的的行为建建模尤为为重要,,可用它它描述用用例实例例的生存存周期。。Project对象的的状态图图注册预售开发系统分析系统设计程序编码软件测试系统部署单元测试与调试维护新projectproject完开始结束10.交交互图图交互图展展现了按按一定的的目的进进行一种种交互,,它由在在一个上上下文中中的一组组对象及及它们之之间交互互的信息息组成。。交互图可可用于描描述一个个用例的的行为。。顺序图图和协作作图都是是交互图图,它们们可以相相互转换换。如果希望望查看单单个对象象跨用例例的行为为,要要使用状状态图。。如果希望望查看跨跨用例跨跨线程的的行为,,要使用用活动图图。10-1顺序序图顺序图展展现了一一组对象象和由这这组对象象收发的的消息,,用于按按时间顺顺序对控控制流建建模。对象表述述为虚垂垂线顶端端的矩形形小框。。垂线是对对象的生生命线,,说明对对象的生生命。生命线之之间的箭箭头表示示消息。。消息出出现的次次序自上上而下。。消息箭头头可以回回到同一一条生命命线,指指明自调调用,即即对象发发给自己己的消息息。移动电话话系统的的用例图图移动用户移动网络与对方通话下载图符下载铃声管理电话本移动电话话系统的的顺序图图:移动用户:移动按键:移动显示:移动手机:移动基站按数字键显示按键号码按发送键连接基站建立连接连接成功显示连接成功10-2协作作图协作图展展现了一一组对象象,这组组对象之之间的连连接以及及这组对对象收发发的消息息。它强调收收发消息息的对象象结构组组织,按按组织结结构对控控制流建建模。协作图中中的协作作不是参参与者与与系统之之间的交交互,而而是系统统内部某某一个用用例中各各个对象象之间信信息传递递的方式式。消息上所所附编号号指明执执行顺序序。移动电话话系统的的协作图图:移动用户1:按数字键3:按发送键
:移动按键2:显示按键号码
:移动显示
:移动手机
:移动基站4:连接基站5:建立连接6:连接成功7:显示连接成功*RUP((RationalUnifiedProcess统一开发发过程)的分析析/设计计工作流流分析和设设计工作作流的目目的是研研究欲采采用的实实现环境境和系统统构件的的效用,,定义软件件的组织织结构,,把需求求获取结结果转化化为实现现规格。。为实现这这种转化化,必须须理解需需求,采采用最佳佳实现策策略将其其翻译为为系统设设计。为此,首首先是建建立健壮壮的软件件体系结结构,设设计出易易于理解解、开发发和演进进的系统统,然后后调整这这个设计计,使之之适应实实现环境境。最后结果果是产生生一个对对象模型型,即设设计模型型。定义初始体系结构[早期细化迭代]分析行为设计实时构件设计数据库设计构件细化体系结构[细化迭代][可选][实时][非实时]定义一个个初始的的体系结结构建立一个个初始的的系统体体系结构构草图。。定义一组初始始的重要要体系结结构元素素。一组初始分分析机制。。系统的初始始分层和组组织。在当前迭代代过程中处处理的用例例实现。从重要的构构件用例中中确定类。。确定类之间间的交互作作用,修改改用例实现现。细化体系结结构建立从分析析到设计的的自然转移移,并标识识:从分析元素素中确定适适当的设计计元素。从相关分析析机制中确确定适当的的设计机制制。保持体系结结构的一致致性和完整整性,确保保:将当前迭代代中标识的的新的设计计元素与已已有的设计计元素集成成在一起。。在设计中尽尽早地、最最大限度地地复用可获获得的构件件和设计元元素。描述系统运运行的组织织和实施体体系结构。。组织实现模模型以实现现设计到实实现无缝转转移。分析行为将用例提供供的行为描描述转变为为一系列可可作为设计计基础的元元素。在分析行为为时,主要要注重于如如何能够提提供要求的的功能,较较少关心系系统的非功功能需求。。设计构件找出设计元元素如何实实现要求行行为的细节节,细化设设计元素的的定义。根据新的设设计元素来来细化和更更新用例实实现。当设计演进进后,进行行设计评审审。设计实时构构件在实时的或或交互式的的上下文中中,使用封封装制品作作为主要的的设计元素素。设计实时构构件与设计计构件有相相似的活动动,但增加加了封装设设计活动,,定义系统统的并发控控制线程和和它们之间间的协议。。设计数据库库在设计中标标识永久类类并设计适适当的数据据库结构来来存储永久久类。定义一种存存储和检索索永久数据据的机制和和策略,以以满足系统统的性能需需求。分析和设计计工作流中中的关键制制品:设计模型由类的协作作构成。这这些类的协协作可能集集成为包或或子系统。。包是对类类的逻辑分分组,是为为了减少系系统的复杂杂性。分析模型是设计的抽抽象和泛化化,它提供供系统的功功能描述,,忽略了系系统如何工工作的细节节。软件体系结结构文档涵盖系统不不同的体系系结构视图图。实现工作流流实现工作流流的目的是是建立代码的的分层结构构;从构件(源源文件、二二进制文件件、可执行行文件或其其他文件))角度来实实现类和对对象;对开发出来来的构件进进行单元测测试;将个人和开开发团队开开发的结果果集成到可可执行系统统中。单元测测试仅仅对单单个构构件进进行。。集成成测试试和系系统测测试在在测试试工作作流中中执行行。构造实现模型集成每个子系统集成系统制定集成计划实现构件[可用于单元测试的构件][可用于集成的实现子系统][针对这个迭代过程的更多的系统构造][针对这个迭代过程的更多的子系统构造][针对这个迭代过程的更多的要实现的构件]实现模模型是是在细细化阶阶段通通过不不断迭迭代,,不断断使用用更大大规模模的集集成构构造建建立起起来的的。对于每每一次次迭代代,要要求做做到::确定要要实现现哪一一个子子系统统,以以及在在当前前迭代代中子子系统统的集集成顺顺序。。对于每每一个个子系系统,,确定定实现现每个个类的的顺序序,以以及子子系统统集成成的计计划。。实现设设计模模型中中的类类和对对象,,包括括编写写源代代码、、改写写已有有构件件、编编译、、链接接和执执行,,及时时反馈馈设计计中可可能的的缺陷陷。修改有有缺陷陷的源源代码码,进进行单单元测测试以以验证证这些些变更更。最最后进进行代代码评评审。。指定专专人负负责将将所有有新的的和已已变更更的构构件集集成为为一个个新的的实现现子系系统版版本。。在团团队环环境,,集成成将产产生一一系列列构造造,对对每个个构造造由集集成测测试员员进行行集成成测试试。将发布布的子子系统统集成成到系系统。。最终终的构构造即即为系系统。。由系系统测测试员员进行行系统统测试试。实现工工作流流的关关键制制品有有:实现子子系统统构件和和其他他实现现子系系统的的集成成。它它是将将实现现模型型细分分为更更小的的部分分,并并使其其构造造化。。构件可以是是一块块程序序代码码,或或是包包含信信息的的文件件。构构件可可以由由其他他构件件聚合合而成成。集成构构造计计划定义构构件和和子系系统的的实现现顺序序,详详细描描述系系统集集成时时要建建立的的构造造。实现与与设计计的关关系紧紧密。。在设设计元元素和和实现现元素素之间间有非非常明明显的的跟踪踪链接接。创建良良好设设计的的原则则设计原原则1:分治软件系系统分分解为为子系系统分布式式系统统可以以分解解为客客户机机和服服务器器;系统可可以分分解为为一系系列子子系统统;子系统统可以以分解解为一一个或或多个个包;;包可以以分解解为类类;类可以以分解解为方方法。。设计原原则2:尽可能能增加加内聚聚不同内内聚类类型::优先先级从从高到到低排排序功能能内内聚聚:模模块块只只执执行行单单一一计计算算并并返返回回结结果果,,没没有有副副作作用用。。如如函函数数过过程程。。层内内聚聚:相相关关服服务务放放在在一一起起,,并并有有严严格格的的层层次次结结构构,,高高层层服服务务可可访访问问低低层层服服务务,,反反之之不不可可。。如如分分层层结结构构。。通信信内内聚聚:访访问问或或操操作作同同一一数数据据的的过过程程放放在在一一个个类类中中,,这这些些过过程程可可以以互互相相通通信信。。如如某某个个类类设设计计。。顺序序内内聚聚:存存在在一一系系列列过过程程,,其其中中一一个个过过程程向向另另一一个个过过程程提提供供输输入入,,这这些些过过程程放放在在一一起起,,形形成成顺顺序序内内聚聚。。如如消消息息序序列列。。过程程内内聚聚:几几个个一一次次调调用用的的过过程程放放在在一一起起,,但但其其中中一一个个过过程程的的输输出出不不一一定定是是另另一一个个过过程程的的输输入入,,形形成成过过程程内内聚聚。。如如调调用用结结构构。。时间间内内聚聚:程序执执行过程程中同一一阶段内内完成的的操作放放在一起起,达到到时间内内聚。实用程序内内聚:逻辑上不不能纳入其其他内聚类类型的相关关实用程序序放在一起起,形成实实用程序内内聚。如可可复用的过过程或类。。设计原则3:尽可能降低低耦合模块间存在在相互依赖赖关系即为为耦合。不不同耦合类类型从高向向低排列有有:内容耦合:一个构件件在不被察察觉的情况况下修改另另一个构件件内部的数数据,应始始终避免。。公共耦合:一组构件件使用了全全局数据,,就产生公公共耦合。。应通过封封装降低公公共耦合。。控制耦合:一个过程程通过标志志、开关或或命令显式式地控制另另一个过程程的动作,,就产生控控制耦合。。降低的方方法是采用用多态操作作。标记耦合:在一个操操作的参数数表中将类类作为参数数,就产生生标记耦合合。降低标标记耦合的的方法可以以传递简单单变量或使使用接口做做参数。数据耦合:在一个操操作的参数数表中用简简单变量或或简单的类类(如string)作为参参数,就产产生数据耦耦合。应通通过减少参参数个数降降低耦合。。例程调用耦耦合:一个例程程(或类操操作)调用用另一个例例程,就产产生例程调调用耦合。。如果出现现例程调用用序列,降降低的方法法是编写一一个例程将将这个调用用序列封装装起来。类型使用耦耦合:类将实例例变量或本本地变量声声明为另一一个类时,,就产生类类型(嵌套套)使用耦耦合。降低低该耦合的的方法是将将变量的类类型声明为为包含所需需操作的最最通用的类类或接口。。包含/引入入耦合:当一个构构件引入((import)一一个包时就就产生引入入耦合,当当一个构件件包含(include)另另一个构件件时,就产产生包含耦耦合。外部耦合:模块对外外部系统,,如操作系系统、共享享库或硬件件有依赖关关系时就产产生外部耦耦合。可通通过信息隐隐蔽减少这这种依赖关关系。设计原则4:尽可能提高高抽象层次次设计应隐藏藏或推迟考考虑细节以以降低复杂杂性。类是包含过过程抽象的的数据抽象象。父类和接口口可进一步步提高抽象象层次。类中公有操操作越少,,抽象程度度越高。类中所有变变量都是私私有,抽象象程度达到到最高。抽象可确保保在设计时时不必关心心不必要的的细节,能能把握问题题的本质并并做出重要要的决策。。设计计原原则则5::尽可可能能提提高高可可复复用用性性可以以在在算算法法、、类类、、过过程程、、框框架架和和完完整整应应用用程程序序的的级级别别上上创创建建可可复复用用性性。。复用用构构件件的的机机制制包包括括过程程调调用用和继承承父父类类。设计计原原则则6::尽可可能能复复用用已已有有的的设设计计和和代代码码复用用已已有有的的设设计计是是对对可可复复用用性性设设计计的的补补充充。。通通过过复复用用可可从从以以往往对对可可复复用用构构件件的的投投资资中中获获益益。。设计计原原则则7::灵活活性性设设计计积极极预预测测将将来来可可能能在在实实现现和和功功能能上上的的变变化化,,并并为为此此采采取取相相应应措措施施。。在设设计计中中引引入入灵灵活活性性的的方方法法有有::降低低耦耦合合并并提提高高内内聚聚((易易于于提提高高替替换换能能力力))建立立抽抽象象((创创建建有有多多态态操操作作的的接接口口和和父父类类))不要将代码写写死(消除代代码中的常数数)抛出异常(由由操作的调用用者处理异常常)使用并创建可可复用的代码码设计原则8::预计过期积极预测将来来可能在技术术和运行环境境上的变化,,并为此采取取相应措施。。在设计中应遵遵循的预计过过期的规则有有:避免使用早期期发布的技术术避免使用针对对特定环境的的软件库避免使用软件件库中未编档档的或很少使使用的功能避免使用小公公司或可能不不提供长期支支持的公司提提供的可复用用构件或特殊殊硬件使用众多厂商商支持的标准准语言和技术术设计原则9::可移植性设计计可移植性设计计的主要目标标是让软件在在尽可能多的的平台上运行行。实现可移移植性的规则则有:避免使用特定定环境的专有有功能使用不依赖特特定平台的程程序设计语言言小心使用可能能依赖某一平平台的类库了解其他语言言可能依赖特特殊硬件结构构的功能和文文本文件的差差异设计原则10:可测试性设计计设计时采取措措施使得测试试易于进行。。可测试性设计计的最重要的的方法是保证证代码的所有有功能都能脱脱离图形用户户界面执行设计原则11:防御性设计为提高可靠性性,应确保不不引入任何缺缺陷,能够处处理其他代码码不适当使用用构件引起的的问题。按契约设计是是防御性设计计技术,其核核心思想:被调用操作为为正常执行必必须满足的前置条件(precondition):调用操作在在调用一个操操作时有责任任确保该操作作的前置条件件成立。被调用操作正正常执行所得得到的结果即即为后置条件(postcongdition):要求被调用用操作在返回回前有责任保保证这些后置置条件成立。。被调用操作在在执行时确保保不会被修改改的不变量(invariant)。前置条件、后后置条件和不不变式都是布布尔表达式,,其计算结果果为假,表示示有错误发生生。可以使用断言言机制。在重要构件的的边界(如层层)应始终保保留严格的断断言检测。设计模式设计模式是面面向对象软件件设计经验的的总结。设计模式系统统地命名、解解释和评价了了面向对象系系统中的一个个重要的和重重复出现的设设计。设计模式使人人们可以简单单方便地复用用成功的设计计和体系结构构。设计模式描述述了在特定场场景下使用的的解决一般设设计问题的类类和相互通信信的对象。设计模式的四四个基本要素素模式名用于描述模式式的名字,说说明模式的问问题、解决方方案和效果。。问题说明在何种场场合使用模式式。要描述使使用模式的先先决条件和特特定设计问题题。解决方案描述设计的成成分、它们之之间的相互关关系、各自的的职责和合作作方式。效果描述模式使使用的效果果,包括对对时间和空空间的衡量量,以及对对系统灵活活性、可扩扩充性、可可移植性的的影响。设计模式的的特性灵活性设计模式应应是精巧的的解决方法法。一般化设计模式不不依赖于某某一种特定定的系统类类型、程序序设计语言言或应用领领域。已验证设计模式已已在某些面面向对象系系统中实践践并已通过过测试。简单性设计模式通通常较小,,只有几个个类。可复用可在设计层层次(不是是编码层次次)应用于于所有的系系统。面向对象设计模式以以面向对象象的形式出出现。设计模式的的类型依据设计模模式工作目目的不同,,模式可分分为创建型模式式(Creationalpattern)结构型模式式(Structuralpattern)行为型模式式(Behavioralpattern)创建型模式式与对象的创创建有关;;结构型模式式处理类和对对象的组合合,将一组组对象组合合成一个大大的结构,,例如复杂杂的用户界界面;行为型模式式描述类或对对象的交互互和职责分分配,定义义对象间的的通信和复复杂程序中中的流控。。1、创建型型模式创建型模式式描述怎样样创建一个个对象。它它隐藏对象象创建的具具体细节,,使用程序序可不依赖赖具体的对对象。因此此当增加一一个新对象象时几乎不不需要修改改代码。创建型类模式将对象的部分分创建工作延延迟到子类,,创建型对象模式将它延迟到另另一对象中。。这时,重点从从定义固定的的行为集合转转向定义一个个较小的基本本行为集合,,由这些行为为可以组成许许多更复杂的的行为集合。。模式式的的特特点点封装装了了系系统统中中使使用用的的类类的的具具体体信信息息;;隐藏藏了了这这些些类类的的实实例例如如何何创创建建、、如如何何放放在在一一起起的的((机机制制))。。系统统关关于于这这些些对对象象所所知知道道的的只只有有由由抽抽象象类类定定义义的的接接口口。。创建建型型类类模模式式有有FactoryMethod(工工厂厂方方法法)。。创建建型型对对象象模模式式包包括括AbstractFactory(抽抽象象工工厂厂)、、Builder(生生成成器器)、、Prototype(原原型型)、、Singleton(单单件件)四四种种模模式式。。2、、结结构构型型模模式式结构构型型模模式式处处理理类类或或对对象象的的组组合合,,即即描描述述类类和和对对象象之之间间怎怎样样组组织织起起来来形形成成大大的的结结构构,,从从而而实实现现新新的的功功能能。。结构型型类模式式采用继继承机机制来来组合合类,,如Adapter(适配配器)模式式;结构型型对象模模式则描述述了对对象的的组装装方式式,如如Adapter(适适配器器)、、Bridge(桥接接)、、Composite(复复合)、Decorator(装饰饰)、、Facade(外观观)、、Flyweight(享享元)、Proxy(代理理)等等七七种模模式。。3、行行为型型模式式行为模模式涉涉及算算法和和对象象之间间职责责的分分配。。行为为模式式不仅仅描述述对象象或类类的模模式,,还描描述它它们之之间的的通信信。行为模式式刻划了了在运行行时难以以跟踪的的复杂的的控制流流,但这这类模式式把人们们的注意意力从控控制流转转移到对对象间的的相互联联系。类行为模模式使用用继承机机制在类类间分派派行为,如TemplateMethod(模模板方法法)和Interpreter(解释器器)模模式。对象行为为模式使使用对象象复合而而不是继继承,描描述对象象如何协协同完成成预定任任务,如ChainofResponsibility(职责责链)、、Command(命令)、Iterator(遍遍历器)、Mediator(中中介者)、Memento(备忘忘录)、、Observer(观察察者)、、State(状态态)、Strategy(策略)、Visitor(访问问者)等等九种种模式。。面向对象象测试面向对象象系统的的测试与与传统的的基于功功能的系系统的测测试之间间存在很很大差别别:对象作为为一个单单独的构构件一般般比一个个功能模模块大。。由对象到到子系统统的集成成通常是是松散耦耦合的,,没有一一个明显显的“顶顶层”。。如果对象象被复用用,测试试者无权权进入构构件内部部来分析析其代码码。面向对象象系统的的测试可可分为4个层次次:测试与对对象相关关联的单单个操作作它们们是是一一些些函函数数或或程程序序,,传传统统的的白白盒盒测测试试和和黑黑盒盒测测试试方方法法都都可可以以使使用用。。测试试单单个个对对象象类类黑盒盒测测试试的的原原理理不不变变,,但但等等价价划划分分的的概概念念要要扩扩展展以以适适合合操操作作序序列列的的情情况况。。测试试对对象象簇簇((聚聚集集))严格格的的自自顶顶向向下下或或自自底底向向上上的的集集成成不不适适合合一一组组关关联联对对象象的的情情形形。。应应使使用用基基于于场场景景的的测测试试等等其其他他方方法法。。对象类测测试测试面向对对象系统根据系统需需求规格说说明进行检检验和有效效性验证的的过程可以以像对其他他范型的系系统一样进进行。在测试对象象时,完全全的覆盖测测试应当包包括:隔离对象中中所有操作,进行独立立测试。测试对象中中所有属性的设置和访访问。测试对象的的所有可能能的状态转换。所有可能能引起状态态改变的事事件都要模模拟到。对象类,作作为在语法法上独立的的构件,应应当允许用用在不同的的应用中。。每个类都都应是可靠靠的,并且且不需了解解任何实现现的细节就就能复用。。因此,对对象类应尽尽可能孤立立地进行测测试。设计操作的的测试用例例时需要注注意:首先定义测测试对象的的各操作的的测试用例例。对于一个单单独的操作作,可通过过该操作的的前置条件件选择测试试用例,产产生输出,,让测试者者能够判断断后置条件件是否能够够得到满足足。各个操作的的测试与传传统对函数数过程定义义的测试基基本相同。。然后再把测测试用例组组扩充,针针对被测操操作调用对对象类中其其他操作的的情况,设设计操作序序列的测试试用例组。。测试可以覆覆盖每个操操作的整个个输入域。。但这不够够,还必须须测试这些些操作的相相互作用,,才能认为为测试是充充分的。各个操作间间的相互作作用包括类内通信和类间通信。putReferencePoint(Point)moveTo(Point)ReferencePointarea()draw()erase()getReferencePoint(Point)DisplayableShape(Point)DisplayableShape类内消息类间消息DisplayableShape()在设计对象象类的规格格说明测试试时需要注注意:把对象类当当做一个黑黑盒,确认认类的实现现是否遵照照它的定义义。对于““Stack”的测测试应当确确保LIFO原原则得以实实施。对于多数的的对象类,,主要检验验在类声明明的public域中的的那些操作作。对于子类,,要检查继继承父类的的public域域和protected域域的那些操操作。检查所有public域,protected域及private域中中的操作以以完全检查查对象中定定义的操作作。等价划分的的思想也可可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学生课件模板WPS
- 刨插工安全技术操作规程
- 普通机床电气装调维修应急处置分析及对策
- 客车司机技能测试题库及答案
- 购销人员理论学习手册练习试题及答案
- 燃料集控值班员上岗证考试题库及答案
- 专用车辆驾驶员安全技术操作规程
- 模铸工理论学习手册练习试题及答案
- 烷基化装置操作工职业技能模拟试卷含答案
- 小学生读故事课件
- 2025杭州辅警考试真题
- 糖尿病视网膜病变临床诊疗指南
- 护理质量指标课件
- 2025至2030中国碳化硅(SiC)功率器件行业项目调研及市场前景预测评估报告
- 市场监管培训
- 职业院校生涯教育与就业指导体系构建研究
- 产品跟踪监测管理制度
- 2025年云南省高考化学试卷真题(含答案解析)
- 角膜上皮修复策略-洞察及研究
- 初中英语1600词汇汇-总(背诵版+例句)
- 中国氢燃料电池用铂催化剂项目商业计划书
评论
0/150
提交评论