1、业务描述:中国的省级行政区划设置为:23个省、5个自治区、4个直辖市、2个特别行政区。请结合此描述设计一个类图来反映中国和省级行政区的关系?(提示:中国是一个不可分裂的国家)。
2、业务描述:在线售票订位系统中,客户可以建立销售事件、事件确认、执行在线信用卡付费、账户修改管理;系统操作者可以建立在线销售订位事件、查询目前销售订位状况;系统设计维护者可以建立在线售票订位事件、查询目前销售订位情况、在线系统维护功能、系统环境设置。请根据上述描述的业务,绘制该描述的业务用例模型。提示:若有参与者泛化现象,必须使用参与者泛化关,不能重复罗列用例。
3、按如下描述绘制出“自治机器人系统”的类图。业务描述:这张图的焦点是聚集在那些让机器人在路上行走的机制所对应的类上。通过分析,可以发现一个抽象类Motor和两个从它派生出的具体类:SteeringMotor和MainMotor。抽象类Motor有五个方法:move()、stop()、resetCounter()、status()、distance()。这两个具体类又是另一个类Driver的一部分。类PathAgent和Driver有一个1对1的关系,类PathAgent和CollisionSensor有1对n的关系。
4、业务描述:“某大学某学院有一到多名教师,任何一个学院都有1到多名研究生,每名研究生可以通过教师所带的课程与任课老师进行往来”。请根据该描述利用UML设计高校教师个人简介的静态结构类图,须标注角色名、重数。
5、业务描述:兰州市是中国甘肃省的一个城市,甘肃省至少有2600万以上人口,这些人口分属不同的城市管辖,每个城市有5-9名主管不同业务的市长,每个市民均可以通过市长热线与不同的主管市长进行联系。请根据该描述利用UML设计该描述的静态结构类图,须标注角色名、重数。
6、根据给出的设计类图,请分别写出类Master、ClassA和Course的Java语言框架代码。
publicclassClassA{privateintAID;}publicclassMasterextendsClassA{privateintM_No;publicvoidStudy(){//...}publicCourseSelect(){//...}}publicclassCourse{privateStringNo;}7、业务描述:某医院由1到多个科室组成,每个科室包含1到多名医生,每名医生可以救治0到多个患者(属性和操作先不考虑)。请结合上述业务描述画出该业务的业务模型(提示:业务模型包括业务对象模型和业务用例模型)。注意:医院的本质是什么?
业务对象模型:
业务用例模型:
8、请将下图所示的对象模型转换为数据模型。提示:映射规则为:将外键放在关系重数为多的一端。
主键约束(PK)、外键约束(FK)
9、下图为参与者与参与者之间泛化关系的误用,请修改正确。
修改为:
10、根据此表设计出该软件系统的系统用例图
11、请将下图所示的对象模型转换为数据模型。提示:映射规则为:父类子类都映射成表,父类主键作为所有子类的主键。
12、网上售书系统的功能描述如下:
请根据系统功能描述来回答以下问题。
(1)该系统中参与者有哪几个?
(2)根据找出的参与者,画出该系统的系统用例图。
(3)根据功能描述设计该系统的静态结构类图。提示:没有属性描述的可省略属性,所有方法可省略,但类的关系和重数不能省略。
(1)4个,顾客、工作人员、管理员、供应商
(2)
(3)
13、请根据下表所描述的网络购物系统的类间关系,画出能反映下表类间关系的类图。(说明:类的属性和方法可省略,但类间关系和关系重数不可省略)
14、一般情况下,每个参与者与用例之间可以定义一个边界类,每个用例可以至少定义一个控制类,那么,请根据下述的用例模型需要设计几个边界类、几个控制类、几个实体类?并给出设计的边界类、控制类和实体类的名称和符号。
2个边界类
1个控制类
2个实体类
15、请根据给出的类图,回答类“ToolBooks”从类“Books”中都继承到了什么内容?
继承了Name,Price,getname()
购物系统
提供购买商品与浏览商品的服务
增加商品对比用例
销售人员继承顾客(泛化)
17、在考虑部署环境时,如果需要将某个包的内容部署到多个不同的节点,如何对包进行部署?
对包进行分布式部署
18、根据以下业务的描述,请确定该业务所描述的系统中参与者有哪几个?请对此业务设计用例模型。
(1)潜在会员,会员使用系统的主要功能。
(2)会员,货管员,经理改变系统的数据。
(3)潜在会员,会员,经理,货管员从系统获得信息。
(4)经理,货管员需要系统的支持以完成日常工作任务。
(5)会员,经理对系统运行产生的结果感兴趣。
(6)系统管理员负责维护、管理并保持系统正常运行。
(7)系统每个月定期的自动向经理提供零件的库存情况。
(8)系统可能与供应商系统交互。
(9)系统每天定期的将购买零件的货款导出到财务系统。
参与者有:潜在会员,会员,经理,货管员,系统管理员,供应商系统,财务系统
19、“网上求职招聘系统”中有一“搜索工作”用例,请根据下述每个参与者处理的业务活动,画出该用例的活动图。活动描述:求职者首先通过输入关键词,然后招聘系统得到获取关键词后,利用关键词搜索工作,并显示所有与关键词匹配的工作后,结束搜索工作。
共享聚集(聚合):整体拥有部分。(比如一辆车由轮子、座椅、玻璃等构成,缺一仍能为车子)
普通聚集(组合):部分和整体具有相同的生命周期——整体消失则部分也消失。(比如:人由脑袋、胳膊、腿等构成,缺一不可)
应该是共享聚集
21、根据下述系统构件与接口的描述,画出该描述的系统构件图。某销售管理系统由收银机系统、交易处理系统、订单管理系统、财务系统4个构件组成,提供了销售信息、财务接口2个接口。其中:接口“销售信息”由“交易处理系统”实现、接口“财务接口”由“财务系统”实现。在此系统中构件“订单管理系统”依赖于“收银机系统”和“交易处理系统”构件,构件“收银机系统”依赖于接口“销售信息”,构件“交易处理系统”依赖于接口“财务接口”。
实现关系:接口和构件之间用实线连接表示实现关系
依赖关系:接口和构件之间用虚线箭头表示依赖关系
22、如图所示为“商品导览系统”构件图,根据图示分别说明图中①有哪些构件?②有哪几种关系?③接口“结账”和接口“购买商品”分别由哪个构件实现?
①结账系统、商品资料库、购物车、商品导航系统
②实现关系
③接口“结账”由购物车构件和结账系统构件实现;接口“购买商品”由购物车构件和商品导航系统构件实现。
23、下述类图是一个仓库管理系统的类图的局部,其中:IncomeOrder是指入库单,OrderItem是指入库中的每一项,Product则是产品信息。请指出此模型存在什么设计错误?如何改正?再画出正确的类图。
IncomeOrder与OrderItem之间不该为继承关系,应改为聚合关系
24、画出自动车锁系统中实现“锁车”用例的顺序图,涉及的对象有车主、车钥匙、汽车。提示:对象请采用匿名对象。
25、根据下面的陈述画出该业务陈述的设计类类图
(1)学生包括本科生、研究生两类;
(3)教师包括讲师和教授两类;
(4)一个助教可以为一个讲师或一个教授担任助教,
其中:一个讲师只能有一个助教,一个教授可以有1到5个助教。
26、根据下面对象间交互的叙述,绘制一幅关于顾客从自动售货机中购买商品的顺序图:①顾客(User)先向自动售货机的前端(Front)投币;②售货机的识别器(Recognizer)识别钱币;③售货机前端(Front)根据识别器(Recognizer)返回的识别结果产生商品列表;④顾客通过前端(Front)选择商品;⑤前端(Front)向识别器(Recognizer)发出选择商品操作;⑥识别器(Recognizer)通知出货器(Dispenser)将所选商品进行出货,⑦并反馈给顾客。
27、请根据给出的代码框架,画出对应的类图。(本题与37相反,会互相转换即可)
28、一本书的组成有一个封面、一个目录、一个前言,若干章,每章有若干节,每节有若干段,每段有若干句子,每节有0个或多个插图,还有0个或多个表格,最后有一个附录。请设计出能够用来表示此业务的语义背景知识的设计类类图。
29、业务描述:某旅游业务申请系统由“UserInterface”、“Tourbusinessprocessingservices”、“Tourdatas”三个包组成,同时该系统的“Tourbusinessprocessingservices”包通过外部子系统“Financesystem”提供的“Externalinterfaces”接口进行财务数据的导出。请根据题意设计该系统的软件架构包图。
30、下图的设计方案是“Square类直接从Rectangle类”进行了继承,违背了面向对象的设计原则,请利用LSP(Liskov替换)原则重新设计使其符合面向对象的设计原则,同时完成对“Parallelogram类、Trapezoidal类”的设计,使设计方案具有“耦合度低、扩展性好、易修改”等特性。(提示:注意使用构造型<>和“实现”关系画出改进后的类图)。
31、在客户服务系统中,可将客户业务处理的功能单独的作为一个包,在该包中嵌套两个子包,分别是客户咨询管理,和派工管理。请根据该描述画出该客户服务系统的包图。
32、根据下面的描述,找出所有的对象(为名词的都是),画出该描述的设计类类图(必须标注类间关系和重数。属性和方法可以省略)
业务描述:某公司销售多种物品,每个物品包含了0到多个物品特征,1到多个物品对应于1个货物类别,0到多个货物类别对应于0到多个类别特征,且每个物品特征属于每个类别特征;物品存放到0到多个仓库中,且每个物品和仓库之间都有库存;客户可以同时下订单,每个订单包含0到多个订单项,且每个订单项对应一个物品。
33、下图为用传统的结构化软件开发方法设计的数据流图DFD,因系统升级改造,现需要用面向对象的软件工程方法对其进行软件再工程工作。业务描述:假设一家工厂的采购部每天都需要根据接收事务(零件的出库和入库)情况去更新库存,且每天根据出库的情况将库存值小于库存临界值的零件产生订货信息,并根据订货信息产生订货报表,最后将订货报表提交给采购员(部)去采购。请根据DFD图的设计结果,设计出该库存系统的系统用例模型(不是业务用例模型),并设计出能反映该业务的静态结构图(类图)(关系、重数必须标注全面,角色名可省略)。提示:根据业务描述先确定参与者,再确定每个参与者所完成的工作。
用例模型:
类图:
34、请分别解释下列用例图包含的交互过程的设计思想
(1)双向关联关系,用例可以把内部消息通知给参与者,参与者可以把外部消息变更通知给用例。
(2)单向关联关系,箭头指向被拥有者,参与者可以把外部消息变更通知给用例。
(3)单向关联关系,系统可以把内部消息通知给参与者。
修改后:
补充后:
36、下表为“旅游申请系统”中的关键抽象,请根据表中给定的关键抽象,结合其含义,设计并画出类图(不需属性和操作,只设计出类与类间的关系及重数即可)。
37、详情请见题27。
38、现有如下图所示的咖啡机的抽象类,请根据给定的抽象类设计一个“MarkⅨ”型号的具体咖啡机的类图。提示:可根据教材中讲解的依赖倒置原则来实现,注意抽象类图中采用的是《Interface》接口,而不是《Abstract》抽象类。设计结果可直接在下图中添加。
依赖倒置原则说明这三个都是接口,需要添加三个“MarkIX”型号的具体咖啡机的类图,即添加三个接口的实现类图。
39、如下图所示为“超市系统”设计的用例图,该系统的参与者有哪几个?用例有哪几个?
参与者:Banknetwork,Manager,Clerk
用例:Authorizepurchase,Openstore,Logontoredister,Sellgoods,Restockinventory
40、请根据如下给定的顺序图,将其转换为通信图。
41、下图为“学生、课程、成绩”关联类的设计,因面向对象的编程语言不支持关联类的实现,设计时需要根据业务规则将关联类直接定义为普通的类,从而将一个多对多的关系转变为两个一对多的关系。请画出改进后的类图。
42、现有一个用传统的结构化软件开发方法设计的数据流图DFD,因系统升级改造,现需要用新的面向对象的软件工程方法对其进行软件再工程工作。业务描述:某高校学生在每学年开始时都要采购教材,一般由学校教材科(或保管员)供应(销售)。具有的功能:根据学校的教学计划,向选课的学生及时供应教材;审查学生购书单的有效性,对有效书单发售所需的教材;对属于计划供应但暂时缺货的教材进行缺书登记;根据缺书登记补充采购所缺的教材,通知学生补购;将缺书登记表汇总为待购计划;待购教材到货后,及时通知学生补购。请根据给出的销售业务的DFD图,设计出销售业务的用例模型图。提示:根据业务描述先确定参与者,再确定每个参与者(学生、保管员)所完成的工作。
43、根据下述“铁路售票系统”的业务描述,画出该系统的用例模型,注意“包含<>”的利用。
(1)系统管理员负责进行“站点信息维护”、对“车次信息维护”;
(2)普通网民可以完成“网上订票”,订票时必须“填写预定信息”;
(3)售票员“输入订票码”过程中,必须“提取网民的预定信息”。售票员还可以完成“收款”工作和对网民“开具发票”;
44、下图为设计好的零售业务中各个对象之间交互的顺序图,请根据此设计结果画出对应的通信图,用于描述各个对象两两之间的协作关系。请再解释一下,顺序图和通信图中为何采用的对象都是“匿名对象”?
45、业务描述:茶叶的种类分为绿茶、黄茶、乌龙茶、红茶、黑茶、白茶等。其中绿茶、红茶和乌龙茶我们经常见到,绿茶又被称为不发酵茶,干茶和泡出来的茶汤颜色以绿色调为主,比较有名的品种有西湖龙井、洞庭碧螺春、黄山毛峰等。红茶属于全发酵茶叶,特点是红叶和红汤,性温和,比较适合日常饮用,能起到减肥、美容、养胃的功效,最著名的有祁门红茶、云南滇红等。乌龙茶介于绿茶和红茶之间,是半发酵茶类,既具有红茶的醇厚口感,又带有绿茶的清香。请根据业务描述对该业务进行静态结构(类图)模型的设计,使模型完全涵盖该业务。提示:只需根据业务描述的内容给出类的属性、操作、类与类之间的关系即可,没有描述的可省略。注意对聚合、泛化、关联关系的利用,重数可省略。
46、学术论文主要由学位论文、期刊论文等2类组成,其中:学位论文是影响是否能拿到学位的最关键的论文,主要是本科学位论文(分为论文类、设计类)、硕士学位论文(分为工程硕士、全日制工程硕士、硕士)、博士学位论文(学术博士、工程博士)。期刊论文分为普刊、核心期刊、英文期刊,其中国内的核心期刊又分为7大类、英文期刊又分为一般刊物、EI刊物和SCI刊物,按中科院SCI分区SCI刊物又分为SCI一区、SCI二区、SCI三区、SCI四区。请根据业务描述对该业务进行静态结构(类图)模型的设计使模型完全涵盖该业务。提示:只需根据业务描述的内容给出类与类之间的关系、重数即可,属性和操作可省略。
47、请根据下述学术期刊论文的稿件处理流程,该流程图只反映了论文投稿后的9个不同状态的处理顺序,请画出能反映投稿处理流程的状态机图(注:“事件”必须标注全面)。
状态机图:
48、下图为某网吧的网络拓扑结构示意图,请设计出该系统的部署图(注意区分处理器节点和设备节点,网吧内部所有硬件设备采用TCP/IP通信协议来链接)。
部署图:
1、你是如何理解软件开发过程中的“迭代”和“增量”技术的?结合儿时的“滚雪球”游戏来阐述一下“迭代和增量开发”的软件设计思想,并回答一下“迭代和增量开发”技术有何优势?
答:
迭代和增量开发是先构建部分再构建整体,通过多次开发来完善构建,逐步得出一个完善的解决方案,就像滚雪球一样,先捏出一个小的来,再一点一点往大了滚。
2、请参考下图,请阐述对软件开发过程中付出的代价进行分析?其目的是为了什么?
在软件开发后期引入一个变动比在早期引入相同变动所需付出的代价要高2~3个数量级。维护是极端艰巨复杂的工作,需要花费很大代价。目的是为了尽早发现错误。
3、请阐述“软件文档”在软件开发中的作用,并阐述软件文档主要分为哪两类?
4、你是如何理解“编写一段能工作的、灵巧的代码是一回事,而编写一段能支持某个长久业务的代码则完全是另一回事”这句话的?它阐述了一个什么道理?
其阐述了,高质量的设计将是软件系统长期稳定运行的根本保障,是软件系统走向成功的关键所在。软件开发过程中,为了获得高质量软件,必须遵循开发规范,选择采用恰当的设计方法,正确的开发方法、进行项目管理、按时完成各阶段的文档资料。
5、软件重用(复用)的目的是为了什么?
提高分析、设计、开发效率。
6、软件业务分析与设计过程中主要包括认识问题、分析问题和解决问题,请阐述这三个过程分别从什么角度来做工作?侧重点分别是什么?
认识问题是:以用户的身份站在用户的角度认识问题,获取需求采用用例建模技术。由客户提出其可接受的、系统必须满足的条件或具备的能力。
分析问题是:以开发者的身份站在用户的角度分析问题,分析需求采用用例分析技术。为了满足需求模型中所描述的功能,系统内部应该有什么样的业务核心机制,分析目标是开发一系列模型,以描述软件的核心成分,从而满足客户定义的需求:建立分析模型。
解决问题是:以开发者的身份站在开发团队的角度分析问题,解决需求采用面向对象设计。面向对象的设计原则是构造高质量软件的出发点。
7、在交互图中,顺序图与通信图能够分别用来干什么?
8、结构化软件工程中的“软件结构图”与面向对象软件工程中的“用例模型”有什么相同之处?又有什么不相同之处?请解释原因。
相同之处:
①都以图的形式呈现,便于理解。
不同之处:
①软件结构图是为了反映软件系统中组件之间相互关系和约束的体系结构设计图。
②用例模型是系统既定功能及系统环境的模型,它可以作为客户和开发人员之间的契约。
9、在子系统设计策略中,为什么要遵循面向接口来编程,而不是面向子系统来编程?
采用大量的接口来解耦子系统与外部的耦合,才可以保证子系统的独立性和可替换性,从而提高系统的稳定性。
10、为什么说用例可以捕获系统的需求?系统总体需求或软件所包含的整体功能需求可以用哪个模型来替换传统的基于功能分解的结构化方法?请画出“ATM取款机”的用例模型。
用例图中的用例和参与者,表明了哪个参与者参与了哪个用例的执行。用例主要用来捕获系统的高层次用户功能性需求,是外部可见的系统功能。从用户的视角描述了在逻辑上相对完整的一个功能流程,演示了人们如何使用系统。
用例图是被称为参与者的外部用户所能观察到的系统功能的模型图,主要用于需求捕获。能够对系统提供的服务进行描述。
11、为什么要进行软件设计?没有软件设计会对软件系统带来什么结果?
软件设计是将问题或事物分解并模块化使得解决问题变得容易。软件设计是后续开发步骤及软件维护工作的基础。
12、如果一个用例非常复杂,如何对该用例进行迭代?
13、任何软件都需要架构,架构可简单也可复杂,请问在软件设计时,为什么需要架构?
14、在模型驱动架构(MDA)中,系统开发过程就是建模的过程,从需求、分析、设计、实现到测试,所有阶段的交付物都是模型。请问:RUP开发过程都建立了哪些模型?并根据建立的第1个模型说明与后续的每个模型的关系(提示:除第1个模型外,后续的所有模型都来自于第1个模型)。
在RUP开发过程都建立如下8个模型:
①业务模型:对问题领域中的组织机构及其业务的抽象。
②用例模型:表达系统的功能需求。
③分析模型:描述一个将建造的系统,分析模型是可选项,只对于复杂的系统才需要建立独立的分析模型。
④设计模型:给出系统设计的具体解决方案。该模型除了处理功能需求外,还需要处理非功能性需求以及解决方案中的对象问题。
⑤进程模型:表达系统的并发和同步机制。一般对于多线程的并发系统才建立进程模型。
⑥部署模型:表达系统的硬件拓扑,以及系统软件在硬件上的配署。
⑦组件模型:表达用于组装物理系统的各个软部件。
⑧测试模型:表达验证系统的途径。
15、请根据建筑工业的“模块化、标准化、工厂化、流水组装”来阐述一下你对软件产业的启示(限200字以内)
在软件产业,
模块化指按模块划分系统的体系结构,使得各模块间有良好的接口,有助于信息隐蔽和抽象、更好地表示复杂的系统;
标准化指软件开发过程中的统一化,包括文档格式的一致、工作流程的一致等等;
工厂化指软件开发过程中运用更新的技术替代传统的技术;
流水组装指软件开发过程中,每个程序员负责自己各自模块的开发,最后对模块进行组装得到整个系统。
16、请根据下图阐述一下你对软件设计工作的理解。(限100字以内)
在软件工程中最重要的两个点为技术和设计理念。技术是软件工程师需要掌握的技术,如:数据库、数据结构等计算机方面的知识;设计理念是开发软件的目标,如:为什么设计此软件、应解决哪些实际问题等等。有了明确的设计理念才能顺利开展后期的编程开发工作。
17、MDA的关键之处是模型在软件开发中扮演了非常重要的角色,请问对“模型”进行建模的目的是为了做什么?(限100字以内)
模型是对系统的一种抽象。模型帮助我们按照实际情况对系统进行可视化,可以让我们描述系统的结构和行为,有利于人与人之间的沟通交流。总之,建模的目的是为了更好地理解和管理系统复杂性,支持系统需求、分析、设计、验证和确认等活动。
18、基于组件的开发方法中主要采用了“软构件技术”,请问重用软构件有何种优势?
重用软件构架有助于改善软件质量,大量使用软构件还可以提高软件的灵活性和标准化程度。
19、部署图为什么是系统网络拓扑结构的最终物理描述?
部署图代表对象系统组件的执行体系结构,包括节点或模式以及连接它们的中间件。主要用于帮助安装和部署人员掌握系统的硬件物理拓扑结构,与其他UML图相比,部署图有助于设计组件系统的硬件拓扑,故它是系统物理拓扑结构的最终物理结构描述。
20、课程对软件工程师必须具备的“抽象、分类、分解、复用”4项技能进行了全面的涵盖和应用,请解释一下你对此是如何理解的?(限300字以内)
分类:对事物进行归纳和演绎。
分解:为了实现项目的目标,把项目要完成的工作,包括管理活动和过程活动,分解成一个个可控的、小的任务。
复用:是将已有的软件成分用于构造新的软件系统,被复用的知识不仅仅是程序,还包括项目计划、可行性报告、需求定义、分析模型等等。这样做是为了缩减软件开发和维护的花费,是提高软件生产力和质量的一种重要技术。
21、下图为用例文档中的事件流描述-用例交互四部曲示意图,请从需求和分析两个阶段根据下图回答问题:
(1)需求阶段的用例文档是从用户角度看待用户问题,侧重描述交互的1(动作)、4(响应)步的事件流,请解释为什么?
(2)因为需要分析系统如何响应用户请求,此时可以对需求阶段用例文档中系统的处理流程进一步细化。