问答题

阅读下列说明和UML图,回答问题。
[说明]
某企业为了方便员工用餐,餐厅开发了一个订餐系统(Cafeteria Ordering System,COS),企业员工可通过企业内联网使用该系统。
企业的任何员工都可以查看菜单和今日特价。
系统的顾客是注册到系统的员工,可以订餐(如果未登录,需先登录)、注册工资支付、预约规律的订餐,在特殊情况下可以覆盖预订。
餐厅员工是特殊顾客,可以进行备餐、生成付费请求和请求送餐,其中对于注册工资支付的顾客生成付费请求并发送给工资系统。
菜单管理员是餐厅特定员工,可以管理菜单。
送餐员可以打印送餐说明,记录送餐信息(如送餐时间)以及记录收费(对于没有注册工资支付的顾客,由送餐员收取现金后记录)。
顾客订餐过程如下。
(1)顾客请求查看菜单。
(2)系统显示菜单和今日特价。
(3)顾客选菜。
(4)系统显示订单和价格。
(5)顾客确认订单。
(6)系统显示可送餐时间。
(7)顾客指定送餐时间、地点和支付方式。
(8)系统确认接收订单,然后发送Email给顾客以确认订餐,同时发送相关订餐信息通知给餐厅员工。
系统采用面向对象方法开发,使用UML进行建模。系统的顶层用例图和一次订餐的活动图初稿分别如图10.13和图10.14所示。
[问题1]
根据说明中的描述,给出图10.13中A1和A2所对应的参与者。
[问题2]


根据说明中的描述,给出图10.14缺少的4个用例及其所对应的参与者。
[问题3]
根据说明中的描述,给出图10.14中(1)~(4)处对应的活动名称或图形符号。
[问题4]
指出图10.13中员工和顾客之间是什么关系,并解释该关系的内涵。

【参考答案】

[问题1] A1:顾客 A2:菜单管理员
[问题2]
①查看今日特价,参与者:员工
②注册......

(↓↓↓ 点击下方‘点击查看答案’看完整答案、解析 ↓↓↓)
热门 试题

问答题
阅读下列说明和C++代码,在 (n) 处填入适当的字句。 [说明] 某软件公司现欲开发一款飞机飞行模拟系统,该系统主要模拟不同种类飞机的飞行特征与起飞特征。需要模拟的飞机种类及其特征如表10.4所示。 为支持将来模拟更多种类的飞机,采用策略设计模式(Strategy)设计的类图如图10.11所示。 图10.11中,AirCraft为抽象类,描述了抽象的飞机,而类Helicopter、AirPlane、Fighter和Harrier分别描述具体的飞机种类,方法fly()和takeOff()分别表示不同飞机都具有飞行特征和起飞特征;类FlyBehavior与TakeOffBehavior为抽象类,分别用于表示抽象的飞行为与起飞行为;类SubSonicFly与SuperSonicFly分别描述亚音速飞行和超音速飞行的行为;类VerticaITakeOff与LongDistanceTakeOff分别描述垂直起飞与长距离起飞的行为。 [C++代码] #include<iostream> using namespace std; class FlyBehavior public : virtual void fly() = 0; class SubSonicFly:public FlyBehavior public: void fly() cout<< 亚音速飞行! << end1; ; class SuperSonicFly:public FlyBehavior public: void fly() cout<<,超音速飞行 ! << endl; ; class TakeOffBehavior public: virtual void takeOff() = 0; class VerticalTakeOff:public TakeOffBehavior public: void takeOff() cout<< 起飞! <<endl; ; class LongDistanceTakeOff:public TakeOffBehavior public: void takeOff () cout<< 长距离起飞! <<endl; ; class AirCraft protected: (1) ; (2) ; public : voicl fly() (3) ; void takeOff() (4) ; class Helicopter: public AirCraft public : Helicopter () flyBehavior = new (5) ; takeOffBehavior = new (6) ; (7) if (! flyBehavior) delete flyBehavior; if (! takeOffBehavior) delete takeOffBehavior; 其他代码省略
问答题
阅读下列说明和Java代码,将应填入 (n) 处的字句写在对应栏内。 [说明] 某软件公司现欲开发一款飞机飞行模拟系统,该系统主要模拟不同种类飞机的飞行特征与起飞特征。需要模拟的飞机种类及其特征如表10.5所示。 为支持将来模拟更多种类的飞机,采用策略设计模式(Strategy)设计的类图如图10.12示。 图10.12中,AirCraft为抽象类,描述了抽象的飞机,而类Helicopter、AirPlane、Fighter和Harrier分别描述具体的飞机种类,方法fly()和takeOff()分别表示不同飞机都具有飞行特征和起飞特征类FlyBehavior与TakeOffBehavior为抽象类,分别用于表示抽象的飞行为与起飞行为;类SubSonicFly与SuperSonicFly分别描述亚音速飞行和超音速飞行的行为;类VerticalTakeOff与LongDistanceTakeOff分别描述垂直起飞与长距离起飞的行为。 [Java代码] interface FlyBehavior public void fly(); ; class SubSonicFly implements FlyBehavior public void fly()(System.out.println( 亚音速飞行! ); ; class SuperSonicFly implements FlyBehavior public void fly()(System.out.println( 超音速飞行! ); ; interface TakeOffBehavior public void takeOff(); ; class VerticalTakeOff implements TakeOffBehavior public void takeOff()(System.out.println( 垂直起飞! ); ; class LongDistanceTakeOff implements TakeOffBehavior public void takeOff()System.out.println( 长距离起飞! ); ; abstract class AirCraft protected (1) ; protected (2) ; public void fly()( (3) ;) public void takeOff() (4) ; ; class Helicopter (5) AirCraft public Helicopter () flyBehavior=new (6) ; takeOffBehavior=new (7) ; ; 其他代码省略