参与者不是系统的一部分,它们处于系统的外部。参与者可能是人、计算机硬件或设备或外部系统。
划分用例(用例本质上是用户需求的描述,是一个具体的用户目标): 谁使用系统的主要功能? 谁改变系统的数据? 谁从系统获取数据? 谁支持、维护系统?
谁需要借助系统的支持来完成日常工作? 系统需要操作哪些硬件?
系统需要和哪些外部系统交互? 谁对系统运行结果感兴趣? 3) 心得
通过对用例图的分析及对模型软件的使用,对课本知识有了更深刻的理解。 4.2 建立对象模型
4.2.1 候选类的数据字典
数据文件”学生信息表”的字典条目
文件名: 学生信息表 别名: 组成:姓名+学号+性别+所在院系+班级+成绩+考试报名 备注: 数据文件“教务处管理员信息表”的字典条目
文件名:教务处管理员信息表 别名: 组成:教务处管理员编号+登录帐号+登录密码 备注: 数据文件“教师信息表”的字典条目
文件名:教师信息表 别名: 组成:教师号+教师名+性别+所属系部号+职称+所教课程 备注: 数据文件”系统管理员”的字典条目
文件名: 系统管理员 别名: 组成: 系统管理员编号+登录帐号+登录密码 备注:
数据文件”课程”的字典条目
文件名: 课程 6
别名: 组成: 课程编号+课程名称+课程信息+任课教师+学时+课程类型+学分 备注: 事故、主讲课没有时,为0 数据文件”成绩”的字典条目
文件名:成绩 别名: 组成:姓名+学号+院系+班级+课程编号+课程名称+成绩+学分+绩点+平均分 备注:
4.2.2定义类
(1)“学生”类 ●属性 姓名: 系别: 学号: 班级: 入学年份: 登陆账号: 登录密码: 家庭地址: 籍贯: ●操作 学生登录() 成绩查询() 选修课程() 教师评价() 学生信息查询() 学生信息修改() 修改登录密码() 考试报名()
(2)“教师”类 ●属性 姓名: 性别: 科目:
所属院系: 教师职称: 家庭地址: 籍贯: 登录帐号: 登录密码: ●操作
查询学生成绩() 教学计划录入() 修改教师信息() 教师登录() 学生成绩录入() 查询教师信息() 查询学生选课信息() 修改课程信息()
(3)“教务处管理员”类 ●属性
教务人员编号: 所在系别: 登录帐号: 登录密码:
●操作
课程表制定() 教学任务下达() 排课管理()
学生人员信息管理()
7
考试安排()
学生数据管理() 教务人员登录() 设置权限()
(4)“系统管理员”类 ●属性
系统管理员编号: 登录帐号: 登录密码: ●操作
学生信息管理() 权限维护() 管理员登录() 后台数据维护()
(5)“课程”类 ●属性 课程名称: 课程编号: 课程类型:
4.2.3绘制类图
学分: 学时: 任课教师: 课程信息: ●操作
(6)“成绩”类 ●属性 姓名: 学号: 院系: 班级: 课程编号: 课程名称: 成绩: 学分: 平均分: 加权平均分: 加权平均分排名: ●操作
8
4.2.4包图
对于大型复杂系统,常需要把大量的模型元素用包组织起来,以方便处理。对所选系统的类进行分组,以便更清晰地了解系统的结构。
4.2.5分析与讨论
1)建模类图的步骤、方法?
a.确定类( 找出候选类;审查与筛选类)。 b.识别类的属性和操作
识别类的属性从以下角度识别:常识性、专业性、功能性、存储性、操 作性、标志性、关联性; 筛选类的属性; 识别类的操作;
c.识别类之间的关联(确定关联关系及多重性;识别继承:自顶向下或自底向上)。
d.定义类的结构和层次(考虑是否存在聚合或组合关系;对于复杂的系统,用包图为其建模)。
2)识别类有哪些方法,你是如何识别类的?
行为分析、名次识别法、CRC分析法、根据边界类、控制类、实体类的划分来帮助识别分析系统中的类、参考设计模式确定类以及通过对领域进行分析或利用已有领域分析结果得到类等多种方法。 通常使用名词识别法较为简单。
3)解释关联的多重性?如何确定类的属性、操作、类之间的关联关系、组织类之间的继承?
通常需要说明一个关联实例中有多少个相互连接的对象,这就是关联的多重性。 确定类( 找出候选类;审查与筛选类)。 识别类的属性和操作
识别类的属性从以下角度识别:常识性、专业性、功能性、存储性、操 作性、标志性、关联性; 筛选类的属性;
9
识别类的操作;
识别类之间的关联(确定关联关系及多重性;识别继承:自顶向下或自底向上)。 定义类的结构和层次(考虑是否存在聚合或组合关系;对于复杂的系统,用包图为其建模)。
4.3 建立动态模型
系统的动态行为模型由交互图(顺序图和协同图)、状态机图和活动图表达。在系统的分析和设计中应当对主要的Use Case和对象类绘制这些图形,以便分析系统的行为,印证和修改系统的静态结构,满足用户的需求,达到系统的目标。
4.3.1顺序图
成绩查询顺序图:
4.3.2 通信图
(将以上顺序图转换为通信图)
10