软件著作权保护的是“表达”,不保护“思想”。这句话是所有软件著作权争议的起点,也是最容易被误解的一句。
哪些属于表达(受保护),哪些属于思想(不受保护),决定了维权的成败。
一、受保护的部分
- 源代码:具体的程序代码,包括结构、顺序、组织。逐行复制或实质相似,构成侵权。
- 目标代码:编译后的可执行程序,同样受保护。
- 文档:设计说明书、用户手册、流程图,属于文字作品或图形作品。
- 界面设计:具有独创性的界面(图标、布局、色彩搭配),可作为美术作品保护;但通用的、功能性布局不受保护。
二、不受保护的部分
- 思想、处理过程、操作方法、数学概念:算法本身的想法不受保护。比如“用快速排序实现排序”这个想法,谁都可以用;但具体的代码实现受保护。
- 功能性要素:为实现功能所必需的表达(如标准的接口定义、必要的界面元素),属于“混同原则”下的排除。
- 通用编程语言、通用数据结构、通用算法:不属于任何人的专有表达。
- 公有领域的表达:已进入公有领域的代码、开源代码(需遵守许可协议)。
三、侵权判定的方法
- 接触 + 实质性相似:原告需证明被告有机会接触其软件(如前员工、合作方、公开销售),且被诉软件与原告软件在表达上实质性相似。
- 抽象—过滤—比较(三步法):先抽象出软件的结构层次,再过滤掉思想、功能性要素、公有领域内容,最后比较剩余的表达部分。
- 代码比对:逐行比对 + 结构比对(模块划分、函数调用关系、变量命名习惯)。
实务中,“实质性相似”往往通过鉴定机构出具意见,比对源代码的相似度、结构的一致性、注释与变量命名的雷同。
四、一个算法被抄袭的案例
某工业软件公司开发了一套排产优化软件,核心是启发式调度算法。投入研发 3 年,研发费用 2400 万元。
两年后,一家竞争对手推出功能高度相似的产品,界面布局、操作流程几乎一致,价格低 40%。
维权过程:
- 申请诉前证据保全,查封了对方的源代码;
- 鉴定比对:双方源代码的相似度为 12%,主要集中在通用的数据结构与工具函数;核心算法部分的代码写法不同(对方用不同语言实现,逻辑结构不同);
- 界面比对:布局相似,但图标、配色、文字表述不同。
法院认定:
- 源代码相似度 12%,且相似部分属于通用表达,不构成实质性相似;
- 界面布局属于功能性设计(排产软件的操作流程由业务逻辑决定),不受著作权保护;
- 核心算法属于思想,著作权不保护;
- 判决驳回诉讼请求。
问题在哪:企业只做了软件著作权登记,没有申请专利。该算法的技术方案(调度规则、约束条件的处理方法)本可以申请发明专利,但企业认为“算法不能申请专利”而放弃。
实际上,涉及技术处理的算法(解决技术问题、产生技术效果)可以申请专利。若当初申请了专利,竞争对手用不同语言实现相同逻辑,仍可能落入专利保护范围。
五、软件的立体保护
- 著作权:保护代码与文档的表达,登记成本低,但保护范围窄(不保护思想)。
- 专利:保护技术方案(如算法与具体技术领域结合的处理方法、系统架构),保护范围宽,但需满足三性且公开技术。
- 商业秘密:保护不公开的源代码、技术诀窍,需保密措施到位,维权举证难。
- 商标:保护软件产品名称、Logo。
四者组合,才是完整的保护。只做著作权登记,等于只保护了“写法”,没保护“做法”。
六、操作清单
- 软件完成后及时做著作权登记(虽非强制,但便于举证);
- 评估核心算法是否可申请专利(是否解决技术问题、产生技术效果);
- 可专利的,尽快申请,不要等产品上市;
- 不可专利的,作为商业秘密保护,做好权限与保密管理;
- 界面设计做美术作品登记(有独创性的部分);
- 保留开发过程文档(需求、设计、代码提交记录),证明独创性与完成时间;
- 员工与外包方签订著作权归属协议;
- 使用开源代码的,核查许可协议,避免传染;
- 发现侵权时,申请证据保全,固定源代码;
- 维权前做侵权比对,评估胜诉可能性。
软件著作权保护“怎么写”,专利保护“怎么做”,商业秘密保护“不让人知道怎么做”。三者缺一,就等于把一半的技术资产暴露在外面。
七、常见问题
以下问题取自客户咨询中出现频率最高的几处,答案与正文相应章节对应,可结合自身情形对照使用。
问:软件著作权保护什么,不保护什么?
答:保护源代码与文档的表达,不保护思想、算法、处理过程与操作方法。他人独立开发出功能相同的软件,只要代码不构成实质性相似,就不侵犯软著。
问:登记时要提交多少源代码?
答:一般提交前三十页与后三十页,不足六十页的全部提交。核心部分可以做遮挡,但遮挡比例不得超过百分之五十,且不能影响整体判断。
问:算法怎么保护更有效?
答:算法本身若构成技术方案可申请发明专利;不公开的实现细节可作为商业秘密保护;软著只保护代码表达。核心算法建议软著加专利加商业秘密三层组合。