https://www.bilibili.com/video/BV1Zx4y1y7hd/演示视频:
4 总体设计
3.1 概述本阶段设计的基本目标是解决系统如何实现问题,也叫做概要设计,本阶段主要任务是划分出系统的物理元素及设计软件的结构,完成软件定义时期的任务之后就应该对系统进行总体设计,即根据系统分析产生的分析结果来确定这个系统由哪些系统和模块组成,这些系统和模块又如何有机的结合在一起,每个模块的功能如何实现。系统设计的目标是使系统实现拥有所要求的功能,同时,力争达到高效率、高可靠性、可修改性,并且容易掌握和使用。
模块化的依据是:把复杂问题分解成许多容易解决的小问题。原来的问题也就变得容易解决。模块化设计是把大型软件按照一定的原则划分成一个较小的相对功能独立又相关联的模块。每个模块完成一个特定的子功能。把这些模块结合起来组成一个整体。完成指定的功能,满足问题的要求。采用模块化原理的优点在于可以使软件结构清晰,容易测试和调试。从而提高软件的可靠性,可修改性。有助于软件开发的组织管理。一个大型软件可分别编写不同的模块。模块化理论的几个重要概念如下:
(1)抽象
抽象就是抽象出事物的本质特性而暂时不考虑它们的细节。处理复杂系统唯一有效的方法是用层次的方式构造和分析它。一个复杂的动态系统首先可以用一些gaoji的抽象概念构造和理解,这些gaoji概念又可以用一些较低级的理解,直到最低层次的具体元素。
(2)信息隐蔽和局部化
信息隐蔽是指在设计和确定模块时,应使得一个模块内包含的信息对于不需要这些信息的模块来说,是不能访问。
局部化是指把一些关系密切的软件元素物理的放得彼此靠近。局部化有助于实现信息隐蔽。
信息隐蔽原理和局部化有助于在测试期间以及软件维护期间修改软件。因为绝大多数数据和过程对于软件的其它部分而言是隐蔽的,从而由疏忽引入的错误就很少可能传播到软件的其它部分。
(3)逐步求精的模块化概念
逐步求精和模块化的抽象是密切相关的。软件结构每一层中模块表示对软件抽象层次的次细化。用自顶向下,逐步求精的方法由抽象到具体的方式分配控制,简化了软件设计和实施,提高了软件的可理解性和可测试性,并使得软件更容易维护。
(4).模块独立性
模块的划分要使模块间尽可能的相互独立,独立模块较易维护。度量模块的独立程度有两个标准:内聚和耦合。耦合是对一个软件结构内不同模块之间互连程度的度量。耦合强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数。
在软件的设计中应追求尽可能松散的耦合。内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展,理想内聚的模块只做一件事情。在设计时应力求做到高内聚。
3.2 系统功能划分经过对系统的需求分析,将整个系统分为四部分:学生子系统、教学管理员子系统、教师操作子系统及管理员子系统。
3.2.1 学生子系统功能划分学生子系统比较简单,主要完成学生网上课程成绩查询的功能及密码修改的功能。学生以学号及密码的身份进行登录。
3.2.2 管理员子系统功能划分管理员子系统完成此系统的管理维护操作,主要包括学生信息管理模块,课程管理模块,班级信息的模块,成绩管理模块,教师管理模块,获奖人员生成,开课信息管理。
3.2.3 教学管理员子系统功能划分教学管理员子系统完成教学的管理维护操作,主要包括教师信息,课程管理模块,班级信息的模块,开课信息管理。
3.2.4 教师管理子系统功能划分教师管理子系统完成学生成绩信息的管理维护操作,主要包括学生信息管理,成绩信息录入,成绩信息管理,获奖人员生成模块。
3.3 系统功能描述3.3.1 学生子系统功能描述1.学生成绩查询模块
本模块完成学生成绩的查询功能,进入本模块,学生可以查询自己课程到期末时所得的成绩的信息。该成绩由系统教师或管理员在后台录入,学生只能查询自己的成绩的信息。成绩信息包括,所选的课程编号,课程名称和自己的该课程的得分情况。
2.学生密码修改模块
学生的基本信息是由管理员从后台添加的,每个学生的基本信息添加后,系统会自动生成一个密码123,所有同学的密码初使值是相同的,学生使用初使密码登录后,为保证自己信息的安全性,用户可以修改自己密码。
3.3.2 管理员子系统功能描述 1.学生基本信息管理模块此模块完成学生基本信息的管理,包括录入学生信息,删除学生信息,修改学生信息及查询学生信息。2.课程管理模块
课程管理模块完成学校开设的课程的管理功能,包括课程的添加,课程的删除,课程的修改及课程的查询。
3.开课信息管理模块
管理员或教学管理员可以为学校的班级安排开设课程的信息,进行操作时,需要选择班级,开设的课程及教课教师的信息。
4.成绩管理模块
学生成绩管理模块完成学生课程成绩的录入功能及管理功能,操作员可以录入学生的成绩情况。也可以按学生的姓名进行成绩的查询。
5.班级管理模块
班级管理模块完成学校的班级信息的添加,删除及修改功能,班级的信息包括班级名,所属专业,班级的人数及班主任。
6.教师管理模块
教师管理模块完成学校教师信息的添加、删除及修改的功能,教师信息包括教师姓名,性别,专业,职称,备注等信息。
7.获奖学生管理
获奖学生管理模块根据学生的成绩信息,进行排名,按平均分从大到小排列,教师可以输入一个分值,筛选大于此分值的学生信息。
教学管理员及教师管理部分的功能模块与管理员管理的部分功能模块相同,所以不再描述。
3.4 数据库概念结构设计在系统设计的开始,我首先考虑的是如何用数据模型来数据库的结构与语义,以对现实世界进行抽象。目前广泛使用的数据模型可分为两种类型,一种是独立于计算机系统的“概念数据模型”,如“实体联系模型”;另一种是直接面向数据库逻辑结构的“结构数据模型”。在本系统中我采用“实体联系模型”(ER模型)来描述数据库的结构与语义,以对现实世界进行第一次抽象。
E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。E-R方法是“实体-联系方法”(Entity-Relationship Approach)的简称。它是描述现实世界概念结构模型的有效方法。是表示概念模型的一种方式,用矩形表示实体型,矩形框内写明实体名;用椭圆表示实体的属性,并用无向边将其与相应的实体型连接起来;用菱形表示实体型之间的联系,在菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型(1:1,1:n或m:n)。在ER图中有四个成分:
矩形框:表示实体,在框中记入实体名。
菱形框:表示联系,在框中记入联系名。
椭圆形框:表示实体或联系的属性,将属性名记入框中。对于主属性名,则在其名称下划一下划线。
连线:实体与属性之间;实体与联系之间;联系与属性之间用直线相连,并在直线上标注联系的类型。(对于一对一联系,要在两个实体连线方向各写1; 对于一对多联系,要在一的一方写1,多的一方写N;对于多对多关系,则要在两个实体连线方向各写N,M。)
ER模型直接从现实世界抽象出实体类型及实体间联系,然后用ER图来表示数据模型。它有两个明显的优点:接近于人的思维,容易理解;与计算机无关,用户容易接受。
本系统包括的实体有学生实体,教师实体,课程实体,班级实体等。
3.3.1 各实体属性图图3-1 学生实体属性图
图3-2 课程实体属性图
图3-3 班级信息实体属性图
图3-4 教师实体属性图
图3-5 学生和班级关系E-R图
图3-6 课程和班级关系E-R图
图3-7 教师与课程关系E-R图
图3-8 学生与课程关系E-R图
3.3.3 各实体之间的关系总E-R图图3-9 各实体总体E-R图