个人博客管理系统的设计与实现——毕业设计
天 津 师 范 大 学
本科毕业论文(设计)
题目:个人博客管理系统的设计与实现
学 院:计算机与信息工程学院
学生姓名:
学 号:
专 业:计算机科学与技术
年 级:06级本科
完成日期:(四号宋体加粗)
指导教师:
个人博客管理系统的设计与实现
摘要:BLOG是WEB LOG的缩写,简单来说就是网络日记。它是1997年12月由
美国的Jorn Barger最早提出的,这些年全球博客获得了突飞猛进的发展。据博
客搜索Technorati统计,目前全球平均每5.8秒钟诞生一个博客。它是一个新
型的个人互联网出版工具,博客使用者可以很方便地用文字、链接、影音、图片
建立起个性化的网络世界。博客秉承了个人网站的自由精神,但是综合了激发创
造的新模式,使其更具开放和建设性。它作为一种新表达的方式,它的传播不仅
情绪,包括大量的智慧、意见和思想。某种意义上说,它也是一种新的文化现象,
博客的出现和繁荣,真正凸现网络的知识价值,标志着互联网发展开始步入更高
的阶段。
本系统是以Eclipse为开发平台,Oracle为数据库,Tomcat为应用服务器
实现的。
关键词:博客; Eclipse; Oracle;Tomcat
Personal Blog Management System Design and
Implementation
Abstract: BLOG is WEB LOG abbreviation, in brief come to say to is a network diary.It is BE put forward at the earliest stage by Jorn of the United States Barger in December, 1997, these blogs in the year world are advanced by leaps and bounds of development.Search a Technorati statistics according to the blog, the world is on the average born every 5.8 seconds currently blog.It is an of personal new Internet publication tool, the blog user can very expediently answer with the writing, chain,
the video, picture establishment rise characteristic network world.
The blog took orders the free spirit of personal website, but synthesized the new mode of stiring up the creation and made it have more to open and constructive.It is a kind of lately- expressed way, its dissemination not only emotion, including a great deal of intelligence, opinion and thought.Say on a certain meaning, it is also a kind of new cultural phenomenon, the emergence and prosperity of the blog, truely convex now the knowledge value of the network, mark that the Internet development starts following higher stage.
The system is developed with Eclipse, and uses Oracle as database, and uses Tomcat as application server.
Key word:blog;eclipse; oracle; tomcat
目 录
第一章 绪论 ......................................................错误~未定义书签。
第一节 研究现状 ...............................................................................1 第二节 主要研究的目的及内容 ........................................................2 第三节 研究方法及设计思路 ............................................................3 第二章 相关技术简介 .......................................................................5 第一节 JSP ........................................................................................5 第二节 Oracle数据库........................................错误~未定义书签。
第三节 JavaBean原理和机制 ...............................................................6 第四节 B/S模式分析 ........................................错误~未定义书签。
第三章 系统分析 ...............................................错误~未定义书签。
第一节 可行性分析 ...........................................错误~未定义书签。
第二节 系统开发步骤 ..................................................................... 11 第三节 业务流程分析 .....................................................................12 第四章 系统设计 .............................................................................13 第一节 概要设计 .............................................................................13 第二节 数据库设计 .........................................................................13 第三节 功能模块设计 .....................................................................15 第五章 系统实现 .............................................................................16 第一节 系统实现目标 .....................................................................16 第二节 具体实现 .............................................................................16 第六章 系统测试 .............................................................................23 第一节 测试的重要性及目的 ..........................................................23 第二节 测试的步骤 .........................................................................24 第三节 测试的主要内容..................................................................25 结论 ...................................................................................................26 参考文献............................................................................................27 致谢 ...................................................................................................28
第一章 绪论
第一节 研究现状
一(个人博客的发展现状
2006年11月3日,全球中文博客站点数量达到5230万,博客(Blogger)用户数达到1987万,平均每个博客(Blogger)用户拥有大约2.6个博客,博客站点数和博客用户数均比前一年有一定程度的增长,人均拥有博客数与前一年相比也略有上升。
在近二千万的中国博客用户中,每个用户平均每7.6天更新一次博客,活跃的博客用户数(一周内有更新的博客)达到302万,约15.2%的用户每周更新博客,同时,只有大约4.6%的用户每天更新博客。在用户更新的博客中,约42%的博客文章在500个汉字(1000个字节)之内,500~1000个汉字(1000~2000个字节)的博客文章占约16.5%,越是长篇大论的文章在博客中所占比例则越少。
用户更新博客的时间大部分集中在白天,约48.5%的用户选择在工作时间(上午10点~下午6点)更新自己的博客,其中,在临近下班前(下午4点~6点)博客更新数达12.4%,而约16.3%的用户选择在晚上7点~10点更新博客,为全日最高峰,晚上10点之后时间更新博客的数量逐渐减少。
2006年,拥有独立域名的博客站点,在博客站点总数中占约0.43%,这表明,绝大多数的用户将博客服务商作为他们的博客站点首选。而这一年,中国大陆博客服务商(BSP)持续大幅增长,博客服务商数量达到1460家,与去年同期相比增长近55%;大型网络公司如搜狐、百度纷纷推出相应的博客服务,而新兴的博客服务站点如51.com也开始崭露头角。过去一年中,中国博客发展速度整体趋缓,博客用户增长数较之去年有小幅上升,博客服务商之间的市场竞争日趋激烈,与早期提供博客服务的运营商相比,传统门户及大型公司的博客服务已占据市场主导地位。总体而言,2006年中国博客发展呈现5大特点:专业博客如医药类、教育类等增长较快,博客圈成为社区发展新方向;博客服务商(BSP)死亡比例逐渐增高,2005年Top100服务商中,近20%的站点已经关闭或终止服务;博客服务商(BSP)开始逐渐支持手机访问和发贴,发展迅速;综合博客服务商(BSP)增长很快,越来越多的服务商开始提供音频、视频博客等功能;利用博客进行排名作弊的站点越来越多,06年出现爆炸性增长,其中小型博客服务商(BSP)尤为突出。
现今,博客网站已经由06年的风风火火变的平淡,通过各种方式融入了我们的生活,成为了我们表现自己的主要方式。它们大部分是由简短而且经常更新的帖子构成,所有文章都是按照年份和日期排列。看上去平淡无奇,毫无可炫耀之处,但它让每个人零成本、零维护地创建自己的网络媒体,每个都可以随时把
1
自己的思想火花和灵感更新到博客站点上。
个人BLOG目前面临的主要问题:由于文化市场监督的不利,势必会造成一些淫秽的内容广泛传播于网路,这就需要文化部门的有力监督。
第二节 主要研究的目的及内容
本课题的目的是实现一个博客网站
通常博客网站是由简短而且经常更新的帖子构成,所有文章都是按照年份和日期排列,有些类似斑竹的日记。看上去平淡无奇,毫无可炫耀之处,但它可以让每个人零成本、零维护地创建自己的网络媒体,每个都可以随时把自己的思想火花和灵感更新到博客站点上。
零机制:博客属于个人所有,是自发建立和非正式的建设。BSP不能对博客发号施令。
零技术:博客不需要作网站的专业知识,可以像发邮件一样简单地实现博客
网页的呈现。技术的极度简化,包括架构和申请博客网站、编辑、
上传和修改内容等。
零成本:任何一个人都可以像申请免费邮件般免费申请自己的博客网站。不
需要注册域名的成本,不需要租用服务器空间的成本,不需要许多
软件工具的成本。
零编辑:博客用户就是编辑,即时写作、即时发布、自我检查。这形成了与
传统写作截然不同的“体验”,真正实现了作者“零磨损”的开放
式写作。
零形式:博客页面的表现形式和文章内容的表现方式十分灵活,没有特定形式。
与个人主页相比较,博客是使用方便的、交互性强。与传统的电子邮件、BBS和ICQ这三种互联网沟通方式相比,博客是一种较严肃的沟通平台。BBS公共匿名性很强,而个人性很弱,因此缺乏约束。电子邮件和ICQ则是多用于个人间的通讯,而博客是个人性和公共性的结合。博客是个人在网上展示自己、与别人沟通交流的综合平台,它的管理比BBS简单的多。
设计实现一个简单的基于J2EE架构的个人博客系统。要求提供针对个人用户的信息管理,好友管理,博文发布,博文回复等功能。
具体功能划分如下:
, 用户:注册、登录、退出、查看个人信息、修改个人信息、修改个人密
2
码,发布博文,回复博文,添加好友,删除好友,博文分类管理。
第三节 研究方法及设计思路
一、研究方法
本系统采用软件工程中的生存周期方法进行设计。
(一)需求分析
通过该需求分析的方法确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。
经过需求分析确定对系统的综合要求从系统的功能、性能、运行、以及将来可能提出的问题进行需求分析。必要时运用需求分析的软件工具验证需求分析。
(二)总体设计
总体设计采用软件工程最基本的总体设计方法也称为概要设计或初步设计,首先主要工作是通过这个设计阶段的工作划分出组成系统的物理元素——程序、文件、数据库、人工过程和文档等等。
其次进入总体设计的第二阶段是设计软件的结构,也就是要确定系统中每个程序是由那些模块组成的,以及这些模块相互间的关系。
具体过程是首先设想供选择的
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
,其次选取合理的方案、再次推荐最佳方案,之后进行功能分解、设计软件结构、数据库设计、制定相应的测试
计划
项目进度计划表范例计划下载计划下载计划下载课程教学计划下载
最终完成总体设计。
(三)详细设计
详细设计阶段的目标是确定应该怎样具体的实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出对系统的精确描述,从而在编码阶段可以把这个描述直接翻译成某种程序设计语言书写程序。
主要采用结构程序设计的方法,采用自顶向下逐步求精的设计方法和单入单出的控制结构。应用详细设计的工具程序流程图,绘制程序流程图进行详细设计,确定程序流程图从而完成详细设计。
(四)程序编写
开发工具:Eclipse8.5,Oracle,Jdk1.6,Tomcat6.0
采用Eclipse开发工具进行程序的编写、编译,安装了JDK 1.6,Tomcat6.0,Eclipse3.2和Oracle10g数据库,并配置好了开发环境。
(五)软件测试
与开发过程类似,测试过程也必须分步骤进行,每个步骤在逻辑上是前一个步骤的继续。大型软件系统通常由若干个子系统组成,每个子系统又由若干个模
3
块组成。因此,大型软件系统的测试基本上由下述几个步骤组成: , 模块测试:在这个测试步骤中所发现的往往是编码和详细设计的错误。 , 子系统测试:这个步骤着重测试模块的接口。
, 系统测试:在这个测试步骤中发现的往往是软件设计中的错误,也可能发现需求说明中的错误。
, 验收测试:在这个测试步骤中发现的往往是系统需求
说明书
房屋状态说明书下载罗氏说明书下载焊机说明书下载罗氏说明书下载GGD说明书下载
中的错误。 (六)运行与维护
, 可执行程序正确性维护:该系统为web服务,可执行程序即为网页,如出现错误则可重新连接。
, 据库文件正确性维护:系统提供数据库备份功能,可以进行备份、还原。 , 系统配置文件正确性维护:系统配之文件如出现错误,则以原有默认模式取代当前出错配置文件。
平时要进行简单的系统维护,比如检查Tomcat的运行情况,数据库与JSP的链接,数据库表的完整性,环境搭建的情况等。
二、设计思路
, 系统应符合个人博客管理的规定,满足用户日常使用的需要,并达到操作过程中的直观,方便,实用,安全等要求;
, 系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充,维护;
, 系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改、备份等操作;
, 尽量采用现有软件环境及先进的管理系统开方案,从而达到充分利用现有资源,提高系统开发水平和应用效果的目的。
4
第二章 相关技术简介
第一节 JSP
JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
。它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。 用JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其他操作系统上运行。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP与Java Servlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
JSP主要优势如下:
, 一次编写,到处运行。
在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改。
, 系统的多平台支持。
基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,
在任意环境中扩展。相比JSP/PHP的局限性是显而易见的。
, 强大的可伸缩性。
从只有一个小的war文件就可以运行Servlet/JSP,到由多台服务器进行集
群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器
到无数台服务器,Java显示了一个巨大的生命力。
, 多样化和功能强大的开发工具支持。
这一点与JSP很像,Java已经有了许多非常优秀的开发工具,而且许多可
以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。
鉴于以上,决定使用JSP技术进行系统开发和设计。
5
第二节 Oracle
与无压缩格式下存储数据相比,新的Oracle数据压缩技术能够确保以较小的开销节省三倍以上的磁盘存储空间。这一点比仅节省磁盘空间要具有更大的优势,因为它能够使企业节约更多的开支,以便有更多的资金来巩固自己的地位。
自动诊断知识库(Automatic Diagnostic Repository,ADR)是专门针对严重错误的知识库。该知识库基本上能够自动完成一些以往需要由数据库管理员来手动完成的操作。
作为ADR的一部分,SQL性能分析器(SQL Performance Analyzer,SPA)是最让人惊喜的特性之一。SQL性能分析器是一个整体调整工具,管理员可以通过该工具在数据库上定义和重演(replay) 一个典型的工作负载,之后管理员可以调节整体参数来使数据库尽快的达到最佳性能——而这一任务同样也是许多年以来由数据库管理员手动完成的。
由于获得了最优的初始参数,数据库管理员就不需要调整数以万计的SQL语句。管理员需要做的就是给定一个典型的负载 ,由SPA根据历史记录来决定SQL的最终设置,而不用管理员来检测哪一个SQL设置是最合理的。
多年以来,甲骨文公司一直在努力完成地另一个新特性便是“联机更新”在不down机的情况下更新软件)。实际上,很难从软件工程的角度来设计一个(
运行时能自动升级的软件。由于真正的应用集群(Real Application Clusters ,RAC)特性,甲骨文公司再一次对其他的数据库供应商造成了更大的压力。在实际的使用过程中,数据库产品的用户总是希望产品有持续的高可用性,这并不是说只需满足下次补丁更新之前的3年的时间就够了。
自动内存管理特性可以追根溯源至Oracle 9i,那时甲骨文公司推出首款自动调节存储池的工具。AMM工具其实就是一种探测机制。实际上,Oracle 11g 有很多随机访问存储池,当存储管理模式(Access Management Mode,AMM)探测到某个存储池中已满时,它将整个随机存储器(Random Access Memory,RAM)从一个区域分配到其他相对合适的区域。
第三节JavaBean原理和机制
JSP的一大特点就是与JavaBeans的结合,而JSP与JavaBeans结合的一个突出的优点是页面显示和业务逻辑的分离。这可以使团队协作的更好,开发出更高质量的站点。
JavaBean是一种可以重用的Java组件,它类似于COM,在JSP程序中常用
6
来封装事物逻辑、数据库操作等,可以很好的实现业务逻辑和前台程序的分离,使得系统具有更好的健壮性和灵活性。
事件处理是JavaBeans体系结构的核心之一。通过事件处理机智,可以让一些组件作为事件源,发出可被描述环境或其他组件接受的事件。这样,不同的组件就可在构造工具内组合在一起,组件之间通过事件的传递进行通信,构成一个应用。从概念上讲,事件是一种在“源对象”和“监听对象”之间、某种状态发生变化的传递机智。事件有许多不同的用途,如:鼠标事件、窗口边界改变事件、键盘事件等。在Java和JavaBeans中则是定义了一个一般的、可扩充的事件机制,它能够:
1).对事件类型和传递模型的定义和扩充提供一个公共框架,并适合于广泛的应用。
2).与Java语言和环境有较高的集成度。
事件能描述环境捕获和被激发。能使其他构造工具采取某种技术在设计时直接控制事件,遗迹控制事件源和事件监听者之间的联系。事件本身不依赖于复杂的开发工具。
特别的,事件机制还应当:
1).能够发现制定的对象类可以生成的事件。
2).能够发现制定的对象类可以观察监听到的事件。
3).提供一个常规的注册机制,允许动态操纵事件源与事件监听者之间的关系。
4).不需要其他的虚拟机和语言即可实现。
5).事件源与监听者之间可进行高效的事件传递。
6).能完成JavaBean事件模型与相关的其他组件体系结构事件模型的中立映射。
JSP和ASP.NET同样是网站开发中常用的开发工具。但是,ASP是微软的产品,其应用只能是在Windows平台上,移植性差,而且以源代码的形式存放在服务器端,安全性差。每次由服务器解释运行,运行效率不高。Jsp页面文件执行时被编译成字节代码,由客户端流览的Java虚拟机解释执行,不再是源代码,因此执行效率和安全性高。将数据库连接的重要信息存放在JavaBean文件后,可以编译成虚拟机才能解释的字节代码,确保了数据库的安全。
在ASP技术里,通过Web页面要实现一些特定的功能比较困难,比如基于网页的报表,打印实现起来就比较麻烦。ASP提供的解决方案是自己开发组件,通过在服务器端注册组件,成为独立的可以重复利用的模块供读者调用。因此要求读者需要掌握比较复杂的变成语言的开发技术。在JSP开发技术里,可以通过开发JavaBean文件实现同样的功能,JavaBean不需要注册,只要放置在相应的目录下就可以运行。可以实现ASP的COM组件同样的功能。此外JSP推出主要就是考虑到平台的无关性。JSP代码可以在APACHE、IIS等服务器上执行,支持大部分操作系统。JSP继承JAVA技术的优点:一次运行,处处运行。
7
第四节 B/S模式分析
C/S模式主要由客户应用程序(Client)、服务器管理程序(Server)和中间件(middleware)三个部件组成。客户应用程序是系统中用户与数据进行交互的部件。服务器程序负责有效地管理系统资源,如管理一个信息数据库,其主要工作是当多个客户并发地请求服务器上的相同资源时,对这些资源进行最优化管理。中间件负责联结客户应用程序与服务器管理程序,协同完成一个作业,以满足用户查询管理数据的要求。
B/S模式是一种以Web技术为基础的新型的MIS系统平台模式。把传统C/S模式中的服务器部分分解为一个数据服务器与一个或多个应用服务器(Web服务器),从而构成一个三层结构的客户服务器体系。
Controller(Servlet)
RequestB
R
O
W
S
E
RResponse
Model(JavaBean)View(JSP)
图2-1 B/S三层结构图
第一层客户机是用户与整个系统的接口。客户的应用程序精简到一个通用的浏览器软件,如Netscape Navigator,微软公司的IE等。浏览器将HTML代码转化成图文并茂的网页。网页还具备一定的交互功能,允许用户在网页提供的申请表上输入信息提交给后台,并提出处理请求。这个后台就是第二层的Web服务器。
第二层Web服务器将启动相应的进程来响应这一请求,并动态生成一串HTML代码,其中嵌入处理的结果,返回给客户机的浏览器。如果客户机提交的
8
请求包括数据的存取,Web服务器还需与数据库服务器协同完成这一处理工作。
第三层数据库服务器的任务类似于C/S模式,负责协调不同的Web服务器发出的SQ请求,管理数据库。
B/S模式首先简化了客户端。它无需象C/S模式那样在不同的客户机上安装不同的客户应用程序,而只需安装通用的浏览器软件。这样不但可以节省客户机的硬盘空间与内存,而且使安装过程更加简便、网络结构更加灵活。假设一个企业的决策层要开一个讨论库存问题的会议,他们只需从会议室的计算机上直接通过浏览器查询数据,然后显示给大家看就可以了。甚至与会者还可以把笔记本电脑联上会议室的网络插口,自己来查询相关的数据。其次,它简化了系统的开发和维护。系统的开发者无须再为不同级别的用户设计开发不同的客户应用程序了,只需把所有的功能都实现在Web服务器上,并就不同的功能为各个组别的用户设置权限就可以了。各个用户通过HTTP请求在权限范围内调用Web服务器上不同处理程序,从而完成对数据的查询或修改。现代企业面临着日新月异的竞争环境,对企业内部运作机制的更新与调整也变得逐渐频繁。相对于C/S,B/S的维护具有更大的灵活性。当形势变化时,它无须再为每一个现有的客户应用程序升级,而只需对Web服务器上的服务处理程序进行修订。这样不但可以提高公司的运作效率,还省去了维护时协调工作的不少麻烦。如果一个公司有上千台客户机,并且分布在不同的地点,那么便于维护将会显得更加重要。
再次,它使用户的操作变得更简单。对于C/S模式,客户应用程序有自己特定的规格,使用者需要接受专门培训。而采用B/S模式时,客户端只是一个简单易用的浏览器软件。无论是决策层还是操作层的人员都无需培训,就可以直接使用。B/S模式的这种特性,还使 MIS系统维护的限制因素更少。
最后,B/S特别适用于网上信息发布,使得传统的MIS的功能有所扩展。这是C/S所无法实现的。而这种新增的网上信息发布功能恰是现代企业所需的。这使得企业的大部分书面文件可以被电子文件取代,从而提高了企业的工作效率,使企业行政手续简化,节省人力物力。
鉴于B/S相对于C/S的先进性,B/S逐渐成为一种流行的MIS系统平台。各软件公司纷纷推出自己的Internet方案,基于Web的财务系统、基于Web的ERP。一些企业已经领先一步开始使用它,并且收到了一定的成效。 B/S模式的新颖与流行,和在某些方面相对于C/S的巨大改进,使B/S成了MIS系统平台的首选。
经过综合比较,本个人博客系统决定采用B/S结构模式设计开发。
9
第三章 系统分析
第一节 可行性分析
一、经济可行性
经济可行性研究是对组织的经济现状和投资能力进行分析,对系统建设运行和维护费用进行估算,对系统建成后可能取得的社会和经济效益进行估计。由于本系统是作为毕业设计由我们自己开发的,在经济上的投入甚微,系统建成之后将为今后实现系统功能提供很大的方便,估算新系统的开发费用和今后的运行、维护费用,估计新系统将获得的效益,并将费用与效益进行比较,看是否有利。开发、运行和维护费用主要包括:
购买和安装设备的费用:计算机硬件、系统软件、机房、电源、空调等;软件开发费用:若由实习单位的技术人员开发,则该项费用可以计入下面的人员费用一项;人员费用:系统开发人员、操作人员和维护人员的工资、培训费用等;消耗品费用:系统开发所用材料、系统正常运行所用消耗品,例如水、电费,打印纸、软盘、色带等开支。所有开支都不大,所以经济上是可行的。 二、技术可行性
技术可行性要考虑现有的技术条件是否能够顺利完成开发工作,软硬件配置是否满足开发的需求等。个人博客系统用的是JSP开发语言,调试相对简单,当前的计算机硬件配置也完全能满足开发的需求,因此在技术上是绝对可行的。软件方面:由于目前B/S模式软件相对发展成熟,故软件的开发平台成熟可行,它们速度快、容量大、可靠性能高、价格低,完全能满足系统的需求。 三、运行可行性
对新系统运行后给现行系统带来的影响(包括组织机构、管理方式、工作环境等)和后果进行估计和评价。同时还应考虑现有管理人员的培训、补充,分析在给定时间里能否完成预定的系统开发任务等。
运行可行性是对组织结构的影响,现有人员和机构和环境对系统的适应性及人员培训补充计划的可行性。当前我国银行信息化技术已经相当普及,各类操作人员水平都有相当的高度,所以在运行上是可行性的。
本系统的开发,是典型的Mis开发,主要是对数据的处理,包括数据的收集,数据的变换,及数据的各种报表形式的输出。采用流行的JSP+Oracle体系,已无技术上的问题。
10
四、时间可行性
从时间上看,在两个月的时间里学习相关知识,并开发个人博客系统,时间上是有点紧,但是不是不可能实现,通过两个多月的努力功能基本实现。
五、法律可行性
, 所有技术资料都为合法。
, 开发过程中不存在知识产权问题。
, 未抄袭任何网站,不存在侵犯版权问题。
, 开发过程中未涉及任何法律
责任
安全质量包保责任状安全管理目标责任状8安全事故责任追究制幼儿园安全责任状占有损害赔偿请求权
。
综上所述,本系统有较好的可维护性、可靠性、可理解性、效率。易于用户理解和操作。可维护性包括了可读性、可测试性等含义。可靠性通常包括正确性和健壮性。开发过程中,在各种矛盾的目标之间作权衡,并在一定的限制的条件下(经费、时间、可用的软、硬件资源等),使上述各方面最大限度的得到满足。
第二节 系统开发步骤
一般说来,管理信息系统的建立与应用可以划分成总体规划、系统开发和系统运行三个阶段,其中系统开发阶段还可进一步分为系统分析、系统设计和系统实施等工作环节。上述各个阶段排列成一个严格的线性开发序列,在每个工作阶段均产生完整的技术文档作为下一阶段工作的指导和依据,每一阶段都应对文档进行评审,确信该阶段工作已完成并达到要求后才能进入下一阶段,同时在以后的工作中不能轻易改变前面经过评审的成果。
上述开发方式的主要优点是便于开发工作的组织和管理,并且可大大降低管理信息系统开发的复杂性。国内外许多系统开发的实例都证明这是一种行之有效的开发方式。
国外曾有人对一些软件项目开发各阶段的工作量进行了统计,结果表明,在开发过程中各工作阶段所占全部工作量的比重分别达到系统分析:系统设计:编程:模块调试:系统调试,20%:15%:20%:25%:20%。由此可见,程序编写在开发工作中只占很小比例,而调试工作却占整个开发工作量的一半左右,因此“系统开发就是编程”的习惯说法显然是片面的。另据统计,在建立管理信息系统的三个阶段中,总体规划和系统开发阶段的工作量约占整个工作量的2/3,而运行、维护阶段要占1/3,这说明一个管理信息系统开发后,仍应十分重视它的维护工作,以便使系统不断完善并充分发挥其作用。
11
第三节 业务流程分析
在对系统的组织结构和功能进行分析时,需从一个实际业务流程的角度将系统调查中有关该业务流程的资料都串起来作进一步的分析。业务流程分析可以帮助我们了解该业务的具体处理过程,发现和处理系统调查工作中的错误和疏漏,修改和删除原系统的不合理部分,在新系统基础上优化业务处理流程。
本系统业务流程图如下图所示:
图3-1 业务流程图
12
第四章 系统设计
第一节 概要设计
在系统需求分析阶段,搞清楚了软件“做什么”的问题,形成了目标系统的逻辑模型。现在我们所要做的就是要把软件“做什么”的逻辑模型变换为“怎么做”的物理模型,即着手实现系统的需求。首先,我们需要描述的是系统的总的体系结构。
系统的概要设计中最重要的就是系统的模块化。模块化是指解决一个复杂问题时自项向下逐层把软件系统划分成若干个模块的过程。每个模块完成一个特定的功能,所有的模块按某种方法组织起来,成为一个整体,完成整个系统所要求的功能。
将系统划分为多个模块是为了降低软件系统的复杂性,提高可读性、可维护性,但模块的划分不能是任意的,应尽量保持其独立性。也就是说,每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单,即尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。
在系统的概要设计中采用结构化设计以需求分析阶段产生的数据流图为基础,按一定的步骤映射成软件结构。首先将整个系统化分为几个小问题,小模块,在系统中,设计了用户管理、好友管理、博客管理、博客分类等管理模块。然后,进一步细分模块,添加细节。
第二节 数据库设计
一、数据库E-R图
E-R图为实体-联系图,它提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。构成E-R图的基本要素是实体型、属性和联系,其表示方法为实体型:用矩形表示,矩形框内写明实体名;属性:用椭圆形表示,并用无向边将其与相应的实体连接起来;多值属性由双线连接;主属性名称下加下划线;联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型。
本系统的E-R图如下图所示:
13
图4-1 数据库E-R图
二、数据库表设计
表4-1 userinfo表(用户信息)
表4-1 blog-category表(博文分类)
表4-1 blog-post表(博文)
表4-1 blog-comments表(博文回复)
14
第三节 功能模块设计
本系统将系统主要划分为两大模块:用户功能模块和管理员功能模块。 一、用户功能模块
出于安全性和业务可维护性的目的,用户在进入这个系统之前必须首先登陆,同时新用户可以进行注册操作。进入用户功能界面后,用户可以进行个人信息管理,好友管理,博文管理,博文分类等操作。个人信息管理包括个人信息修改,密码修改;好友管理包括添加好友,查看好友;博文管理包括写博文,查看博文;分类管理包括添加分类,查看分类。
本系统功能模块图如下图所示:
首页
登陆 注册
我的主个人信好友管博文管分类管退出
页 息管理 理 理 理
图4-2 系统功能模块图
15
第五章 系统实现
第一节 系统实现目标
设计实现一个简单的基于J2EE架构的个人博客系统。要求提供针对个人用户的信息管理,好友管理,博文发布,博文回复等功能。
具体功能划分如下:
, 用户:注册、登录、退出、查看个人信息、修改个人信息、修改个人密
码,发布博文,查看博文(修改博文,删除博文),回复博文,添加好友,
查看好友(查看好友,删除好友),添加博文分类,查看博文分类(修改博文
分类,删除博文分类)。
第二节 具体实现
一、用户登录界面
对于一个完整的个人博客系统,不仅要求功能强大、操作简单,还要有良好的设计风格和另人爽目的界面。登录界面对于整个系统来说是非常重要的,因为它设置了进入本系统的用户和口令,防止非法用户进入系统,破坏系统安全和所保存的数据,只有合法的管理员在输入正确的密码后方可进入系统,否则将提示密码或用户名输入错误,并询问用户是否重新输入。这样就对使用者有了限制,增加了系统的安全性和保密性,便于控制和管理,有利于系统的维护。
16
图5-1 用户登录
主要代码如下:
二、新用户注册
本模块主要实现新户注册功能。如下图所示:
图5-3 新用户注册
18
三、我的主页
本模块主要实现显示用户主页信息的功能。如下图所示:
四、修改个人信息
本模块主要实现修改个人信息功能。如下图所示:
19
五、修改密码
本模块主要实现修改用户密码功能。如下图所示:
修改密码验证:
六、发布博文
本模块主要实现博文发布功能。如下图所示:
20
七、查看博文
本模块主要实现查看当前用户所有博文信息的功能。如下图所示:
八、添加好友
本模块主要实现对好友的查看和添加的功能。如下图所示:
九、查看好友
本模块主要实现查看用户好友和删除好友的能。如下图所示:
十、添加分类
本模块主要实现添加博文分类的功能。如下图所示:
21
十一、查看分类
本模块主要实现对博文分类的修改和查看的功能。如下图所示:
十二、回复博文
本模块主要实现对博文的回复功能。如下图所示:
22
第六章 系统测试
第一节 测试的重要性及目的
一、测试的重要性
在设计系统的过程中,存在一些错误是必然的。对于语句的语法错误,在程序运行时自动提示,并请求立即纠正,因此,这类错误比较容易发现和纠正。但另一类错误是在程序执行时由于不正确的操作或对某些数据的计算公式的逻辑错误导致的错误结果。这类错误隐蔽性强,有时会出现,有时又不出现,因此,对这一类动态发生的错误的排查是耗时费力的。
软件的测试在软件生命周期中占据重要的地位,在传统的瀑布模型中,软件测试学仅处于运行维护阶段之前,是软件产品交付用户使用之前保证软件质量的重要手段。近来,软件工程界趋向于一种新的观点,即认为软件生命周期每一阶段中都应包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正,如果不在早期阶段进行测试,错误的延时扩散常常会导致最后成品测试的巨大困难。
事实上,对于软件来讲,不论采用什么技术和什么方法,软件中仍然会有错。采用新的语言、先进的开发方式、完善的开发过程,可以减少错误的引入,但是不可能完全杜绝软件中的错误,这些引入的错误需要测试来找出,软件中的错误密度也需要测试来进行估计。测试是所有工程学科的基本组成单元,是软件开发的重要部分。自有程序设计的那天起测试就一直伴随着。统计表明,在典型的软件开发项目中,软件测试工作量往往占软件开发总工作量的40,以上。而在软件开发的总成本中,用在测试上的开销要占30,到50,。如果把维护阶段也考虑在内,讨论整个软件生存期时,测试的成本比例也许会有所降低,但实际上维护工作相当于二次开发,乃至多次开发,其中必定还包含有许多测试工作。
在实践中,软件测试的困难常常使人望而却步或敷衍了事,这是由于对测试仍然存在一些不正确的看法和错误的态度,这包括:
, 认为测试工作不如设计和编码那样容易取得进展难以给测试人员某种成
就感;
, 以发现软件错误为目标的测试是非建设性的,甚至是破坏性的,测试中
发现错位是对责任者工作的一种否定;
, 测试工作枯燥无味,不能引起人们的兴趣;
, 测试工作是艰苦而细致的工作;
23
, 对自己编写的程序盲目自信,在发现错误后,顾虑别人对自己的开发能
力的看法。
这些观点对软件测试工作是极为不利的,必须澄清认识、端正态度,才可能提高软件产品的质量。
二、测试的目的
如果测试的目的是为了尽可能多地找出错误,那么测试就应该直接针对软件比较复杂的部分或是以前出错比较多的位置。
, 软件测试是为了发现错误而执行程序的过程;
, 测试是为了证明程序有错,而不是证明程序无错误;
, 一个好的测试用例是在于它能发现至今未发现的错误;
, 一个成功的测试是发现了至今未发现的错误的测试。
这种观点可以提醒人们测试要以查找错误为中心,而不是为了演示软件的正确功能。但是仅凭字面意思理解这一观点可能会产生误导,认为发现错误是软件测试的唯一目,查找不出错误的测试就是没有价值的,事实并非如此。
首先,测试并不仅仅是为了要找出错误。通过分析错误产生的原因和错误的分布特征,可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。同时,这种分析也能帮助我们设计出有针对性地检测方法,改善测试的有效性。其次,没有发现错误的测试也是有价值的,完整的测试是评定测试质量的一种方法。
第二节 测试的步骤
与开发过程类似,测试过程也必须分步骤进行,每个步骤在逻辑上是前一个步骤的继续。大型软件系统通常由若干个子系统组成,每个子系统又由若干个模块组成。因此,大型软件系统的测试基本上由下述几个步骤组成:
, 模块测试 在这个测试步骤中所发现的往往是编码和详细设计的错误。
, 系统测试 在这个测试步骤中发现的往往是软件设计中的错误,也可能发
现需求说明中的错误。
, 验收测试 在这个测试步骤中发现的往往是系统需求说明书中的错误。
24
第三节 测试的主要内容
一、单元测试
单元测试集中在检查软件设计的最小单位—模块上,通过测试发现实现该模块的实际功能与定义该模块的功能说明不符合的情况,以及编码的错误。 二、集成测试
集成测试是将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的问题。如一个模块与另一个模块可能有由于疏忽的问题而造成有害影响;把子功能组合起来可能不产生预期的主功能;个别看起来是可以接受的误差可能积累到不能接受的程度;全程数据结构可能有错误等。 三、确认测试
确认测试的目的是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是确认测试的任务,即软件的功能和性能如同用户所合理期待的那样。
四、系统测试
软件开发完成以后,最终还要与系统中其他部分配套运行,进行系统测试。包括恢复测试、安全测试、强度测试和性能测试等。
单独对系统的测试主要从以下几方面入手:
, 功能测试:测试是否满足开发要求,是否提供设计所描述的功能,是否
用户的需求都得到满足。功能测试是系统测试最常用和必须的测试,通常还
会以正式的软件说明书为测试标准。
, 强度测试及性能测试:测试系统能力最高实际限度,即软件在一些超负
荷情况下功能实现的情况。
, 安全测试:验证安装在系统内的保护机构确实能够对系统进行保护,使
之不受各种非常的干扰。针对本系统主要是对权限系统的测试和对无效数
据、错数据、和非法数据干扰的能力的测试。
经过上述的测试过程对系统进行测试后,本个人博客系统基本满足开发的要求,测试宣告结束。
25
结论
几个月来忙碌紧张而又有条不紊的毕业设计,使我有机会对本专业的基本理论、专业知识和基本技术有了更深入的了解和体会,使我在四年中所学到的知识得到了系统和升华,真正达到了学以致用。
一、对管理信息系统的体会
管理信息系统是一门融管理科学、信息科学、系统科学、计算机科学与现代通信技术为一体的一门综合性边缘学科。它是运用系统的方法以计算机和现代通信技术为基本信息处理手段和工具的,能为管理决策提供信息服务的人—机系统.它可以实现数据处理功能、预测功能、计划功能、控制功能和辅助决策功能。管理信息系统的开发是一项复杂的系统工程,必须严格的按照系统规划、系统分析、系统设计、系统实施、系统运行与评价的开发步骤来进行。
在系统开发之前,必须了解该系统的特点、适用范围以及使用者需要一个什么样的系统,以此作为基础为开发系统准确定位,然后对使用者所需实现的功能进行分析总结,根据使用者的实际要求来给系统设计一个初步方案。系统的开发不仅是要实现对数据处理的及时与正确,而且要考虑系统是否具有控制功能,及时将数据反馈给操作者,以进行监测和协调,保证系统的正常运行;也要考虑是否具有预测功能,运用一定的数学方法利用历史的数据对未来进行预测的工作。
二、设计实践上的体会
在设计的过程中,我掌握了很多JSP的编程知识,并对这种成熟并广泛应用的技术进行了深入的学习。设计的过程也是一个再学习的过程,在遇到问题的时候我尽量自己想办法解决,这在很大程度上激发了我们的自学能力;在没有办法解决的情况下,认真的向老师请教,从老师那里我学到了很多的知识,老师对我的指导起到了画龙点睛的作用。
以往我们曾经有过多次设计的体会,但只是设计一个模块或一个小系统,而这一次毕业设计是综合所学的管理和计算机的知识来设计一个适合运行管理的进销存系统软件。要想设计使用户满意,就需要我们付出更多的努力。我在设计中经常出现一些问题不知该如何解决,在此时许多同学给予了我们帮助。在设计的过程中增加了于实际接触的机会,不仅培养了我的自学和编程能力,让我在即将离开学校进入社会之前有了一定的资本,提高了我与人沟通的能力。 程序设计中的体会
在我的程序设计过程中,我充分的体会到了“实践出真知”这一点,书本上的知识是不够的,只有把理论与实践相结合才能够真正的学到知识。一个管理信息系统的设计,不可能一步到位,还需要不断的完善和补充。同时,系统中还存在许多问题,有待在日后的使用中发现和解决。编程前的深思熟虑是减少程序调
26
试工作量的重要方法,只有进行充分考虑,才会减少调试过程中的工作量。虽然在开始写程序之前我们做了多的准备工作,但在真正的写程序时仍然发现许多问题,有些问题是分析时的疏漏,有些则是如果不做无论如何也想不到的。
参考文献:
[1] 孔祥玖.管理信息系统解决方案[M].北京:化学工业出版社,2002. [2] 玛丽.J.克罗宁.互联上的银行与金融[M].北京:经济科学出版社,2002 [3] 谢康,肖静华.网络银行[M].吉林:长春出版社,2000.
[4] 阎宏.Java与模式[M].北京:电子工业出版社,2002.
[5] Eckel.B.Java编程思想(第二版)[M].北京:机械工业出版社,2002. [6] 吴涛,姜华.网站全程设计技术[M].北京:清华大学出版社,2003. [7] 萨师煊,王珊.数据库系统概论[M].北京:高等教育出版社,2001. [8] Abraham Silberschatz,Henry F.Korth,S.Sudarshan.数据库系统概念[M].北京:机械工
业出版社,2004.
[9] 王家华.软件工程[M].沈阳:东北大学出版社,2001.
[10]吕立坚,赵明,李静滨等.基于JNDI的分布式对象技术[J].广西科学院学报,2004年
04期.
[11]张云涛,龚玲.精通Eclipse[M].北京:电子工业出版社,2005. [12]张宏展,蔡宗琰,吴欣.实战J2EE应用开发[M].北京:电子工业出版社,2004. [13]Ken Arnold.The Java Programming Language Third Edition[M].北京:中国电力出版社,2003.
[14]Meilir Page-Jones.UML面向对象设计基础[M].北京:人民邮电出版社,2004. [15]Cay S.Horstnmann,Gary Cornell.Core Java2 VolumeI:Fundamentals[M]. Prentice Hall
PTR,2002.
27
致谢
在本次毕业设计过程中,我首先要感谢指导老师王金伟王老师,王老师的悉心指导和大力支持,在总体结构、功能的把握上给予了我非常大的帮助,同时王老师给我们提供了非常优越的设计环境,并对我在编程、数据库设计等细节工作上给予了耐心的指导,对于我顺利完成这次毕业设计起到了关键性的作用。
我还要感谢我的母校,以及在大学四年生活中给予我关心和帮助的老师和同学,是他们教会了我专业的知识和做人的道理。通过这次毕业设计我还明白了作为一名计算机专业的大学毕业生,我们要会的不仅仅是编写代码,更重要的是要有整体把握系统设计的能力。我会在以后的工作和学习中不断完善自己,为我最热爱的母校争光,为自己翻开辉煌的新篇章。
转眼间,大学生活即将结束,回首过去四年的大学生活,真是有苦也有乐,然而更多的则是收获,感谢母校的各位老师不但无私地传授给我们知识,也教会了我们如何做人。管理信息系统专业的毕业设计任务繁重,但正是在这几个月紧张而充实的设计中,我感到自己的知识得到了一次升华,我相信:我的毕业设计会给我的四年大学画上一个圆满的句号。
内部资
料,
请勿外
传~
28
29