多功能开放式软件设计.pdf

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

多功能开放式软件设计

按时提供稳定的软件产品需要严格遵守既定的开发计划。开发小组根据客户

需求针对其产品设定部分功能,当然也就不可避免地排除了部分强化功能。向外

部程序设计者开放软件开发流程可以为增加新的软件功能开辟另一条途径,这样

做对生产时间和原始产品的质量都不会产生任何影响。

在理想情况下,一个软件只具备某用户所需的一些功能,仅消耗

当前任务所需的资源,而且拥有以这些功能为中心的人机交互界面。

但在现实中却很少有这样的情况,所开发的软件功能往往需要满足多

个不同客户的需要。结果可能导致该软件对某些人而言过于复杂,而

对其他一些人而言又缺少关键组件;不过有一种方法可以解决这一难

题,该方法正被越来越多的软件开发公司和用户所采纳。

开发人员可以通过开发应用编程界面(API)获取软件程序或操

作系统状态和功能方面的信息[1]。软件开发人员可能会选择通过建

立一个API而取消对特定组件或所有软件的锁定,以便使客户或其他

开发者可以添加新的功能来增强软件的性能。这一点对独立开发者而

言非常有利,因为独立开发者可以选择增加新的功能,可以根据自己

的计划自主选择,也可以在不受原开发者约束的条件下自由开展工作

[2]。

过去,软件开发人员要想增加软件程序的新功能必须先修改该程

序的源代码[3]。修改源代码会产生以下两方面的问题:首先,这样

做会使原开发者无法控制原始软件的修改;其次,任何使用源代码的

人员都可以公开使用与原始软件相关的专用自主知识产权(IP)。但

与API结合后,开发者就具备了使用高级编程语言的新能力[4]。独立

开发者编写的算法与原始程序的数据和公用程序之间通过API进行交

互。

最初是由某开发者开发、后来又由某独立程序设计者进行扩展的

软件程序可以通过计算器的一系列功能进行比喻说明。某开发者开发

出了包括加、减、乘、除程序在内的简单程序。后来,某独立编程者

在此基础上增加了正弦、余弦和正切三角函数之类的函数运算功能。

如果原始开发者通过开放的API能够提供计算器软件必要组件的话,

那么就可以在不修改源代码的条件下将新功能“插入”简单的计算器

中[5]。

能够将额外功能(如前面例子中的三角函数)增加到软件中但又

不会改变其原始结构的一个好处是可以根据需要将其开启或关闭。仅

需简单计算器的用户就可以享用一个包含更少指令和概念的精简界

面。一旦有需要,用户就可以通过诸如菜单栏之类的各种途径使用附

加功能。

双重开发软件的概念更趋于完善。例如,诸如Web浏览器之类拥

有庞大用户群的应用软件能够与一个扩展性的API相结合,生成一个

由原始开发者和独立开发者群体组成的软件生态系统,独立开发者群

体的任务是扩展核心软件程序。生态系统组件的综合比各个独立的生

态系统提供更多的功能价值,从而使原始开发者、独立开发者和用户

都能从中受益。

在油气行业,许多复杂的软件程序都旨在应对油气开采过程中出

现的

多方面的挑战。例如,Petrel地震-模拟软件就包含了许多地质

和地球物理(GG)工作流组件方面的工具。对于每个新版本,开发

小组为了满足业界的技术需求为软件添加了一些新的功能,并提高软

件效率、可靠性和用户友善性等。项目经理需要对诸多拟定功能该不

该开发做出艰难的抉择。

为了向客户提供具有更多功能的GG工作流,斯伦贝谢最近开发

了一个API,旨在向第三方软件供应商开放Petrel软件。这样做可以

使公司开发者将精力主要集中在开发主要功能上,而独立开发者可以

以插件形式给软件增加新的功能。各种新模块的复杂程度各不相同。

任何具备基本编程技术的人员在几分钟内都能完成简单、省时的实现

人工数据处理过程自动化算法的编写。然而,能够提供诸如电磁建模

之类的更复杂功能的插件,则需要编程小组和油田专家付出更大的努

力。

开放式软件既有利于独立开发者,又有利于斯伦贝谢,因为这一

措施使得插件开发过程与Petrel发布进程分离开来。因此,新的功能

可以随时得到开发和应用,而这些新功能的知识产权仍归其所有者所

有。独立开发者可以利用Ocean应用程序开发架构在该软件基础上自

主开发新功能。

Ocean架构以微软公司.NET架构和VisualC#语言之类的业界标

准编程工具为基础

文档评论(0)

各类考试卷精编 + 关注
官方认证
内容提供者

各类考试卷、真题卷

认证主体社旗县兴中文具店(个体工商户)
IP属地宁夏
统一社会信用代码/组织机构代码
92411327MAD627N96D

1亿VIP精品文档

相关文档