软件工程设计报告.docx
- 文档编号:9804768
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:25
- 大小:207.25KB
软件工程设计报告.docx
《软件工程设计报告.docx》由会员分享,可在线阅读,更多相关《软件工程设计报告.docx(25页珍藏版)》请在冰豆网上搜索。
软件工程设计报告
**研究生管理系统
设计报告
姓名:
***
学号:
***
班级:
***
日期:
***
1.文档说明
1.1.设计文档的目的和文档使用范围
该文档根据需求分析阶段所得的需求文档编写,说明对研究生管理系统的设计考虑,包括系统的基本处理流程、组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等,同时说明本系统各个层次中的每个模块或子程序的设计考虑和标准,从而为下一阶段的代码实现提供文本依据。
1.2.文档的读者
文档的预期读者为用户、开发人员、项目经理、营销人员、测试人员、文档编写人员等。
1.3.参考资料
下面表格描述的是及本设计相关的资料。
编号
相关文档
1
研究生管理系统需求分析文档.doc
2
1.4.缩略语
下面表格定义了本文所用到的重要的术语、缩写词或缩略语。
缩略语、术语
全称、解释
$CATALINA_HOME
ApacheTomcat的根目录
2.
系统概述
本节主要从需求的角度描述本系统,描述的输入是用户需求。
2.1.系统部署图
下面是本系统的部署图。
服务器开启后初始化ServletAction,读取struts-config.xml配置信息。
用户发送请求,Servlet查找匹配ActionMapping对象是否存在,如果不存在,则返回错误信息;如果存在,则请求ActionForm对象中数据给Action处理。
Action调用LogicClass对用户请求做出处理。
如果涉及到数据库操作,则通过接口调用数据层的DataClass做处理,并存储到实体中。
处理完毕后,返回Action,并返回一个ActionForward对象给ServletAction并撞向某个JSP文件或者一个新的Action对象。
如果转向JSP文件,其中涉及到调用ActionForm里的JavaBean类中的set()方法来提交表单数据给用户。
ActionForm填充JSP页面,并返回给用户结果信息。
本系统采用B/S模式,用户只需使用浏览器访问本系统即可,客户端无需安装其他软件。
并且本系统采用MVC三层处理模式,使用Java的SSH框架分别处理MVC三层所有的事务。
2.2.硬件环境
下面的表格描述系统的硬件环境,以及对系统有影响的关键硬件信息。
硬件名称
基本要求
推荐配置
CPU
1GPentium
1.6GPentium
硬盘
20G
40G
内存
512M
1G
显示器
1366*768
1440*900
对于本系统的WEB服务器和数据库服务器推荐使用专用的高配置服务器,以应对可能出现的大量客户同时访问。
由于客户端使用浏览器就可以访问本系统,故只需普通个人计算机即可。
2.3.软件环境
本系统在Windows7操作系统中进行部署,使用ApacheTomcat作为WEB服务器,使用MySQL作为数据库服务器。
2.3.1.OS环境
下面的表格说明操作系统及其版本号。
系统名称
版本号
提供商
Windows
Windows7旗舰版SP1
MicroSoft
2.3.2.依赖软件
下面的表格说明了本系统所依赖的软件、组件、服务信息。
软件名称
版本号
提供商
备注
Tomcat
6.0.26
ApacheSoftwareFoundation
MySQL
5.5.31
Oracle
2.3.3.开发环境
下面的表格描述的是本系统的开发环境。
软件名称
版本号
使用语言
提供商
备注
MyEclipse
9.0
Java
Genuitec
2.4.系统安装
对于ApacheTomcat和MySQl数据库的安装参考官方给定方法。
安装ApacheTomcat后,将系统部署到到其中。
部署方法有两种,一种是静态部署,另一种是动态部署。
1、静态部署
静态部署指的是在服务器启动之前部署应用程序,只有当服务器启动之后,才能进行访问。
以下3中方式都可以部署:
(1)将应用程序根目录拷贝到$CATALINA_HOME\webapps下,然后启动服务器。
这种方式比较简单,但是web应用程序必须在webapps目录下。
(2)将应用程序根目录拷贝到任意合适的目录下,同时需要进行一些配置,方法如下:
更改$CATALINA_HOME\conf\server.xml文件,在
其中reloadable="false"表示当应用程序中的内容发生更改之后服务器不会自动加载,这个属性在开发阶段通常都设为true,方便开发,在发布阶段应该设置为false,提高应用程序的访问速度。
docBase为路径,可以使用绝对路径,也可以使用相对路径,相对路径相对于webapps。
path属性的值是访问时的根地址。
(3)将应用程序根目录拷贝到任意合适的目录下,同时在$CATALINA_HOME\conf\Catalina\localhost中添加一个xml文件,并且赋予一定含义的文件名,其内容如下:
该方式及第二种方式差不多,但是缺少了path属性,这种方式服务器会使用.xml的名字作为path属性的值。
2、动态部署
动态部署是指可以在服务器启动之后部署web应用程序,而不用重新启动服务器。
动态部署要用到服务器提供的manager.war文件,如果在$CATALINA_HOME\webapps\下没有该文件,则必须去重新下载Tomcat,否则不能完成以下的功能。
要想使用该管理程序必须首先编辑$CATALINA_HOME\conf\tomcat-users.xml文件,内容如下:
这样,就完成了应用程序的动态部署。
2.5.系统启动
直接运行$CATALINA_HOME\bin\startup.bat文件可启动Tomcat服务器,进而可以访问本系统。
2.6.系统退出
运行$CATALINA_HOME\bin\shutdown.bat文件可以关闭Tomcat服务器。
3.
关键技术
本系统的技术点列表如下:
编号
技术点略称
状态
No.1
B/S模式
掌握
No.2
SSH框架
掌握
No.3
JDBC
掌握
本章将逐个对技术点进行描述,包括每个技术点的内容、解决方法和状态等。
3.1.B/S模式技术点
B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。
这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。
客户机上只要安装一个浏览器(Browser),如InternetExplorer,服务器安装Oracle、SQLServer或MySQL等数据库。
浏览器通过Web服务器同数据库进行数据交互。
B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件,只要有一台能上网的电脑就能使用,客户端零安装、零维护。
系统的扩展非常容易。
B/S结构的使用越来越多,特别是由需求推动了AJAX技术的发展,它的程序也能在客户端电脑上进行部分处理,从而大大的减轻了服务器的负担;并增加了交互性,能进行局部实时刷新。
1)维护和升级方式简单。
当前,软件系统的改进和升级越发频繁,B/S架构的产品明显体现着更为方便的特性。
对一个稍微大一点单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。
所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向。
今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的,惊人的。
因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器。
2)成本降低,选择更多。
当前的趋势是凡使用B/S架构的应用管理软件,只需安装在Linux服务器上即可,而且安全性高。
所以服务器操作系统的选择是很多的,不管选用那种操作系统都可以让大部分人使用安装了浏览器的Windows作为桌面操作系统而不受影响。
3)应用服务器运行数据负荷较重。
由于B/S架构管理软件只安装在服务器端(Server)上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。
但是,应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。
因此,需要有数据库存储服务器,以防万一。
由于B/S模式已经很流行,并且也已被广泛掌握,因此实现起来风险较小。
3.2.SSH框架技术点
SSH为Struts+Spring+Hibernate的一个集成框架,是目前较流行的一种JavaWeb应用程序开源框架。
下面将分别进行介绍。
1、Struts框架
Struts是一个基于SunJ2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。
由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。
Struts把Servlet、JSP、自定义标签和信息资源(messageresources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说Struts是一个非常不错的应用框架。
2、Spring框架
Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。
Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。
Spring的架构基础是基于使用JavaBean属性的InversionofControl容器。
然而,这仅仅是完整图景中的一部分:
Spring在使用IOC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。
Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误。
Spring的数据访问架构还集成了Hibernate和其他O/Rmapping解决方案。
Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如JTA或者JDBC事务提供一个一致的编程模型。
Spring提供了一个用标准Java语言编写的AOP框架,它给POJOs提供了声明式的事务管理和其他企业事务--如果你需要--还能实现你自己的aspects。
这个框架足够强大,使得应用程序能够抛开EJB的复杂性,同时享受着和传统EJB相关的关键服务。
Spring还提供了可以和IoC容器集成的强大而灵活的MVCWeb框架。
3、Hinernate框架
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
总之,Struts是一个很好的MVC框架,主要技术是Servlet和JSP。
Struts的MVC设计模式可以使我们的逻辑变得很清晰,让我们写的程序层次分明。
Spring提供了管理业务对象的一致方法,并鼓励注入对接口编程而不是对类编程的良好习惯,使我们的产品在最大程度上解耦。
Hibernate是用来持久化数据的,提供了完全面向对象的数据库操作。
Hibernate对JDBC进行了非常轻量级的封装,它使得及关系型数据库打交道变得非常轻松。
Struts负责Web层。
ActionFormBean接收网页中表单提交的数据,然后通过Action进行处理,再Forward到对应的网页,在Struts-config.xml中定义了
Spring负责业务层管理,即Service。
Service为Action提供统一的调用接口,封装持久层的DAO,并集成Hibernate,Spring可对JavaBean和事物进行统一管理。
Hibernate负责持久层,完成数据库的CRUD操作。
Hibernate有一组hbm.xml文件和PO,是及数据库中的表相对应的,然后定义及数据库打交道的DAO类。
在Struts+Spring+Hibernate系统中,对象之间的调用流程如下:
Struts——>Spring——>Hibernate
JSP——>Action——>Service——>DAO——>Hibernate
3.3.JDBC技术点
JDBC(JavaDataBaseConnectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行。
JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
JDBC对Java程序员而言是API,对实现及数据库连接的服务提供商而言是接口模型。
作为API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现及数据库的连接提供了标准方法。
JDBC使用已有的SQL标准并支持及其它数据库连接标准,如ODBC之间的桥接。
JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。
JDBC扩展了Java的功能。
例如,用Java和JDBCAPI可以发布含有applet的网页,而该applet使用的信息可能来自远程数据库。
企业也可以用JDBC通过Intranet将所有职员连到一个或多个内部数据库中(即使这些职员所用的计算机有Windows、Macintosh和UNIX等各种不同的操作系统)。
MIS管理员们都喜欢Java和JDBC的结合,因为它使信息传播变得容易和经济。
企业可继续使用它们安装好的数据库,并能便捷地存取信息,即使这些信息是储存在不同数据库管理系统上。
新程序的开发期很短。
安装和版本控制将大为简化。
程序员可只编写一遍应用程序或只更新一次,然后将它放到服务器上,随后任何人就都可得到最新版本的应用程序。
对于商务上的销售信息服务,Java和JDBC可为外部客户提供获取信息更新的更好方法。
(1)JDBC用途
简单地说,JDBC可做三件事:
及数据库建立连接、发送操作数据库的语句并处理结果。
JDBC是个"低级"接口,也就是说,它用于直接调用SQL命令。
在这方面它的功能极佳,并比其它的数据库连接API易于使用,但它同时也被设计为一种基础接口,在它之上可以建立高级接口和工具。
高级接口是"对用户友好的"接口,它使用的是一种更易理解和更为方便的API,这种API在幕后被转换为诸如JDBC这样的低级接口。
在关系数据库的"对象/关系"映射中,表中的每行对应于类的一个实例,而每列的值对应于该实例的一个属性。
于是,程序员可直接对Java对象进行操作;存取数据所需的SQL调用将在"掩盖下"自动生成。
此外还可提供更复杂的映射,例如将多个表中的行结合进一个Java类中。
(2)支持
JDBCAPI既支持数据库访问的两层模型(C/S),同时也支持三层模型(B/S)。
在两层模型中,Javaapplet或应用程序将直接及数据库进行对话。
这将需要一个JDBC驱动程序来及所访问的特定数据库管理系统进行通讯。
用户的SQL语句被送往数据库中,而其结果将被送回给用户。
数据库可以位于另一台计算机上,用户通过网络连接到上面。
这就叫做客户机/服务器配置,其中用户的计算机为客户机,提供数据库的计算机为服务器。
网络可以是Intranet(它可将公司职员连接起来),也可以是Internet。
在三层模型中,命令先是被发送到服务的"中间层",然后由它将SQL语句发送给数据库。
数据库对SQL语句进行处理并将结果送回到中间层,中间层再将结果送回给用户,可用中间层来控制对数据的访问和可作更新的种类。
中间层的另一个好处是,用户可以利用易于使用的高级API,而中间层将把它转换为相应的低级调用。
JDBC对于从Java的中间层来访问数据库非常重要。
(3)联接
使用Java访问数据库需要获取一个连接,这通过两个步骤实现:
装载驱动程序,获取连接。
(4)改进
尽管JDBC在Java语言层面实现了统一,但不同数据库仍旧有许多差异。
为了更好地实现跨数据库操作,于是诞生了Hibernate项目,Hibernate是对JDBC的再封装,实现了对数据库操作更宽泛的统一和更好的可移植性。
4.
结构设计
通过功能模块图来形象化描述本系统的结构设计。
系统功能模块图是一种结构化设计方法,采用类似于结构化分析的“由大到小”、“自顶向下,逐层分解”的基本思想分解并描述系统。
在导出系统功能模块图的过程中,以独立性、低耦合性、高内聚性、公共模块作为模块划分的原则,将大模块划分为较小的模块,直到每一模块都是功能单一的模块。
下面是本系统的的系统功能模块图。
下面对本系统的每一个模块的功能进行概略描述。
1、登录模块
该模块负责各种用户的登录管理,同时负责用修改各自的登录密码。
2、用户管理模块
系统管理员可以添加指定的普通管理员,并赋予其教务处、学生处等角色,而这些角色具有相应的修改系统特定内容的权限,而为学生赋予普通用户的角色。
3、学生信息管理模块
学生可以录入自己的各种信息,同时可以修改和查看自己的信息。
学生处可以查询、统计以及导出学生信息,同时还可以设定学生的在校状态,比如已注册、休学、毕业等,对学生信息进行管理。
4、课程信息管理模块
教务处将各种课程的信息录入,可以查询课程信息,并可以根据实际情况修改开设的课程以及课程信息,而教师和学生可以查询课程信息,以方便教学和选课。
5、教师信息管理模块
教师将自己的基本信息录入系统,同时选择自己可以教授的课程,为教务处安排教学任务提供参考,也方便学生选课。
6、选课模块
学生根据导师的建议以及自己的爱好选择选修的课程。
教务处和教师可以查看和统计学生的选课情况,并可导出选课名单,同时教务处可以根据学生的选课情况决定是否开设某些课程。
在相应的课程考试完毕后,教师可以录入学生的成绩。
教师可以查看和统计所教授课程的成绩信息,教务处可以查看和统计所有课程的成绩信息,并导出成绩单,而学生只能查看自己的成绩。
5.
数据库设计
本系统使用MySQL数据库实现。
MySQL是一个关系型数据库管理系统,将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。
MySQL软件采用了双授权政策。
由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。
总体而言,MySQL数据库具有如下特点:
1)使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性。
2)支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统。
3)为多种编程语言提供了API。
这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。
4)支持多线程,充分利用CPU资源。
5)优化的SQL查询算法,有效地提高查询速度。
6)既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。
7)提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。
8)提供TCP/IP、ODBC和JDBC等多种数据库连接途径。
9)提供用于管理、检查、优化数据库操作的管理工具。
10)支持大型的数据库。
可以处理拥有上千万条记录的大型数据库。
11)支持多种存储引擎。
5.1.数据表设计
本节是本系统基于MySQL数据库的数据表的详细设计。
学生表(student)
字段名
数据类型
约束
备注
stu_id
int(10)
primary_key
学号
stu_name
varchar(30)
notnull
姓名
stu_age
int
(2)
notnull
年龄
stu_sex
int
(1)
notnull
性别
stu_native
varchar(100)
notnull
籍贯
tch_id
int(10)
foreign_key
导师编号
spe_id
int(10)
foreign_key
所属专业号
stu_research
varchar(30)
notnull
研究方向
课程表(course)
字段名
数据类型
约束
备注
cour_id
int(10)
primary_key
课程编号
cour_name
varchar(50)
notnull
课程名
cour_credit
int
(2)
notnull
学分
cour_teach_time
varchar(30)
notnull
授课时间
cour_teach_site
varchar(30)
notnull
授课地点
cour_teach_term
int
(1)
notnull
授课学期
cour_teach_period
int(3)
notnull
授课学时
spe_id
int(10)
foreign_key
授课专业号
专业表(specialty)
字段名
数据类型
约束
备注
spe_id
int(10)
primary_key
专业号
spe_name
varchar(30)
notnull
专业名
spe_i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 设计 报告