第1章UML概述2.请指出三种以上现实生活中的常用模型,并说明它们分别在各自的领域中发挥了什么样的作用。1)电路图:电子产品设计、生产、维修2)园区沙盘:直观、立体化地展示园区的景观、布局3)地图:导航、指路等4.说明UML适用的建模领域,以及其作用和主要的参与人员。业务建模,用来加强对业务领域的了解,以领域专家为主,需求分析人员是主力,系统分析员、架构师可参与。需求模型,用来加强需求了解,便于技术决策,以需求分析人员为主,系统分析员是主力,领域专家提供指导,架构师和资深开发人员参与。设计模型:包括高层设计模型和详细设计模型。高层设计模型以架构师为主,系统分析员从需求方面提供支持,资深开发人员从技术实现方面提供支持。详细设计模型则以资深开发人员为主,架构师提供指导。实现模型:架构师、资深开发人员(设计人员);以资深开发人员(设计人员)为主,架构师提供总体指导。数据库模型:架构师、数据库开发人员、资深开发人员(设计人员);以数据库开发人员为主,架构师提供指导,资深开发人员(设计人员)予以配合。第2章UML世界的构成4.扩展关系,是关系构造块。5.可以包含其它事物构造块的构造块是什么?它属于什么类型的事物构造块?可以包含其它事物构造块的构造块是包,它属于分组事物构造块。6.在UML中定义了哪几种可见性规则?其中package的含义是什么?定义了public、private、protected、package,package是指只有声明在同一个包中的元素才能够看到该元素。7.规格描述是一种事物构造块吗?如果不是,它是什么?它的作用是什么?规格描述不是事物构造块,它是UML四种公共机制之一,用来对构造块的语法和语义进行文字叙述,使得可视化视图和文字视图的分离。8.标记值的作用是什么?它的表示法和约束的表示法有什么异同?在UML模型中如何区分它们?标记值是用来为事物添加新特性的。约束的表示法和标记值法类似,都是使用花括号括起来的串来表示,不过它是不能够放在元素中的,而是放在相关的元素附近。9.构造型的作用是什么?如果我们采用一个自定义的图标来表示它,那么可能遇到的主要问题是什么?构造型用来定义一些特定于某个领域或某个系统的构造块。用自定义的图标有两个问题:一是容易产生歧义,二是建模工具难以支持。10.约束有两种表示法,它们分别是什么?约束的内容可以以自由形式的文本来表示,也可以使用UML的OCL(对象约束语言)来精确定义。11.UML2.0在UML1的基础上新增了三种图,请指出它们的名称和作用。1)复合结构图:描述类的运行时刻的分解2)定时图:描述对象之间的交互,重点在于定时3)交互概观图:是一种顺序图与活动图的混合12.在UML2.0中定义了四种交互图,其中强调对象调用顺序的是什么图?顺序图13.交互概观图是哪两种图的综合。顺序图与活动图14.请绘制出类、用例和协作的图形符号。15.在“4+1”视图中,这个1表示的是什么,它有什么作用。这个1是用例视图。它是最基本的需求分析模型,是可被最终用户看到的系统行为的用例组成。常用的模型包括用例图、交互图、状态图、活动图等第3章类图2.在对类名、属性/方法名时,通常会遵循什么样的规则?请举例说明。对于类名通常采用CamelCase格式(大写字母开头、混合大小写,每个单词以大写开始,避免使用特殊符号),尽可能避免使用缩写,例如OrderDetail。属性名也采用CamelCase格式,但为了与类名进行区别,通常首字母以小写开头,例如productId。操作名的命名格式与属性名类似,不过通常是动词词组。3.假设类ClassB是ClassA的子类,其中ClassA的属性和方法如图所示,则ClassB能够访问的有哪些?图形位置颜色Draw()管理用户图3-30ClassA表示子类只有private的成员无法访问,因此可以访问的属性有mem02和mem03,可以访问的方法有op1。4.在图3-31中,是一个仓库管理系统的类模型局部,其中IncomeOrder是指入库单,OrderItem是指入库中的每一项,Product则是产品信息。请指出模型中的错误,说明原因并改正错误。OrderItemIncomeOrderProduct1111图3-31仓库管理系统类模型局部OrderItemIncomeOrderProduct11115.在图3-32中是一个“涉税服务管理效能管理系统”中类模型的一个局部,请根据该图回答以下问题。行政许可类申请行政审批类申请涉税服务类申请流转记录处理人1111窗口人员核查人员审批人员受理资料受理提示受理告知纳税人税务审批服务申请0..n10..n10..n0..n10..n10..n10..n10..n10..n110..n图3-32涉税服务效能管理系统类模型局部(1)在描述“税务审批服务申请”时,它主要包含哪几个方面的内容?它有几种不同的类别?受理资料、受理提示、受理告知、纳税人、流转记录。包括行政许可类申请、涉税服务类申请和行政审批类申请三类。(2)对于每一条流转记录,可能与几个“税务审批服务申请”相关?与几个处理人相关?每条流转记录只和一个“税务审批服务申请”相关,只与一个处理人相关。6.在图3-32中,对于每个流转记录的处理人它的类型(窗口人员、核查人员、审批人员)是唯一的,也就是只可能取一种值。请在图中加上表示这种规则的约束。7.后来,开发人员又在图3-32的基础上进行了一些修改,其中有一个局部修改成了如图3-33的内容。请说明这些新增加的元素分别表示什么含义。has是关联名称,表示这种关联是“拥有”关系。“申请ID”是限定符,表示每一个流转记录只能用一个“申请ID”。8.在绘制类图时,第一步就是发现类,最常用的方法是什么?请简要说明它的使用方法。发现类的方法有很多种,其中最广泛应用的莫过于“名词动词法”,其主要规则是从名词与名词短语中提取对象与属性;从动词与动词短语中提取操作与关联;而所有格短短语通常表明名词应该是属性而不是对象。图3-33修改后的模型局部行政许可类申请行政审批类申请涉税服务类申请流转记录处理人1111窗口人员核查人员审批人员受理资料受理提示受理告知纳税人税务审批服务申请0..n10..n10..n0..n10..n10..n10..n10..n10..n110..n{xor}第4章对象图1.对象特性的三要素是什么,请通过一个实际的例子来说明三要素的内容。对象特性的三要素是状态、行为和标识。张三对象具有身高、体重、学历、职务、收入等状态,具有读书、锻炼、吃饭等行为。福建省有个张三,北京市有个张三,我们说福建张三和北京张三,福建、北京就是两个不同命名空间的标识。2.“书”、“购物车”、“我的UML参考手册(第二版)”、“银行卡”、“号码为13600000000的手机卡”中,哪些是对象,哪些是类。光从这些名字是否一定可以确定为是对象?“我的UML参考手册(第二版)”、“号码为13600000000的手机卡”是对象。3.在图中最上面的对象的名称是什么?该图表示的意思是什么?请绘制出与其相应的类图。fuJian:ProvinceChina:CountrysiChuan:Province图4-1对象图实例China。该图的意思是福建、四川等省份组成中国。CountryProvince第6章用例图1.请列举出两种以上现代需求分析技术,并简要地说明它们的特点。用例:描绘一个系统外在可见的需求情况,是代表系统中各个项目相关人员(风险承担人,Stakeholder)之间就系统的行为所达成的契约用户故事:由客户参与编写,说明他们需要系统为他们做什么,一般用客户的术语编写,其长度约为三句话左右特性:就是一个小的,具有客户价值的功能2.在用例图中参与者是什么,它属于系统范围之内吗?参与者是为了完成一个事件而与系统交互的实体,它不属于系统范围之内。房产经纪人新增房源信息修改房源信息登录信息uses3.用例和使用场景之间是什么关系?用例是由一组用例实例组成的,用例实例也就是常说的“使用场景”。4.用例之间的扩展、泛化、包含三种关系有什么异同,请分别举例说明。包含用例是一个完整的用例,可以独立存在,也可以单独被参与者调用。扩展用例不是完整的用例,只是由部分扩展功能组成的,不能独立存在,必须依赖于基本用例。泛化关系:用来表示参与者与参与者之间,用例与用例之间的特殊/一般化关系5.对于一个电子商务网站而言,以下哪些不是合适的用例,指出并说明理由。输入支付信息将商品放入购物车结账预订商品用户登录邮寄商品查看商品详情输入支付信息:太小邮件商品:系统功能之外查看商品详情:太小6.为了满足物业中介行业的信息化要求,甲公司基于详尽的需求调研与分析,准备研发一套符合市场需要的、实用的信息管理系统。主要将实现客户资料信息管理、客户委托(出租、出售、租赁、购买)信息管理、业务线索生成与管理、房源状态自动更新、权限管理、到期用户管理、房源组合查询等功能。该公司小王,通过多次的与潜在客户的交流与沟通,完成了最初的用例模型的开发,图6-14是一个用例模型的局部:录入房源信息确认提交信息房产经纪人修改房源信息打开房源信息页面登录信息include图6-14物业管理系统用例模型局部(1)但小李认为该模型不符合“用例建模”的思想,存在明显的错误。说明错误所在,并说明应该如何修改。1)主要错误:用例的分解太细,并没有遵从每个用例为用户传递一个有价值的结果的原则。在原设计中“打开房源信息页面”、“录入房源信息”、“确认提交信息”都只是一个操作步骤,因此不适合作为用例。2)修改方法:将“打开房源信息页面”、“录入房源信息”、“确认提交信息”合并为“新增房源信息”。(2)在上图中构造型“《include》”表示的是什么意思,它与“《extend》”之间的区别是什么?在用例模型中,构造型“《include》”是用来表示包含关系。它通常用来表示被包含用例是被多包含用例使用的一个可复用模块,而《extend》且通常用来表示对用例的扩展。第7章交互图1.交互是什么?请举2-3个交互的实际例子。一次交互就是指在特定语境中,为了实现某一个目标,而在一组对象之间进行交换的一组消息所表示的行为。上传告警、发送短信2.在UML2.0中定义了哪四种交互图?其中强调控制流时间顺序的是哪一种交互图?哪两种是基本交互图?顺序图、通信图、定时图、交互概述图强调控制流时间顺序的是顺序图顺序图和通信图是两种基本交互图3.在顺序图中和在通信图中,分别应该如何表示“循环”结构的?在顺序图中,循环结构可以使用一个交互片断来表示在通信图中,使用迭代标记来表示循环。迭代是通过在顺序编号前加上一个迭代符“*”和一个可选的迭代表达式来表示的。对于迭代表达式,UML没有强制规定什么语法,因此你可以使用任何可读的、有意义的表达式来表示4.在交互图中,消息编号有哪两种形式?请分别说明它们的优缺点。一种是无层次编号,它简单直观;另一种是嵌套的编号,它更易于表示消息的包含关系。5.在交互图中,表示返回消息的符号是什么?表示异步消息符号是什么,异步消息指的是什么意思?返回消息符号:异步消息:异步模式:对象A发送了一个信号给对象B,那么A在发送完信号之后,就会继续执行,不会等待6.假设有一系统的协作图局部如图7-29所示,print方法的功能是将传入参数的值打印在屏幕上;fact方法是用来计算阶乘的,test的初值为1。那么将打印出什么?:A:B1:print(test)*[i=1..3]1.1:test=test+fact(test)图7-29协作图局部打印的值是10。将执行三次迭代,因此test的值是1+1!+2!+3!=10.7.请说明图7-30所示的顺序图的含义::A:B:C:Caller2:calculate(x)1:do(x)3:calculate(x)[x10]alt[else]图7-30顺序图示例客户类调用A类的do方法,并传入参数x;A类将判断传入的参数x的值是否小于10,如果是则调用B类的Calculat