获取项目源文件,联系Q:1415736481,可指导毕设,课设
摘 要
本系统是对现在网上流行的可以写日志,上传照片等功能的个人博客系统,采用的是Eclipse3.0、MyEclipse6.0、Mysql 5.0作为开发平台。在开发过程中首先对系统的功能模块进行了分析,然后又结合了学校对毕业设计环节的管理标准和要求。经过系统的需求设计,功能设计和数据库设计等过程,最终实现了系统全部要求的功能。
个人博客系统主要包含了以下模块:用户的出注册、登陆、注册用户的个人信息设置、头像的上传、日志的书写、他人日志的浏览、留言、以及打分等功能。实现了现代博客系统的各个功能。
本论文采用软件工程的思想对系统的进行需求分析、总体设计、详细设计、系统实现、系统测试和数据库设计等对系统的开发过程进行了详细的介绍,并对该系统的主要特点以及采用的主要系统开发工具进行了简单的介绍。
本系统采用快速原型的模型进行开发与设计。
【关键词】:规范化、软件工程、MySql数据库、sturts、hibernate、spring、 SQL
第1章 绪 论
1.1 Java和数据库系统设计概述
数据库应用系统开发涉及到后台数据库技术和前台的开发语言与数据库访问技术。本系统的数据库选择MySql 5.0 , 前台开发选择当前最为流行的开发工具Eclipse3.0、MyEclipse6.0中最新、最为经典的java语言。
数据库技术是现代信息科学的重要组成部分,它已经成为了计算机信息系统和应用系统的重要技术支持。数据库技术就是指如何科学地存储数据、高效地处理数据。
一般来说,数据库系统由3个部分组成:数据库、数据库管理系统(DBMS)和数据库应用程序。数据库是按一定的结构组织在一起的相关数据的集合;数据库管理系统是负责组织和管理数据信息的程序;数据库应用程序是数据库的前端程序,是用于浏览、修改数据的应用程序。根据数据库对数据组织方式的不同,数据库管理系统分为基于文件的管理系统、网状数据库管理系统、层状数据库管理系统和关系数据库管理系统。其中,关系数据库管理系统目前被广泛的应用。而MySql数据库是在数据库领域一直处于领先地位的一种关系型数据库管理系统。
1.2 MySQL数据库
MySQL是一个真正的多用户、多线程SQL数据库服务器。SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成。
SQL是一种标准化的语言,它使得存储、更新和存取信息更容易。例如,你能用SQL语言为一个网站检索产品信息及存储顾客信息,同时MySQL也足够快和灵活以允许你存储记录文件和图像。
MySQL 主要目标是快速、健壮和易用。最初是因为我们需要这样一个SQL服务器,它能处理与任何可不昂贵硬件平台上提供数据库的厂家在一个数量级上的大型数据库,但速度更快,MySQL就开发出来。自1996年以来,我们一直都在使用MySQL,其环境有超过 40 个数据库,包含 10,000个表,其中500多个表超过7百万行,这大约有100 个吉字节(GB)的关键应用数据。
MySql 可以满足如下要求:
企业IT不断承受着使用越来越少的资源做好越来越多事情的压力。变化是持续的,公司需要快速的适应这些变化以保持竞争力。同时,对于可用性和性能的需求在不断增长,而公司的财政预算在紧缩,为了应付计算需求的不可预测性和即时性,公司一般扩大服务器规模来适应高峰负载,并为IT组织配备人员来处理即时请求。为了解决这些问题,出现了一种新型的计算模型,即网格计算模型。而MySql 就是按网格计算模型。网格计算的核心思想是计算应当和公用设施一样可靠、深入和透明。用户的数据或者应用程序在哪里,或者什么计算机处理用户发出的请求变得无关紧要。用户将能够请求信息或计算,然后发布它——按需发布。
1.3 Eclipse和MyEclipse概述
Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。
虽然大多数用户很乐于将 Eclipse 当作 Java IDE 来使用,但 Eclipse 的目标不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。
这种平等和一致性并不仅限于 Java 开发工具。尽管 Eclipse 是使用Java 语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如 C/C++、COBOL 和 Eiffel 等编程语言的插件已经可用,或预计会推出。Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统.
MyEclipse是Eclipse的插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错。
Genuitec发布了MyEclipse Enterprise Workbench 6.0,更智能、更快捷、更简单和更便宜的J2EE工具的新版本的诞生。它的价格对于个人和企业开发人员来说都是非常有吸引力的。这是J2EE IDE市场一个重量级的选手。通过增加UML双向建模工具、WYSIWYG的JSP/Strutsdesigner、可视化的Hibernate/ORM工具、Spring和Web services支持,以及新的Oracle和MySql数据库开发,MyEclipse 6.0继续为业界提供全面的产品。
第2章 软件项目计划
问题定义是计划时期的第一个阶段,其目的是要弄清用户需要计算机解决的问题根本所在,以及项目所需要的资源和经费。我们通过一些调查并与工作人员进行讨论和沟通。编写一个系统目标与范围的说明书如下。
在网站上博客系统只是一个很小的模块,包括的功能也不是很大但是功能确实给用户带来了极大的好处。用户可以写自己想要写的东西,并且可以在网上认识很多志同道合的好朋友等等。
2.2 可行性分析
2.2.1 技术可行性分析
在IT行业中从业的工作人员一般都要求掌握计算机技术,具有一定的软硬件基础,会使用各种管理软件,熟悉IT产品。因为,博客是一个只有在网上才能使用的软件系统。所以不管是谁使用这款软件系统都必须要会上网才可以有条件去建立自己的空间博客。
本系统采用基于B/S(即浏览器/服务器)用户界面,而该系统是大家熟悉的基于浏览器开发的系统,对于那些有一般的计算机知识并且会上网的人员就可以轻松上手。而真个博客界面简洁直观,很容易上手操作。
由于我们是在模拟现实的实际需要而开发的系统,作为我们的毕业设计课题。因此在经济可行性研究不给予考虑。
由此,该系统的操作是可行的,能满足一般网民的需求。
综合以上几个方面,该系统具有很高的开发可行性,无论是从技术上还是操作上。
可行性分析是为了弄清所定义的项目是不是可能实现和值得进行。这样可以大大简化了系统分析和系统设计的过程。减少风险。
第3章 需求分析
3.1功能模块
本系统采用典型而成熟的BS架构设计,系统的各个子模块之间功能独立,各个子模块之间没有直接耦合,而是通过数据库之间的联系由进行组合,子模块的修改只是模块内的局部修改、不会导致修改的蔓延,从而使系统的抗修改能力大大提高,降低了系统开发的风险.
程序利用JSP技术,采用面向对象的设计方法,严格的编码规范、大大增强了系统的可维护行、降低了维护的风险.
基于BS模式的程序设计一个最重要的特点是实现了瘦客户端,本系统也充分利用了JSP的技术特点开发周期短、技术完善.
为了以后更好的维护开发博客程序,编写软件需求说明书,通过编写软件需求说明书,能够更好的了解以后的开发任务和合理的控制开发时间和开发模块.确定程序流程,模块结构,划分功能模块,将软件功能需求分配给所划分的最小单元模块.确定模块间的联系,确定数据结构,文件结构,数据库模式,确定测试方法与策略.本说明书主要供系统分析师与项目主管,分析设计师,高级软件工程师交流使用,也供系统维护员或再开发人员参考.
3.1.2系统说明
系统的名称:网络博客2能够让客户发布自己的网络日记或者其他文,转载网络文章,下载网络新闻,发布个人图片,可以和相关的人群沟通和交流.
名词关键次定义BLOG ,RSS
3.1.3运行环境系统
硬件要求
要求在配置P4微处理器或更高,内存1G以上的PC兼容机运行;
系统占用120G硬盘空间;服务器的操作系统为Windows2000 Server或者是 windews xp。
软件要求
服务器数据库系统采用mysql5.0
Web服务器:采用Tomcat 5以上系统。
Java运行环境:采用JRE 1.5以上中文版本。
客户端:采用浏览器工具即可。
主要模块划分:日志的发表、图片的上传、对日志进行留言等模块。
内部接口本系统采用BS模式,内部接口的实现通过相关公用类,SESSION会话实现,该部分接口会在其具体的开发文挡详细说明.
用户接口程序是标准的网页程序,提供图形化的用户界面.
外部接口
1.与会员系统的外部接口:
注册参展商,采购商或者承办单位都会有自动开通公司博客,所有公司添加的联系人都会开通个人博客.人才个人注册时自动拥有一个个人博客.
数据库
数据库名称: 所有的数据库表前都加上blog前缀和其他的表做区别建立新的用户信息表和登陆用户表
3.1.4 功能模块
内容如下:现有拦目广告和LOGO个人博客企业博客博客圈相册网摘RSS博采注册登录
推荐博客:博客列表文章人气排行榜
说明:主要是针对个人主办圈参展圈观众圈服务圈展馆圈同城圈职场圈同年圈
推荐部落:部落列表文章人气排行榜相册列表相片人气排行榜网摘列表网摘人气排行榜RSS列表类别现有拦目广告和个人LOGO博采列表类别文章摘要列表我的部落留言版加为好友友情链接发信图片显示文章管理日志分类网志管理相册分类相册管理联接管理选择模板自定义模版修改信息摘客收藏博采天下博客流程图这个流程图因为在没有页面的基础上编写,所以相对简单.
系统出错处理设计4.1补救措施定期提供源程序以及数据库的备份功能,一旦系统出现问题,可以恢复到备份时刻的信息.
系统维护设计本系统采用BS模式,所有源程序均保存于服务器端,在不需要编译源程序,不影响使用的前提下可以方便的直接进行维护和升级,此部分维护功能在以后的使用说明书中会进行详细说明博客需求说明书软件需求说明书编写规范
用户登陆博客首页注册博客(分为公司博客和个人博客)
注释:人才个人注册时自动拥有一个个人博客,其他频道是企业性质注册的自动获取一个企业博客.
注册用户登陆可以进行查看个人博客企业博客博客圈相册网摘RSS博采站点公告最新文章推荐部落最新活动文章人气排行榜搜索推荐相册等一些操作不过不能进行回复留言和发送短信的操作.
控制面板:日志分类网志管理相册分类相册管理联接管理选择模板自定义模版修改信息摘客收藏博采天下我的部落等操作.
第4章 系统设计
系统概述
为了满足客户需求中提出的对项目任务管理系统的基本要求,在系统设计上,将实现项目、人员、任务三大核心对象的管理。
4.1 总体结构设计
按照需求中提出的功能要求,可以将软件系统分解为多个子系统,同时,根据每个子系统的功能不同,分别完成需求分析中的不同要求。总体功能结构如用例图所示:
4.2数据库设计
4.2.1数据库只能各表的结构及其字段
博客文章表(blogarticletbl):
博客文章内容表(blogcommenttbl):
博客文章内容类型表(bloginfotypetbl):
博客站点表(blogsitetbl):
博客状态表(blogstattbl):
博客文章系统类型表(blogsystemtypetbl):
用户博客文章表(bloguserarticletbl):
系统用户表(systemusertbl):
4.2.2表结构联系
各表之间的联系见E-R图所示:
4.2.3系统总体流程
系统的总体流程详见下面的活动图和顺序图:
4.2.3详细设计
参见下面的类图:
系统测试是将软件系统与硬件、外设和网格等其他因素结合在一起,进行信息系统的各种组装测试和确认测试,其目的是通过于系统的需求相比较,发现所开发的系统与用户需求不符或矛盾的地方。常见的系统测试主要有恢复测试、安全性测试、强度测试、性能测试、可靠性测试和安全性测试。
完成对流程的编码后最重要的事情就是对系统的测试工作了,测试在系统设计阶段有两个时期,通常在编写每个模块后做单元测试,另一个时期是对系统的综合测试。
在模块测试时我们主要从以下几个方面考虑:
1. 模块接口;
2. 局部数据结构;
3. 重要执行通道;
4. 出错处理通道;
5. 影响上述方面的边界条件。
测试时进行代码审查,从数据类型,变量声明,数据结构进行审查,然后进行功能测试,从输入一些简单的数据开始执行一遍,观测运行期间变量的变化,运行中值的变化范围。改变测试方案来变换另一个角度进行测试,发现错误并记录,修改代码,测试条件使程序通过多层分支,判别运行结果从而完成模块测试。
总体测试是组装软件的系统技术,本系统测试采用渐增集成测试,即测试单一模块,将测试完的模块加入系统中,进行一次系统测试,依次类推将所有模块加入系统中,在具体测试时,采用自顶向下的结合方式,从主控模块开始,沿各控制层向下移动,逐渐把所有模块结合了。
在测试过程中使用到调试技术:
1. 采用debug调试语句,跟踪数据;
2. 嵌入打印语句,输出中间结果;
3. 利用MyEclipse中调试工具,从调试窗口观测变量的变化;
4. 设置断点,观察程序在断点附近的状况。
评估运行的可靠性问题:
1. 结果正确;
2. 运行速度;
3. 空间利用率;
4. 算法的可行性。
6.3软件测试的步骤
测试过程必须分步骤进行,每个步骤在逻辑上是前一个步骤的继续。大型软件系统通常由若干个子系统组成,每个子系统又由许多模块组成。因此,大型软件系统的测试基本上由下述4个步骤组成,单元测试、集成测试、确认测试和系统测试。
如图 7-1所示:
图7-1 测试步骤
6.4测试用例
设计测试用例和纠错,是搞好软件测试的两项关键技术。选择测试用例的目标,是用尽可能少的测试数据,达到尽可能大的程序覆盖面,发现尽可能多的软件错误和问题。单元测试应该以结构测试为主,其余测试一般以功能(黑盒)测试为主。发现程序错误,应进行定位与纠正。定位事一个分析与推理的过程,应提倡周密的思考。
根据用户的需求、系统软件分析与设计和实际开发过程中遇到的问题,编写测试用例文档说明,具体做法可参照模块测试、整体测试和软件测试的步骤。由于篇幅的限制,在此就不再陈述。
测试用例如下:
6.4.1登陆模块
测试功能 |
接受用户的输入的登陆用户名和密码,根据输入的客户数据来查看是否进行成功的登录。 |
输入 |
①用户名和密码都正确。 ②用户名正确,而密码不正确。 ③用户名不正确,而密码正确。 ④用户名和密码都不正确。 5用户名和密码都为空。 6用户名为空,密码正确。 7用户名正确,密码为空。 |
输出 |
①登陆成功 ②登陆失败,提示:用户名或密码错误。 ③登陆失败,提示:用户名或密码错误。 ④登陆失败,提示:用户名或密码错误。 5登陆失败,提示:用户名或密码错误。 6登陆失败,提示:用户名或密码错误。 7登陆失败,提示:用户名或密码错误。 |
6.4.2注册模块
测试功能 |
接受用户的输入的信息,根据输入的客户数据来判断其数据的合法性。 |
输入 |
①所有填写项目均为正确数据。 ②未填写昵称 ③未填写密码 ④确认密码与密码不符 5都为空,点击注册。 |
输出 |
①注册成功 ②注册失败,提示:昵称不能为空。 ③注册失败,提示:密码不能为空。 4注册失败,提示:确认密码与密码不符。 5注册失败,提示:各项没有填写的项目不能为空。. 5登陆失败,提示:用户名或密码错误。 6登陆失败,提示:用户名或密码错误。 7登陆失败,提示:用户名或密码错误。 |
6.4.3文章发表模块
测试功能 |
接受用户的输入的信息,根据输入的客户数据和选择的选项是否合法。 |
输入 |
①所有填写项目均为正确数据。 ②未填写标题。 ③未选择系统分类。 ④未选择文章分类。 5未选择创作类型。 6未选择显示方式。 7未填写文章内容。 |
输出 |
①发表成功 ②发表失败,提示:标题不能为空。 ③发表失败,提示:请选择系统分类。 ④发表失败,提示:请选择文章分类。 5发表失败,提示:请选择创作类型。. 6发表失败,提示:请选择显示方式。 7发表失败,提示:请填写文章内容。 |
6.4.4文章类型模块
测试功能 |
接受用户的输入的信息,根据输入的客户数据和选择的选项是否合法。 |
输入 |
①所有填写项目均为正确数据。 ②未填写分类的名称。 |
输出 |
1添加分类成功。 2添加失败,提示:未填写分类名称。 |
6.4.5留言管理模块
测试功能 |
接受用户的输入的信息,根据输入的客户数据和选择的选项是否合法。 |
输入 |
①所有填写项目均为正确数据。 ②未填写留言信息。 |
输出 |
1添加留言成功。 2添加失败,提示:未填写留言信息。 |
6.4.6文件上传模块
测试功能 |
接受用户的输入的信息,根据输入的客户数据和选择的选项是否合法。 |
输入 |
①所有填写项目均为正确数据。 ②上传的文件过大。 |
输出 |
1上传成功。 2上传失败,提示:上传的文件过大。 |
在做毕业设计过程中,我碰上了许多问题。开始设计时候,没有养成边设计边写文档的习惯,在后来的设计其它模块和调试中带来很多的不便,功能模块之间的联系,记得模糊,使我要从新需求分析、设计、调试;降低项目开发的效率。我参见了软件工程的一套方案,为软件项目开发与设计带来便捷。
在做毕业设计过程中,使我认识到开发一项好的软件不是由一个人就能完成的任务。一个团队的小组,一个勤奋的小组非常重要,小组协作与沟通是解决问题的好办法,所以小组中的每个成员的能力与协作能力也是致关重要的。同时,不仅是团队内部的交流,更多需要协调好团队之间的交流。
在做毕业设计过程中我了解了,在开发一个项目时一定要先做好规划,按照软件的开发过程,详细地写好每一个必要的文档。一般的规则是,写文档需要团队协作,这样就允许开发人员和文档编写者利用彼此的长处,取长补短。例如,如果预期读者是系统设计师,开发人员需要提供技术细节,然后文档编写者按照正确语法组织和编辑内容。软件文档的最主要目标是传达一个系统的技术要素和使用方法。第二个目标是提供软件开发过程中的需求,决策,行为,角色和责任的书面记录。只有实现了这两个目标,软件文档才真正提供了有意义的信息。软件的概念就是:程序+文档,程序就是文档,文档集成在程序中。它要求在选择开发环境时不仅要考虑环境对设计、开发的完美支持,而且要考虑对维护、文档的支持;它要求软件人员在设计、开发过程中要考虑维护问题、文档问题;它要求程序与文档存储在同一位置、同一系统中;它要求使用相同工具进行程序与文档的书写、检索;它要求在编写和维护程序的同时形成文档,在书写文档时编写、维护程序。程序与文档合一的概念不仅存在于系统的设计、开发阶段而且存在于系统的维护阶段,它贯穿软件的生命周期。
这次毕业设计让我把四年来各位老师所教授的课本内容都运用到了其中,让我感觉了四年来老师给予我们的知识的甘露,是多么的重要。
经过努力,我终于完成了博客系统的设计,同时,也让我学到了在课堂上学不到的体验。就是在完整的做完一个软件项目,从中学到了软件开发的一些经验,比如数据库与前台数据库的连接技巧等,还对一些软件开发相关的软件的运用得到了更大程度的熟练。这样就会减轻你前台的需求分析、设计、编程的工作量。并使你的软件项目的清晰明了,功能明确。
软件设计是一个精细漫长的过程。在整个过程中,都需要周密的计划和安排,每一步骤,都需要按照软件工程标准来完成。在设计中,我始终坚持理论指导实践原则,并通过实践来加强理论的学习,通过实习锻炼,我熟悉了软件的一般过程,加强了对实际问题的处理能力。实践证明,在高科技突飞猛进的时代,光靠课堂所学的知识是远远不够的,必须依靠实践去不断的深化认识,尤其是计算机科学,操作性和实践性很强,只有加强实际的动手能力,才能更好的掌握这一现代化工具。
这次的毕业论文设计实习,无论是从技术上还是对环境的适应能力上讲,对我今后步入社会都打下了一个良好的基础。在实习过程中,我也遇到了一些困难,主要表现了技术和经验的欠缺,但通过努力,终于一一克服了。
在整个期间,曾得到了 以及同学的大力支持和帮助,在此表示衷心的感谢!