1、面向对象分析和设计(UML)课程设计汇报设计题目: 学生成绩管理系统 院 系: 计算机科学和工程学院 专 业: 软件工程 班级: 学 号: 姓 名: 指导老师: 设计地点: 开课时间: 至 年第 1 学期常熟理工学院计算机科学和工程学院 制学生姓名 成绩 评语: 指导老师(署名) 年 月 日目录1. 设计目标和任务.12. 开发环境. .22.1 硬件环境. .22.2 软件环境.23.设计题目.33.1 题目名称. .33.2 题目具体描述. .33.3 功效要求.34. 相关技术及知识点.44.1 UML建模语言.44.2 RUP软件开发过程. .44.3Rational Rose45.
2、设计. .5 5.1 用例图. .5 5.2 概念模型85.3类图 .95.4次序图.105.5协作图 135.6状态图 155.7活动图. 165.8组件图、布署图 176. 双向工程.197. 总结.268. 参考资料.271. 设计目标和任务学生成绩管理在大学里是一件很耗时活动,学校还面临着给学生缺考问题。在学生选择那些课程后,教务处将这些信息输入到一个计算机系统,然后给没一人打印一份课表和对应成绩表给学生。一旦给全部学生全部登记好了成绩,忽然出现成绩错误是,教务处就需要问询学生方便得到其它选择。改学生成绩管理系统是一个面向学生,老师用来进行对学生成绩管理管理信息系统。该信息系统能够为师
3、生提供多种管理服务。 (1)学生成绩查询系统能够为一定数目标学生提供服务,每个学生全部 能够有唯一账号,每一个账号包含个人编号和个人信息,系统通 过一个单独程序为学生提供服务,不需要人员干预,这些服务包 括:查询成绩,修改自己密码; (2)学生成绩需要老师对其进行录入和修改,或删除,既学生不直 接和系统交互,老师代其和系统进行交互,当然老师也能够进行对成 绩查询 (3)而系统管理员关键负责是对教忙或学生信息进行管理,并 且管理员还得对本系统设置权限。 或能够经过师生唯一账号对成 绩进行查询。2. 开发环境2.1 硬件环境 一台PC台式机或是便携式电脑2.2 软件环境汉字windows以上系统R
4、ational Rose3.设计题目3.1 题目名称学生成绩管理系统3.2 题目具体描述生成绩管理系统是专门针对学校所开发一个以管理为基础信息管理系统,它涵盖成绩管理服务全部步骤,将原始人工统计方法转换为优异电脑管理模式。 本系统是学生成绩管理系统。输入一个同学姓名和学号,系统能够输出学生所在学院、班级、成绩等学生信息;对于已经录入学生成绩管理系统学生信息能够进行修改,比如:删除、添加。对于没有录入学生成绩管理系统学生信息能够添加到系统(此项功效实现需要对用户身份进行核查);能够对学生信息进行保留,即退出系统时,成绩成绩不能丢失;能够对学生成绩进行拷贝;能够登入和退出系统。3.3 功效要求系统
5、管理员登录系统后,经过身份验证,能够对学生基础信息进行管理,包含以下:添加学生信息、查询学生信息、修改学生信息、删除学生信息。 学生成绩管理系统为管理员、老师和学生提供服务接口方便她们进行管理操作。同时,还为系统提供数据服务接口来管理系统。系统总体功效需求图所表示:4. 相关技术及知识点4.1 UML建模语言 UML目标是以面向对象图方法来描述任何类型系统,含有很宽应用领域。其中最常见是建立软件系统模型,但它一样能够用于非软件领域系统,如机械系统、企业机构或业务过程,和处理复杂数据信息系统、含有实时要求工业系统或工业过程等。 UML是一个通用标准建模语言,能够对任何含有静态结构和动态行为系统进
6、行建模。另外,UML适适用于系统开发过程中从需求规格描述到系统完成后测试不一样阶段。在需求分析阶段,能够用用例来捕捉用户需求。经过用例建模,描述对系统感爱好外部角色及其对系统(用例)功效要求。分析阶段关键关心问题域中关键概念(如抽象、类和对象等)和机制,需要识别这些类和它们相互间关系,并用UML类图来描述。总而言之,标准建模语言UML适适用于以面向对象技术来描述任何类型系统,而且适适用于系统开发不一样阶段,从需求规格描述直至系统完成后测试和维护。4.2 RUP软件开发过程Rational Unified Process(RUP,统一开发过程)是一套面向对象软件工程过程。RUP说明了怎样有效地使
7、用成熟技术开发软件。 RUP中有9个关键工作流,分为6个关键过程工作流(Core Process Workflows)和3个关键支持工作流(Core Supporting Workflows)。9个关键工作流在项目中轮番被使用,在每一次迭代中以不一样关键和强度反复。业务建模(Business Modeling)了解系统组织结构及其商业运作,确保全部参与人员对开发系统有共同认识。4.3 Rational RoseRational Rose特点1. 确保模型和代码高度一致2. 支持多个语言3. 为团体开发提供强有力支持4. 支持模型Internet公布5. 生成使用简单且定制灵活文档6. 支持关系
8、型数据库建模5. 设计5.1 用例图 本系统是一个学生成绩管理系统,关键功效是为老师和学生方便查询成绩。下面使用了用例图方法表现了整个系统全部功效。1.参与者:管理员: 老师:学生:2管理员用例图:3.老师用例图4.学生用例图用例说明:n 用例编号:01n 用例名称:学生查询成绩n 用例描述:学生在浏览过程中,选中对应操作。n 参与者:学生n 前提条件:用户身份验证。n 事后条件:若学生登录成功,且成绩查询无误,则该学生能够关闭该窗口,依据自己意愿进行其它相关操作;假如登录不成功则终止操作。基础路径:1. 系统确定用户已登录;2. 学生浏览想要查询成绩;3. 确定成绩无误,关闭该窗口;4. 若
9、成绩有误,直接向系统提出修改申请;5. 由系统进行数据库查询,核实成绩,把修改结果反馈给学生;6. 系统提醒已批阅申请;7. 学生再次查看成绩,确定无误;8. 退出系统。n 用例编号:02n 用例名称:老师录入学生成绩n 用例描述:老师录入相关学生成绩到系统内。n 参与者:老师n 前提条件:学生成绩管理系统正常运行,用户身份验证经过。n 事后条件:若管理员登陆成功,则老师可将相关学生成绩录入到系统;不然管理员不可实施该操作。 基础路径: 1.老师进入学生成绩管理系统; 2.老师进入成绩管理界面;3.老师输入对应成绩;4.老师提交信息;5.系统输出添加成功提醒。n 用例编号:03n 用例名称:管
10、理员修改信息n 用例描述:管理员修改对应用户信息n 参与者:管理员n 前提条件:学生成绩管理系统正常运行,用户身份验证经过。n 事后条件:若管理员登陆成功,且对应用户信息存在,则管理员能够修改对应用户信息;不然管理员不可实施该操作。基础路径:1.管理员进入学生成绩管理系统后台;2.管理员进入用户管理界面;3.管理员搜索对应用户,点击修改按钮;4.管理员修改用户信息;5.管理员提交信息;6.系统输出修改成功提醒。n 用例编号:04n 用例名称:用户登录n 用例描述:用户依据自己用户名和密码,登录到成绩管理系统n 参与者:用户n 前提条件:学生成绩管理系统正常运行。n 事后条件:若用户登陆成功,该
11、用户可进行权限范围内相关操作;不然终止登录。基础路径:1. 用户进入成绩管理系统;2. 用户输入用户名和密码;3. 系统对用户账号和密码进行检验;4. 系统统计并显示目前登录用户;5. 用户进行权限范围内相关操作;6. 系统许可进行权限范围内相关操作。5.2概念模型5.3类图在类图中类用矩形框来表示,它属性和操作分别列在分格中。如不需要表示具体信息时,分格能够省略。一个类可能出现在好多个图中。同一个类属性和操作可只在一个图中列出,在其它图中可省略。关系用类框之间连线来表示,不一样关系用连线上和连线端头处修饰符来区分。系统类:(1).Students(学生类)(2).Teachers(老师类)(
12、3).Manager(管理员类)(4).Courses(课程类)(5).Grades(成绩类)成绩管理类图:其它关系图:5.4次序图次序图表示了对象之间传送消息时间次序。每一个类元角色用一条生命线来表示,即用垂直线代表整个交互过程中对象生命期。生命线之间箭头连线代表消息。次序图能够用来进行一个场景说明即一个事务历史过程。次序图一个用途是用来表示用例中行为次序。当实施一个用例行为时,次序图中每条消息对应了一个类操作或状态机中引发转换触发事件。管理员管理学生信息次序图:图1.添加学生信息次序图 图2.修改学生信息次序图 图3.删除学生信息次序图老师录入学生成绩信息次序图: 图4.老师录入学生成绩次
13、序图老师修改学生成绩次序图: 图5.老师修改学生成绩次序图老师删除学生成绩次序图:图6.老师删除学生成绩次序图学生查询成绩序列图:5.5 协作图协作图和序列图全部能够表示各对象间交互关系,但它们侧关键不一样。序列图用消息几何排列关系来表示消息时间次序,各角色之间相关关系是隐含。协作图用各个角色几何排列图形来表示角色之间关系,并用消息来说明这些关系。在实际中能够依据需要选择这两种图。一个协作图描述了系统中为实现一些服务所包含对象饰演角色及其相互之间交互。协作图着重于有协作关系对象之间交互和链接(指对象实例之间物理或概念上链接,一个链接是某关联一个实例)。它可用于图示系统中操作实施、用例实施或一个
14、简单交互场景。协作图描述了对象及其之间链接,还描述了链接对象之间怎样发送消息。管理员添加学生信息协作图: 图7.管理员添加学生信息协作图管理员修改学生信息协作图: 图8.管理员修改学生信息协作图管理员删除学生信息协作图: 图9.管理员删除学生信息协作图5.6 状态图描述类对象全部可能状态,和事件发生时状态转移条件。能够捕捉对象、子系统和系统生命周期。她们能够通知一个对象能够拥有状态,而且事件(如消息接收、时间流逝、错误、条件变为真等)会怎么伴随时间推移来影响这些状态。一个状态图应该连接到全部含有清楚可标识状态和复杂行为类;该图能够确定类行为,和该行为怎样依据目前状态改变,也能够展示哪些事件将会
15、改变类对象状态。状态图是对类图补充。管理员状态图: 图10.管理员状态图老师状态图: 图11.老师状态图学生状态图: 图12.学生状态图5.7 活动图 活动图”可经过一系列操作将业务步骤或软件进程以工作流形式显示出来。 这些操作能够由人、软件组件或计算机来实施,使用活动图能够描述多个类型步骤。管理员活动图: 图13.管理员活动图老师活动图: 图14.老师活动图学生活动图: 图15.学生活动图5.8 组件图、布署图组件图(component diagram)是用来反应代码物理结构。从组件图中,您能够了解各软件组件(如源代码文件或动态链接库)之间编译器和运行时依靠关系。布署视图表示运行时计算资源(
16、如计算机及它们之间连接)物理部署。这些运行资源被称作节点。在运行时,节点包含构件和对象。构件和对象分配能够是静态,它们也能够在节点间迁移。假如含有依靠关系构件实例放置在不一样节点上,布署视图能够展示出实施过程中瓶颈。组件图:布署图:6. 双向工程生成代码以下:Person类: /Source file: E:JavaPerson.javapublic class Person private String name; private String sex; private int age; /* * roseuid 50D028F000CB */ public Person() Teacher
17、类:/Source file: E:JavaTeacher.javapublic class Teacher extends Person private String Department; public Students theStudents; public Courses theCourses; /* * roseuid 50D028F00226 */ public Teacher() /* * roseuid 50CFF3FA0307 */ public void Get_CourseInfo() /* * roseuid 50CFF415 */ public void Get_Cl
18、assRoom() /* * roseuid 50CFF42400BD */ public void Get_PersonalInfo() Students类:/Source file: E:JavaStudents.javapublic class Students extends Person private String Class; private String Major; private String Department; public Courses theCourses; public Grades theGrades; public Teachers theTeachers
19、; /* * roseuid 50D028F001C2 */ public Students() /* * roseuid 50CFF0CA01EA */ public void Test() /* * roseuid 50CFF0DB013A */ public void Get_TestInfo() /* * roseuid 50CFF0FE0328 */ public void Search_Grade() Courses类:/Source file: E:JavaCourses.javapublic class Courses private String Description; p
20、rivate String Teacher; public Students theStudents; public Teachers theTeachers; /* * roseuid 50D028F00280 */ public Courses() /* * roseuid 50CFF1C2 */ public void Get_CourseInfo() /* * roseuid 50CFF1DF0341 */ public void Search_Teacher() Grades类:/Source file: E:JavaGrades.javapublic class Grades pr
21、ivate String CourseName; private String CourseID; private String Teacher; private String Grade; public Students theStudent; /* * roseuid 50D028F0010E */ public Grades() /* * roseuid 50CFF2ED019F */ public void Get_CourseInfo() /* * roseuid 50CFF30C014E */ public void Search_Teacher() /* * roseuid 50
22、CFF31B032E */ public void Search_Grade() Manage类:/Source file: E:JavaManage.javapublic class Manage extends Person /* * roseuid 50D028F00053 */ public Manage() /* * roseuid 50CFF4890317 */ public void Get_TeacherInfo() /* * roseuid 50CFF49B0216 */ public void Get_StudentInfo() /* * roseuid 50CFF4A60
23、366 */ public void Manage_StudentInfo() /* * roseuid 50CFF4C0035C */ public void Manage_TeacherInfo() 7. 总结经过此次UML系统设计让我对UML建模有了深入认识,让我了解UML建模对开发程序有很大益处。这次课程设计和平时上课时试验题很相同,所以做难度可能就会小了那么些,不过怎样在新项目中思索,考虑更全方面,能够让设计尽可能少出现可能发生问题,全部是摆在我面前难题。在UML模型中能清楚反应出程序全部行为,为程序开发和维护有很大帮助,同时建模能将问题可视化、形式化,方便系统设计和开发人员进行差错处理,提升系统实现效率。经过一个学期学习,我不仅对专业知识进行了更深入学习,对采取开发软件也有了深入认识,对各阶段实现和任务完成有了深入了解。在整个设计过程中,经过怎么样把各个管理信息连接起来分析,锻炼了我对事情分析能力,经过怎样处理过程中出现问题,提升了我们查找文件能力、对网络资源利用能力和和其它同学沟通能力,这次课程设计,是对这学期这门课程最好巩固,过程中还有很多问题、缺点,我在以后学习生活中会继续学习完善。8. 参考资料1.UML基础和Rose建模教程人民邮电出版社2.UML系统分析和设计高等教育出版社3