资源描述
UML补考练习汇总
1、请根据本学期的课程,结合实际软件开发过程,归纳出使用面向对象技术进行项目开发,需要开展哪些活动,你认为最关键的活动是什么?(A卷考过)
用例模型:用例文本和用例图(1分)
领域模型分析:领域模型(1分)
用例顺序图分析:用例顺序图(1分)
类图建模:类图(1分)
最关键的活动是领域建模。(1分)
2、“老师说要迭代开发,真是有道理。我决定在我们的项目组实施迭代开发,第一迭代先做需求,第二个迭代做分析,第三个迭代做设计….”,这句话正确吗?为什么?
不对(2分),每次迭代都是一次软件开发完整的过程,不是按步骤的每次迭代完成不同的任务(3分)。
3、假设要构造一个和用户下棋的游戏系统,哪些UML图对设计该游戏有帮助?为什么?(A卷考过)
答:用例图、类图、顺序图(交互图)(2分),用例图可以归纳游戏系统需要完成的功能需求,类图分析了系统需要的类,及其承担职责,刻画了系统的静态结构。使用顺序图可以对具体场景的交互进行动态建模。理解系统的内部的交互过程。(3分)。
4、在用例模型中,除了需要绘制用例图,最重要的是为每个用例编写用例文本,用例文本当中常有:主要参与者、涉众及其关注点、前置条件、后置条件、主成功场景、扩展场景、特殊需求等部分。阿呆比较笨,老是搞不清。请你告诉他那个部分最重要,解释该部分含义,并说明重要理由。
主成功场景 场景里面有对话功能,交互过程
5、根据下列代码片断,画图说明已经创建的类的数据成员及类间的关系。(要求:如有关联需要标明关联的方向、角色名和多重性)
[代码]
public class CatalogueEntry {
private String name;
private String number;
private String cost;
···
}
public class Part {
private CatalogueEntry entry;
···
}
▲6、通信图和顺序图都是交互图,阿呆不明白什么时候用通信图,什么时候用顺序图。请你为他解释顺序图和通信图的优点和缺点。
顺序图和通信图的优缺点:顺序图对工具的支持更好,并有更多有效的表示法,可以更方便地表示调用流的顺序,并且在文档化方面更胜一筹。而通信图则必须查阅顺序编号,在墙上绘制“ UML草图”时利用通信图易于修改更具空间效用,而顺序图在墙上绘制(或窄幅纸张)时不如通信图方便。
7、Monopoly游戏中,由谁来创建Square对象比较合适?阿呆发现类图中有两个类都可以承担此职责:MonopolyGame和Board。他有点迷糊不知道该选那个比较好。请你帮他选一个,并解释理由。
因为square是被包含关系,被包含于board
所以由board来创建
▲8、阿呆刚学过GRASP设计原则,觉得很不错,于是准备应用在设计的选课系统中,系统有课程类,课程类的实例包含某门课程的具体信息。阿呆就想,依据信息专家的原则,那么,该由课程对象把课程信息存入到数据库中。但是项目经理告诉他这样做不好。阿呆想不通,请你详细为阿呆解释一下,这样做有什么坏处,应该如何处理。(A卷考过)
坏处:高内聚,低耦合,冗余高;
应该虚构一个类来帮助解决
参考P213
将课程信息存入数据库的职责分配给课程类会造成课程类与数据库接口类的耦合,面向数据库的操作与实际的课程类无关,使得课程类非内聚,不利于数据库操作的复用,其它类也存在保存对象的职责。
在某些情况下,专家模式建议的方法并不好,这是由于耦合与内聚问题所产生的。专家会建议由课程对象把课程信息存入到数据库中,那么按照这个决定进行逻辑推理,每个类都应当把自身保存到数据库中。但这样会导致内聚,耦合,及冗余方面的问题,例如现在课程类必须包含于数据库处理相关的逻辑,如SQL和JDBC相关的处理逻辑。因此,课程类由于存在其他职责而降低了它的内聚,这个类必须与其他子系统的数据服务进行耦合,会使得耦合度上升。这样会导致大量持久性类中重复出现类似的数据库逻辑,有大量的冗余。
所以这样的做法违反了基本架构原则,应将应用逻辑和数据库逻辑放置不同一处,而不是在同一构件中把不同的系统关注混合起来。因此,按照专家模式,该由课程对象把课程信息存入到数据库中是合理的,但由于其他原因,会使得我们最终得出不佳的设计
9、请你详细说明一下领域模型与设计类图的相同点及不同点。
相同点 领域模型是没有方法的类图的集合
不同点 领域模型只有属性无类型无方法 类图包括类名,属性,操作
10下图是一个“涉税服务管理效能管理系统”中类模型的一个局部,请根据该图回答以下问题。在描述“税务审批服务申请”时,它主要包含哪几个方面的内容?它有几种不同的类别?(A卷考过)
1:三个指向他的“申请”
2:4个被它指向的
11 POS系统中,当顾客以支付货款时,需要计算出支付余额。阿呆发现类图中有两个类都可以承担此职责:Sale和Payment。他有点迷糊不知道该选那个比较好。请你帮他选一个最佳方案,并解释理由。
选SALE,因为SALE只需要一条线连接到paymant,而payment却需要两条连接到SALE
根据内聚耦合原理,应当选择SALE(A卷考过)
▲12搬了新家,阿呆决定去申请安装ADSL,他到营业厅填好单,和证件一起交给营业员。营业员查看阿呆的证件,接过单子开始操作电脑。如果站在营业员身后,会看见营业员打开一个“受理”菜单,选择“ADSL”,弹出一个带有好多个Tab的框框,营业员哔哩叭啦把数据输进去,然后让阿呆设置一个服务密码,又过一阵,营业员递出单子,告诉阿呆回家等,施工人员一天内就到。阿呆高兴的出门。营业员叹了一口气,想“又弄完一个”……
考虑营业员的“ADSL业务受理系统”,根据上述信息,分析下面所列对象或事件归属那一类别,并在表中填写。(注意,所列的对象或事件有可能属于多个类别,也有可能都不属于任何一类,多填或少填都不得分,涉众填不全扣一分)
对象或事件:阿呆 营业员 设置密码 施工人员 受理ADSL申请 安装ADSL “受理”菜单
类别:主参与者 辅助参与者 用例 涉众
主参与者
营业员
辅助参与者
阿呆
用例
受理ADSL申请
涉众
施工人员
13状态图是为某个对象的状态和事件以及响应事件的行为的建模。下面的普通电话机的状态图,技术经理已经使用状态图对其详细建模,但阿呆不小心把图弄模糊了,请你帮忙补充完整。(状态及事件名可以中文表示)
(1)
Active
(2)
PlayingDialTone
(3)
Dialing
(4)
Connecting
(5)
Talking
14请根据下列代码片断,画出设计类图。注意类,类的属性和方法以及类之间关联,关联的导航性、多重性或是角色名。
Store store=new Store();
Register register=store.getRegister();
int t=store.getNo();
ProductCatalog catalog=new ProductCatalog();
register.setNo(t);
register.setCatalog(catalog);
ProcessSaleJFrame frame=new ProcessSaleJFrame(register);
15.下面是航空公司系统的部分类模型,模型里的类都是需要持久存储的对象。请你为阿呆设计一个将该类图映射为关系数据库中的表的方案。即数据库中该有用那些表存储这些类的数据,这些表该有那些列。(表的主键外键要说明)(A卷考过)
Airline(Alid,name,symbol)
Employee(idcard,name,ALID)
Pilot(idcard,fightRating)
FightAssistant(idcard)
Flight(fightNum,data,PilotID,copiloted,AlID)
AttendantAssignment(fightNum,idcard)
16 请说明领域模型中要展示内容(三个方面),并根据下面描述绘制出汽车公司调度管理系统的领域模型。(A卷考过无答案)
阿呆开设了一家汽车公司专门为学生服务,公司拥有40辆汽车,服务对象是1600个学生。汽车日常行驶的路线有30条。每条路线上设有许多站牌,学生们可在这些地方上下车。公司雇佣了20个全职的司机和30个兼职的司机。汽车公司设有一个调度员,专门负责司机和路线的安排。公司经常会收到学生或家长们对司机的投诉。如果投诉的情况相当严重,司机有可能会被停职甚至被解雇
17根据以下Java源程序片断绘制出doPayroll函数实现的顺序图。
public class Payroll {
private PayrollDB itsPayrollDB;
private PayrollDisposition itsDisposition;
//....
public void doPayroll(){
List< Employee > employeeList = itsPayrollDB.getEmployeeList();
foreach(Employee e in employeeList) {
bool flag=e.isPayDay();
if(flag) {
double pay=e.calculatePay();
double deductions=e.calculateDeductions();
itsDisposition.sendPayment(pay-deductions);
}
}
}
}
20我家超级市场是大型的连锁零售商场,销售各类商品,超市的收银员使用POS收银系统处理用户的销售。请问收银员是处于POS收银系统的边界外还是边界内?为什么?
21详细解释下列消息。(说明消息名称、参数、返回值等)
(1)2:display(x,y)
(2)1.3.1: p:=find(specs)
(3)[x<0]4:invert(x,color)
(4)3.1 *:update()
(5)1:create(p,4)
22 请说明领域模型中要展示内容(三个方面),根据下面描述绘制出领域模型。
假设一个公司雇佣了若干员工,每个员工的信息包括员工号码、姓名、地址和生日。该公司当前有几个项目,每个项目的信息包括项目名称和开始日期。每个员工可同时被分派到一个或几个项目中,也可以不做任何项目。每个项目至少由一个员工来承担。公司在每个月末给每个员工邮寄一张支票,支票上的数额与项目的性质和工作时间相关。请用一张类图描述上述情况。要求:给出相关的类、属性、方法和关联
23下面是Monopoly游戏设计过程中的一张每个轮次实现顺序图,请根据顺序图所示,写出takeTurn 方法的基本实现代码。其中dice[i]中i等于2。(包括函数的定义,函数所在类的定义。)
24请根据下面描述回答相应问题:
学院图书馆需要一个新的图书管理系统管理图书资源。图书由图书馆顾客借出、还入和预定。当图书逾期一周时,会以电子邮件的方式通知顾客。图书每逾期一天,顾客将被罚1元。每本书最多罚款10元。顾客出有不同身份,这些身份能够影响一本书被借出的时间。不同的身份所获得的服务也不同。学生借书可借出四周,教师可借阅两个月,图书馆工作人员可以把书保留三个月。只要没有其他顾客要求借阅,任何可借出的图书馆资源都可以续借。图书管理系统必须联网,顾客可以通过浏览器进行检索和预订。
(1)请画出该图书管理系统的主要用例图。
(2)建立该图书管理系统的领域模型。
25. GRASP是什么的缩写(中文意思也可以),简述“信息专家”(Information Expert)设计原则的内容。举例说明。简述“控制器(Controller)设计原则的内容。举例说明。
答:GRASP:General Responsibility Assignment Software Patterns,通用职责分配软件模式。
信息专家:对象具有某方面完整的信息,应将操作信息的职责交给这个对象。这个对象就是所谓的信息专家。
如销售总额的获得,应当寻找具有确定总额所需信息的那个对象负责。
控制器:虚构出一个用来接收和处理系统事件的职责的类。
如Pos系统中处理销售用例,外部参与者的发出请求首先提交给Register控制器处理
26.请解释和比较用例图中用例间的扩展(<<extend>>)和包含(<<include>>)两种关系。
答:扩展关系:扩展用例是基用例的一段相对独立并且可选的动作流
包含关系:使用包含(Inclusion)用例来封装一组跨越多个用例的相似动作(行为片断),以便多个基(Base)用例复用。
27在面向对象分析过程中,寻找对象、类、属性、属性值的策略是什么?
答:采用名词法,把需求分析中出现的名词全部列举出来, 再进筛选。有的名词可能转化为对象,有些名词可能建模为对象的属性。对找出的对象进行数据抽象,提取出类。
公司可以雇用多人,人也可以为多个公司工作。每个公司只有一个总经理。下面的经理可以管理多个员工,请在下图中的关联线上加上适当标注(关联名、角色和多重性),使上述含义清楚。(请标注在答题纸上)
答:
28.请写出类图对应的面向对象代码。
Class Person{
Company employer;
Public void assign(Department d){…}
Public void setCompensation(Salary s){…}
}
Class Company{
Person employee[10];
…
}
29.下面描述飞行公司雇员的类图,请将该类图映射为关系数据库中的表。
映射为一个表:
EmployeeID, name, taxpayerNumber, employeeType, flightRating, position
EmployeeID为主键。employeeType为新增的字段,类的类型。
30.下面给出了预订航班用例的主要成功场景:
用例:预订航班的主成功场景
1.顾客向系统提交航班预订信息(出发地、目的地、出发日期和人数)
2.系统检索满足这些条件的航班
3.系统显示满足条件的航班信息
4.顾客选择所要的航班
5.系统检索该航班剩余的座位信息
6.系统显示可预订的座位信息
7.顾客选择所要的座位
8.系统生成一个临时预订记录
9.系统将顾客所选择的座位状态从“未预订”修改为“已预订”
……
分析员张三认为与该用例相关的对象至少有Reservation(预订)、Seat(座位)和Flight(航班)。请绘制出该用例主成功场景顺序图(请补充必要的对象)
31.设计一个电子投票系统。一次电子投票可能涉及到一个或多个职位的竞选,每个职位的竞选涉及到多个候选人。在一个具体的职位竞选时,投票人能看到该职位的名称及相应的候选人(每个职位的候选人不超过5个),投票者只能为该职位选中一个候选人。每个职位的竞选作为一屏独立的信息提交给投票者,投票机由一名监督员启动。每个投票者在投票前必须输入自己的身份证号码,以避免多次投票给同一个候选人。投票者可以查看每个职位的竞选信息并投票,也可以翻屏的方式返回先前的屏幕修改投票决定。当投票结束时,投票者将看到自己给每个职位的投票结果。每个职位的投票结果(职位的名称和每个候选人的得票数)将以独立的一屏信息显示。请根据上述情况,建立该电子投票系统的领域模型。
32.下面的代码描述了一个DataSet类,该类提供了对一组数据的基本统计功能,以及一个ExamMarks类,它使用期DataSet存储并计算一组考试分数的平均值。主函数展示了读入两个分数,用ExamMarks保存它们,并打印输出平均值。画一个顺序图,说明主函数执行时发生的交互。(8分)
DataSet类
class DataSet{
private float data[];
private int items;
public DataSet(){
data=new float[256];
items=0;
}
public void addDataPoint(float d) {
data[items++]=d;
}
public float mean(){
float total=0;
for(int i=0;i<getSize();i++){
total+=data[i];
}
return total/getSize();
}
public int getSize(){
return items;
}
}
ExamMarks类和Average类:
Class ExamMarks{
private DataSet marks;
public void enterMark(float m){
if(marks=null){
marks=new DataSet();
}
Marks.addDataPoint(m);
}
float average(){
return marks.mean();
}
}
public class Average{
public static void main(String args[]){
ExamMarks exam=new ExamMarks();
exam.enterMark(56);
exam.enterMark(72);
System.out.println(exam.average());
}
}
33.通常自动售货机会按用户的要求进行自动售货。供货员会巡查向其内供货,取款员会定时取款。请根据上述描述建立用况图。
34假设一个公司雇佣了若干员工,每个员工的信息包括员工号码、姓名、地址和生日。该公司当前有几个项目,每个项目的信息包括项目名称和开始日期。每个员工可同时被分派到一个或几个项目中,也可以不做任何项目。每个项目至少由一个员工来承担。公司在每个月末给每个员工邮寄一张支票,支票上的数额与项目的性质和工作时间相关。请用一张类图描述上述情况。要求:给出相关的类、属性、方法和关联。
35某订单管理系统的部分UML类图如图所示。
图 订单管理系统的部分UML类图
在图中,Product表示产品,ProductList表示所销售产品的列表,Order表示产品订单,OrderItem表示产品订单中的一个条目,OrderList表示订单列表,SalesSystem提供订单管理系统的操作接口。
有个用例要求依次统计产品目录中每个产品的订购总量,并打印出每个产品的编号、说明、订购总量和订购金额
请依据类图,绘制此统计用例的用例顺序图。
36、请根据下列的类图,分析需要持久化这些类所需要的数据库模型,请注明主键和外键。(8分)
(如:
Student:studentNo,name,major,class,CourseNo
主键:studentNo;外键:CourseNo ) chairperson:系主任/院长
答:
School:id,name,address,phone;主键:id
Student:studentID(主键),name,schoolId(外键)
Course:CourseID(主键), name
StudentCourse:studentID,courseID
CourseInstructor: courseID,instructorID
Instructor:id,name,departmentId,
Department:id,name,schoolId,chairperson
37考虑一个实际的超级市场,下面是给出的一张用例图。请为“购买商品”用例编写主场景流程,并给出在“购买商品”主场景中可能出现的异常情况(简要列举)。
答:购买商品主场景流程
1. 客户带着商品来到柜台
2. 收银员扫描客户的每项商品
3. 收银员计算商品的总金额、含税
4. 收银员询问支付形式
5. 客户给了一张信用卡
6. 收银员扫描了信用卡
7. 校验器报告信用卡付款是可以接受的
8. 客户签署信用卡收条
例外情况
1. 某项商品扫描出错
2. 信用卡扫描出错
UML试卷
一、选择题:(共10题,共20分)
1、 在Java程序中,对象之间的相互通信通过(B)
A、继承实现 B、调用成员函数实现 C、封装实现 D、函数重载实现
2、 为了描述和理解系统中的控制机制,如为了描述一个设备控制器在不同情况下所要完成的动作,下面几个图中哪个图是最有用的?(B)
A、交互图 B、活动图 C、状态图 D、类图
3、 对于用例分析的正确与否,有一些简单的方法,如老板测试,不能通过老板测试的用例是(C)
A、处理退货 B、协商合同 C、用户登录 D、处理销售
4、 GRASP原则一共9种,其中不包括的是(D)
A、多态 B、高内聚 C、低耦合 D、封装
5、 Innovation公司在为Rose开发插入件,使得Rose可以把OOA/OOD模型以各种图形格式导出。如JPEG格式、BMP格式、GIF格式等。在导出时,会根据不同的算法生成相应的图形文件,这些算法很复杂。为了描述这些算法,在下面这些图中,哪个图是最合适的?(A)
A、活动图 B、状态图 C、类图 D、用例图
6、 依据如下顺序图,选择类Account必须实现哪些方法?(A)
A、withdraw,checkBalance B、withdraw,checkBalance,log
C、withdraw,checkBalance,acknowledge
D、withdraw,checkBalance,log,acknowledge
7、 有如下图关系及根据类创建的对象,编译器允许执行的赋值语句是(C)
Shape sh;
Triangle tr=new Triangle ();
Square sq=new Square ();
A、tr=sq B、sq=sh
C、sh=tr D、sq=tr
8、 下列是阿呆给一些用例的命名,(C)用例命名最好。
A、进行图像导入 B、导入图像 C、处理图像 D、图像处理
9、 分层结构系统中,消息通常从顶层流向底层。但有些消息却是从底层流向顶层,需要层间的向上协作模式。下面不能实现层间向上协作的方式是()
A、观察者模式 B、UI外观模式 C、控制器模式 D、界面轮询模式
10、 下面的图1和图2分别说明了Car和Color类之间的关系是(C)
A、图1:聚合;图2:组合 B、图1:属性;图2:聚合
C、图1:属性;图2:组合 D、图1:组合;图2:属性
二、简答题(共7题,共32分)
1、请根据本学期的课程,结合实际软件开发过程,归纳出使用面向对象技术运行项目开发,需要开展哪些活动,你认为最关键的活动是什么?(6分)
需求分析;用例图建模;领域模型建模;系统顺序图和操作契约
用例实现交互图建模;设计类图建模;逻辑架构设计建模
关键的活动:用例实现交互图建模
实验八 逻辑架构设计建模2、“老师说要迭代开发,真是有道理,我决定在我们的项目组实施迭代开发,第一迭代先做需求,第二个迭代做分析,第三个迭代做设计……”这句话正确吗?为什么?(4分)
错误,迭代不同于传统的瀑布模型,并不按照先做需要,再做分析,设计这样一个阶段接一个阶段进行,迭代是把一个项目分成多个小项目,每个小项目都经历各自的需求分析,设计,实现和测试活动,以循环反馈和调整为核心,每次迭代都对现有系统进行扩展和精化,最后成为适当的系统。
3、假设要构造一个和用户下棋的游戏系统,哪些UML图对设计该游戏有帮助?为什么?(4分)
用例图 领域模型 交互图 类图
4、我家超级市场是大型的连锁零售商场,销售各类商品,超市的收银员使用POS收银系统处理用户的销售。请问收银员是处于POS收银系统的边界外还是边界内?为什么?(4分)
在边界外,POS系统是要被设计的系统,任何该系统之外的事物都在系统边界之外,收银员是外部参与者,是使用POS系统完成一系列行为的外部参与者。
5、系统的分层实现让阿呆很困惑。因为系统如果分为视图层、业务层、持久层,对于某一模块的实现每一层都写代码,每间层的交互处理增加了麻烦。如果用户点击某个按钮,直接在按钮事件里编写实现的代码,既直接,又方便。请你说明分层模式实现系统的理由,说服阿呆采用分层的方式实现系统。(5分)
1• 好的分层体系结构使系统易于扩展和维护
– 做到关系分离、高级服务和低级服务分离、特定于应用的服务与一般性服务分离
– 对某一特定层进行修改而不会影响到任何其他层
– 层是模块化的,可以重写某一层,或是整个替换某一层,只要接口不变,系统其他层次不受影响。这样,某些层能够用新的实现替换
2• 在各层之间限制消息流动,减少层次耦合,增加移植性
3• 某些层可以分布式实现
4• 利于在中间层实施安全特性
5• 通过逻辑划分,有助于团队开发
6、阿呆刚学过GRASP设计原则,觉得很不错,于是准备应用在设计的选课系统中,系统有课程类,课程类的实例包含某门课程的具体信息。阿呆就想,依据信息专家的原则,那么,该由课程对象把课程信息存入到数据库中。但是项目经理告诉他这样做不好。阿呆想不通,请你详细为阿呆解释一下。(5分)
参考P213
将课程信息存入数据库的职责分配给课程类会造成课程类与数据库接口类的耦合,面向数据库的操作与实际的课程类无关,使得课程类非内聚,不利于数据库操作的复用,其它类也存在保存对象的职责。
在某些情况下,专家模式建议的方法并不好,这是由于耦合与内聚问题所产生的。专家会建议由课程对象把课程信息存入到数据库中,那么按照这个决定进行逻辑推理,每个类都应当把自身保存到数据库中。但这样会导致内聚,耦合,及冗余方面的问题,例如现在课程类必须包含于数据库处理相关的逻辑,如SQL和JDBC相关的处理逻辑。因此,课程类由于存在其他职责而降低了它的内聚,这个类必须与其他子系统的数据服务进行耦合,会使得耦合度上升。这样会导致大量持久性类中重复出现类似的数据库逻辑,有大量的冗余。
所以这样的做法违反了基本架构原则,应将应用逻辑和数据库逻辑放置不同一处,而不是在同一构件中把不同的系统关注混合起来。因此,按照专家模式,该由课程对象把课程信息存入到数据库中是合理的,但由于其他原因,会使得我们最终得出不佳的设计。
7、根据下列代码,画图说明已经创建的类的数据成员及类间的关系。(要求:如有关联需要表明关联的方向、角色名和多重性)(4分)
[代码]
1..*
1
三、简单分析题(每题5分,共3题,共15分)
1、常见的网上商店里的购物车(ShopCart),需要让每种商品(Item)只在购物车内出现一次,购买相同商品只需要更新商品的数量即可。(类图如下)。当往购物车内添加商品时,需要比较是否有相同的商品在购物车内。请问这个比较商品是否相同的职责由那个类实现比较合适?为什么?(5分)
利用信息专家原则,这个比较商品的职责属于购物车的,所以由购物车类实现
2、搬了新家,阿呆决定去申请安装ADSL,他到营业厅填好单,和证件一起交给营业员。营业员查看阿呆的证件,接过单子开始操作电脑。如果站在营业厅身后,会看见营业员打开一个“受理”菜单,选择“ADSL”,弹出一个带有好多个Tab的框框,营业员哗哩吧啦把数据输进去,然后让阿呆设置一个服务密码,又过一队,营业员递出单子,告诉阿呆回家等,施工人员一天内就到。阿呆高兴的出门。营业员叹了一口气,想“又弄完一个”…….
考虑营业员的“ADSL业务受理系统”,根据上述信息,分析下面所列对象或事件的归属那一类别,并在表中类别填写。(有可能属于多个类别,也有可能都不属于任何一类)(5分)
对象或事件:阿呆 营业员 设置密码 施工人员 受理ADSL申请 安装ADSL
类别:主参与者 辅助参与者 用例 涉众
主参与者
营业员
辅助参与者
阿呆
用例
设置密码 受理ADSL申请
涉众
施工人员
3、状态图是为某个对象的状态和事件以及响应事件的行为的建模。下面的普通电话机的状态图,技术经理已经使用状态图对其详细建模,但阿呆不小心把图弄模糊了,请你帮忙补充完整。(5分)
(1)
Active
(2)
PlayingDialTone
(3)
Dialing
(4)
Connecting
(5)
Talking
四、分析题(共4题,共33分)
1、下面的代码描述了一个DataSet类,该类提供了对一组数据的基本统计功能,以及一个ExamMarks类,它使用DataSet存储并计算一组考试分数的平均值。主函数展示了读入两个分数,用ExamMarks保存它们,并打印输出平均值。请画一个顺序图,说明主函数执行时发生的交互。(注意:下面的代码是左右排版)。(8分)
DataSet类
ExamMarks类和Average类2、请根据下面描述绘制出汽车公司调度管理系统的领域模型。
阿呆开设了一家汽车 公司专门为学生服务,公司拥有40俩汽车,服务对象是1600个学生。汽车日常行驶的路线有30条,但在节假日等特殊日子里会临时增加新的路线。每条路线上设有许多站牌,学生们可在这些地方上下车。公司雇佣了20个全职的司机和30个兼职的司机。汽车公司设有一个调度员,专门负责司机和路线的安排。该调度员也负责学生和家长们上下车的地点以及时间等方面的特别要求传达给司机。当路线变更或增添新路线时,调度员必须将这些信息传达给司机、学生和家长。公司经常会收到学生和家长们对司机的投诉。如果投诉的情况相当严重,司机有可能会被停职甚至被解雇。另外,公司也可能会招募新员工,以代替被解雇和退休的员工,或配备给新的路线。(9分)
3、下面是航空公司系统的部分类模型,模型里的类都是需要持久存储的对象。请你为阿呆设计一个将该类图映射为关系数据库中的表的方案。即数据库中该有用哪些表存储这些类的数据,这些表该有哪些列。(7分)
Airline(AlID,name,symbol)
Employee(idCard,name,AlID)
Pilot(idCard,fightRating)
FightAssistant(idCard)
Fight(fightNum,date,pilotID,copilotID,AlID)
AttendantAssignment(fightNum, idCard)
4、下面是收音机系统设计过程中的一张为客户折扣创建定价策略顺序图,请根据顺序图所示,写出addCustomerPricingStrategy方法的基本实现代码。(包括函数的定义,函数所在类的定义。Strategy:策略,Factory:工厂,Composite:组合,Percentage:百分比)(9分)
(A卷考过)
展开阅读全文