GeneXus 是一个用于开发和维护软件系统的工具。

GeneXus 基于业务系统知识的自动管理。这怎么可能?通过在数学和逻辑方面定义系统开发和维护问题,以确保严格处理所考虑的问题。

GeneXus的目标是获得一个充分代表现实并且可以随着时间保持最新的模型。如何做到这一点?通过对现实的准确描述,通过描述用户对数据的不同视图。描述是在 GeneXus 对象中捕获的,具有必要的表达能力以正确表示该现实。然后捕获并综合这些视图中包含的知识以构建模型。

GeneXus 通过知识库与模型一起工作,知识库由存储知识的数据库和推理机制组成,推理机制允许从存储的知识开始,获得可以从逻辑上推断出的任何其它知识。

此推理是一种确定性操作,其中使用了数学方法和工具、谓词逻辑、计算机科学和人工智能。推断的知识范围从简单到非常复杂的事物,例如数据库设计或任何程序的生成。

所有这一切都是通过内部研究实现的。自 1984 年以来,由工程师和数学家组成的团队为该项目投入了数百人的研究和开发。GeneXus 的第一个版本是在三十多年前发布的。截至2005年,全球有 7,000 名客户和超过 85,000 名开发人员围绕 GeneXus 建立了自己的职业生涯。

GeneXus 通常用于构建大型关键任务系统。

简而言之,GeneXus 是一个用于软件系统开发和维护的工具,实现手段是通过描述而不是编程的方法。

1、简介

我们创建 GeneXus 的研究始于 1984 年。当时,我们正在寻找一种产品,以便帮助我们的客户应对我们预期随着时间的推移会发生的重大变化。当时的情况与现在大不相同,大多数应用程序都是面向批处理的,交互式应用程序具有非常基本的文本屏幕和对话框。一般来说,最终用户是为组织工作的员工。

现如今,世界上大多数居民都是许多系统的潜在用户。1980年代的大公司使用几千兆字节的数据库,而今天的公司数据库已达到几千PB字节。也就是说,它们的体积翻了百万倍!

我们的目标是将应用程序的开发和维护“工业化”,以降低成本并避免呈指数增长的人为错误。

我们一开始面临的一个简单问题是哪些事情可以自动化,哪些不能?我们的目的是使用 GeneXus 来自动化所有可以自动化的东西。

GeneXus 是一支卓越的高素质专业团队努力的产物,他们以杰出的慷慨、热情、承诺和信念将他们的科学和技术专长用于项目服务。尽管在这些过程中遇到了困难,但他们始终对自己的工作充满热情。

但我们也必须说,今天的 GeneXus,尤其是未来的 GeneXus,远远超出了实验室所能完成的范围。如果没有与 GeneXus 社区日益重要的互动,GeneXus 就不可能实现。GeneXus 社区由全球超过 85,000 名开发人员组成,围绕它开展专业活动。

有时我们会发现一些潜在客户,虽然他们对 GeneXus 提供的可能性非常感兴趣,但害怕将其作为战略解决方案,因为他们发现它与他们所知道的如此不同。

如果我们考虑历史上所有伟大的创新,这方面并不新鲜。著名科幻小说作家亚瑟·C·克拉克 (Arthur C. Clark) 提到了这一点,他说:“任何足够先进的技术都无法与魔法区分开来。”。我们的技术没有任何神奇之处:它是明确目标、持续承诺、持续努力的结果,以及少量很好的想法和数百人年的研究和开发,利用所有可用的科学和技术,例如数学、逻辑、计算机科学和人工智能的方法和工具。

(译者注:这里的人工智能是基于ProLog人工智能语言的专家式人工智能技术,而非基于机器学习的人工智能技术。)

我们于 1984 年开始使用这个工具包,并随着我们自己的理论发现和我们随着时间的推移构建的新工具不断增加它。我们利用这个基础建立并不断改进业务系统现实的元模型,这使我们能够在任何给定时间获取每个公司所需的特定模型,并自动生成和维护他们的应用程序(数据库、程序、和过程)。

2. 目标

主要目标是为通常影响所有系统开发中遇到的许多问题找到解决方案,以下是所面临的常见问题:

  • 重点关注技术而不是业务;

  • 应用的低级技术导致非常低的生产力、人为错误和开发人员缺乏动力;

  • 可用的文档往往不完整和过时,部分知识只存在于一些开发人员的脑海中;

  • 随着新技术的引入,这些开发人员的技术知识在短短几年内就会过时。

那么,如何才能避免这种情况呢?

答案是:通过自动化可以自动化的一切。

在系统开发中什么可以自动化,什么不能自动化?

GeneXus 30 多年帮助数万家客户并被全球数百万名开发人员使用的经验表明:

整个系统的开发和维护都可以自动化:

系统开发和维护是指数据库、程序和流程的设计、生成和维护,所有这些最终都可以被视为非创造性的日常任务,因为它们可以从合适的模型中自动推断出来。

每家公司都需要一种在每种情况下都不同的特定模型。构建模型意味着理解客户需求的创造性任务。

3. 如何达到目标

  • 模型

    实现拟议目标的第一个基本要素是设计一个充分代表现实的模型。

  • 客观性

    在我们的模型中引入主观元素将使其在很大程度上取决于构建它的个人。

    随着问题规模的增加,主观性方面与越来越严重的错误相关联。

    我们的模型必须建立在客观要素的基础上。

  • 自动管理

    每个模型都包含大量知识,手动使用时不会显著提高生产力。

    此外,我们将无法避免开发人员所犯的众多人为错误。

    为了实现我们的目标,我们必须创建一个模型,允许程序使用其中包含的知识,而无需人工干预。

  • 增量开发

    现实不是静态的,没有静态模型能够随着时间的推移准确地表示它:

    我们需要模型能够以增量的、非破坏性的方式不断适应现实。

  • 独立于信息技术

    信息技术在不断发展,一般来说,这种演变是破坏性的。

频繁发布新的操作系统、数据库管理系统、编程语言、通信监控和隐喻:面向批处理、与文本屏幕交互、Windows、Web、智能设备……接下来会发生什么?

如果我们的模型依赖于特定时间使用的信息技术,那么在转向新技术时它就会过时。

所以,我们的理论模型必须是完全排除当前信息技术元素的知识的规范。

4. 模型和知识库

它是关于以自动方式处理纯知识,并从存储的知识中推导出所有可以从逻辑上推断出来的知识。模型是包含所有这些知识的理论概念。我们的理论模型于 2010 年公开,以协助 GeneXus 社区和其他有兴趣推进基于知识的软件公司。

我们必须自动处理知识,为此我们实施了知识库,它由两部分组成:

  • 数据库

存储知识的数据库由一个从市场中选择的关系数据库和一组简单但重要的扩展组成,例如,这些扩展允许它有效地处理未预先定义的复杂对象和元素。

  • 推理机制

推理机制是基础。一开始,我们可能会认为数据库中存储的是对旧式数据字典的简单改进。添加的强大而复杂的推理机制使一切变得不同:

就像在数据字典中一样,存储在其中的元素可以随时检索并通过交叉引用相互关联。然而,这绝对是不够的:我们还需要能够获得任何知识,尽管没有存储,但可以从实际存储的知识中推断出来。

基本示例

  • 对于一组数据视图,获取合适的最小关系模型。

  • 对于特定的数据视图,生成必要的程序来使用它。

5. 描述知识的客观性 - 透视同构法

几个世纪以来,绘画都是凭经验发展起来的,没有任何规则来支持它们。1417 年在佛罗伦萨,意大利艺术家和建筑师 Filippo Brunelleschi 提出了一套我们今天仍在使用的规则(描述性几何原理)。

但是,透视以何种方式与数据分析相关?

透视法是一个重要的灵感来源。最重要的是它触发了范式转变的开始:随着透视法的采用,我们从一种复杂、令人困惑和主观的方法(我们“按照我们认为的那样”绘制对象) ) 到描述性的、简单的和客观的方法(我们绘制一个“我们所看到的”对象)。

如果我们能对数据做类似的事情,我们就会取得巨大的进步!

实际上,我们可以说:我们需要描述现实的所有知识都可以从用户的视图中获取。

如果我们考虑“在组织中,谁以必要的客观性和详细程度了解数据?”的问题。我们将看到答案是否定的。

因此,让我们尝试将其替换为另一个可以回答 YES 并可以帮助我们构建我们想要的模型的模型:“公司用户对哪些主题有客观详细的了解?”。每个用户都非常了解他或她使用的数据的视图。

让我们回到透视法;在透视和数据分析中,我们“描述视图”。从这些视图中,我们获得了知识。

(译者注:主题是人对外部对象的观察、体验、分析、研究等后得出的理解、观点、评价等认识结晶。其中既包括主观的认识又包括客观的认识。)

6. 模型概述

一个显而易见的问题是:给定一组数据视图,我们能否为它们推断出合适的数据模型?

这是一个很好的问题,因为它将问题带到了数学领域。

  • 首先,我们必须定义一个参考框架。

    不同数据元素的名称将遵循明确的命名规则,以便自动处理。

  • 其次,每个视图都有一个必须以准确和客观的方式表示的结构。

  • 第三,我们需要一个过程来从一组数据视图转换到相应的模型。

    我们将前面的问题改写如下:

    给定一组数据视图,有适合他们的最小关系模型吗?

    答案是肯定的!

    因此,在仔细定义问题并确定之后,我们回到工程领域并开发了一个程序来生成模型。

综上所述,到目前为止,我们已经对问题进行了仔细的定义,来自数学、逻辑、人工智能和工程领域的广泛方法和工具可以帮助我们来解决这个问题。

7. 自动化管理

一旦我们从通过数据视图捕获的知识中获得了模型,我们是否可以自动生成必要的程序?

一开始,我们并没有考虑生成程序,但是 IT系统一直遭受的所谓“稳定数据库”的失败,使我们坚定信念我们应该解决这个问题。否则,我们的客户将始终背负高昂的维护成本。

几乎从一开始,计算机科学就承担了程序自动生成的问题。生成器基于“模板”或“框架”,从填充空白的方法开始,然后变得越来越复杂,最终解决了安装需求的很大一部分。

但这不是我们想要的,因为我们想要生成“所有”必要的程序,否则我们将无法确保自动维护。

8. 增量开发

稳定的数据库可能吗?

“稳定的数据库”是计算机科学中反复出现的问题。这个想法是这样的:

如果我们为特定企业提出“正确的数据库”,那么该数据库在未来将保持稳定。因此,随着时间的推移,我们将简单地编写使用它的程序。

关于这个主题已经写了很多。

然而,这个论点是错误的,因为一个组织只有在它停滞或死亡的时候才有一个稳定的模型!因此,最好不要浪费任何精力去寻找这样的稳定模型,而是准备好使用可能的、真实的、不稳定的模型。

那应该如何做好数据库不稳定的工作?

这是全新的东西。这个想法是在概念层面拥有一个知识库,以增量方式动态适应公司的需求,并能够自动生成数据库结构和程序中的必要更改,以便一切随着时间的推移按照最佳方式正常工作。

这是一项巨大的技术/科学挑战,我们在 30 年前成功战胜了这一挑战。关键是完全独立于像文件和访问机制等物理元素的知识表示。

9. 独立于信息技术

信息技术以一种非常动态且无政府主义的方式发展:所有大公司都发布他们的创新产品,试图以最具商业效率的方式与其他公司竞争。经常引入破坏性创新,会给用户带来严重的问题。

我们的目标是让我们的知识库独立于给定时间使用的技术,这样,只需构建新的生成器,我们就可以使用旧知识为未来可能流行的新技术生成应用程序。30 多年来,我们的客户一直受益于此功能。

GeneXus的科技基础(GeneXus背后的理论)相关推荐

  1. 来也科技收购Mindsay背后:新旧势力交锋智能自动化备受关注

    来也科技收购Mindsay背后:新旧势力交锋智能自动化备受关注 来也科技收购Mindsay背后:历程一波三折,意义非同寻常 来也科技收购Mindsay,国产RPA正式进军国际市场 收购Mindsay来 ...

  2. 机器学习-算法背后的理论与优化(part5)--结构风险最小(下)

    学习笔记,仅供参考,有错必纠 参考自:机器学习-算法背后的理论和优化: 文章目录 结构风险最小(下) 回归的正则化 L 2 L_2 L

  3. 机器学习-算法背后的理论与优化(part2)--广义线性模型

    学习笔记,仅供参考,有错必纠 参考自:机器学习-算法背后的理论和优化: 广义线性模型 广义线性模型的定义 对于第一个问题,后面的分析中会看到在一定的假设下选择Sigrnoid函数是一种必然. 关于第二 ...

  4. 机器学习-算法背后的理论与优化(part1)--从线性回归到逻辑回归

    学习笔记,仅供参考,有错必纠 参考自:机器学习-算法背后的理论和优化: 从线性回归到逻辑回归 线性回归估算的是一个连续变量的条件期望: E ( y ∣ x ) = w T x (1) E(y|x)=w ...

  5. 统计信号处理基础 - 估计与检测理论 估计部分习题3.7公式推导

    统计信号处理基础 - 估计与检测理论 估计部分习题3.7公式推导 题目 证明 结论 得证 题目 相信学习信号检测与估计的童鞋们肯定看到过Steven M.Kay大牛的书,非常厚的一本,不得不说,人家的 ...

  6. Hive3入门至精通(基础、部署、理论、SQL、函数、运算以及性能优化)15-28章

    Hive3入门至精通(基础.部署.理论.SQL.函数.运算以及性能优化)15-28章 [Hive3入门至精通(基础.部署.理论.SQL.函数.运算以及性能优化)1-14章](https://blog. ...

  7. 视频教程-黑客基础——爬虫(从理论剖析到实战演练)-大数据

    黑客基础--爬虫(从理论剖析到实战演练) 美国Texas A&M 在读博士,空间智能计算研究, 曾先后在全球大安全公司从事爬虫工程师.数 据分析.文本挖掘.机器学习等工作.对数据科学 和人工智 ...

  8. 人工智能教育前沿科技基础实验班开班仪式

    4月17日上午 "帝工先进技术研究院人工智能教育培训前沿科技基础分院授牌仪式" 暨"人工智能教育前沿科技基础实验班开班仪式" 在帝工先进技术研究院国际交流与教育 ...

  9. 小强软件测试_小强老师零基础学习软件测试视频教程 理论篇+自动化篇+工具篇+实战等零基础课程...

    小强老师零基础学习软件测试视频教程 理论篇+自动化篇+工具篇+实战等零基础课程 1.jpg (53.32 KB, 下载次数: 0) 2017-10-5 09:33 上传 2.jpg (49.08 KB ...

最新文章

  1. 2010-12-30
  2. MATLAB_11-图像特征
  3. 《PLACEBO》(安慰剂)米津玄師/野田洋次郎 (罗马音、歌词、汉译)
  4. 扩散模型就是自动编码器!DeepMind研究学者提出新观点并论证
  5. Java线程之Synchronized用法
  6. Python中查找包含它的列表元素的索引,index报错!!!
  7. web基础编程-图片管理网站
  8. 0603 0402 0805 电阻封装寸尺
  9. 读取文件卡顿_CPU占用100%,电脑卡顿原来可以这样解决!多任务操作也运行如飞...
  10. deepin启动盘无法引导安装_deepin 无法启动问题解决
  11. Qt5学习笔记之QQ登录界面五:切换界面
  12. expdp的常用用法
  13. 2021-07-31mysql连接 基本语句
  14. Python英语单词查询
  15. PDF转码html有乱码,PDF转换成为Word内容出现乱码怎么办
  16. 平面一般力系最多可以求解_利用平面一般力系的平衡方程最多可求解几个未知量。( )...
  17. GY-53红外激光测距模块的使用以及pwm模式代码的实现
  18. win10熄屏时间不对_win10设置了息屏时间但是很快就息屏
  19. nmos导通流向_技术参数详解,MOS管知识全录!
  20. 关于java.io.FileNotFoundException: test.txt (系统找不到指定的文件。)的问题解决办法。(相对路径出错)

热门文章

  1. JavaWeb_04_MySQL多表事务
  2. vs2005 sp1 补丁的安装问题
  3. 福尔摩斯到某古堡探险
  4. python IDEL 清屏
  5. java中JAO,Java
  6. 计算机配置低怎么办,电脑配置低怎么办 如何让电脑运行速度加快
  7. vue前端导出excel,js-xlsx、xlsxStyle,可设置样式、表格合并;(包含获取excel列数函数、excel合并表格缺少边框处理函数)
  8. reac antd 删除列表
  9. [FJOI 2016]bzoj 4408 神秘数 - 线段树
  10. 遥感卫星影像数据全色波段和多光谱波段