微波EDA网,见证研发工程师的成长!
首页 > 射频和无线通信 > 射频无线通信文库 > FO软件编程思想拯救云计算软件危机最佳方案

FO软件编程思想拯救云计算软件危机最佳方案

时间:02-07 来源:互联网 点击:

研究人员殚尽竭虑,寻找提高软件开发效率的方法和思想。然而这些优秀的方法仍然无法解决软件危机难题。由此可见,如果只在传统的软件开发思想上进行创新,将很难找到解决软件危机的“银弹”。只有在思想上发生革命性的改变,才有可能寻找到解决“软件危机”的根本方法。

  FO方法的几个假设条件

  FO软件编程思想是北京乾坤化物数字技术有限公司经过8年的探索实践而提出来的。这是一个哲学和技术相结合的范例。FO软件开发方法是建立在以下的几个假设之上的:

  1、软件的复杂度是可以通过软件的体系架构来描述的,任何体系架构是可以通过维来构建的。

  2、任何一个复杂的用户需求都是分解的,我们把不能再分解的构成部分叫“对象”。

  3、任何一个对象包含而且必须包含两个部分,即对象的外部属性和对象的内部属性。

  4、对象的连接方式即结构,就是该用户需求的体系架构。

  FO软件开发方法

  1、什么是FO软件开发方法

  FO软件开发方法是以哲学方法论为指导的新一代软件开发方法。包含三个部分,即面向事实的分析(Fact-Oriented Analysis)、面向结构的设计(Frame-Oriented Design)、面向形式的编程(Form-Oriented Programming)。

  (1)面向事实的分析。把客户需求当成存在的事实,采用哲学的方法进行分析。比如“教育云”的客户需求就是把现实中的教育体系模拟出来,我们采用哲学的方法来进行分析,首先按照行政区域分解,全球,中国,省,地级城市,县、乡镇、村。然后以一个具体的地区来分析,比如东莞市,包含教育门户,教育软件功能服务,教育工具等。不能再进行分解的实体就是对象。对象包含内部特性——形式,和外部特性——配置两部分。

  (2)面向结构的设计。把上述分析过程中得到的对象的连接形式整理出来,并采用维的方式表述。这样就得到了软件的体系结构。比如地名维,栏目维,分类维等。

  (3)面向形式的编程。对形式部分编写程序代码,即得到一个无具体含义的功能模块。该模块和配置(描述参数)结合,就得到一个对象。

  2、软件产品的构成

  按照FO软件开发方法的规则,软件包括四部分:数据,功能模块,表现程序,连接方式(体系结构)。

  在传统的软件开发方法里,软件由数据、程序两部分组成,广义上讲,相关文档也可以作为软件的一部分。

  比较这两个方法,在FO方法里,软件=功能模块+表现程序+连接方式(体系结构),变为三个独立的部分。

  在教育云CMS系统中的应用

  目前在教育云的CMS系统里,已经完成了10个功能系统的开发,未来将扩充到几十个甚至几百个系统。

  教育云里的CMS系统是采用FO方法开发的,数据、功能模块的设计和行业应用类型无关,也与平台无关。是按照软件工厂的标准来设计的。

  这种方式的最大特点是系统开发效率高,维护效率高。比如在内容发布管理系统里,10个不同系统使用的是同样的功能模块,也就是说只使用了几百行代码,就开发了10个不同需求的内容管理系统。未来增加的几百个系统,使用的代码仍然是这几百行,而采用传统的软件开发方法,这几百个系统则可能需要几十万行代码。

  代码减少的原因如下:

  1、数据表设计的规范化。按照同构群的方式来设计数据表,把表里的字段分为文本类、数字类、日期类、逻辑类等。每种类是由包含0个以上字段构成的集合。利用同构群的特性,只要是内容发布管理,就属于同构群的一个,其处理方法是完全相同的。

  集合S={文本类、数字类、日期类、逻辑类}和对这些字段的处理运算构成了一个群G。

  2、采用非线性逻辑单元构造方式来设计功能模块。一个功能模块是有一系列逻辑单元按照一定的排列顺序构成的。如下图所示,对于一个指定的功能模块来说,存在至少一个以上的独立逻辑单元入口,每个逻辑单元入口就规定了一个运算路径。同一层面的逻辑结点的排列顺序可能有时序要求或者没有时序要求。

  采用传统的软件开发方法开发下图所示的功能模块时,开发商无法预先知道功能模块的实际模样,因为不同的软件工程师,或者同一个软件工程师在不同的时间段,编写的软件代码是不同的。也就是说无法得到一个基本规范的软件程序。

  FO软件开发方法采用非线性方式,对功能模块的逻辑单元进行分析处理,沿逻辑单元的路径独立编写代码,最后根据需要排列第一层逻辑结点位置,就得到了功能模块。

  按照FO开发方法,如果最小逻辑单元所完成的功能相同,那么其代码也是一样的,也就是说在最小的逻辑单元层面,代码是完全共用的。

  FO软件开发方法的意义

在8年的实践应用里,通过不断摸索调整,FO软件开发方法已经基本成型,并在一些具体应用中得到验证。在云计算时代,面对社会需求的重

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top