什么是柔性软件开发

什么是柔性软件开发,第1张

软件柔性

如果你买了房子,一般来说你会按你的意愿进行装修(至少大多数人会有这样的念头),如果可能,你会尽力满足你的个性化需求,软件也是如此!随着用户的软件修养的提高,对软件的柔性要求就越强。大多数软件基本上是二进制级别的硬件,很难体现其“软”的一面,如果人人都穿绿军装,会令人想起“文革”那个只有阶级而无色彩的年代……(细节内容见http://blog.csdn.net/sunhui)

通常我们所描述的“柔性”软件系统应该具备以下特点:

(1)随需应变。

扩展性良好的软件系统应当能够适应用户不断提出的要求,这种适应是动态的、即插即用的。一个软件系统经常会伴随着业务流程的变更而调整,新的功能模块有时会因某种需要被添加进来,因此,用户需要能够在自己的能力范围内调整软件系统的行为,定制自己的业务逻辑,这种机制可以保证用户要求得到更加及时的响应。软件系统的随需应变的特性是对于软件开发者和用户两个方面而言的。第一,在软件未交付使用以前,开发者需要对软件系统进行尽可能多的松散耦合设计,将软件功能作为多个独立模块进行开发和测试。软件的开发这需要仔细设计这些组件之间的连接和组合机制,发现和加载机制,以便开发人员可以后续动态修改、替换和附加新的功能单元和业务逻辑。用户有许多临时的使用需求,而要在与对手的激烈竞争中依赖软件供应商提供的方案做出应对。软件供应商必须充分认识到这种责任,在系统的构造中做好准备,保证用户在自己的能力范围内对原生系统进行定制;第二,软件系统应该能够及橡缺段时适应用户的需求变化,僵化的版梁誉本控制,往往是通过发现问题→向软件系统提供者提出要求→开发人员进行开发和测试→重新部署和使用的流程调整软件系统,很难适应用户动态多变的需求。过去的情况是用户不得不去反过来适应开发者的约束,而不是相反。而现在,随着用户软件驾驭能力的逐步提升、用户企业内部的技术支持部门的建立以及业务流程的日趋合理,软件系统应该为用户提供 “随需扮饥应变”的保障机制。

(2)稳定性。

良好架构的软件系统使用一致的方式来对待原生系统功能和新增加的业务逻辑,它并不会因为新业务的添加导致应用程序本身的运行流程改变,以致影响系统的稳定性。软件功能模块/组件是一种很成熟的选择,独立的模块开发和测试更容易发现问题。

(3)进化与逐步累加。

软件的交付和使用过程是一个不断补充与淘汰的过程。在理想情况下,一个柔性应用系统应该由一个运行核心外加多个功能单元组成。运行核心本身应与业务逻辑分离,它起到的是一个支撑的作用。运行核心拥有一套对象模型,以维系整个系统的运作,系统中的每一个功能单元,不管是已有的还是新增加的,都能够在系统内协作/协同。同时,它应该提供二次开发机制(如宏语言机制),以保证多类型的功能单元/应用实体之间的通讯可以描述驱动。具体的功能组件可以被运行核心按需动态加载以进入相关的工作流程。从某种意义上来说,这时候软件就无所谓表现形式,因为它的具体功能体现于特定功能组件的提供以及各种组件之间的协作模式。可能随着原生功能组件的逐步淘汰,新功能组件的不断补充,软件系统的最初形态早已经面目全非……

P(程序自动) 照相机自动调整光圈和快门速度以获得最佳曝光,但是拍摄者可选择能产生相同曝光的不同光圈和快门速度组合。这就是所谓的柔性程序。

S(快门优先自动) 拍摄者选择快门速度,而照相机自动调整光圈以获得最佳曝光。

扩展资料

P、S档位的适用场景:

1、适合P(程序自动)应用场景

程序自动曝光是相机自动控制光圈和快门速度,其它参数可以手动设置。虽然程序自动曝光模式使用简单方便,但不适合所有场景的拍摄,比如拍摄夜景、烟花等等。程序自动曝光很适合于快速抓拍。

2、S(快门优先自动) 应用场景

快门优先多庆盯用于拍摄运动的物体上,例如体育运动、行使轮首中的车辆、瀑布、飞行中的物体、烟花、水滴等等。

参考资料:百度百科誉桐和-M档


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12303795.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存