资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,考软件工程师证须知,UML,知识,Class contents,Stereotype,原型,attribute,属性,Person,-,name:String,-,age:int,+Person(),+,Person(name:String,age:int,),+,getName():String,+,getAge():int,+,setName(name:String):void,+,setAge(age:int):void,+,toString():String,Student,-,StudentNo:int,-,ban:String,-,score:int,+Student(),+,Student(name:String,age:int,no:int,ban:String,score:int,),+,toString():String,Generalization/inhabitant,泛化,(Generalization),泛化,(Generalization),父与子、动物与人、植物与树、系统使用者与,B2C,会员和,B2E,会员的关系,类,A,要完成某个功能必须引用类,B,,则,A,与,B,存在依赖关系,依赖关系是弱的关联关系。本来人与电脑没有关系的,但由于偶然的机会,人需要用电脑写程序,这时候人就依赖于电脑。,依赖关系,人依赖于电脑完成一些程序的动作。,当对象,A,被加入到对象,B,中,成为对象,B,的组成部分时,对象,B,和对象,A,之间为,聚合关系,。,场景:商品和他的规格、样式就是聚合关系。,聚合关系,商品,Product,样式,Style,规格,Spec,聚合是关联关系的一种,是较强的关联关系,强调的是整体与部分之间的关系。,A1,A2,对象,A,包含对象,B,,对象,B,离开对象,A,没有实际意义。人包含手,手离开人的躯体就失去了它应有的作用。,场景:,Window,窗体由滑动条,slider,、头部,Header,和工作区,Panel,组合而成。,组合关系,Window,窗体,滑动条,Slider,头眉,Header,工作区,Panel,组合关系是一种更强的关联关系。,A1,A2,A3,类与类之间的单向关联图,类与类之间的双向关联图,B1-B2:,表示,B1,认识,B2,,,B1,知道,B2,的存在,,B1,可以调用,B2,中的方法和属性;,同样,B2,也知道,B1,的存在,,B2,也可以调用,B1,的方法和属性。,订单和客户,订单属于客户,客户拥有一些特定的订单,类与类之间自身关联图,自关联,,比如,,Employee,&,Manager,Class Node,Private,int,data;,private Node,nextNode,;,public,Node(int,data),this.data,=data;,public void,setData(int,data),this.data,=data;,public,int,getData,()return data;,public void,setNext(Node,next)nextNode,=next;,public Node,getNext,()return,nextNode,;,自引用,self reference,类,Node,-,data:int,-,nextNode:Node,+,Node(data:int,),+,setData(data:int):void,+,getData():int,+,setNext(next:Node):void,+,getNext():Node,自引用,self reference,类,Artist,艺术家,Band,乐队,Musician,歌手,Song,歌曲,Track,音轨,Album,唱片,编写,演奏,0.*,0.*,1,1,0.*,2.*,0.1,1.*,0.*,1,0.1,0.1,2007,下半年软件设计师下午试题,,283,页,Cardinality/multiplicity,关联的基数,类名,说明,CentralComputer,停车场信息系统,PaymentMachine,付款机器,CarPark,停车场,保存车位信息,Barrier,自动护栏,EntryBarrier,入口的护栏,ExitBarrier,出口的护栏,333,页,用例名,说明,Car entry,汽车进入停车场,Car exit,汽车离开停车场,Report Statistics,纪录停车场的相关信息,Car entry when full,没有车位时,汽车请求进入停车场,Car entry,Car exit,Car entry when full,Report,Statistics,用例之间的延伸关系用于对被用户看作是可选系统行为的一部分建模。,通过这种方式,可以把可选行为从必需的行为中分离出来。,停车场信息系统,驾驶员,状态名,说明,Idle,空闲状态,汽车可以进入停车场,Disable,没有车位,Await Entry,等待汽车进入,Await Ticket Take,等待打印停车卡,Await Enable,等待停车场内有空闲车位,Idle,Await Ticket Take,Await Entry,Await Enable,名称,说明,login,登陆系统,submit paper,提交稿件,close reviewing process,关闭审稿过程,set preferences,设定兴趣领域,list accepted/rejected papers,罗列录用的和拒绝的稿件,register,注册,browse review results,浏览稿件审阅结果,assign paper to reviewer,分配稿件给审稿人,enter review,审阅稿件给出意见,browse submitted papers,浏览提交的稿件,用例名称图,2008,下半年软件设计师下午试题,382,页,Online Reviewing System,User,用户,Author,作者,Reviewer,审稿人,PCChair,委员会主席,list accepted/rejected papers,browse submitted papers,Assign paper to reviewer,include,extend,设定兴趣领域,审阅稿件,给出意见,名称,说明,Action3,select paper location,选择稿件位置,Action2,select subject group,选择主题类型,Action1,enter title and abstract,输入标题和摘要,Action4,upload paper,上传稿件,send notification,发送通知,其过程为,先输入标题和摘要、选择稿件所属主题类型、选择稿件所在位置(存储位置)。上述几步若未完成,则重复;若完成,则上传稿件至数据库中,系统发送通知。,包含关系,扩展关系,可以通过判断是否可以从一个用例的执行中,在需要时转向执行另一个用例,执行完返回继续,即存在,extend,关系。可选择的!,必须的!,用例之间的关系,-,包含示例,存 款,打印收据,密码验证,include,include,必须的!,用例之间的关系,扩展示例,ATM,密码验证,签名验证,extend,扩展用例,基用例,取款,FirstBank,银行的,ATM,系统,存款,查询余额,柜员机,处理交易,打印收据,include,include,include,X1,X2,X3,UC5,UC4,UC3,UC2,UC1,UC3,是抽象的,X1,可通过 用例,UC4,或,UC1,与系统进行交互,用例,UC2,是用例,UC4,的可选部分,用例,UC5,是用例,UC4,的必须部分,取款,extend,现金透支,将用例“取款”扩展为用例“现金透支”,基本用例,(对扩展关系),扩展用例,(对扩展关系),基用例,包含用例,基本用例依赖于包含用例,虚线箭头表示,由调用用例指向被调用用例,7/8/2026,Reschedule,Performance,cancel,Performance,Reschedule,Event,extension points,If event moved to new date range,If end date set earlier,扩展,关系,扩展用例依赖于基本用例,扩展用例,基用例,(执行用例),扩展用例的执行是有条件的,扩展用例,(对扩展关系),基本用例,(对扩展关系),基本用例,(对包含关系),包含用例,(对包含关系),网上购物,Operator,System Startup,System Shutdown,transaction,Withdraw,Deposit,Transfer,Inquire,Invalid PIN process,Session,customer,Bank,ATM System,435,页,PIN=personal identification number,个人验证码错误,Session,一段时间,一次会话的序列图,readPIN,(),PIN,Creat(atm,this,card,pin,),performTransaction,(),某企业为了方便员工用餐,为餐厅开发了一个订餐系统,(COS:Cafeteria Ordering System),企业员工可以通过企业内联网使用该系统。,企业的任何员工都可以查看菜单和今日特价。,系统的顾客是注册到系统的员工,可以订餐(如果未登陆,需先登陆)注册工资支付、预约规律的订餐,在特殊情况下,可以覆盖预订。,餐厅员工是特殊顾客,可以进行备餐、生成付费请求和请求送餐,其中对于注册工资支付的顾客生成付费请求并发送给工资系统。,菜单管理员是餐厅特点员工,可以管理菜单。,送餐员可以打印送餐说明,记录送餐信息(如送餐时间)以及记录收费(对于没有注册工资支付的顾客,由送餐员收取现金后记录)。,某企业为了方便员工用餐,为餐厅开发了一个订餐系统,(COS:Cafeteria Ordering System),企业员工可以通过企业内联网使用该系统。,企业的任何,员工,都可以查看菜单和今日特价。,系统的,顾客,是注册到系统的员工,可以订餐(如果未登陆,需先登陆)注册工资支付、预约规律的订餐,在特殊情况下,可以覆盖预订。,餐厅员工,是特殊顾客,可以进行备餐、生成付费请求和请求送餐,其中对于注册工资支付的顾客生成付费请求并发送给,工资系统,。,菜单管理员,是餐厅特点员工,可以管理菜单。,送餐员,可以打印送餐说明,记录送餐信息(如送餐时间)以及记录收费(对于没有注册工资支付的顾客,由送餐员收取现金后记录)。,某企业为了方便员工用餐,为餐厅开发了一个订餐系统,(COS:Cafeteria Ordering System),企业员工可以通过企业内联网使用该系统。,企业的任何,员工,都可以,查看菜单,和,今日特价,。,系统的,顾客,是注册到系统的员工,可以,订餐,(如果未登陆,需先登陆),注册工资支付,、,预约规律的订餐,,在特殊情况下,可以,覆盖预订,。,餐厅员工,是特殊顾客,可以进行,备餐,、,生成付费请求,和,请求送餐,,其中对于注册工资支付的顾客生成付费请求并发送给,工资系统,。,菜单管理员,是餐厅特点员工,可以,管理菜单,。,送餐员,可以,打印送餐说明,,,记录送餐信息(如送餐时间)以及记录收费,(对于没有注册工资支付的顾客,由送餐员收取现金后记录)。,其中需将以上四个用例填到正确的位置,某企业为了方便员工用餐,为餐厅开发了一个订餐系统,(COS:Cafeteria Ordering System),企业员工可以通过企业内联网使用该系统。,企业的任何,员工,都可以,查看菜单,和,今日特价,。,系统的,顾客,是注册到系统的员工,可以,订餐,(如果未登陆,需先登陆),注册工资支付,、,预约规律的订餐,,在特殊情况下,可以,覆盖预订,。,餐厅员工,是特殊顾客,可以进行,备餐,、,生成付费请求,和,请求送餐,,其中对于注册工资支付的顾客生成付费请求并发送给,工资系统,。,菜单管理员,是餐厅特点员工,可以,管理菜单,。,送餐员,可以,打印送餐说明,,,记录送餐信息(如送餐时间)以及记录收费,(对于没有注册工资支付的顾客,由送餐员收取现金后记录)。,Cafeteria,Ordering,System,工资系统,菜单,管理员,参与者之间的关系,表示子类的对象,也是一种父类的对象,即泛化关系。父类型通常是一个抽象泛化的参与者,可以完成子类型可以完成的共同行为。,状态图:一次订餐活动,登录,判断符号,顾客订餐过程如下:,顾客请求查看菜单;,系统显示菜单和今日特价;,顾客选菜;,系统显示订单和价格;,顾客确认订单;,系统显示可送餐时间;,顾客指定送餐时间、地点和支付方式;,系统确认接受订单,然后发出,E-mail,给顾客以确认订餐,同时发送相关订餐信息通知给餐厅员工。,同步条,用例名,参与者,查看当日特价,员工,注册工资支付,顾客和工资系统,生成付费请求,餐厅员工和工资系统,管理菜单,菜单管理员,四个缺少的用例及其所对应的参与者。,查看当日特价,工资系统,注册工资支付,菜单管理员,生成付费请求,管理菜单,观察者,Observer,对象行为,Behavioral,型模式,定义对象间的一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知,并被自动更新。,bidder,出价人,投标人,bid,出价,投标,叫牌,auction,拍卖,warranty n.,保单,根据,保修期,在观察者模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。各观察者通过自己的,update(),方法,对状态的改变,作出反映。,左图为观察者设计模式。,在此模式中,一个,Subject,对象 可对应多个,Observer,对象,class Subject,private Observer observers=new Observer9;,private,int,totalObs,=0;,private,int,state;,public void attach(Observer o),observerstotalObs,+=o;,public,int,getState,()return state;,public void,setState,(,int,in),state=in;,notifyObservers,();,private void,notifyObservers,(),for(,int,i=0;i,totalObs,;i+),observersi.update,();,/5.,对观察者广播事件,/3.,与基类耦合,/1.“,独立”的主类,abstract class Observer,protected Subject,subj,;,public abstract void update();,class,HexObserver,extends Observer,public,HexObserver,(Subject s),subj,=s;,subj.attach,(this);,public void update(),System.out.print,(+,Integer.toHexString,(,subj.getState,();,/6.,观察者“推出”信息,/4.,观察者注册自己,/2.“,依赖”,等级的根,class,OctObserver,extends Observer,public,OctObserver,(Subject s),subj,=s;,subj.attach,(this);,public void update(),System.out.print,(+,Integer.toOctalString,(,subj.getState,();,class,BinObserver,extends Observer,public,BinObserver,(Subject s),subj,=s;,subj.attach,(this);,public void update(),System.out.print,(+,Integer.toBinaryString,(,subj.getState,();,/6.,观察者“推出”信息,/6.,观察者“推出”信息,/4.,观察者注册自己,/4.,观察者注册自己,public class,ObserverDemo,public static void main(String,args,),int,n;,Subject sub=new Subject();,new,HexObserver,(sub);,new,OctObserver,(sub);,new,BinObserver,(sub);,/7.,用户配置好观察者的数目和类型,while(true),String s=,JOptionPane.showInputDialog,(,Type in an integer,nWe,+,will convert it into,nHexadecimal,(base 16),+,Octal(base 8),and Binary);,if(s=null),System.exit,(0);,n=,Integer.parseInt(s,);,System.out.print(nThe,input integer is +n+,nThe,converted result is written as follows+,nHextOcttBinn,);,sub.setState,(n);,
展开阅读全文