陕西师范大学远程教育学院课程名称软件工程学习中心(点):陕西咸阳高等职业技术培训学院专业:计算机科学与技术层次:专科起点本科姓名:王琪批次:161《软件工程》考查作业设计一、要求通过该课程设计要使学生树立起强烈的工程化意识,用工程化思想和方法开发软件。切实体会出用软件工程的方法开发系统与一般程序设计方法的不同之处,学生在对所开发的系统进行软件计划、需求分析、设计的基础上,实现并测试实际开发的系统。通过一系列规范化软件文档的编写和系统实现,使学生具备实际软件项目分析、设计、实现和测试的基本能力。二、主要内容要求学生掌握软件工程的基本概念、基本方法和基本原理,为将来从事软件的研发和管理奠定基础。每个学生选择一个小型软件项目(内容参照《计算机综合实践指导》,宋雨等编著,清华大学出版社出版),按照软件工程的生命周期,完成软件计划、需求分析、软件设计、编码实现、软件测试及软件维护等软件工程工作,并按要求编写出相应的文档。具体的方法可以选用传统的软件工程方法或者面向对象的方法,开发环境和工具不限。三、进度计划序号设计(实验)内容完成时间备注1软件计划、软件需求分析、软件设计,制定出软件测试计划,软件测试用例第1周共5天2各模块录入、编码、编译及单元测试第2周的共5天3联调及整体测试,第3周的共5天4验收,学生讲解、演示、回答问题第2周的共3天四、设计成果要求1.题目完成后,要上交一个设计报告,包括下列内容:1)需求分析根据选定的题目进行业务需求分析、用户需求、功能需求、非功能需求分析,编写需求规格说明书(含数据流图);2)概要设计根据系统的逻辑模型,与具体的计算机技术结合,进行架构,接口,界面,数据库以及模块等设计,完成概要设计说明书;3)详细设计详细设计说明书;4)软件编码源程序;5)测试文档软件测试计划及测试用例,详细的测试数据、详细的测试步骤以及测试结果;6)其他用户操作手册,其他与本课程设计有关的需要说明的事项;7)设计体会五、考核方式(一)理论部分占考查成绩的30%(二)实践部分占考查成绩的70%1问题描述学籍管理系统能对学生的学籍及成绩进行基本管理,包括:学生基本信息和学科成绩的存储、输入、删除、修改、查询,以及升留级管理。学生基本信息应包括:学号、姓名、出生年份、籍贯、性别、专业、班级、家庭住址、本校住址、个人联系电话、家庭联系电话;成绩信息应包括:学号、课号、课名、成绩、上课时间、教师号。查询能够按照:学号、课号、班级、时间等进行查询。2需求分析需求分析是数据库信息管理系统开发的第一步也是着重要的一步。需求分析是描述系统的需求,通过定义系统中的关键域类来建立模型。分析的根本目的是在开发者和提出需求的人之间建立一种理解和沟通的机制,下面从三个方面(市场需求分析、功能需求分析、技术可行性分析)来进行系统的需求分析:2.1功能需求分析这个是一个学生管理系统,我们的目标是提高学籍管理工作的效率,具有对学生个人信息,课程信息,所选课程信息进行管理及维护的功能。学生可以通过此系统进行个人信息,考试成绩查询。系统开发的总体任务是实现学生信息管理的系统化,规范化和自动化。总之,学籍管理系统的功能需求包括管理员对功能的需求和学生对功能的需求,老师对功能的需求三大部分,如下所列:(1)管理员对功能的需求管理员权限最大,可以对学生,课程,老师的管理,管理员对功能的需求细分如下:有关学生信息的浏览,包括学生的姓名,入学日期,所在班级,学制,家庭住址,联系电话。学生的添加,本系统由管理员对学生进行添加。学生信息的修改,删除。教师信息的添加,本系统管理员对教师的基本信息进行添加。学校基本课程的浏览,包括课程名,学时,学分,任课老师和课程具体描述。学校基本课程的添加。学校基本课程的修改,删除。(2)学生对功能的需求学生只是利用此系统进行与自己有关的信息查询,输入等,不必关心其他的内容,学生对功能的需求如下:浏览个人基本信息,具体内容包括姓名,入学日期,所在班级,学制,家庭住址,联系电话。学生登陆系统后,修改个人信息,为了保证系统安全性,只要求学生修改个人密码。浏览课程信息,具体内容包括课程名,课程类型,学分和课程的具体描述。浏览个人选课情况。浏览个人成绩。(3)老师对功能的需求老师利用该系统对学生和课程进行管理,老师对功能的需求如下:浏览个人基本信息,具体内容包括教师姓名和信息简介。老师登陆系统后,修改个人信息,为了保证系统安全性,只要求老师修改个人密码。浏览课程信息,具体内容包括课程名,课程类型,学分和课程的具体描述。管理学生的成绩,包括对学生成绩的修改。查看学生的留言。2.2技术可行性分析目前,全国计算机越来越普及,几乎每个学校都配有计算机,为我的这套软件提供了硬件环境。数据库是60年代末出现的一门计算机软件技术,到现在虽然只有三十多年的历史,但在理论和时间上都已经趋于成熟,使我们能够方便的使用。数据库技术是信息系统的核心和基础,它的出现极大地促进了计算机应用向各行各业的渗透数据库的建设规模、数据库信息量的大小和使用频度已成为衡量一个国家信息化程度的重要标志。Access数据库是我比较熟悉的数据库,这使我能够完成实验。本系统主要采用基于JAVA语言的JSP技术和SERVLET技术,以及HTML、CSS等语言和技术,因此该系统具有JAVA的所有优点,移植性能比较好。2.3性能分析系统应具有高可靠性系统在功能完整的同时,应具有很好的可靠性。作为支撑学生学籍管理工作的基础环境,系统出现故障将直接影响学校正常的工作进程,所以系统必须具有高可靠性。系统应具有良好的可操作性系统的使用者大多为普通操作人员,因此系统的界面操作应方便简单、使用户能够易学易。系统应具有较强的安全保密性。系统应提供安全可靠的数据操作权限,特定的人员只能对特定的信息进行炒作。3系统分析与设计3.1系统整体模块分析学籍管理系统是一个教育单位不可或缺的部分,它的内容对于学校的决策者和管理员来说都是至关重要,所以学籍管理系统应该能够为用户提供充足的信息和快捷的查询手段。学生学籍管理系统主要包括学生信息模块、课程管理模块、成绩管理模块、教师管理模块,具体的模块图如图2.1所示。学籍管理系统学生管理模块课程管理模块成绩管理模块教师管理模块增加学生删除学生修改学生查看学生查看课程修改课程删除课程增加课程更新信息课程给分查看分数学生修改分数删除信息查询信息增加老师图2.1系统模块图3.11学生管理模块该模块主要负责管理所有在校学生的个人信息。学生通过这个模块,可以查询自己在校的学籍信息,打印自己的学籍信息以及修改自己的登陆密码等等。管理者通过这个模块,可以添加、更新、删除、查询学生的学籍信息。3.12课程管理模块该模块主要的功能是管理全校的课程信息。主要功能包括添加,删除,修改,查询课程信息。其中只有管理员才具有对课程信息进行维护的权限(增加、删除、更新)。课程管理模块是选课管理模块的基础,只有在课程管理中添有选修课的信息,学生才能进行选课[5]。针对选课模块。该功能的行使者是学生,学生通过浏览全部的课程信息,选择自己符合自己要求的课程。3.13成绩管理模块该模块功能主要由老师所拥有。对于选择自己所教授课程的同学,老师具有给定该同学的专业分数,以及修改该同学的专业分数的权限。3.14教师管理模块该模块功能也为管理员所拥有。管理员主要负责新老师信息的增加,老师信息的整理以及老师信息的打印。除此之外还可以查看每个老师所教授的课程。3.2系统的用例分析(admin)图3.21管理员用例图管理学生管理教师管理课程系统登录系统退出管理员用例图,管理员(admin)可以实现的功能主要有:系统的登陆、对学生的管理(增加、删除、更新、查看)、对学生的管理(增加、删除、更新、查看)、对课程的管理(增加、删除、更新、查看)以及对新闻的管理(增加、删除、更新、查看)。(Student)图3.22学生用例图学生用例图,学生(Student)可以实现的功能有:系统的登陆、个人学籍信息的查询、个人登陆密码的修改、学院课程的查询、个人课程的选修、发表留言、以及新闻(公告)的浏览。(Teacher)查看信息修改密码查看课程学生选课查看信息修改密码查看课程发布分数图3.23老师用例图教师用例图,教师(Teacher)可以实现的功能有:系统的登陆、教师个人信息的查询、个人登陆密码的修改、查看学院所有课程、学生成绩的发布、查看学生的留言、查看学院新闻(公告)。3.3业务流程图系统流程图是描绘物理系统的传统工具。它的基本思想是用图形符号以黑盒子形式描述系统里面的每个部件(程序,文件,数据库,表格,人工过程等等)。系统流程图表达的是信息在系统各部件之间流动的情况,而不是对信息进行加工处理的控制过程,因此尽管系统流程图使用的某些符号和程序流程图中使用的符号相同,但是它确是物理流程图而不是程序流程图。3.31系统登录流程图:开始输入用户名、密码选择登录角色用户名密码是否正确NY角色判定图3.24管理员登陆流程图3.32管理员信息管理流程图:图3.25管理员信息管理流程图3.4系统的数据分析数据流图表达了数据和处理的关系,数据流图是结构化系统分析的主要工具,它表示了系统内部信息的流向,并表示了系统的逻辑处理的功能,描述了系统的组成部分及各部分之间的联系。学生课程表教师信息表显示学生成绩图3.4-2教师发布成绩数据流图更新登录信息初始化用户信息成功登陆到指定页面管理员登陆添加信息修改、更新信息删除信息基本数据库新的信息添加成功信息需要修改修改成功更新数据库更新数据库更新数据库信息列表删除信息教师发布成绩发布成功查看提交显示选课信息图3.4-3学生选课数据流图4数据库设计4.1数据库的需求分析数据库要尽量满足用户提出的各项要求。由于在学籍管理系统中,需要采集大量的信息,包括学生信息,班级信息,课程信息,成绩信息,教师信息等,需要合理有效的组织数据库的结构,合理设置数据库,这样就能在后期开发中减少难度,提高程序效率,根据学生基本信息及其相关信息的特点归纳一下规律:(1)一个专业包含多个班级(2)一个班级对应一个入学年份及学制(3)一个班级包含多个学生的名字(4)每一个学生都有不同的学号(5)一个班级对应连续的多个学期(6)一个班级在一个学期内开设多门课程(7)每一门课程需要记录每一门学生的成绩(8)一种角色对应一个或多个用户根据以上数据之间的对应及依赖关系,可以确定数据库中所必备的信息应该有一下几方面:(1)专业信息类别信息,包含院校所开设的专业名称及详细的介绍、描述。(2)学生信息,包含学生的学号、姓名、性别及所属班级等基本信息。(3)课程信息,包含开设课程的班级、课程及学期。(4)成绩信息,包含学生的学号、课程、学期及成绩信息。学生课程信息选择课程管理员审核(5)用户信息,包含用的名称、口令及角色。(6)角色信息,包含角色名称、与该角色有关的权限。4.2数据库的概念结构设计根据上面对系统的需求分析、模块设计,就可以做出能够满足用户需求的各种实体以及他们之间的关系。本系统根据上面的设计规划出:用户信息实体、学生信息实体、课程信息实体、教师信息实体、学生-课程情况实体、教师-课程情况实体。以及整个系统的E-R图。4.21管理员实体属性图4.22学生实体属性图管理员编号姓名密码学生编号名字入学时间年制住址电话编号名称学分分数性别所属学院4.23课程实体属性图4.24教师实体属性图4.27学生-课程实体属性图下面给出整个系统的E-R图:课程教师备注编号名字职称学生-课程编号编号编号编号性别所属学院年龄联系电话图4.28系统E-R图4.3数据库逻辑结构设计首先是系统的登录表(login),存储可以登录系统的学生、管理员、老师的相关信息。。相关的列名有登陆ID号(loginID)、角色类型(roleID)、登陆姓名(loginName)、登陆密码(loginPWD)。表1用户登录表(login)列名数据类型大小约束字段描述loginIDInt11主键(主键)编号roleIDInt11只有1、2用户类型log