软件工程论文题目
软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科,我们看看下面的软件工程论文题目吧!
1、基于手机APP的中医移动健康管理平台探索
2、基于案例驱动法的软件工程课程影响因素实证分析
3、基于LAN的农业科技信息管理系统的研发
4、基于平板电脑的森林资源信息外业采集APP设计关键技术研究
5、基于物料的生产管理系统设计
6、ICE在模拟训练系统消息中间件中的应用
7、指纹考勤系统的设计与实现
8、基于Android平台的通用Adapter适配器的设计与实现
9、基于TMap的软件测试模型的分析研究
10、计算机软件开发技术现状及应用实践探究
11、基于SOC的智能野外目标监视和记录系统设计与实现
12、分析机械传动装置模块化设计系统的开发
13、舰船平台管理网络技术研究
14、基于分支相关性分析的不可达路径检测方法
15、基于求解开销预测的符号执行搜索策略研究
16、数字化装配管理系统研究与实现
17、基于小波神经网络对软件可靠性模型的研究
18、基于藏语学习的Android平台的研究与开发
19、基于交互技术移动端个人形象管理的应用与研发
20、基于JAVA+STRUTS的科技计划项目评估管理信息系统实现与安全设计
21、基于J2EE技术的计算机教研管理平台的设计与实现
22、采用COSMIC方法测量企业移动应用软件功能规模
23、基于Android平台的旅游系统的设计
24、基于SVG-JS技术的项目任务管理设计
25、基于凌一揆的中医药传承信息平台的构建
26、依托信息技术优化中药饮片发药流程
27、轨道交通工程Revit快速建模工具集开发
28、基于LabVIEW下嵌入式系统实验平台的设计与实现分析
29、多终端数字皮影交互系统的设计与实现
30、中小学食品配送质量管理及溯源系统开发与应用
31、CDIO理念下构建软件人才孵化中心
32、基于项目导向模式的软件技术专业教学方法探讨
33、基于Unity3D齿轮油泵交互式多媒体课件的设计与实现
34、基于文本服务框架的拼音输入法研究与实现
35、医院消毒器械管理追踪系统的设计与开发
36、面向Android的电子商务移动客户端的设计与开发
37、面向数据的软件工程方法研究
38、层次分析法在飞行模拟训练评价体系设计中的应用
39、基于ExcelVBA的企业员工年假统计系统设计与实现
40、PHP技术在在线考试系统开发中的应用研究
41、检察院审讯系统中即时通讯工具研究与实现
42、浅析移动实习就业跟踪系统的开发与应用
43、轨道交通工程Revit族库系统设计与开发
44、基于SSH的教室信息管理系统设计与实现
45、高校数字化校园中数据交换和共享平台的实现
46、软件算法相关技术探究
47、基于统计调查问卷的手机APP使用现状研究
48、关于对新形势下电子商务软件测试的`研究
49、软件项目管理中的进度管理
50、试析PLC和计算机间串行通讯方式及程序设计
51、浅析基于安卓系统的移动互联网集成平台开发设计
52、多线程技术在Android手机开发中的运用
53、JavaScript程序动态切片技术的研究
54、基于SmartAdmin的数据维护软件前台的快速构建
55、医院预授权结算系统的设计和实现
56、浅析计算机软件工程的管理和应用
57、生物计算下的分布式计算系统设计及实现
58、浅议广东省气象局科研管理系统管理技术
59、系统集成在城市轨道交通建设中的应用
60、JavaWeb开发中文件上传方法研究与实现
61、基于Web的Word文档管理系统设计
62、高校移动图书馆管理系统的设计与实现
63、基于移动互联网的考试平台设计与实现
64、智慧教室移动端管理平台开发
65、云计算环境下的软件测试服务分析
66、基于安卓系统的新能源电站移动数据库系统的设计
67、基于树型结构模型足球成绩系统的研究与设计
68、中小企业管理信息系统的功能设计
69、数据结构课程中栈和队列实验教学方案设计
70、基于需求模型的航天软件测试用例生成方法
71、酒店电能管理系统的设计与实现
72、基于VSTO技术的Office计时器插件的设计与实现
73、基于分布式结构的医学影像归档和通信系统设计
74、一种基于移动手机的大学生体质测试软件设计
75、移动APP在数字器检中的应用及意义
76、电子护理文书质控管理平台建设
77、基于手机客户端APP的移动学习资源开发研究
78、刍议软件无形性对计算机科学和软件工程教育的影响
79、电气技术人员提高PLC编程能力的思考
80、基于移动化、云化的轨道交通工程建设管理信息化架构设计
81、基于iOS的个人健康管理系统客户端的开发
82、预防性维护管理与设备管理系统的集成性分析
83、试论软件工程保护中软件防篡改技术
84、基于TCSP的实时并发系统测试方法
85、MapWindowGIS插件机制及应用
86、基于Android的手机助手设计的研究
87、档案自动化管理系统
88、基于LabVIEW技术的宏观观测动物信息管理系统研究
89、特种设备作业人员动态管理系统设计
90、基于时间索引的0-N数据结构在序列模式挖掘算法中的应用
91、基于Linux的USB摄像头驱动程序的实现
92、基于Android系统的主变差动保护装置调试软件研究及应用
93、环境保障信息传输与控制中间件研制综述
94、三维模型与属性数据同步的批处理方法研究
95、权限管理在成绩管理系统中的设计与实现
96、基于移动物联的安全生产数据服务云平台的设计与实现
97、单链表辅助教学系统的设计与实现
98、软件开发质量管理研究
99、影楼后期物件管理系统设计
100、一种基于三角形非结构化网格SIMPLE算法的程序设计
101、城市突发公共事件应急管理平台研究
102、河北省气象灾害预警应急服务系统
103、智能气象站气象要素数据测试软件设计
104、一种杀毒软件升级流程的安全性分析方法
105、基于IMS的气象信息传输智能语音通知系统设计与实现
106、电子商务平台的设计
107、计算机程序设计课程中计算思维的培养
108、基于Agent的微信平台自适应负载均衡算法
109、高等学校移动信息化建设的研究
110、软件构造课程设计及其课程群
去领测国际问问吧 他们挺专业的
搜一个给你参考一下:软件测试从零开始引言 几年前,从学校毕业后,第一份工作就是软件测试。那时候,国内的软件企业大多对软件测试还没有什么概念,书店里除了郑人杰编写的《计算机软件测试技术》之外,几乎没有其它的软件测试相关书籍,软件测试仅仅在软件工程的教材中作为一个章节列出来,因此,我对软件测试一无所知。不过,在正式走上工作岗位之前,公司提供了为期两周的系统的软件测试技术专题培训,对接下来的软件测试工作有很大的指导意义。现在,我继续从事软件测试的培训与咨询服务,在这个过程中,亲眼目睹了很多软件测试新手面对的困惑,他们初涉软件测试行业,没有接受系统的培训,对软件测试一无所知,既不知道该测试什么,也不知道如何开始测试。下面针对上述情况,给出若干解决办法。 • 测试准备工作 在测试工作伊始,软件测试工程师应该搞清楚软件测试工作的目的是什么。如果你把这个问题提给项目经理,他往往会这样回答: “ 发现我们产品里面的所有 BUG ,这就是你的工作目的 ” 。作为一名软件测试新手,如何才能发现所有的 BUG ?如何开始测试工作?即便面对的是一个很小的软件项目,测试需要考虑的问题也是方方面面的,包括硬件环境、操作系统、产品的软件配置环境、产品相关的业务流程、用户的并发容量等等。该从何处下手呢?• 向有经验的测试人员学习 如果你进入的是一家运作规范的软件公司,有独立的软件测试部门、规范的软件测试流程、软件测试技术有一定的积累,那么,恭喜你!你可以请求测试经理委派有经验的测试人员作为你工作上的业务导师,由他列出软件测试技术相关书籍目录、软件测试流程相关文档目录、产品业务相关的文档目录,在业务导师的指导下逐步熟悉软件测试的相关工作。其实,在很多运作规范的软件公司,已经把上述的师父带徒弟的方式固化到流程中。 如果你进入的是一个软件测试一片空白的软件企业,那么,也恭喜你!你可以在这里开创一片自己的软件测试事业,当然,前提是老板确实认识到软件测试的重要性,实实在在需要提高产品的质量。这时候,可以到国内的软件测试论坛和相关网站上寻找软件测试资源,这种情况下,自学能力和对技术的悟性就至关重要了。 • 阅读软件测试的相关书籍 现在,中文版的软件测试书籍越来越多,有的是国人自己写的,有的是翻译国外经典之作。可以到 或者 等网络购书的站点查找软件测试相关的书籍。目前,从国外引入的软件测试书籍有很多经典之作,但是,翻译成中文后,翻译质量对阅读效果有很大的影响。 • 走读缺陷跟踪库中的问题报告单 如果您所在的公司已经有软件缺陷跟踪库了,无论采用的是商用工具,如 ClearQuest 、 TestDirecter 等工具,还是采用的 Bugzilla 、 Mantis 等开源工具,这都无关紧要,缺陷跟踪库中的缺陷报告单才是有价值的。缺陷跟踪库中的问题报告单是软件测试工程师工作绩效的集中体现,同时也是软件产品问题的集中体现。一般来说,缺陷报告单中最关键的几个部分包括:第一部分是发现缺陷的环境,包括软件环境、硬件环境等;第二部分是缺陷的基本描述;第三部分是开发人员对缺陷的解决方法。通过对上述缺陷报告单的三个部分作仔细分析,不知不觉你已经吸收了其他软件测试人员的工作经验,并掌握了软件产品常见的基本问题。这是迅速提高软件测试经验的好方法。 • 走读相关产品的历史测试用例 如果你所在的公司有测试用例管理系统,那么,走读相关产品的软件测试用例是迅速提高测试用例设计水平的一条捷径。走读测试用例也是有技巧的。测试用例写作一般会包括测试用例项和根据测试用例项细化的测试用例,下面举例说明。 “ 测试用户登录的功能 ” 是一个测试项,该测试项的目的是测试用户登录功能是否正确,是否能够完成正常的登录功能,是否能够对非法用户名和密码做异常处理等等。因此,根据该用例项,可以设计出若干个测试用例,大多数情况下,测试用例项和测试用例是一对多的关系。 通过走读测试用例项目,你可以掌握应该从哪些功能点着手未来的测试工作;通过走读软件测试用例,你可以了解如何根据被测试的功能点开展软件测试用例的设计工作,包括如何确定测试用例的输入、测试用例的操作步骤和测试用例的输出结果等。 总之,走读其他软件测试人员设计的优秀软件测试用例,是提高自身用例设计水平的好方法。 • 学习产品相关的业务知识 软件测试人员不仅要掌握软件测试技术相关知识,对产品相关的业务知识也要学习。这很好理解,如果从事财务软件的测试工作,一定要学习财务知识;如果从事通讯产品测试工作,那么相关的通讯理论知识也是必须的;如果从事银行软件的测试,银行的业务流程也是不可或缺的知识点。 因此,在学习软件测试技术的同时,千万不要忽略产品相关业务知识的学习。如果你是一个软件测试技术专家,但是对产品业务知识一无所知,那么也只能测试出来纯粹的软件缺陷,而面对眼前出现的产品业务相关的缺陷,很可能是视而不见,如此这般,软件测试的效果会大打折扣。 • 识别测试需求 识别测试需求是软件测试的第一步。如果开发人员能够提供完整的需求文档和接口文档,那固然好。可以根据需求文档中描述的每个功能项目的输入、处理过程和输出,来设计测试用例。如果开发人员没有提供软件需求文档,那该如何是好?下面给出几个有效的方法: • 主动获取需求 开发人员通常不会更好地考虑软件测试,如果没有开发流程的强制规定,他们通常是不愿意提供任何开发文档,即便有强制规定,需求文档也未必能够真正指导软件系统测试工作。因此,需要测试人员发挥主观能动性,与相关的软件开发项目经理和软件开发人员保持沟通,了解软件实现的主要功能是什么,并记录得收集到的信息。一般来说,开发人员即便没有提供相关需求文档,也会保存一些简单的过程文档,主动向开发人员索要这些文档,可以作为测试的参考。此外,可以与公司的技术支持人员交流,技术支持人员是最贴近用户的人,因此,通过交流可以获取第一手的用户使用感受,在测试的过程中会更加贴近用户。 当拿到相关的资料后,从哪些方面分析需求?如何与开发人员交流需求?其实,只要把握需求分析的几个关键的点就可以解决问题:输入、处理过程、输出、性能要求、运行环境,下面针对每一个项目逐一分析: 软件输入: 与该需求相关的一切可能输入,可以从这几方面考虑,输入来源、输入参数的数量、输入参数的度量单位、输入参数的时间要求、输入参数的精度和输入参数的有效输入范围。在测试用例设计中,这部分内容作为测试用例输入的依据。 处理过程: 描述对输入数据所执行的所有操作和如何获得输出的过程。测试人员了解处理过程即可,在测试过程中发现 BUG 时候,如果对处理过程了解的深入,对定位问题根源有很大的帮助。 软件输出: 描述每个需求的输出结果,包括输出的位置(如计算机显示器、打印机,文件),输出参数的数量、输出参数的度量单位、输出参数的时序、输出参数精确度、输出参数的有效输出范围、错误消息。在测试用例设计中,这部分内容作为测试用例的预期输出。 性能要求: 与该需求相关的性能要求,比如 “ 插入 ATM 取款卡后, 3 秒钟内弹出提示用户取款的图形界面 ” 。 3 秒钟这一限制,就是对需求的基本性能要求。 运行环境: 软件的运行所需的环境,包括硬件平台的要求、操作系统的要求、数据库的要求,以及其它相关支撑软件的要求。 • 确认需求的优先级 确认需求的优先级是很必要的,如果在产品进度比较紧的情况下,测试人员可以考虑优先测试优先级高的需求项,如果进度允许,那么在测试优先级低的需求项,如果进度不允许,那么就放弃测试优先级低的需求项。如果软件公司有规范的流程支撑,开发人员在提供软件需求文档的时候,应该在文档中确定需求的优先级。但是,如果开发人员连基本的软件需求文档都没有提供,又怎能指望他们确定软件需求的优先级?如果是这样,需求的优先级只能由测试人员完成了。 • 加入开发小组的邮件群组 测试人员需要通晓被测试产品,但是,产品在开发的过程中往往是不断变化的。如果软件开发团队有一套变更控制流程,测试人员会对产品的变更了如指掌。如果没有变更控制,那就要采用其他的土方法了。如果公司里面有自动化办公系统,也许采用的是 Lotus Notes 系统,也许使用的是 E-mail 系统,测试人员应该加入到开发人员的邮件群组中。当开发人员通过邮件讨论问题、通知召开技术会议的时候,测试人员可以及时知晓,如果必要,可以参加开发人员的技术会议。即便公司里面有了软件变更控制流程,加入到开发邮件群组也是一个很好的习惯。 • 与开发人员为邻 建议测试人员与开发人员为邻。我所在的测试组曾经与开发组是在相邻的写字间里,开发人员与测试人员的关系非常融洽,抛去同事关系,大家还是不错的朋友。不管开发人员有什么样的活动,测试人员都能第一时间获得信息。无论从事软件测试工作,还是从事其它的工作,与工作中上下游环节的同事保持良好的个人关系对工作有很大便利。一般的公司内部都存在部门墙,良好的人际关系是打通部门墙的手段之一。向领导建议测试人员与开发人员为邻,这很必要。 • 测试用例设计 测试需求收集完毕后,开始测试设计。测试用例是什么?测试用例就是一个文档,描述输入、动作、或者时间和一个期望的结果,其目的是确定应用程序的某个特性是否正常的工作。设计测试用例需要考虑以下问题: • 重用同类型项目的测试用例 如果我看得远,那是因为我站在巨人的肩上 --牛顿。 一般来说,每个软件公司的项目可以分为固定的几大类。可以按业务类型划分,比如 ERP 软件、产品数据管理软件、通信软件、地理信息系统软件等等;可以按软件结构来划分,比如 B/S 架构的软件、 C/S 架构的软件、嵌入式软件等等。参考同类别软件的测试用例,会有很大的借鉴意义。如果,公司中有同类别的软件系统,千万别忘记把相关的测试用例拿来参考。如果,系统非常接近,甚至经过对测试用例简单修改就可以应用到当前被测试的软件。 “ 拿来主义 ” 可以极大的开阔测试用例设计思路,也可以节省大量的测试用例设计时间。 • 测试用例执行 测试用例设计完毕后,接下来的工作是测试执行,测试执行中应该注意以下几个问题: • 搭建软件测试环境,执行测试用例 测试用例执行过程中,搭建测试环境是第一步。一般来说,软件产品提交测试后,开发人员应该提交一份产品安装指导书,在指导书中详细指明软件产品运行的软硬件环境,比如要求操作系统系统是 Windows 2000 pack4 版本,数据库是 Sql Server 2000 等等,此外,应该给出被测试软件产品的详细安装指导书,包括安装的操作步骤、相关配置文件的配置方法等等。对于复杂的软件产品,尤其是软件项目,如果没有安装指导书作为参考,在搭建测试环境过程中会遇到种种问题。 如果开发人员拒绝提供相关的安装指导书,搭建测试中遇到问题的时候,测试人员可以要求开发人员协助,这时候,一定要把开发人员解决问题的方法记录下来,避免同样的问题再次请教开发人员,这样会招致开发人员的反感,也降低了开发人员对测试人员的认可程度。 • 测试执行过程应注意的问题 测试环境搭建之后,根据定义的测试用例执行顺序,逐个执行测试用例。在测试执行中需要注意以下几个问题: 全方位的观察测试用例执行结果: 测试执行过程中,当测试的实际输出结果与测试用例中的预期输出结果一致的时候,是否可以认为测试用例执行成功了?答案是否定的,即便实际测试结果与测试的预期结果一致,也要查看软件产品的操作日志、系统运行日志和系统资源使用情况,来判断测试用例是否执行成功了。全方位观察软件产品的输出可以发现很多隐蔽的问题。以前,我在测试嵌入式系统软件的时候,执行某测试用例后,测试用例的实际输出与预期输出完全一致,不过在查询 CPU 占用率地时候,发现 CPU 占用率高达 90 %,后来经过分析,软件运行的时候启动了若干个 1ms 的定时器,大量的消耗的 CPU 资源,后来通过把定时器调整到 10ms , CPU 的占用率降为 7 %。如果观察点单一,这个严重消耗资源的问题就无从发现了。 加强测试过程记录: 测试执行过程中,一定要加强测试过程记录。如果测试执行步骤与测试用例中描述的有差异,一定要记录下来,作为日后更新测试用例的依据;如果软件产品提供了日志功能,比如有软件运行日志、用户操作日志,一定在每个测试用例执行后记录相关的日志文件,作为测试过程记录,一旦日后发现问题,开发人员可以通过这些测试记录方便的定位问题。而不用测试人员重新搭建测试环境,为开发人员重现问题。 及时确认发现的问题: 测试执行过程中,如果确认发现了软件的缺陷,那么可以毫不犹豫的提交问题报告单。如果发现了可疑问题,又无法定位是否为软件缺陷,那么一定要保留现场,然后知会相关开发人员到现场定位问题。如果开发人员在短时间内可以确认是否为软件缺陷,测试人员给予配合;如果开发人员定位问题需要花费很长的时间,测试人员千万不要因此耽误自己宝贵的测试执行时间,可以让开发人员记录重新问题的测试环境配置,然后,回到自己的开发环境上重现问题,继续定位问题。 与开发人员良好的沟通: 测试执行过程中,当你提交了问题报告单,可能被开发人员无情驳回,拒绝修改。这时候,只能对开发人员晓之以理,做到有理、有据,有说服力。首先,要定义软件缺陷的标准原则,这个原则应该是开发人员和测试人员都认可的,如果没有共同认可的原则,那么开发人员与测试人员对问题的争执就不可避免了。此外,测试人员打算说服开发人员之前,考虑是否能够先说服自己,在保证可以说服自己的前提下,再开始与开发人员交流。 • 及时更新测试用例 测试执行过程中,应该注意及时更新测试用例。往往在测试执行过程中,才发现遗漏了一些测试用例,这时候应该及时的补充;往往也会发现有些测试用例在具体的执行过程中根本无法操作,这时候应该删除这部分用例;也会发现若干个冗余的测试用例完全可以由某一个测试用例替代,那么删除冗余的测试用例。 总之,测试执行的过程中及时地更新测试用例是很好的习惯。不要打算在测试执行结束后,统一更新测试用例,如果这样,往往会遗漏很多本应该更新的测试用例。 • 提交一份优秀的问题报告单 软件测试提交的问题报告单和测试日报一样,都是软件测试人员的工作输出,是测试人员绩效的集中体现。因此,提交一份优秀的问题报告单是很重要的。软件测试报告单最关键的域就是 “ 问题描述 ” ,这是开发人员重现问题,定位问题的依据。问题描述应该包括以下几部分内容:软件配置、硬件配置、测试用例输入、操作步骤、输出、当时输出设备的相关输出信息和相关的日志等。 软件配置: 包括操作系统类型版本和补丁版本、当前被测试软件的版本和补丁版本、相关支撑软件,比如数据库软件的版本和补丁版本等。 硬件配置: 计算机的配置情况,主要包括 CPU 、内存和硬盘的相关参数,其它硬件参数根据测试用例的实际情况添加。如果测试中使用网络,那么网络的组网情况,网络的容量、流量等情况。硬件配置情况与被测试产品类型密切相关,需要根据当时的情况,准确翔实的记录硬件配置情况。 测试用例输入 \ 操作步骤 \ 输出: 这部分内容可以根据测试用例的描述和测试用例的实际执行情况如实填写。 输出设备的相关输出信息: 输出设备包括计算机显示器、打印机、磁带等等输出设备,如果是显示器可以采用抓屏的方式获取当时的截图,其他的输出设备可以采用其它方法获取相关的输出,在问题报告单中提供描述。 日志信息: 规范的软件产品都会提供软件的运行日志和用户、管理员的操作日志,测试人员应该把测试用例执行后的软件产品运行日志和操作日志作为附件,提交到问题报告单中。根据被测试软件产品的不同,需要在 “ 问题描述 ” 中增加相应的描述内容,这需要具体问题具体分析。测试结果分析软件测试执行结束后,测试活动还没有结束。测试结果分析是必不可少的重要环节, “ 编筐编篓,全在收口 ” ,测试结果的分析对下一轮测试工作的开展有很大的借鉴意义。前面的 “ 测试准备工作 ” 中,建议测试人员走读缺陷跟踪库,查阅其他测试人员发现的软件缺陷。测试结束后,也应该分析自己发现的软件缺陷,对发现的缺陷分类,你会发现自己提交的问题只有固定的几个类别;然后,再把一起完成测试执行工作的其他测试人员发现的问题也汇总起来,你会发现,你所提交问题的类别与他们有差异。这很正常,人的思维是有局限性,在测试的过程中,每个测试人员都有自己思考问题的盲区和测试执行的盲区,有效的自我分析和分析其他测试人员,你会发现自己的盲区,有针对性的分析盲区,必定会在下一轮测试用避免盲区。总结:限于文章的篇幅,本文不可能给出一个类似于 checklist 的指导性的软件测试新手入门。无论从事软件测试还是从事其它的工作,技术上的和技巧上的问题都可以通过查询相关的软件测试技术书籍获取,掌握一套基本的方法论是最重要的。以上文字,都是作者从事软件测试工作积累的经验之谈,如发现谬误之处请不吝指出。
图书馆自动化系统开源软件的比较研究摘要〕在调研与实际操作的基础上,对国外三种比较有代表性的图书馆自动化系统开源软件(Koha, PHPMyLibrary,PMB)进行介绍,并从基本技术特征、系统功能和技术服务三方面对这三个系统进行比较分析,以期深入理解图书馆自动化开源软件的设计理念,为开源软件在国内图书馆自动化系统建设中的推广应用提供参考。〔关键词〕图书馆自动化系统;开源软件; Koha; PHPMyLibrary; PMB1引言图书馆自动化系统,又叫图书馆集成管理系统(Inte-grated Library System),始于20世纪70年代,是实现图书馆业务与服务自动化管理的软件系统。长期以来,自动化系统的建设是图书馆建设的重要工作,但商业自动化系统的高额费用和非个性化服务使图书馆的自动化建设受到很大阻碍。而近年来在全球广泛兴起的开源软件为图书馆提供了新的选择。所谓开源软件,是在新型的———并行的、点对点的、动态的软件开发模式〔1〕下开发出来的软件,它鼓励软件开发者相互协作,开放软件的源代码,并允许任何人基于任何目的使用、拷贝、修改及重新分发软件。国外图书馆界对开源软件的研究始于1998年,美国耶鲁大学医学图书馆的系统馆员Daniel Chudnov在《图书馆杂志》(Library Jour-nal)上发表了名为“开源软件:图书馆系统的未来”的研究论文,引起了图书馆界的广泛关注,他指出“尽管开源软件至今仍未进入图书馆软件的主流市场,但这种开发模式对于图书馆软件市场的发展有着巨大的竞争力,新时期的图书馆应该把更多的资源用于用户与馆员的培训,而非购买昂贵的系统”〔2〕。目前,在国际范围内,已有十几种采用开源软件模式进行开发和应用的图书馆自动化系统,主要侧重于编目、公共存取等基本功能的实现。如: Koha系统、Avanti系统、Evergreen系统、LearningAccess ILS、PHP-MyLibrary系统、OpenBiblio系统等。这些系统在设计目标、采用标准、实现技术、系统规模以及数据的组织方式、发布方式等很多方面都不尽相同。本文在调研与实际操作的基础上,选择了3个比较有代表性的图书馆自动化系统开源软件进行比较分析。2系统介绍2·1Koha集成图书馆自动化系统Koha系统产生于1999年,被业内人士认为是全球第一个自动化开源软件,由Katipo通信公司采用Perl语言和MySQL数据库开发完成。该系统不仅集成了图书馆的传统业务流程,包括采购、编目、流通、OPAC、读者管理,同时还为用户提供个性化的定制机制。Koha系统是基于Web的客户/服务器体系结构。该系统中的perl脚本是Koha系统的核心部分,它是图书馆用户与后台系统交互作用的核心,包括OPAC系统、Intranet系统、Daemons系统以及DB系统〔3〕。OPAC系统是Koha系统中的重要组成,其开发基于标准的WWW技术,如XHTML、CSS和JavaScript,因而用户可以通过基于Web浏览器的用户端,很容易地找到特定资源。Intranet系统则是后台事务与前台操作的接口,图书馆员无需安装其它软件,直接利用浏览器便可以实现图书馆自动化的基本业务,如用户的登入、登出管理、虚拟书架的管理、图书馆资源采购、资源流通的管理,以及资源数据的导入、导出等。Daemons系统为利用Z39·50协议查询资源的用户提供到Z39·50服务器的连接。而DB系统则为数据库的存取操作提供支持。目前Koha系统主要安装在公共图书馆、个人和高校图书馆的系部。而公司等赢利性机构使用得不多。2·2PHPMyLibrary系统PHPMyLibrary系统是一个基于PHP语言和MySQL数据库的图书馆自动化应用系统,它包括编目、流通、WebOPAC、输入/输出和论文管理模块。主要具有如下特征:(1)基于Web编目并存储相关的书目信息。图书馆员不仅可以对数据库中的信息进行编辑、修改、检索、添加与删除操作,还能通过动态按钮很容易地增加或编辑新的书目格式。(2)提供基于USMARC标准的输入/输出。(3)提供ISIS2MARC程序,实现从ISIS数据库的系统导入功能〔4〕。(4)支持多语言管理,用户可以管理包含多种语言的信息,包括汉语、俄语、西班牙语、法语、德语等,并可以支持对这些语种的数据库进行检索。2·3PMB系统PMB系统,原名PhpMyBibli,自2002年在法国立项以来,受到国际同行的广泛关注。该系统由PHP和MySQL编写完成,目前已能实现资源订购、资源编目(主要是书籍与期刊编目)、资源流通以及授权管理和串行数字接口中(SDI)管理等功能。该系统支持UNIMARC标准,运行在Linux或Windows操作系统下。由于该项目源于法国,因此很多相关信息都以法语提供,为该系统的推广宣传带来障碍,但来自波多黎各的Jesir Vargas已把该系统翻译成英语和西班牙语,拓宽其使用范围, 2004年,该项目的用户社区在比利时成立。3系统比较与分析3·1基本技术信息基本技术信息包括软件所遵循的许可证类型、所支持的客户端与服务器端系统类型以及图书馆标准等,它们是评判系统的可扩展性和易用性的有效标准。通过比较,可以看出这三个图书馆自动化开源软件都具有较好的通用性、开放性和可扩展性。主要体现在: (1)都可以在当前的主流操作系统平台上运行; (2)都支持图书馆编目标准MARC、检索协议Z39·50; (3)都是基于Web的系统,为用户提供了简单的操作接口,极大提高了系统的操作性能。这与传统的基于CS架构的图书馆自动化系统不同。面对网络环境的日益渗透,传统图书馆自动化系统不得不考虑向Web系统转型,这无疑为本土企业和图书馆用户带来大量工作。而开源软件大多从一开始设计就是基于Web的客户/服务器体系结构,开发语言(如PHP等)普遍具有良好的可扩展性,这也是开源自动化系统区别于传统自动化系统的最大优势。3·2系统功能系统功能是图书馆选择自动化系统的重要依据,是系统功能模块有效实现的直接反映。作者参阅2005年国家工程技术图书馆发表的关于“图书馆自动化系统的调研报告”〔5〕中的用户需求,对上述三个开源系统进行了功能比较,帮助读者对这些系统所能实现的功能进行客观把握。从笔者的实际操作来看, Koha几乎具有用户所需的各项功能,包括多样的检索接口,对资源流通过程的系统跟踪;对采购过程的系统管理,如资源编目数据的获取、资源获取的预算与实际资金管理,同时该系统还为小型图书馆提供了简单的采购模块,另外,该系统还提供对期刊与网络资源的编目,因此, Koha系统是值得图书馆界关注的一个重要系统。而PHPMylibrary和PMB系统缺乏对期刊和成员馆的管理,系统功能不如Koha系统完善,因而更适合中小型图书馆选择利用。3·3技术服务系统的维护与服务是关系到图书馆自动化系统是否能长期有效运行的重要因素之一,是图书馆选择这类软件所必须考虑的因素,与商业软件相比,开源软件的技术服务有其特殊之处。面对各种市场需求,越来越多的商业软件许可证中包含了如安装、培训、运行支持、排错性维护和版本升级等技术服务内容,而由于开源软件的开放与自由获取性,用户通常需要自己在相关网站中下载安装与操作文档,当用户在使用过程中遇到问题时,可以通过邮件列表或是其它方式(如由专业软件公司提供的正式支持)获得相应的帮助,这种多样的服务方式为用户提供了个性化的选择。虽然上述三个系统都拥有正式的服务团队,而且Koha系统的技术力量相当强大,不仅由多国专家共同组成,同时还有全球的众多厂商参与,包括新西兰、法国、美国、英国、阿根廷等国家的软件服务公司。但由于地域、语言、时间等限制,国内用户很难真正及时有效获得帮助。尤其是PMB系统,其很多资料都是法语文献,严重影响用户对系统的参与和理解。4结论自从2000年初奥本大学(Auburn University)图书馆成功安装图书馆自动化开源软件以来,国际上许多知名图书馆陆续开始采用开源软件来改善已有的图书馆自动化系统。目前已有数百个图书馆采用Koha系统,散布全球五大洲,包括澳大利亚、美国、加拿大、爱沙尼亚、印度、尼日利亚、波兰等国家。其中美国的Ohio Nelsonville公共图书馆,有7个分馆,馆藏30万册,读者5万人,年流通量62万册,是Koha的最大客户。另外中国台湾地区的仁德医护管理专科学校、南投县南港国小等多个学校使用该系统获得了较好效果〔6〕。而PHPMylibrary和PMB系统用户相对较少,PHPMylibrary目前在坦桑尼亚、印尼和菲律宾等国开始使用。北苏门答腊大学(USU: University of Sumatra Utara)图书馆在线拥有70, 920件馆藏,是到目前为止利用该系统的较大在线馆藏〔7〕, PMB系统目前在全球的用户仅100余个〔8〕。通过对这些软件的比较分析,以期深入理解图书馆自动化开源软件的设计理念,为开源软件在国内图书馆自动化建设中的应用提供参考。传统的图书馆自动化系统开发过程,基于商业利益和技术保密的考虑,仅由开发商负责。由于无缘参与开发,图书馆只能在功能和性能上对软件的质量进行评价,却无法从更深的技术层面来研究软件,导致软件中的错误或低效率逃过检测而进入实际使用,最终延长了软件达到预期目标的周期。开源软件的开发模式令图书馆能够在更大范围和更深层次上参与软件的开发与维护,而用户的参与将有助于全面查找并快速修正软件中的错误,完成软件的多样性和适应性测试,并能根据特殊需求定制或集成软件,从而促使图书馆软件系统趋向成熟。〔参考文献〕〔1〕Eric S. Raymond. The Cathedral and the Bazaar〔EB/OL〕.〔2008-05 - 30〕. http: //www. firstmonday. org/issues/issue3-3/ray-mond/.〔2〕Daniel Chudov. Open Source Software: The Future of Library System〔J〕. Library Journal, 1999, 124 (13): 40-43.〔3〕Nicholas Rosasco, Erik Bakke. Koha architecture study〔EB/OL〕.〔2008-04-20〕. http: //www. kohadocs. org/.〔4〕About PhpMyLibrary〔EB/OL〕.〔2008-04-10〕. http: //phpmyli-brary. com/pml/? page-id=2.〔5〕国家工程技术图书馆信息服务中心.图书馆自动化系统调研报告〔R/OL〕.〔2008-05-03〕. http: //168. 160. 16. 228/libauto/wp-content/uploads/2006/04/dybg. pdf.〔6〕Koha: Documentaiton Subsite〔EB/OL〕.〔2008-04-05〕. http: //www. kohadocs. org/.〔7〕PhpMyLibrary Users〔EB/OL〕.〔2008-04-10〕. http: //phpmyli-brary. org/index2. php? option=com-content&do-pdf=1&id=16.〔8〕PMB users〔EB/OL〕.〔2008-04-20〕. http: //www. sigb. net.
129 浏览 4 回答
248 浏览 3 回答
90 浏览 2 回答
126 浏览 3 回答
278 浏览 4 回答
317 浏览 4 回答
271 浏览 3 回答
325 浏览 5 回答
151 浏览 2 回答
224 浏览 3 回答
93 浏览 2 回答
260 浏览 10 回答
213 浏览 3 回答
263 浏览 3 回答
265 浏览 3 回答