全部博文(180)
分类: 项目管理
2009-11-25 15:48:32
1 前言
1.1 课题的来源、目的、意义
本课题是软件工程课程的大型作业,要求用软件工程课程的规范化开发思想指导具体的大型软件开发。 从选题、需求分析、系统架构、实现平台的选取、功能模块划分、系统概要设计、系统详细设计、后台数据库设计、软件界面设计、代码编写调试、代码优化、系统测试等各方面,培养和规范自己的开发习惯,真正达到计算机软件的规范化、统一、高效地开发。
大四期间,学院开设了搜索引擎专业选修课,于老师向我们展示了WEB2.0时代搜索引擎的重要性,更让我深刻体味到搜索引擎对于今后IT世界,甚至整个信息化世纪的主导性影响。但是,我总觉得只有自己真正动手实现了一个搜索引擎,才能够说是真的理解搜索引擎的工作原理、实现机制、搜索过程和信息检索的优化。同时,我相信这么一个开发经历必将是我更容易应对WEB2.0时代和WEB3.0时代的挑战!
为此,我决定结合软件工程敏捷开发思想,自己动手实现自己的搜索引擎!
虽然百度、Google、搜狐等大型搜索引擎网站具有相当优越的搜索效果,但是毕竟那是以营利为目的产品,封闭核心算法,缺少广泛的技术支撑,对于新的信息时代的应变能力有待时间的检验! 百度实施竞价排名,这对于搜索结果有着很大的扭曲,可以预见的是,用户对于结果准确度的追求和引擎结果先天的偏颇之间的矛盾,将是百度未来的一大挑战!
因为我们每个人的搜索习惯不一样,我们的关注焦点也不一样,我们的搜索历史在大型网站里只是他们的一种数据采集方式,而百度等的搜索毕竟是面向大众的!
如果我们每个人有着自己的引擎,在进行搜索时,我们可以根据自己的需要更新自己的数据库以及相关网页的关键字,那样将是一件相当有意思的事! 在自己的引擎能力以内,它将更加符合个人的搜索习惯,也会优先考虑自己关注的领域,并且我们可以通过不断的修改而不断提高结果的准确度和满意度! 如果超过了自己的引擎的能力,那时,我们可以利用大型网站的搜索结果来更新自己的引擎 (实际上,我觉得很方便的一点是,我可以在该引擎上添加选择利用哪个大型网站的选项框,然后自动跳转到相应网站,这是符合用户习惯的!)
我们再把思维的角度放大来看,当我们每个人有着自己定制的引擎时,就相当于一定的计算能力,通过有线或无线通信,我们可以形成好友圈! 这样做的好处有以下几个:
一是,我们通过分散的计算能力,从而完成了复杂的搜索任务! (制约因素有以下几个: 单独引擎的计算能力有限,搜索结果的综合策略,通信延时是否可容忍,同一个圈内好友间的搜索习惯和不同好友圈的搜索习惯如何进行结果的综合!)
二是,如何为用户设计个性化的接口,同时为搜索效率提供保证! 个性化的接口设计:首要前提是用户操作的简洁和方便,这是搜索引擎的最为明显的优势! 第二,如何使得个性化的设计为搜索准确性提供信息来源(机器学习:学习指导); 第三,节点通信接口的设计,比如:如何管理好友圈,如 何设置权限,(我觉得,对于搜索引擎而言,此处的安全性比较好实现的啦!); 第四, 如何适应WEB3.0时代!
三是,如何利用云计算的方法,从而获得用户! 包括,搜索准确性,搜索效率(可容忍的时延),通信模块的设计也是相当重要的啦!