《教学管理系统分析与设计.ppt》由会员分享,可在线阅读,更多相关《教学管理系统分析与设计.ppt(50页珍藏版)》请在三一办公上搜索。
1、第16章 教学管理系统分析与设计,以一个简易教学管理系统JXGL的分析与设计作为示例,说明UML在软件项目开发中的应用。这里主要介绍建立JXGL的系统静态结构模型与动态行为模型。一般对系统做分析与设计,建立静态结构模型与建立动态行为模型应当同时、交替进行,相互印证和补充。UML是一种通用的工具,它可以使用于Use Case驱动的软件开发,也可以使用于其他面向对象的软件开发方法,例如直接从现实世界抽象出对象和类,建立系统的对象模型。简易教学管理系统JXGL的分析与设计遵循Use Case驱动的软件开发思想与过程。,第16章 教学管理系统分析与设计,16.1 系统需求,16.2 分析问题领域,16
2、.3 静态结构模型,16.4 动态行为模型,16.5 物理模型,16.1 系统需求,对简易教学管理系统JXGL要求提供两个方面的服务:(1)选课管理,负责新学期的课程选课注册工作;(2)成绩管理,负责学生成绩管理。在选课管理方面应提供的服务功能:1录入与生成新学期课程表 2学生选课注册 3查询 4选课注册信息的统计与报表生成 5把学生选课注册信息传送给财务系统 在成绩管理方面应提供的服务功能:1成绩录入 2成绩查询 3成绩统计与报表生成,16.1 系统需求,JXGL的用户(1)学生。查询信息,只允许对自己有关的数据进行添加、更新、删除等操作。(2)教师。查询信息,只允许对自己有关的数据进行添加
3、、更新、删除等操作。(3)教学管理员。有权操纵数据库的数据,进行添加、更新、删除等操作。JXGL的系统环境(1)基于局域网的客户机/服务器系统(Client/Server)(2)外部相关系统:财务系统,16.2 分析问题领域,分析问题领域的目的是对问题领域的清晰、精确的定义,明确目标系统将做些什么。分析问题领域的主要任务是:对问题领域进行抽象,提出解决方案;对未来的系统进行需求分析,确定系统的职责范围、功能需求、性能需求、应用环境及假设条件等;用Use Case图对未来系统的行为建立模型,初步确定未来系统的体系结构等。,16.2 分析问题领域,16.2.1 确定系统范围和系统边界,16.2.2
4、 定义活动者,16.2.4 绘制Use Case图,16.2.5 绘制主要交互图,16.2.3 定义Use Case,16.2.1 确定系统范围与系统边界,首先要确定业务需求和系统目标。简易教学管理系统JXGL用于新学期课程的选课注册管理和学生的成绩管理。系统范围:凡是这两方面的教学管理内容都是JXGL系统的职责范围,其他的教学管理内容,如安排教学计划、排课、实习、实验、考试等都不属于JXGL系统的职责范围。系统边界:JXGL系统与财务系统存在系统边界,财务系统将从JXGL系统得到学生选课注册信息。JXGL系统与学校的其他信息管理系统没有直接的联系,但是可以从学校的全局数据库中共享学生、教师、
5、教学计划等必要的数据。,16.2.2 定义活动者,根据JXGL系统的职责范围和需求可以确定4个活动者:学生、老师、教学管理员和财务系统。对于每一个活动者,应当明确其业务活动的内容、对系统的服务要求。“学生”活动者使用JXGL系统查询新学期开设的课程信息和教师开课信息,选课并登记注册课程,查询自己的课程成绩信息。“老师”活动者使用JXGL系统查询新学期开设的课程信息、学生选课信息和学生成绩信息。“教学管理员”活动者使用JXGL系统管理学期开设的课程的选课注册和学生的考试成绩。“财务系统”活动者是外部系统活动者,从JXGL系统接受学生的课程注册信息。,16.2.3 定义Use Case,每一个Us
6、e Case都是一个活动者与系统在交互中执行的有关事务序列。应当根据系统需求,找出全部的Use Case,并从活动者的角度给出事件流,当Use Case执行时系统应提供给活动者的服务。对一个Use Case应说明的基本内容是:Use Case怎样开始和结束、正常的事件流、变通的事件流、意外情况的事件流等。从JXGL的顶层Use Case抽象,可以确定两个Use Case:“选课管理”和“成绩管理”。Use Case“选课管理”与4个活动者都存在交互。Use Case“成绩管理”与活动者“学生”、“老师”、“教学管理员”存在着交互。,16.2.3 定义Use Case,JXGL的顶层Use Ca
7、se图,如图16.1所示。,图16.1 顶层Use Case图,16.2.3 定义Use Case,Use Case“选课管理”可以分解为以下一些Use Case:“查询课程信息”、“选课注册”、“管理开设课程”、“管理学生信息”、“管理老师信息”、“管理课程信息”,如图16.2所示。,图16.2 选课管理的Use Case图,16.2.3 定义Use Case,Use Case“成绩管理”可以分解为以下一些Use Case:“查询学生成绩”,“查询课程成绩”,“学生成绩管理”,“成绩统计”,如图16.3所示。,图16.3 成绩管理的Use Case图,16.2.3 定义Use Case,活动
8、者“学生”与Use Case“查询课程信息”、“选课注册”、“查询学生成绩”发生交互。活动者“老师”与Use Case“查询课程信息”、“查询课程成绩”发生交互。活动者“教学管理员”与Use Case“管理学生信息”、“管理老师信息”、“管理课程信息”、“管理开设课程”、“学生成绩管理”、“成绩统计”发生交互。活动者“财务系统”与Use Case“产生选课信息”发生交互。,16.2.4 绘制Use Case图,绘制Use Case图从顶层抽象开始,如图16.1,然后逐步分解,精细化Use Case图,如图16.2、图16.3所示。直到能清晰地表达问题,满足系统分析与建立模型的需要为止。除了Us
9、e Case图之外,对每一个Use Case还应进行描述,编写Use Case的说明文档。,16.2.4 绘制Use Case图,应当对以下的JXGL的全部Use Case编写说明:Use Case“查询课程信息”Use Case“选课注册”Use Case“管理开设课程”Use Case“管理学生信息”Use Case“管理老师信息”Use Case“管理课程信息”Use Case“查询学生成绩”Use Case“查询课程成绩”Use Case“学生成绩管理”Use Case“成绩统计”Use Case“身份验证”,16.2.4 绘制Use Case图,在Use Case图上,不但要把Use
10、 Case表示出来,而且应当把Use Case与活动者之间的联系、Use Case之间的联系也表现出来。如图16.4所示,Use Case“查询课程信息”和Use Case“选课注册”都与Use Case“身份验证”有联系,即它们都包含Use Case“身份验证”进行用户的合法身份检查。,16.2.5 绘制主要交互图,交互图描述Use Case如何实现对象之间的交互。交互图用于建立系统的动态行为模型。在分析和绘制了Use Case图之后,对主要的Use Case做交互行为的分析是有必要的。交互行为的分析的结果可以写成文档,绘制初步的交互图,从而更清楚地理解Use Case的行为,以便进一步调整
11、Use Case视图,确定问题的解决方案。交互图主要有两种:顺序图和协同图,可根据需要绘制。在项目开发之初,分析问题领域时,绘制交互图只是为了印证领域分析的结果和Use Case视图的正确性,在以后对系统动态行为建模的过程中,还需要对交互图做深入的分析、细化和完善。,16.2.5 绘制主要交互图,对每一个活动者与Use Case的交互行为,应编写详细的文字说明,即交互活动剧本,以作为绘制交互图的依据。例:在活动者“学生”与Use Case“选课注册”的交互中,活动者“学生”的行为有三:登录注册,查询课程,选修课程。在登录注册活动中,活动者“学生”提交用户ID和口令。在查询课程活动中,活动者“学
12、生”提交查询条件。在选修课程活动中,活动者“学生”提交增加或删除所选的课程,并确认选课结果。Use Case“选课注册”响应活动者“学生”的请求,验证用户ID和口令,查询或修改课程数据库的数据,反馈结果信息。Use Case“选课注册”的行为由“注册表单”接口对象、“选课注册表单”接口对象和“开设课程”对象实现。,16.2.5 绘制主要交互图,例:活动者“学生”与Use Case“选课注册”的顺序图,如图16.5所示。,图16.5 选课注册顺序图,16.3 静态结构模型,16.3.1 建立类图,16.3.2 建立数据库模型,16.3.3 建立包图,16.3.1 建立类图,1定义类首先从研究Us
13、e Case和交互剧本中发现类,确定类的属性和主要操作。对于JXGL系统可以抽象出以下一些主要的类:在人事信息处理方面有“学生”类、“教师”类。在选课管理方面有“课程”类、“开设课程”类、“学生登记”类、“课程登记”类、“选课统计”类等。在成绩管理方面有“学生成绩登记”类、“成绩统计”类。对于每一个类应当确定其职责、属性、主要操作以及其他性质说明。,16.3.1 建立类图,类的属性可以通过检查类的定义、分析问题的需求和运用领域知识而确定。类的操作可以通过检查分析交互图确定,把交互图中对象之间的交互活动抽象成一个类的操作。例:从课程信息管理的顺序图中的活动“加入课程(数据结构,基础课,3)”抽象
14、得到“课程”类的操作“加入课程()”,如图16.6所示。,图16.6 从顺序图抽象出类的操作,16.3.1 建立类图,2定义用户接口 除了一般类外还需要分析与定义系统的用户接口。JXGL系统可以有的接口:“课程信息管理表单”、“查询课程表单”、“查询成绩表单”、“选课注册表单”、“开设课程表单”、“选课统计表单”、“成绩信息管理表单”、“成绩统计表单”等。JXGL系统的用户接口用类定义,如图16.7所示。对每一个用户接口类应详细规定其功能操作。,16.3.1 建立类图,JXGL系统的用户接口类,如图16.7所示。,图16.7 用户接口,16.3.1 建立类图,3定义联系 JXGL系统的类之间的
15、联系有多种类型,关联、聚合、泛化、依赖等都有。(1)关联 在“开设课程”类与“师生”类之间存在“授课”关联和“登记注册”关联,在“开设课程”类与“学生成绩登记”类之间存在关联。(2)聚合联系 在“开设课程”类与“课程”类之间存在聚合联系,在“开设课程”类与“学生登记”类、“课程登记”类之间存在聚合联系。,16.3.1 建立类图,(3)泛化联系“学生”类、“教师”类与“师生”类的联系为泛化联系。(4)依赖联系 在“成绩统计”类与“学生成绩登记”类之间存在依赖联系,在“选课统计”类与“开设课程”类之间存在依赖联系。JXGL系统中,上述关联、聚合、泛化、依赖等联系可参见类图图16.8、图16.9、图
16、16.10等。4绘制类图 根据已定义的类及其联系,以及类的多重性、角色、导航等性质,可以画出类图,如图16.8、图16.9、图16.10所示。在类图的基础上可以根据需要绘制一些对象图。使用对象图的目的是分析系统的瞬间状态,以便进一步了解系统的结构和行为。,16.3.1 建立类图,JXGL系统的课程管理类图,如图16.8所示。,图16.8 课程管理类图,16.3.1 建立类图,JXGL系统的成绩管理类图,如图16.9所示。,图16.9 成绩管理类图,16.3.1 建立类图,JXGL系统的人事信息类图,如图16.10所示。,图16.10 人事信息类图,16.3.2 建立数据库模型,在分析和设计系统
17、的静态结构模型时需要进行数据分析和数据库设计。JXGL系统采用关系数据库系统存储和管理数据。JXGL系统有4个方面的数据需要管理:人员数据(学生、教师)课程数据 选课注册数据 学生成绩数据。经过分析,JXGL系统至少应有6个数据库表:学生表、教师表、课程表、开设课程表、选课表、任课表。,16.3.2 建立数据库模型,这些基本表定义为:学生(学生号、姓名、出生日期、性别、籍贯、地址、电话、入学时间、专业、班级备注)教师(教师号、姓名、出生日期、性别、籍贯、地址、电话、职称、专长、备注)课程(课程号、课程名、描述、学分、学时、性质、备注)开设课程(课程号、学期、授课日期、授课时间、地点、选修人数、
18、备注)选课(学生号、课程号、学期、成绩、备注)任课(教师号、课程号、学期、备注)对于这些基本表需要进行关系规范化,设计用户视图、触发器、存储过程等。关系数据库模式通常用实体联系模型(ERD)表示,也可以用类图为数据库模式建立模型。,16.3.3 建立包图,对于一个大型的复杂的系统,常需要把大量的模型元素用包组织起来,以方便理解和处理。JXGL系统虽然不算大,但也可以把系统的类组织成包,以便更清楚地了解系统的结构。包图表示的是系统的静态结构,但是建立包图应当同时考虑系统的动态行为。JXGL系统的包图,如图16.11所示,一共有5个包:“教学管理”包、“用户接口”包、“数据库”包、“MFC类”包、
19、“出错处理”包。对每一个包应绘出其详细的内部的组成结构图。,16.3.3 建立包图,在“用户接口”包中包含了全部接口类:“课程信息管理表单”、“查询课程表单”、“查询成绩表单”、“选课注册表单”、“开设课程表单”、“选课统计表单”、“成绩信息管理表单”、“成绩统计表单”、“注册表单”等。“教学管理”包中包含了为实现教学管理业务领域任务的全部类。在“数据库”包中包含了实现数据库服务功能的全部类。在“MFC类”包中包含了支持系统的动态连接库的必要的库函数类。在“出错处理”包中包含了出错处理功能的全部类。,图16.11 JXGL系统的包图,16.3.3 建立包图,“教学管理”包内部组成如图16.12
20、所示。其中包含了为实现教学管理业务领域任务的类:“学生”类、“教师”类、“师生”类、“课程”类、“开设课程”类、“学生登记”类、“课程登记”类、“选课统计”类、“学生成绩登记”类、“成绩统计”类,以及“身份验证”类等。这些类又分别组成3个小包:“选课管理”包、“成绩管理”包和“人事信息”包。“身份验证”类则相对独立。,图16.12 教学管理包,16.3.3 建立包图,简易教学管理系统JXGL由两个子系统组成:(1)课程注册子系统,负责新学期的选课注册管理工作。(2)成绩管理子系统,负责学生成绩管理。JXGL的系统与子系统包图如图16.13所示。,图16.13 JXGL系统与子系统包图,16.4
21、 动态行为模型,16.4.1 建立顺序图,16.4.2 建立协同图,16.4.3 建立状态机图,16.4.4 建立活动图,16.4.1 建立顺序图,在建立Use Case视图时已经绘制了一些顺序图或协同图,在建立系统的动态行为模型中需要继续这项工作,进一步绘制主要Use Case的顺序图或协同图,并逐步精细化。为了绘制顺序图,首先要对一个Use Case编写交互活动的剧本,然后确定参与交互的活动者和对象,确定交互事件。例:设置开设课程的顺序图,如图16.14所示。其中的交互事件如下:1登录 2验证 3查询 4设置课程 5增加课程 6删除课程 7提交 8存储 9退出,16.4.1 建立顺序图,设
22、置开设课程顺序图,如图16.14所示。,图16.14 设置开设课程顺序图,成绩登记与统计的顺序图,图略,16.4.2 建立协同图,协同图用于描述系统的行为是如何由系统的成分实现的。对于JXGL系统也需要绘制主要的Use Case的协同图,以深入了解和表示系统的行为和各个对象的作用。对于一个协同图,首先应确定参与协同的对象角色、关联角色和消息,然后才能绘制协同图。协同图主要表示对象与对象之间的连接,它们是如何共同完成系统的行为的,但这些行为的发生顺序和时间并不是协同图表达的主要内容。例:对于Use Case“管理课程信息”的协同图如图16.16所示。图中的对象角色有“注册表单”接口对象、“开设课
23、程表单”接口对象、“课程”对象和“开设课程”对象。它们协同工作,实现设置新开设课程的服务。,16.4.2 建立协同图,管理课程信息协同图,如图16.15所示。,图16.15 管理课程信息协同图,16.4.3 建立状态机图,状态机图表现一个对象(类)的生命史。对于一些实现重要行为动作的对象应当绘制状态机图。绘制状态机图需要确定一个对象的生命期可能出现的全部状态,哪些事件将引起状态的转移,将会发生哪些动作。例如,对于JXGL系统中的一个学生选课注册的“学生登记”对象,可能有的状态如下:1“初始化”状态 2“增加课程”状态 3“减少课程”状态 4“取消”状态 5“关闭”状态,16.4.3 建立状态机
24、图,选课学生登记状态机图如图16.16所示。,图16.16 选课学生登记状态机图,16.4.3 建立状态机图,选课课程登记状态机图如图16.17所示。,图16.17 选课课程登记状态机图,16.4.4 建立活动图,活动图的主要作用是表示系统的业务工作流和并发处理过程。对于一个系统可以针对主要的业务工作流绘制活动图。绘制活动图需要确定参与活动的对象、动作状态、动作流,以及对象流。例:对JXGL系统的设置开设课程的活动可以绘制活动图,如图16.19所示。其中,参与活动的对象有“注册表单”接口对象、“开设课程表单”接口对象、“课程”对象、“选课注册表单”接口对象、“开设课程”对象等。其中,动作状态有
25、“登录”、“新开课程”、“取课程信息”、“取选课信息”、“增加/删除课程”等。,16.4.4 建立活动图,设置开设课程活动图,如图16.18所示。,图16.18 设置开设课程活动图,16.5 物理模型,16.5.1 建立组件图,16.5.2 建立配置图,16.5.1 建立组件图,系统实现的源代码、二进制码、执行码可以按照模块化的思想,用组件分别组织起来,明确系统各部分的功能职责和软件结构。JXGL系统的运行软件可以组织成组件图,如图16.20所示。其中有“教学管理”、“课程管理”、“成绩管理”、“人事信息”、“课程”、“开设课程”、“选课注册”、“教师”、“学生”等组件。在所有这些组件中包含了
26、各自相应的类、接口、联系的实现代码。如果需要,可以绘制系统的源代码、二进制码、执行码的组件的跟踪关系图。,16.5.1 建立组件图,JXGL系统的运行软件组件图,如图16.19所示。,图16.19 JXGL系统组件图,16.5.2 建立配置图,JXGL系统是一个基于局部网络(校园网)和数据库的应用系统,因此有必要进行系统的配置,建立配置图。JXGL系统的各个部分可以配置在不同的节点上,通过网络相互通信。例如,在配置图16.20中,把数据库服务器、应用服务器、课程管理(包含人事信息管理)和成绩管理的相应组件配置在不同的节点上。JXGL系统是一个客户机/服务器结构的分布式系统,也可以绘制如图16.21的配置图。,16.5.2 建立配置图,图16.20 JXGL系统配置图,图16.21 JXGL系统的客户机/服务器结构配置图,