UML复习题完整版.doc_第1页
UML复习题完整版.doc_第2页
UML复习题完整版.doc_第3页
UML复习题完整版.doc_第4页
UML复习题完整版.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

不定项选择题:1一个软件产品是否成功,因素有( 需求收集是否正确,体系结构的构建是否合理, 测试是否完全,软件的管理)。2开发过程中最困难的一个环节是( 人与人之间的交流)。3用例是从(用户)的观点对系统行为的一个描述。4顺序图所表达的是基于(时间顺序)的动态交互。5当需要在项目中定制自己的元素时,可使用(构造型来定制)。6表示一个操作中的参数和返回值的数据类型的称呼是(形构)7多重性5,10表示(5或10)。8在找出了类的继承关系后,通常可以用(抽象类|接口)来表示最上层的基类。9UML中的实现是一种特殊类型的继承,因为它是指从一个(抽象类/接口)继承。10使用用例的难点在于(用例中各个场景的具体步骤)。11收集用例的方法是(与用户交谈)。12产生类图和得到用例这两个步骤,位于前面的是(没有固定顺序)。13面向对象理论中,对象之间发送信号,在UML状态图里就是(事件)。14顺序图中,动态创建对象表示法的特点是(是在时间线上的某一点创建,结束时尾部打X)。15当代软件工程的特点是(允许各个阶段进行迭代;各个阶段没有明显的分界线;允许后期得到的信息返回,使得早期的能够被修改)。16GRAPPLE中最重要的段是(需求收集)。17设计模式的基本要素有(名称,问题|目的,解决方案,实施后的效果|后果)。18当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用(Abstract Factory|抽象工厂)模式。19当我们想将抽象部分和实现部分分离时,可以使用(Bridge|桥接)模式。20当我们想用不同的请求对客户进行参数化时,可以使用(Command|命令)模式。21当我们想封装不同算法并使它们可相互替换时,可以使用(Strategy|策略)模式。22面向对象系统中功能复用的两种最常用技术是(类继承和接口继承)。对象组合,类继承-产生类爆炸23面向对象系统中的“黑盒复用”是指(接口继承|对象组合)。24对象组合是通过获得(保存对方抽象类的指针)而在运行时刻动态定义的。25设计模式中应优先使用的复用技术是(接口继承|对象组合)。26在Lexi系统中,我们把所有文档元素都看作是图元,这样,它们就有了相同的(类型|接口)。27Lexi系统中,我们之所以能对文档采用Composite模式,是因为文档的元素之间有(递归层次|树型结构)关系。填空题:1软件体系结构是指一个系统的有目的的设计和规划,这个设计规划既不描述 活动 ,也不描述 如何开发产品,它只描述系统的 组成元素及其相互的 交互协作。2一个UML模型只描述了一个系统 要做什么,它并没告诉我们系统是 如何实施的(怎么做)。3接口是可以在整个模型中反复使用的一组行为,是一个没有 属性而只有 操作 的类。4多重性指的是,某个类有 多 个对象可以和另一个类的 一个 对象关联。5当一个类的对象可以充当多种角色时,自身 关联就可能发生。6在泛化关系中, 子类 可以替代 父类 。也就是说,后者出现的地方,前者都可以出现。但是反过来却不成立。7最通常的依赖关系是一个类操作的 型构中用到了 其他类 的定义。8组成是 强类型 的聚集,因为聚集中的每个部分体只能属于 一个整体。9实现的符号和继承的符号有相似之处,两者的唯一差别是实现关系用 虚线 表示,继承关系用 实线 表示。10UML背后的两个重量级概念是 面向对象和 用例 。11状态图和类图、顺序图不同之处在于,后两种图能够对 一个对象 建立模型,而状态图只是对一个系统或者至少是一组类、对象或用例 建立模型。12状态图中3个常用的动作是 入口动作 、出口动作和 do动作,也就是对象处于这个状态是该做什么 。13顺序图中,消息用水平箭头线表示;时间用垂直虚线 表示。14当逻辑发生分支时,在顺序图中用 生命线发生的分支 表示,在协作图中用 嵌套的序号 表示。15顺序图强调的是交互的 时间顺序 ,协作图强调的是交互的 空间关系 和参与交互的对象的 上下文环境。16GRAPPLE把开发过程分为5个 段,之中又由许多动作组成。17GRAPPLE过程中,得到初步类图是在 需求收集段,细化类图是在 需求分析 段。 18每一个设计模式都集中于一个特定的 (面向对象设计问题|设计要点),描述了什么时候使用它|相互通信的对象或者类 以及使用的效果|解决方案和如何取舍|解决效果 。19面向对象系统中功能复用的两种最常用技术是类继承和 接口继承|对象组合。20设计模式中应优先使用接口|对象组合 而不是 类继承。简答题3简述如何在实际工作中发现类。答:在与客户的交谈中,要注意客户用来描述业务实体的名词术语。这些名词可作为领域模型中的类。还要注意你听到的动词,因为这些动词可能会构成这些类中的操作。当得到一组类的核心列表后,应当向客户询问在业务过程中每个类的作用。他们的回答将告诉你这些类的职责。5试使用UML的关系表示法,表示出大学计算机专业中如下这些课程的模型:C语言程序设计、C+语言程序设计、Windows程序设计、网络程序设计。注意抽象类和依赖的使用。6画出图形用户界面GUI的状态图,要包括屏幕保护状态。其中要表明相应的事件、动作。8画出自动饮料销售机中,理想场景和“钱数不正确”的场景合并在一起的顺序图。13简述实现继承和接口继承的区别?我们应该尽量使用哪一种?答: 类继承根据一个对象的实现定义了另一个对象的实现。简而言之,它是代码和表示的共享机制。然而,接口继承描述了一个对象什么时候能被用来替代另一个对象。类继承是派生中的类将继承父类的所有属性和方法,并且可以在派生类里添加自己的属性和方法,而接口继承则是在接口里只定义接口的方法,没有属性,并且方法不能实现,只有在派生他的类才实现该方法。类继承是编译的时候新建对象,而接口实例是在运行时刻创建对象。我们应该尽量使用接口继承,类继承会产生类爆炸现象18Lexi系统的格式化问题中,我们引入了Compositor和Composition两个类来实现“策略”模式。请画出这两个类各自的继承关系和它们之间的协作关系。19Lexi系统的支持多种窗口平台的问题中,我们使用了Window和WindowsImp类来实现桥接模式。请画出这两个类各自的继承关系和它们之间的协作关系。1 软件是计算机系统中与硬件相互依存的另一部分,它是程序、数据及相关文档的集合。机器可执行的:程序及有关数据机器不可执行的:与开发、运行、维护、使用和培训有关的文档资料程序:由程序设计语言所描述的、能为计算机所识别、理解和处理的语句序列。数据:使程序能正常处理信息的数据和数据结构。文档:一种数据媒体和其上所记录的数据,即记录软件开发活动和阶段性成果、理解软件所必需的阐述性资料。软件程序数据文档 程序算法数据结构软件的特点1) 软件是一种逻辑实体,而不是具体的物理实体。因而它具有抽象性。软件的抽象性特征使它与计算机硬件及其它工程实体有着根本区别。2) 软件的生产与硬件不同,在它的开发过程中没有明显的制造过程,其生产主要是研制,可以零成本地大量复制软件产品。3) 在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题,有着无备件特征。4) 软件系统复杂,成本昂贵,涉及社会因素。2 按照软件服务的范围,可以把软件划分为项目软件和产品软件。3 软件危机 是指计算机软件开发和维护过程中所遇到的一系列严重的问题。这些问题不仅仅是不能正常运行的软件才具有的,实际上几乎所有软件都不同程度的存在这些问题。概括说,软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。软件危机的典型表现: 成本高、软件质量得不到保证、进度难以控制、软件维护困难4 软件工程 是指导计算机软件开发和维护的一门工程学科。它采用工程的概念、原理、技术和方法开发维护软件,把经过时间考验、被证明是正确的管理技术和当前能够得到最好的技术方法结合起来,以经济的开发出高质量的软件,并有效的维护它。5 软件工程三要素及其辩证关系质量是软件工程的生命线,软件工程以质量保证为基础。质量管理促进了过程的改进,创造了许多行之有效的软件开发方法和工具。软件工程釆用层次化的方法,每个层次都包括过程、方法、工具三要素。方法支撑过程和工具,过程和工具又促进方法学的研究。从小到大:工具、方法、过程、软件质量6 软件工程中相关的人员通常担当用户、客户、项目管理人员、软件工程人员四种角色。7 软件从定义开始,经过开发、使用和维护,直到最终退役的全过程称为软件生存周期。8 软件过程指制作软件产品的一组活动及其结果。9 软件过程模型 是从一特定角度提出的软件过程的简化描述。“模型的本质在于简化”软件过程模型就是对描述的实际过程的抽象,它包括构成软件过程的各种活动、软件产品及软件工程人员参与的不同角色。10 瀑布模型的特点1) 阶段间具有顺序性和依赖性 2) 推迟实现的观点 3) 质量保证的观点11 螺旋模型的每一个周期都包括计划制定、风险分析、工程实现和项目评审4 个阶段。12 喷泉模型是是以面向对象的软件开发方法为基础,以用户需求为动力,以对象来驱动的一种软件过程模型。面向对象方法的基础1 面向对象软件工程方法由面向对象分析、面向对象设计和面向对象程序设计/实现三部分组成。2 面向对象方法的基本思想尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是使描述问题的问题空间(即问题域)与实现解法的解空间(即求解域)在结构上尽可能一致。3 对象在应用领域中有意义的、与所要解决的问题有关系的任何事物都可以作为对象,它既可以是具体的物理实体的抽象,也可以是人为的概念,或者是任何有明确边界和意义的东西。例如,一名职工、一家公司、一个窗口、一座图书馆、一本图书、贷款和借款等,都可以作为一个对象。总之,对象是对问题域中某个实体的抽象,设立某个对象就反映了软件系统保存有关它的信息,并具有与它进行交互的能力。4 对象的特点1 以数据为中心:操作围绕对其数据所需要做的处理来设置,不设置与这些数据无关的操作,而且操作结果往往与当时所处的状态(数据的值)有关。2 对象是主动的:它与传统的数据有本质的不同,不是被动地等待对它进行处理,相反,它是进行处理的主体。3 实现了数据封装:对象好像是一只黑盒子,它的私有数据完全被封装在盒子内。对私有数据的访问或处理只能通过公有的操作进行。4 本质上具有并行性:不同对象各自独立地处理自身的数据,彼此通过发送消息传递信息完成通讯。5 模块独立性好:对象是OO软件的基本模块。5 类 类是具有相同数据结构和相同操作的一组相似对象的抽象,即表示某些对象在属性和操作方面的共同特征。 类是在对象之上的抽象,有了类以后,对象则是类的具体化,是类的实例。把一组对象的共同特性加以抽象并存贮在一个类中的能力,是面向对象技术最重要的一点!6 属性 属性是类中对象所具有的数据值,是对客观世界实体所具有性质的抽象。 不同对象的同一属性可以具有相同或不同的属性值。7 方法方法就是对象所能执行的操作(Operation)。它描述了对象执行操作的算法,响应消息的方法。8 通常,一个消息由接受消息的对象、消息标识符、0 或多个变元/消息参数组成。9 谈谈你对面向对象方法中消息的理解? 如何要求对象完成一定的处理动作?对象间如何进行联系?所有这一切都只能通过消息传递来实现。 传递消息的对象称为发送者,接受消息的对象称为接收者。 消息中只包含传递者的要求,它告诉接收者需要哪些处理,但并不指示接收者应该怎样完成这些处理。 消息完全由接收者解释,接收者独立决定采用什么方式完成所需的处理,发送者对接收者不起任何控制作用。 一个对象能够接收不同形式、不同内容的多个消息;相同形式的消息可以送往不同的对象,不同的对象对于形式不同的消息可以有不同的解释,能够做出不同的反映。 一个对象可以同时往多个对象传递信息,两个对象也可以同时向某个对象传递消息。 接受者响应消息的过程10 消息接受者响应消息的过程:1、选择符合消息要求的操作 2 、执行该操作 3、将控制权返回调用者11 继承 广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们。 在面向对象技术中,继承是子类自动地共享基类中定义的数据和方法的机制。12 继承机制在面向对象方法中的重要性13 多态多态即在类的等级的不同层次中可以共享(公用)一个方法的名称,然而不同层次中的每个类却各自按照需要来实现这个行为。当对象接收发送给他的消息时,根据该对象所隶属的类动态选用在该类中定义的实现算法。UML 概述1UML 是Unified Modeling Language 的缩写,即统一建模语言2UML 综合符号、文本语法、图形机制三种机制来表达应用问题在需求、设计和实现级的模型。3UML 的视图机制的内容UML 中提供了静态视图、用例视图、实现视图、配置视图、状态机视图、活动视图、交互视图、模型管理视图。4 主题域在视图的更高层次,UML 中把视图划分为结构性主题域、动态主题域、模型管理主题域3 个主题域。用例视图1 用例视图从外部用户的角度捕获系统、子系统或类的行为。它将系统功能划分为对活动者具有意义的事务,这些功能片称为用例。2 活动者每个活动者参与一个或多个用例,活动者的内部实现与用例无关,活动者被一些列定义状态的属性来描述。3 建立用例图的步骤1、获取Actor 2、获取用例 3、标示关系 -Actor和用例的关系 Actor和Actor的关系 用例和用例的关系4 用例文档用例文档是在理解用户需求基础上产生的,它是用例图中用例实现的文字描述。用例文档包含用例名称、用例描述、用例的前置条件、后置条件以及过程描述等内容。静态视图1 静态视图的作用静态视图是UML 的基础。静态视图中个概念是应用中具有意义的概念与软件相关的所有概念。静态视图捕获对象结构,将面向对象系统的数据结构和行为统一成单个的对象结构。它将行为实体描述为离散的模型元素,不包含任何动态行为的细节。2 类的属性/操作的可见性 描述了类在软件系统中代表的事物(即对象)所具备的特性。 类可以有任意数目的属性,也可以没有属性。 在UML中,类属性的语法为:可见性 属性名:类型 初值 属性字符串包括公共的、私有的、保护的和包内可见性,分别采用+、-、#、标示3 为类的属性设置初值的目的?1、保护系统的完整性,防止漏掉取值或被非法的值破坏系统的完整性。2、为用户提供易用性。4 类和类之间的关联关系关联表示两个类之间存在的某种语义上的联系。5 举例说明普通关联的定义细节普通关联是最常见的关联关系,只要在类和类之间存在着联接关系就可以用普通关联表示。 普通关联的图示符号是联接两个类之间的直线; 通常关联是双向的,可以在一个方向上为关联命名,而在另一方向上给予另一不同的名称(或不予以命名)。为避免混淆,可以在各名称前添加一个表示方向的符号。 在表示关联的直线两端,可以标示管理的重数。重数表示该类有多少个对象与对方的一个对象连接。重数表是方法有:1 一个对象; * 表示多个对象; 0.1 表示0个或一个对象;0.* 表示0个或多个对象; 1+或1.*表示1到多个对象例:普通关联具体实例如图所示:上图所示,一个作家可以使用1到多台计算机;一台计算机可为0至多个作家使用。(静态视图)6 举例说明关联类的定义过程?有时为了说明关联性质可能需要一些附加信息。可以引入关联类记录这些关联信息。关联种每个联接和关联类的一个对象相关联。关联类的符号表示如下图所示:例:从图中可以看出,一个电梯控制器控制着多台电梯,它们之间的联接对应一个队列,而每个队列存储着来自电梯控制器和点提按钮的请求服务信息。电梯控制器选择一个合适的电梯为乘客服务。(静态视图)5 类的组合关系和聚合关系的区别和联系 有时两个具有关联的类具有着“整体/部分”的关系,其中一类描述了较大的事物(“整体”),它有较小的事物(部分)组成这种关系成为聚合。 聚合关系描述“has a”关系,意味着整体对象拥有部分对象,其图形表示如下:(静态视图) 组合是聚合的变体,相对聚合它添加了很多语义信息。它表示的是更强的拥有关系,而且整体与部分的生命周期是一致的。 这就意味着在组合中,一个对象在一个事件内只能是一个组合的一部分,如在窗口系统中,一个Frame只能隶属于一个Window,其图形表示如下:(静态视图)6 对象图对象图是某个时间点系统的映像,通常作为系统的一个实例使用。对象图描述了可能发生的实例,它是系统的一个快照。7 对象图绘制的步骤,并举例说明交互视图1 协作协作是对上下文中交互实现某种行为对象群体的描述,它描述了许多对象合作实现特定目标的行为。协作具有结构和行为两个方面:结构方面包含了目标行为的上下文信息,如有关的角色、关系等;行为方面由绑定于角色对象间的一些列交换消息描述。2 交互交互是由协作中分类角色、关联角色进行交换的一系列消息。3 顺序图的交互表达机制顺序图以二维表来显示交互。 纵向是时间轴,时间自上而下; 横向显示了协作中单个对象的分类角色。每个分类角色表现为垂直列,即时间线。 消息表示为从一个对象生命线到另一个对象生命线的箭头。箭头自上而下按照时间顺序安排。4 协作图中的对象类别协作图把对象分成四组:在整个协作中存在的对象;交互中创建的对象(约束destoryed);交互中被销毁的对象(约束new) ;交互中被创建和销毁的对象(约束transient) 。5 请比较顺序图和协作图,并讨论它们的应用场景。顺序图和协作图都显示了交互,但是它们的侧重点不同:顺序图显示了时间次序,但没有显式指明对象之间的关系;协作图清晰的显示了对象间的关系,但实践次序必须从顺序号中读取。鉴于此,顺序图常常用于场景的表示,协作图则在展示过程细节时更适用。状态机视图1 状态机视图 通过对每个对象的生命周期进行建模,描述了对象时间上的动态行为。2 状态机状态机是展示状态与状态转换的图。状态机是一个类的对象所有可能的生命历程的模型。状态机是一个对象的局部视图,一个将对象与其外部世界分离开来,独立的监测它的行为。状态机是对象局部化的视图,是一种很好的精确描述指明行为的方法。3 事件可以划分为信号事件、调用事件、变更/改变事件、时间事件四种类别。4 状态描述了一个对象生命期中的一个时间段。5 触发器事件触发器事件是引起转换的事件。事件可以有参数,以供转换的动作使用。6 谈谈你对状态图中事件的理解? 事件是发生在时间和空间上值得注意的事情。它在一时间点上发生,没有持续时间。如果某一事情的发生造成了影响,那么在状态机模型中它是一个事件。 当我们使用事件这个词时,通常是指一个事件的描述符号。事件可能有参数来辨别每个实例,就像类用属性来辨别每个对象一样。 事件可以划分为各种类别信号事件、调用事件、变更/改变事件、时间事件。7 某建筑有一部电梯,该电梯初始安装在一层。当电梯空闲时间超时时,无论电梯当前在那一楼层,都将移向一层(即底层),到达一层后即停留,以等待用户服务请求得到达。请采用状态图对电梯系统建模。活动视图1 通常,活动图用来建模操作/计算流和工作流。2 活动图从本质上是一个流程图,显示了从活动到活动的控制流。3 活动 一个活动是一个状态机中进行的非原子执行单元。 活动最终导致一些动作,这些动作由可执行的原子计算组成。 动作包括调用一个操作,发送一个信号,创建/撤销某对象等。4 动作状态 动作状态代表了可执行的原子计算,每一个原子计算都代表了一个动作的执行。 动作状态不能再分解,即动作状态可以发生,但动作状态的工作不能中断。 在UML中动作状态的工作所占用的时间一般可以忽略。5 动作状态和活动状态的区别 活动状态、动作状态仅仅是状态机中状态的特殊种类。 当进入一个动作或活动状态时你是简单的执行动作/活动状态; 当结束一个动作/活动状态时控制权就传送给下一个动作/活动。 一个活动状态在语义上等价于在适当地方展开的活动图,直到该活动图紧紧看到动作为止。6 使用活动图建模工作流的原则? 为工作流建立一个焦点,即观测的视角; 选择对工作流中的具有高层职责的业务对象建模,并为每个主要的对象建立泳道; 识别工作流的初始状态的前置条件和停止状态的后置条件,这样有助于识别工作流的边界; 从工作流的初始状态开始,按照时间顺序表示并连接活动状态/动作状态; 将复杂的动作或多次出现的动作集合进行合并,形成一个活动状态,必要时在一个活动图中展开; 找出连接活动/动作状态的转换,考虑顺序流、并发流等情况; 如果工作流中涉及重要的对象,则把他们加入到活动图中; 如果对表达对象流的意图是必要的,则显示其变化的值和状态;7 活动视图和交互视图的区别? 交互视图强调从对象到对象的控制流,而活动图强调从活动到活动的控制流。 交互视图观测的是传送消息的对象,活动图观测的是对象间传送的操作。物理视图1构件是定义了良好接口的物理实现单元,它是系统中可替换的部分。每个构件体现了系统设计中特定类的实现;2 构件包含代码特征和身份特征两方面的特征。3 构件和类的区别和联系 相同点1、 都可以是实现一组接口;2、 都可以参与依赖、泛化、关联关系;3、 都可以嵌套;4、 都可以具有实例;5、都可以参与交互; 不同点 类表示逻辑抽象,而构件表示存在于Byte世界的物理抽象,即构件可以存在于节点之上;这一项差异指明了建模时候是采用构建还是类的决策基础 构件表示的是物理模块而不是逻辑模块,而类处于不同的抽象级别;可以看出类和构件的关系,构件是类等逻辑元素的物理实现,可以采用显式展示类和构件的依赖关系 类可以拥有属性和操作,而构件拥有得只能够是通过其接口访问的操作;特别指出接口是类和构件的桥梁,它连接了系统的逻辑模型和物理模型4、构件实现的接口称为示出接口export interface,即构件提供给其他构件的服务接口;构件使用的接口称作引入接口import interface,即应用它的构件必须遵循这个接口并以此为基础构造。5 构件的种类有实施构件、执行构件、工作产品构件三种类型。6 构件的特点 构件是系统中的一个物理实现片断,它是实现域中的元素; 一个构件基本独立于其他构件,但很少独立存在。通常为了完成某项功能,构件需要一个结构化的语境; 构件是系统中可以替换的部分,是系统设计和组建的基石; 构件完成明确的功能,在逻辑和物理上具有粘聚性,它代表了一个更大系统中的一段有意义的结构/行为块; 构件符合一系列的接口。符合一个接口的构件满足接口的约定,且在接口适用的所有语境中可以被替换。7 构件有两种视图,分别是黑箱视图和白箱视图。黑箱视图显示构件的外观,包括它的需求接口、提供接口、如何与其他构件关联。黑箱视图不指定构件的内部实现;白箱视图显示那些类、接口、其他构件协作完成了该构件的功能,即白箱视图显示构件的成员元素及其关系。8 节点节点是表示计算资源的运行时的物理对象,它们通常具有内存和处理能力。9 比较节点和构件? 相同点1、 二者都有名称;2、都可以参与依赖、泛化、关联关系;3、 都允许嵌套; 4、 都可以拥有实例; 5、 都可以参与交互; 不同点 构件是参与系统执行的事物,节点是执行构件的事物;即节点执行构件,构件是被节点执行的事物 构件表示逻辑元素的物理打包,节点表示构件的物理部署;指示出节点和构件的关系一个构件是一组其他逻辑单元物理化的事物,而一个节点是构件部署的地点,可以采用依赖关系显式表示构件和节点的关系10 请使用部署图建模如下场景:某软件包3dpacman.jar 被部署到Desktop PC 上。11 部署图有描述符形式和实例形式:描述符形式说明那些构件可以存在于那些节点上,那些节点可以被连接等;实例形式表现了作为系统配置的具体节点实例上的具体构件实例的位置,这是部署图的常见形式。模型管理机制1 包是将多个元素组织为语义相关组的通用机制。一个包拥有或引用的模型元素称为该包的内容。2 包和其中拥有的元素之间是组合关系3 包可见性包括公共的、私有的、保护的三种类别。4 包的引入和示出引入授权一个包中的元素可以访问另一个包中的元素的单项许诺。在UML 中使用一个由构造型import 修饰的依赖为引入关系建模,通过把抽象包装成组块,然后用引入关系控制对它们的访问,就能够控制大量抽象的复杂性。包的公共部分称为示出。一个包示出的部分仅仅对显式引入这个包的那些包中的内容可见。5 包与包之间的关系包括引入、示出、泛化和依赖关系四种类型。6 UML 中定义了包的五种标准构造型:虚包faade、桩Stub、框架Framework、子系统Sub-System、系统System。扩展机制1 UML 扩展机制包括构造型、标记值、约束。2 扩展机制的表示面向对象的软件工程基础1 按照工作重点的不同可以把软件设计阶段分解为概要设计和详细设计两个子阶段。2 用例文档转换成协作图或顺序图案例分析题型1 根据系统模块部署描述,生成部署图 2 用例文档转换成协作图或顺序图 3 顺序图和协作图的转换 4 从代码到状态图 5 从代码到类图,从类图到代码框架 6 根据系统功能需求描述绘制用例图 7 根据算法的语言/详细设计工具,转换生成活动图; 8 根据当前状态、外部事件、执行的相应动作、目标状态的数据生成状态图 9 根据模型描述模型细节_UML期末复习题1(B)可用于描述用户接口、设备控制器和其他具有反馈的子系统,它还可用于描述在生命其中期中跨越多个不同性质阶段的被动对象的行为,在每一个阶段该对象都有自己特殊的行为。 A状态机视图B模型管理视图C动态视图D静态视图 2(A)是对象与其他外部世界相互关联的唯一途径。 A消息传递B状态转换C接口D函数调用 3(C)是在分析模型的基础上,添加了设计元素的结果,使得分析模型更加接近系统实现。 A领域模型B数据模型C设计模型D概念模型4在UML活动图中,(C)表示活动需要输入的对象或者作为活动的处理结果输出的对象。 A并发控制B决策点C对象D活动5UML通过图形化的表示机制从多个侧面对系统的分析和设计模型进行刻画,其中(B)包括构件图,它描述软件系统中各组成构建,构件的内部结构以及构件之间的依赖关系。 A行为视图B构件视图C结构视图D用例视图6在UML顺序图中,如果一条消息从对象a传向对象b,那么其(A)是一条从b指向a虚线有向边,它表示原消息的处理已经完成,处理结果(如果有的话)沿原消息传回。 A返回消息B创建消息C自消息D销毁消息 7在UML中,(B)可以对模型元素进行有效地组织,如类,用例,构件,从而构成具有一定意义的单元。 A构件B包C节点D连接8(C)描述软件系统中的构件及构件之间的构成关系和依赖关系。 A状态图B对象图C构件图D部署图9泛化使得(B)操作成为可能,即操作的实现是由它们所使得的对象的类,而不是由调用者确定的。 A多重B多态C传参D传值10在用例图中,执行者之间的关系只有(C)一种。 A扩展B包含C继承D实现11以下哪个选项不是状态图中三个常用的活动之一(D)? A入口动作B出口动作C动作D中间动作12如果用例A和用例B相似,但A的动作序列是通过改写B的部分动作或者扩展B的动作而获得的,则称(C)。 A用例A包含用例B B用例A扩展用例B C用例A继承用例B D用例A实现用例B 13UML中所谓的“泛化”可以用以下哪个术语来代替(B)? A聚合B继承C抽象D封装14在UML活动图中,(B)表示操作之间的信息交换。 A控制流B信息流C初始活动D活动 15在面向对象程序设计中,对象与对象之间的协作是通过_B_机制来实现的。 A参数传递B消息传递 C深拷贝D浅拷贝16一般情况下,可以将面向对象中的聚合概念区分为(B)关系。 A继承B关联C组合D聚合 17在状态图中,(B)表示两个状态之间的关系;源状态和目的状态。 A监护条件B事件C状态D转换18以下哪个不是面向对象的概念(D)?A封装B多态C抽象D聚类19UML的英文全称是(A)?AUnified Modeling LanguageBUser Manage LanguageCUnit Modeling LanguageD以上都不对20下列对操作描述错误的是(D)A接口可以定义操作B类可以定义操作C操作可以作为顺序图中的消息D对象可以定义操作21在UML模型中,类用(B)表示A直角矩形B圆角矩形C椭圆D牛眼睛22接口的构造型是(B)AsignBinterfaceCcomponentDmode23下列哪些选项不可以具有继承关系(B)A类B参与者C用例D活动24类图中可以指明哪些信息(D)A属性B操作C职责D以上都可以25设计视图的静态方面采用(B )表现A交互图B类图和对象图C状态图D活动图26用例试图的静态方面由( A)来表现A用例图B交互图C状态图D活动图27常用的UML工具有很多,下列哪个不是(D)AroseBpowerdesignCvisioDvss28在UML中面向对象的概念有很多,下列哪个不是(D)A抽象B继承C封装D线程29在活动图中,接收信号用(B)表示 A凸角五边形B凹角五边形C圆角矩形 D直角矩形30在活动图中,发送信号用(A)表示 A凸角五边形B凹角五边形C圆角矩形D直角矩形多选题:1状态图中常用的动作有(ABC)A动作B入口动作C出口动作D触发动作2UML中表示类之间“关系”的视图有(ABC)A关联B泛化C依赖D实现3用例描述中包含的内容有(ABCD)A发起用例的参与者B用例的前置条件C用例的后置条件D从用例中获益的参与者4类之间的关系包括(BCD)A链B继承C多重性D聚集5完整的类可视化表示包括元素(ABC)A职责和约束B属性C操作D接口判断题:1用例图中包含关系是指一个用例继承了另一个用例(wrong)2顺序图中每个对象向下方向伸展的虚线是对象的生命线(right)3只有状态图采用泳道(wrong)4部署图一般把节点分成处理器和外部软件(wrong)5协作图和顺序图是等价的(right)6一台计算机有很多零部件,例如:键盘,鼠标,主板,显示器等等,我们可以用一个聚集图来描述,也就是说计算机是一个聚集体(right)7对象之间协作可以通过相互发送消息来实现,也就是消息可以是双向的(right)8顺序图所表达的是基于时间顺序的动态交互(right)9用例是从用户的观点对系统行为的一个描述(right)10状态图中状态一般分成顺序子状态和随机子状态(right)UML复习系列之一(基本概念)【原创】1.UML简介UML (Unified Modeling Language统一建模语言)是一种可视化的建模语言,它能让系统构造者用标准的、易于理解的方式建立起能够表达出他们想象力的系统蓝图,并且提供一种机制,以便于不同的人之间有效地共享和交流设计结果。UML是一套系统的“图”表示法,通过各种不同的“图”产生出系统“模型”(一种易于使用和易于理解的对象模型)。UML模型只说明一个系统应该做什么,并没有告诉我们应该怎么做。2.面向对象简介以对象为中心,以类和继承为构造机制,充分利用接口和多态提供灵活性,来抽象和描述客观世界,并由此设计和构建出相应的系统。基于构建的软件开发方法就是面向对象技术孕育出来的。相关概念:对象,类,抽象,继承,多态,封装,接口。对象:数据(对象属性描述)和操作(对象行为描述)的封装体。类:具有共同属性特征和行为特征的对象的抽象描述。多态:在运行时刻决定执行代码的技术。接口:对操作规范的说明。构建:一个物理的、可替换的系统部分,它表现了一个接口集合。3.UML中的类图由一个矩形表示。类名、属性、操作、职责(描述类是做什么的)都在区域各自的方框中。可以在类图中指定属性的类型和初始值,操作的参数和参数类型。类之间的关系:A.关联:类之间由连接关系,每个类都扮演某种角色。:实线B.继承:子类和父类的关系。(UML中也称之为“泛化”):空心箭头的实线C.依赖:一个类操作的型构中用到了另一个类的定义。:箭头虚线D.聚集:一个类由几个部分组成(如个人电脑包括CPU,主板,磁盘,内存,鼠标键盘等)E.组成:表示强类型的聚集,每个聚集的部分只能属于一个整体F.接口:描述类的部分行为的一组操作,是一个类提供给另一个类的一组操作 (举例:汽车的方向盘控制,我们并不需要知道其中的传动原理,只关系它的操作)G.实现:一个类和它的接口之间的关系 说明:一个类可以实现多个接口,一个接口也可以被多个类实现 接口和依赖举例: 洗衣机- 洗衣机控制器(接口)-人 接口 依赖4.用例图用例是帮助分析员和用户确定系统使用情况的UML组件,一组用例就是从用户的角度出发对如何使用系统的描述。可以认为用例是系统的一组使用场景,每个场景描述一个事件的序列,每个序列由一个人、或另一个系统、或一台硬件设备、或时间的流逝所发起。发起事件序列的实体叫做“参与者”(actor)。用例复用:从各个步骤序列中抽取出公共步骤形成一个每个用例都要使用的附加用例,我们也可以由此得到一个扩展用例。参与者、用例和互连线共同组成了“用例模型”,例如:参与者-系统(用例)-参与者用例的文档描述:发起用例的参与者用例的假设条件用例中的前置条件场景中的步骤场景完成后的后置条件从用例中获益的参与者5.状态图对象(或行为元素)改变了自己的状态(以响应事件或时间的流逝),这种表征系统变化的方法即可用状态图。状态图只是对单个对象建立模型。状态图的一些细节选项:入口动作、动作、其他动作或事件。引起转移发生的事件叫做触发器事件,也可以是无触发器转移。转移细节可以添加保护条件(只有当条件满足时,转移才能发生)。一个状态可以由自己的子状态,子状态由两种形式:顺序子状态和并发子状态。6.顺序图顺序图由以下对象组成:对象用矩形框表示,消息用带箭头的实线表示,时间用垂直虚线表示。A.对象:向下伸展的虚线叫做对象的生命线。B.消息:带有实心箭头的实线表示调用消息,空心箭头的返回虚线叫做返回消息,异步消息用空心箭头的实现表示。C.时间:流逝自顶向下。说明:顺序图中交互时间也可以做到复用!7.协作图写作图是对象的扩展,处理展示出对象之间的关联,还显示出对象之间的消息传递。顺序图按照时间顺序布图,写作图按照空间组织布图。8.活动图用于简化描述一个过程或者操作的工作步骤。活动序列到达某一点需要作出判定,然后执行一个并发路径。涌道:表示每个角色负责的活动。可理解为顺序图和活动图的简单结合。9.构件图(Component)定义一个系统的功能。一个重要特征是它具有潜在的复用性!处理构件的时候,必须处理构件的即可。10.部署图:各个软硬件系统的相互连接图。11.包图包给一组元素提供了一个命名空间(namespace),包之间关系可为泛化、依赖等。12.在开发过程中运用UML传统过程方法学:瀑布模型:分析(analysis),设计(design),编码(coding)和部署(deployment)一个阶段一个阶段的进行,其缺点在于不利于项目开发过程中对问题的逐步理解是随着开发过程的深入而增强的。改进方法:快速应用工程指导原则(Guidelines for Rapid APPLication Engineering,GRAPPLE),下面作简单介绍。grapple有一下列段:需求收集(requirements gathering)A.发现领域过程(产品:捕获业务过程中的步骤和判定点的活动图)B.领域分析(产品:高层的类图和会谈记录)C.识别协作系统(产品:部署图和软件构件以及其依赖关系)D.发现系统需求(产品:包图,需要进行联合应用开发会议)E.将结果提交给客户分析(analysis)A.理解系统的用法(产品:一组用例图)B.充实用例(产品:每个用例步骤的文本描述)C.细化类图(产品:细化了的类图)E.分析对象状态变化(产品:状态图)F.定义对象之间的交互(产品:顺序图和协作图)G.分析与协作系统的集成(产品:详细的系统部署图和数据模型)设计(design)A.开发和细化对象图(产品:对象图和活动图)B.开发构件图(产品:构件图)C.制定部署计划(产品:部署图)D.设计和开发用户界面原型(产品:所有用例的完成)E.测试设计(产品:用测试脚本构成本动作的工作产品)F.开始编制文档(产品:文档编制员和开发人员共同编制文档,制定每个文档的高层结构)开发(development)A.编制代码(产品:代码)B.测试代码(产品:单元测试,继承测试,系统测试等)C.构建用户界面和用户界面到代码的连接和测试(产品:带有用户界面的功能系统)D.完成文档(产品:所有文档)部署(deployment)A.编制备份和恢复计划(产品:备份和恢复计划)B.在硬件上安装最终系统(产品:安全部署好的计算机系统)C.测试安装后的系统(产品:测试后的工作产品)D.庆祝(产品:新系统产生)UML即统一建模语言。其概念为: (1)UML是编写软件蓝图的标准语言; (2)UML以可视化方式指定、建构以及记录软件为主系统的产出。 UML是完全面向对象的,是图形化的,它为系统开发的不同参与者(包括客户)提供不同层次和角度的图; UML所提供的主要图有:类图、对象图、用例图、状态图、时序图、活动图、协作图、构件图、和部署图。最重要和使用最多的3种图是用例图(User Case Diagram)、时序图(Secquence Diagram)和类图(Class Diagram)。 用例图是从用户的角度来描述系统的外部功能的图。对不同的用户,系统应该有不同的功能,所以一个系统的用例图通常会有多个。 时序图是从系统实现的角度来描述每一个用例,可见一个用例一般应该有一个对应的时序图。它描述的是一个用例中用户与系统进行消息传递,系统各部件(类)之间进行消息传递的关系和顺序。时序图表现的是系统具体实施的静态逻辑,从它可以直接接联系到代码中一个模块的具体实现逻辑,所以它对系统逻辑的具体实施是最重要的。 类图直接对应到源代码。在面向对象的程序设计中,整个系统都是由类及其实例(对象)通过相互之间发送消息以及各自的消息处理函数来实现的。时序图描述了各个类之间要发送的消息,类图则表明该如何来发送、接收和处理这些消息,这包括各种属性和方法。 要完整的画出这3类图,特别是在开始的时候,是不太实际的。往往UML图对系统的分析与设计是一个指导,并不能很完全地画出所有的图。UML只是一种设计方法,在设计的时候不应强求完美。作为一种建模语言,UML的定义包括UML语义和UML表示法两个部分。 (1) UML语义描述基于UML的精确元模型定义。元模型为UML的所有元素在语法和语义上提供了简单、一致、通用的定义性说明,使开发者能在语义上取得一致,消除了因人而异的最佳表达方法所造成的影响。此外UML还

温馨提示

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

评论

0/150

提交评论