一、用例图
1. 用例之间的三种关系
(1) include
(包含)
被多个基用例调用以提高重用性。且每次基用例执行,都会包含被包含用例。
例如:在有入库处理和出库处理时,必执行更新库存记录。
(2) extend
(扩展)
在基用例的某个条件下触发。基用例(比如还书)不是每次都需要扩展用例(罚款),只在一定条件下(超期未还等)才需要罚款。
例如:读者还书时不一定会进行罚款,只有满足特定条件(如逾期太久)才会罚款。
(3) 泛化(继承)
子用例是父用例的具体的、不同的执行方式。
例如:识别用户可以用验证口令实现,也可以用扫描指纹实现。
2. 例题
例1
“教学资源平台”的教师端的功能需求如下。
①教师和学生需要登录“教学资源平台”后才能正常使用该系统的所有功能。如果忘记密码,可与通过“找回密码”功能恢复密码。
②教师可以编辑课程信息。
③教师可对自己的课程发布课件。
④教师在线编辑作业、发布作业。
⑤学生可在平台上提交电子版作业。
⑥教师可以在平台上批作业,即给作业打分。
要求:请根据以上需求,绘制用例图。
例2
“作业管理平台”功能需求如下。
假设学校要开发一个系统,部分系统需求如下,可以合理拓展功能。
“作业管理平台”管理系统,采用客户端/服务器结构,主要包括以下需求。
(1)学生相关功能:
学生查看课程信息;
学生查看本教学班的课程作业要求;
学生提交作业,可能有在线填写作业内容的形式,也可上传作业文档。
(2)教师相关的功能:
课程维护,教师编辑维护课程信息;
作业管理,教师编辑某课程的作业信息,可暂存,可也发布(发布到教学班),可设置作业时间等;
批改作业,教师查看学生提交的作业,为作业打分、写评语。
例3
项目名称:图书馆管理系统
项目简介:高校图书馆主要面向教师、学生进行图书借阅等服务,这些服务主要包括:图书信息管理、借书、还书、预约借书等。系统利用校园卡,识别读者,并利用校园卡进行借还书处理。对不同读者(教师、学生)有不同的管理要求,比如学生最多借5本,教师最多借10本。如果读者有超期未还图书,不能借书,需交完罚款、并还书后,才能继续借书。项目要求:请按要求完成相关面向对象系统的分析与设计,利用UML图表及文字表达建模方案。
二、概念类图和类图
1. 关键要点
每个类需至少包含一个属性和一个方法。
类之间需标注关系(如关联、继承、聚合/组合)及多重性。
实体类主要用于封装业务数据,常见方法包括增删改查。
概念类图和类图的区别:如果题目要求绘制“概念类图”,则类里可以不写操作/方法,但是要求至少有一个属性。
2. 例题
例1
请绘制类图。某在线商城的需求:
① 客户可以维护多个收货地址。
② 每张订单只能有一个收货地址。
③ 客户的一张订单中可以购买多种商品。即一种订单可包括多个订单行(OrderLine),每个订单行记录了购买的某一商品的数量、金额及小计金额,订单中还要记录订单日期、总金额等信息。
④ 一张订单可以分成多笔支付,每本笔支付只能选择一种支付方式(可以微信支付、支付宝支付)。
例2
在下面的需求背景下,请绘制概念类图表现出下列对象间的关系。
一个教师可教多个教学班(teaching class),一个教学班指的是某一个老师教的某一门课程的一个教学组织单位;
一个教学班由多个班级(class)构成;
一个老师可以编辑多个作业;可以把同一个作业,对不同的教学班(teaching class)进行作业布置(包括作业提交时间要求等);当然对某课程的教学班可以有多项作业布置。
系统需要教师登记学生的每项作业的作业成绩。
例3
绘制类图。
要求:请根据下列图书馆图书系统的一些用例描述,进行领域建模,绘制概念类图,并对类之间的关系进行简要描述。
(1)“借书”用例描述:
读者携带要借的书到借书处,将书和学生校园卡交给管理员。
管理员刷校园卡。系统显示该证用户信息并提示账户状态正常,进入借书模式。如有违期图书,欠款或已借满,则告知。
管理员刷图书条码。
系统检查图书是否为可借状态,如正常,则记录到读者的借阅列表中,修改图书状态。并再次检查用户是否已借满。如借满,则提示。管理员重复刷图书条码,直至刷完读者要借的书。
最后,更新图书在馆信息。
(2)“还书”用例中包括的部分用例描述:
如果图书超期,则进行罚款处理。
罚款可以收现金,或从学生校园卡的余额中扣除。
如果图书损坏,也同样进行罚款处理。
最后,更新图书在馆信息。
三、顺序图/时序图/序列图
1. 关键要点
表现参与者或对象之间的消息交互及时间顺序。
横向排列对象(参与者、边界类、实体类等),纵向按时间顺序排列消息。
2. 例题
例1
查询采购订单。
例2
预约借书功能存。本例中在编辑窗口先输入图书信息,之后系统通过查询把详细的图书详情信息显示,之后读者选择预约、输入读者信息和预借时间等信息,按保存预约,系统新建并保存预约借书记录。
例3
请根据下列需求,绘制时序图。
“学生选课”用例的流程如下。①学生打开“选课窗口”(默认已登录的情况下)②学生在“选课窗口”输入课程名点击“查找教学班”按钮,系统查找到该课程的开课教学班后,在窗口中显示查询结果。③查询结果列表中的每个开课教学班后都有一个“报名”按钮。学生点击某课程教学班后部的“报名”按钮,系统就保存相应学生的“选课记录”并返回“报名成功”信息在窗口上。
四、状态图
1. 关键要点
描述某个对象的所有状态及其状态间的转换。
转换由触发事件或条件引起,条件需用 [条件] 表示。
2. 例题
例1
请需求描述绘制“开课计划”的状态图。
教务管理人员每学期开始前编制新学期的课程的“开课计划”,状态为“编辑中”,编辑后提交,状态为“待审核”;经过审核后,状态变为“计划通过”。之后,通过教务管理员在系统手动操作开放选课后,该“开课计划”进入“开放选课”状态,在此状态下学生可以进行选课。如果选课人数达到该开课计划的人数上限,则状态变为“已选满”,这时其他学生不能再选课了;如果后面有学生取消了选课,则状态再变成“开放选课”。当系统时间到达选课结束时间时,系统关闭选课功能,该“开课计划”状态为“关闭选课”。
例2
请画出“学生”在学校系统中整个生命周期内的状态图。要求:至少 5个状态。(可以根据自己的理解写,合理就可以。)
五、部署图
1. 关键要点
描述硬件节点(如服务器、客户端)及其网络协议。
需标明处理器及主程序的部署。
2. 例题
例1
某公司客户管理系统包括客户端PC机、应用服务器和数据库服务器,其中客户端分别由客服呼叫中心、其他管理部门的员工在不同的PC机登录操作。该公司各部门和人员的PC机和服务器等是部署在企业的局域网中。
公司的客户通过互联网可以接入该客服管理系统的应用服务器。公司的应用系统可以通过电话网络接入电信服务提供商的电话业务服务器。
要求:请根据上面的描述创建客户管理系统的部署图。(注:请体现出硬件节点间的通信关系、处理器上要求部署的主程序。)
例2
银行ATM系统