学生成绩管理系统UML面向对象设计毕业论文

上传人:无*** 文档编号:100177115 上传时间:2022-06-02 格式:DOC 页数:48 大小:555.50KB
返回 下载 相关 举报
学生成绩管理系统UML面向对象设计毕业论文_第1页
第1页 / 共48页
学生成绩管理系统UML面向对象设计毕业论文_第2页
第2页 / 共48页
学生成绩管理系统UML面向对象设计毕业论文_第3页
第3页 / 共48页
点击查看更多>>
资源描述
. . 学生成绩管理系统UML面向对象设计毕业论文目 录1. 概述- 4 -1.1 系统简述- 4 -1.2 软件设计目标- 5 -1.2.1功能目标- 5 -1.2.2性能目标- 6 -1.3 参考资料- 6 -2. 术语表- 6 -3. 设计概述此处请用简单的结构化描述- 7 -3.1 简述- 7 -3.2 系统结构设计- 7 -4. 用例- 9 -4.1 用例图- 9 -4.2 用例描述- 11 -4.3 系统界面- 13 -5. 对象模型- 19 -5.1 类定义- 19 -5.2 类关联描述- 22 -5.3 对象模型图- 23 -6. 对象数据字典描述- 24 -6.1 数据流描述- 24 -6.2 子系统中的对象- 26 -7. 动态模型- 37 -7.1 场景Scenarios- 37 -7.2事件定义Events- 38 -7.3 状态图- 42 -8. 数据库定义- 43 -8.1概念结构设计- 43 -8.2逻辑结构设计- 45 -8.3物理结构设计- 46 -9. 部署图- 48 -10. 非功能性需求- 49 - 48 - / 481. 概述1.1 系统简述随着网络通信技术的迅速发展和信息技术的广泛应用,计算机的应用已普及到经济和社会生活的各个领域。教育领域也不例外,现今已经出现了各种远程网络在线教育系统、图书馆管理系统、学籍管理系统其中学生成绩管理是任一院校都不可缺少的部分,它的内容对于学校的决策者和教学管理者来说都至关重要,而传统的人工管理方式效率较低,为数据的查询、更新和维护代来了极大的不便。所以学生学籍管理信息系统的开发和应用是必要的,它能够为管理人员提供充足的信息和快捷的查询手段,提高学校学籍管理的效率。系统的可行性分析1系统实施运行的可行性:各教师,学生都已熟练掌握计算机的基本实用方法和操作技能,对新系统的开发,表现出极大的热情。提出了很多好的建议和要求。2技术可行性:校园网已正常运行;开发人员已熟练掌握开发工具。技术上实现系统是可行的。3经济可行性:校园内部局域网络已经建成;硬件投入不需要很大。学生成绩管理在大学里是一件非常耗时的活动,学校还面临着给学生缺考的问题。在学生选择那些课程后,教务处将这些信息输入到一个计算机系统,然后给没一人打印一份课表和对应的成绩表给学生。一旦给所有学生都登记好了成绩,突然出现成绩错误是,教务处就需要询问学生以便得到其他选择。改学生成绩管理系统是一个面向学生,教师用来进行对学生成绩管理的管理信息系统。该信息系统能够为师生提供各种管理服务:学生成绩查询系统能够为一定数目的学生提供服务,每个学生都能够有唯一的账号,每一个账号包括个人的编号和个人信息,系统通过一个单独的程序为学生提供服务,不需要人员的干预,这些服务包括:查询成绩、修改自己的密码;学生的成绩需要教师对其进行录入、修改或删除,既学生不直 接与系统交互,教师代其与系统进行交互,当然教师也可以进行对成绩的查询;而系统管理员主要负责的是对教忙或者学生的信息进行管理,并且管理员还得对本系统设置权限,或者可以通过师生的唯一账号对成绩进行查询。运行环境简述:1、硬件环境CPU:P4 3.0 G以上内存:2GB硬盘:硬盘120G2、软件环境数据库: SQL Server 2005应用服务器:Tomcat 6.0服务器开发平台: Visual Studio 2008操作系统: Windows 71.2 软件设计目标系统管理员登录系统后,通过身份验证,能够对学生的基本信息进行管理,包括如下:添加学生信息、查询学生信息、修改学生信息、删除学生信息。1.2.1功能目标 输入一个同学的XX和学号,系统能够输出学生所在的学院、班级、成绩等学生信息;对于已经录入学生成绩管理系统的学生信息可以进行修改,例如:删除、添加。对于没有录入学生成绩管理系统的学生信息可以添加到系统此项功能的实现需要对用户身份进行核查;能够对学生的信息进行保存,即退出系统时,成绩成绩不能丢失; 能够登录和退出系统。1.2.2性能目标能够比较准确快捷地完成上述学生成绩管理系统所要求的功能即可。保证模型和代码高度一致支持多种语言为团队开发提供强有力的支持支持模型的Internet发布生成使用简单且定制灵活的文档支持关系型数据库的建模1.3 参考资料1 林.巴斯等. 软件构架实践. 清华大学, 2003.82 张海藩. 软件工程导论. 清华大学, 2002.63 郑人杰等. 实用软件工程. 清华大学, 2001.14 吴建,郑潮等. UML基础与建模案例. 人民邮电, 2005.62. 术语表对本文档中所使用的各种专业术语、容易引起歧义的术语以及自定义的术语进行说明。如果一些术语在需求规格说明书中已经说明过了,此处不用再重复,可以指引读者参考需求说明。术语说明类图提供了对类及其关系进行建模的一种图形化表示法关联描述了有着共同的结构和语义的一组链接多重性指定一个类与其关联类的单个实例可能相关的实例数目信号事件从一个对象到另一个对象的明确的单向信息流动变更事件由满足布尔表达式而引起的事件时间事件在绝对时间上或在某个时间间隔内发生的事情所引起的事件迁移从一个状态到另一个状态的瞬时变化场景系统在某个特定的执行期内所发生的一系列事件3. 设计概述3.1 简述生成绩管理系统是专门针对学校所开发的一种以管理为基础的信息管理系统,它涵盖成绩管理服务的所有环节,将原始的人工统计方法转换为先进的电脑管理模式。UML的目标是以面向对象图的方式来描述任何类型的系统,具有很宽的应用领域。其中最常用的是建立软件系统的模型,但它同样可以用于非软件领域的系统,如机械系统、企业机构或业务过程,以及处理复杂数据的信息系统、具有实时要求的工业系统或工业过程等。UML是一个通用的标准建模语言,可以对任何具有静态结构和动态行为的系统进行建模。此外,UML适用于系统开发过程中从需求规格描述到系统完成后测试的不同阶段。在需求分析阶段,可以用用例来捕获用户需求。通过用例建模,描述对系统感兴趣的外部角色及其对系统的功能要求。分析阶段主要关心问题域中的主要概念和机制,需要识别这些类以及它们相互间的关系,并用UML类图来描述。总之,标准建模语言UML适用于以面向对象技术来描述任何类型的系统,而且适用于系统开发的不同阶段,从需求规格描述直至系统完成后的测试和维护。3.2 系统结构设计Rational Unified ProcessRUP,统一开发过程是一套面向对象的软件工程过程。RUP说明了如何有效地使用成熟技术开发软件。RUP中有9个核心工作流,分为6个核心过程工作流Core Process Workflows和3个核心支持工作流Core Supporting Workflows。9个核心工作流在项目中轮流被使用,在每一次迭代中以不同的重点和强度重复。业务建模Business Modeling理解系统的组织结构及其商业运作,确保所有参与人员对开发系统有共同的认识。3.2.1 顶层系统结构学生管理系统逻辑流程图如下图所示:学生成绩管理系统管理员登入学生成绩查询系统学生成绩管理系统学生成绩的录入学生成绩的修改学生成绩的删除查 询 条 件 学生成绩的排序学生成绩的分类学生成绩及其他相关信息数 据 保 存退 出 系 统图3.1 学生管理系统逻辑流程图顶层数据流图,如图3.2所示:图3.2 顶层数据流图3.2.2 子系统结构图3.3 学生成绩管理数据流图4. 用例本系统是一个学生成绩管理系统,主要功能是为教师和学生方便查询成绩。下面使用了用例图的方式表现了整个系统的所有功能。4.1 用例图1参与者:管理员、教师、学生2管理员用例图:图4.1 管理员用例图3教师用例图图4.2 管理员用例图4学生用例图图4.3 管理员用例图4.2 用例描述用例1:学生查询成绩学生在浏览过程中,选中相应操作。参与者学生、成绩管理系统前置条件用户身份验证。后置条件若学生登录成功,且成绩查询无误,则该学生可以关闭该窗口,根据自己的意愿进行其他相关操作;如果登录不成功则终止操作。工作流描述1.系统确认用户已登录;2.学生浏览想要查询的成绩;3.确认成绩无误,关闭该窗口;4.若成绩有误,直接向系统提出修改申请;5.由系统进行数据库查询,核实成绩,把修改结果反馈给学生;6.系统提示已批阅申请;7.学生再次查看成绩,确认无误;8.退出系统。例外学生忘记登录密码、找回密码限制学生只能查询自己的成绩注释无表4.1 学生查询成绩用例描述用例2:教师录入学生成绩教师录入相关学生的成绩到系统内。参与者教师、成绩管理系统前置条件学生成绩管理系统正常运行,用户身份验证通过。后置条件若管理员登陆成功,则教师可将相关学生的成绩录入到系统;否则管理员不可执行该操作。工作流描述1.教师进入学生成绩管理系统;2.教师进入成绩管理界面;3.教师输入相应成绩;4.教师提交信息;5.系统输出添加成功提示。例外教师忘记登录密码、找回密码限制教师只能录入自己学生的成绩注释无表4.2 教师录入学生成绩用例描述用例3:管理员修改信息管理员修改相应用户信息参与者管理员、成绩管理系统前置条件学生成绩管理系统正常运行,用户身份验证通过。后置条件若管理员登陆成功,且相应用户信息存在,则管理员可以修改相应用户信息;否则管理员不可执行该操作。工作流描述1.管理员进入学生成绩管理系统后台;2.管理员进入用户管理界面;3.管理员搜索相应用户,点击修改按钮;4.管理员修改用户信息;5.管理员提交信息;6.系统输出修改成功提示。例外管理员忘记登录密码、找回密码限制管理员不能超越自己的权限进行修改注释系统只有一个超级管理员表4.3 管理员修改信息用例描述用例4:用户登录用户根据自己的用户名和密码,登录到成绩管理系统。参与者学生、教师、管理员、成绩管理系统前置条件学生成绩管理系统正常运行,用户身份验证通过。后置条件若用户登陆成功,该用户可进行权限范围内的相关操作;否则终止登录。工作流描述用户启动系统; 系统提示用户输入用户名和密码;用户输入用户名和密码; 系统进行验证,给出验证信息;若通过,用户选择相关信息进行修改查询 系统允许进行权限范围内的相关操作; 若不通过 系统进入错误界面,并输出提示信息。例外用户忘记登录密码、找回密码限制用户不能超越自身权限进行某些操作注释无表4.4 用户登录用例描述4.3 系统界面 查询所有学生成绩部分:可以查询所有学生的成绩。如图4.4所示:图4.4 查询所有学生成绩 按学号查询成绩:输入要查询的学生学号,点击查询就可以查看学生的学号、XX、课程的名称和对应的成绩,并且会计算该学生的平均分。如图4.5所示:图4.5 按学号查询学生成绩 按课程查询学生成绩:选择要查询的课程,点查询,就可以查看选择该课程的学生学号、XX和对应的成绩,并且可以查看该们课程的最高分,最低分和平均分。如图4.6所示:图4.6 按课程查询学生成绩 单个学生成绩录入:输入学生学号,选择课程,输入对应的分数,如果该学生这门课分数不为空,则不能添加,提示相应的错误信息,如果该学生这门课分数为空,则可添加。如图4.7所示:图4.7 单个学生成绩录入 批量学生成绩录入:选择课程,则会显示出选择了这门课的所有学生学号,XX和成绩,就课进行成绩录入。如图4.8所示:图4.8 批量学生成绩录入 学生成绩修改:输入要修改的学生的学号,选择要修改的课程,该学生之前的成绩就显示出来,再进行修改成绩。如图5.9所示:图4.9 学生成绩修改 学生成绩删除:输入要删除的学生的学号,选择要删除的课程,点击删除按钮,就可以改学生该们课程的成绩,成功就提示成功删除,否则提示相应的错误信息。如图4.10所示:图4.10 学生成绩删除5. 对象模型5.1 类定义在类图中类用矩形框来表示,它的属性和操作分别列在分格中。如不需要表达详细信息时,分格可以省略。一个类可能出现在好几个图中。同一个类的属性和操作可只在一种图中列出,在其他图中可省略。关系用类框之间的连线来表示,不同的关系用连线上和连线端头处的修饰符来区别。系统类:(1) Students属性:学号、XX、性别、出生年月、专业、家庭住址、联系方式方法:设置学号、获得学号、设置XX、获得XX、设置性别、获得性别、设置出生年月、获得出生年月、设置专业、获得专业、设置家庭住址、获得家庭住址、设置联系方式、获得联系方式(2) Teachers属性:教师号、XX、性别、出生年月、院系、家庭住址、联系方式方法:设置教师号、获得教师号、设置XX、获得XX、设置性别、获得性别、设置出生年月、获得出生年月、设置院系、获得院系、设置家庭住址、获得家庭住址、设置联系方式、获得联系方式(3) Manager属性:XX、密码、身份方法:设置XX、获得XX、设置密码、获得密码、设置身份、获得身份(4) Courses属性:课程号、课程名称、开课学期、学时、学分方法:设置课程号、获得课程号、设置课程名称、获得课程名称、设置开课学期、获得开课学期、设置学时、获得学时、设置学分、获得学分(5) Grades属性:学号、课程号、成绩方法:设置学号、获得学号、设置课程号、获得课程号、设置成绩、获得成绩学生类、教师类和管理员类继承自Person类,其类图如下:图5.1 Person类继承关系图系统成绩管理整体类图如下图所示:图5.2系统整体类图成绩和课程类图:图5.3成绩与课程类图5.2 类关联描述类关联描述如下表所示:类关联关联关系意义1学生与课程1:1一个学生查看当前课程成绩2教师与课程n:n一个教师教授多门课程;一门课程被多位老师教授3学生与成绩 1:n一个学生可以查看多门成绩4教师与成绩1:n一个教师可以给他教授的多门课程录入成绩5管理员与成绩1:n管理员可以修改任何输入有误的成绩表5.1 类关联表5.3 对象模型图图5.4 对象模型图6. 对象数据字典描述数据流图表达了数据和处理的关系,数据字典则是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。数据字典在数据库设计中占有很重要的地位。数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程5个部分。其中数据项是最小组成单位,若干个数据项可以组成一个数据结构,数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。6.1 数据流描述数据流编号:A01 数据流名称:查询所有学生成绩 简述:有学生选课记录并有成绩 数据流来源:点击查询所有学生成绩按钮,访问数据库,显示所有学生的成绩 数据流去向:数据库中存在的表的信息 数据流组成:学生学号+XX+课程名称+成绩 数据流编号:A02 数据流名称:按学号查询成绩 简述:该学生存在 数据流来源:输入要查询的学生学号,点击查询,根据要求访问数据库,显示该学生所选的所有课的成绩并计算平均分 数据流去向:数据库中存在的表的信息 数据流组成:学号+XX+课程名称+成绩 数据流编号:A03 数据流名称:按课程查询成绩 简述:该课程存在并且有人选择这么课程 数据流来源:选择要查询的课程,点击查询,根据要求访问数据库,显示选择了这么课程的所有学生的学号、XX和分数,并且计算最高分、最低分、平均分 数据流去向:数据库中表的信息 数据流组成:课程名+学号+XX+成绩 数据流编号:A04 数据流名称:单个学生成绩录入 简述:该学生存在并且选修了选中的课程 数据流来源:输入学号并选择课程,输入成绩,点击录入成绩,如果录入成功则显示添加成功,否则显示相应的错误信息 数据流去向:数据库中表的信息 数据流组成:学号+课程+成绩+录入 数据流编号:A05 数据流名称:批量学生成绩录入 简述:该课程存在并且有学生选择这门课程 数据流来源:选择要添加成绩的课程,则会出现选择了这么课程的所有学生的学号、XX,在成绩那一栏添加成绩,添加完成后点击录入成绩,成功则显示成绩添加成功,否则提示相应的错误信息 数据流去向:数据库中表的信息 数据流组成:课程名称+学号+XX+成绩+录入 数据流编号:A06 数据流名称:学生成绩修改 简述:要修改的学生存在,选修了相应的课程,并且之前有成绩 数据流来源:输入要修改的学生的学号,选择要修改的课程,就会显示该学生的成绩,修改该成绩,修改完成后点击修改,成功就会提示修改成功,否则就提示相应的错误信息 数据流去向:数据库中表的信息 数据流组成:学号+课程+成绩+修改 数据流编号:A07 数据流名称:学生成绩删除 简述:该学生存在并且选修了该课程 数据流来源:输入要删除的学生的学号,选择要删除的课程,点击删除,成功就会提示成功删除,否则就提示相应的错误信息 数据流去向:数据库中表的信息 数据流组成:学号+课程+删除6.2 子系统中的对象6.2.1 对象:Student用途:记录学生基本信息约束:临时对象持久性:从学生登录到退出6.2.1.1 属性描述:1. 属性:Name类型:String描述:学生XX约束:无2. 属性:Sex类型:String描述:学生性别约束:无3. 属性:Birth类型:Date描述:学生生日约束:无4. 属性:Major类型:String描述:学生所学专业约束:无5. 属性:Address类型:String描述:学生家庭住址约束:无6.2.1.2 方法描述:1. 方法:SetName返回类型:void参数:Name返回值:无读取/修改的属性:修改调用的方法:无2. 方法:GetName返回类型:Name参数:无返回值:Name属性值读取/修改的属性:读取调用的方法:无3. 方法:SetSex返回类型:void参数:Sex返回值:无读取/修改的属性:修改调用的方法:无4. 方法:GetSex返回类型:Sex参数:无返回值:Sex属性值读取/修改的属性:读取调用的方法:无5. 方法:SetBirth返回类型:void参数:Birth返回值:无读取/修改的属性:修改调用的方法:无6. 方法:GetBirth返回类型:Birth参数:无返回值:Birth属性值读取/修改的属性:读取调用的方法:无7. 方法:SetMajor返回类型:void参数:Major返回值:无读取/修改的属性:修改调用的方法:无8. 方法:GetMajor返回类型:Major参数:无返回值:Major属性值读取/修改的属性:读取调用的方法:无9. 方法:SetAddress返回类型:void参数:Address返回值:无读取/修改的属性:修改调用的方法:无10. 方法:GetAddress返回类型:Address参数:无返回值:Address属性值读取/修改的属性:读取调用的方法:无6.2.2对象:Teacher用途:记录教师基本信息约束:临时对象持久性:从教师登录到退出6.2.2.1 属性描述:1. 属性:Name类型:String描述:教师XX约束:无2. 属性:Sex类型:String描述:教师性别约束:无3. 属性:Birth类型:Date描述:教师生日约束:无4. 属性:College类型:String描述:教师所在学院约束:无5. 属性:Address类型:String描述:教师家庭住址约束:无6.2.2.2 方法描述:1. 方法:SetName返回类型:void参数:Name返回值:无读取/修改的属性:修改调用的方法:无2. 方法:GetName返回类型:Name参数:无返回值:Name属性值读取/修改的属性:读取调用的方法:无3. 方法:SetSex返回类型:void参数:Sex返回值:无读取/修改的属性:修改调用的方法:无4. 方法:GetSex返回类型:Sex参数:无返回值:Sex属性值读取/修改的属性:读取调用的方法:无5. 方法:SetBirth返回类型:void参数:Birth返回值:无读取/修改的属性:修改调用的方法:无6. 方法:GetBirth返回类型:Birth参数:无返回值:Birth属性值读取/修改的属性:读取调用的方法:无7. 方法:SetCollege返回类型:void参数:Major返回值:无读取/修改的属性:修改调用的方法:无8. 方法:GetCollege返回类型:College参数:无返回值:College属性值读取/修改的属性:读取调用的方法:无9. 方法:SetAddress返回类型:void参数:Address返回值:无读取/修改的属性:修改调用的方法:无10. 方法:GetAddress返回类型:Address参数:无返回值:Address属性值读取/修改的属性:读取调用的方法:无6.2.3对象:Manager用途:记录用户基本信息约束:永久对象持久性:系统初始化时创建并一直存在,直到人为销毁6.2.3.1 属性描述:1. 属性:Account类型:String描述:用户登录XX学生、教师或管理员约束:无2. 属性:Password类型:String描述:登录密码约束:无3. 属性:Identity类型:Enum描述:UserStudent,UserTeacher,UserManager约束:无6.2.3.2 方法描述:1. 方法:SetAccount返回类型:void参数:Account返回值:无读取/修改的属性:修改调用的方法:无2. 方法:GetAccount返回类型:Account参数:无返回值:Account属性值读取/修改的属性:读取调用的方法:无3. 方法:SetPassword返回类型:void参数:Password返回值:无读取/修改的属性:修改调用的方法:无4. 方法:GetPassword返回类型:Password参数:无返回值:Password属性值读取/修改的属性:读取调用的方法:无5. 方法:SetIdentity返回类型:void参数:Identity返回值:无读取/修改的属性:修改调用的方法:无6. 方法:GetIdentity返回类型:Identity参数:无返回值:Identity属性值读取/修改的属性:读取调用的方法:无6.2.4对象:Course用途:记录课程基本信息约束:永久对象持久性:从系统初始化到课程生命周期结束学校不再开授此课6.2.4.1 属性描述:1. 属性:Name类型:String描述:课程名称约束:无2. 属性:Term类型:String描述:本课程开课学期约束:无3. 属性:Time类型:int描述:本课程开课学时约束:无4. 属性:Score类型:String描述:该课程学分约束:无6.2.4.2 方法描述:1. 方法:SetName返回类型:void参数:Name返回值:无读取/修改的属性:修改调用的方法:无2. 方法:GetName返回类型:Name参数:无返回值:Name属性值读取/修改的属性:读取调用的方法:无3. 方法:SetTerm返回类型:void参数:Term返回值:无读取/修改的属性:修改调用的方法:无4. 方法:GetTerm返回类型:Term参数:无返回值:Term属性值读取/修改的属性:读取调用的方法:无5. 方法:SetTime返回类型:void参数:Time返回值:无读取/修改的属性:修改调用的方法:无6. 方法:GetTime返回类型:Time参数:无返回值:Time属性值读取/修改的属性:读取调用的方法:无7. 方法:SetScore返回类型:void参数:Score返回值:无读取/修改的属性:修改调用的方法:无8. 方法:GetScore返回类型:Score参数:无返回值:Score属性值读取/修改的属性:读取调用的方法:无7. 动态模型这部分的作用是描述系统如何响应各种事件。例如,可以建立系统的行为模型。一般使用顺序图和状态图。确定不同的场景Scenario是第一步,不需要确定所有可能的场景,但是必须至少要覆盖典型的系统用例。不要自己去想当然地创造场景,通常的策略是描述那些客户可以感受得到的场景。7.1 场景Scenarios7.1.1 场景:学生登录系统描述:学生登录系统以查询所修课程成绩动作1:登录系统动作2:查询成绩7.1.2场景:教师登录系统描述:教师登录系统以录入各个学生所修课程成绩动作1:登录系统动作2:录入成绩7.1.3 场景:管理员登录系统描述:管理登录系统以更改学生信息、教师信息或者成绩信息动作1:登录系统动作2:修改信息动作3:删除信息7.2事件定义Events1 登录学生、教师或管理员通过输入登录界面上显示的用户名和密码,系统与数据库中的数据进行校验,如果一致,则在登录界面提示成功登录的信息,进而让用户进入系统。2 成绩查询学生成绩的信息查询等。学生向系统提供课程名或课程编号,数据库查询后返回对应的课程成绩。3 录入成绩教师将按照课程编号对每位选修了该课程的学生录入成绩,录入成绩后相应的课程则可查看或修改成绩。4 删除信息管理员可以删除退学或者毕业的学生信息,也可以删除学校已经不再教授的课程信息。5 退出学生、教师或管理员完成了想要完成的操作后,点击退出系统按钮,系统则清除用户名和缓存,然后返回登录界面,以等待学生、教师或管理员的下次登录。管理员管理学生信息顺序图:图7.1 修改学生信息顺序图图7.2 删除学生信息顺序图教师录入学生成绩信息顺序图:图7.3 教师录入学生成绩顺序图教师修改学生成绩顺序图:7.4 教师修改学生成绩顺序图学生查询成绩序列图:7.5 学生查询成绩顺序图7.3 状态图描述类的对象所有可能的状态,以及事件发生时状态的转移条件。可以捕获对象、子系统和系统的生命周期。他们可以告知一个对象可以拥有的状态,并且事件会怎么随着时间的推移来影响这些状态。一个状态图应该连接到所有具有清晰的可标识状态和复杂行为的类;该图可以确定类的行为,以及该行为如何根据当前的状态变化,也可以展示哪些事件将会改变类的对象的状态。状态图是对类图的补充。管理员状态图:图7.6 管理员状态图教师状态图:图7.7 教师状态图学生状态图:图7.8 学生状态图8.数据库定义8.1概念结构设计在需求分析阶段所得到的应用需求应该首先抽象为信息世界的结构,才能更好地、更准确地用某一DBMS实现这些需求。概念结构能真实、充分地反应显示世界,包括事物和事物之间的联系,能满足用户对数据的处理要求,是对现实世界的一个真实模型;易于理解,从而可以用它不熟悉计算机的用户交换意见,永不的积极参与是数据可设计成功的关键;易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充;易于向关心、网状、层次等各种数据模型转化。概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定。8.1.1概念设计阶段的任务与目标 1选择中层数据流为切入点,通常选中实际系统中的子系统 2逐一设计分E-R图 3生成初步E-R图,通过合并方法,做到各子系统尸体、属性、联系统一 4生成全局E-R图,消除冲突和不必要的冗余8.1.2 E-R图 观察实体下的所有属性,能唯一标识学生这个实体的只有学号这个属性,故学号就是学生这个实体集的主键。同样唯一标识课程这个实体的只有课程号这个属性,故课程号成为课程这个实体集的主键。学生信息E-R图如下:图8.1 学生信息 课程信息E-R图如下:图8.2 课程信息8.1.2.1 实体及其联系图 实体学生、实体课程及关系的E-R图: 图8.3 总体E-R图8.1.3 各E-R图实体的属性: 学生信息学号,XX,性别,出生时间,家庭地址,专业,总学分,备注 课程信息课程号,课程名称,开课学期,学时,学分8.2逻辑结构设计概念结构是独立于任何一种数据模型的信息结构。逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。从理论上将,设计逻辑结构应该选择最适于相应概念结构的数据模型,然后对支持这种数据模型的各种DBMS进行比较,从中选出最合适的DBMS。但实际情况往往是已给定了某种DBMS,设计人员没有选择的余地。目前DBMS产品一般支持关系、网状、层次三种模型中的某一种,对某一种数据模型,各个机器系统又有许多不同的限制,提供不同的环境与工具。所以逻辑结构设计一般要分3步进行:(1) 将概念结构转换为一般的关系、网状、层次模型;(2) 将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换;(3) 对数据模型进行优化。8.2.1 逻辑结构设计的任务与目标根据上面的数据库E-R图,现在需要将上面的数据库概念结构转化为SQL Server2008数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。在上面的实体及尸体之间关系的基础上,形成数据库中的表格以及各个表格之间的关系。具体内容包括数据组织将E-R图转换成关系模型、模型优化、数据库模式定义、用户子模式设计、数据处理画出系统功能模块图两大任务。8.2.2 数据组织8.2.2.1 将E-R图转换为关系模式 实体型转换为关系模式,实体的属性就是关系的属性,实体的码就是关系的码。对于实体间的联系则有下不同情况:一个m:n联系转换为一个关系模式,与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并,如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。3个或3个以上实体间的一个多元联系可以转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。具有相同码的关系模式可以合并。学生学号,XX,性别,出生时间,家庭地址,专业,总学分,备注课程信息课程号,课程名称,开课学期,学时,学分选课学号,课程号,成绩8.2.2.2 模型优化 关系模式tb_studentid,tb_courseid,tb_score不存在非主属性对主属性的部分函数依赖,也不存在传递函数依赖,已经达到了3NF。8.3物理结构设计8.3.1 物理设计的任务与目标 数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于选定的数据库管理系统。为一个给定的逻辑数据模型选取一个最合适应用要求的物理结构的过程,就是数据库的物理设计。数据库的物理设计通常分为两步:(1) 确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构。(2) 对物理结构进行评价,评价的重点是时间和空间效率。8.3.2 数据存储方面为数据库中各基本表简历的索引如下:对tb_student学生信息表中的studentid学号字段创建聚集索引,因为studentid学号字段在整个列表中是唯一的;对学生信息表中的name学生XX字段创建非聚集索引,因为name学生XX字段可能会出现重复值;对tb_course课程信息表中的coursename课程名称字段创建唯一索引。8.3.3 数据表的设计 表示SQL Server中最基本的数据库对象,包含了数据库中所有数据,其他数据库对象的操作都依赖于表来进行。对表的各项操作,特别是对表中数据操作是使用频率最高的,它直接影响数据库的效率。表设计的好坏直接决定着一个数据库的优劣,在创建表之前一定要进行详细的设计。在表的设计过程当中,主要需要完成以下任务:1确定表中的字段,并为其选择合适的数据类型和数据长度。2确定字段的值是否允许为空。3是否要为某些字段设置默认值或约束等。4选择合适的字段作为表的主键。8.3.3.1 表中基本概念 1记录:表中包含了若干行数据,表中的一行称为一个记录。2字段:每个记录由若干个数据项构成,将构成记录的每个数据项称为字段。3关键字:若表中的某一字段或字段组合能唯一标识记录,则称该字段或阻断组合为候选关键字。若一个表有多个候选关键字,则选定其中一个为主关键字,也称为主键,当一个表仅有唯一的一个候选关键字时,该候选关键字就是主关键字。4空置:通常也称NULL值,表示未知、不可用或将在以后添加的数据。若一个列允许为空置,则向表中输入记录值时可不为该列给出具体值;若不允许为空值,则在输入时必须给出具体值。需要注意的是,空值不能与数值数据0或字符类型的空字符串混为一谈。任意两个空值都不相等。表中的关键字不允许为空值。5默认值:是指向表中添加新纪录时自动添加到字段的值。设置默认值主要是为了简化输入操作。6标识属性:对任何表都可创建一个由系统自动生成序号的标识列,通常称为自动增长列,该序号值能唯一标识表中的一行,通常作为主键。定义标识属性时,可指定其种子即起始值、增量值。需要注意的是,每个表只能为一个列设置标识属性,该列只能是decimal、int、numeric、smallint、bigint或tinyint数据类型。8.3.3.2 确定表及表中字段本项目是针对学生成绩管理系统,该系统主要需要建立三张表:tb_student学生表,tb_course课程表,tb_score成绩表。表中的主要字段如下:tb_student:student学号,nameXX,sex性别,birthday出生时间,address家庭地址,specialty专业,sumcredit总学分,nate备注。tb_course:courseid课程号,coursename课程名称,term开课学期,classhour学时,credit学分。tb_score:studentid学号,courseid课程号,score成绩。8.3.3.3 为字段选择合适的数据类型,并设置相关属性通常根据实际应用情况选择一个合适该字段使用的数据类型;如学号是一个长度固定的字符串,可以选择char作为其数据类型;如出生时间是一个日期,可以选择smalldatatime作为其数据类型;如家庭地址是一个长度不固定的字符串,可以选择varchar作为其数据类型;由于字段较多,就不一一赘述。选择合适的数据类型之后,还需要为某些字段设置相关属性。如XX不允许为空置,性别只能是男或女,将学号设为学生表的主键,等等。在为字段选择数据类型及长度时,并不唯一,主要是根据实际需要,把握正确够用的原则。表与表之间常常存在着联系,在确定每张表的结构之后,通常还需要建立表跟表之间的关系,一般通过外键约束来实现。本项目中也是通过外键约束来实现表中的联系,参照表为tb_score,被参照表为tb_student和tb_course。9. 部署图系统部署图如下图所示:图9.1 系统部署图10.非功能性需求容错性:MTBF故障间的平均时间MTTR故障修理的平均时间达到实用性标准。易恢复性:故障后根据数据集重建,性能水平并恢复直接受影响数据量要求降低,以及为达到此目的所需时间和努力有关的软件,要求表单数据自动保存等易用性是与一组规定或者潜在的用户为使用其软件所需做的努力和对这样的使用所作的评价有关的一组属性。具体包括:1易理解性:与用户为人质逻辑概念即其应用范围所花的努力有关的软件属性。2易学习性:用户使用该系统可直接使用,简单易学。3易操作性:带首字母筛选功能的下拉列表等 方便操作。这类非功能需求通常是全局的,他除了与系统运行环境、平台选择、代码质量相关之外,还会涉及部分技术性功能需求,特别是容错性、易恢复性的实现都需要一些具体的功能来支持。
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 压缩资料 > 基础医学


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!