时间:2022-07-15 03:24:56
引言:寻求写作上的突破?我们特意为您精选了4篇软件开发论文范文,希望这些范文能够成为您写作时的参考,帮助您的文章更加丰富和深入。
摘要:动调式陀螺测斜仪是一种新型精密陀螺测斜系统,适用于有磁性干扰的丛式井、加密井的钻探测量及在完井后的套管内或钻杆内进行测量。该仪器漂移很小,有效地提高了井眼轨迹测量结果的准确性。为了匹配仪器测量精度,测试数据处理采用空间曲线积分法,实现井眼轨迹空间展布的精细描述,开发出对应测斜资料分析方法与解释平台,为老井轨迹复测、侧钻井等提供实施依据。
关键词:动调式陀螺;井眼轨迹;空间曲线积分法;陀螺测斜解释平台
0引言
为提高油气井利用率和开发效果,地质部门在开发过程中,经常在原井眼基础上进行开窗侧钻,对井眼轨迹的准确性提出了更高的要求。以往由于受仪器精度及设备技术条件限制,井眼轨迹的测量结果往往存在较大偏差,从而影响了对地层的正确评估。所以,为了提高侧钻井的成功率,就需对某些老井复测井眼轨迹[1-2]。本文采用动调式陀螺仪进行井眼轨迹测量,为匹配仪器测量精度,测试数据处理采用空间曲线积分法,实现井眼轨迹空间展布的精细描述,开发出对应测斜资料分析方法与解释平台,为老井轨迹复测、侧钻井等提供实施依据。
1陀螺测斜仪
常用2种陀螺测斜仪测量井眼轨迹。一种是框架式陀螺测斜仪[3],其原理是利用高速旋转的物体具有定轴性的原则实现方位测量,由于高速旋转的运动存在摩擦力,容易产生漂移,而且这种因漂移而产生的偏差会随着时间而增大。另外,框架式陀螺无法直接测量方位,需要在开始测量前用人工确定正北作为基准,这样容易带来人为误差。由于框架式陀螺测斜仪的漂移偏差无法预测和克服,导致井眼轨迹测量结果不稳定。而动调式陀螺仪采用了更为先进的挠性支撑,因而漂移很小,有效地提高了井眼轨迹测量结果的准确性。动调式陀螺测斜仪是一种精密陀螺测斜系统,采用惯性导航原理,利用挠性陀螺仪和石英挠性加速度计作为主要测量元件,通过定点测量仪器各轴的地球自转角速度和加速度分量,经过系统解算后得到当前位置的井斜度、方位角。然后,根据各测量点的方位、倾斜角确定井眼轴线的空间位置,同时为了与钻具配合,必须随时得到工具面角[4]。特别适用于有磁性干扰的丛式井、加密井的钻探测量及在完井后的套管内或钻杆内进行测量。
2井眼轨迹曲线算法优化
井眼轨迹算法有很多种,常用方法有平均角法、圆柱螺线法、最小曲率法和曲率半径法[5-6]。这些计算方法大多是将测量段内的井眼轨迹假设为直线、折线、圆柱螺线和斜面圆弧曲线等简单曲线模型[8]。井眼轨迹计算是通过测量井眼的斜深、井斜角和方位角,然后,再用一定的计算方法将这些测量数据解释为XYZ空间坐标数据[9]。
井眼轨迹计算的积分法是一种基于空间曲线的方法,它将相邻的2个井斜测点的连线视为一渐变空间曲线[5-8],这更符合钻井工作的实际,其精度高于常用的井眼轨迹计算方法。在实际井眼轨迹测试时,通过优化工艺方案,制定合理资料录取方案,采取连续测斜或加密测点方案,可以最大程度地逼近轨迹空间曲线形态。
3处理解释系统设计
陀螺测斜解释平台采用C#开发完成,充分利用人工智能,与上游基础数据库紧密衔接,用户仅需进行简单输入工作便可完成井眼轨迹评价,大大提高了单井处理效率。软件设计3个功能模块,主要实现数据处理、图表绘制、报告生成(见图1)。
3.1数据处理
动调式陀螺测井仪主要采取点测方式进行,在开窗侧钻位置或最大井斜位置采取加密测点或重复测试某深度点的工艺提高测试数据精度。在数据处理上实现数据质量自动检查,如果相邻测点测深增量ΔL=0,说明这2点为重复测试数据,需要计算其平均井斜角和方位角。再采用空间曲线积分法依次计算相邻测点垂深增量ΔH、水平位移增量ΔS、东西位移增量ΔE、南北位移增量ΔN,并对n个测点位移累积求和就是某点的垂深、水平位移、东西位移和南北位移。
3.2图表绘制
对井眼轨迹的描述主要采用水平投影图、垂直剖面图和三维轨迹图方式。绘制水平投影图和垂直剖面图时,需要考虑实现新老井眼轨迹对比功能。因为早期的陀螺测井测量和分析误差相对较大,在开展动调式陀螺仪对老井数据进行普查,落实真正的井眼轨迹时,进行新老井眼轨迹对比绘图(见图2)。
三维轨迹图主要利用计算机图形化计算,采用OPENGL绘图方式,实现井眼轨迹的三维缩放、旋转等功能,使用户对井眼轨迹走向更能直观准确地观察和掌握(见图3)。
3.3报告生成
陀螺测试井眼轨迹报告内容包括井基础数据、现场测试情况、井的三维轨迹图、垂直剖面图、水平投影图、解释结论表等。井基础数据或轨迹对比所需老井井眼数据直接通过油田上游信息系统A2数据库中获取,只需输入正确的井号,便可连接A2系统。
报告形式以Word格式表现,利用MicrosoftOffice系统中word模板编辑功能,可以预先对报告内容进行整体编辑排版。系统以word标签查找方式,完成计算结果、各种表格、图件等内容对应添加到Word文档中,实现一键自动生成报告的功能,满足不同用户、不同地质需求,大大降低了单井处理解释时间。
4陀螺测井技术应用
4.1克服磁性干扰,指导加密井钻进
油田开发后期,依靠打定向井、加密井或老井侧钻稳产增效[8]。动调式陀螺测井仪由于其不受磁性干扰的特点,可以在井距较小:磁性干扰强烈的环境下,准确测取井筒的倾斜角、方位角、工具面角等参数,进一步计算可得出垂深、南北偏移、东西偏移、闭合方位等参数,指导新井钻进。
TJH油田计划在的G71井附近打1口水平井,由于该区块为低渗透区块,井距普遍较小。为了保证侧钻顺利完成,该井在侧钻过程中,对本井及邻井均分别进行了陀螺定向及测斜,发现水平井设计井眼轨迹存在问题,该井与水平井的最小距离只有18.58m,存在安全隐患,随后根据计算结果及时调整钻井方案,保证了水平井顺利施工,投入正常生产后初期日产油近50t。
4.2应用陀螺定向,提高侧钻中靶成功率
在剩余油富集区实施侧钻井是老井产能建设的重要手段,陀螺定向在油田广泛用于老井开窗侧钻,减少定向时间,提高了侧钻中靶率[9-10]。
BQ油田B19-1断块计划在高部位部署BS24-7K井,实施前对BS24-7井进行陀螺测试,总水平位移与原来的认识相差204.2m(见图4、图5),根据结果及时进行调整钻井方案,避免井位落空。该井投产后,初期日产油9.8t。
5结论
(1)动调式陀螺测斜仪不受铁磁物质的影响,适用于有磁性干扰的丛式井、加密井的钻探测量及在完井后的套管内或钻杆内进行测量。无需人工校北并且采用先进的挠性支撑,更有效地提高了井眼轨迹测量结果的准确性。
(2)开发了井眼轨迹分析平台,采用与动调式陀螺测斜仪测量精度相匹配的空间曲线积分法,能够更加精细描述井眼曲线空间展布。
(3)动调式陀螺测井技术在油田落实井眼轨迹、判断油水井在油层中具置、指导加密井部署、提高侧钻中靶率等方面提供可靠了依据,能够取得很好的地质应用效果。
软件开发毕业论文范文模板(二):随采地震监测数据采集控制软件开发论文
摘要:随采地震能够对工作面前方地质异常体进行连续探测和实时预报,成为近几年的研究热点,但是目前还没有能够在煤矿井下开展随采地震长期连续监测的装备及配套软件。为了解决这个问题,基于MicrosoftFoundationClasses(MFC)开发框架,开发了一套随采地震监测数据采集软件,在室内、野外进行了为期3个月的联调测试,并且在贵州岩脚煤矿与井下随采地震监测设备开展了为期3个月的全面试运行。测试表明,软件实现了随采地震信号的高效采集、完全存储和处理软件的实时通信功能,具有运行稳定、操作便捷、处理高效、便于维护、无人值守等优点。
关键词:随采地震监测;数据采集;软件设计
我国的煤矿以井下开采为主,与国外相比,我国煤炭行业的信息化水平较低,矿山空间信息仍然以图表和文字作为主要的存储介质,信息基础设施未能跟上时代变化的脚步,使得煤矿企业的竞争力受到严重的制约[1]。煤矿井下危险具有多变性、隐蔽性,导致安全问题成为威胁煤矿工人生命的核心问题[2]。而采掘工作面更是矿井水害、顶板、火灾以及瓦斯等多种灾害事故的多发区,同时也是工作人员聚集区,因此,也是导致重大生命财产损失的高危区域[3-7]。随采地震勘探[8]是利用采掘活动激发的震动作为震源,探测工作面内部或者掘进面前方一定区域内地质构造的一种地震勘探技术,可以摆脱放炮的安全隐患及对正常采掘生产的影响,实现了采掘的同时进行超前探测[9-11]。随采地震所用震源信号是连续、非可控的,只有进行连续、长期监测,记录远场信号,将其与远场信号作互相关,得到清晰的相关峰值,才能将其转化为脉冲子波,代替炸药震源进行地震勘探[12]。
因此,研制随采地震监测装备及控制软件成为当务之急。本文针对随采地震监测装备的特点,充分分析其观测系统和监测数据的特点,利用数据库和文件系统的优点,设计了软件的数据结构;考虑处理软件的特点,设计了与处理软件之间的接口;最后基于MicrosoftFoundationClasses(简称MFC)开发框架,开发了数据采集软件,联合测试成功后,并在贵州岩脚煤矿进行了3个月的野外采集工作。
1随采地震观测系统及其特点
为了能够获得工作面内部煤层剧烈变化情况、断层和陷落柱位置与规模以及应力集中区等信息,目前的随采地震观测系统采用复杂部署模式。如图1所示,采用H形布局,共72道,其中孔中部署24道,分4个深孔,每个钻孔内部署6道,由一个孔中多级检波器串承担;其余的48道部署于工作面两侧巷道的锚杆上,图1中绿色圆点为巷道检波器。
数据采集分站为6通道,整个观测系统共需12台分站,数据处理时主要使用煤层中的槽波,而槽波的频率较高,可以达到500Hz,为了采集高质量的数据,采样间隔为250μs,这就对数据采集系统提出了新的要求,不仅仅数据道数多,采样率较高,而且是长期连续实时监测。
观测系统随着工作面的推进而移动,当工作面推进到检波器测点附近时,要依次将检波器拆卸,避免被埋入采空区中,当工作面推进到距离图2中黄色深孔检波器10~20m时,要将全部的黄色测点移动到蓝色测点位置,以此类推直到工作面回采结束。
2随采地震监测数据采集软件设计
2.1软件架构设计
针对分站多、数据量大、观测系统多变化、实时性要求高以及需要与数据处理分析软件进行通信的特点,采集软件利用多线程技术分别进行数据采集和存储,软件框架设计见图3。
2.2软件数据结构设计
采集软件中的数据可以分为两类,一类为数据量不大,变化周期较长的数据,比如:监测分站信息、观测系统信息等;另一类为数据量较大,而且变化周期很短的数据,比如:监测数据。根据数据特点,采集软件采用数据库与文件系统相结合的方式保存数据,以提高数据存储效率。监测数据采用文件系统保存,其他数据采用数据库方式保存。
a.数据库设计
数据库主要保存测区信息、采样率、每个文件的采样时长、采集分站信息、传感器信息、观测系统以及监测数据的保存路径等信息,其E-R模型见图4。
b.文件结构设计
监测数据的辅助信息,如采样率、观测系统、道数等信息全部保存在数据库中的监测数据表datafile_info中,按照采样顺序将每道数据作为一块写入文件,块的顺序与道号一致,样点值采用有符号的浮点型数据类型保存,详见图5。文件名为第一个样点的采样时间,格式为:YYYY-MM-DD_HH_MM-SS,不足两位数的补零。
2.3软件交互接口设计
本软件需要分别与井下采集分站和随采地震数据处理软件进行交互,主要涉及到两个接口。
a.与采集分站接口
为了便于和井下采集分站通信,采用UDP与TCP协议相结合的通信模式,采集软件的查询指令通过UDP协议与采集分站通信,通知指令和数据传输则采用TCP协议传输,其通信流程见图6。
b.与数据处理软件接口
为了提高数据存储效率,采集软件采用数据库与文件系统相结合的方式存储监测数据,大量的监测数据保存在文件中,但是文件的相关信息,如:道数、采集时间、采样率、观测系统等信息保存在数据库表datafile_info,与数据处理软件的通信也通过数据库来完成,数据记录表中专门设计一个字段为数据状态标志,数据采集时状态为0,采集结束后为1,数据处理软件不断查询该表中数据状态标志为1的记录,一旦有这样的记录,则根据数据库中的信息读取监测数据进行处理,处理结束后将该标志改为2,具体处理流程见图7。
3随采地震监测数据采集软件实现
3.1开发环境
软件基于VisualStudio的微软基础库类(microsoftfoundationclasses,MFC)开发框架,采用C++语言编写,充分利用其图形用户界面(graphicaluserinterface,GUI),大大提高软件的开发效率。在功能开发方面,为了满足随采地震监测的需要,提供数据采集和数据保存功能,采用菜单栏和对话框方式来实现软件与用户之间的人机交互。在整个应用框架的基础上进行功能性、界面性的填充。将软件开发分成若干部分,有效地提高软件研发效率和可读性,同时也便于后期维护升级。
3.2软件的实现
为了提高软件的运行效率,将软件操作界面、数据采集、保存和整理以及设备状态监测与恢复功能分别由单独的线程来完成。
a.数据库实现
数据库中最主要的两张表为传感器信息表和监测数据表,传感器信息表为观测系统表的基础,而且随着工作面的回采传感器移动后,传感器的位置信息就会发生变化,观测系统随之变化;监测数据表是数据采集软件与处理软件通信的基础,表中需要包含大数据文件路径、观测系统、采样率、采样时间和时长等重要信息,具体见表1和表2。
传感器信息表中(表1)以Station_ID、Channel和Modify_Time为联合主键,这样表中可以把同一个传感器在不同时间的坐标都保存起来,随时可以获取任何时间段的观测系统。
监测数据表中(表2)由File_Index为主键,该值为根据时间自动生成一个与时间有关的数,确保唯一性,同时将大数据文件的相关数据信息全部存入该表中,以方便数据处理软件随时查询。
b.软件操作界面
随采地震监测软件属于监测类软件,具有自动化程度高、人工干预少等特点,因此,需要用户的操作很少,主要是一些参数设置和监测分站运行状态的显示:系统中监测分站的数量、每台分站的传感器数量及其工作状态。
传感器参数设置功能主要包括传感器的安装位置及其坐标、所属监测分站号、通道号、测点号等信息的增加、删除和修改,由修改传感器的时间为主键,即可获得该时刻的观测系统。
c.数据采集功能
数据采集功能主要包括数据采集软件与监测分站之间的通信、监测分站状态查询与控制、数据采集等。为了达到随时能够与监测分站通信的目的,与监测分站的通信通过UDP和TCP协议两种方式来实现,其中监测分站的信息和状态查询由UDP协议实现,指令的发送、参数设置和数据采集通过TCP协议实现。TCP协议中采集软件为服务器端,监测分站为客户端,服务器端采用完成端口技术来接收多个监测分站上传的数据,为了便于数据保存,每个通道的数据分别存放在独立的缓存区中,缓存区采用循环数组的设计,当数据写入缓存区中后,循环数组的数据采集下标iColDataIndex+1,数据采集详细流程见图8。
d.数据保存
为了提高数据存储的效率,将数据存储分为数据保存和整理两个步骤,分别由两个线程执行。数据保存线程监测缓存区中数据采集下标iColDataIndex与已保存数据下标iSaveDataIndex之差,当该差值达到预设值时,从数据缓存区中读取数据并保存成数据文件(采用异步模式将每道单独存储为一个文件)。数据保存完成后,循环数组的已保存数据下标iSaveDataIndex+1,其数据保存详细流程见图9。
e.数据整理
为方便数据处理需要把同一时段的各道检波器的数据保存为一个文件,当由于检波器或者采集分站故障导致数据缺失时做填零处理。因而增加一个专门进行数据整理的子模块,由一个单独的线程来处理,其数据整理详细流程见图10。
f.系统自恢复
井下的供电系统或者网络经常检修或者故障,导致随采地震监测设备出现故障,当故障解决后,系统应该能够自动恢复,但是该系统是由多个监测分站组成的,分站之间需要不断进行时间同步,当一台分站出现故障后,该分站停止采集,其他分站仍然正常采集,当该分站故障解决后,要想恢复采集,必须要把系统中所有的分站进行重启。图11所示流程,就是用来检测网络是否出现故障,如果出现故障,则一直检测,直到故障修复,然后重新启动系统。
4随采地震监测数据采集软件联调与测试
4.1运行环境
数据采集软对运行环境的要求如下:
操作系统:windows7及其以上;CPU:2.5GHz,4核;内存:8GB;硬盘:500GB。
4.2联调与测试
该软件与井下监测分站以及数据处理系统在实验室进行为期1个月的联调测试,联调过程中对采集软件与监测分站和数据处理软件的接口进行了修改和完善,并在野外进行了为期2个月的稳定运行后,各项性能指标都达到了设计要求,软件实时波形界面见图12所示。最后在贵州岩脚煤矿进行为期3个月全面试运行,无论是采集数据还是与数据处理软件的通信都正常工作。
5结论
嵌入式软件的开发具有如下几方面的特点:
1)需要交叉开发工具和环境。由于嵌入式软件本身不具备自主开发能力,即使设计完成以后用户通常也不能对其中的程序功能进行修改,因此必须有一套开发工具和环境才能进行开发。这些工具和环境一般基于通用计算机上的软硬件设备以及各种逻辑分析仪、混合信号示波器等。开发时往往有主机和目标机交叉开发的概念,主机用于程序的开发、调试,目标机作为最后的执行机构。开发时主机和目标机需要交替结合进行。
2)软硬件协同设计。软硬件协同设计涉及以下方面:嵌入式软件设计、实时系统设计、硬件设计和软件设计。软硬件协同设计强调硬件与软件的协同性与整合性、软件与硬件的可裁减,以满足系统对功能、成本、体积和功耗等要求。
3)嵌入式软件开发人员以应用专家为主。通用计算机的开发人员一般是计算机科学或计算机工程方面的专业人士,而嵌入式软件则是要和各个不同行业的应用相结合的,要求更多的计算机以外的专业知识,其开发人员往往是各个应用领域的专家。
4)软件要求固态化存储。为了提高执行速度和系统可靠性,嵌入系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存储于磁盘等载体中。
5)软件代码高质量、高可靠性。尽管半导体技术的发展使处理器速度不断提高,片上存储器容量不断增加,但在大多数应用中,存储空间仍然是宝贵的,还存在实时性的要求。为此要求程序编写和编译工具的质量要高,以减少程序二进制代码长度,提高执行速度。嵌入式软件的核心是系统软件和应用软件,由于存储空间有限,因而要求软件代码紧凑、可靠,大多对实时性有严格要求。
6)系统软件的高实时性。在多任务嵌入式软件中,对重要性各不相同的任务进行统筹兼顾和合理调度是保证每个任务及时执行的关键,单纯通过提高处理器速度是无法完成和没有效率的,这种任务调度只能由优化编写的系统软件来完成,因此系统软件的高实时性是基本要求。嵌入式软件应用程序虽然可以没有操作系统直接在芯片上运行,但是为了合理地调度多任务,利用系统资源,系统一般以成熟的实时操作系统作为开发平台,这样才能保证程序执行的实时性、可靠性,并减少开发时间,保障软件质量。
2软硬件协同设计概念
嵌入式软件设计是使用一组物理硬件和软件来完成所需功能的过程。系统是指任何由硬件、软件或者两者的结合来构成的功能设备。由于嵌入式软件是一个专用系统,所以在嵌入式产品的设计过程中,软件设计和硬件设计是紧密结合、相互协调的。这就产生了一种全新的发展中的设计理论——软硬件协同设计。这种方法的特点是,在设计时从系统功能的实现角度考虑,把实现时的软硬件同时考虑进去,硬件设计包括芯片级“功能定制”设计。既可最大限度地利用有效资源,缩短开发周期,又能取得更好的设计效果。
系统协同设计的整个流程从确定系统要求开始,包含系统要求的功能、性能、功耗、成本、可靠性和开发时间等。这些要求形成了由项目开发小组和市场专家共同制定的初步说明文档。系统设计首先确定所需的功能。复杂系统设计最常用的方法是将整个系统划分为较简单的子系统及这些子系统的模块组合,然后以一种选定的语言对各个对象子系统加以描述,产生设计说明文档。其次,是把系统功能转换成组织结构,将抽象的功能描述模型转换成组织结构模型。由于针对一个系统可建立多种模型,因此应根据系统的仿真和先前的经验米选择模型。
3嵌入式软件开发的方法论
在建立一个完整的嵌入式软件或是产品时,大部分系统都很复杂,不但功能规格很多,还必须考虑例如价格、性能等其他因素,否则很容易做出一个失败的系统或是产品。因此,在进行系统开发之前,必须先了解一些系统设计技术,使得在开发过程中更为顺利。一般来说,产品设计的过程会经历几个步骤,为了确保这些步骤的合理性,我们需要一个设计方法论来面对整个设计过程。采用方法论有以下三个重要理由。
确认所做的每一件事情都是必须要做的,不做无谓的工作,也不漏掉关键性的重要工作,其中包含性能最佳化或是功能测试。
根据设计方法论可以发展出计算机辅助工具或是设计经验累积,汲取每一次产品开发的经验。再经过量化之后,可以发展出一套工具或是方法,让往后的产品设计步入自动化。
开发团队遵循同一套方法论,可以让团队成员更容易彼此沟通。每个人都能在短时间内了解整体过程中将经历哪些过程,需要何种支持与接收到何种结果。此外,也容易通过一套已经定义好的方法论,彼此相互合作协调。设计过程的目标是做出有一定用途且具有创新点的产品。产品的典型规格包含功能性、制造成本、性能表现、省电考虑和其他特性。
关键词计算机软件版权保护判例
1980年,美国国会通过了版权法修正案,将计算机软件正式纳入版权法的保护对象。由于美国计算机软件在全球的主导地位以及其在全球经济技术等方面重要影响,八十年代开始,世界各国纷纷也以版权法作为计算机软件知识产权保护的主要形式,从而形成了国际主流。但是,由于计算机软件的版权问题同计算机软件的技术及其发展是紧密相连的,法律界在具体处理软件的版权问题时遇到许多前所未有的新问题,并不断地引发出争论。为此,国际计算机法律界进行了大量的研究和探索,其中,世界上软件产业最发达的美国计算机法律界所遇到的问题最早也最多。因此,可以说美国在这方面已走在前面,特别是,美国法院在近十几年中对一系列软件版权案判处而形成的判例,不但丰富和发展了美国软件版权的法律体系,而且在很大程度上左右了世界软件版权保护的进一步发展。因此,了解和分析美国软件版权判例的发展,对于我们把握国际软件保护的发展趋势,不断完善我国软件版权保护是很有借鉴意义的。
一、美国前期软件版权判例简单回顾
美国虽然于1980年通过立法对计算机程序正式予以版权保护,但在法中没有作出很多具体规定,实际上是留给美国法院根据立法原则,已有的判例和具体案情进行处理,通过案例不断地丰富发展其法律体系。
美国前期的计算机程序案例主要是涉及计算机程序能否享有版权保护,什么形式或什么类型的计算机程序能够享有版权保护。现在这些案例被称为计算机程序版权纠纷的第一代案例。例如:Tandy公司诉Pesonal微计算机公司案(1981年)、Apple公司诉Franklin公司案(1983年)、Apple公司诉Formula公司案(1984年)等。其中影响最大、最具代表性的是Apple公司诉Franklin案(该案可详见电子工业出版社《计算机软件著作权保护手册》第129页,案件2)。通过这一系列案例解决了计算机程序作为版权保护对象的基本问题,具体地讲,主要包括以下一些结论:
1.计算机程序的源代码形式和目标代码形式都具有版权;
2.系统程序(包括操作系统、编译程序等)和应用程序一样都具有版权;
3.固化在ROM电路等载体上的程序具有版权;
4.微程序也可享有版权(详见《计算机软件著作权工作手册》第136页,案例4:NEC诉Intel案(1989年))。
以上这些通过美国第一代案例所总结出的结论已逐步被美国乃至世界计算机法律界所接受,有的甚至已纳入立法的法律内容。例如:有关计算机程序的源代码形式和目标代码形式都享有版权保护的内容在《欧洲共同体关于计算机程序保护的指令》、我国《计算机软件保护条例》以及关贸总协定关于知识产权的协定(Trips)中都有相应的规定。
二、计算机软件版权保护向深入发展
随着软件版权保护的发展,法律界面临着从简单的、逐字逐句的复制行为发展到带有伪装的拷贝行为的问题。再加上计算机软件作为一项智力劳动成果,它同一切人类文化科技成果一样,不可能凭空而降,它总是在不断继承、借鉴他人成果基础上不断改进、创新、发展而成的。根据版权法的基本原理,只要是利用原有软件的思想,则是合法的。因此,正确合理地区分计算机软件的思想概念与表现的界限,不但涉及对某个软件是否侵权的判定,而且直接涉及在软件开发过程中如何做到既能吸收他人软件中的先进技术,又不致陷入版权纠纷,同时还能享有自主的版权。从更深的角度来讲,正确合理区分软件的思想与表现,关系到版权法保护的基本宗旨,即通过保护软件版权所有者的合法权益,鼓励创作开发更多更先进的软件,促进技术和产业的健康发展。
上述第一代判例得到的结论从一定角度上讲,就是认定各类各种形式计算机程序的编码(包括源代码和目标代码)——美国法律界将其称为程序的文字性(Literal)部分,都是作品的表现,理应受版权法保护。而程序的功能目标,法律界也一致公认为属于作品的思想范畴,不受版权法保护。但是,在上述编码与功能目标两个“极端”之间存在着一个中间地带,例如程序的总体结构、接口设计、屏幕显示等等——美国法律界往往将这部分内容称为程序的非文字性部分,而这部分中间地带中哪些属于程序作品的思想概念,哪些属于程序的表现,这些有关软件开发中的版权问题,成为了计算机软件版权保护深入发展中的关键问题。
美国处理上述问题的案例出现在八十年代中期,例如:SAS公司诉S&H公司案(1985年)、Whelan诉Jaslow公司案(1986年)和Plains合作社诉Goodpasture公司案(1987年)。这些案例又称为第二代案例。其中最著名的也是影响最大的是联邦第三巡回法院二审判决的Whelan公司诉Jaslow公司案(该案可详见《计算机软件著作权工作手册第155页,案例12》)。
美国法院在处理计算机程序版权纠纷,采用了一些判断准则,其中最普遍的是所谓“接触加实质相似性”准则(Access&SubstantialSimilarity)。也就是说,法院在判定一个软件是否侵权时,首先要考虑被告是否曾经接触过原告的版权作品,如果被告有可能“看到或得到原告的程序”,则满足了“接触”条件。其次,法院要将两个程序进行相似性比较,比较包括文字成分(编程代码等)和非文字成分的相似性比较。如果出现相似或实质相似,就有可能判定侵权。这对于文字成分出现相似的情况,问题不大。而对非文字性成分相似的情况,相似的非文字成分必须是属于程序作品的表现时才有可能侵权。如果该相似的非文字成分是属于程序作品的思想概念范畴,就不应该认定为侵权,因为这是版权法原理所允许的。因此,问题又归结为程序作品,特别是其非文字性成分的思想和表现的区分。
美国第三巡回法院在审理Whelan诉Jaslow案中,提出:被告程序作品的思想就是该作品总的功能目的,除此之外,任何对该功能和目标不是必要的成分都应该视为表现。该法院认为,被告的程序虽然与原告程序编码完全不同,但两者的结构、顺序和组织(SSO)相同或相似,故构成了侵权,将计算机程序的版权保护一下子从文字性编码扩展到它的结构、顺序和组织。
除了计算机程序的结构、顺序和组织之外,八十年代中期开始,美国出现了许多涉及所谓计算机程序的“外观与感觉”(Look&feel),即程序的屏幕显示和用户接口版权纠纷的案件。例如:Broderbund公司诉Unison案(1986年)、Digital公司诉Softklone公司案(1987年)和Lotus公司诉Paperback公司与Stephenson公司(1990年)等(以上案例可参见《计算机软件著作权工作手册P168-178》)。这阶段的“外观与感受”案例与“SSO”版权案例都表现出明显的深入扩大版权保护范围的趋向。它们明确地提出,计算机程序中的非文字性成份,包括程序的SSO和用户界面中选单及其结构和组织、应答词及其显示形式和图象、命令和语法、功能键按击顺序和编排等,只要具有原创性和非显见性均可能享有版权……
从八十年代中期到九十年代初,这种将计算机软件的思想范围缩小,扩大受保护的表现的作法,虽然也有不同的作法(例如:1987年美国第五巡回法院判决的Plains合作社诉Goodpasture公司案),但是总的来讲,在美国法律界占了主导地位,同时也影响到了其他的国家,有些欧洲国家也开始采取了类似的扩大版权保护的作法。
三、当前软件版权保护向合理方向的新发展
从上述八十年代中期到九十年代初的美国第二代软件判例来看,美国对计算机软件的版权保护已经逐步背离了版权保护的基本原则,已经从保护“表现”深入到保护“思想”。其原因主要是,计算机软件的技术性较强,其思想和表现往往混合在一起,难以区分,而美国司法界对技术又不太熟悉。此外,美国计算机界,特别是大企业希望能给予软件的保护越强越好,以维护其优势地位也是一个重要因素。对这种做法,美国法律界乃至国际法律界是有不同意见的,尤其在日本,一些法学界人士对之提出了强烈的批评。同时,产业界的反应也是强烈的。持反对观点人士认为,目前,开发新软件总是要借鉴他人的思想的,没有人会一切从头做起。按照上述案例的作法,只是对资金雄厚的大公司有利,加强了大型软件公司的垄断地位,不利于竞争,并将遏制可兼容性产品的开发,使软件开发者如履薄冰,同时也使用户在软件的品种、价格方面失去选择机会,这将窒息软件产品的创新,不利于软件技术和产业的发展,有悖于版权法的宗旨。
随着争论的深入,九十年代初,形势出现转机。以1992年美国第二巡回法院判决的ComputerAssociatesInternational公司诉Altai公司案(简称Altai案)为标志的所谓第三代判例表明,美国软件保护又出现了逐步回归到版权基本原则上的趋势。
美国Altai案从根本上否定了Whelan案判决中建立起来的SSO等判断规则,同时又在版权基本理论和准则的基础上,结合软件的特点,提出了较为科学、合理的判断规则。
美国第二巡回法院在判决Altai案中认为:
(1)“一个程序仅含有一个思想”的观点不能成立,每个子程序至少有一个“思想”。在计算机领域,许多子程序已被标准化和规范化,以致于它们几乎在无意中就被写入计算机程序中,从而否定了Whelan案的“计算机程序思想唯一性”原则;
(2)一个程序中并不是只有一个结构;程序分解后的各个层次都存在一个结构,认为程序的“结构、顺序和组织”必然构成作品的“表现”的观点毫无根据。从而否定了Whelan案的SSO准则。
该法院在Altai案中提出了一套新的判断规则——“抽象、过滤和比较”三步判断法。具体内容为:
第一步对计算机程序进行抽象(Abstraction)。首先对指控他人侵权的原告程序分解为各级构成层次,从代码、子模块、模块……直到最高层次的功能设计,对程序分层次逐级抽象,将思想抽象出来。随着抽象层次的上升,被抽象出来的思想就越多,而剩下的“表现”就越少。
第二步过滤,即将抽象掉思想的各层次的表现,逐层次进行“过滤”。根据硬件环境、兼容性条件、效率因素、公有领域因素等外部因素过滤出不受保护的内容。
第三步比较,把过滤后剩余的部分与被指控侵权的程序在逐个抽象层次进行比较,以确定被告是否复制了过滤后剩下的“表现”。为确有复制,还需进一步评价被复制部分在程序中所占的重要性。
第二巡回法院在Altai案中提出并采用的合理界定计算机程序版权保护的范围的基本规则及其判断法则,较好地解决了版权基本原理在计算机软件方面的运用问题,体现了司法解释要与立法最终目的保持一致,既有效地保护权利人的合法权益,又有利于鼓励创新、鼓励合法竞争的公共利益。因此,引起了美国乃至各国计算机法律界的高度重视。在随后直至当前,从美国发生的众多计算机软件纠纷案来看,Altai案的法则已经普遍地为美国法律界所接受,并且在此基础上,有了进一步的发展和丰富。总的来说,有以下几方面特点:
1.分层抽象思想,Whelan案的SSO等法则已被实际否定
从近五年的美国案例来看,尽管美国各法院在判断计算机程序的版权保护范围的作法各有差别,但几乎所有的法院都拒绝采用Whelan案中提出的判别法则。人们越来越清楚一个程序包含许多层次的思想。Whelan案判决的法则普遍被认为过于简单化和保护过宽,所谓SSO法则实际已被否定。许多法院广泛地对计算机程序应用抽象法则(第九巡回法院称之为“内部”法则,而“过滤”则称为“外部”法则),确定不受保护各层次的思想,将其排除于侵权考虑之外。从而缩小了自Whelan案以来的受保护范围。
至于层次的划分一般都是自代码到功能目标设计逐层进行,但其中具体划分为几个层次,则根据具体案情,各有特色。例如:Altail案中法院是假设了目标码、源代码、参数表、服务要求和整体轮廓5个层次,进行抽象的。
又如:美国第十巡回法院在GatesRubber案中(1993年),是“按照与程序创作过程平行的方式”分成目标代码、源代码、算法及数据结构、模块、程序结构或构造、主要目标6层进行抽象的。
2.过滤作为判别法则的重要步骤,考虑了更多的因素
“过滤”是“三步判断法”中极重要的一个步骤,通过“过滤”将计算机程序中不受保护的成分剔除出去,显然将直接影响版权保护的范围。如果过滤得越多,则受保护的范围越小,侵权的可能性也越小。对于软件开发来说,其回旋的空间也越大。近年来,美国法院普遍接受“三步判断法”的法则,其关键在于广泛地采取了过滤法(或称外部法则等,实质差不多)来确认不受保护成分。而且总的趋势是过滤中考虑了更多的因素,也就是合理地缩小了版权保护范围。
过滤一般首先将根据版权法的基本原理进行。例如:第十巡回法院在Autoskill案中(1992年),首先根据如下原理进行过滤:
(1)根据思想——表达两分法原则程序的主要目的和功能总是不受保护的思想,类似地,每一典型模块也具有各自的目标和功能,而模块的基本功能和目标也是不受保护的思想或过程。
(2)根据过程(属于思想)和表现的两分法原则版权保护不能延及程序所体现的过程,而“通常,过程是作为部分系统构造、模块内部操作或算法出现的。”
(3)事实“计算机程序中,事实常常在很多抽象层次中出现,而且常常是作为部分数据结构或代码中的文字表达。”
(4)公有领域必须过滤出程序中所有非原创的成分,包括处有公有领域的成分。
(5)同一性原则版权必须拒绝保护那些“与思想、过程、发现等不可分离或紧密结合的表达。”
(6)精彩场景原则(Scenesafaire)第十巡回法院在该案中还应用了文学戏剧等作品中的精彩场景原则,对软件中某一特定主题的标准的或一般性的表现,也予以过滤,认为不应受保护。
最新的案例表明,美国法院在处理软件版权纠纷进行过滤时,还充分考虑计算机软件的特点:鉴于计算机软件是一个实用性很强的作品,其开发过程与一般文字作品不同,必然受到诸多因素的限制。如果将由于这些限制因素而造成的表现相似也视为侵权,显然也是不合理的。这就是所谓“外部因素”限制了表现的观点和作法。即将由于“外部因素”限制而产生的表现的相似不作为侵权论处。
其实,“外部因素”限制了表观的观点,在1987年美国联邦第五巡回法院审理Plains案中就已提出。当时,第五巡回法院就以棉花市场规律等作为外部因素限制了被告程序的表现为理由,否定了对被告侵权的指控。近年来,美国法院对“外部因素”的认识更加深入,在运用过滤法则中,确认了更多的“外部因素”,要求在相似性分析中过滤相关成分,从而限制或缩小版权的保护范围,近年来,一些判决中提到的外部因素有:
(1)硬件限制(Altai案、GatesRubber案和Cams案)即排斥对那些由于计算机硬件或其他硬件环境特征、标准等限制而产生的软件相似成分的保护;
(2)功用性(如Apple诉Microsoft案,第9巡回法院(1994年)、Capcom诉DataEast案,1994年等)即为功能目的纯粹的功能项或其编排将予以过滤掉。例如:著名的Apple公司诉Microsoft案中,法院指出:“纯功能性的项目或这些项目为了功能性目的”编排,完全不受版权保护所限。
(3)产业标准和用户要求产业标准和用户要求作为外部因素,即将那些由于符合产业标准而出现的相似部分排除于版权保护之外,是近年来美国法院的新提法(也有不同观点)。这个观点在GatesRubber案、Apple诉微软案、BrownBag案(第9巡回法院,1992年)和Capcom诉DataEast等案中均有反映。例如:美国法院在Apple诉Microsoft案中指出:“用户接口的功能元素或它们在产品中同类的编排的相似性并不暗含非法复制,但是标准化却跨越了竞争产品的功能性考虑”。“过度地扩大版权保护可能产生反作用,不利于固定的兼容标准的利用。”该法院又提出:“一些视觉显示和作品的功能目标紧密相关,都形成了标准,如果计算机程序的‘市场因素在决定顺序和组织时起了重要的作用’,那么这些模式可能会成为思想概念,而不为任何个人所用。”
(4)兼容性要求允许开发兼容软件一向是产业界的共识,在法律界也是没有很多疑义的。但在具体的司法案例中,将兼容性作为外部因素以限制版权保护范围则是近年来才出现。例如在Altai案中,法院提出,与其他程序共同运行的兼容性要求作为“外在考虑”因素,将限制程序员编写程序时的自由选择,从而限制了计算机程序中受保护的表现的范围。在第二巡回法院审理的GatesRubber案中,也提出软件兼容性要求所决定的程序部分应予以排除、过滤。
(5)除了上述之外,另外一些“外部因素”也被提出来作为“过滤”的条件如效率性,即设计编程中要求具有较高或最佳效率,进入公有领域可以自由使用的成分,广泛接受的编程方式等。
3.比较
比较是三步判断法则的第三步。通过比较,确定被指控侵权的程序与原告程序是否相似或实质相似,是原先美国法院一贯采用的方法。引入三步判断法则后,美国法院对如何进行比较以及判定侵权进一步进行了探索,并提出一些新的观点和做法。
(1)比较只对抽象——过滤后的成分进行从Altai案、GatesRubber案和Autoskill案来看,部分法院认为,被过滤的成分应该完全不予考虑。相似性比较只能根据过滤之后剩下的成分,然后才作出判断。
(2)在Apple诉Microsoft案、BrownBag等案中,法院提出,程序中某些过滤的成分,虽然就其本身来说,单独是不受保护的,但这些成分可以组成一个比其总和更强的作为整体的可能构成可版权的表现这种观点源自于汇编作品(或编辑作品)的版权,对于那些本身不享有版权的材料,如果在将其进行编排、挑选等工作,构成一个汇编作品,并体现一定独创性的话,则该汇编作品也是可以享有版权的。显然这种观点也是合理的。值得注意的是,这些法院在提出整体可能有版权的同时,又强调了,在这种情况下的比较,应该要求更高的相似性。
(3)新的更高的相似性比较标准
美国判例法在处理软件版权纠纷中发展了判定侵权的相似性标准,其中最突出的是,提出了“实质相同(或完全相同)”标准。例如:第九巡回法院在Apple诉Microsoft案中提出,对单个元素的复制。侵权的认定标准是采取“实质相似性”还是“实质相同性”标准,要根据这些元素是否受制于限定原则,如外部因素等来决定。如果受制于限定原则,则应该使用“实质相同”标准。第五巡回法院在EngineeringDynamiss案中(1994年)也提出,如果技术和思想概念约束限制了表达思想的可行的方式,那么只有“完全相同”的复制才可提讼。
“实质相同”标准也被提出来应用于对程序作品的整体分析比较之中,第九巡回法院认为:对于那些大多数由可受保护的元素组成的作品,将在实质相似的标准下,提供“宽”的保护;而对于那些大部分由本身不受保护的元素所组成的作品,其保护范围只限于其所构成的作品的原创性的节选和编排,将在严格的实质相同的标准下比较分析,以提供“窄”的保护。
4.其他一些新作法
(1)“不计琐细”准则的最后删选
目前,美国有的法院在进行侵权比较分析后,即使发现“相似”或“相同”的部分或元素,还要将此部分与整个程序进一步比较,看其在产品中所处的地位和作用。如果此部分内容对整个作品的作用影响不大,就仍可能按照“不计琐细”原则,不能构成侵权的基础。例如:第十一巡回法院在审理Mitek案时,经过抽象——过滤——比较三步检测分析后,进一步使用“实质相同”标准,对程序作品进行整体比较,最后判定原告程序中5个非文字成分是可受保护的且与被告程序中的成分相似。但是,法院最终仍判决不存在侵权,其理由是这5个相似成分在程序作品作为整体中,缺乏重要性,属于原告程序中的“不计锁细”部分。
(2)一些标准的用户接口成分不受保护
近年来,美国出现了一系列所谓软件的“外观与感受”的版权纠纷案例。“外观与感受”不是一个版权术语,它被用来标识软件的各种非文字成分。例如:“外观”往往是指计算机程序的外在各种视听成分,屏幕显示用户接口的可见部分和其他可视的和可听的输出部分。“感觉”则往往包括程序中的动态的操作流程、键盘设计和其他能产生各种功能的方法等。从表面上看,“外观与感受”只涉及用户界面及其开发的版权问题。实际上,它必然与整个软件开发过程中的版权问题有关,特别是,这些案例的处理将影响到对软件开发中接口界面(不仅仅是用户接口)的版权处理。近年来美国“外观与感受”案例的处理结果虽然各不相同,但有一点是趋同的,即一些标准用户接口成分不受保护。例如:图形接口的基本特征,除了特别有其特色,与功能无特殊关系等成分之外,一般不受保护。这种处理方法,对于兼容性软件开发商来说,在处理难以回避的接口版权问题方面,将是有利的。
(3)判断侵权时更多地使用专家证据
现在,美国法院无论在抽象——过滤阶段,还是在比较和整体判断相似性方面,都更广泛地采用专家论证以判断是否侵权。早期,由于计算机软件的技术复杂性,专家的论证在案件判定方面占较重要的地位。以后,随着Whelan案侵权准则的简化,在“外观和感受”案件中,法院往往提出以普通观察者的观察和印象作为判决时的参考。如今,随着三步判断法则的使用,无论是抽象层次的划分,外部因素及其他限制原则的选取和使用,还是实质性相似的分析……都缺少不了专家的论证,这也是一般普通观察者难以胜任的。这是计算机软件本身技术特征所决定的。在软件版权纠纷处理方面,专家的论证已显示出越来越重要的作用。
四、结束语
一、引言
软件开发团队是软件研发企业中最常见的项目团队,一个软件从构想到真正出现在市场上,需要大量的从事不同工作的人共同努力,因此,软件研发企业目前的产品生产管理主要是以“项目”为主而进行运作。软件开发作为一项知识密集型的智力劳动,客观上要求必须对团队内部的知识进行系统的挖掘与利用,从而不断产生新的知识,才能保证高质量地完成开发任务。同时,软件开发团队是以特定客户为中心的任务导向团队,开发任务目标完全以用户需求为中心,开发任务的约束条件以客户要求为准,不能完全参考以往的任何模式,因此软件开发团队对知识创新的需求十分明显。本文对软件开发团队的知识创新进行分析,提出促进软件开发团队知识创新的措施。
二、基于SECI模型的软件开发团队知识创新
日本学者野中郁次郎在1991年提出了经典的知识创造模型——SECI模型,描述了在一个组织内部隐性知识和显性知识相互转化从而实现组织知识创新的过程。本文运用SECI模型,对软件开发团队的知识创新分析如下:
1.软件开发团队在社会化知识活动中的知识创新
软件开发团队中每个成员都有自己的隐性知识,而这些知识需要在与他人的交流中观察、感觉才能进行分享。由此,社会化模式通常是从设立一个互动的“范围”开始,在这个范围内促进成员经验和心智模式的分享。在软件开发团队中,社会化主要通过团队领导者积极的示范和指导、合理调整团队的结构,以及交叉培训等方式进行,以促进知识共享与创新。
2.软件开发团队在外化知识活动中的知识创新
外化(Externalization)过程是从个体的隐性知识到群体的显性知识的过程。由于外化从隐性知识创造出新的显性知识,所以它对知识创新至关重要。在软件开发团队中,外化过程一般由“对话或集体思考”开始,通过各种技术手段,将团队成员个人的隐性知识显性化,并融入到团队显性知识库中,以供整个团队利用。
3.软件开发团队在联结化知识活动中的知识创新
联结化(Combination)是从分离的显性知识到系统的显性知识的过程。软件开发团队中的管理者经常会收集不同来源的显性知识,并使用这些经过编辑的显性知识来创造新概念,另外,在开发工作中,也贯穿着知识的联结化活动。这个过程要求对团队内部的显性知识进行整合,在团队内部建立独特的知识系统,以便更好地整理团队内部的显性知识。4.软件开发团队在内化知识活动中的知识创新
内化(Internalization)过程是从显性知识到成员个人的隐性知识的过程。在软件开发团队中,项目计划,以及开发过程中的错误、经验,都记录在各种各样的文档中,这些构成了团队的显性知识,但要想让团队成员合理地利用这些知识,只有成员们真正地消化、吸收,使其转化为自身的隐性知识。这一过程可以通过组织培训,使团队成员通过学习各种手册、文件,以及他人的经验,扩充自己的隐性知识,促进知识创新。
三、促进软件开发团队知识创新的措施
软件开发团队可采取以下措施促进知识创新:
1.构建学习型的软件开发团队
其中首先是要建设有利于知识分享与创新的团队文化,其次是通过各种信息技术手段为团队成员学习提供便利。文化从意识形态层面对知识型员工的行为产生影响,在组织中营造浓厚的尊重知识和共享知识的氛围,为知识创新提供了无形的拉力。一方面,要保证团队内部畅通的沟通渠道,另一方面,通过建立各种激励机制,促使作为知识发送方的团队成员在已形成的“Ba”中自愿地贡献出自己的知识。这样就达到全体成员都乐于参与知识共享,最终发展成知识共享型组织文化(即学习型团队)的目的,从而促进了团队知识社会化及外化活动。
2.建立团队知识库系统
这涉及到知识的外化和联结化活动,并且为内化提供了有利条件,主要可以借助以下信息技术:①文档管理技术。利用文档管理技术,坚强团队知识分享,促进团队知识创新。②数据仓库与数据挖掘技术。这一技术通过将团队成员个人的隐性知识显性化,并融入到团队显性知识库中,为团队内部成员提供更多显性知识。
3.构建实践社区
在团队中构建实践社区,使团队成员在日常实践活动中相互影响,交流经验,就共同关注的问题进行探讨,共同解决问题,以便更好地挖掘隐性知识的价值。可借助信息技术,如知识协作技术,进行协同管理,通过建立内部网络,提供知识积累、交流的基本平台,其中对软件开发团队影响最大的是基于因特网这样的协作技术,包括电子邮件、短信服务、即时通信等网络交流工具,使各层级的成员都可以及时、方便地交流。
参考文献: