上海市浦东新区人民法院
民 事 判 决 书
（2013）浦民三（知）初字第997号
原告（反诉被告）上海富远软件技术有限公司。
法定代表人徐峰。
委托代理人傅葛亮。
委托代理人张清霞，上海申浩律师事务所律师。
被告（反诉原告）中金再生资源（中国）投资有限公司。
法定代表人秦志威。
委托代理人杨巍，上海市锦天城律师事务所律师。
委托代理人沈琦，上海市锦天城律师事务所律师。
原告（反诉被告）上海富远软件技术有限公司（以下简称富远公司）与被告（反诉原告）中金再生资源（中国）投资有限公司（以下简称中金公司）计算机软件开发合同纠纷一案，本院于2013年11月27日立案受理后，依法适用普通程序，由审判员倪红霞、代理审判员叶菊芬、人民陪审员张蓓莉组成合议庭审理。被告中金公司在审理中提起反诉，本院于2013年12月26日依法受理该反诉，与本诉合并审理。本院对本案于2013年12月26日、2014年1月14日进行了预备庭审理，于2015年1月13日公开开庭审理。富远公司的委托代理人张清霞及中金公司的委托代理人杨巍到庭参加了预备庭审理和庭审，富远公司的委托代理人傅葛亮和中金公司的委托代理人沈琦参加了庭审。本案现已审理终结。
原告（反诉被告）富远公司诉称，其与中金公司于2011年8月22日签订《销售合同》，约定向中金公司提供由原告自主研发的《中金再生公司信息管理系统1.0版本》，采购费用总价人民币（以下至判决主文前币种相同）108万元。2013年5月，开发基本完成，但未签订交付、验收的书面材料，仅口头上进行了认可。2013年6月17日，其对中金公司员工进行软件培训，但由于中金公司的广东公司、上海公司技术领导发生意见分歧，需要修改软件中的细节，故其对软件继续修改，直至同年7-8月。现该软件系统已安装完成且正式上线，但中金公司仅支付了首笔款项54万元，一直拒绝支付余款54万元。故依据《合同法》第114条及《民事诉讼法》的相关规定起诉，请求判令被告中金公司：1、支付按照《销售合同》约定的费用54万元；2、支付迟延付款的利息，从安装及上线后一个月起到判决之日止，自2013年6月17日起暂计到起诉日约为13，296元。
被告（反诉原告）中金公司辩称：1、从合同签订到富远公司起诉已超过2年，但富远公司仍未交付合同约定的符合需求的软件。软件开发是在被告服务器上完成，不能因软件存在于被告服务器上就视为开发完成，这只是开发的步骤。2、富远公司所谓的培训其实是对软件纠错、评价和修改的过程，不能证明软件已交付或验收，且当时中金公司对软件也提出了许多修改意见。3、涉案软件仍处于开发过程中，不符合付款条件，而富远公司发律师函要求支付余款，故中金公司意识到可能有争议，合同无法履行，所以将服务器端口关闭。同时，中金公司提起反诉称，《销售合同》约定剩余价款分别在系统安装并通过验收后3个工作日内和正式上线使用后一个月内支付。但截至中金公司提起反诉，富远公司研发的系统仍未能通过中金公司验收，更未正式上线进行操作使用，不符合付款条件。富远公司在长达两年的时间内未向中金公司提供合同约定的系统，导致中金公司的正常生产经营受到严重影响，在此情况下要求中金公司付款，违背了正常的交易秩序。故请求判令：反诉被告富远公司继续履行《销售合同》，在两个月内完成对“中金再生公司信息管理系统1.0版本”的研发，并确保该系统遵循《中金再生ERP系统需求分析说明书》的要求，可以上线使用。2014年2月18日，中金公司以富远公司仍未交付满足双方约定功能的软件，导致合同目的不能实现为由，将反诉请求变更为“请求于2014年2月18日解除反诉原、被告签订的《销售合同》；反诉被告归还反诉原告已支付的合同款54万元”。
针对反诉，原告（反诉被告）富远公司辩称：1、其已交付软件并验收，由于双方当时关系较好故未签署书面材料，但从培训内容可反推软件已交付、验收，之后的修改实为二次开发。2、即便存在少量后续修改的部分未完成，也是因中金公司在2013年7月无任何理由关闭服务器端口所致。3、合同并未约定履行期限，即便富远公司开发的软件不符合中金公司需求，也要求继续履行，不同意解除合同。
经审理查明：
2011年8月，原告（反诉被告）富远公司（乙方）与被告（反诉原告）中金公司（甲方）签订《销售合同》，约定：甲方向乙方购买具备业务核算功能、统计核算功能的软件，使用范围包括甲方及其关联公司。该合同第一条“合同标的”约定：乙方向甲方提供由乙方自主研发的《中金再生公司信息管理系统1.0版本》（以下简称涉案软件），并进行相关实施安装及培训工作。乙方保证能及时准确地按照甲方需求提供该软件，当甲方对结算数据格式有新的要求时，乙方在约定时间内进行免费升级。第二条“合同价款，付款方式，付款范围及其他约定”约定：……（二）本合同软件费及前三年服务费为108万元。（三）上述报价包含向中金公司需求调研后，所做各定制研发模块。（四）报价包含附赠项目上线后前三年上门免费标准升级维护费。……（八）付款方式为甲方在合同签订后15个工作日内向乙方支付合同金额50%即54万元；系统部署安装后10个工作日内进行系统验收，验收通过后三个工作日内支付合同金额40%即43.2万元；正式上线使用后一个月内支付10%即10.8万元。第四条“安装、修改、测试及验收”约定：……（二）乙方在本系统经甲方测试通过后，向甲方交付使用，甲方应于五个工作日内安排本系统运行。第五条约定该系统源代码版权归乙方所有。
合同签订后，中金公司于2011年9月27日向富远公司支付54万元。富远公司进行软件开发时，最初直接在被告的两台服务器上进行开发，其中一台安装应用程序（以下称应用服务器），一台安装数据库（以下称数据库服务器）。2012年5月，软件的框架搭建完毕。之后，富远公司主要在己方开发好模块，再通过远程登录的方式上传到中金公司的服务器上，但仍有部分开发工作仍直接在被告服务器上进行。
2013年6月17日，富远公司和中金公司的相关员工开会，由中金公司项目主管卢智伟主讲，内容主要是如何在流程管理中输入数据，其中谈到“上线之前给大家培训，就是为了统一一些细节方面的事情……”。
2013年7月26日，中金公司关闭上述服务器的端口。
2013年8月初，富远公司委托代理人向中金公司发律师函催款。同年8月12日，中金公司委托代理人回函给富远公司，表示富远公司未完全履行讼争合同项下义务，该软件开发尚处于初级阶段，故要求富远公司在收到律师函后三个月内向中金公司交付讼争合同项下的完整、合格、可用且符合《ERP需求分析说明书》的软件，并完成全部安装测试；若未在上述期限内履行完毕，中金公司将保留合同项下所有权利，包括但不限于依法解除合同，并依法追究违约责任。
双方关于软件开发的需求并未签订书面文件。审理中，经双方一致确认，涉案软件应包含审批流、台账、普通报表、总报表及其他共五类模块，软件应能生成相应样式且数据准确的台账、普通报表、总报表。其中，审批流用来输入和审核实际统计需要的数据，包括采购审批单、销售审批单等模块；台账为流程过程中产生的明细统计数据，包括采购台账、销售台账、库存台账等模块；普通报表为根据台账统计的业务报表，包括利润表、利润调节表等模块；总报表为结合台账和普通报表统计出的汇总报表，包括银行存款余额汇总表、资金平衡汇总表等模块。关于软件的系统架构，富远公司认为系其安装在中金公司服务器上的软件中的架构，而中金公司则提出其中有部分台账、普通报表和总报表缺少必要字段，且还有3个普通报表（应收账款财务与业务差异明细、库存财务与业务差异明细、营运资金平衡表）未开发；除此外，其余台账、普通报表和总报表的样式和字段需求双方均确认一致。
经中金公司申请，并经富远公司同意，本院于2014年4月委托华东政法大学司法鉴定中心对涉案软件是否能够准确生成双方确认了字段要求的台帐、报表以及未完成部分在整个软件开发中所占工作量进行鉴定。该鉴定中心于同年12月2日出具华政司鉴中心（2014）计鉴字第JSX14-17号司法鉴定意见书，鉴定意见为：经过检验分析，对于双方确认了字段要求的台账、报表，涉案软件能够生成的台账为16个、一般报表3个、总报表0个；其中能够生成准确数据的台账为2个、一般报表2个、总报表0个；涉案软件存在应完成而未完成的部分，其在整个软件开发中所占的工作量为55.10%。
经富远公司申请，本院通知鉴定人廖某某出庭作证。鉴定人对具体鉴定过程陈述如下：1、关于涉案软件是否能准确生成相应台账、报表的鉴定，采取将在服务器的涉案软件中输入数据后的直接测试结果、在鉴定机构机器上运行的仿真分析结果及中金公司的手工台帐、报表进行比对的方式，综合得出结论。其中，仿真分析的过程为将涉案软件全部拷贝到鉴定机构的机器上后，将fymanager改为联机状态，再从台账、一般报表和总报表的代码中查找有效存储过程，并执行存储过程。2、关于工作量的鉴定，系根据开发环境、开发模式、存储过程、业务情况、模块数、XML描述文件、数据库中提取的对象或表格数量、存储过程数量、存储过程对应的代码量、开发完成所需添加的代码量等因素来计算。在总的工作量计算中采取了综合的方法，有的数据可能稍微偏向原告，有的可能稍微偏向被告。3、富远公司和中金公司确认数据库服务器中有fymanager和fyapply两个数据库，而其中fymanager为脱机状态。为此，鉴定人员对应用服务器中的连接代码进行分析，发现其中并无fymanager的通路。若要将fymanager联机，还要在应用服务器中添加或修改代码。因此直接在服务器的软件中输入数据时未将fymanager联机，但在仿真分析中将fymanager联机。
中金公司为上述鉴定预缴鉴定费10万元。富远公司预缴鉴定人出庭费1，000元。
上述事实，由双方当事人的当庭陈述，富远公司举证的《销售合同》、律师函、会议录音材料、鉴定人出庭费收据，中金公司举证的发票、电子转账凭证、鉴定费发票，华东政法大学司法鉴定中心出具的司法鉴定意见书、鉴定人的意见等经庭审质证的证据证实。
对于上述鉴定意见书，富远公司提出以下异议：1、fyapply和fymanager都是数据库的一部分，fymanager为默认数据库，将其联机不需要修改配置。但鉴定机构未将fymanager联机后鉴定，导致无法依据客观基础得出结论。2、鉴定机构对工作量的鉴定只是对功能做了不完全测试，违背软件开发常识。3、鉴定所依据的标准是被告单方做的表格。因此上述鉴定违背了事实和法律依据。按照富远公司自行计算，工作量达到将近90%，剩余10%未完成是中金公司先关闭端口造成。中金公司对鉴定意见书的真实性无异议，但认为鉴定机构关于工作量的鉴定中做出了对富远公司的有利推定。本院认为，双方共同确认委托上述鉴定机构进行鉴定，三名鉴定人亦均系有计算机司法鉴定资质的鉴定人，且鉴定程序合法。富远公司及中金公司提出的上述异议属鉴定方法问题，鉴定人在出庭作证时均作出了回应和解释。鉴定人在鉴定过程中有权依据其专业知识选择鉴定方法并进而作出鉴定意见，在当事人未提出证据证明鉴定方法错误的情况下，本院对上述鉴定意见书予以采纳。
对于富远公司提供的2013年6月17日会议录音材料，中金公司认为无法确认被录音人身份，故对其真实性不予认可，且认为内容不能证明软件的交付和验收。本院认为，中金公司在第二次开庭时对录音的真实性已予以认可，仅对其证明目的不予认可。因此，本院对该证据予以采纳，但是否能达到其证明目的还需结合其他证据综合判断。
富远公司还提交了《顶点LiveBOS灵动业务架构平台购销合同书》及银行单据，证明原告为开发软件付出了巨大成本。中金公司对上述证据不予认可。本院认为，该证据与本案法律关系的认定并无关联，本院不予采纳。
本院认为，原告（反诉被告）富远公司与被告（反诉原告）中金公司签订的《销售合同》系双方的真实意思表示，合法有效，对原、被告均具有约束力，双方均应按约全面履行义务。该合同虽名为销售合同，但从合同约定的标的、履行方式及双方当事人在庭审中的陈述来看，系富远公司根据中金公司的要求为其进行软件的定制开发。在合同名称与合同内容不一致时，应以合同约定的权利义务内容确定合同的性质，故本案合同属计算机软件开发合同。
本案主要争议在于富远公司是否已按约完成了软件开发工作。对此富远公司认为，2013年6月的培训证明软件已交付并验收。中金公司则认为，上述所谓的培训只是开发过程中例行的测试会议，富远公司并未完成软件开发。本院认为，关于涉案软件的验收，讼争合同仅约定“本系统部署安装后10个工作日内进行系统验收”及“乙方在本系统经甲方测试通过后，向甲方交付使用，甲方应于五个工作日内安排本系统运行”，但对于如何验收并未具体约定。本院认为，在计算机软件开发合同中，软件验收为合同履行过程的重要内容，软件开发者作为义务履行的一方，对此负有举证责任。现富远公司作为软件开发者，并未提交直接证据以证明涉案软件经过验收，而仅以其所谓的“培训会议”中的“上线之前给大家培训，就是为了统一一些细节方面的事情……”的表述，认为软件已通过验收。然而，该“培训会议”的内容主要为如何输入数据，而并无其他内容直接提到涉案软件已通过验收或即将正式上线使用。从文义上看，所谓的“上线之前”是一个比较模糊的概念，仅凭此并不能认为系软件验收后到正式上线前的一段期间，而有可能包括上线前的全部开发期间。从讼争合同关于验收的约定来看，涉案软件在验收之前应为软件的整体部署安装，验收通过之后应安排软件的正式使用，但富远公司对此亦并未举证。再者，富远公司根据中金公司在此次会议上提出的修改意见继续开发，且修改范围未曾超过软件需求的系统框架，也从侧面证明涉案软件并未验收通过。最后，根据鉴定意见书，涉案软件也确实并未开发完成，且未完成部分在整个软件开发中所占的工作量为55.10%。因此，上述“培训会议”中“上线之前给大家培训，就是为了统一一些细节方面的事情……”的表述在无其他证据佐证的情况下，不能达到其证明目的。故富远公司的诉讼请求缺乏事实与法律依据，本院不予支持。
富远公司称软件未开发完毕系因中金公司关闭服务器端口所致。本院认为，根据双方在庭审中的陈述，富远公司在开发软件时有现场开发和远程登录提交两种方式，故关闭服务器端口并不会导致富远公司无法履行合同，而事实上富远公司在中金公司关闭服务器端口后并未要求继续履行合同，而是以合同履行完毕为由要求中金公司付款，反而是中金公司一再要求富远公司继续履行合同。因此，对富远公司的上述意见，本院不予采纳。
富远公司还提出，讼争合同未约定履行期限，即便其开发的软件不符合中金公司需求，也要求继续履行，不同意解除合同。本院认为，根据《合同法》第六十二条第（四）项的规定，履行期限不明确的，债务人可以随时履行，债权人也可以随时要求履行，但应当给对方必要的准备时间。中金公司在2013年8月已发函要求富远公司在收到律师函后三个月内交付软件并完成测试，在2013年12月26日提起反诉时又再次要求富远公司在两个月内完成软件开发并确保能上线使用。可见，中金公司曾两次要求富远公司履行，并给予了必要的履行时间，但富远公司一直以合同已履行完毕为由要求中金公司支付余款。因此，本院对富远公司的上述意见不予采纳。
根据讼争合同关于合同目的的约定，富远公司为中金公司开发的软件应具备业务核算功能和统计核算功能。现富远公司交付的软件中，实现业务核算、统计核算功能所涉的核心模块，即台账、一般报表和总报表大部分未完成。虽然根据鉴定意见书，涉案软件开发工作量的完成度为44.9%，然而涉案软件系作为一个整体来使用并实现功能，上述任何一个主要模块对软件整体功能的实现而言均必不可少，此种完成程度必然导致涉案软件的功能难以实现，使得合同目的不能实现，富远公司构成根本违约。中金公司据此要求解除合同符合法律规定，本院确认讼争合同因其行使法定解除权予以解除。当事人一方行使法定解除权的，合同自解除合同的通知到达对方时解除。本案中，本院将中金公司解除合同的书面请求送达富远公司的时间为2014年2月24日，故合同于该日解除。
鉴于合同解除的原因在于富远公司违约，中金公司请求其返还已支付的合同款，不违反法律规定，本院予以支持。据此，依照《中华人民共和国合同法》第八条、第九十四条第（四）项、第九十六条第一款、第九十七条之规定，判决如下：
一、原告（反诉被告）上海富远软件技术有限公司与被告（反诉原告）中金再生资源（中国）投资有限公司签订的《销售合同》于2014年2月24日解除；
二、原告（反诉被告）上海富远软件技术有限公司应于本判决生效之日起十日内返还被告（反诉原告）中金再生资源（中国）投资有限公司合同款人民币54万元；
三、驳回原告（反诉被告）上海富远软件技术有限公司的诉讼请求。
负有金钱给付义务的当事人，如果未按本判决指定的期间履行给付义务，应当依照《中华人民共和国民事诉讼法》第二百五十三条的规定，加倍支付迟延履行期间的债务利息。
本诉案件受理费人民币9，332元、反诉案件受理费4，600元、鉴定费100，000元、鉴定人出庭费1，000元，合计114，932元，由原告（反诉被告）上海富远软件技术有限公司负担。
如不服本判决，可在判决书送达之日起十五日内，向本院递交上诉状，并按对方当事人的人数提出副本，上诉于上海知识产权法院。
审 判 长 倪红霞
代理审判员 叶菊芬
人民陪审员 张蓓莉
二〇一五年三月二日
书 记 员 俞 丹
附：相关法律条文
一、《中华人民共和国合同法》
第八条依法成立的合同，对当事人具有法律约束力。当事人应当按照约定履行自己义务，不得擅自变更或者解除合同。
依法成立的合同，受法律保护。
第九十四条有下列情形之一的，当事人可以解除合同：
……
（四）当事人一方迟延履行债务或者有其他违约行为致使不能实现合同目的；
……
第九十六条当事人一方依照本法第九十三条第二款、第九十四条的规定主张解除合同的，应当通知对方。合同自通知到达对方时解除。对方有异议的，可以请求人民法院或者仲裁机构确认解除合同的效力。
……
第九十七条合同解除后，尚未履行的，终止履行；已经履行的，根据履行情况和合同性质，当事人可以要求恢复原状、采取其他补救措施，并有权要求赔偿损失。
二、《中华人民共和国民事诉讼法》
第二百五十三条被执行人未按判决、裁定和其他法律文书指定的期间履行给付金钱义务的，应当加倍支付迟延履行期间的债务利息。被执行人未按判决、裁定和其他法律文书指定的期间履行其他义务的，应当支付迟延履行金。