1、学生管理系统文档需求说明书一、 项目概述1. 开发背景随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已经进入人类社会的各个领域并发挥着越来越重要的作用,然而在计算机应用普及以前我国大部分高校的学生信息管理仅靠人工进行管理和操作,这种管理方式存在着许多缺点,如:效率低,密保性差,另外时间一长,将产生大量的文件和数据,其中有些是冗余或者针对同一目的的数据不相吻合,这对于查找、更新和维护文件等管理工作带来了不少困难,同时也跟不上信息时代高速、快捷的要求,严重影响了消息的传播速度。然而现今学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息也成倍增长,人工管理信息的缺
2、点日渐突出,面对庞大的学生信息量,如何利用现代信息技术使其拥有快捷、高效的适应能力已成为当务之急。正因为如此,学生信息管理系统成为了教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。作为计算机应用的一部分,使用计算机对学生信息进行管理,具有着手工管理所无法比拟的优点。例如:检索迅速。查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大的提高学生信息管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件,由此看来开发这样一套管理软件是很有必要的。学生信息管理系统是典型的信息管理系
3、统(MIS),其开发功能主要包括对学生各种信息的建立、管理、查询等功能。2. 项目描述 该学生管理系统应用于高校学生信息管理,主要有3个主要功能模块组成,分别是:学生信息管理系统模块,学生成绩管理模块和系统管理模块。学生信息管理模块包括对学生的学籍等基本信息的查看和维护管理;学生成绩管理模块主要包括对学生成绩的录入和查询;系统管理主要包括对系统数据字典以及管理员的维护模块。除了这三大主要功能模块之外还涉及到于本系统相关的一系列小的功能模块,例如,学科管理、班主任管理等。本系统设计的学生信息管理系统很好的解决了学生信息管理方面的困难,提高了学生信息管理效率、减轻了教务员的工作负担,节省了大量的人
4、力、物力资源,给高校学生信息管理带来了很大的方便 3. 系统目标该系统要实现的功能有:l 学生信息管理:包括添加学生信息,修改学生信息l 学生成绩管理:包括添加学生成绩、修改学生成绩、删除学生成绩l 系统管理:维护系统数据字典、添加管理员、删除管理员、修改管理员信息除了这三大主要功能模块之外还涉及到于本系统相关的一系列小的功能模块,例如,学科管理、班主任管理等。4. 性能需求数据精确度:经多次测试,该系统最终的输出数据的精确度达到95%以上时间特性:该系统在响应时间、更新处理时间,数据转换与传输时间、与运行时间等方面时间短、速度快。适应性:该系统专为高校量身定做,对高校有很强的适应性复用性:该
5、系统的功能和大多数高校基本吻合,所以可以在大多数高校中复用灵活性:该系统可以在大多数Windows XP以上版本上应用,与微软的office办公软件相结合,可以打印该系统中的成绩、学生表等,该系统采用团队分块制作,以后维护、改方便运行需求本系统服务器的环境如下:操作系统:Windows XP 以上服务器:IIS5.0以上数据库:SQL Server 2005 Express硬件配置:CPU:P41.8GHz内存:256MB以上分辨率:最佳效果1024768像素二、 系统设计1. 总体设计1) 项目概述 该学生管理系统应用于高校学生信息管理,主要有3个主要功能模块组成,分别是:学生信息管理系统模
6、块,学生成绩管理模块和系统管理模块。学生信息管理模块包括对学生的学籍等基本信息的查看和维护管理;学生成绩管理模块主要包括对学生成绩的录入和查询;系统管理主要包括对系统数据字典以及管理员的维护模块。除了这三大主要功能模块之外还涉及到于本系统相关的一系列小的功能模块,例如,学科管理、班主任管理等。本系统设计的学生信息管理系统很好的解决了学生信息管理方面的困难,提高了学生信息管理效率、减轻了教务员的工作负担,节省了大量的人力、物力资源,给高校学生信息管理带来了很大的方便2) 系统功能架构图整个系统大体上可分为4可主要模块,分别是“学生信息管理,学生成绩管理,班级管理,系统管理”,他们分别管理学生信息
7、,学生成绩,班级信息,系统。每个功能又可以细分实现具体的增删改查等功能。3) 根据需求分析。找出参与者,和参与者的功能,画出用例图 4) 采用面向对象分析,画出类图和时序图 学生管理系统类图 学生管理系统时序图5) 系统的业务流程图和数据流向。(流程图,活动图)流程图 活动图 6) 实现各个模块的关键的算法和技术描述学生信息模块关键算法:技术描述: 学生成绩模块 关键算法: 技术描述: 班级模块管理 关键算法: 技术描述: 系统模块设置 关键算法:技术描述:7) 软件的开发环境: 本系统以Windows为开发平台,采用面向对象的软件开发方式,以Microsoft公司的可视开发环境VisualS
8、tudio2008作为主要开发工具,使用Microsoft SqlServer2005作为关系数据库,并为C#编程语言中采用ADO数据库编程模型,配合功能强大的SQL查询语言实现建立关系数据库,访问数据库,对数据库的更新,较好的实现了预定的需求功能。2. 详细设计1) 学生信息管理模块详细设计 学生信息模块详细架构图 学生信息管理主要有三大功能:1.添加学生信息,信息包括:基本信息、学籍信息、联系方式;2.学生属性管理,包括:基本信息、学籍信息、联系方式、学籍异动、获奖记录、处分记录;3.信息编辑管理,包括:基本信息、学籍信息、联系方式、学籍异动、获奖记录、处分记录;学生信息模块详细用例图学生
9、信息管理模块详细时序图2) 学生成绩管理模块详细设计学生成绩管理模块详细架构图 学生成绩管理主要包括四个主要功能: 1.添加成绩 2.成绩浏览 3.成绩排名 4.成绩查询 学生成绩管理模块详细用例图 学生成绩详细管理模块时序图 3) 班级管理模块详细设计 班级管理模块详细架构图 班级管理系统主要分为三个主要功能: 1班级浏览 2添加班级 3班级查询 班级管理模块详细用例图 班级管理模块详细时序图 4) 系统信息设置模块详细设计系统信息设置模块详细设计系统信息设置主要分为两个主要功能:1. 数据字典,包括:班级设置、专业设置、学员设置、学科设置、学籍异动、处分类型2. 用户管理,包括:管理用户、
10、密码修改系统信息设置模块详细设计用例图系统信息设置详细时序图5) 数据库设计(跟据类图映射过来) (画概念数据模型图,和物理数据模型图) 概念数据模型设计 物理结构模型设计1Colloges(学院表)字段名数据类型长度是否主键是否外键描述备注CollogeIDInt4是否学院编号CollogeNameVarchar(50)50否否学院名称2.Speciality(专业表)字段名数据类型长度是否主键是否外键描述备注SpecialityIDInt4是否专业编号SpecialityNameVarchar(50)50否否专业名称CollogeIDInt4否是所属学院参照Colleges表主键Speci
11、alityYearsInt4否是学制参照Speyears表主键3.Speyears(学制表)字段名数据类型长度是否主键是否外键描述备注SpeyearIDInt4是否学制编号Identity(1,1)SpeyearNameVarchar(50)50否否学制名称SpeyearYearsInt4否否学制时间单位:年4.Classes(班级表)字段名数据类型长度是否主键是否外键描述备注ClassIDInt4是否班级编号ClassNameVarchar(50)50否否班级名称SpecialityIDInt4否是所属专业参照Speciality表主键TeacherIDInt4否是班主任编号参照Teache
12、rs表主键5. ChangeTypesRecode(学籍变动记录表)字段名数据类型长度是否主键是否外键描述备注ChangeTypesRecodeIDInt4是否记录编号Identity(1,1)ChangeTypeIDInt4否是变动类型参照ChangeTypes表主键ChangeReasonVarchar(500)500否否变动原因ChangeStudentIDInt4否是变动学生编号参照Students表主键ChangDateDateTime8否否变动时间6.ChangeTypes(学籍变动类型表)字段名数据类型长度是否主键是否外键描述备注ChnageTypeIDInt4是否学籍变动类型编
13、号Identity(1,)ChangeTypeNameVarchar(50)50否否变动类型名称7.PunishmentAwardsRecode(奖惩记录表)字段名数据类型长度是否主键是否外键描述备注PunishAwardsRecodeIDInt4是否奖惩记录编号小于0表示惩罚,大于0表示奖励PunishAwardTypeIDInt4否是奖惩记录类别参照PunishmentAwardTypes表主键StudentIDInt4否是获奖学生编号参照Students表主键PunishAwardContentVarchar(500500否否获奖信息PunishAwardReasionVarchar(5
14、00500否否获奖原因PunishAwardDateDateTime8否否获奖时间8.PunishmentAwardsTypes(奖惩记录类别表)字段名数据类型长度是否主键是否外键描述备注PunishAwardTypeIDInt4是否奖惩记录类型编号编号0表示奖励,编号0表示惩罚PunishAwardTypeNameVarchar(50)50否否奖惩记录类型名称9.AdminInfo(管理员表)字段名数据类型长度是否主键是否外键描述备注AdminIDInt4是否管理员编号Identity(1,1)AdminNameVarchar(50)50否否管理员名称AdminPwdVarchar(50)5
15、0否否管理员密码AdminLevelVarchar(50)50否否管理员权限10.Students(学生表)字段名数据类型长度是否主键是否外键描述备注StudentIDInt4是否学生编号Identity(1,1)NameVarcahr(50)50否否学生名字GenderVarcahr(2)2否否学生性别ClassIDInt4否是所属班级参照Classes表主键StudentNumVarcahr(50)50否否学号EnterYearDateTime8否否入学时间OriginVarcahr(50)50否否籍贯BirthdayDateTime8否否出生日期PersionCardVarcahr(50
16、)50否否身份证号AddressVarcahr(50)50否否家庭住址FamilyTelVarcahr(50)50否否家庭电话DromTelVarcahr(50)50否否寝室电话MobileVarcahr(50)50否否移动电话EmailVarcahr(50)50否否电子邮件11.Teachers(班主任表)字段名数据类型长度是否主键是否外键描述备注TeacherIDInt4是否班主任编号Identity(1,1)TeacherNameVarchar(50)50否否班主任姓名TeacherTelVarchar(50)50否否班主任电话TeacherGenderVarchar(2)2否否班主任性
17、别Indate88否否入职日期TeacherBirthday88否否出生年月TeacherOriginVarcahr(50)50否否班主任籍贯12.Sepc_Subjects(专业科目关系表)字段名数据类型长度是否主键是否外键描述备注SepcIDInt4是否专业编号联合主键SubjectIDInt4是否科目编号联合主键13.Subjects(科目表)字段名数据类型长度是否主键是否外键描述备注SubjectIDInt4是否科目编号Identity(1,1)SubjectNameVarchar(50)50否否科目名称14.Examination(考务表)字段名数据类型长度是否主键是否外键描述备注E
18、xaminationIDInt4是否考试编号Identity(1,1)StudentIDInt4否否学生编号SubjectIDInt4否否科目编号ExamScoreInt4否否考试成绩6) 界面设计(静态原型图,界面的统一风格)主窗体界面 添加学生信息班级信息浏览班级信息查询组织机构设置用户管理编辑学生的基本信息学生的属性成绩查询类型参数设计添加班级添加成绩设置学科用户登录修改密码7) 数据结构和算法设计具体实现三、 编码计划1. 人员配置(建立项目开发小组,分工,设定项目/模块负责人,制定小组章程)编号成员名称团队开发任务界面设计技术支持备注001彭小敏界面设计C#界面负责人002张航界面设
19、计C#003杨光远代码编写C#004刘晓朋代码编写C#005焦学军代码编写C#代码编写负责人006李旭东代码编写C#007李旺盛软件测试C#软件测试负责人2. 根据总体设计中的分模块来进行编码工作分工。代码编写分工编号成员名称团队开发任务技术支持备注003杨光远系统管理模块C#004刘晓朋学生信息管理模块C#005焦学军学生成绩管理模块C#006李旭东班级管理模块C#3. 项目开发进度计划。(画甘特图) 4. 项目开发采用的工具。(有哪些工具,用了哪些编程语言)开发工具:VisualStudio 2008,SqlServer 2005 语言:C#,数据库语言5. 编码规范(数据库命名规范, C
20、#编程规范) 目标:l 安全:代码完成所需的功能之余,不要产生负作用,即要稳定可靠l 易读:类、实例、成员变量、成员函数的命名一目了然。l 美观:尽量同意项目组内人员的编程风格。 数据库命名规范:1. 数据库文件名数据文件命名采用系统名+_+文件类型,比如系统名为ComSys,则数据库文件名为ComSys_datebase.mdf,有的数据库文件有多个,比如SQL Server就有2个,一个是数据库文件,另一个是日志文件,那么他们的文件名分别为ComSys_datebase.mdf,ComSys_datebase.log。2. 数据库对象命名规范数据库对象包括表、视图(查询),存储过程(参数查
21、询),函数,约束,对象名字有前缀和实际名字组成,长度不超30.(1).前缀使用小写字母。如:表: tb视图 vi存储过程 sp函数 fn(2).实际名字实际名字尽量描述实体内容,由单词或单词组合,每个单词的首字母大写,其他字母小写,不以数字和_开头。如:表 User_Info视图 User_List存储过程 User_Delete(3).示例合法的对象名字类似如下:表 tb_User_Info tb_Message_Detail视图 vi_Message_List 存储过程 sp_Message_Add 3. 表的命名(1).表名由前缀和实际名字组成。前缀使用小写字母tb,表示表。(2).如果
22、表或者是字段的名称仅有一个单词,那么建议不使用缩写,而是用完整的单词。(3).所有的存储值列表的表前面加上前缀Z 目的是将这些值列表类排序在数据库最后。(4).所有的冗余类的命名(主要是累计表)前面加前缀X 冗余类是为了提高数据库效率,非规范化数据库的时候加入的字段或者表。(5).4. 字段的命名5. 师徒的命名6. 触发器的命名7. 索引命名8. 存储过程命名9. 变量名10. 命名中其他注意事项数据库名:StudentDB数据库表名:不要根据自己的爱好随意命名,要根据数据库设计图名词英文名命名学院表:Colloges专业表:Speciality学制表:SpeYears班级表:Classes
23、学籍变动记录表:ChangeTypeRecode学籍变动类型表:ChangeTypes奖惩记录表:PunishmentAwardsRecode奖惩记录类别表:PunishmentAwardsTypes管理员表:AdminInfo学生表:Students班主任表:Teachers专业科目关系表:Sepc_Subjects科目表:Subjects考务表:ExaminationC#编码规范: 命名原则(1).所有的函数(变量/类/文件名)应该代表其实际的作用,应该使用有意义的单词或多个词组合,但不要使用人名,项目组名。(2).所有的函数(变量/类名)一律使用英文。(3).使用多个单词时不需要使用连线
24、(如下划线),但对于全部大写的宏要连线(4).多个词组合较长时,可以使用单词的缩写。(5).不得使用非常相近的名字类表示不同含义的函数(变量/类)。(6).命名时请考虑名字的唯一性和含义的准确性。(7).使用项目组专用词汇来表达特定的含义(概念),不得把专用词汇挪用作它用 变量命名原则:使用匈牙利命名法命名变量(1).变量名一般由“类型修饰+代表变量含义的英文单词或单词缩写”等部分组成。类型修饰(小写字母)n:int, LONG/long, s:short, u:UNIT, f:floatb:bool, by:BYTE, ch:char, sz:char, str:string(2).针对异常
25、捕获过程中的Exception变量命名,在没有冲突的情况下,统一命名为e;如果有冲突的情况下,可以重复e,比如:ee。 函数的命名(1).使用动宾词组表达函数实际所做的事。(2).同名的函数(重载函数)在功能上应该完全相同,在参数差别也应一目了然。(3).不得出现名字非常相近但功能不同的函数,如CreatePage1(),CreatePage2()等。 类命名(1).名字应该能够标识事物的特征。(2).名字尽量不使用缩写,除非他是众所周知的。(3).名字可以是两个或三个单词组成,但通常不应多余三个。(4).在名字中所有单词第一个字母大写,缩写都要大写。(5).不要使用下划线字符( _ ). 控件命名规则控件命名=控件缩写前缀+“_”+变量名。控件LabelTextBoxButtonListBoxDropdownList等等缩写lb_xxxTb_xxxBtn_xxxLb_xxxDrd_xxxxxxx6. 使用技术该项目使用到的技术有:1.面向对象编程2.WinForm窗体设计3.C#程序设计四、测试计划 五、工程实施计划与维护1. 配置图2. 客户培训PPT六、参考资料