面向对象分析实例.ppt
对象,实例描述:习题管理系统系统需求说明按三方面描述:系统问题域说明:应用系统的业务范围系统边界说明:确定系统与用户之间接口系统功能说明:系统需要实现的责任,系统问题域说明:,在一个公共习题库的支持下,负责各科习题的教师:可用系统编写习题及答案,并存入习题库;从习题库中选择一组习题去组成作业,并在要求时间公布习题答案;从习题库中选择一组习题组成考试题公布;可以批改学生的作业;学生答题后收卷,阅卷评分.,系统问题域说明:,每个学生:用系统完成作业或答题并提交给系统;可在习题库中选择习题自己练习;可以在公布答案后核对自己的作业;一名系统管理员:负责习题,编班和权限管理和维护习题库.,系统边界说明:,系统的用户有本校教师,学生,系统管理员.学校以班组织学生,每班每学期有若干课程.每门课的习题由一位教师负责.只有本科教师可提交或修改习题.,系统功能说明:,教师编写习题及答案入库;教师选择习题作为作业公布于习题板上向学生布置;教师选择习题作为试题公布于考试板上(有考题,时间和评分要求).每个学生每门课程都有一个练习本.记录学生完成每道习题(或考题)的解答.教师通过练习本批改习题(或考题);习题库提供入库,提取,权限,查询等管理.,发现对象,出发点:问题域和系统功能问题域:考虑客观事务与系统中对象的映射.系统功能:系统中每项功能应落实到某些对象来完成.边界:考虑用户界面对象.,发现对象,筛选对象原则:舍弃与功能无关的事物对系统有关的事物中筛选是否对系统提供有用的信息,是否向系统提供某些服务.如:一本书是图书馆管理系统的类,但不能是书店管理系统的类,发现对象,具体做法:从需求中找名词作为侯选对象:教师,系统,习题,答案,作业,时间,学生,试题,系统管理员,权限,学校,班,学期,课程,习题板,考试板,练习本,习题库.共18项,发现对象,分析候选对象:系统:太大的抽象,不能作为对象.作业:是习题的同义词,可舍弃.时间:只有考试板要求,可作为考试板属性处理.试题:习题的同义词,可舍弃.,发现对象,分析候选对象:权限:是系统管理员的功能,作为其属性.学校:与系统功能无关,可舍弃.学期:与系统功能无关,可舍弃.系统管理员(一个)与习题库合并为习题库服务对象.,发现对象,筛选结果:班,课程,教师,学生,习题板,练习本习题,考试板,习题答案,习题库服务共10项,分4层对象.,确定对象类,班对象类的属性和方法属性:方法:ID 编班本班学生名单负责教师名单,确定对象类,课程类的属性和方法属性:(无方法)课程编号课程名称授课起止时间负责教师ID,确定对象类,教师类的属性和方法属性:方法:ID 工作姓名负责班号负责课程,确定对象类,教师“工作”方法的注释:教师行为有编写习题和答案,选习题,公布习题和答案,检查作业,阅卷等.这些行为应与“习题”,“习题班”,“考试板”,“练习本”等对象封装更合理(共享).因此,设立“工作”方法抽象表示,它通过教师发送不同消息,去分别完成不同功能.,确定对象类,学生类的属性和方法属性:方法:ID 练习姓名班级,确定对象类,学生“练习”方法的注释:与教师类似,学生行为有提取习题,核对答案,自选习题,答题等.这些行为应与“练习本”,“习题解答”和“习题库服务”等对象封装更合理.因此,设立“练习”方法抽象表示,通过学生发不同消息,去完成不同功能.,确定对象类,习题板类的属性和方法属性:方法:所属课程,选题,查题,要求完成期限,公布答案一组习题,查阅答案公布时间,确定对象类,练习本类的属性和方法属性:方法:课程号 提取习题,答案 检查作业,学生ID 自选习题,习题解答 核对答案,确定对象类,习题类的属性和方法属性:方法:习题号 编写习题,题目内容 编写答案,答案 习题入库 所属课程 难度系数,确定对象类,考试板类的属性和方法属性:方法:所属课程 收卷要求完成期限 阅卷答卷评分标准,确定对象类,习题答案类的属性和方法属性:方法:习题号 答题解答答案,确定对象类,习题库服务类的属性和方法属性:方法:权限表 库管理,编班,查询表 习题入库,索引表 提取习题,权限检查.,确定对象类的关系,各类对象之间的关系:分类关系:一般-特殊(继承)关系组成关系:整体-部分(结构)关系静态关系:实例连接(属性相关)动态关系:消息连接(行为相关),分析本例的对象之间的关系,分类的关系习题板与考试板是父子关系.考试板可看作为特殊的习题板,除习题板的共性外,增加了评分标准.,分析本例的对象之间的关系,组成的关系:班与学生是组成的关系(1对n)习题板与习题是组成的关系(1,0对n)练习本与习题答案是组成关系(1对n),分析本例的对象之间的关系,实例连接关系:学生与练习本对象之间存在一对多的实例连接关系.由练习本中的学生ID属性体现.考试板与练习本对象之间存在一对多的实例连接关系.练习本用快照复制答案作为考试板中答卷属性体现.教师与课程对象之间存在一对多的实例连接关系.由课程中负责教师ID属性体现.,对象间关系图,班,教师,习题板,练 习本,学生,考试板,习题库,系统管理员,习题,课程,习题解答,1,n,n,n,n,n,n,n,1,1,1,1,0,1,0,1,分析本例的对象之间的关系,对象消息连接:消息连接与系统分布相关.如何安排系统对象所在地是关键.本例假设用3台处理机,对象分3组:教师,课程,习题,习题板,考试板班,学生,练习本,习题解答习题库服务,分析本例的对象之间的关系,对象消息连接:(同机通信)教师向习题发消息:调用编写习题,编写答案,习题入库等方法.教师向习题板发消息,可调用选题,公布答案,查询答案,查询习题等方法.教师向考试板发消息可调用收卷,阅卷方法,分析本例的对象之间的关系,对象消息连接:(同机通信)学生向练习本发消息,可调用提取作业,核对答案,自选习题等方法学生向习题答案发消息,可调用答题方法,分析本例的对象之间的关系,对象消息连接:(异机通信)教师向练习本发消息,可调用检查作业方法练习本向习题板发消息,可调用查询习题,查询答案方法练习本调用自选习题时,要向习题库发消息去提取习题,分析本例的对象之间的关系,对象消息连接:(异机通信)习题对象向习题库发消息可调用习题入库,提取习题方法.习题板对象向习题库发消息可调用习题入库,提取习题方法,确定对象类图,画完整的类图:(如下一页)每个类有属性和方法.各类之间的各种关系.各类之间的各种消息.将确定类与用户交流,进行几次修改最后确定.再找开发工具就可以编程.,类图:,班,教师,习题板,练 习本,学生,考试板,习题库,系统管理员,习题,课程,习题解答,1,n,n,1,n,n,n,n,1,n,1,1,1,0,1,组成关系,分类关系,静态关系,动态关系,