[编辑本段]基本信息 软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己的定义: 软件工程(1)、BarryBoehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。
(2)、IEEE在软件工程术语汇编中的定义:软件工程是:1.将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件;2.在1中所述方法的研究 (3)、FritzBauer在NATO会议上给出的定义:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。 目前比较认可的一种定义认为:软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
(4)、《计算机科学技术百科全书》中的定义:软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本。
其中,计算机科学、数学用于构建模型与算法,工程科学用于制定规范、设计范型(paradigm)、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。 [编辑本段]目标 软件工程的目标是:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用软件工程性、可适应性、可移植性、可追踪性和可互操作性并且满足用户需求的软件产品。
追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难。下面分别介绍这些概念。
(1)可修改性(modifiablity)。容许对系统进行修改而不增加原系统的复杂性。
它支持软件的调试与维护,是一个难以达到的目标。 (2)有效性(efficiency)。
软件系统能最有效地利用计算机的时间资源和空间资源。各种计算机软件无不将系统的时/空开销作为衡量软件质量的一项重要技术指标。
很多场合,在追求时间有效性和空间有效性方面会发生矛盾,这时不得不牺牲时间效率换取空间有效性或牺牲空间效率换取时间有效性。时/空折衷是经常出现的。
有经验的软件设计人员会巧妙地利用折衷概念,在具体的物理环境中实现用户的需求和自己的设计。 (3)可靠性(reliability)。
能防止因概念、设计和结构等方面的不完善造成的软件系统失效,具有挽回因操作不当造成软件系统失效的能力。对于实时嵌入式计算机系统,可靠性是一个非常重要的目标。
因为软件要实时地控制一个物理过程,如宇宙飞船的导航、核电站的运行,等等。如果可靠性得不到保证,一旦出现问题可能是灾难性的,后果将不堪设想。
因此在软件开发、编码和测试过程中,必须将可靠性放在重要地位。 (4)可理解性(understandability)。
系统具有清晰的结构,能直接反映问题的需求。可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植或重用。
(5)可维护性(maintainability)。软件产品交付用户使用后,能够对它进行修改,以便改正潜伏的错误,改进性能和其他属性,使软件产品适应环境的变化,等等。
由于软件是逻辑产品,只要用户需要,它可以无限期的使用下去,因此软件维护是不可避免的。软件维护费用在软件开发费用中占有很大的比重。
可维护性是软件工程中一项十分重要的目标。软件的可理解性和可修改性有利于软件的可维护性。
(6)可重用性(reusebility)。概念或功能相对独立的一个或一组相关模块定义为一个软部件。
软部件可以在多种场合应用的程度称为部件的可重用性。可重用的软部件有的可以不加修改直接使用,有的需要修改后再用。
可重用软部件应具有清晰的结构和注解,应具有正确的编码和较低的时/空开销。各种可重用软部件还可以按照某种规则存放在软部件库中,供软件工程师选用。
可重用性有助于提高软件产品的质量和开发效率、有助于降低软件的开发和维护费用。从更广泛的意义上理解,软件工程的可重用性还应该包括:应用项目的重用,规格说明(也称为规约)的重用,设计的重用,概念和方法的重用,等等。
一般来说,重用的层次越高,带来的效益也就越大。 (7)可适应性(adaptability)。
软件在不同的系统约束条件下,使用户需求得到满足的难易程度。适应性强的软件应采用广为流行的程序设计语言编码,在广为流行的操作系统环境中运行,采用标准的术语和格式书写文档。
适应性强的软件较容易推广使用。 (8)可移植性(portability)。
软件从一个计算机系统或环境搬到另一个计算机系统或环境的难易程度。为了获得比较高的可移植性,在软件设计过程中通常采用通用的程序设计语言和运行环境支撑。
对依赖于计算机系统的低级(物理)特征部分,如编译系统的目标代码生成,应相对独立、集中。这样,与处理机无关的部分就可以移植到其他系统上使用。
可移植性支持软件的课重用性和课适应性。 (9)可追踪性(tracebility)。
根据软件需求对软件设计、程序进行正向追踪,或根据程序、软件设计对软件需求进行逆向追踪的能力。软件可追踪性依赖于软。
软件工程可以写的题目多啊。开始也不怎么懂,还是学姐给的文方网,写的《基于Windows平台的HIPS系统设计与实现》,靠谱的说
研究生教育网络管理系统的设计与实现
WMS-2000A轮机模拟器数据通信系统设计与实现
洗衣机模拟运行控制系统的设计与实现
机车信号记录器数据分析处理系统的设计与实现
分布式自动检测系统RS485通信网络的设计与实现
计划生育管理信息系统的设计与实现
医院“一卡通”系统的设计与实现
列车三维驾驶仿真系统的设计与实现
一种图书外采查重系统的设计与实现
基于C/S模式的网络文件管理系统的设计与实现
自动化仓库管理系统的设计与实现
四川省卫生统计数据采集与决策支持系统设计与实现
ATM应用系统EMV迁移的设计与实现
基于B/S模式的药品信息咨询系统的设计与实现
基于LFAP的网络流量统计分析系统的设计与实现
传真管理信息系统的设计与实现
工业机器人三维仿真系统的设计与实现
单位网络设备环境智能监控系统设计与实现
基于CC1020芯片无线传输系统的设计与实现
公安派出所综合信息管理系统设计与实现
基于WEB的库存管理系统设计与实现
基于工作流的AUTOBANK管理系统设计与实现
具有主动功能的连锁经营企业配送中心管理信息系统的设计与实现
基于JavaEE技术的在线考试系统的设计与实现
学生评教系统的设计与实现
微小型电动无人机动力系统试验台的设计与实现
基于F1103 GPRS MODEM的家校通系统设计与实现
基于嵌入式Linux的远程家庭医疗监护系统设计与实现
基于Windows操作系统的智能建筑物综合布线管理系统的设计与实现
基于.NET技术的网上购物管理系统的设计与实现
变电检修管理信息系统设计与实现
天津地铁1号线车站乘客向导系统的设计与实现
基于B/S结构的电路分析网上答疑系统的设计与实现
应用PDA组建无线IC卡表抄收系统的设计与实现
非计算机专业计算机课程考试系统设计与实现
基于GPRS网络的煤矿瓦斯监控系统的设计与实现
惯性组合导航系统接口子系统的设计与实现
人寿保险老业务综合处理系统的设计与实现
FORTRAN语言题库管理系统的设计与实现
楼宇信息系统的设计与实现
倒闸实训系统无线遥控的设计与实现
C/S模式下的电子邮件系统设计与实现
基于LINQ三层架构仓库管理系统的设计与实现
一种宽带无线移动视频调度系统的设计与实现
浅谈远程监控机房温湿度报警系统的设计与实现
学术论文共词分析系统的设计与实现
基于Web的SQLServer远程备份管理系统的设计与实现
基于Spring框架的北京林业大学图书馆门户系统设计与实现
基于XML的研究生网络选课系统设计与实现
最低0.27元开通文库会员,查看完整内容> 原发布者:北大青鸟广安门校区 软件工程师应该具备的技能有哪些 软件工程师应该具备的技能有哪些?我认为,软件工程师用该具备的技能主要为以下几点: 1.编程语言能力 作为一名专业的软件工程师,应该能够熟练掌握JAVA语言,并且能够深入理解OOP、OOA、OOD等编程思想。
精通一门编程语言能为以后的软件开发打下坚实的基础。 2.编码能力 这里说的编码可不是照着书本敲代码,而是能够独立的运用代码,编写一个程序出来。
有很多软件工程师,他们都是随意堆砌网上搜来的代码,根本不管可读性和可维护性,只要能实现功能就行了,缺乏最基本的职责素养。 我认为,对于软件工程师或程序员来说,代码就像自己的孩子一样,一定要付出感情,这样才能编写出好的程序。
3.学习能力 IT技术可谓是更新换代最快的了,从市面上的电脑和手机就可以看出来。所以,只依靠自己之前学到的知识,很快就会被这个时代所淘汰,软件工程师应具备的技能里很重要的一点就是学习能力。
因为只有具备了学习能力,才能在离开学校之后仍然能够独立地学习最新的技术,同时能够自主的发现现在有什么新技术,市场上流行的技术元素与市场需求的变化。 4.设计能力 一个优秀的软件工程师不仅仅具备扎实的专业知识与技能,而且还要具备一定的设计能力。
因为只有这样,才能使一个软件或者应用更加完美,更加容易受到人们的欢迎,从而获得更广阔的市场。 5.团队协作能力 软件开发并不是孤军奋战,很多时候一个软件需要几个人。
当今中国软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己的定义: 软件工程(1)、BarryBoehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。
(2)、IEEE在软件工程术语汇编中的定义:软件工程是:1.将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件;2.在1中所述方法的研究 (3)、FritzBauer在NATO会议上给出的定义:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。 目前比较认可的一种定义认为:软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
(4)、《计算机科学技术百科全书》中的定义:软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本。
其中,计算机科学、数学用于构建模型与算法,工程科学用于制定规范、设计范型(paradigm)、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。[编辑本段]目标 软件工程的目标是:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用软件工程性、可适应性、可移植性、可追踪性和可互操作性并且满足用户需求的软件产品。
追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难。下面分别介绍这些概念。
(1)可修改性(modifiablity)。容许对系统进行修改而不增加原系统的复杂性。
它支持软件的调试与维护,是一个难以达到的目标。 (2)有效性(efficiency)。
软件系统能最有效地利用计算机的时间资源和空间资源。各种计算机软件无不将系统的时/空开销作为衡量软件质量的一项重要技术指标。
很多场合,在追求时间有效性和空间有效性方面会发生矛盾,这时不得不牺牲时间效率换取空间有效性或牺牲空间效率换取时间有效性。时/空折衷是经常出现的。
有经验的软件设计人员会巧妙地利用折衷概念,在具体的物理环境中实现用户的需求和自己的设计。 (3)可靠性(reliability)。
能防止因概念、设计和结构等方面的不完善造成的软件系统失效,具有挽回因操作不当造成软件系统失效的能力。对于实时嵌入式计算机系统,可靠性是一个非常重要的目标。
因为软件要实时地控制一个物理过程,如宇宙飞船的导航、核电站的运行,等等。如果可靠性得不到保证,一旦出现问题可能是灾难性的,后果将不堪设想。
因此在软件开发、编码和测试过程中,必须将可靠性放在重要地位。 (4)可理解性(understandability)。
系统具有清晰的结构,能直接反映问题的需求。可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植或重用。
(5)可维护性(maintainability)。软件产品交付用户使用后,能够对它进行修改,以便改正潜伏的错误,改进性能和其他属性,使软件产品适应环境的变化,等等。
由于软件是逻辑产品,只要用户需要,它可以无限期的使用下去,因此软件维护是不可避免的。软件维护费用在软件开发费用中占有很大的比重。
可维护性是软件工程中一项十分重要的目标。软件的可理解性和可修改性有利于软件的可维护性。
(6)可重用性(reusebility)。概念或功能相对独立的一个或一组相关模块定义为一个软部件。
软部件可以在多种场合应用的程度称为部件的可重用性。可重用的软部件有的可以不加修改直接使用,有的需要修改后再用。
可重用软部件应具有清晰的结构和注解,应具有正确的编码和较低的时/空开销。各种可重用软部件还可以按照某种规则存放在软部件库中,供软件工程师选用。
可重用性有助于提高软件产品的质量和开发效率、有助于降低软件的开发和维护费用。从更广泛的意义上理解,软件工程的可重用性还应该包括:应用项目的重用,规格说明(也称为规约)的重用,设计的重用,概念和方法的重用,等等。
一般来说,重用的层次越高,带来的效益也就越大。 (7)可适应性(adaptability)。
软件在不同的系统约束条件下,使用户需求得到满足的难易程度。适应性强的软件应采用广为流行的程序设计语言编码,在广为流行的操作系统环境中运行,采用标准的术语和格式书写文档。
适应性强的软件较容易推广使用。 (8)可移植性(portability)。
软件从一个计算机系统或环境搬到另一个计算机系统或环境的难易程度。为了获得比较高的可移植性,在软件设计过程中通常采用通用的程序设计语言和运行环境支撑。
对依赖于计算机系统的低级(物理)特征部分,如编译系统的目标代码生成,应相对独立、集中。这样,与处理机无关的部分就可以移植到其他系统上使用。
可移植性支持软件的课重用性和课适应性。 (9)可追踪性(tracebility)。
根据软件需求对软件设计、程序进行正向追踪,或根据程序、软件设计对软件需求进行逆向追踪的能力。软件可追踪性依赖于软件开发各个阶段文档和程序的完整性、一致性和可理解性。
降低系统的复杂性会提。
01立项调查报告
02立项建议书
03立项评审报告
04项目设计开发任务书
05项目计划
06质量保证计划
07配置管理计划
08需求分析说明书
09概要设计说明书
10详细设计说明书
11数据库设计说明书
12数据库表详细设计
13单元测试计划
14测试脚本
15单元测试报告
16系统测试计划
17验收申请书
18验收评审报告
19客户验收报告
21审核反馈表
22软件评审报告
23变更需求报告
24设计变更报告
26项目管理报告
27项目总结报告
一共这么多,三大报告是
需求分析说明书
概要设计说明书
详细设计说明书
1、论文题目:要求准确、简练、醒目、新颖。
2、目录:目录是论文中主要段落的简表。(短篇论文不必列目录) 3、提要:是文章主要内容的摘录,要求短、精、完整。
字数少可几十字,多不超过三百字为宜。 4、关键词或主题词:关键词是从论文的题名、提要和正文中选取出来的,是对表述论文的中心内容有实质意义的词汇。
关键词是用作机系统标引论文内容特征的词语,便于信息系统汇集,以供读者检索。 每篇论文一般选取3-8个词汇作为关键词,另起一行,排在“提要”的左下方。
主题词是经过规范化的词,在确定主题词时,要对论文进行主题,依照标引和组配规则转换成主题词表中的规范词语。 5、论文正文: (1)引言:引言又称前言、序言和导言,用在论文的开头。
引言一般要概括地写出作者意图,说明选题的目的和意义, 并指出论文写作的范围。引言要短小精悍、紧扣主题。
〈2)论文正文:正文是论文的主体,正文应包括论点、论据、论证过程和结论。主体部分包括以下内容: a.提出-论点; b.分析问题-论据和论证; c.解决问题-论证与步骤; d.结论。
6、一篇论文的参考文献是将论文在和写作中可参考或引证的主要文献资料,列于论文的末尾。参考文献应另起一页,标注方式按《GB7714-87文后参考文献著录规则》进行。
中文:标题--作者--出版物信息(版地、版者、版期):作者--标题--出版物信息所列参考文献的要求是: (1)所列参考文献应是正式出版物,以便读者考证。 (2)所列举的参考文献要标明序号、著作或文章的标题、作者、出版物信息。
需要掌握以下的知识 : (一).NET方面的开发⒈熟悉开发体系,熟悉C# ASP .NET;⒉熟悉SQLServer,Oracle数据库开发;⒊具有企业管理系统项目经验;4.了解企业ERP及财务管理软件(用友,金蝶)者优先;5.善于沟通,能独立撰写方案。
为人诚实,善于学习,做事认真负责,积极主动,具有敬业精神,有团队精神。(二)JAVA应用程序开发1.熟练使用Struts2+Spring+Hibernate2.掌握Jquery3.掌握Java4.熟悉Oracle5.掌握xml/webservice6.掌握OOD、OOP7.基本文档写作能力(三)web、数据库方面的开发⒈练掌握ASP,NET;等编程语言,熟悉.Net开发环境,理解.Net Framework,理解并能熟练使用WebService、O/R mapping、Remoting、多线程等技术;2.热衷于互联网WEB开发,热衷于钻研最新的前沿技术,精通XML,Javascript,CSS,AJAX等WEB前端技术;3.熟练的技术文档编写能力,熟练使用Rose,Power Design,Visio等建模和设计软件,有一定的架构设计能力;4.精通SQL server数据库技术,了解数据库性能调优者优先.(四)php项目开发⒈使用PHP语言开发互联网应用程序;⒉网站产品和网站功能模块的开发与维护;⒊与页面设计师协调沟通,编写部分Javascript和HTML;⒋参与底层MVC框架的编写与维护。
软件工程师一般指从事软件开发职业的人。软件工程师是一个认证考试,具体地说是从事软件职业的人员的一种职业能力的认证,通过它说明具备了工程师的资格。
软件工程师的技术要求是比较全面的,除了最基础的编程语言(C语言/C++/JAVA等)、数据库技术(SQL/ORACLE/DB2等)等,还有诸多如JAVA SCRIPT、AJAX、HIBERNATE、SPRING等前沿技术。此外,关于网络工程和软件测试的其他技术也要有所涉猎。
对于软件工程师,不太重视学历,但并不是对学历没有要求,重点关注项目的经验和学习知识的能力,能否利用软件工程专业知识来解决问题,根据岗位不同,对软件工程师的要求也有所不同。具体能力要根据岗位和自己的兴趣爱好选定自己的职业规划方向,一方面要详细了解软件工程师的要求,可以关注企业的招聘信息;一方面自己要贮备通用的知识技能,广泛阅读相关的计算机材料对自己以后的发展大有帮助。
可以确定的是软件工程师的前途在未来的发展依然是不断升温的职业,比较需要有技术和良好前景的专业之一。工作内容:1、指导程序员的工作;2、参与软件工程系统的设计、开发、测试等过程;3 、协助工程管理人保证项目的质量;4 、负责工程中主要功能的代码实现;5 、解决工程中的关键问题和技术难题;6 、协调各个程序员的工作,并能与其它软件工程师协作工作;7、还要编写各种各样的软件说明书,如:需求说明书,概要说明书等考试科目。
工程师是中级职称,考试的题目包括了计算机体系结构、软件工程、数据库、数据结构、编译原理等计算机学科的基础课程。
图书馆自动化系统开源软件的比较研究摘要〕在调研与实际操作的基础上,对国外三种比较有代表性的图书馆自动化系统开源软件(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/Koha-architecture.html.〔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.
281 浏览 4 回答
128 浏览 2 回答
227 浏览 2 回答
320 浏览 2 回答
139 浏览 3 回答
201 浏览 2 回答
225 浏览 3 回答
248 浏览 2 回答
243 浏览 2 回答
256 浏览 3 回答
261 浏览 2 回答
289 浏览 5 回答
119 浏览 4 回答
128 浏览 2 回答
212 浏览 2 回答