前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇计算机软件基础范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。
1.1计算机软件设计的概念
在计算机产生的早期,受计算机性能和应用范围的限制,并没有计算机软件这一概念.但是在晶体管和大规模集成电路应用以后,计算机的性能有了极大的提升.同时其适用的领域也有了极大的拓展,在这种情况下为了更加科学、合理的应用计算机的能力,就需要计算机软件的介入.由此产生了计算机的操作系统,也就是计算机最早的系统软件.由于计算机软件的存在能够极大的提升计算机的应用性能,所以计算机在不同领域应用设计人员就会根据这一领域的特点设计了不同的计算机软件系统.如在机械制造领域就有CAD和CAM等软件,在设计领域有PhotoShop等软件,随着计算机应用范围的扩展和应用数量的增加,在一些特殊领域需要应用到之前没有的软件,就需要计算机软件的设计主体进行计算机软件的开发工作.在具体的计算机软件开发工作中软件开发共分为两种,一种软件开发形式是开发主体先进行开发,在开发完成以后在寻找市场.一种软件开发针对目前市场上的应用需求,进行针对性的应用软件开发.
1.2计算机软件开发的特点
计算机软件开发活动在持续了多年以后,已经逐渐形成了独立的学科体系,当前国内很多高校等开设了计算机软件设计这一课程.计算机软件在具体的开发实践中表现出了两个主要特点:持续性和针对性.计算机软件开发活动持续了很多年,市面上的计算机软件数量极多,但是因为经济发展和技术进步,还是不断有新的计算机软件需求产生,不断有新的计算机软件开发出来.同时因为计算机软件本身是在特定逻辑关系上形成的描述语句,所以根本不会有完美的软件产生,每一个计算机软件在诞生以后都需要不断的修补和完善,所以计算机软件开发最大的特点就是持续性.受现代社会经济发展形势的影响,当前社会经济发展体系逐渐完善,新生的经济形式更多的向微观经济领域发展,企业主体对计算机软件的需求愈发个性化.同时随着计算机软件设计企业数量的增多,计算机软件设计主体为了迎合用户的需求,更多的推出了针对性的计算机软件设计理念,针对性成为新时期计算机软件设计的新特征.
1.3计算机软件开发的发展
计算机诞生后不久,在晶体管和大规模集成电路基础上形成的操作系统逐渐成型.而计算机之所以能够执行特定的任务是因为CPU将线路的通与不通和二进制数联系在一起,这样操作人员就可以借助二进制数对计算机命令.但是因为二进制数本身并不符合人们本身的使用习惯而且较为复杂,所以设计人员在二进制数的基础上开发了计算机编程的高级语言.从某种程度上来说计算机软件开发受到高级语言的影响极大,在现代社会借助高级编程语言VF和VB即使是非专业软件开发人员也能够完成简单的计算机软件开发任务.细数计算机软件开发的发展过程就会发现,计算机软件的开发活动正向着简单化的方向发展.同时随着社会经济的发展和社会化大生产模式的普及,社会分工越来越细,能够在不同领域通用的计算机软件越来越少,计算机软件开发工作对开发人员的综合素质要求提升.
2计算机软件开发中基础架构原理分析
2.1基础架构的需求分析
在计算机软件的开发活动中,软件本身的需求分析是最为重要的一个环节,如前文所述现代社会经济主体对计算机软件系统的需求表现出高度的个性化,企业经营项目的不同、运营方式的不同、管理方式的不同都会导致用户对计算机软件设计的不同需求.所以计算机软件设计的需求分析是软件开发的第一步也是最重要的一步.如果不能透彻的理解用户的计算机软件需求,就可能会导致计算机软件设计的偏差,甚至是失败.当前我国的计算机软件开发主体在运营过程中对需求分析环节的重视程度还存在不足.具体表现为我国的计算机软件设计企业在运营模式上采取经营主体与设计主体分开的经营方式,与客户就软件设计需求进行沟通的往往是计算机设计企业的经营人员,而从事计算机软件具体开发的人员往往是设计人员.用户的需求经过经营人员的转述后往往会导致设计人员对用户需求的误解.
2.2基础架构的编写
在具体的需求分析工作完成以后,就需要设计主体根据用户的设计需求进行软件的编写工作,当前在软件编写工作中应用最多的编程语言是C语言,这种编程语言的主要特点是结构性突出、基础架构优秀,能够为后继的编写工作提供更多的便利.在软件的实际编写过程中为了提高软件的编写速度,设计主体往往会采用多个工作面同时工作的方式进行编写.具体而言就是根据计算机软件的结构特性将软件分为几个关键模块,每个模块形成一个工作面由一个编程人员进行编写,在编写工作完成之后再设置一个主函数连接各个模块,从软件应用的整体来看,使用者需要应用软件的某个功能主函数就能够调用某个模块满足用户的需求.在保证计算机软件开发质量的基础上,最大限度的提升了计算机软件编程的效率.
2.3基础架构的测试与维护
从计算机软件设计主体的角度来看,设计完成的计算机软件是不能直接应用的,因为工程设计软件与目标设计相比还存在着较大的差距,盲目的应用会危害到计算机软件的安全,也会对应用企业主体造成损失.设计完成的计算机软件只有在完成测试工作之后才能投入实用.在计算机软件测试领域传统的测试方法是数值输入测试法,以预先计算好结果的数据输入到软件系统中,如果输出的结果是正确的那么就可以断定计算机软件没有问题.但是这种测试方法本身存在着较大的局限性,因为输出结果的正确性是不能保证计算机软件系统内部数据处理过程的正确性的.也就是说计算机软件显示正确结果可能是一个偶然性事件,并不能够完全证明软件本身的合理性.所以在这一疑问的推动下设计人员开发了专门针对计算机软件特点设置的测试软件,应用测试软件能够保证对计算机软件系统结果和过程的全方位检测.
3计算机软件开发中的基础架构选择
3.1基础架构的重要性
计算机的软件设计是利用特定的逻辑关系对软件内容的定义,具体的软件设计工作就是对软件内容的定义,而特定的逻辑关系就是计算机软件开发的基础架构.计算机软件设计的基础架构不仅能够决定计算机软件的运行方式和流程,而且还会对软件的未来维护和扩展产生影响,例如计算机软件的基础架构如果是封闭式的就不具备基本的扩展能力.当前计算机软件设计领域应用最广泛的基础架构就是表示层、逻辑层和数据层三层结构组成的B/S基础架构,在这一基础架构中软件的表示层、逻辑层和数据层,分别对应软件系统的人机交互界面、逻辑关系和计算机语言区.在软件的设计活动中,设计主体可以以此为节点将整个软件拆分为几个部分,进行分别设计.同时在软件系统扩展和维护中,也可以对任意一个层次的内容进行修改而不用担心修改会对系统的其他部分造成影响,由此可见一个优秀的计算机软件设计基础架构能够极大的提升计算机软件的设计效率和应用效率.所以在具体的软件设计活动中,设计主体应该根据用户主体的实际需求和软件的功能实际,选择有针对性的、高效的计算机软件基础架构,以提升计算机软件的设计质量和效率.
3.2基础架构的选择
现代计算机软件设计已经成为一个系统性的工程,软件设计的其他环节已经形成了一定的模式,所以计算机软件设计活动中最为重要的就是基础架构的设计.只有选择一个优秀的基础架构才能保证计算机软件后继的程序编写、维护和拓展的高效和便利,因此在实际的计算机软件开发活动中,必须根据软件的目标功能,对现有的基础框架进行分析和甄选,最后选择一个最为适合的基础架构.当前计算机软件设计的主要编程语言C语言已经应用较长时间,积淀了大量的优秀计算机软件架构,基本不需要基础架构的重新开发,设计主体只要根据软件的目标功能和结构选择一个合适的架构就可以.
4结论
关键词:计算机软件;基础数据结构;算法分析;复杂度
1 算法的概述
1.1 算法两要素
算法主要包括两部分:信息的处理操作和信息处理方式的操作结构,对信息的处理操作一般包括逻辑符号、数学计算、信息传递和信息对比,操作结构可以指引指令有序进行,通常用流程图来描述。
1.2 算法的主要特征
有限指令的主要部分就是算法,有限指令能够明确处理问题的步骤。面对问题,算法能够对各种定值指令进行预算处理,通过运算传达最后的计算结果。算法的特点主要为:指令的数量必须有限;指令不能超出计算机的能力范围;被处理的对象不受指令影响,对象数量不影响指令,必须要有至少一个传递末端。
1.3 算法表示方法
目前编译算法一般都用符号和文字来进行,主要包括程序图、C语言、PAD图,一般性文字等。C语言和一般性文字能够具体详细的描述算法,其他方法描述算法是大致内容并进行作图,更加直观的表达,便于学习理解。
1.4 常用的算法
常用的算法主要包括枚举法、迭代法、递推和递归法。枚举法内容是指通过信息特点对运行结果的可能区域进行估计,然后利用一些方法手段检查各个结果,直到所有结果都符合。在验证过程中,验证对象如果满足算法要求,这个验证对象就是最终计算机传递的结果,如果没有达到要求的对象,那么算法就无解。迭代法是一种较为粗略的方法,可以把麻烦复杂的问题转化为较为简单的迭代式子,通过循环这个步骤,达到由繁化简并最终得出答案的目的,该法适合非数值类问题的计算。递推法和递归法是主要的算法制定编写法,都通过运用特殊公式逐项推导而来的。
2 算法设计要求
算法像语言一样,是计算机和人类沟通时的语言,通过算法,人们不仅可以跟计算机进行交流,还可以按照指令执行任务。因此所有的指令必须要符合一定的行为准则,算法的设计要求主要包括以下几点:
2.1 具有正确性
设计者编译指令时必须要按照算法的规则来进行,从而保证人和计算机正确的交流,保证计算机执行好任务。正确性中最重要的就是避免语法错误的出现,从而能够为正确答案的得出做好准备。
2.2 具有可读性
算法具有可持续性,是指算法总体思路容易让人理解,是想一下,一个非常混乱的算法,即使再聪明的人也很难明白算法原理的,更不用说得出计算机答案。
2.3 具有稳定性
就像机械设备似的,如果工作状态不稳定,那么就会很容易出现难懂奇怪的问题,算法如果不够稳定,计算机在正常运行的时候,也会很容易出现错误。经常出现的错误就是乱码,就会让人感觉像是算法存在严重问题。
2.4 具有高效低耗的性能
计算机性能的好坏取决于内部的器件好坏,算法也是这样的。好算法可以用最低能耗最短时间来得出答案,计算机内部的工作原理可以决定这些因素,其中最主要的就是存储大小和运算速度的联系。
3 算法复杂度的分析
算法复杂度决定了一个算法执行并得出结果需要的总时间,设计者通常是根据算法复杂度来判断对算法的总效率来进行判断的,这是因为时间的消耗和算法需要的内存情况是直接联系挂钩的。评判者主要是依据运行的时长以及内存的消耗来进行判断的。下面就简要介绍一下运行时长以及内存消耗:
3.1 运行的时长
通常来讲设计者不是依据算法的总运行时间来衡量时间长短的,这是因为计算机仍然是算法正常运行的载体,计算机的运行速度跟许多因素有关,例如计算机的运行环境、计算机内部使用损耗等。因此,同一种算法在不同的计算机运行载体上运行的效果也是有很大差别的。一般来说,计算机运行时长的大小不是衡量算法效率的一种标准,而是判断算法运行时间损耗的一项指标,能够在一定程度上评判算法运行的好坏。
3.2 内存的消耗
计算机运行算法,会暂时占用相关的空间,被占用的空间大小尺度就是常说的内存消耗,内存消耗与相关的函数紧密联系。内存消耗主要内容是传入和传出信息占用的内存、算法在运行过程中暂时占用的内存等。传入和传出信息占用的内存跟需要解决处理的问题是相关的,不会因算法变化而变化;算法运行中暂时占用的内存大小是由算法来决定的,不同的算法需要不同的内存,因此,比较好的算法需要的内存也比较少,这也是内存消耗成为评判算法好坏的又一个非常重要的标准。
[参考文献]
[1]邓龙.计算机软件基础数据结构算法[J].信息与电脑(理论版),2012(6).
[2]李毅波.数据结构与算法学习系统的设计与实现[D].中南大学,2012.
关键词:软件技术基础;教学研究;教学改革
中图分类号:G642 文献标识码:A
1引言
随着计算机技术的飞速发展与普及,非计算机专业的计算机基础教学得到了普遍的加强,对电类专业初步确定了以“计算机文化基础”、“高级语言程序设计”、“微机原理与应用”、“计算机软件技术基础”(简称“软件技术基础”)为主干课程的教学模式。
“软件技术基础”作为我校电气信息类专业必修的一门计算机基础课程之一,能够为熟练应用本专业相关软件,甚至进行相关的二次开发等奠定坚实的知识基础。但是,该课程的内容相当于计算机专业的5门专业课程:“数据结构”、“软件工程”、“操作系统概论”、“数据库系统概论”和“计算机网络基础”,其所涉及的知识面广、概念多、原理抽象、实践性强,不易被学生所掌握。
本文针对该课程的特点,深入分析教学过程中的主要问题,并有针对性的进行相关方面的教学改革的探索和实践。
2课程教学面临的主要问题
“软件技术基础”是一门综合性的计算机基础课程,主要目标是让学生更好地利用计算机解决专业领域中的问题及日常事务问题。但是,现在的教学模式主要面临以下四点问题:
(1) 学生感觉难学。课堂讲授的都是些抽象、枯燥的概念和看不见、摸不着的算法。学生常常提出诸如“感觉自己C语言学的不错,但是虽然学习软件技术基础一个多月了,还是没找到感觉”、“学习软件技术基础的有关知识后,不知如何用C语言程序来实现”等问题和疑惑。
(2) 教师感觉难教。为了增强学生的兴趣和信心,往往降低教学难度,教学时间大部分花费在基本概念上,而
对程序设计和调试技巧等较深的知识只是点到为止或避而不谈。
(3) 学而无用。大量学生学完本课程,只会背诵几个基本概念,并没有真正掌握程序设计的很多精华思想和编程技巧,更没有了解软件是如何管理计算机全部资源的。
(4) 资源有限。该课程的学时较少,大部分院校的该课程在30~50个学时之间,我校早期教学大纲只有40个学时。尤其是实验学时更少,我校只有8个学时。而且,学校实验室计算机资源紧张。
上述的四点问题并不是彼此孤立的,而是相互影响、相互制约密不可分的。
3课程教学改革的探索与实践
3.1采用案例式的任务驱动,引导教学
在课堂的讲授中,尤其是讲解新知识时,大多采用实际的案例进行演示说明,并在演示过程中,逐步引出各个相关概念。生动形象的案例,同时又带着多个概念和知识点的任务进行学习,既容易激发学生的学习兴趣,又有利于学生迅速掌握抽象、枯燥的概念。探索和遵循各相关知识点之间的内在联系,在讲授的过程中循序渐进、环环相扣,优化教学内容。
比如栈的概念,传统讲解只知道是一种存储单元,具有后进先出的特性(Last-In/First-Out),学生学完后并不知道其有何用途,作者在教学实践中,以迷宫问题为例引入栈的概念,如图1所示,带着要设计计算机程序来解决这个实际问题的任务来学习,如图2所示的详尽分析,让学生在轻松愉快的状态下,了解栈的用途:能够解决类似迷宫问题等的深度优先搜索问题。并能够应用栈的特性解决实际问题。
3.2充分利用现代教育技术辅助教学
根据本课程的特点,要很好的利用多媒体动态显示的优点来进行教学,充分发挥其形象、生动和直观的特点。制作和积累更多的课堂教学的动画资源。如图3所示,图的广度优先遍历多媒体动画。
充分利用校园网络资源,构建网络教学平台,努力营造一个在教师指导下的以学生为中心的自主式学习环境。其网络教学平台包括多媒体课件、教学素材、电子教案、网络程序实验平台(如图4所示)、网上答疑、作业提交与批改系统、习题和答案等模块,具有多种支持教学各个环节的综合性网络教学资源。
3.3建立开放实验,强化实践教学
对于软件技术基础这门实践性特别强的课程,必须把理论课和实验课结合起来讲解才能培养学生的能力,除了尽量提高实验的课时数外(我校新教学大纲中实验学时为16学时),还必须增加学生业余自由上机时间,所以,必须建立开放性的实验室,以缓解课内上机学时少的矛盾。
在上机的指导过程中,不仅要指导学生软件设计的基本方法、程序调试的基本技巧,还要对学生思维方式进行引导。对常用的软件设计方法可以从“拿到题目”――“如何分析”――“如何解决”――“最后具体程序的实现”的整个过程进行全方位的启发。使学生掌握设计软件的基本思想,知道如何来思考问题和解决问题。
3.4完善考核机制,引领教学
考核对学生起着重要的引导作用,其不仅能评价学生的知识和能力,而且还会很好的推动学生的学习向最佳的方向发展。不再侧重考学生的概念记忆等内容,而是为培养复合型、应用型和创造型三者相统一的人才,侧重考察学生对知识的综合应用能力。
在平时成绩的30%中,让学生以小组的形式,在老师的指导下结合实验课程,开发一个小型的软件系统,让学生体会软件工程中的系统分析、系统设计和实施各个阶段的实际情况。两届学生设计了数十种程序,有简单电路仿真软件、公司产品展示系统、教师办公系统等,如图5、图6所示。
4总结
“计算机软件技术基础”课程对电气信息类专业是一门非常重要的计算机基础课程。而其又是一门理论和实践性非常强的课程,对教学过程中面临的四点紧密联系的问题进行了深入的分析,并对该课程改革进行了探索,提出了采用案例式的任务驱动,引导教学;充分利用现代教育技术辅助教学;建立开放实验,强化实践教学;完善考核机制,引领教学,共四项一体的具有一定开拓性教学改革措施,在实践的教学过程中取得了很好的效果。
参考文献:
[1] 教育部高等学校非计算机专业计算机基础课程教学指导分委员会. 关于进一步加强高等学校计算机基础教学的意见(征求意见稿)[J]. 中国大学教学,2005(5):11-18.
[2] 徐士良. 计算机软件技术基础[M]. 北京:清华大学出版社,2007.
[3] 周云,辛华,姚新宇. 案例教学在“计算机软件技术基础”课程中的尝试[J]. 高等教育研究学报,2007,30(3):57-59.
[4] 程文彬. 独立学院“软件技术基础”课程教学改革的探索与实践[J]. 计算机教育,2009(10):30-32.
Analysis and Discuss on Teaching Methods for Computer Software Technique Foundation
CHEN Di-yi, MA Xiao-yi, XIN Quan-cai
(North West A&F University, YangLing 712100, China)
计算机软件运用在财务会计处理中,不计算机软件在财务会计处理中的运用文/田廷剑在信息时代的今天,计算机软件在企业中的应用越来越广泛,再结合计算机软件本身的特点,计算机软件的会计处理成为了一个复杂但又十分重要的过程。摘要仅节约了财务人员的时间和强度,还提高了会计工作效率,使财务人员有更多的时间管理企业其他的事项。提供必要、准备的财务数据,为企业的财务管理,可以有效的提高企业的竞争力,为企业创造出更大的价值。
1.1提高竞争力
企业管理人员想要了解公司的经营情况和财务状况,可以利用计算机软件查询到的市场情况和行情,从而了解和掌握各种市场。做出正确的决策,把握投资时机,调整经营策略,从大大提高市场竞争力。计算机软件中能够对会计业务流程进行实时管理,当出现会计处理流程就会直接反映到软件中去,实现了对会计处理的即时反映,计算机软件对财务工作的实时监控。当企业经济业务活动的信息都能够在计算机软件中反映出来的时候,企业就能够在第一时间做出正确的决策,进而获得竞争力的提升。
1.2改善工作效率
计算机软件使用的是计算机和相关网络处理数据。速度十分快,可以为企业提供更及时的财务管理信息。在企业建立内部网络的同时,可以更加紧密的使得企业各个企业联系起来,业务处理处理速度也大大加快了。同时通过计算机软件,会计是比较容易的、操作起来比较便捷,有关的功能使用计算机软件可以自动生成出各种会计报表,财务人员在会计处理中的错误和不规范的现象会明显减少,使得财务数据更加可靠、准确。例如,ERP软件中的财务管理子系统大大简化了手工计算机的工作量,增加了更多的核算模块,其中包括现金管理模块、固定资产核算模块、工资核算模块等。这些系统核算给基本的会计处理提供了最原始的依据,显著提升了工作效率,减少了财务工作量。
2计算机软件运用在财务会计处理中存在的问题
计算机软件在企业财务中的应用不但提高了财务人员的工作效率,还可以为企业领导决策提高帮助,促进了企业更好的发展。但是由于现有的通用计算及软件和企业自身的特点,指导了计算机软件的运用在企业中仍然存在这很多问题。主要表现在计算机软件的功能、成本和企业要求的程度以及企业计算机软件使用者和领导层的意识方面。深入分析企业计算机软件应用中存在的问题,可以有效的帮助企业在实践中更好的使用计算机软件,提高会计工作效率。计算机软件使用的首要步骤就是合理选择适合企业需要的计算机软件,计算机软件的选择是否合适直接影响了其效率。企业由于其自身的不同问题,在计算机软件的选择上仍然存在着很多问题,主要有过度强调高效,而忽视了会计制度、过度强调核算而忽视了分析功能以及模块功能不匹配,与其他软件不能进行很好的对接。
2.1过度强调核算,忽视了分析功能
计算机软件现在普遍都有分析的功能,但是大部分财务人员都没有很好的利用好这个功能,而是将重点放在核算上。并且由于企业间的情况是不同的,因此开发软件的时候很难顾虑到所有企业的特征。但是开发商为了卖出自己的软件,会夸大自己软件的分析功能,其实在实际工作中不一定能为领导层做决策提供帮助,因此,很多企业放弃了计算机软件的分析功能,并且用传统的人工分析方法进行分析。因此,计算机软件很难发挥事前控制的功能。很多种不同的计算机软件,但其功能都是相同的,主要有总账、应收账款和其他部分。
2.2模块功能不匹配,与其他软件难以对接
如今,我国的计算机软件有两种模式,一种是为开发以及应用,从团队开发的专业软件,但是开发商有很多不是很专业的会计师,因此不能真正了解企业的财务管理和决策的需要,从而开发出来的软件功能中存在很多问题。具体表现为,计算机软件的大部分开发人员在开发软件时都知识根据每个功能模块来开发,导致整个软件的最后整合只是简单的模块,没有实现有效地联系现实。另外,企业很难有计算机软件能增加自己的功能,因此每个子系统里面不灵活,给使用者带来了不便。
2.3计算机软件使用不灵活
计算机软件应用在财务会计处理中使用不灵活。例如,计算器的的使用差错率较高。例如用友软件中的计算器功能,只要重复按下“+”号就会导致得数一直持续变化。在进行计算的过程中用友软件必须要关掉中文输入法,另外在清零的过程中都无法使用键盘快捷键,导致使用效率降低。
2.4财务数据保密不彻底
计算机财务软件在保密性这方面做得仍然不够完善,有的软件根本不屑于关注加密,而有的软件所谓的加密工作,并不是对数据进行加密,而是对软件加密,防止盗版,无法做到真正意义上的数据保密。
3计算机软件在财务会计处理中的运用策略
3.1计算机软件要与企业情况匹配
企业在购买计算机软件的时候应当要注意两个问题,第一是要依据企业实际情况提出要求,在功能设置上要进行深入的研究,加强计算机软件的分析功能,使其能够为领导层的决策提供帮助,并且可以加强企业的控制。第二是要依从国家金融管理软件部门的带领,要加强战略财务管理,体现出更多的人性化管理。
3.2完善计算机软件的操作规范
计算机软件的初始化是一项十分重要的工作,设置得是否合理直接影响到将来系统能否满足企业的会计核算与管理的要求。日常操作也是十分重要的,应当设置人员权限,便于企业的内部控制。由于计算机软件初始化非常重要,因此应当注重初始化工作,能否设置成功是系统将来发挥其功能的基础,而且设置好了将来的工作也就变得更方便了。不能依赖开发商的售后服务,所有会计科目的设置都应当依据企业的业务,结合有关部门的规定。企业应当对每个岗位设置权限,具体的应当依据企业的实际情况结合企业规模和业务的复杂程度,特别是在客户主管的权限设置,不可以是只为方便而超越了领导层,这是不符合内部控制的需要。同时,财务人员应当保证清晰的账目。另外,还应当加强档案管理,为了保证记录的真实性,应当把纸质的凭证保存好。
3.3建立通用的财务数据传输协议
建立通用的财务数据传输协议能够使得在不同平台开发下软件顺利的对接,并且进行数据输送。TCP/IP协议是目前互联网最为常用的网络控制与传输协议。只要安装了该协议就能够正常的访问网站。通过借鉴该协议可以开发一种国际或国内通用的财务数据传输协议,使得不同格式的数据能够想换被接受,不同软件下的数据也能够被直接适用,不需要再另作处理,这样一来能够有效降低对财务操作人员的专业需求,还能够实现不同系统下的数据共享。
4结束语
版权法是目前国际上保护计算机软件知识产权的主要法律,基本方式有三种。一是顺应软件技术特点,修订和完善版权法,明确软件的版权地位;二是制定专门的同版权法配套的软件保护补充性法规;三是把典型案例的判决原则与结果作为软件版权保护的依据。版权法保护软件有明显好处,比如:可版权标准低,只要求软件具备主观新颖性、独创性、非抄袭性,几乎所有软件都在受保护之列;版权获权程序简单,权力在软件开发完成后自动生效;软件的创造思想可以被别的开发者利用,去创作新的软件,推动软件技术和软件事业的发展。
计算机软件包括程序和文档两个部分,它的根本用途是按照程序的逻辑步骤,控制硬件的运作,达到预期效果。软件具有“思想表达混合性”的特征,兼具“思想”(idea)和“表达”(expression)两重性,是软件和传统版权作品的重要区别。所以,用版权法保护软件,除了体现出其具有的优点外,还显示出其不可克服的局限性。“思想/表达二分法”是版权法的基石与遵循的核心原则。二分法原则要求版权法只保护软件“创作思想的表达形式”,不保护软件“表达形式的创作思想”,但是,软件的精华正在创作“思想”。据IBM公司提供的资料,软件开发总投入的80%要用于软件功能确定和逻辑设计。单纯依靠版权法保护软件,会使软件最有价值的部分得不到保护;对“思想”与“表达”界限的划分,法律界一直没有普遍接受的标准。在软件的“思想”与“表达”之间有个较宽的模糊区,即使在法律制度相对完备的美国,软件保护的司法实践也常常陷入“思想”、“表达”不易把握的境地;软件的价值在使用,如果不能保护软件的使用权,那么,就软件保护做的任何努力将失去意义,版权法恰恰不禁止对作品的使用;越来越多的新的技术问题,比如:屏幕显示技术、数据结构设计等是否受版权保护,争议不少;版权法对作品的保护期是50年或70年,如此长的保护期对经济寿命只有10年左右的软件而言,不会给权利人带来更丰厚的经济收入,却会减损软件的社会应用价值,妨碍公共利益。
版权法对软件知识产权的保护不仅不全面,而且效力不够。为了拓展版权法对软件保护的外延,增强保护力度,于是就出现了软件版权扩大保护。1985年,在Whelan诉Jasolw案中,美国第三巡回法院判决计算机程序的SSO,即结构(structure)、顺序(sequenre)和组织(organization)属于“表达”,不属于“思想”。Whelan案奠定了软件版权扩大保护的基础和原则。1986年,在Lotus诉Paperback与Stephenson案中,版权保护范围进一步扩大到程序用户接口(操作命令、树形结构选单、应答信息等)的设计。软件版权扩大保护在美国国内外法学界产生强烈反响,招致众多批评意见。集中的观点是,软件版权扩大保护背离了版权法原则,曲解了版权概念,造成版权保护体系的混乱。面对压力,美国一些法院的态度有了转变。1991年8月,在CA诉Altai案中,纽约州东部联邦地方法院否定了Whelan案建立起来的判断规则,表明软件版权保护重新回到了保护作品“表达”的版权法原理的正确轨道。大部分学者指出,软件版权扩大保护不是提高软件保护水平的可取办法,如果软件创造思想具备创造性理应受到法律保护,这种保护应该是专利法,不是版权法。
专利法保护水平高,是最有效的知识产权保护手段,软件一旦获得专利权,权利人就对权利享有高度的独占性,尤其是使软件创作“思想”受到有效保护;从社会利益角度考虑,专利法要求权利人公开技术成果,使他人能公平利用软件技术,促进软件价值的最大化,还能避免同类软件的重复投入、重复开发;发明专利的保护期为15到20年,对软件保护比较合适。事实上,人们早就注意到专利法对软件知识产权保护的积极作用,70年代有的国家就制定了软件专利审查标准,把专利保护作为软件保护的一条途径,只是由于对软件技术的特点认识不足,加之软件可专利权标准不统一,以及多数软件无法满足新颖性、创造性、实用性的专利“三性”要求,才使软件的专利法保护地位没有得到真正确立。随着发明创造与软件的关系不断密切和软件版权扩大保护的被否定,软件的专利法保护日益紧迫地提上日程,很多国家纷纷修订既有的或制定新的专利审查标准,降低软件的专利可及性条件,赋予更多软件以专利权。
原来的《欧洲专利公约》规定软件不是专利法保护的客体,修改后的公约指出,将计算机硬件系统与软件当成一个整体,如能够对现有技术做出贡献,可授予专利权。欧洲专利局新的审查基准确认,和软件有关的发明若具有技术性,能够获得专利权。
1987年,美国制定软件专利审查的“指导原则”。1995年,专利商标局(PTO)提出《计算机应用发明的审查基准草案》规定:被计算机程序或其它形式软件控制的计算机或其它可程序控制性装置视为一种可专利“机器”(machine);在计算机上或计算机协助下实施的一系列特殊的操作步骤视为一个可专利“过程”(process);当在计算机上运行时,能用来控制计算机以某种特殊方式运作的计算机可读内存(Computerreadmemory),视为一种专利“制品”(articleofmanufacture)。草案就不受专利保护的情况作了排除。
1988年,日本公布《有关计算机软件发明的审查办理案》。1992年公布《新软件专利审查标准框架方案》,把软件发明申请分成四种类型:用于控制与计算机连接的设备的软件发明(如汽车用空调装置和方法等);用于控制计算机硬件的软件发明(如多道程序设计控制装置与方法,假想存储控制装置和方法等);用于利用计算机硬件进行应用领域特有的信息处理软件发明(如假名汉字转换装置与方法、传票认可系统、计算机设计支援装置和方法等);用于控制计算机及相关装置的软件发明,且必须采用物理量控制或用于控制物理量(如利用计算机的图像处理装置)。1997年1月起,日本又对固化在CD-ROM和软盘上的符合一定条件的软件实行专利保护。
1985年,专利法开始在我国实施,《审查指南》第十二章的软件发明申请的判断标准规定,只有能使计算机结构或电子数据处理设备产生变化、能使机器硬件技术作出相应变革,引起机器设备在技术上有新的创造性的改进的计算机程序和能使计算机系统或机器设备,以全新的具有创造性方式运行的计算机程序才可予以专利保护。1993年4月1日起生效的新的《审查指南》,舍弃上述苛刻条件,提出了符合软件技术发展的、宽松的软件专利标准。
各国规定的软件可专利保护标准不完全相同,其中比较一致的观点是包含软件发明申请的主题必须同时具备“三性”、“二要素”,而且,该判断标准是唯一的。“三性”就是指专利“三性”。“二要素”一是指包含软件发明申请的主题要能够产生技术效果,这是“二要素”中的主要方面;二是指包含软件发明申请的主题要能形成完整的技术方案,技术方案的基本因素包括:软件处理的数据结构、处理数据结构使用的算法和管理软件运行的用户界面等。“二要素”就是要求包含软件发明申请的主题必须是能够形成完整的具有新的技术效果的发明创造。根据传统理论,只有当软件与硬件相互支持,形成完整技术方案,产生技术效果时,软件才能获得专利权。新的认识是,既使硬件不发生任何变化,只要将特定软件和公知计算机作为一个整体考查出现了新的、实质性的技术进步,符合“二要素”与“三性”要求,就能被授予专利权。
算法(Algorithm,或称逻辑算法)属于智力活动范畴,而智力活动的规则和方法不被授予专利权,各国专利法就此问题有着类似的规定。但是,算法对软件开发是极其重要的,算法创新往往是软件技术创新的基础。软件离不开算法,因此,软件多年来也被认为是抽象智力思维的产物。算法是早期软件可专利法保护的最大障碍。比如:中国专利局《审查指南》就曾规定,作为数学算法集合的计算机程序是智力活动的规则和方法的例子,不能授予专利权。具体地讲,如果包含软件发明申请的主题是一种算法,又没有实际的技术效果,权利要求整体的最终结果是纯数字,则该软件不能获得专利权。现在学术界的共识是把算法本身同利用算法解决问题的过程分别对待,不排除在关于软件发明申请中包含数学算法特征。然而,算法特征应该是具备技术性的特征,能产生某种技术效果。包含算法应用在内的与软件相关的发明专利保护逐渐受到重视,十几年来,在美国、日本等国家已经有数百项涉及算法的软件发明获得专利权。
在工业化国家,呈现出倾向于用专利法保护软件知识产权的趋势。美国政府1992年公布了一份私人调查材料,和1970年相比,1991年被授予专利权的软件数量由27件上升到602件,增长率达2400%.截止1996年4月,美国获得专利的软件数量累计达11万件。受到专到保护的有Apple的下拉式选单、MerrillLynch的现金管理系统、IBM的基本输入输出系统(BIOS)等著名软件。1985年,日本软件专利申请量是5000件,1990年为12000余件。近几年,日本每年的软件专利申请量平均为2~3万件,占全部专利申请量的10%.