如何给客户一个Matlab项目? [英] How to give client a matlab project?

查看:89
本文介绍了如何给客户一个Matlab项目?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果公司从事matlab项目,那么他们如何为客户提供项目?我的意思是,他们无法将全部代码和数据移交给客户,因此会发送给客户哪个文件?

If a company works on matlab projects, then how do they provide the client the project? I mean which file do they send to the client as they cannot hand over the client the whole codes and data ?

推荐答案

这取决于很多因素,例如您要为客户开发的产品的性质,与客户的关系和合同协议,以及他们是否将来需要修改产品.

It would depend on lots of things, such as the nature of the product you are building for the client, your relationship and contractual agreement with them, and whether they need to modify the product in the future.

当我为一家公司的MATLAB项目进行咨询时,通常会向他们提供MATLAB源代码.合同的一部分通常会说他们拥有我为他们生产的代码(以及代码的版权),然后他们可以用它做任何想做的事.

When I carry out consultancy on MATLAB projects for a company, I usually supply them with MATLAB source code. Part of the contract would typically say that they own the code (and the copyright to the code) that I produce for them, and they can then do pretty much whatever they want with it.

如果您的关系不同,则您继续拥有该代码,并需要阻止他们阅读和/或修改它,那么问题实际上与任何其他语言相同:您依赖于技术限制和法律限制的混合体,旨在根据您的需要进行严格限制,同时最大程度地减少最终用户的不便.

If you have a different relationship, where you continue to own the code and need to prevent them from reading it and/or modifying it, then the issue is really the same as it is for any other language: you rely on a mixture of technological restrictions and legal restrictions, designed to be as restrictive as you need while minimizing inconvenience for the end-user.

例如,

  1. 您可以使用命令pcode混淆代码.这将阻止几乎所有不确定的人看到您的代码并进行修改(尽管存在一些漏洞),但是他们仍然可以在MATLAB中运行它.缺点可能是您的代码在将来的MATLAB版本中可能变得无法执行,因此您可能需要再次支持它才能在以后修复该问题.为了减轻这种情况,您可以在合同或许可协议中指定仅支持特定版本的MATLAB.
  2. 您可以使用MATLAB编译器生成一个独立的库或可执行文件,其中包含加密形式的代码.缺点可能是他们宁愿使用MATLAB内部的代码.好处是,与第一个选项不同,它不需要MATLAB,因此将来不会遇到向后兼容的问题.
  3. 您可以在您的MATLAB应用程序中包括许可证管理代码.您可以使用自己的密码,也可以通过调用一些Java加密技术来进行加密(除非您很有才华,否则可能无法使其变得非常安全,但是您可能可以使某些操作简单易行) ,或者您可以购买做得好的第三方C库,然后从MATLAB调用它们.
  4. 您可以简单地在代码中放置版权行,表明您拥有版权,并以特定条款(例如,他们可以查看,使用它,但不能修改或重新分发)将代码许可给他们.如果确实需要,您可以要求他们也签署保密协议,要求他们不要与第三方讨论代码的内容.
  1. You can obfuscate your code using the command pcode. That will prevent almost everyone who isn't extremely determined from seeing your code and modifying it (there are some loopholes though), but they will still be able to run it within MATLAB. Downsides might be that your code may become unexecutable in a future version of MATLAB, so you may need to support it again to fix that later. To mitigate this, you could specify in your contract or license agreement that only specific versions of MATLAB will be supported.
  2. You can use MATLAB Compiler to produce a standalone library or executable that contains the code in an encrypted form. Downsides might be that they would rather use the code from within MATLAB. An upside would be that unlike the first option it doesn't require MATLAB, so you're not vulnerable to backward-compatibility issues in future.
  3. You can include licence-management code within your MATLAB application. You can either roll your own, perhaps by calling a bit of Java for the cryptography (you will likely not be able make it very secure, unless you're very talented, but you'll probably be able to make something simple and workable), or you can buy third-party C libraries that do it well, and call them from MATLAB.
  4. You can simply put copyright lines in your code saying that you own the copyright, and licence the code to them under specific terms, such as that they may view it, use it, but not modify or redistribute it. If you really want, you could ask them to also sign a non-disclosure agreement requiring them not to discuss the content of the code with third parties.

尽管MATLAB中可用的技术限制与诸如C或Java之类的编译语言有所不同,但归根结底,这些都是为了让诚实的人诚实-任何有决心的人都将能够最终绕过他们,他们可能会给诚实的人们带来不便,使他们讨厌您不喜欢您的产品或服务.

Although the technological restrictions available are a little different in MATLAB than they would be for a compiled language such as C or Java, at the end of the day those are only ever there to keep honest people honest - anyone determined will be able to get around them eventually, and they may well inconvenience the honest people, annoying them into disliking your product or service.

最好混合使用非常轻的技术限制,明确的合同和许可条款以及信任.

Better to use a mixture of very light technological restrictions, crystal-clear contract and licensing terms, and trust.

< advert >我提供的咨询服务之一是为准备部署MATLAB代码(包括保护它)提供建议和帮助.如果您认为自己可以从中受益,请联系. < /advert >

<advert> One of the consultancy services I offer is advice and help in preparing MATLAB code for deployment, including protecting it. If you think you'd benefit from that, please get in touch. </advert>

这篇关于如何给客户一个Matlab项目?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆