1、UML简答题 大题整理UML简答题 大题整理1、一个状态图最多只能有一个初态和一个终态。错误。一个状态图最多只能有一个初态,但可有多个终态。2、两个参与者之间可以有包含关系、扩展关系或泛化关系,而包含关系和扩展关系是依赖关系的版型。前半句不对。应该为:两个用例之间可以有包含关系、扩展关系或泛化关系,而包含关系和扩展关系是依赖关系的版型。3、参与者位于所要建模的系统边界的外部。正确4、在顺序图中无法表示要重复发送的消息,但在协作图中可以表示要重复发送的消息。错误。在顺序图和协作图中都可以表示要重复发送的消息。5、下图所示的是抽象工厂设计模式的一般结构。抽象工厂设计模式的一个特点是,如果要增加新的
2、产品类型,如在已有的AbstractProductA和AbstractProductB外再增加新的AbstractProductC及相应的具体子类,则很容易通过新增加一个具体的工厂(Factory)类并继承AbstractFactory类就可以适应这个需求的变化,原来的一些类不需要做改动。错误。对于抽象工厂这个设计模式,增加新的具体工厂较容易,但要要增加新的产品很困难。1、 协作图中的消息必须要有消息顺序号。 正确2、 参与者和用例之间的关系是关联关系。正确3、 类A和类B之间的关系如下图所示,则称类B中的getName()方法是对类A中的getName()方法的重载。错误。是覆盖而不是重载。
3、4、 一个软件系统,如果只有源代码,缺乏其它相应的辅助文档,如缺乏顺序图和类图,则可以利用Rose进行逆向工程得到顺序图和类图,但得到的顺序图和类图比较简单。错误。目前在Rose2003中,还不能通过逆向工程得到顺序图。5、 RUP软件开发生命周期中有4个核心工作流,即初始阶段、细化阶段、构造阶段和移交阶段。错误。RUP中有9个核心工作流。初始阶段、细化阶段、构造阶段和移交阶段是对软件开发周期中每个循环的阶段划分。1、简述UML中接口与类的区别?接口不同于类或类型,它不描述任何结构(因此不包含任何属性),也不描述任何实现(因此不包含任何实现操作的方法)。同类一样,接口可以有一些操作,这些操作可
4、以用可见性、参数、返回值等约束等来修饰。像类一样,一个接口也可以参与泛化、关联和依赖关系。2、简述状态图和活动图的区别?活动图用来建模某个过程的活动序列,以活动为中心。状态图用来建模对象生命期中的所有阶段,以状态为中心。活动图中一个活动结束后将立即进入下一个活动,在状态图中状态的转移可能需要事件的触发。1、简述面向对象的四个基本特征?抽象:就是过滤掉对象与当前开发工作无关部分特性,只剩下所需要的属性和操作。继承:是指一个对象直接从一个类中得到的属性和方法。多态:不同的类有时具有相同名称的操作。封装:实质是当一个对象执行自己的操作时,它对外界隐藏了操作的细节。2、类图与对象图的区别?类图描述系统
5、中类的静态结构。类图不但定义了系统中的类,表示了类之间的联系(如关联、依赖、聚合等),还描述了类的内部结构(类的属性和操作)。类图描述的是一种静态关系,在系统的整个生命周期都是有效的。对象图是类图的实例,使用与类图类似的标识。它们的不同点在于对象图显示类的多个对象实例,而不是实际的类。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。3、UML与开发语言的区别?UML是一种可视化建模语言,而不是可视化程序设计语言,它不能代替其他的程序设计语言;UML只是一种工具和程序设计的基础。4、简述泛化关系中的抽象类、叶子类和根类? 用于对类的网格结构建模,其中有位于顶
6、层的较为一般的抽象和位于底层的较为特殊的抽象。在这些抽象层次中,经常要指明一些类是抽象的,这意味着这些类没有直接的实例。在uML中,通过把一个类的名称写为斜体来指明这个类是抽象的。 一个类没有任何子类,这样的元素称作叶子类,在UML中通过在类名的下面写一个特性leaf来指明。 一个类没有任何父类,这样的元素称作根类,在UML中通过在类名的下面写一个特性root来指明。5、简述类继承和接口继承的区别?我们应该尽量使用哪一种? 类继承根据一个对象的实现定义了另一个对象的实现。简而言之,它是代码和表示的共享机制。然而,接口继承描述了一个对象什么时候能被用来替代另一个对象。 类继承是派生中的类将继承父
7、类的所有属性和方法,并且可以在派生类里添加自己的属性和方法,而接口继承则是在接口里只定义接口的方法,没有属性,并且方法不能实现,只有在派生他的类才实现该方法。类继承是编译的时候新建对象,而接口实例是在运行时刻创建对象。我们应该尽量使用接口继承,类继承会产生类爆炸现象。画出一个状态图,模拟DVD播放器的操作状态及状态间的转移过程。请描述在ATM系统中,如何用主事件流和异常事件流来描述用例ValidateUser(有效用户检测)的行为。主事件流:在系统提示顾客输入PIN编号时用况开始。顾客通过按键输入PIN编号;顾客按“输入”按钮确认登录;系统校验该PIN号是否有效。如果有效,系统承认这次登录,该
8、用例结束。 异常事件流1:顾客可以在任何时间通过按“取消”按钮取消一个事务,这样该用例重新开始。顾客的帐户未发生改变。异常事件流2:顾客可以在确认之前的任何时刻消除PIN号,并重新输入一个新的PIN号。异常事件流3:如果顾客输入一个无效的PIN号,用况重新开始;如果连续3次输入无效的PIN号,系统将取消整个事务,并在60秒内阻止该顾客与ATM交易。GUI将击键事件通知给操作系统。操作系统接着通知CPU。操作系统更新GUI。CPU又通知图形卡。图形卡向显示器发送一个显示消息。显示器将字母字符显示在屏幕上,给用户提供了图形化的反馈信号。1UML中的交互图有两种,分别是顺序图和协作图,请分析一下两者
9、之间的主要差别和各自的优缺点。掌握利用两种图进行的设计的方法。答:协作图可视化地表示了对象之间随时间发生的交互,它除了展示对象之间的关联,还显示出对象之间的消息传递。与顺序图一样,协作图也展示对象之间的交互关系。顺序图强调的是交互的时间顺序,而协作图强调的是交互的语境和参与交互的对象的整体组织。顺序图按照时间顺序布图,而协作图按照空间组织布图。顺序图可以清晰地表示消息之间的顺序和时间关系,但需要较多的水平方向的空间。协作图在增加对象时比较容易,而且分支也比较少,但如果消息比较多时难以表示消息之间的顺序。2什么是高内聚度 高内聚度是对一个类中的各个职责之间相关程度和集中程度的度量。一个具有高度相
10、关职责的类并且这个类所能完成的工作量不是特别巨大,那么它就具有高内聚度。包括两个意思:不要给一个类分派太多的职责,在履行职责时尽量将部分职责分派给有能力完成的其它类去完成。不相关的职责不要分派给同一个类。3 UML提供一系列的图支持面向对象的分析与设计,其中_G_给出系统的静态设计视图;_B_对系统的行为进行组织和建模是非常重要的;_D_和_F_都是描述系统动态视图的交互图,其中_D_描述了以时间顺序组织的对象之间的交互活动,_F_强调收发消息的对象的组织结构.A状态图B用例图C状态图D序列图E部署图F协作图G类图4什么是对象间的可见性?答:可见性(Visibility)指的是一个对象能够“看
11、到” 或者引用另一个对象的能力5领域模型是一组表示真实世界的概念类,在设计工作中广泛用来启发设计软件对象.6.可以用_和_两种方法找概念类。答案:概念类类别表、 标识名词短语7统一过程中的四个阶段?答:初始阶段(Inception)细化阶段(Elaboration)构造阶段(Construction)提交阶段(Transition)8.统一过程中有哪四个阶段,各阶段需要完成的主要工作有哪些?答:1)初始阶段:编制简要的愿景文档、 业务案例、 确定范围、 粗略评估成本。2)细化阶段:细化愿景文档、 迭代地实现核心构架、 解决高风险的问题、 定义大多数的需求和范围、 进一步评估成本3)构造阶段:迭
12、代地实现系统的其余部分、 准备部署4)提交阶段:beta 测试、部署统一过程中的核心工作流有哪些?答:业务建模、 需求分析、 设计、 实现、 测试。8定义大多数的需求和范围的工作是在UP中的细化阶段完成的。9定义大多数的需求不在UP的初始阶段中完成的13 UP的核心思想有哪些?答:短时间盒的迭代式开发,开发过程中不断进行调整,在早期的迭代中解决高风险和高价值的主要问题,不断与用户衔接,及时得到反馈意见,早期注意构造核心的体系结构,早期进入实现和测试,不断进行质量检验,使用用况(use case),可视化建模(用UML),仔细地管理需求,控制变更14什么是增量开发?答:增量开发包括两层意思:1)
13、对复杂的用况分多次迭代,一部分一部分地实现 2)将所有用况按其优先级分别安排在不同的迭代中实现15领域建模的步骤?答案:列出候选的概念类 画出领域模型图 必要时加入概念类间的关联 必要时加入概念类的属性16什么是用况,用况模型,如何描述用况?答:用况是一个描述性的文档,用来描述一个参与者使用系统完成某个业务过程时的事件发生顺序。用况描述的是系统使用过程,它描述了系统的功能需求。用况不描述系统内部如何工作,而是定义系统的责任,说明系统必须做什么。用况模型是需求工作的一个重要的制品。 用况一般有Brief, Casual,fullydressed 三种类型的描述方式。17标准建模语言UML的重要内
14、容可以由哪五类图(共9种图形)来定义?答案:用例图、静态图(包括类图、对象图和包图)、行为图、交互图和实现图。18简述统一建模语言(UML):统一建模语言(UML)是一种绘制软件蓝图的标准语言。可以用UML对软件密集型系统的制品进行可视化详述和文档化。UML是一种定义良好、易于表达、功能强大且普遍适用的可视化建模语言。它融入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。UML的作用就是用很多图从静态和动态方面来全面描述我们将要开发的系统。19软件开发生命期软件开发生命期是指软件产品从考虑其概念开始,到该产品交付使用为止
15、的整个时期。一般包括概念阶段,需求阶段,设计阶段,实现阶段,测试阶段,安装阶段及交付阶段。这些阶段可以有重复,执行时也可以有迭代。迭代开发指将用例迭代渐增的开发,直至所有的用例实现。每一次迭代都包含了分析、设计、实现和测试各个阶段。(1)“小车”类有哪几个操作?返回小车当前位置() 转向和前进()(2)“指挥小车UC”类的“执行任务”操作要做哪些工作?(采用伪代码描述)移动任务:更新行走断表和目的地()移动任务:判断现有信息足以让小车行走()小车:放回小车当前位置()小车:验证小车尚未到达目的地()移动:根据但前位置及断表信息计算出速度、角度()小车:转向和前进()2. 分析下面的类图,画出新的类图,将原图中的多对多关系转换为1:M(一对多)关系。答案:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1