山东省高级人民法院民 事 判 决 书（2019）鲁民终852号上诉人（原审被告）：济南新诺金软件有限公司，住所地山东省济南市高新区三庆世纪财富中心C座1102室。法定代表人：袁常青，执行董事。被上诉人（原审原告）：山东大嫂家庭服务有限公司，住所地山东省济南市槐荫区经七路832号一层112室。法定代表人：何霞，总经理。委托诉讼代理人：肖迪，女，该公司员工。委托诉讼代理人：吴国燕，山东元序律师事务所律师。上诉人济南新诺金软件有限公司（以下简称新诺金公司）因与被上诉人山东大嫂家庭服务有限公司（以下简称山东大嫂公司）计算机软件开发合同纠纷一案，不服山东省济南市中级人民法院（2018）鲁01民初2132号民事判决，向本院提起上诉。本院受理后，依法组成合议庭进行了审理。本案现已审理终结。新诺金公司上诉请求：撤销一审判决，改判驳回山东大嫂公司的全部诉讼请求，一、二审诉讼费用由山东大嫂公司负担。事实与理由：一、一审法院认定事实错误。1.与服务员签约页面截止时间设置显示不全（缺陷7）、预约服务员时根据设置条件无法匹配出结果（缺陷8）、打印服务员登记表弹出“今日提示”页面（缺陷9）是系统崩溃造成的。客户基本信息有差别当然就是不同的客户，录入信息不同的客户数据当然不是重复录入。而产品是否允许录入冗余数据是产品的功能，而产品具有什么样的功能是由供货商也即新诺金公司决定的，故一审法院对于冗余信息无法自动识别和删除权限受限（缺陷4）的认定是错误的。月服务天数统计错误（缺陷6）是山东大嫂公司没有按要求逐项及时核销，是对软件使用不当造成的。2.涉案合同列明了涉案软件包含的内容，并没有网上家政商城，网上家政商城需要由山东大嫂公司在网站管理模块中自己设计，并非新诺金公司进行开发。新诺金公司已经按照合同约定的时间交付了网站管理模块和网上家政模块。新诺金公司在2014年8月完成了支撑系统的安装调试工作，2014年11月完成了家政模块和培训模块的安装调试工作，并按时交付使用，新诺金公司提供的访问日志可以证明软件能够正常使用。而涉案软件在2016年4月崩溃前能够正常运行，正是新诺金公司提供了培训的证据。故一审法院认定新诺金公司未开发网上商城、未依约进行安装调试、未提供培训指导等义务的事实错误。二、本案一审法院判决书中使用了未经质证的证据。一审法院提到的“被告官网”的“网站商城演示版”以及“2016年3月25日，被告使用127.0.0.1的主机登陆系统设置用户名和管理员权限”等证据均未在一审时由当事人提交。三、一审法院适用法律错误。1.涉案合同是买卖合同，而非软件开发合同。2.山东大嫂公司的起诉已经超过诉讼时效。山东大嫂公司未作答辩。山东大嫂公司向一审法院提出诉讼请求：1.依法解除山东大嫂公司与新诺金公司签订的产品购买协议书；2.判令新诺金公司返还山东大嫂公司已支付的货款65万元；3.判令新诺金公司承担违约金1.95万元（货款总价65万元的3%）；4.判令新诺金公司赔偿山东大嫂公司损失5万元；5.判令诉讼费由新诺金公司承担。一审法院认定如下事实：济南万家盛世人力资源管理咨询有限公司（以下简称万家盛世公司）注册成立于2005年8月17日，注册资本500万元，经营范围包括家庭服务、人力资源服务等。2017年1月9日，万家盛世公司变更为山东大嫂公司。2014年7月28日，万家盛世公司（甲方）与新诺金公司（乙方）签订产品购买协议书，约定：一、本协议签订前，甲方已与乙方就所开发的互联网家政平台及业务综合管理系统（以下简称家政系统）的功能进行了详细沟通，甲方对乙方所提供的产品的功能和不足有了清楚、明晰的了解，确认乙方所提供的产品可以满足自己的需要。二、甲方确认在协议签订前乙方已尽到法律所规定的告知义务，乙方已向甲方详细介绍了乙方所承担开发的家政系统的功能、特点及体系结构，以及在甲方应用环境中相关产品的使用方案，认为产品可以满足甲方的需要。三、乙方同意对家政系统的安全承担责任，负责指导甲方稳定、安全地使用网上商城系统，负责就系统关键数据的安全管理向甲方提供建议。甲方同意承担为改进和提高系统运行的可靠性、稳定性和安全性所采取的措施而产生的费用。四、对于乙方家政系统中未发现的、可能影响甲方使用的缺陷，双方同意通过免费产品升级的方式对产品进行改进，以满足甲方的需求。乙方向甲方提供的免费产品升级服务仅限于对本协议规定的软件中隐含的错误或不足的纠正，不包括对产品功能的扩展或产品的升级。五、双方同意乙方承担的为甲方开发的家政系统采用下面的体系结构：操作系统采用CenTOS6系列的Linux操作系统；数据库采用Linux系统中自带的PostgreSQL数据库；Web服务器采用Linux系统中自带的Apache2服务器；系统采用B/S模式，开发采用PHP5程序设计语言；网上结算与支付功能统一使用IPS环迅的第三方支付平台。六、家政系统包括用户管理模块、网站管理模块、网上家政模块、家政培训管理模块和家政业务管理等，可以实现网站管理及网页在线设计，实现对培训业务的全面管理和对家政业务的全面管理，支持集群式用户管理和网上结算功能。上述产品与开发服务的合计金额为65万元。七、乙方负责上述产品的安装和调试，并承担在安装和调试过程中产生的费用。八、甲方负责协调、配合乙方安装和调试上述产品期间的相关实施工作，承担系统运行所需要的硬件及网络环境建设，承担系统运行过程中所需要使用的第三方功能的费用。九、乙方向甲方提供的售后服务按照乙方的售后服务规定执行，该规定作为本协议的附件，具有与本协议相同的约束力。十、甲乙双方同意采用一次性付款的结算方式，在协议生效后，甲方将全部货款支付给乙方，乙方在收到货款后的20日内完成上述产品支撑系统的安装与调试，并在90日内完成培训模块与业务管理模块的开发。十一、乙方同意向甲方提供一年免费的服务（包括代码升级、系统的远程管理与维护和开发周期不足一周的功能扩展模块的开发），免费服务的时间从项目开发结束之日起开始计算。十五、乙方如因自身原因无法提供上述产品，或无法在协议规定的期限内完成产品的开发、安装和调试工作，或违反协议第七条、第十一条和第十三条中的任一条款，甲方有权终止本协议的执行，由此造成的损失由乙方承担。十六、如一方违反本协议，导致协议终止执行，协议的违约方须向对方支付协议金额的3%作为违约金。协议有效期1年，自双方签字之日起开始计算。协议还对售后服务、保守商业机密、知识产权等内容进行了约定。新诺金公司在售后服务规定中载有以下主要内容：一、原则：1.公司提供售后服务的产品包括其自主开发的软件和硬件产品。4.对所销售的软件产品根据购买协议的规定提供服务。二、服务：1.安装与调试。在公司产品到达现场后，经客户授权许可后，公司技术人员可以提供安装与调试服务，协助客户完成系统的连接、启动、对数设置，以达到正常使用要求。4.人员培训。公司向客户提供人员培训服务，包括对系统管理员的培训服务和产品使用的培训服务。对系统管理员的培训服务由公司安排时间、地点和课程内容。协议签订当日，山东大嫂公司向新诺金公司支付开发费用40万元；2014年8月29日，山东大嫂公司将剩余款项25万元支付新诺金公司。2014年7月29日，新诺金公司从西部数码开通219.234.3.49的云主机，并支付二年服务费，用户名为“sinokin”。2016年3月8日，山东大嫂公司注册了西部数码账号“130××××6131”，同日，新诺金公司将上述云主机转至山东大嫂公司管理维护。在合同履行期间，双方就合同履行中的问题多次往来电子邮件协商，其中，新诺金公司发送邮件部分内容如下：1.2014年10月10日，提出项目的框架、校务、家政基本功能已经做完了，最近会完成服务员工资生成部分的开发工作，但整个项目极其依赖于数据，应该下决心使用和建立数据库；2.2014年10月17日，要求山东大嫂公司继续增加数据；3.2014年12月22日，提出数据开始增加，系统开始自动备份，系统的大部分功能已经开发完毕，后续功能还在增加中；4.2014年12月31日，对山东大嫂公司提出的系统无法登录、显示不正常、商品销售功能的开发、培训系统如何改进、电商功能开通等问题进行了解答；5.2015年3月8日，要求山东大嫂公司根据设计思路对公司的业务规程进行必要调整，以解决项目的停滞状态，并明确3月份必须要冻结校务管理和家政管理部分的代码，并开始后面的开发。2016年4月25日，山东大嫂公司登录云主机时提示“数据库操作失败”。4月27日，新诺金公司对数据库和相关表进行了修复，并告知山东大嫂公司要学会对系统进行管理，对访问日志进行审核与清理，减少备份数据，并对出现的问题及时修复。4月29日、5月6日，为解决系统不能访问的问题，山东大嫂公司升级了数据盘，之后，系统虽能正常访问，但部分功能不能正常使用，请求新诺金公司协助解决。新诺金公司于5月6日回复称：山东大嫂公司的家政业务并不支持网上结算，不是其不想做，是业务不支持；系统故障起因应该是空间不足，山东大嫂公司扩展空间后，数据库仍无法连接的情况以前没有遇到过，其没有把握处理；服务器已经移交给山东大嫂公司，山东大嫂公司就要承担维护的责任，其现在无能为力。新诺金公司开发的软件存在以下5处缺陷，包括：冗余信息无法自动识别和删除权限受限、月服务天数统计错误、与服务员签约页面截止时间设置显示不全、预约服务员时根据设置条件无法匹配出结果、打印服务员登记表弹出“今日提示”页面。同时，涉案软件系统中未开发网上商城，无法实现网上结算与支付。2017年3月22日，山东大嫂公司（甲方）与江苏斑马软件技术有限公司（乙方）签订的家政系统软件V2.0联合开发技术服务协议，约定：协议签订后，甲方需在2017年3月21日前支付乙方家政系统技术服务费10万元；家政系统乙方完成开发并提交甲方验收，乙方即开始开发培训系统，甲方需支付乙方培训系统款项10万元；培训系统和财务模块等附件约定内容开发完毕，甲方运行调试并验收时，视为系统全部开发完毕，验收合格视为开发结束。同年3月31日，山东大嫂公司向江苏斑马软件技术有限公司支付技术服务费10万元。另查明，新诺金公司开发的涉案软件系统代码的最后更新时间为2015年9月15日。2016年2月17日、3月25日，新诺金公司使用地址为127.0.0.1主机以管理员身份登录涉案软件系统，分别进行了增加新元素设计框架、修改元素和设置管理员权限的操作。一审法院认为，当事人签订的产品购买协议书合法、有效，依法应予保护。本案双方当事人争议的焦点主要是：1.涉案协议书的性质是产品买卖还是技术委托开发？2.涉案协议书应否予以解除及解除后责任如何承担？关于第一个焦点问题。本案双方当事人在协议中约定新诺金公司按约定的开发标准开发家政系统，并在协议规定的期限内完成的家政系统开发、安装和调试工作，山东大嫂公司支付产品与开发服务费并接收开发成果，从协议的具体约定内容及履行方式看，涉案协议完全符合技术委托开发合同的特征，其订立、履行应当符合合同法中有关技术合同的规定。新诺金公司认为涉案协议系产品买卖纠纷的辩解，一审法院不予采信。关于第二个焦点问题。《中华人民共和国合同法》第六十条规定，当事人应当按照约定全面履行自己的义务。本案中，双方约定新诺金公司在收到合同款项后20日内完成项目支撑系统的安装与调试，并在90日内完成培训模块与业务管理模块的开发，最终实现对培训业务和对家政业务的全面管理，支持集群式用户管理和网上结算功能。协议签订后，山东大嫂公司依约于2014年8月29日履行了付款义务，而新诺金公司并未依约全面履行所负义务，致使山东大嫂公司合同目的无法实现，山东大嫂公司据此要求解除合同于法有据，一审法院予以支持。理由如下：一是根据双方协议约定，新诺金公司应于2014年11月29日前全面履行合同义务并交付开发成果。但是，新诺金公司于2015年3月才基本完成校务管理和家政管理部分代码开发，2015年9月15日完成涉案软件系统代码最终开发，履行期限不符合协议约定。二是涉案软件系统并未开发网上商城，未实现网上结算功能，且在实际运行过程中亦存在冗余信息无法自动识别和删除权限受限、月服务天数统计错误、与服务员签约页面截止时间设置显示不全、预约服务员时根据设置条件无法匹配出结果、打印服务员登记表弹出“今日提示”页面等5个设计缺陷，开发成果不符合协议约定。三是新诺金公司未依约对涉案软件系统进行安装、调试，导致未及时发现和改进软件本身的设计缺陷，导致软件故障频发，无法正常运行。四是新诺金公司并未履行必要的附随义务。新诺金公司在涉案协议附件中承诺向山东大嫂公司提供人员培训服务，包括对系统管理员和产品使用的培训服务。同时，合同法规定，当事人应当根据合同的性质、目的和交易习惯履行通知、协助、保密等义务。而新诺金公司并未提供证据证明其在协议履行过程中，特别是服务器交付后，就涉案软件系统的使用、维护对山东大嫂公司进行了必要技术指导与培训，违反诚实信用原则。关于合同解除后的责任承担问题。《中华人民共和国合同法》第九十七条规定，合同解除后，尚未履行的，终止履行；已经履行的部分，根据履行情况合同性质，当事人可以要求恢复原状、采取其他补救措施、并有权要求赔偿损失。第一百一十四条规定，当事人可以约定一方违约时应当根据违约情况向对方支付一定数额的违约金，也可以约定因违约产生的损失赔偿额的计算方法。鉴于新诺金公司实际履行了部分软件开发义务，山东大嫂公司的部分信息数据已录入系统并实际运行使用，恢复原状明显有违公平原则，且不现实，一审法院将根据涉案软件系统的使用状况及新诺金公司过错程度，判令新诺金公司返还部分合同款项，并依约支付违约金。山东大嫂公司在涉案协议未解除前另行委托他人重新开发软件系统，由此产生的支出并非新诺金公司在签订涉案协议时能够预见的直接损失，且涉案协议对相关支出的承担未作约定，山东大嫂公司据此主张损失赔偿于法无据，一审法院不予支持。关于山东大嫂公司起诉是否超过诉讼时效的问题，一审法院认为，本案诉讼时效应自涉案软件系统完成安装、调试，山东大嫂公司接收使用之时开始计算。而双方至今未依照协议约定对系统进行安装、调试，诉讼时效起算的条件并不具备。退一步讲，即使以新诺金公司完成涉案软件系统开发时间，即2015年9月15日起算，山东大嫂公司于2017年4月1日提起本案诉讼亦不超过诉讼时效。新诺金公司认为山东大嫂公司起诉超过诉讼时效的辩解，一审法院不予采信。综上，一审法院依照《中华人民共和国合同法》第五条、第六条、第六十条、第九十四条第一款第（四）项、第九十七条、第一百零七条、第一百一十四条、第三百三十二条、第三百三十四条规定，判决：一、山东大嫂公司与新诺金公司于2014年7月28日签订的产品购买协议书于判决生效之日起解除；二、新诺金公司于判决生效之日起十日内返还山东大嫂公司支付的合同款45万元；三、新诺金公司于判决生效之日起十日内向山东大嫂公司支付违约金19500元；四、驳回山东大嫂公司的其他诉讼请求。如果未按判决指定的期间履行给付金钱义务，应当依照《中华人民共和国民事诉讼法》第二百五十三条规定，加倍支付迟延履行期间的债务利息。案件受理费10995元，由山东大嫂公司负担3995元，新诺金公司负担7000元。本院二审中，当事人均未提交新的证据。本院二审查明的事实与一审法院一致。本院认为，根据当事人的诉辩主张，本案争议的焦点问题是：一是涉案合同的性质；二是新诺金公司是否违约、合同应否解除及一审法院确认的责任承担是否适当；三是山东大嫂公司提起本案诉讼是否超过诉讼时效。一、关于涉案合同的性质问题。本院认为，虽然涉案合同名为《产品购买协议书》，但根据合同内容尤其是合同第十一条“乙方同意向甲方提供一年免费的服务（包括代码升级、系统的远程管理与维护和开发周期不足一周的功能扩展模块的开发），免费服务的时间从项目开发结束之日起开始计算”和第十五条“乙方如因自身原因无法提供上述产品，或无法在协议规定的期限内完成产品的开发、安装和调试工作，或违反协议第七条、第十一条和第十三条中的任一条款，甲方有权终止本协议的执行，由此造成的损失由乙方承担”的约定，可以看出涉案合同并非是计算机软件的买卖，而是新诺金公司根据山东大嫂公司的特定需求，进行软件开发以满足山东大嫂公司的需要，故本案合同名为买卖实为软件开发，一审法院将涉案合同定性为计算机软件开发合同并无不当。二、关于新诺金公司是否违约、合同应否解除及一审法院确认的责任承担是否适当的问题。本院认为，涉案合同是双方当事人真实意思表示，不违反法律规定，真实有效。各方当事人均应严格依据合同约定履行合同义务。本案中，山东大嫂公司主张新诺金公司构成违约导致其合同目的无法实现，故要求解除合同，返还费用并赔偿损失，本院结合合同约定及双方主张详细分析：（一）关于新诺金公司是否违约、合同应否解除的问题。1.关于新诺金公司是否完成了开发义务的问题。根据涉案合同第六条的约定，新诺金公司为山东大嫂公司开发的互联网家政平台及业务综合管理系统包括用户管理模块、网站管理模块、网上家政模块、家政培训管理模块和家政业务管理等，可以实现网站管理及网页在线设计，实现对培训业务的全面管理和对家政业务的全面管理，支持集群式用户管理和网上结算功能。但是新诺金公司并未开发网上商城并实现网上结算功能。一审中，新诺金公司主张网上商城包含在网站管理模块中，又主张做网上商城需要资质，但山东大嫂公司没有资质，所以没有开发网上结算模块。本院认为，一方面，新诺金公司主张前后不一致；另一方面，山东大嫂公司是否获得网上结算资质是其能否将网上结算的软件功能实际应用的问题，与新诺金公司是否研发该功能模块无关，故在合同已经约定新诺金公司开发的软件应包括实现网上结算功能的情况下，新诺金公司未进行研发违反合同约定。2.关于新诺金公司研发的软件是否存在缺陷的问题。根据《中华人民共和国民事诉讼法》第六十四条规定，当事人对自己提出的主张，有责任提供证据。本案中，山东大嫂公司主张新诺金公司研发的软件存在缺陷，应举证证明。根据其一审提供的证据，能够确认新诺金公司研发的软件存在实际运行过程中存在冗余信息无法自动识别和删除权限受限、月服务天数统计错误、与服务员签约页面截止时间设置显示不全、预约服务员时根据设置条件无法匹配出结果、打印服务员登记表弹出“今日提示”页面等5个缺陷。本院认为，作为软件研发者，新诺金公司有义务也有能力证明其研发的软件符合合同目的，但本案中，其虽主张上述缺陷是系统崩溃造成的，但并未提供证据证明该主张，故对该主张本院不予支持。3.关于新诺金公司是否履行其他合同义务的问题。根据涉案合同附件的约定，新诺金公司应向山东大嫂公司提供产品使用的培训和系统管理员培训，但新诺金公司并未提供证据证明其向山东大嫂公司提供了培训。综上，新诺金公司并未依约履行合同义务，未完成涉案软件的开发，并且已经完成的软件存在相关缺陷，导致山东大嫂公司合同目的无法实现，故一审法院据此解除涉案合同并无不当。（二）关于一审法院确定的责任承担是否适当的问题。本院认为，在新诺金公司未按约履行合同义务导致合同解除的情况下，一审法院依据《中华人民共和国合同法》第九十七条及第一百一十四条规定，并根据双方履行合同实际情况及新诺金公司过错程度，确定新诺金公司返还部分合同款项并支付违约金并无不当。新诺金公司虽主张其不构成违约，不应返还合同款项并承担违约责任，但是并未提供证据证明其主张，本院不予支持。三、关于山东大嫂公司本案诉讼是否超过诉讼时效的问题。《中华人民共和国民法通则》第一百三十五条规定，向人民法院请求保护民事权利的诉讼时效期间为二年，法律另有规定的除外。第一百三十七条规定，诉讼时效期间从知道和应当知道权利被侵害时起计算。本院认为，涉案合同2014年7月28日签订，根据涉案合同约定，新诺金公司应在收到货款后110天内完成软件的开发，山东大嫂公司在2014年8月29日付清合同款项65万元，从该日期起算110天是2014年12月17日，也即新诺金公司应该在2014年12月17日完成涉案软件的开发。双方还同时在合同中约定为期一年的免费服务期，在该免费服务期内，新诺金公司应完成涉案软件的安装和调试、委托管理、人员培训、设备检修、设备维修等服务。而根据双方提供的合同履行证据，新诺金公司并未按期完成软件开发，亦未履行提供培训的合同义务，故一审法院认定山东大嫂公司于2017年4月1日提起本案诉讼不超过诉讼时效并无不当。此外，关于新诺金公司主张一审法院使用未经质证的证据的问题。本院认为，根据新诺金公司一审提供的访问日志及2015年2月24日备份的数据软件界面截屏，可以确认新诺金公司主机名包含127.0.0.1，而2016年3月25日，管理员通过该地址登陆并设置了管理员权限，且其提供的截屏证据显示了网站管理页面截图，该截图中网站名有“网上商城演示版”。因此，一审法院在对当事人有争议的事实认定过程中使用的证据均是经过当事人质证的证据，故新诺金公司该主张不能成立。综上所述，新诺金公司上诉请求不能成立，应予驳回。一审判决认定事实清楚，适用法律正确，应予维持。本院依照《中华人民共和国民事诉讼法》第一百七十条第一款第一项规定，判决如下：驳回上诉，维持原判。二审案件受理费8343元，由上诉人济南新诺金软件有限公司负担。本判决为终审判决。审判长  张金柱审判员  于军波审判员  柳维敏二〇一九年十一月十四日书记员  邢晓宇