面向对象的需求获取(一):活动图 一、1~7 DBAAEAD 二、 1、略 2、略 3、(1)角色:客户、销售员、仓库管理员 (2)客户活动:查看商品、查看单据、存款 三、
客户在线输
入采购订单 客户服务部收到订单,并检查是否正确
[ 不正确 ]向客户发送定购 失败Email[ 正确 ] 订单转财务订单转仓管部收款处理部出货
确认客户收
到货物 打电话约定[ 不正确 ]客户
四、 [ 正确 ]确认完成付款[ 不正确 ][ 正确 ]确认款到财务部[ 不正确 ][ 正确 ]财务部订单准备会议用结案处理准备陈述报告准备会议室与客户见面纸建立提案将提案发给客户 五、
面向对象的需求获取(二): 用例图
一、1~5 ADDDB 6~10 DAADC 11~12 A(ABCE) 二、 4、
在Browser中删除一个模型元素将同时删除所有的Diagram中对它的引用,该模型元素奖真正从模型文件中删除。
在Diagram中删除的模型元素不一定真正在模型文件中被删除,而只是从当前的图中被删除。 5、
Use-case diagrams Activity diagrams
Use-case flow of events
Supplemental information补充信息 三、
1、A 浏览客户信息 B 修改个人信息 C 登录系统
D 删除客户信息
2、该用例图描述的是图书馆管理系统中管理员对书籍和书目的管理流程。在这个流程中,管理员这个Actor与用例删除书目、删除书籍、修改书籍信息、新增书籍之间能通过消息传递发生关联,而图书查询这个用例与删除书目、删除书籍、修改书籍信息这三个用例之间有被包含的关系,也就是说,在删除书目、删除书籍、修改书籍信息用例发生的过程前,需要进行图书查询。新增书目这个用例与新增书籍这个用例也是被包含的关系。
四、
输入病人信息接待员安排预约输入护理病人信息护士查询病人信息医生打印诊断结果打印看病历史
五
查询订位状况客户付费查询个人事件一般客户企业客户订位系统操作人员查询订位状态系统维护人员维护系统设置系统环境、
六、
查看分数学生选修课程登录课程目录系统选择课程授课教授提交学生成绩
七、
购买商品查看购物车添加项目到购物车浏览商品查看具体项目客户提供反馈意见删除购物车中项目提供订单删除销售项目返回库房项目采购经理增加销售新项目库房经理购买库存盘点
面向对象的需求获取(三): 用例图文档撰写
1. 借阅物理书刊(Borrow Book) 1.1 前置条件(Pre-Conditions)
在这个用例开始前,Librarian必须登录到系统中。 1.2 后置条件(Post-Conditions)
如果这个用例成功,在系统中建立并存储借阅记录,如果必要还要删除预订记录。否则,系统的状态没有变化。
1.3 扩展点(Extension Points)
借阅者预定了书刊。 1.4 事件流
1.4.1 基流(Basic Flow)
当借阅者从图书馆借阅物理书刊时,用例启动。 (1)图书管理员提供书刊书目、借阅者信息。 (2)系统检索书刊书目(Title)(E-1)
(3)系统确定所借阅的物理书刊是否可以获得(E-2),也即物理书刊是否都已借出。 (4)系统检索借阅者(E-3)
(5)图书管理员将物理书刊借给借阅者 (6)记录借阅信息。
(7)若该图书为预定的图书,执行用例4取消预定(Cancel Reservation) 1.4.2 替代流(Alternative Flow)
E-1 该种书刊不存在,系统显示提示信息,用例终止。 E-2 物理书刊都已借出,系统显示提示信息,用例终止。 E-3 系统中不存在该借阅者,系统显示提示信息,用例终止。
2. 返还物理书刊(Return Book) 2.1 前置条件(Pre-Conditions)
在这个用例开始前,Librarian必须登录到系统中。 2.2后置条件(Post-Conditions)
在这个用例成功,系统删除借阅记录。否则,系统的状态没有变化。 2.3 扩展点(Extension Points) 没有。 2.4 事件流
2.4.1 基流(Basic Flow)
当借阅者返还所借的物理书刊时,用例启动。 (1)图书管理员提供所还物理书刊信息。 (2)系统检索物理书刊(E-1)。
(3)系统查询物理书刊的借阅记录(E-2)。 (4)系统删除借阅记录。
2.4.2 替代流(Alternative Flow)
E-1 物理书刊不存在,系统显示提示信息,用例终止。 E-2 若借阅记录不存在,系统显示提示信息,用例终止。
3. 预定书刊(Reserve Title) 3.1前置条件(Pre-Conditions)
在这个用例开始前,Librarian必须登录到系统中。 3.2 后置条件(Post-Conditions)
如果这个用例成功,系统建立预订记录。否则,系统的状态没有变化。 3.3 扩展点(Extension Points) 没有。 3.4 事件流
3.4.1 基流(Basic Flow)
当Librarian为借阅者预订书刊时,用例启动。 (1)图书管理员提供书刊书目、借阅者信息。 (2)系统检索书刊书目(E-1)。 (3)检索借阅者(E-2)。
(4)系统接受预定,创建预定记录。 (5)系统将预定记录存储在系统中。 3.4.2 替代流(Alternative Flow)
E-1 该种书刊不存在,系统显示提示信息,用例终止。
E-2 系统中不存在该借阅者,系统显示提示信息,用例终止。 4. 取消预定(Cancel Reservation) 4.1前置条件(Pre-Conditions)
在这个用例开始前,Librarian必须登录到系统中。 4.2 后置条件(Post-Conditions)
如果这个用例成功,系统删除预订记录。否则,系统的状态没有变化。 4.3 扩展点(Extension Points) 没有。 4.4 事件流
4.4.1 基流(Basic Flow)
(1)图书管理员提供所预定的书刊书目、借阅者信息。 (2)系统检索所预定的书刊书目(E-1)。 (3)系统检索借阅者(E-2)。
(4)系统删除借阅者的预定信息(E-3)。 4.4.2 替代流(Alternative Flow)
E-1 该种书刊不存在,系统显示提示信息,用例终止。
E-2系统中不存在该借阅者,系统显示提示信息,用例终止。 E-3 预定信息不存在,系统显示提示信息,用例终止。
思考与练习
5. 维护借阅者信息(Maintain Borrower Info) 5.1前置条件(Pre-Conditions)
在这个用例开始前,Librarian必须登录到系统中。 5.2 后置条件(Post-Conditions)
如果这个用例成功,系统添加、修改或删除借阅者信息。否则,系统的状态没有变化。
5.3 扩展点(Extension Points) 没有。 5.4 事件流
5.4.1 基流(Basic Flow)
当Librarian想维护借阅者信息时,用例启动。
系统要求Librarian选择所想执行的活动(添加借阅者、删除借阅者或修改借阅者) 如果所选的活动是“添加借阅者”,则执行分支流S-1:添加借阅者。 如果所选的活动是“删除借阅者”,则执行分支流S-2:删除借阅者。 如果所选的活动是“修改借阅者”,则执行分支流S-3:修改借阅者。 5.4.2 分支流(Subflows) S-1:添加借阅者
(1)图书管理员提供借阅者的信息,如姓名、地址、邮政编码和身份证号码等。 (2)系统存储借阅者信息(E-1)。 S-2:删除借阅者
(1)图书管理员提供借阅者的信息。 (2)系统查询借阅者(E-2)。
(3)系统查询借阅者的借阅记录(E-3)
(4)系统删除借阅者的信息,以及借阅者的预定记录。 S-3:更改借阅者
(1)图书管理员提供借阅者的信息。
(2)系统查询并显示借阅者的信息(E-2),修改相应的信息。 (3)系统更新借阅者的信息。 5.4.3 替代流(Alternative Flow)
E-1 若借阅者已存在,系统显示提示信息,用例终止。 E-2 若查询不到借阅者,系统显示提示信息,用例终止。 E-3 若存在借阅记录,系统显示提示信息,用例终止。
6.维护书刊信息(Maintain Title Info) 6.1前置条件(Pre-Conditions)
在这个用例开始前,Librarian必须登录到系统中。 6.2 后置条件(Post-Conditions)
如果这个用例成功,系统添加、修改或删除书刊书目信息。否则,系统的状态没有变化。
6.3 扩展点(Extension Points) 没有。 6.4 事件流
6.4.1 基流(Basic Flow)
当Librarian想维护借阅者信息时,用例启动。
系统要求Librarian选择所想执行的活动(添加书种、删除书种或修改书种)。 如果选择的活动是“添加书种”,则执行分支流S-1:添加书刊信息。 如果选择的活动是“删除书种”,则执行分支流S-2:删除书刊信息。 如果选择的活动是“修改书种”,则执行分支流S-3:修改书刊信息。 6.4.2 分支流(Subflows)
S-1:添加书刊信息
(1)图书管理员提供书刊的书名、作者、ISBN/ISSN号等信息。 (2)系统添加该书刊信息。 S-2:删除书刊信息
(1)图书管理员提供所要删除的书刊信息。 (2)系统查询所要删除的书刊(E-2)
(3)系统删除该书刊的所有物理书刊的信息(E-3) (4)系统删除书刊信息,以及相关的预定信息。 S-3:更改书刊信息
(1)图书管理员提供所要修改的书刊信息。 (2)系统查询并显示书刊信息(E-2) (3)系统修改相应的的信息 (4)系统更新书刊信息。
6.4.3 替代流(Alternative Flow)
E-1 若书刊信息已存在,系统显示提示信息,用例终止。 E-2 若查询不到该书刊,系统显示提示信息,用例终止。 E-3 若有物理书刊借出,系统显示提示信息,用例终止。
7. 维护物理书刊信息(Maintain Book Info) 7.1前置条件(Pre-Conditions)
在这个用例开始前,Librarian必须登录到系统中。 7.2 后置条件(Post-Conditions)
如果这个用例成功,系统添加、修改或删除物理书刊信息。否则,系统的状态没有变化。
7.3 扩展点(Extension Points) 没有。 7.4 事件流
7.4.1 基流(Basic Flow)
当Librarian想维护物理书刊信息时,用例启动。
系统要求Librarian选择所想执行的活动(添加书刊物理书种、删除物理书种或修改物理书刊)。
如果所选的活动是“添加物理书刊”,则执行分支流S-1:添加物理书刊信息。 如果选择的活动是“删除物理书刊”,则执行分支流S-2:删除物理书刊信息。 如果选择的活动是“修改物理书刊”,则执行分支流S-3:修改物理书刊信息。 7.4.2 分支流(Subflows) S-1:添加物理书刊信息
(1)图书管理员提供物理书刊的书目信息。 (2)系统查询物理书刊的书目(Title),确定是否已存在该书刊书目(E-1)。 (3)系统存储物理书刊信息。 S-2:删除物理书刊信息
(1)图书管理员提供物理书刊的书目信息。 (2)系统查询物理书刊的书目(Title)(E-1)。 (3)系统删除物理书刊。 S-3:修改物理书信息。
(1)图书管理员提供物理书刊的书目信息。 (2)系统查询物理书刊的书目(Title)(E-1)。 (3)系统查询并显示该种书刊的所有物理书刊。 (4)图书管理员选择物理书刊并修改其信息 (5)系统更新系统中物理书刊的信息。 7.4.3 替代流(Alternative Flow)
E-1 若系统中不存在该书刊书目,添加该书刊书目信息。
8. 登录(Log In)
8.1前置条件(Pre-Conditions) 没有。
8.2 后置条件(Post-Conditions)
如果用例成功,参与者可以启动系统并使用系统所提供的功能。反之,系统状态不变。 8.3 扩展点(Extension Points) 没有。 8.4 事件流
8.4.1 基流(Basic Flow)
当用户希望登录到系统中时,用例启动。 (1)系统提示用户输入用户名和密码。 (2)用户输入用户名和密码。
(3)系统验证输入的用户名和密码,若正确(E-1),则用户登录到系统中。 8.4.2 替代流(Alternative Flow)
E-1 如果用户输入无效的用户名和/或密码,系统显示错误信息,用户可以选择返回基流的起始点,重新输入正确的用户名和/或密码:或者取消登录,用全结束。
面向对象的分析与设计(一)
类图&对象图
一、1~5 DDCCC 6~10 AADDD 11~14 ECAA 15 ACBED 16~19 DBAB
二、1.Login, sName、sPass, checkUser( )
2.包 3.类图
4.提供接口、所需接口 5.实现、依赖(使用) 三、
1.在UML中,包是分组事物的一种,它是建模时用来组织模型中的元素的,在系统运行时并不存在包的实例。包在开发大型软件系统时是一个非常重要的机制,它就象一个“容器”,可用于组织模型中的相关元素以便更容易理解。
2. 设计C最好。
理由:学员和教员均可以从Candidate类继承而来;抽象出Role类,使Candidate类与
Role类之间形成多对多的关联关系,实现了“一个人既是教师又是某门课的学生”这个需求。
3.1)书籍、书目 2)书籍管理 3)借书界面
4)sUserName、sPass 4.
四
学生教师本科生研究生0..n讲师1教授1{or} 11..5助教1
五、
六、
UML设计方案:
Java代码: public class Fruit { }
public class Apple extends Fruit{ }
public class Grape extends Fruit { }
public class Farmer { }
public class Inquier {
public String inquire(){
public Fruit plant(String message){ }
if (message.equals(\"apple\")) else
return new Grape();
return new Apple();
public void plant(){
}
public void grow(){
}
public void harvest(){
}
}
return \"grape\";
}
public class Boss { }
public class Garden { }
面向对象的分析与设计(二):交互图(顺序图、协作图)
一、 1~4 CEDA 5 CAD 6~9 A ADB 二、略 三、1、
private Boss boss; private Farmer farmer; private Inquier inquier; private Fruit fruit;
public String command1(Inquier inquier){ }
public Fruit command2(Farmer farmer,String message){ }
return farmer.plant(message); return inquier.inquire();
: 客户1: 插卡 : 读卡器 : ATM屏幕 : 账户 : 取钱机 : 打印机2: 读卡号3: 屏幕初始化4: 提示输入密码5: 输入密码6: 验证密码7: 选取钱,输入金额8: 提交金额9: 验证金额10: 扣钱11: 提钱12: 打印票据13: 退卡
四、
面向对象实施与部署(二)状态图
一、D F F D 二、1、
未登录成功已登录不成功
2、略 3、
1)三种状态:就绪、运行、阻塞 2)线程的基本运行过程:
首先,线程处于就绪态,当取得CPU时间片,进入运行状态;如果正常运行,则直到运行结束;如果运行中CPU时间片用完,则返回就绪态;如果运行中不满足所需资源,则进入阻塞状态,当系统满足资源时,重新进入就绪状态。
三、
呼叫不成功空闲呼叫某人拨号呼叫成功拒绝接听被呼叫响铃通话结束接听电话通话未做出反应
因篇幅问题不能全部显示,请点此查看更多更全内容