2012面向对象整理最终磊磊版_第1页
2012面向对象整理最终磊磊版_第2页
2012面向对象整理最终磊磊版_第3页
2012面向对象整理最终磊磊版_第4页
2012面向对象整理最终磊磊版_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、1理解面向对象的思想(封装性、继承性、多态性),作出一个简述。封装是面向对象方法的一个重要原则,封装有两个含义:结合性即将属性和方法结合;信息隐 蔽性利用接口机制隐蔽内部细节。继承性是指子类可以自动拥有父类的全部属性与操作的机制。继承可分为单重继承和多重继承 两类。继承简化了对现实世界的描述定义子类时不必定义那些在父类中已经定义过的属性和操作使 软件的复用性提高。多态性是指同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,同一接口 接收不同的参数可以实现不同的功能。2什么是分解、耦合度和内聚度?分解:将系统分为更小成分耦合度是从模块外部考察模块的独立性程度。它用来衡量多个模块间的

2、相互联系。模块之间联 系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块接口的复杂性、调 用的方式及传递的消息。内聚度(Cohesion)是模块内部各成份(语句或语句段)之间的联系。显然,模块内部各成份 联系越紧,即其内聚度越大,模块独立性就越强,系统越易理解和维护。具有良好内聚度的模块应 能较好地满足信息局部化的原则,功能完整单一。3什么是动态绑定?动态绑定,是指在程序运行时才将消息所请求的操作与实现该操作的方法进行连接。4什么是用例图,用例图有哪些部分组成。用例是从用户的观点对系统行为的一个描述,用例图显示谁将是相关的用户、用户希望系统提供什么 服务以及用户需要为系统提

3、供的服务。用例图包含6个元素:参与者(Actor)、用例(Use Case)、关联关系(Association) 包含关系(Include)、扩展关系(Extend)、泛化关系(Generalization)5用例图中参与者之间的关系有哪些?用例之间的关系有哪些?参与者之间的关系:泛化关系用例之间的关系:关联关系、包含关系、扩展关系、泛化关系6试描述用例图在UML中的地位和作用。地位:用例图显示了用例和活动者之间、用例之间、以及活动者之间的关系,这种关系描述了模型元 素之间的语义联系。其源于客户需求分析,又称用例分析,是整个系统开发中的非常关键的过程。 作用:用例图是使用统一建模语言设计新系统

4、的起点,在初始阶段完成。用例图提供了系统的一个概览,为系统提供给用户的功能进行说明。从形式上讲,用例记录用户使用系统时从头到尾的一系列事件。是用户和开发者一起深入剖析系统功能的起点。在开发项目的初期,用例图可以描述现实世界中的活动和动机。同时可以在项目后期改进用例 图以反映用户界面和设计细节。7 |掌握用例模型的获取方桂。参与者获取方法谁使用系统的主要功能谁需要系统支持他们的主要工作谁来维护、管理系统使其能正常工作系统需要控制哪些硬件系统需要与哪些系统交互对系统产生的结果感兴趣的是哪些人或哪些事物用例获取方法:识别用例最好的方法就是从分析系统的参与者开始,考虑每个参与者是如何使用 系统的。参与

5、者要求系统提供哪些功能参与者需要读、产生、删除、修改或存储系统中的信息有哪些类型必须提醒参与者的系统事件有哪些参与者必须提醒系统事件有哪些8用例之间的扩展、泛化、包含三种关系有什么异同,请分别举例说明。扩展关系扩展用例被定义为基础用例的增量扩展。n基础用例提供扩展点以添加新的行为。n扩展用例 提供插入片段以插入到基础用例的扩展点上泛化关系父用例也可以被特别列举为一个或多个子用例。n子用例表示父用例的特殊形式。n子用例从 父用例处继承行为和属性,还可以添加行为或覆盖、改变继承的行为schedulerCom maischedulerdeveloperdevelopei包含关系客户用例可以简单地包含

6、提供者用例具有的行为,并把它所包含的用例行为作为自身行为的一 部分。9类图有哪些元素构成?类之间的关系有哪些?掌握UML中类图的绘制方法。类、接口、协作、依赖关系、泛化关系、关联关系、实现关系类之间的关系:依赖关系、泛化关系、关联关系、实现关系10简述类的聚合和组合关系的异同点。聚合是一种特殊的关联,聚合更明确指出聚合的主体具有整体-部分关系. 组合是一种特殊的聚合,组合中的某个主体控制着另外一个主体的生命周期,而且他们还存在整体- 部分关系.聚合和组合的主要区别在于聚合关系是“has-a”关系,组合关系是“contains-a”关系;聚合 关系表示整体与部分的关系比较弱,而组合比较强;聚合关

7、系中代表部分事物的对象与代表聚合事 物的对象的生存期无关,一旦删除了聚合对象不一定就删除了代表部分事物的对象。组合中一旦删 除了组合对象,同时也就删除了代表部分事物的对象。11对象图的适用场景以及它的优缺点。对象图适用于论证类模型的设计以及对源代码进行分析和说明。其优点是能够直观理解出系统 运行时的实时状态,缺点是比较复杂,工作量大。12掌握交互图(时序图与协作图)的绘制方法。交互图用来一步一步地描述用例地实现流程,包括流中需要什么对象,对象之间发送什么,什么 角色启动流、消息按什么顺序发送等。交互图通过从用例建模中得到的用例文档说明、词汇表和用例图来创建。如何创建交互图创建交互图的步骤如下:

8、1 .寻找对象寻找角色3获取消息,并加入图中。13掌握活动图、状态图的绘制方法。活动图绘制方法:第一步,定义活动图的范围首先应该定义您要对什么建模。单个用户案例? 一个用户案例的一部分? 一个包含多个用户案 例的商务流程? 一个类的单个方法? 一旦您定义了所作图的范围,应该在其顶部,用一个标注添加 标签,指明该图的标题和唯一的标示符。您有可能也想要包括该图的时间甚至作者名。第二步,添加起始和结束点每个活动图有一个起始点和结束点,因此您也要马上添加它们。在UML精粹(UMLDistilled)(参见参考资料),Fowler和Scott认为结束点是可选的。有时候一个活动只是一个简 单的结束,如果是

9、这种情况,指明其唯一的转变是到一个结束点也是无害的。这样,当其他人阅读 您的图时,他或她知道您已经考虑了如何退出这些活动。第三步,添加活动如果您正对一个用户案例建模,对每个角色(actor)所发出的主要步骤引入一个活动(该活动可 能包括起始步骤,加上对起始步骤系统响应的任何步骤。如果您正对一个高层的商务流程建模,对 每个主要流程引入一个活动,通常为一个用户案例或用户案例包。最后,如果您正对一个方法建模, 那么对此引入一个活动是很常见的。第四步,添加活动间的转变我的风格总是应该退出一个活动,即使它是转变到一个结束点。一旦一个活动有多个转变时, 您必需对每个转变加以相应标示。第五步,添加决策点有时

10、候,您所建模的逻辑需要做出一个决策。有可能是需要检查某些事务或比较某些事务。要 注意的是,使用决策点是可选的。例如,在图1中,我可以只是简单地将“接受”和“拒绝”两 个转变直接接到“在大学报名(Enrollin University) ”活动。第六步,找出可并行活动之处当两个活动间没有直接的联系,而且它们都必需在第三个活动开始前结束,那它们是可以并行 运行的。在图1中,您看到是有可能“参加简要介绍(attendoverview) ”和“报名研讨班(enroll in seminars) ”可以按任意次序进行,但是它们都得在您结束整个流程前完成。状态图建模技术建模步骤:找出适合用模型描述其行为的

11、类。确定对象可能存在的状态。确定引起状态转换的事件。确定转换进行时对象执行的相应动作。对建模的结果进行相应的精化和细化。14类的设计原则包括哪些内容?单一职责原则(SRP)含义:就一个类而言,应该仅有一个引起它变化的原因。开放一一封闭原则(OCP)含义:软件实体应该是可以扩展的,但是不可修改的;对于扩展是开 放的,对于修改是封闭的。Liskov替换原则(LSP)含义:子类型必须能够替换掉它们的基类型。依赖倒置原则(DIP )含义:高层模块不应依赖于低层模块,二者都应该依赖于抽象;抽象不应 该依赖于细节,细节应该依赖于抽象。接口隔离原则(DIP)含义:不应该强迫客户依赖于它们不用的方法。接口属于

12、客户,不属于它 所在的类层次结构。15包图与组件图的概念,掌握包图的设计原则,包括稳定性和抽象度的衡量方法。包图:将相关的元素分组。组件图描述了软件的各种组件和它们之间的依赖关系。包图的设计原则:内聚性原则:重用一发布等价原则(REP):重用的粒度就是发布的粒度共同重用原则(CRP): 一个包中的所有类应该是重用的。如果重用了包中的一个类,那么就要 重用包中的所有类。共同封闭原则(CCP):包中的所有类对于同一种性质的变化应该是共同封闭的。一个变化若对 一个封闭的包产生影响,则将对该包中的所有类产生影响,而对于其他包则不造成任何影响。耦合性原则:无环依赖原则(ADP):在包的依赖关系图中不允许

13、存在环稳定依赖原则(SDP):朝着稳定的方向进行依赖稳定抽象原则(SAP):包的抽象程度应该与其稳定程度一致。稳定性度量Ca输入耦合度,依赖于该包内的类的数目;Ce输出耦合度,依赖于该包外的类的数目;不稳定性I=Ce/(Ca+Ce)I=0表示该包具有最大的稳定性;I=1表示该包具有最大的不稳定性。抽象性度量Nc包中类的总数;Na包中抽象类的数目;抽象性度量A=Na/NcA=0意味着包中没有任何抽象类;A=1意味着包中只包含抽象类。16掌握所介绍的各种设计模式的用途,类图,以及相关实例。| (策略模式、工厂模式、对象装饰 模式等)策略模式:定义了算法家族, 不会影响到使用算法的客户。分别封装起来

14、,让它们之间可以互相替换,此模式让算法的变化,相关实例:收银打折系统对象装饰模式:装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案, 提供比继承更多的灵活性。动态给一个对象增加功能,这些功能可以再动态的撤消。增加由一些基 本功能的排列组合而产生的非常大量的功能。动态地为一个对象提供额外的职责。比子类继承更灵 活。实例:穿衣服,帽子,鞋子等。工厂模式:使用工厂对象集中创建具有共同父类的子类对象。实体类用于描述必须存贮的信息及其相关行为;如学生边界类用于描述外部参与者与系统之间的交互;如界面或者界面与应用程序的接口控制类用于描述一个用例所具有的事件流控制行为,业务逻辑的操作过程

15、。将分析类划分成这三种类型的好处在于:所产生的类更小更专门化;这种划分将易变的外部界 面与系统基本功能进行了屏蔽,使分析模型更易于变化。18请简要阐述在软件开发过程中使用UML的必要性以及好处。软件开发是一个很复杂的工程,而采用统一的建模语言来对软件进行描述能够使客户、 涉众、开发人员对软件能够有更好的共识,也能够有效地降低复杂性。必要性:软件系统是产品,开发者和使用者是不同群体,对于一个复杂的软件系统,开发必须由多个方面 人员参与、合作共同完成,它必须有完整的从分析到实现、使用和维护的文档。正因为如此,软件 系统必须像传统工业产品一样建模,把一个复杂的系统按问题的不同方面以一种约定好的、为大

16、家 共同接受的描述方式分别进行全面而详尽的描述,以便人们交流。在试图交流、理解一个系统时, 可根据人们所关心的某一方面的问题,查阅对应的系统模型,从而得到对此问题的理解。另外,如 果整个系统的功能、原理和结构没有一个全面而详细的记载的话,将会对此软件产品的开发、维护 和升级产生不利的结果。uml的好处有:用统一(综合了 oose,omt等)而直观的图符来帮助不同角色(客户,分析者,设计者,实现 者.)进行良好的沟通开发的不同阶段(分析,设计,实施,测试均采用一致的模型,从而保证了阶段顺利切换,以 及能够及时测试等。19在绘制类图时,第一步就是发现类,最常用的方法是什么?请简要说明它的使用方法。

17、发现类的方法有很多种,其中最广泛应用的莫过于通过事件流寻找类,即“名词动词法”,其主 要规则是从名词与名词短语中提取对象与属性;从动词与动词短语中提取操作与关联;而所有格短 语通常表明名词应该是属性而不是对象。通过事件流寻找类(名词动词分析法)分析事件流中的名词,将性质相同的归为一类;去除不恰当的或含糊的,去除应归为属性的项目。命名所获取的类。如何确定属性注意需求中的名词;注意用例模型或需求文档中的名词,数据表。如何确定方法实现:实现业务功能,通过事件流中的动词分析进行捕捉;管理:管理对象的创建或构造;访问:查询或修改每个类的属性;帮助:说明类完成任务所需要的操作。20简述面向对象分析过程。面

18、向对象分析的目的在于建模。面向对象分析的一般步骤如下:1、获取客户对系统的需求,包括标识场景和用例,以及建立需求模型;2、用基本的需求为指南来选择类和对象;3、定义类的结构和层次;4、建造对象一关系模型;5、建造对象行为模型;6、利用用例/场景来复审分析模型。21简述面向对象设计过程。面向对象设计是将面向对象分析所创建的分析模型转换为设计模型。面向对象设计的目标是产生一 个满足用户需求,并且完全可实现的面向对象设计模型。1、系统设计将分析模型划分成子系统标识问题本身的并发性,并为子系统分配处理器任务管理设计数据管理设计资源管理设计人机界面设计子系统间的通信2、对象设计;对象设计是为每个类的属性

19、和操作作出详细的设计,并设计连接类与它的协作者之间的消息规约。对象描述的方式协议描述:描述对象的接口,即定义对象可以接收的消息以及接收到消息后完成的相关操作;实现描述:描述传送给对象的消息所蕴含的每个操作的实现细节,实现细节就是关于描述对象属性的数据结构的内部细节和描述操作的过程细节。为对象中的属性和操作设计数据结构和算法。3、消息设计;使用对象间的协作和对象一关系模型,设计消息模型4、复审。复审设计模型并在需要时迭代。22请观察一部电梯的运行方式,并用状态图描述它的各种状态(简化为“第一层”、“向上运动”、“向下运动”、“等待”、“运动到第一层”五种状态)和可能转移。列第floor Mtjm

20、rr把第展do/iti 加timer n 翅时值/F tft (舞一层)卜楼 fllKrf II 上 HH floor)ttt(floor)V到达menu (/god ow n( Hr st floor)goup(Hoor)叫I:诂gouptHoor) i阳 ertiry:dcst flooi-floor i do: H.hEldest floorde st fioor服务仰Wtimen=0d(j:ingre;i瞠!向卜您行dest floorgodown(floor)entry:dest floor= floor、d。:卜 dest floorR 冲goup floor) eurrcntf0

21、O|dest floor=栏odown(flgr)ntiy:AQiieiie.deiere(heEid)1 currcntrioDrdesL flour gcxkmn(lloor)I队列为wen(door)23.5 eric ad/Warn ingBeepT简单的电子表包含两个按钮A和B,系统启动后进入显示时分秒时间状态。在显示时间OpeningI Closingcpincitiisf: ttruer Iincrease timer. 蛆Overload.opein door状态下按钮B用于切换两种时间显示方式,即显示时分秒和显示年月日。而在显示时分秒 状态下,按钮A用于切换四种操作方式:显示

22、时间、设置小时、设置分钟和设置秒钟;在 显示年月日状态下按钮A用于切换显示时间、设置年份、设置月份和设置日期四种操作方 式。试画出其状态转换图。24某“订货”用例的文字描述如下:接收顾客的订单、确认订单是否已付款。若未付款,则取消并 退回订单;若已付款,则检查每个订单项。对有货的订单项更新库存,同时向顾客发放提货单;对 于缺货的订单项则向顾客发放缺货单,同时向采购人员发放采购单。请用活动图描述这一用例。|25掌握UML中各种模型图的作用,画法,结合“网上学生选课系统”仔细理解。网上选课系统建模类图范例根据前面课程的分析可知选课系统可设计如下类:(1)界面FormObject (2)控制对象Co

23、ntrolObject(3)课程Course角色类:(1)管理员Register (2)学生Student(3)学生和官理员的父类People (4)数据库Database类图:(好像不好,课件上这么画的,但是看起来更像用例图和类图的杂合)Quer1 .HSociatLnnOGeLLoun&eJniti()Display斯尚如H也,请判断以下类图中的类关系是否合适,并说明理由。飞机有机翼、机身、驾驶舱改为组合关系商店里的电器,一台电器可以是一台洗衣机,也可以不是;一台电器可以是一台电视机,也可以不 是;一台电器可以是一台空调,也可以不是。改为继承关系公司员工很多,包括程序员、分析员与项目经理等

24、。改为继承关系而不是原来的组合关系仔细分析“语音邮箱系统”的“保留语音信息”和“拨打邮箱号”的用例事件流描述,请找出 里面的对象,并画出时序图或协作图。用例1:拨打邮箱号呼叫者拨打语音邮件系统的主号码;语音邮件系统发出提示音:输入邮箱号码并加#号呼叫者输入接收者的邮箱号语音邮件系统发出问候语:已进入XX的邮箱,请留言。用例2:保留语音信息呼叫者“拨打邮箱号”呼叫者说出信息呼叫者挂断电话语音邮件系统将记录的信息存放在接收者的邮箱中。假设某高校需要建立一个档案管理系统,而你是该软件系统的负责人。你所在的软件公司与高 校一致同意系统的构建采用面向对象方法。作为开发负责人,请你结合本课程中的学习知识,

25、提供 参考的软件体系结构设计方案,描述开发这个系统的过程,并写出开发过程的每个步骤中你认为应 该用到的主要技术。1、在面向对象技术中,对已有的类的特征稍作改变就可生成其他的类,这种方式称为(C)A.委托B.代C.继承D.封装2、类库是一种预先定义的程序库,它以程序模块的形式,按照(B)把一组类的定义和实现组织在 一起:(C)对类库的建设提供了强有力的支持。A.类的功能B.类的层次结构C.实例之间的调用关系D.类的类型A.引用B.重置C.类属类D.封装3、UML是一种面向对象的统一建模语言。它包含10种图,其中,用例图展示了外部actor与系统 所提供的用例之间的连接,UML中的外部actor是

26、指(D),用例可以用(C)图来描述。状态图指 明了对象所有可能的状态以及状态之间的迁移。如果一个并发的状态由n个并发的子状态图组成, 那么,该并发状态在某个时刻的状态由(A)个子状态中各取一个状态组合而成。协作图描述了协 作的(A)之间的交互和链接,它画成(A)图的形式。A.人员B.单位C.人员或单位D.人员或外部系统A.类B.状态C.活动D.协作A.每一 B.任意一 C.任意二D.任意m(m=n)A.对象B.类C.用例D.状态A.对象B.类C.用例D.状态4、在面向对象分析过程中,用概念模型来详细描述系统的问题域,用(B)来表示概念模型;用(A) 来描述对象行为。A.序列图B类图C协作图D用

27、例图A.序列图和协作图B用例图和活动图C类图和包图D用例图和构件图5、在UML中,(D)把活动图中的活动划分为若干组,并将划分的组指定给对象,这些对象必须履 行该组所包含的活动,它能够明确地表示哪些活动是由哪些对象完成的。A组合活动B同步条C活动D泳道6、在较高的抽象层次上,传统的程序流程图与UML中活动图最根本的区别在于(A)。A程序流程图明确地指定了每个活动的先后顺序,而活动图仅描述了活动和必要的工作顺序B活动图不能提供循环控制结构,而程序流程图提供C活动图不能表示并发活动,而程序流程图可以表示并发活动D两者采用不同的图形符号系统7、在关于用例的描述中,错误的是(A)A用例将系统的功能范围

28、分解成许多小的系统功能陈述B一个用例代表了系统的一个单一的目标C用例是一个行为上相关的步骤序列D用例描述了系统与用户的交互8、UML提供了 4种结构图用于对系统的静态方面进行可视化、详述、构造和文档化。其中B)是 面向对象系统建模中最常见的图,用于说明系统的静态设计视图;当需要说明系统的静态实现视图 时,应该选择(A);当需要说明体系结构的静态实施视图时,应该选择(D)。A构件图B类图C对象图D部署图A构件图B协作图C状态图D部署图A协作图B对象图C活动图D部署图9、面向对象系统中有两种基本的复用方式:框架复用和类库复用。下列关于框架和类库的描述不正 确的是(D)。A框架是一个“半成品”的应用程序B类库只包含一系列可被应用程序调用的类C框架会为一个特定的目的实现一个基本的、可执行的架构D类库是框架的一种扩展形式10、下列有关面向对象的叙述不正确的是(C)A面向对象设计最根本的意图是适应需求变化B应尽量针对接口编程,而不要针对实现编程C

温馨提示

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

评论

0/150

提交评论