1、天津理工大学 2014 级软件工程专业设计15第四章 概要设计概要设计的主要任务是把需求分析得到的系统模型转换为软件结构和数据结构。设计软件结构的具体任务是:将一个复杂系统按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面等。数据结构设计包括数据特征的描述、确定数据的结构特性、以及数据库的设计。4.1学生成绩信息管理模块划分其中每个模块下又有很多子模块,本次设计中我负责的是课程开设模块与发布考试信息模块,通过对需求的整合与整理,学生成绩信息管理系统的总体用例图如下所示。教 师 子 系 统教 师 子 系 统学 生 成 绩 管 理 系 统学 生 成 绩 管 理 系 统学生
2、教师管理员用户管理系统管理个人信息管理成绩查询选课课程开设教师信息管理考试信息发布考试复查成绩统计图 4.1 系统总体用例图Figure 4.1 System use case diagram学生成绩信息管理系统下分三个子系统,每个人负责子系统下 2-3 个模块,在初步需求分析的基础上制定出的课程开设模块与发布考试信息模块划分如图4.2 与 4.3 所示。天津理工大学 2014 级软件工程专业设计16图 4.2 课程开设管理功能模块图Figure 4.2 curriculum management function module图 4.3 发布考试信息功能模块图Figure 4.3 relea
3、se test information function module diagram4.1.1 课程发布管理子模块课程发布项目是在该功能模块下教师对可发布的课程进行查看、编辑、增加、发布等功能,包括课程查看、课程编辑、课程发布。教师可随时查看可发布课程的信息,并对这些课程进行编辑修改,之后可对课程进行发布,具体包括:1.课程查看:查看可发布课程的信息。2.课程编辑:对可发布的课程进行编辑或增加,此操作仅由教师可进行。天津理工大学 2014 级软件工程专业设计173.课程发布:对可发布里的课程进行发布操作。课程发布用例图:图 4.4 课程发布用例图Figure 4.4 course relea
4、se Use Case Diagram4.1.2 课程删改管理子模块课程删改项目是在该功能模块下教师可以对已发布的课程进行删除、修改等操作,包括课程信息核对与课程信息删改。在发布的课程中,教师会根据实际情况进行核对,之后进行删改操作,具体包括:1.课程信息核对:将需要操作的课程信息进行核对,并作相应的记录。2.课程信息删改:对已发布的课程进行编辑和删改,此操作仅由教师可进行。课程删改管理用例图:图 4.5 课程删改管理用例图天津理工大学 2014 级软件工程专业设计18Figure 4.5 case deletion management course4.2数据库设计数据库设计是建立数据库及其
5、应用系统的关键技术,是信息系统开发和建设的核心技术,具体说,数据库设计是指对于一个给定的应用环境,构造最优的数据模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求) 。数据库建设是硬件、软件和干件的结合三分技术,七分管理,十二分基础数据技术与管理的界面称之为“干件” ,数据库设计应该与应用系统设计相结合,结构(数据)设计:设计数据库框架或数据库结构,行为(处理)设计:设计应用程序、事务处理等结构和行为分离的设计4.2.1 概念结构设计概念结构设计的任务是在需求分析阶段产生的需求说明书的基础上,按照特定的方法把它们抽象为一个不依赖于任何具体机器的数据
6、模型,即概念模型。概念模型使设计者的注意力能够从复杂的实现细节中解脱出来,而只集中在最重要的信息的组织结构和处理模式上对用户要求描述的现实世界(可能是一个工厂、一个商场或者一个学校等),通过对其中诸处的分类、聚集和概括,建立抽象的概念数据模型。这个概念模型应反映现实世界各部门的信息结构、信息流动情况、信息间的互相制约关系以及各部门对信息储存、查询和加工的要求等。所建立的模型应避开数据库在计算机上的具体实现细节,用一种抽象的形式表示出来。以扩充的实体联系模型方法为例,第一步先明确现实世界各部门所含的各种实体及其属性、实体间的联系以及对信息的制约条件等,从而给出各部门内所用信息的局部描述(在数据库
7、中称为用户的局部视图) 。第二步再将前面得到的多个用户的局部视图集成为一个全局视图,即用户要描述的现实世界的概念数据模型。设计概念结构通常有四种方法:自顶向下、自底向上、逐步扩张和混合策略(即将自顶向下和自底向上相结合) 。本系统采用的是自底向上的方法,即自顶向下进行需求分析,然后再自底向上的设计概念结构。数据库的概念设计如图 4.6 所示,其反映的是数据库表的关系,具体的表有课程计划表(Course Schedule)表依赖于课程基本表(Course)学生选课表(Student Course Schedule)操作表(Appeal) 。天津理工大学 2014 级软件工程专业设计19图 4.6
8、 数据库关系图Figure 4.6 Database diagram4.2.2 逻辑结构设计1.可发布课程(编号,名称,状态,授课教师,课序号,学分,课程类别,说明)主键:编号函数依赖编号-其他所有属性由函数依赖可知,依赖左端为候选码,所以采购项目属于 BCNF2.已发布课程(编号,名称,授课教师,课序号,学分,课程类别,开课单位,上课时间,上课地点,选课人数,说明)主键:编号函数依赖编号-其他所有属性由函数依赖可知,依赖左端为候选码,所以采购物资属于 BCNF3.删改课程操作(编号,操作课程,操作时间,操作教师,说明)主键:编号函数依赖编号-其他所有属性由函数依赖可知,依赖左端为候选码,所以
9、投标表属于 BCNF4.学生选课信息表(学生编号,所选教师编号,院系编号,所选课程编号,学期)联合主键:学生编号,所选教师编号,院系编号,所选课程编号天津理工大学 2014 级软件工程专业设计20函数依赖(学生编号,所选教师编号,院系编号,所选课程编号)-其他非主属性由函数依赖可知,不存在传递依赖,但是依赖左端不都为候选码,所以评标表满足第三范式。4.2.3 物理结构设计为给定的逻辑数据模型选取一个最合适应用要求的物理结构的过程就是数据库的物理设计。物理设计时要确定数据库的存储路径,数据规模等,在数据库管理系统中创建数据库,建立数据库的所有数据模式。本系统数据库在设计过程中参考逻辑结构设计,充
10、分考虑了数据表的划分及其之间的联系,在保障数据流向简明、查询效率较高的前提下,设计了如下数据库表结构:1.可发布课程表(Course)表 4.1 可发布课程表Table4.1 Published curriculum 字段名 字段解释 类型 是否可空CrsId 课程编号(主键) Int Not nullCrsName 课程名称 nvarchar(50) nullSummarization 概述 nvarchar(50) nullAppealsByCrsId 课程操作 ID Int nullExamsByCrsId 考试 ID Int nullCommentsByCrsId 评论 ID Int
11、nullCourseSchedulesByCrsId 课程发布 ID Int nullCoursesTablesByCrsId 课程表 ID Int nullStudentSchedulesByCrsId学生选课 ID Int说明:这里的课程状态为课程是否被发布,课序号是对应一门课程来说的比如 ACCESS 数据库这门课有很多老师在上这门课程的课程号都是一样的但是对应不同的老师和上课时间会给一个课序号。2.发布课程表(Course schedule)表 4.2 发布课程表天津理工大学 2014 级软件工程专业设计21Table4.2 Release course table字段名 字段解释 类
12、型 是否可空CSch Id 课程编号(主键) Int Not nullCSch Name 课程名称 nvarchar(50) nullCSch Teacher 授课教师(主键) nvarchar(50) nullCSch Course number 单位 nvarchar(50) nullCSch Credit 学分 int nullCSch Course category 课程类别 nvarchar(50) nullCSch Course unit 开课单位 nvarchar(50) nullCSch Course time 上课时间 datetime nullCSch Class loca
13、tion 上课地点 Nvarchar(50) nullCSch Course num 选课人数 nvarchar(50) nullCSch Explain 说明 nvarchar(50) null说明:这里的课程编号与授课老师是主键,授课单位为学院名称,相比课程表增加的上课时间根据课程安排的情况而定,在此注意的是不同的老师可能会教授同一门课程,因此在此处使用了课程编号与授课教师的联合主键。3,删改课程操作(Appeal)表 4.3 投标表Table4.3 Bidding table字段名 字段解释 类型 是否可空Ope Id 操作编号(主键) Int Not nullOpe Cour 操作课程
14、 Int Not nullOpe Time 操作时间 Datetime Not nullOpe Teacher 操作教师(主键) Varchar(max)Ope Explain 说明 float Not null说明:这里的课程编号与授课老师是主键,与发布课程表一致,原理与其相同,主要是老师对发布的课程进行的删改操作。4.学生选课信息表(Student Schedule) 表 4.4 学生选课信息表Table4.4 Student information table字段名 字段解释 类型 是否可空SSch Id 学生编号(主键) Int Not nullSSch BidId 所选教师编号(主键
15、) Int Not nullSSch ExpertId 院系编号(主键) int Not null天津理工大学 2014 级软件工程专业设计22SSch Business 所选课程编号(主键) Int Not nullSSch Price 学期 int说明:该表是体现学生所选课程的信息,由于选课的人数众多,易混乱,因此采用的是多属性联合主键的形式。第五章 详细设计详细设计是软件工程中软件开发的一个步骤,就是对概要设计的一个细化,就是详细设计每个模块实现算法,所需的局部结构。在详细设计阶段,主要是通过需求分析的结果,设计出满足用户需求的嵌入式系统产品。详细设计必须遵循概要设计来进行。详细设计方案
16、的更改,不得影响到概要设计方案;如果需要更改概要设计,必须经过项目经理的同意。详细设计,应该完成详细设计文档,主要是模块的详细设计方案说明。和概要设计一样,每个模块的详细设计文档都应该独立成册。5.1类图类图(Class Diagram): 类图是面向对象系统建模中最常用和最重要的图,是定义其它图的基础。类图主要是用来显示系统中的类、接口以及它们之间的静态结构和关系的一种静态模型。类图一般在详细设计过程中出现,主要用来描述系统中各个模块中类之间的关系,包括类或者类与接口的继承关系,类之间的依赖、聚合等关系。在画类图的时候,理清类和类之间的关系是重点。类的关系有泛化(Generalization
17、)、实现(Realization) 、依赖(Dependency)和关联(Association)。其中关联又分为一般关联关系和聚合关系(Aggregation),合成关系(Composition)。它还描述每一个类的详细信息,包括变量,和方法。在化类图之前,首先应对类有一定的了解,类一般包含 3 个组成部分。第一个是类名;第二个是属性(attributes) ;第三个是该类提供的方法( 类的性质可以放在第四部分;如果类中含有内部类,则会出现第五个组成部分) 。类名部分是不能省略的,其他组成部分可以省略。通过类图,就能实际的把系统中的各个类,即对象描述清楚,下一步就是按照这个详细的设计编码了。
18、1. 系统整体类图在画系统总体类图时,考虑到整体项目庞大,各类间的属性繁多,且相互天津理工大学 2014 级软件工程专业设计23间的关系比较复杂,因此将各类的属性省略。图 5.1 系统总体类图Figure5.1 All Class diagram说明:系统总体类图如上所示,其大体展示出了本项目各类之间的关系,之后的编码也会建立在此类关系之上。2.学生子系统类图画完系统总体类图后,便该完成子系统的类图,两个子系统的关系大体一致,在此仅画出学生子系统的类图,学生子系统下有四个表,由于表个数较少,此处将类图的属性及关系都画出来,已体现子系统的完整性。天津理工大学 2014 级软件工程专业设计24图 5.2 选课子系统类图Figure 5.2 class diagram of course selection subsystem上图是选课子系统的类图,在 Idea 中根据表间的关系绘出,图中的四个表依次为课程、课程表、选课、学生选课,表内的属性如上图所示,在往后的编程中,实体类间的关系也由上图给出。
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。