江苏省南京市中级人民法院
民 事 判 决 书
（2016）苏01民终7819号
上诉人（原审原告）：江苏绿满林环保科技有限公司，住所地在江苏省南京市雨花台区软件大道180号4栋-101室。
法定代表人：林笃松，该公司董事长。
委托诉讼代理人：杨燕、刘丰，南京知识律师事务所律师。
被上诉人（原审被告）：南京创联软件有限公司，住所地在江苏省南京市鼓楼区定淮门大街11号A座1504室。
法定代表人：居梅凤，该公司执行董事。
委托诉讼代理人：蒋健，该公司研发主管。
委托诉讼代理人：沈勇明，江苏唯衡律师事务所律师。
上诉人江苏绿满林环保科技有限公司（以下简称绿满林公司）因与被上诉人南京创联软件有限公司（以下简称创联公司）计算机软件开发合同纠纷一案，不服南京铁路运输法院（2016）苏8602民初46号民事判决，向本院提起上诉。本院于2016年9月18日立案后，依法组成合议庭，于2016年10月31日公开开庭进行了审理，又于2017年1月9日组织双方当事人进行补充质证。上诉人绿满林公司的委托诉讼代理人杨燕、刘丰，被上诉人创联公司委托诉讼代理人蒋健、沈勇明到庭参加诉讼，本案现已审理终结。
绿满林公司上诉请求：1、请求二审法院撤销（2016）苏8602民初46号判决书第一、第二项，并予以改判，支持上诉人的诉讼请求，驳回被上诉人对上诉人的诉讼请求；2、被上诉人承担全部诉讼费用。事实和理由：（1）被上诉人延迟交付开发的软件产品。一审判决认为，软件开发成果交付时间的延迟原因在于上诉人未能及时提供开发资料，这一认定事实是错误的。软件开发本身就是一个非常复杂的过程，需要双方当事人不断地沟通补充材料，像一审法院判决所述的上诉人能够一次性向被上诉人提供涉案软件开发所需的全部资料是不切实际的，不符合软件开发的情况。双方也在合同中明确约定了软件产品的交付时间，本案中上诉人没有未能及时提供具体开发资料的情形，也不存在合同中约定的需要顺延交付的情形，故被上诉人晚于合同约定时间交付软件产品违反了合同约定；（2）上诉人开发的软件不符合合同的约定。由于被上诉人一直未向上诉人交付数据库设计说明文档、用户操作手册测试报告等相关文件，导致上诉人无法对软件进行验收。在双方沟通中也没有得到解决方法。上诉人只能通过第三方平台“北京龙贝信息技术有限公司”完成软件验收工作。验收报告指出软件存在问题与缺陷。一审判决仅以被上诉人提供的软件操作流畅视频认定被上诉人交付的软件符合要求，是缺乏事实依据的。
一审法院认定事实：
一、双方明确约定的事项
2014年10月28日，绿满林公司作为甲方与乙方创联公司签订了一份《软件委托开发合同书》，就甲方委托乙方开发“e家政”O2O家政服务网（合同简称其为系统）事项进行了约定。其中，第一条主要约定，系统基本内容包括“网站前端和后台的设计和研发”、“iOS和安卓系统下的APP各一个”；系统详细功能、内容及要求以双方签字确认的需求分析报告为准。第二条主要约定，合同总价335000元；合同签订之日甲方向乙方支付合同总价的40%，即134000元；软件开发完成并提交给甲方验收之日起三个工作日内，甲方向乙方支付合同总价的30%，即100500元；系统验收完成后十个工作日内甲方向乙方支付全部余款；非因乙方原因导致项目延时，甲方须在合同签订五个月内向乙方支付全部合同款项。第三条主要约定，乙方争取在2014年12月28日前完成系统开发并交付甲方，最迟在2015年1月12日之前完成系统开发并交付甲方；如因甲方未及时提供具体开发资料及未能按期完成相关约定，开发周期按照具体情况顺延。第四条主要约定，甲方负责及时提供系统需求、各类资料和图片；甲方人员积极配合乙方工作；乙方完成内部开发、测试后，甲方负责软件的检验工作，如发现需求设计定义范围内的系统错误，乙方负责免费修改，如超出需求分析报告范围，乙方同甲方协商后，适当另行收取费用。第五条主要约定，乙方保证按照合同规定的时间和要求，按时高质完成工作；在开发期间，乙方定期向甲方通报开发设计进度，并提交阶段性成果；乙方负责将系统部署到甲方提供的互联网平台，对iOS上的APP,根据美国苹果公司审核进展来确定，若审核不通过，乙方应配合改进工作。第六条主要约定，乙方负责系统的开发及内部测试；乙方为甲方提供一年的免费维护和技术支持服务；乙方为甲方提供最多五天免费的人员系统培训；乙方负责本系统一年内的调整和升级。第七条主要约定，系统的所有知识产权及其相关权利归甲方。第八条主要约定，违约方承担违约金的数额为合同总额的20%，如因一方违约导致对方损失，应赔偿对方损失。从合同书约定内容来看，双方并未明确约定合同解除的条件。
在签订上述合同的当日，绿满林公司和创联公司还签署确认了《“e家政”家政服务网需求设计书》，以作为涉案软件功能开发和测试的主要依据。该需求设计书主要就系统定位、总体架构及功能组成、各系统需求详细说明等进行了描述。
2014年11月12日，绿满林公司与创联公司共同签署确认了《“e家政”家政服务网软件需求变更单》，对双方2014年10月28日签署确认的《“e家政”家政服务网需求设计书》第6页的PC前端Web首页、注册、登录及下单，第20页的首页右边栏，第21页的页面布局等内容进行了变更。
二、双方合同履行情况
2014年11月4日，绿满林公司向创联公司支付首期合同款134000元。2015年3月6日，e家政软件上线。2015年3月11日，绿满林公司向创联公司支付第二期合同款100000元。2015年4月22日，创联公司向绿满林公司交付了e家政软件源代码及程序代码光盘一张。在2014年11月4日至2015年4月22日期间，绿满林公司曾于2015年1月4日通过邮件向创联公司提出软件需求变更。2015年1月份、2月份、3月份、4月份绿满林公司多次通过邮件或微信等方式向创联公司发送图片、文档等资料，要求创联公司将这些图片、文档替换或充实到已开发的软件程序当中，并多次对软件开发过程中存在的问题提出修改意见。2015年3月4日，绿满林公司向创联公司发送名称为“绿满林测试bug-0304给创联”的文档一份，该文档涵盖了1月31日至3月3日期间所发现的问题；其中，发现于2月27日之前的问题大都进行了验收，发现于２月27日之后的问题在该文档中尚未显示验收信息；从已验收情况来看，除2月11日发现的“安卓服务人员详情页面的排版信息上没有班次名称。具体参照IOS的APP”问题，未在2月13日的验收中通过外，其它验收均标注为“OK”；在标注“OK”的验收项目中，有的项目仍有相应的备注要求，如发现于2月4日的有关订单添加时间的问题，在备注中则标有“不全，涉及到订单的都要添加一个订单时间”字样。2015年4月20日，绿满林公司向创联公司发送邮件要求其于4月20日上午9时到绿满林公司交付软件，交付软件时需要提交“项目开发计划”、“软件需求说明书”、“系统概要设计说明书”、“总体设计说明书”、“数据库设计说明书”、“详细设计文档”、“为本项目开发的软件源代码”、“试运行报告”等电子及纸质文档；但关于上述电子及纸质文档的交付问题在涉案《软件委托开发合同书》中并未明确约定。2015年4月22日之后，绿满林公司又因涉案软件问题于2015年5月12日通过邮件请求创联公司帮助解决，创联公司于2015年5月13日对绿满林公司的相应请求进行了回复。
三、软件投入使用情况
2015年10月28日，创联公司申请公证保全证据的委托代理人周伟在江苏省南京市石城公证处（以下简称石城公证处）迈皋桥分处，在公证员陈某、公证工作人员李玉的监督下，操作该处一台通过本处服务器连接互联网并安装了“屏幕录像专家V2014”软件的计算机，打开网址为“www.51ejz.com”的网页进行了浏览操作并通过“屏幕录像专家V2014”软件对上述操作进行录像，同时将该录像资料刻录成DVD光盘。2015年11月2日，石城公证处就上述公证事项出具了（2015）宁石证经内字第8814号公证书。
2015年10月29日，创联公司申请公证保全证据的委托代理人周伟、蒋健在石城公证处公证员陈某、公证工作人员李玉的监督下，由周伟以普通消费者的身份分别在南京市珠江路金鹰购物中心珠江路店一楼的“中国移动都比比4Ｇ生活体验馆”和南京市和燕路中国联通和燕路营业厅购买了“iPhone6SPlus16GB”手机和“红米Note联通4Ｇ双卡合约版8GB象牙白”手机各一部，并分别取得了购物发票。其后，蒋健在石城公证处迈皋桥分处，在公证员陈某、公证工作人员李玉的监督下对公证员及公证工作人员保管的上述两部手机进行“e家政”手机软件下载，并进行了相关操作。蒋健还通过恢复出厂设置后的上述“红米Note联通4Ｇ双卡合约版8GB象牙白”手机对“ｎｊｃ×××＠163.ｃｏｍ”邮箱中于2015年4月10日发给绿满林公司涉案项目负责人寿立松的邮件附件“EHomeMaking.apk”进行下载安装后进行相关操作。对于上述操作过程由周伟用石城公证处的摄像机进行现场拍摄。其后，周伟又以与2015年10月28日公证证据保全基本相同的方法对网址为“www.51ejz.com”的网页进行了浏览操作并通过“屏幕录像专家V2014”软件对上述操作进行录像。公证员陈某、公证工作人员李玉监督了上述全部操作过程，并将相关录像资料刻录成两张光盘。2015年11月2日，石城公证处就上述公证事项出具了（2015）宁石证经内字第8815号公证书。
庭审中，将上述两份公证书所附光盘进行当庭播放。（2015）宁石证经内字第8814号公证书所附光盘演示了涉案软件的网站部分内容。从演示结果来看，该软件运行流畅。创联公司认为该软件完全可以正常运行。绿满林公司认为，所演示的软件已在创联公司所开发软件的基础上进行了修改，故不能客观反映创联公司对涉案软件的开发水平。创联公司对上述软件在首页部分做过修改予以认可，同时认为搜索服务人员页面部分也可能有过修改。（2015）宁石证经内字第8815号公证书所附光盘主要演示内容如下：1、从绿满林公司相关网页上下载并安装运行涉案“iOS”APP和安卓APP的情况；2、第1项内容中两个APP与绿满林公司“www.51ejz.com”网站的数据通联情况；3、创联公司于2015年4月10日最后一次向绿满林公司发送涉案安卓APP的邮箱中下载并安装运行相应安卓APP的情况。从演示的结果来看，绿满林公司使用的“iOS”APP和安卓APP运行流畅，“iOS”APP和安卓APP与绿满林公司“www.51ejz.com”网站的数据能够正常通联；绿满林公司使用的安卓APP与创联公司2015年4月10日通过邮件向绿满林公司发送的安卓APP的运行界面基本一致。创联公司认为，绿满林公司所使用的涉案软件完全能够正常操作。绿满林公司认为，创联公司当庭演示的“iOS”APP和安卓APP均已在创联公司所开发软件的基础上进行了升级，并不是创联公司所提交的原始程序；此外，涉案软件大多数问题都存在于后台管理程序部分。
四、双方关于涉案合同责任的交涉情况
2015年10月20日，绿满林公司有效致函创联公司，认为创联公司所开发的软件不能达到合同目的，已构成违约，且给绿满林公司造成了严重损失，故要求创联公司进行协商处理。该函所述理由主要有：1、没有整体架构设计和基础技术框架支撑，系统缺乏可扩展性；2、系统设计逻辑混乱；3、系统开发不规范，缺少用例与数据模型评审、概要设计文档、详细设计文档、视觉设计图稿、测试报告产出等；4、产品未经完整系统测试，上线运行后问题频出；5、APP未考虑系统安全性，无法进行后期维护；6、系统整体没有安全性考虑，如密码采用明码保存、APP登陆用户名密码采用明码传送、数据库访问无安全验证措施、几个API函数存在安全漏洞等；7、数据库设计不具备生产可用性和扩展性；8、代码无法修改、无法扩展；9、尚有部分功能未完成，如导出报表等，不能支持实际应用；10、系统逾期交付。上述所列10个问题，除第10个“系统逾期交付”问题在涉案合同中有明确约定外，其它9个问题在涉案合同中未作明确具体的约定。
2015年11月5日、11月9日，创联公司的涉案项目参与人周伟、负责人蒋健分别与绿满林公司涉案项目负责人寿立松进行了电话沟通，对绿满林公司于2015年10月20日所发函的意见不予认可，并认为创联公司已按约履行了合同义务、并不存在违约行为，涉案软件开发完成时间的拖延责任在于绿满林公司而不在于创联公司。
2016年1月21日，绿满林公司向创联公司有效发送《律师函》一份，以创联公司未能在规定时间内交付涉案系统，且交付的系统未达到绿满林公司要求的验收标准，致使双方签订的合同目的无法实现，在经过绿满林公司催告后的合理期限内创联公司未能提供改进方案，已构成根本违约为由要求解除涉案合同，同时要求创联公司承担违约责任并赔偿损失。
2016年2月1日，创联公司向绿满林公司回复了律师函，重申了自身在2015年11月5日、11月9日与绿满林公司相关人员电话沟通中的立场。
五、双方的损失主张或相关赔偿主张
绿满林公司为了证明因涉案合同未能有效履行对其造成损失30万元，其向法庭提交了28份发票，这些发票记载的事项主要为技术服务费、网站设计、图文制作费、服务费、技术服务、投资服务费、广告纸巾、印刷费、广告服务费、图文设计费、设计服务费、网络推广服务费等。其中，除300元的服务费发票无法确定形成时间外，其它发票均形成于2014年10月27日至2015年4月27日之间，28张发票的总金额约为36万元。
创联公司为了证明因绿满林公司原因对其所造成的公证费损失4000元，其向法庭提交了江苏省南京市石城公证处于2015年10月29日向其出具的公证费发票一张，该发票记载金额为4040元。
上述事实，有涉案软件委托开发合同书、“e家政”家政服务网需求设计书、软件需求变更单、绿满林公司向创联公司支付涉案合同款项的凭证、软件开发期间及其前后绿满林公司与创联公司的邮件及微信往来资料、创联公司交付涉案软件时绿满林公司出具的收条、（2015）宁石证经内字第8814号公证书及其所附光盘、（2015）宁石证经内字第8815号证书及其所附光盘、绿满林公司向创联公司发送的函、律师函、创联公司向绿满林公司发送的律师函、创联公司就绿满林公司所发函的内容与绿满林公司进行电话沟通的录音及其书面整理材料、绿满林公司主张损失的系列发票、涉案公证费发票，以及当事人陈述等在案佐证。
绿满林公司为了证明创联公司所开发的涉案软件存在严重的bug,已影响了涉案软件的正常运转，导致绿满林公司签订涉案合同的目的无法实现，其向法庭提交了署明日期为2016年5月7日的“e家政（O2O家政服务网）”测试评估报告一份。从测试评估报告的内容来看，既未载明出具主体，也未载明出具主体是否具有相应的技术资质与能力。尽管绿满林公司主张该测试报告系由“龙贝信息技术有限公司”出具，但其并未举证证明该主体的真实性及其可能的技术资质与能力，故对该测试报告的真实性本院不予采信。
创联公司为了证明其已向绿满林公司交付了涉案软件，相关软件APP在绿满林公司网站上已经可以下载安装，且涉案软件已经实际投入使用，其还向法庭提交了形成于2016年6月30日的系列网页打印件。但从网页打印件的内容来看，主要是对涉案软件的系列广告宣传，这种广告宣传并不等同于软件的实际交付使用，故本院对创联公司该证据的证明目的不予认可。
一审法院认为，绿满林公司与创联公司签订的涉案合同是双方的真实意思表示，内容并不违反法律、行政法规的强制性规定，属于合法有效的合同。双方在履行涉案合同时均应遵守诚实信用原则，积极履行一定的配合义务。创联公司有义务对绿满林公司提出的并未超出合同框架范围的合理修改意见予以接受和容忍；绿满林公司有义务对涉案软件的相关需求及时予以明确和细化，对创联公司已经提交的并不明显违反合同约定的工作成果及时进行验收，对需要进一步修改完善的内容及时履行告知与配合义务。在此基础上，涉案合同的履行才能顺利进行。
一、绿满林公司要求解除涉案合同的理由不能成立
本案中，绿满林公司要求解除涉案合同的理由主要有两点，一是创联公司迟延履行合同约定的软件交付义务；二是创联公司所交付的软件达不到合同约定的验收标准，导致相应的合同目的不能实现。
从第一个理由来看，合同约定创联公司争取在2014年12月28日前完成系统开发及交付，最迟在2015年1月12日之前完成系统开发及交付。但从涉案软件的实际开发进度来看，上线时间为2015年3月6日，软件开发成果的正式交付时间为2015年4月22日。故仅从上述合同约定的系统开发及交付时间与系统开发成果的实际交付时间来看，创联公司正式交付涉案软件的时间确实晚于合同约定的时间。但这一软件开发成果交付时间的延迟责任不能直接归因于创联公司，原因主要在于：1、双方合同约定“如因甲方未及时提供具体开发资料及未能按期完成相关约定，开发周期按照具体情况顺延。”可见，上述最迟交付时间2015年1月12日并非绝对的不变时间，在绿满林公司未及时履行提供开发资料等义务的情况下可以进行顺延；2、双方在签订涉案合同及相应的软件需求设计书不久，即对软件需求进行了变更，此后绿满林公司又于2015年1月4日通过邮件单方提出软件需求变更。可见，绿满林公司在签订涉案合同之初对涉案软件的需求缺乏足够的确定性；3、涉案软件的开发有赖于绿满林公司及时向创联公司提供相应的开发资料，但事实上绿满林公司并未及时地一次性向创联公司提供涉案软件开发所需的全部资料，而是持续地多次向创联公司提供涉案软件开发所需资料，甚至在涉案软件即将正式交付前仍在向创联公司发送与涉案软件开发相关的资料。可见，涉案软件交付时间的顺延具有符合合同约定的正当理由。综合上述3点原因，绿满林公司要求解除涉案合同的第一个理由不能成立。
从第二个理由来看，在涉案软件开发过程中，绿满林公司与创联公司进行了多次沟通，自2015年3月6日涉案软件上线运行后，绿满林公司与创联公司仍然保持着持续沟通，甚至在2015年4月22日涉案软件正式交付之后，双方仍有沟通。在涉案软件上线运行后至正式交付后的合理期限内，绿满林公司既可以根据涉案软件上线运行后的实际情况就软件运行存在的问题向创联公司提出明确、具体的实质性修改意见，也可以在正式接收创联公司交付的涉案软件源代码等资料后对其及时组织测试验收，从而对软件所存在的问题提出实质性修改意见，或提出质量异议。但从本案现有证据来看，绿满林公司并未在软件上线运行及软件成果正式交付后的合理期限内就涉案软件是否存在实质性问题向创联公司提出明确、具体的否定性意见。从2015年10月20日绿满林公司向创联公司所发函中指出的问题来看，除第10个“系统逾期交付”问题在涉案合同中有所约定外，其它问题在涉案合同及相应的软件设计需求中均没有明确具体的约定，也没有充分证据证明，该函中所列问题确实客观存在。此外，从创联公司公证保全的绿满林公司于2015年10月底仍在使用的相关软件当庭演示的运行情况来看，运行流程基本顺畅。尽管绿满林公司认为该运行软件实际上是在创联公司所开发涉案软件的基础上进行了优化后的成果，其与原软件已经有所不同，但该意见并不能直接否认创联公司所开发软件的可用性。从绿满林公司在2015年10月底所使用的安卓ＡPP与创联公司2015年4月发送给绿满林公司的涉案安卓ＡPP的运行效果的对比来看，二者运行界面并无实质性差异，这也进一步印证了创联公司所开发的涉案软件的可用性。综上，绿满林公司要求解除涉案合同的第二个理由亦不能成立。
二、绿满林公司的相关诉讼请求应予驳回
根据合同法的相关规定，依法成立的合同，当事人不得擅自解除。因尚无证据证明绿满林公司与创联公司已就涉案合同的解除问题做出约定，在绿满林公司要求解除涉案合同的理由不能成立且没有其他解除合同的正当理由及法定事由时，本院对绿满林公司要求解除涉案合同的请求不予支持。
在绿满林公司要求解除涉案合同的理由不能成立的基础上，其要求创联公司退还已支付的合同价款的请求当然不能得到支持，相应的利息主张也应予以驳回。对于绿满林公司要求创联公司承担违约金并赔偿损失的主张，诚如前文所述，创联公司迟延交付涉案软件具有正当理由，现有证据又无法证明涉案软件确实存在不符合合同约定的验收标准的情形，也无证据证明涉案软件根本不具有可用性，故可以认定绿满林公司的该项主张缺乏事实与法律依据，本院不予支持。
三、绿满林公司应当向创联公司支付剩余的合同价款
涉案合同总价款为335000元，绿满林公司已向创联公司支付合同价款234000元，剩余101000元尚未支付。根据涉案合同约定，绿满林公司应于软件验收完成后十个工作日内向创联公司支付全部剩余合同价款。从本案现有证据来看，无法判定绿满林公司在收到创联公司交付的涉案软件源代码等资料后是否及时组织了验收，但这并不能免除其在合理期限内及时组织验收的义务。当合理的验收期限界满后，也不能免除其向创联公司支付剩余合同价款的义务。此外，绿满林公司与创联公司在合同中还约定，“非因乙方原因导致项目延时，甲方须在合同签订五个月内向乙方支付全部合同款项。”根据该约定，如果非因创联公司原因而导致项目延时，绿满林公司应于合同签订后的五个月内支付全部合同款项。但从本案合同的实际履行情况来看，尽管绿满林公司未能及时向创联公司提供软件开发所需的相关资料是项目迟延的原因之一，但创联公司在软件开发过程也存在软件bug需要修改等合同履行瑕疵，这种瑕疵的存在也是涉案软件迟延交付的原因之一。故此，创联公司不能依据上述合同约定的“合同签订五个月内向乙方支付全部合同款项”的条款要求绿满林公司支付剩余的合同价款，但其可以在合理的软件验收期限界满后向绿满林公司提出相应的付款主张。然而，从本案现有证据来看，绿满林公司与创联公司并未就剩余合同款项的支付问题形成正式的合意，创联公司也未单方面正式向绿满林公司提出支付剩余合同价款的请求。故此，对创联公司要求绿满林公司支付剩余合同价款的请求本院予以支持，但其相应的利息主张本院不予支持。
关于创联公司所主张的违约金问题，尽管绿满林公司在支付合同首期款、二期款过程中存在迟延支付、数额不足等情形，但具体的迟延时间不长、不足的数额较小，在创联公司未及时提出异议的情况下，可以将其视为合同履行双方可以容忍的履行瑕疵。至于合同剩余款项的支付问题，在原约定条件不能成就的情况下，双方对此并未进行补充约定，故要求绿满林公司就此承担相应的违约责任没有事实与法律依据。综上，对创联公司要求绿满林公司承担合同约定的违约金的诉讼请求本院不予支持。关于创联公司提出的因增加工作量所应增加的软件开发费用的问题，因涉案合同明确约定，“如超出需求分析报告范围，乙方同甲方协商后，适当另行收取费用”，但就本案现有证据无法看出绿满林公司与创联公司已经就另行收取费用问题进行了协商并达成一致，故对创联公司的此项诉讼请求本院不予支持。关于创联公司主张的公证费问题，因公证费系为本案诉讼而产生，涉案合同并未就因合同纠纷而导致的相关诉讼费用的分担问题做出约定，故创联公司的该项费用主张缺乏事实与法律依据，本院不予支持。
据此，一审法院依照《中华人民共和国合同法》第六条、第八条、第六十条、第一百零九条、《最高人民法院关于审理技术合同纠纷案件适用法律若干问题的解释》第四十六条第二款之规定，判决：1、驳回江苏绿满林环保科技有限公司的诉讼请求；2、江苏绿满林环保科技有限公司于本判决发生法律效力之日起十日内向南京创联软件有限公司支付剩余合同价款101000元；3、驳回南京创联软件有限公司的其他诉讼请求。
二审期间，上诉人绿满林公司提交了软件开发合同及付款凭证。证明上诉人曾经找第三方公司对涉案软件进行修复和新的开发。
绿满林公司还提交了（2016）宁钟正经内字第3297号、3298号公证书。证明上诉人绿满林公司通过互联网在第三方猪八戒平台对涉案软件进行测试并获得测试报告。
绿满林公司认为：1、创联公司的交付行为不符合合同约定。创联公司晚于合同约定的期限向绿满林公司交付涉案软件，且延迟交付不具有合理性。创联公司没有按照合同的约定移交完整的数据库设计说明文档、用户操作手册及其他应交付的研发成果，只是交付了软件源代码；2、创联公司开发的软件存在严重问题。创联公司对于绿满林公司提供的第三方测试报告的真实性应予确认，通过测试报告来看，其开发的软件BUG不断，双方多次就此问题进行交涉仍未得到修复，故创联公司开发软件可能存在严重问题。
被上诉人创联公司辩称：1、创联公司迟延交付开发的软件产品，责任不在创联公司。涉案软件在开发过程中，绿满林公司频繁变更需求和迟延提供相关材料、平台，故导致创联公司交付涉案软件晚于合同约定时间；2、创联公司所交付的涉案软件完全符合合同约定。一审已经查明，2015年4月22日，创联公司按照合同约定交付了涉案软件光盘，其中包括涉案软件源代码、数据库设计说明文档和用户操作手册等开发成果，且绿满林公司出具了《收条》。故创联公司交付软件完全符合合同约定；3、关于上诉人绿满林公司单方委托第三方出具的测试报告。报告出具时间为2016年5月7日，此时，本案已处于一审期间。上诉人绿满林公司并未与创联公司协商，第三方亦非法院委托机构，不具有法律规定的鉴定资格。且在报告上没有第三方的盖章和测试人员签字，故该报告不具有任何证据效力。
经上诉人核实确认，被上诉人交付的光盘中包含用户操作手册。
本院对一审法院查明的其他事实予以确认。
二审争议焦点：1、被上诉人是否存在延迟交付涉案软件的行为；2、被上诉人开发的软件产品质量是否符合合同约定。
本院认为：1、被上诉人不存在迟延交付软件产品的行为。理由是，如果仅从合同约定的涉案软件交付时间看，2015年1月12日之前，被上诉人应完成涉案软件开发并交付给上诉人。但诚如上诉人上诉所言，软件开发本身就是一个非常复杂的过程，需要双方当事人不断地沟通补充材料，像一审法院判决所述的上诉人能够一次性向被上诉人提供涉案软件开发所需的全部资料是不切实际的，不符合软件开发的情况。所以，应当分清被上诉人创联公司超过约定时间交付涉案软件是有客观原因，还是无故迟延交付。根据查明的案件事实，在合同约定的涉案软件交付日前后，上诉人确实存在数次变更需求和延迟提供相关资料的情形。因此，被上诉人在涉案软件开发过程中需要适时地根据上诉人不断提出的新需求，对原设计方案做相应调整，这就使得被上诉人开发涉案软件的工作量增加并导致交付工作成果的时间延长。因客观原因致使涉案软件开发周期延长，软件交付时间顺延是双方在签约时已有预见并约定的。因此，被上诉人交付涉案软件产品的时间就不能绝对以合同约定的时间为准，还须考虑到客观情况的变化致使软件产品交付时间延长。故上诉人绿满林公司上诉称被上诉人延迟交付涉案软件构成违约之上诉请求无事实依据，本院不予采纳；
2、通常计算机软件用户对于软件实现功能的需求总是不断的变化和逐步提高的。所以计算机软件的研发者必须适时地根据市场和用户需求的变化，不断地对软件进行修改、升级或重新研发新的软件。因此，一款新研发的软件不可能做到尽善尽美。故软件开发者交付的软件是否符合合同约定的要求，关键是看相应不尽人意之处，是否为软件开发合同需求设计书约定的必须克服之缺陷或未达到约定的功能需求。如属合同约定范围之内的则属违约行为，反之则不构成违约。就本案而言，首先，从查明的案件事实看，上诉人平台上运行的软件、相关APP软件，在被上诉人申请公证保全时，均没有使用上的障碍，说明至少在被上诉人对涉案软件运行情况进行证据保全时软件运行正常。其次，涉案合同第六条约定，乙方负责系统的开发及内部测试；乙方为甲方提供一年的免费维护和技术支持服务；乙方为甲方提供最多五天免费的人员系统培训；乙方负责本系统一年内的调整和升级、维护技术支持，调整和升级都必须在本次双方签字的需求分析报告范围内，对于超出该范围的双方另行协商。由此可见，创联公司（乙方）在交付涉案软件后的一年时间内，对于涉案软件运行过程中如果出现技术问题或对功能的需求发生变化。只要是在经双方签字认可的需求分析报告内，创联公司都有义务进行免费维护和提供技术支持。故对于涉案软件使用过程中是否存在实际问题，上诉人（甲方）绿满林公司作为实际使用人完全可以及时的发现，并以对其最经济的方式，依照前述合同的约定向创联公司提出，由创联公司进行免费系统维护和提供技术支持，而无须另外出资委托第三方对软件进行修改。根据查明的案件事实，绿满林公司与被上诉人联创公司在涉案合同履行期间，双方交流、沟通顺畅。至少在2015年4月22日之前，双方对涉案软件运行情况仍保持正常的沟通和交流。创联公司对绿满林公司就软件的开发和使用过程中出现的问题或需求的变化，均积极地做出了回应。所以，现绿满林公司单方越过创联公司委托第三方对涉案软件进行测试、修改和升级所产生的结果，并不能证明被上诉人创联公司交付的软件存在质量问题，并导致其服务平台不能正常运行。第三，上诉人绿满林公司在上诉状中所列涉案软件存在的质量问题，没有证据证明在涉案合同及相应的软件设计需求中对此有明确具体的约定，也没有证据证明这些问题确实客观存在。
综上，上诉人绿满林公司上诉所称被上诉人创联公司交付的涉案软件不符合合同约定的理由无事实依据，本院不予支持。一审判决认定事实清楚，适用法律正确，应予维持。依照《中华人民共和国民事诉讼法》第一百七十条第一款第一项规定，判决如下：
驳回上诉，维持原判。
二审案件受理费11873元，由江苏绿满林环保科技有限公司负担。
本判决为终审判决。
审判长 卢 山
审判员 叶波平
审判员 龚 震
二〇一七年二月十六日
书记员 付 迪