软件工程系统开发目标与设计目录第1章引言 (1)1.1系统开发的背景 (1)1.2系统开发的目标、意义 (1)1.3本文的组织 (2)第2章相关技术简介 (4)2.1系统开发平台及开发工具 (4)2.2工具和编程语言 (4)2.2.1 HERITRIX技术 (5)2.2.2H TMLPARSER技术 (6)2.2.3 JAVA语言 (6)2.2.4 JAVA IO流技术 (7)2.2.5JDBC技术 (8)第3章系统分析与设计 (9)3.1功能需求 (9)3.1.1系统数据流图 (9)3.1.2 系统状态图 (11)3.2功能介绍 (12)3.3概念结构 (13)3.3.1 概念结构设计 (13)3.3.2 逻辑结构设计 (14)第4章模块实现 (17)4.1爬虫模块 (17)4.1.1 设计事项 (17)4.1.2 操作界面 (17)4.1.3 核心代码 (23)4.2页面解析文本信息入库模块(HTMLPARSER) (29)4.2.1设计思想 (29)4.2.2操作界面 (29)4.2.3 核心代码 (31)4.3信息筛选上传、信息查看删除的模块 (34)4.3.1 设计思想 (34)4.3.2操作界面 (35)4.3.3 核心代码 (37)总结.................................... 错误!未定义书签。
第1章引言1.1 系统开发的背景信息在现代经济生活中的作用越来越大,对于个人而言,缺乏信息将导致很多机会的丧失。
与此同时,现在的大学生缺乏社会实践锻炼,自我竞争的意识在逐渐降低,而且社会上多数在校大学生沉迷于网络游戏,缺乏主动学习、参与竞争的意识。
当下社会,竞争与挑战是每一个人都将面对且必须面对的,比赛,是可以更好地证明自己的一个重要手段。
然而现今缺乏一个整合了所有比赛信息方便人们寻找的平台,学生获得信息的途径也总是少得可怜。
有一个属于自己的比赛信息集成系统成为亟待解决的问题。
缺少一个可以每天登陆系统,了解到当下最新的比赛资讯,能够分门别类的,整整有序的,及时全面的网站平台。
鉴于此想法,本次项目选择开发比赛信息集成系统。
希望通过比赛信息集成系统这个平台让大学生真正得到锻炼的机会,让他们认识到自己的真正价值,发现自己除了游戏之余还有更大的发展空间。
目前,国内同类的赛事信息类系统有“赛才网”。
赛才网偏社区、家园、群组,提供的范围较大且包含很多新闻信息;与赛事信息集成系统地不同在于,比赛信息集成系统要做的是以赛事信息提供为主,主打“方便、即时、全面”的概念,对赛事信息要求较高,讨论交流区为辅。
两者侧重点不一。
针对于此,此次项目致力打造一个服务于在校大学生的轻松、便捷、互动地参与各类竞赛活动的竞赛门户网站,致力于系统地收集和整理各个领域的各类赛事,为参赛者提供最优质的信息服务,使得来自全国各地的参赛选手可以相互学习分享心得,通过各种有意义的比赛不断提升自己。
希望通过此次开发的平台项目,能为广大学生及赛事爱好者提供全面、即时的赛事信息,在分享赛事资讯的同时提供一个交流、讨论的平台。
1.2 系统开发的目标、意义开发目标:本系统主要为全力打造一个服务于在校学生和在职人员等轻松、便捷、互动地参与各类竞赛活动的竞赛门户网站,为参赛者提供最优质的信息服务,来自全国各地的参赛选手可以相互学习分享心得,通过各种有意义的比赛不断提升自己。
系统中主要的开发包括赛事信息网站前台以及赛事网站后台两大部分。
其中前台中,本组开发主要集中于网站的开发,方便用户浏览下载信息;赛事论坛开发,用户可以分享赛事经验,共享赛事资源;用户中心开发,方便用户获得更多的赛事资源的权利;而后台,主要着重爬虫系统开发,半自动傻瓜式的获取全网更多赛事资源,整合成为本系统的资讯,赛事资源丰富,更受用户青睐;用户管理、论坛管理等等,系统地、有条理地管理前台信息,让系统健全运行。
通过前后台的整合,统一,协调地完成此次系统开发出分门别类的、整整有序的、及时全面的赛事网站平台系统开发能为在校的大学生提供最为全面、优质的赛事信息,为提高中国大学生的身心素质做出贡献。
主要表现在(1)有利于大学生正确认识自己,对自身成长产生紧迫感。
通过广泛的社会比赛,能让学生看到自己和市场需求之间的差距,看到自身知识和能力上存在的不足,比较客观地去重新认识、评价自我,逐渐摆正个人与社会、个人与人民群众的位置。
(2)有利于大学生对理论知识的转化和拓展,增强运用知识解决实际问题的能力。
大学生以课堂学习为主要接受方式,这对大学生来说非常重要,但这些理论知识并不代表大学生的实际技能,往往难以直接运用于现实生活之中。
比赛的方式使大学生接近社会,获得大量的感性认识和许多有价值的新知识,同时使他们能够把自己所学的理论知识与接触的实际现象进行对照、比较,把抽象的理论知识逐渐转化为认识和解决实际问题的能力。
(3)有利于发展大学生的组织协调能力和创新意识。
各种种类繁多的比赛没有课堂教学太多的束缚和校园生活的限制,学生们的积极性被充分调动起来,兴趣高涨,思维也空前的活跃起来,往往会产生一些创造性火花,在实践中勇于开拓、敢于创新。
(4)有利于提高大学生个人素养,完善个性品质。
在比赛中的困难和危险面前,要求大学生们具有一定的牺牲精神和坚强的品质。
赛事活动多了,并且能深入下去,大学生在积极参与的过程中,就会逐渐养成坚韧、顽强的优良品性,养成务实的学习态度和生活作风,不断提高自己、完善自己。
1.3 本文的组织正文包括四章:引言、系统相关技术、比赛信息集成系统的分析与设计、系统模块的设计与实现。
第1章为绪论,分为3节,主要介绍系统的开发背景、系统的开发目标及研究内容及本文的组织。
第2章为系统相关技术,分为2节,主要介绍系统相关技术:爬虫技术功能、页面解析的功能、以及信息筛选及录入的功能等的前提下进行介绍的,运用了heritrix、htmlparser、java io、java技术等实现。
第3章为比赛信息集成系统的分析与设计,分4节,包括系统模块设计,功能需求,数据需求,数据库设计。
第4章为个人模块设计与实现,分4节,包括比赛信息系统的爬虫模块、页面解析文本信息入库模块,以及信息筛选上传、信息查看删除的模块的设计。
第2章相关技术简介2.1 系统开发平台及开发工具硬件环境: 个人PC、电网、电信网络等。
软件环境: MyEclipse 8.0、Apache、Tomcat 5.5。
相关技术: Html+div+css+javascript;爬虫heritrix;页面解析技术:htmlparser;数据库sql;struts2模式。
相关工具:Microsoft SQL Server 2005、Macromedia dreamweaver 8、MyEclipse 8.0。
2.2 工具和编程语言在比赛信息集成系统中,运用了java+sql+heritrix+htmlparser等技术。
其中后台主要运用了heritrix爬虫技术。
首先,Heritrix[1]是一个纯由Java开发的、开源的Web网络爬虫,用户可以使用它从网络上抓取想要的资源。
它来自于。
Heritrix 最出色之处在于它的可扩展性,开发者可以扩展它的各个组件,来实现个性的抓取逻辑,比赛信息系统利用它实现更多赛事信息的全网爬取,取得更多的大学生赛事资源。
其次,Java[2] [3]语言是一种功能强大的编程语言,负责heritrix应用的业务逻辑的实现和对应用程序进行控制。
再次,Htmlparser是一个纯的java写的html(标准通用标记语言下的一个应用)解析的库,它不依赖于其它的java库文件,主要用于改造或提取html。
它能超高速解析html,而且不会出错。
就其他解析工具来说,htmlparser就是目前最好的html解析和分析的工具。
因此,从heritrix爬取下来的.Html 页面通过htmlparser遍历解析成.Txt文件,为赛事信息的筛选以及录入做好充足的准备。
因为htmlparser需要与数据库sql连接进行页面的解析存储,因此本系统在这里运用了JA V A中的资源文件(properties),通过加载app.properties文件实现遍历.Html文件解析并保存到指定的文件中。
再次,本系统还引入了java.io包完成最后解析成功的.Txt文件的读写工作。
JA V A IO[4]流可分为四大抽象类:字符流:ReaderWriter,字节流:InputStream(读数据)OutputStream(写数据)本系统中主要运用的是字节流与读写数据InputStream和OutputStream。
最后,而存入数据库则使用较为普遍的JDBC[5]技术,JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
下面就heritrix、htmlparser、java及java io、JDBC进行介绍2.2.1 heritrix技术heritrix[6]技术Heritrix是一个专门为互联网上的网页进行存档而开发的网页检索器。
它使用Java编写并且完全开源。
它主要的用户界面可以通过一个web流量器来访问并通过它来控制检索器的行为,另外,它还有一个命令行工具来供用户选择调用。
Heritrix是由互联网档案馆和北欧国家图书馆联合规范化编写于2003年初。
第一次正式发布是在2004年1月,并不断的被互联网档案馆和其他感兴趣的第三方改进。
到现在已经成为一个成熟的开源爬虫,并被广泛使用。
它的工作流程是一个循环,具体流程是:1 在预定的URI中选择一个。
2 从选择的URI的网址下载远程文件3 分析,归档下载到的内容4 从分析到的内容里面选择感兴趣的URI。
加入预定队列。
5 标记已经处理过的URI。
Heritrix的使用首先应该知道它的配置与使用,在这里,本系统用的是heritrix的1.14.4的版本,安装heritrix时值得注意的heritrix.properties文件。
在heritrix.properties中配置了大量与Heritrix运行息息相关的参数,这些参数主要是配置了Heritrix运行时的一些默认工具类、WebUI启动参数,以及Heritrix的日志格式等。
当第一次运行Heritrix时,只需要修改该文件,为其加入WebUI的登录名和密码。
接着可以实行简单的任务抓取工作,当然,简单的安装于抓取工作不能满足本系统的需求,因此需要更多的扩展与组件的开发,首先需要扩FrontierScheduler,将需要的所有链接的处理。