科学网

 找回密码
  注册

tag 标签: 基因软件

相关帖子

版块 作者 回复/查看 最后发表

没有相关内容

相关日志

“死而无憾”引发的灵感——基因软件引擎架构设计
热度 2 Babituo 2011-10-8 21:20
“死而无憾”引发的灵感——基因软件引擎架构设计
刚刚回复武老师“ 怎样才能死而无憾?----德鲁克的回答” 时,感觉自己的血有点热,灵感就来了。 这是一个技术灵感:我的基因软件的核心架构,为了画出这个核心架构,我已经不知道画过多少遍不同的图形了,今天,“死而无憾”告诉我: 我应该选择这张图: 为了“死而无憾”,我就把它公开了。——前两天还在犹豫,是否公开这个“技术秘密”。 干脆彻底揭秘一下吧: 在我的架构设想中: 数值,就像是水一样的媒介, 空间,当然就像是河床,湖床或海底,是空间位置及位置关系的集合; 状态,水流到什么地方就会出现什么状态,状态包括事件,进入状态和退出状态的事件; 操作,操作就像抽水机抽水,烧水,太阳嗮水等,不断改变水的空间分布。 结合我对信息本质的认识:信息是结构化能量的流转。其背后的物质、能量、信息与广义能量的关系,理解如下: 空间代表物质性的来源; 数值代表广义的能量; 广义能量非均匀地分布于空间则产生能量的结构; 物质本身就是被空间卷曲的广义能量。 状态代表信息性的来源; 广义能量结构产生变化说明出现状态跃迁,状态跃迁就是信息。 操作代表狭义的能量性的来源; 操作就是狭义的能量转换。 当然,这只是物理哲学上的彻底揭秘,信息技术上的秘密还不能彻底揭开,因为,我也还只是在探索中,我相信,有哲学的明灯指引,这条路一定会通向光明。 outcrop 2011-10-9 00:07 邱老师这构思有意思,前天晚上我还在想:基因会不会就是一种四进制(AGCT)为基础的某种功能编码呢 博主回复(2011-10-9 07:49) : 呵呵,纯属巧合,你可以看到这个构思的什么意思呢? outcrop 2011-10-9 09:36 我觉得有意思的是数值空间产生状态这部分,如同DNA的排序:不同的DNA顺序位置决定了不同的属性。 从这个角度来看软件,则变得更为宏观了;但存在一个关键问题,就是如何定义“产生”“状态”这一过程。 不知道邱老师打算表达的本意是不是如此 ? 博主回复 : 我只是有这个感觉,经过你一说,我都清晰多了。原来这个也是亮点,我原来把亮点放在了空间-状态-操作的循环互动关系上了。 outcrop 2011-10-9 10:01 类似“空间-状态-操作”的思想,在WEB开发中可能有所体现;比如常说的MVC(Model-View-Control),将逻辑模型、展示以及控制分开了 博主回复 : MVC模式解决的重用的问题,我的这个模式是为了解决演化的问题。或者我可以把它取名叫: SSO模式(Space-Status-Oparation). 我说的这个模式可以是嵌在“模型-视图-控制”模式中任何一部分中的“微模式”,也可以是分层覆盖(面向方面地)整个应用的架构模式。你的这个感觉,只是这个模式存在分形的特征所导致。 MVC模式不只是WEB开发的模式,最早的多文档桌面应用都用了这个模式,这个模式和我现在说的模式还是有区别的。 多谢outcrop提点,我将此模式正式命名为SSO模式。 和“有限状态机”和“无限状态机”都不同的是,这是一个“循环状态机”。——圈态思维的体现——揭秘揭不完啊。
个人分类: 基因软件开放实验室|3882 次阅读|24 个评论
[转载]事脉管理推动智慧制造
热度 1 Babituo 2011-9-23 11:06
[转载]事脉管理推动智慧制造
转载自己的文章,早先发表在e-works上的论文,现在感觉可纳入基因软件的应用范畴来研究。 事脉管理推动智慧制造 珠海威瀚科技发展有限公司 邱嘉文 摘要: 本文首先介绍了智慧制造和事脉管理的基本概念和产生背景,然后,分析了事脉管理理念和智慧制造理念之间的关系,阐明事脉管理可为智慧制造解决“智慧地管事”层面问题提供有力的支持。在重点叙述了事脉管理系统如何能推动智慧制造系统向更高目标发展之后,文章给出了一个未来场景的设想,形象表达了在事脉管理系统驱动下的智慧制造系统是如何发挥作用的。最后,通过与物联网的关系分析进一步强调了发展事脉管理系统的重大意义。 关键词:事脉管理,智慧制造,物联网,智能制造系统,事脉管理系统 1. 关于智慧制造 制造过程正从能量驱动逐渐转变到信息驱动,智慧制造的概念正是在这一背景下提出来的。而驱动制造过程的信息,不仅仅包含制造过程本身的信息,如:产品设计信息、工艺信息、设备信息、生产信息和制造管理信息等,也包括来自更加复杂多变的市场需求信息,如:小批量、个性化订单信息。这些信息会从交货时间、产品特性、质量等级、采购预算、服务水平和环境保护等多方面提出更加多样化、复杂化的需求。这就要求制造系统在实现基本的自动化功能基础上,还要融入更加智能化的信息处理的能力。 于是,专家们提出了一种区别于计算机辅助集成制造模式的智慧制造模式,旨在解决复杂多变的环境下的有效制造问题,也就是要实现绿色大规模定制的目标。为此,计算机辅助集成制造系统( CIMS )就需要升级为智能制造系统( IMS )。一系列的智能制造技术( IMT )在传统的自动化技术基础上得以升级或有待升级应用。如:信息互联技术、并行工程技术、人工智能技术、智能机器技术、新材料技术等等,这些技术的应用,不仅仅在广度、深度和精度方面大大拓展了制造系统对信息的利用,而且大大提升了人机智能接口的友好性,更好地促进了人类智慧和机器智慧的相融。研究专家们正致力于实现一个将市场适应性、经济性、自然与社会环境的适应性、人类智能相融性、开放性、兼容性等诸多能力融为一体的生产系统。一个集自动化、柔性化、集成化和智能化的先进制造系统,正越来越清晰地出现在人们的视野中。 2. 关于事脉管理 事脉管理是作者在“项目管理领域的网络计划管理方法,越来越不适应复杂多变的项目环境”的背景下,提出来的一种通用的、对行为过程进行计划与实施管理的方法。事脉管理理论将企业及其所在的经济生态圈,当作一个复杂大系统来研究,提出企业及其所在的经济生态圈存在“两个脉络关系网相互纠联”的结构:这两个脉络关系网是资源脉络关系网和活动脉络关系网。其中的资源脉络关系网的存在,是驱动错综复杂的活动运行的基础;活动脉络关系网的推进实施,又是实现资源目标价值关系的手段。当以“人力资源” 代表核心资源的时候,资源脉络关系网就是常说的“人脉”网;当以“事”来指称贯穿企业内外的各项活动时,活动脉络关系网就是“事脉”网。当我们轻视、忽略或回避企业的内外环境的不确定性的时候,相应的企业资源关系管理和活动关系管理就对应了“企业资源计划管理 (ERP) ”和“项目任务计划管理 (PM) ”;当我们在重视、关注或面对企业的内外环境的不确定性的时候,所进行的企业活动关系的管理,就是作者所谓的“事脉管理”。(参考图 1 ) 如果说企业的资源系统如同人体静态的经脉系统,那么,企业的事脉系统就如同人体动态的气血运行过程系统。事脉管理是一个“以平衡企业内外活动的节律,使企业内外活动关系达到动态平衡为目标”的企业过程管理理念。而使用计算机辅助进行事脉管理的信息系统则称为事脉管理系统。事脉管理系统是以企业内外活动的脉络关系为核心的管理对象,是以动态进行的活动事务的信息为处理内容的业务基础平台系统。它具备事脉构建、事脉监控和事脉分析的基本功能。事脉管理系统力求既能在全局的角度给出企业连贯性的活动历史、现状和预测的信息,又能钻入到深层嵌套的子活动中,了解执行的细节状况。事脉管理系统能即时发现、甚至预先感知事脉中任何一个有风险的事件发生,并向相应的智能资源个体发出驱动和告警信息,以此实现企业内外活动关系的柔性连接。 3. 事脉管理和智慧制造的关系 从客户提出一般的商品需求到得到满足的过程中,仅仅是一线的活动类型就包括需求获取、分析设计、试验测试、工艺设计、原材料采购加工、生产组织实施、产品检测、包装运输、销售安装等一系列的活动,并且这些活动之间存在各种各样的关联关系。如果把这些活动统称为“事”,归纳地说,这些关联关系就是:事前有事,事后有事,事因是事,事果是事,事里有事,事外有事,事有同事,事有异事。这些关联有的是约束条件,有的是依赖前提;有的是直接的逻辑关系,有的是通过资源、时间间接形成的约束关系。依赖的前提是指在客观过程上,不可变更的关系;而约束条件则指可根据不同的资源状况和过程设计,可以变化的关系。如,原来串行的活动可改为并行,原来分散的活动可集中,集中的活动可分散进行等。于是,围绕任何商品的需求产生到满足的过程,就展开了一个庞大的事脉。 智慧制造的实质作用,其实就是通过智能化的技术,自动地、动态地优化事脉中的各种约束关系,使得可以用较短的时间、较少的成本、更佳的体验、在较大规模上来满足不断个性化的需求。要起到这个作用,一个智慧的制造系统除了能“智能地做事”之外,还必须学会“智慧地管事”。只有把“智能地做事”和“智慧地管事”有机地结合起来,才能真正实现“智慧制造”。(参考图 2 )。 如何在整体上统一协调智慧制造系统中各环节的活动,如何优化制造过程中的信息流与物资流的路径,以获得最佳的制造过程性能?如何动态评估和监测一个实际的智慧制造过程的状态和最终效益?这些都是智慧制造中有待深入研究和解决的问题。事脉管理的理念正好为智慧制造在“智慧地管事”方面提供了概念的支持,在智慧制造中应用事脉管理,能系统地分析和解决智慧制造中的这个重要的、基础层面的问题。一个真正的智慧制造系统,未来也离不开一个面向制造业的事脉管理系统的支持。 4. 为何能用事脉管理来推动智慧制造 如果把智慧制造系统比喻为一个活着的智能生命体,那么,事脉管理系统就是这个生命体的运动神经系统。把制造系统当作一个生命有机体来对待,正是事脉管理区别于普通的计划管理的重要区别。事脉管理系统也就成为对智慧制造系统的全系统,进行运动与活动控制的专门子系统,这与通常的网络计划,资源计划,生产排程系统有着本质的区别。这个区别,也正是传统 CIMS 系统和 IMS 系统的区别所在:前者是一种将智能机械化的制造系统,而后者是一种将智能人性化的制造系统。把事脉管理系统定位为一个与人的活动更相容的智能行为活动管理系统,将是事脉管理推动智慧制造的首要目标。事脉管理系统将是解决“自动化孤岛”问题的一种有效方案。 事脉管理系统如何实现智慧制造系统的活动与人的活动更相容呢? 首先,事脉管理系统是基于事脉管理的概念模型来设计的,而事脉管理概念模型又是通过对“现实社会中人们的事务活动关系”进行抽象总结提炼出来的,而非以计算机智能处理能力为核心来设计的。这意味着事脉管理系统的工作层面天然就是现实的业务层面。在这点上,事脉管理系统非常类似工作流管理系统的概念,只是在事脉的形成与改进机制、覆盖范围、活动逻辑关系类型等方面进行了较大的拓展 , 也正是这些拓展,可以让事脉管理系统比工作流管理系统可适应更加广的地域和业务应用领域的、更加复杂多变的、动态活动逻辑的管理。 其次,事脉管理系统管理的覆盖范围更广。一个面向制造业的事脉管理系统,首先是一个供应链的活动关系管理系统,然后,才深入到供应链上的企业内部生产活动关系的管理。事脉管理系统只要紧抓“活动关系”的要素,通过虚拟的“事脉信息总线”横向贯穿原有的战略管理系统、决策支持系统、资源计划管理系统、生产管理系统和过程控制系统,将一条供应链上的全部人员、功能子系统和智能制造单元,在活动事件脉络关系的层面全部贯通。相关人员、功能子系统和智能制造单元只需通过统一的、支持事脉管理的、标准用户接口和智能设备接口与事脉管理系统进行交互,即可实现对整个智能制造系统的全部活动事件的整合,实现基于事脉管理标准的互操作。(参考图 3 ) 最后,事脉管理系统本身必须基于更先进的分布式处理技术、通讯技术和商业智能技术来构建,来实现事脉系统本身所具备的管理功能。这些功能包括事脉的动态构建、事脉运行的监控、事脉分析与报告等三大基本功能组。在事脉动态构建中既能根据历史知识迅速构建未来预想事件网,又能跟踪实际事件发生过程逐渐演进新的事件网,这需要建立一种事脉的学习和重用机制,将事脉的自动链接和人工参与链接结合起来;在事脉运行监控中,既可提升到足够高的层面上,监控整个供应链各环节的运行状况,也可深入到某智能制造设备中查看到历史、当前和未来预计将出现的状况,其中事脉图的缩放功能可以使管理人员象使用 Google 地球一样,来查看整个系统的事件脉络关系的执行过程;在事脉分析与报告中,不仅可以对历史事脉进行商业智能的数据挖掘和分析,发现历史事脉运行的规律,总结事脉优化演变的机会,并且可以对正在运行和将要运行的事脉进行分析评估,为评估当前风险效益,设计未来的事脉预案提供直观的报告。 总之,事脉管理系统与智慧制造系统的理念更加融洽,其横向交互操作标准和智能的事脉管理功能,将推动智慧制造系统向一个宏大的有机生命体进化。 5. 事脉管理推动智慧制造的场景设想 据有关材料估计,全世界每天正式提交的专利申请不下 1 万件,而积累未审批的专利申请则有数百万件,还有大量的正在涌现的创新发明思路尚未提出申请。这些人类智慧极大程度被积压在堆积如山的专利报告和少数人的头脑之中,而未能为大众享用,不得不说是一个极大的遗憾。究其原因,不可否认,“大规模个性化制造难“的瓶颈问题,是重要的原因之一。未来的智慧制造系统能否承担起解决这个问题的使命呢?如果能,这意味着可以极大地缩短人类智慧的理想与实现距离。 接下来让我们来假想一个通过智慧制造来实现发明成果实现的场景案例,来品味一下,未来在事脉管理系统推动下的智慧制造系统,可以带给我们怎样的智慧实现的体验。 软件工程师林觉长期从事嵌入式软件的开发,这天,他看了一个科普教育片,了解到了鸟类飞行的详细过程,发现了鸟类控制飞行的一个诀窍,可以通过自己曾经研究过的一个软件算法来模拟实现,于是,萌发了发明模仿鸟类飞行动作的飞行器的设想。 于是,林工程师登录了互联网的事脉管理系统,发起了一个事脉:尝试发明一种模仿鸟类的飞行器。事脉管理系统立刻就识别出这是一个与精密机械、电子、材料、软件等专业相关的“发明成果实现类”的事脉。事脉管理系统会把预先储备的此类项目的事脉模板,推送到林工的桌面:事脉模板图会展现实施一个类似项目所需要的一系列的、一般性的标志性事件及其关系呈现出来,林工只需对事件进行必要的确认,对将发生事件的要求信息,尽可能输入到事脉管理系统,就可确认提交。 接着,系统会将相关事件进行分解,把对口的事件通过互联网精确推送到已经加入到事脉管理系统中的相关人员或组织的桌面上。如,网络上的 1000 个做精密机械设计的设计师会收到一个预想事件,邀请他们在几小时内决定是否参与一个机械鸟的设计任务,当然,一些系统架构设计师,动力设计师,材料设计师都会收到类似的邀请,有兴趣的设计师会立即向事脉管理系统提出新的预想事件需求,其中可能包括需要提供进一步详细的信息,自己参与项目需要的报酬待遇条件等。事脉管理系统会自动完成某些事件信息的加工处理工作,并将有关事件信息又自动推向林工,此时,林工桌面的事脉系统图已经自动地扩展了很多细节,并在事脉图上有多种替代方案的执行路径显示出来… , 接下来的详细设计、审核、样机制作、试验测试的工作都会调动适当的资源动态地、有预计地加入进来,事脉管理系统会不断地给出可能的实施路径的经济、技术指标,供林工选择决策。林工的这个事脉网就像一个小宇宙,从产生创意灵感开始发生事脉的膨胀,又随着时间推移,一个个预想事件成为现实和历史,开始收缩,最后收敛到林觉最终设想的实现——一个真正模拟鸟类飞行的飞行器模型制作成功! 林觉的发明原型制作过程只不过耗时 3 个月,耗资 100 万元。这在实际的现实中,没有事脉管理系统驱动下的智慧制造系统的情况下,是难以想象的,也许这个目标在现实中,花费 3 年 1000 万元也不一定能做到。当然,可以继续想象,在事脉管理系统驱动下的智慧制造系统的支持下,林觉的发明将以何等的更高的效率应用到生产和生活中,为人们带来更多更好的体验。 6. 事脉管理推动智慧制造的深远意义 随着 IBM 的智慧地球理想的不断清晰化,物联网已经作为一个新的、庞大的基础网络的概念在推行中。物联网的建设是人类智能向其周边的环境设施中渗透融合的必然结果,是人类期待与环境友好相处的宏伟工程。未来的智慧制造系统,依然是一个对物资进行加工的系统,必然在极大程度上依赖物联网来运行,但物联网始终还只是一个静态的智能设施的网络,要发挥这个网络的价值,必然要在这个网络上跑一些有价值的新过程以及更有价值地来跑现有的过程。未来的智慧制造系统,需要怎样的更有价值的过程管理系统呢?智慧制造系统不仅仅需要物联网,更需要事脉网。 比如,智慧制造中希望实现的“并行工程”的问题,实际上关键的核心也在事脉管理上。事脉管理系统实质上就是一个智慧制造过程的动态架构系统,如何改串行的任务活动为并行,如何充分利用时差的效应持续地运行事脉,充分利用不同地域的资源有效驱动事脉,如何“压扁”事脉图,将会是事脉管理有效支持“并行工程”的亮点之一。 无论从能源还是从物资资源的角度来看,人类的不断增长的需求和能源与自然资源逐渐枯竭的矛盾必然越来越尖锐,未来的智慧制造系统,必须是一个节约型和精细型的智慧制造系统,会试图只在有需要的时候才会启动精确数量产品制造过程,这使得制造过程相关的环节的活动需要更加精准地配合,并能适时地组合多样的制造能力。要满足这样的要求、实现这样的目标,不仅仅要解决智能的基础设施网的集成问题,更要解决包括智能设计、智能工艺过程编制、智能生产过程调度、智能检测诊断和补偿、智能加工过程控制、智能质量过程控制和智能生产经营决策等一系列人机结合的智能活动的整体动态集成的问题。而建设一个强壮的、规模宏大的事脉管理系统,恰恰是解决这个问题的未雨绸缪的解决方案。 作者简介: 邱嘉文,男, 46 岁,现任珠海威瀚科技发展有限公司副总经理, IT 之源项目管理专家,珠海软件行业协会企业专家,珠海自动化学会副理事长。曾任广东同望公司网络计划软件的架构设计师、同望公司首席分析师。从事软硬件项目开发和项目管理工作十八年。曾发表过“面向对象思想和企业规范化管理”,“软件项目系统基模初探”,“中小软件企业如何实施基于 CMM 的软件过程改进”等论文,在项目管理、业务建模和软件开发技术方面具有独到的见解。 参考文献: 【1】 荣列润 面向 21 世纪的智能制造,《机电一体化》, 2006 年第 4 期。
个人分类: 基因软件开放实验室|2746 次阅读|11 个评论
四年前的畅想:基因软件
热度 1 Babituo 2011-9-14 16:43
何谓“基因 软件 ” 基因软件是一种摹仿生命系统架构特征的软件,是一种可演进的软件。主要针对解决软件如何随需应变的问题。 生命系统的架构特征 生命胚体在其细胞的 核酸片段中隐藏着特定遗传信息 -这就是生命的基因。 胚体从母体中吸收营养,在遗传基因密码的控制下重组营养成份,逐渐形成自身的肌体组织,具备各种生命机能。 胚体从母体中分离,独立面对自然环境,运用已经形成的生命机能从自然环境中吸取营养,消化处理,新陈代谢,不断让自身成长壮大,同时对自然环境产生影响,并寻找机会改善自身的基因,得到进化。 胚体是基因的承载者,从胚体的角度看,母体和自然环境都属于外部环境。生命系统架构特征就是:胚体(基因的代理者)植根在外部环境之上,接受外部环境刺激,从外部环境吸收营养,成长壮大,同时影响和改变外部环境,进而优化自身基因结构,朝更高级生命体进化。而更高级的生命体则是能使世界整体运转更高效,更稳定的生命体。 模拟生命系统的软件基础架构 将软件分为两类:生命软件和世界软件。 软件胚和软件生命 假设可以提取某类软件最核心、最本质的生长控制信息,对其进行编码,那么就相当于得到了该类软件的基因。软件基因可以托付在“软件胚”的形式上在软件世界中发布。软件胚在软件世界中,在软件基因控制下,可演变、成长,壮大为软件生命。 软件世界 软件世界是可以植入软件胚,支持软件胚与其他“软件生命”和“非软件生命”进行信息交互的运行环境系统。各种流动着的数据信息就是软件生命赖以成长的养份。 软件世界可大可小。小到只能处理一个领域的专门性问题的运行平台,大到未来的连接全球甚至全宇宙的计算机 互联网 络的软件,那将是一个超级的软件世界。 现有软件基本架构的生命特征 现有应用软件的基本架构已经具备了一定的生命特征。 操作系统 软件相当于世界软件,应用程序就是生命软件,在操作系统上安装一个应用程序,就是在软件世界中诞生一个新的软件生命。卸载一个应用程序就是结束一个软件生命。 但现有应用软件结构和功能是靠代码来僵化固定的,一旦软件生命诞生,只有结束其生命,重新缔造,才能改变软件的结构和功能。 基因软件和现有软件的不同点 基因软件的基础架构和现有软件基础架构相同,只是把操作系统和应用程序的定位更加清晰化,更加突出操作系统的生态环境特征和应用程序的生命特征。使应用程序的使用过程,不仅成为沟通、处理和保管信息的过程,而且成为对信息处理能力不断提升的过程,也就是应用程序功能不断加强的过程。 要达到基因软件的目的,就必须从根本上改变对应用软件结构的传统观念,即应用软件的结构是可以不事先规定死的,是可以按一定预设模式成长和演变的。 基因软件在使用上和现有软件在使用上也没有什么大的区别,只是用户在使用软件的过程中,在得到信息处理的结果的同时,自然地还“教”了软件一些信息,软件可以用这些信息作为“养料”,通过自身基因的控制,来演进式地自己构造出新的功能来。 基因软件的开发和使用过程 工具开发者首先开发出两个工具系统:软件基因编制系统和软件运行环境(软件世界)系统; 接着,软件基因的编制者利用软件基因编制工具,根据不同的应用方向,编制出一个个的“软件胚”。软件胚和普通的软件程序不同的是,它不仅规定了软件胚本身具备什么可用的功能的信息,还规定了软件胚可以沿着怎样的方向,如何扩充成长的信息。 然后,软件用户从软件工具开发商那里选购到适当的软件世界,从软件基因编制者处选购到适合自己应用方向的软件胚。将软件胚安装到软件世界中,软件胚就完成“播种”过程。需要指出的是,在同一个软件世界中,是可以播种多个软件胚的。 在最开始使用软件胚的时候,用户根据自己的实际情况,向软件胚中输入一些初始化信息,同一个软件胚对不同的用户就可能成为内容不同但模式相同的软件生命。此时完成孕育阶段,软件出生,成为可正式的使用软件生命。 用户在使用软件的过程中,不仅会得到越来越多的预定类型的数据资源及其关联关系,而且会建立新的数据资源类型以及新的关联关系。软件生命除了会按已有的功能运行外,还会根据原有的基因信息来提示和控制用户输入新的构建信息,软件生命会根据用户输入的这些信息,构建出新的可使用的功能。 软件基因编制者,利用基因编制工具可以从正在使用中的软件生命中,提取出在使用过程中产生的新的数据资源类型及其关联的信息,分析基因变异的需求,对基因进行修整改造,这个过程不需要结束软件生命,并可以更广泛地传播新的软件基因。 工具开发者会逐渐将所有的软件世界进行融合,让所有的软件生命可以在一个更大更通行的软件世界中成长,同时,对基因编制工具不断进行改进,以得到对更复杂的软件基因的编写能力。 实现基因软件的关键技术 生物基因工程技术的出现,彻底改变了传统生物科学技术的被动状态,使得我们可以克服物种之间的遗传屏障,按照人们的愿望,定向培养或创造出自然界所没有的新的生命形态,以满足人们的要求。 生物基因工程本来是一个“反求”工程:人们是先看到生物的诞生,成长,进化。然后探索生命形成,演进的奥秘,才发现生物基因,进而才能改造和设计新的基因。与此不同的是,计算机软件本来就是人工从一个一个程序指令开始,通过编码来构造出来的,如果说软件生命也有基因工程的话,那么软件的基因工程则是一个“正求”的工程:它更体现在我们如何去设计一个软件生命的诞生和成长过程,以及在设计过程中,我们是否可以和愿意接受生物基因工程技术的启发。 对于“计算机软件”这么一个具有生命形态特征的特殊的人工生命,其基因工程技术的关键内容是什么呢? 软件基因模型技术 这是实现基因软件的最核心的技术。 现有软件的模型技术以面向对象模型技术占主导地位,在面向对象的下层,以实体关系模型技术占辅导地位,在面向对象的上层,以面向服务的模型技术占辅导地位。这种模型的层次主导格局是软件技术长期发展进化的结果,是有其必然性和科学性的。 如果把软件从投入使用到停止使用看作是一条生命线,那么,现有模型技术基本上属于脱离这条生命线的模型技术,建模人员和开发人员通过另外一个工作过程建立模型,实现模型,再升级运行程序,介入一线生命过程。这就是离线方式的模型技术。 软件基因模型技术在不会改变上述的模型技术层次格局,而只会改变形成这种格局的方式和方法。 基因模型技术必须产生的突破在于将离线方式的模型改变为在线方式的模型。只有最初的“胚模型”是离线一次性建模的,一旦软件胚被植入到软件世界中,软件世界就承担了软件生命在成长过程的在线建模任务,在有软件基因变异的需求时,同样是由基因编制工具在线完成模型升级的。这要求基因模型技术需要将模型本身的升级和变迁的过程和方法融入到软件的使用运行过程中去。核心的技术问题,就是解决如何将被建模对象的信息与其演变过程的信息同时表达在一个模型中。 在建模方法上,基因模型技术会继承实体关系模型、面向对象模型、面向服务模型及其横向的架构格局。但由于软件投入运行后的升级建模过程不是在一个专门的离线建模工具中由专业的建模人员来进行,而是在软件运行平台中进行,建模信息是通过用户操作使用软件来输入的。这就需要将原来建模工具的功能,分散到支撑软件成长的软件世界中去,并将基因模型在纵向结构上进行良好的封装,让用户在服务层模型上的操作,可隐含地精确影响到对象层和数据层的结构。 动态产生和执行的链锁反应式程序技术 基因软件要实现在使用中自我成长,在程序结构上必然和现有程序的结构有所不同。 软件在结构形态上经历了程序片段不断细分并与特定数据类型捆绑更紧密的发展趋势。程序片段意味着特定的过程原子,数据类型意味着特定的事物原子,二者捆绑意味着将表层的服务原子化的趋势。这个趋势预示着软件结构形态会朝在服务原子之间建立供求关系的链锁反应网络的趋势发展。这也是现实世界中各种现象实际发生和发展模式的原貌。现有意义的程序,只是在这个链锁反应网络中所找到的经常得到重复发生的链路。 软件在结构形态上的发展趋势,正好可以用来支持可演进的基因软件的运行。因为,基因本质上就是服务原子的信息抽象,在基因信息中,只包含了先天的生命的结构和结构演变的规律的信息,并不包含生命后天与外界事物之间建立的链锁反应结构信息。也就是说,基因可以控制后天生命可以和什么样的外界事物建立链锁反应链,但不可能事先建立好这些链,就象每个人出生时就决定了他或她将来能和一个她或他结合产生下一代,但不会在出生时就把他和她就固定地链接起来的。在软件生命后天的运行中,更需要一个允许动态建立供需链关系的程序模型。其软件程序的结构形态,也必须能够支持“在发生前才建立”的特性。程序的产生和运行过程,将从“一次编写,多次运行”固定归纳模式,发展为“不用编写,随用随造,逐步沉淀”的自然演变模式。 基因软件应用虚构举例 比如开发应用一个企业内部管理系统软件。 在基因软件的应用模式下,并不需要重复事先对整个企业的业务流程和管理制度进行分析,做详细的需求调查,然后经过设计编程,测试和部署实施这样传统的软件开发和应用的过程。 只需要在对通常的企业形态,企业内部结构,企业发展壮大过程中可能的扩张方式和途径进行分析,再根据对不同类型的企业业务过程进行归纳总结,将这些信息按软件基因模型的规范编制在一个一般意义的“企业胚胎”的软件中。这个软件就包含了某种类型的企业的基因信息。这个“企业胚胎”,不仅仅是一个企业在某个发展阶段的一般性结构和过程模式的抽象,还包含了对企业一般性结构和过程模式的演变发展过程的抽象。 一个现实企业的计算机系统,可能一开始只是一台单机,随着企业的壮大逐渐发展为多机、局域网和广域网,系统上会始终运行一个可相互连接合并,不断扩充规模的运行平台,也就是会提供一个可不断扩大的软件世界。 起先企业将买来的“企业胚胎”安装在某个适当规模的软件世界上,软件世界会将企业胚胎定义的最基本的功能表现出来,比如,建立组织机构,建立员工,建立设备等企业资源模型,并在建立的资源之间建立工作流程,沟通规则等关联关系,这些企业资源和关联关系可以随着企业规模的扩大不断增加数量和复杂性。而且,它们并不是独立存在于计算机中的虚拟模型,他们会通过人机交互界面和机机交互界面和现实世界中的企业资源实现信息同步。 软件的使用者面对的是一个与现实企业实现了主要的信息同步的在线虚拟的企业,软件使用者会根据自身的业务目标,就象面对实际的企业一样在这个虚拟模型上引进、调配资源,构建新的资源关系,组织资源运行,而这些操作的结果,会通过接口与实际的资源实现信息同步。软件的使用者,在操作使用软件的同时,就在不断地创造企业资源的新的组合和运作模式,实际上就是在优化企业的模型,开发新的软件功能。 企业胚胎开发商运用企业基因工具可以从实际运行中的企业生命软件中抽取信息资源的结构模型和演变过程。分析出企业基因可能需要产生的变异。 企业世界平台开发商则致力于开发更通用,更容易扩展的企业软件的运行平台,给企业生命软件提供更顺畅的运行环境,更丰富的信息交互的接口支持。 邱嘉文 2007-4-18 畅想于珠海
个人分类: 基因软件开放实验室|3441 次阅读|6 个评论
用“基因对象”实现“计算者1”
Babituo 2011-8-6 18:42
“基因对象”是具有限定构建操作集合的直接对象,而限定的构建操作集合就是基因对象所带的“基因”。 基因对象的“基因”从何而来?有2条途径得到: 1.在软件世界中从现存对象中直接抽取; 2.在“基因创编器”中进行创建和编辑。 2条途径得到的基因是一致的,都是对某种限定性的构建操作集合的定义。 下面以“计算者1”为例叙述“在软件世界中从现存对象中直接抽取基因”的过程。 场景上接以 “计算者1”为例描述直接对象的构建和使用过程 的最后场景。 我们向“软件世界”发出指令,“请抽取‘计算者1’的基因,命名为‘加法器基因’。” 软件世界立即返回抽取结果: 基因名:加法器基因 原始基因:空 构建操作:构建加法器,构建步骤如下: 1.创建3个数值对象A,B,C; 2.增加计算规则,选择计算操作"加法",选择A,B为加法输入,C为输出; 3.对2的构建结果"加法计算规则"定义为一个功能操作,命名为"做加法"; 基因抽取完毕。 可见,抽取的“基因”实际是构建直接对象时的构建操作指令的脚本。 该基因可单独保存,并可植入其他的软件世界,在其他软件世界中创生“加法器”实例对象。 当用户在“软件世界”中察看基因时,可查找到该基因;当用户选择“按基因创生对象”时,软件世界便运行基因脚本,生成一个“加法器”实例对象。 看上去,基因对象和类型定义区别不大,但实际的运作机制有本质的区别。基因是可移植的构建操作定义集合,可以移植嫁接到其他基因之上,而且是一种有条件动态执行的构建操作集合的组合,可根据用户的操作指令逐渐对对象实例进行相应的构建操作。而类型定义则是相对静态的对象结构的描述,只能根据固定的结构描述创建固定结构的对象实例。
个人分类: 基因软件开放实验室|2921 次阅读|0 个评论
以“计算者1”为例描述直接对象的构建和使用过程
Babituo 2011-8-6 17:51
早先举例的“计算者1”就是一个加法器。 现在,假设需要在一个已建成的“软件世界”中构建一个计算者1的直接对象,来考察需要怎样的“软件世界”,在这个“软件世界”中需要如何操作,才能构建出“计算者1”,并将其投入运行? 根据定义,直接对象是取运行环境中已经存在的对象直接聚合形成的对象。 我们首先需要运行环境中能产生三个“数值”对象,我们向“软件世界”发出指令:“请给我创建三个数值对象:{A,B,C}”. 假设“软件世界”一直可以响应我们的指令并正确返回我们需要的结果,一连串的后续指令如下: “请将这三个数值对象聚合起来,取名叫‘计算者1’”; “请对‘计算者1’进行构建操作:‘增加计算规则’,选择计算操作‘加法’,选择A,B为加法输入,C为输出”; “请将对“计算者1”的构建结果‘加法计算规则’定义为计算者1的一个功能操作,并命名为‘做加法’”; “请显示‘计算者1’对象的特性”,对此,软件世界将显示“计算者1具有1个功能操作:“做加法”,2个输入属性A,B,1个输出属性C”; 到此,“软件世界”完成了“计算者1”直接对象的构建,此时,在“软件世界”中,并没有产生一个类型叫做“加法器类型”,而运行环境中确实建立了一个能做加法运算的对象,这个对象不属于任何一个定义“类”,它属于“直接对象类”这个预设类。 接下来看“计算者1”直接对象是如何运行的: 我们向“软件世界”发出如下指令:“请告诉我当前有什么对象?”,软件世界回答:“当前有个直接对象,叫‘计算者1’,它有1个功能操作叫‘做加法’”。软件世界并不告诉我们,另外还有三个数值对象A,B,C,因为这三个对象已经“隐藏”到“计算者1”内部去了。 于是,我们向“软件世界”发出指令,“请‘计算者1’做一次加法,我给的输入是1,2”。 软件世界立即回答:“‘计算者1’用1,2完成了一次‘做加法’功能操作,给出的结果是:3”。 “计算者1”运行过程演示完毕。 接下来演示以“直接对象”为基础“固化”类: 我们向软件世界发出指令:“请以‘计算者1’为例归纳一个‘类’,叫‘加法器’。” 软件世界立即返回: 完成如下‘类’的归纳定义: 类名:加法器; 包含虚例:数值a,b,c 包含功能操作: 操作名“做加法”,执行规则:加法运算,输入取a,b,输出取c。 归纳完毕。 接下来如果有人问软件世界现在有哪些类,软件世界会告知:当前有1个类,叫“加法器”类。 然后可以让软件世界创建一个“加法器”类的实例,叫“计算者2”。 接下来问软件世界有什么对象,他会告诉我们有“计算者1”和“计算者2”2个对象。当然,“计算者1”归属“直接对象”类,而“计算者2”则归属“加法器”类。如果让计算者2做一次加法,他的表现和计算者1的表现是一致的。
个人分类: 基因软件开放实验室|2951 次阅读|0 个评论
企业基因设计
热度 1 Babituo 2011-6-1 09:23
设想我已经开发出了一个基因设计器,现在,我要用这个基因设计器设计一个企业基因。将来,将这个基因植入一个企业世界软件中,通过企业用户的交互操作,这个企业基因就会逐渐成长为一个企业生命。——而且是伴随实际的企业成长而同步成长的软件的企业生命。 现在就设想这个设计的过程。 设计器一开始是一张白纸,什么都没有,什么都不知道。 1.第一步 我先告诉它:我准备设计一个企业的基因。设计器就记下了:有“企业的基因”这种基因正需要被设计。 我要设想:未来企业基因在企业世界中运行时,需要为企业世界提供怎样的生长控制信息的支持。 当它被植入企业世界时,一个企业生命就诞生了,但刚开始,企业生命除了一个企业胚胎之外,就没有什么了(只占了很少的内外存空间)。我要设计企业基因只要有一个类型名称叫做“企业”,就足够支持企业世界软件来创建一个企业生命了:软件世界知道被种植进来的基因有个类型名“企业”,就知道新的生命可以有个名称叫“企业1”,然后,我,作为设想的用户,会把这个“企业1”的名称改为“威瀚公司”。 第一步就完成了。 2.第二步 设想企业世界中的用户我,不能整天只看着一个公司的名称发呆,必须做点什么。 好,我就是企业的总经理了,我知道这个企业的名称意味着什么,决不是简单的一个电脑中的字符串而已。 这个名称意味着被我掌控的公司,是一个经济生态圈中的小生命。 真实的这个小生命是整天忙着在商海的这个圈子中奋力拼搏游泳的。 我当然知道在市场经济的商海中求得生存是多么不容易的事情。 现在,我要为现实中的这个真实的小生命,在电脑中建立一个同步成长的虚拟的小生命。我会把我和我的员工在现实小生命中的重要的体验,全部象施肥一样,浇注到电脑的企业世界的小生命中,让这个虚拟的小生命可以吸到这些信息的养料,迅速成长起来。 我知道,我所经营的这个企业虽小,但它和任何一个其他同类都是一样的:不仅是一个资产的集合,还是是一个过程的集合,更是一个资产和过程交互的关系的集合。只不过大家实际的资产和过程有所不同,是各自所有的。 所以,我的虚拟小生命应该可以让我给它添加资产和过程的定义,并可以让我不断地维护这些定义——我在现实世界中所做的工作,又何尝不是不断地维护资产和过程的定义呢?我只需要在我的模拟小生命上能重复演练这些工作就好了。 我知道作为基因设计者的我,第二步需要做什么了。 我需要告诉基因设计器,企业基因是一种这样的基因:被它定义的这种生命,在未来生长过程中需要支持2类集合元素的维护,和这两类集合元素之间的关系的维护。而这两类集合,也有他们的基因类型名,分别叫“资产”和“过程”。基因设计器懂得什么叫“集合”,它可以很顺利地记下:在“企业”基因下包含3条基因,分别是“资产集合”、“过程集合”与“资产-过程关系集合”。当然,未来的“世界软件”当然也知道什么叫“集合”,对“集合”可以做什么样的维护工作。 第二步也完成了。 第三步 我很清楚,作为总经理的职责是盘活企业的资产,让资产不断增值,也就是让资产所有者的权益不断增多。 我感到把企业看成是资产的集合还有一点狭隘:只看到所有者的静态的权益托付物,没有看到促使资产不断增值的其他必须存在的运作资源。所以,资产,只是企业资源中的某一类型。第二步中的资产集合应该能改叫做“资源集合”。资源的运作就是过程,资源运作的目的,是促进资产的增值。 这里,显然出现了一个新的需求:作为虚拟企业生命的维护者,必定需要对企业的资源进行分类管理。也就是说,企业不单是把资源聚拢起来,更重要的是,要把资源组织起来,要组织,就必须分类、分工、配合起来。我在现实中是很容易区分不同类型的资源的,我知道,要完成一项对我的企业客户有价值的服务,我需要做的,正是调配不同类型的资源,去启动某个服务的过程。所以,最少,我在虚拟的企业生命中,也能象我在现实中一样,很容易让我给所有资源打上不同类型的标签,让我给具有不同类型的标签的资源,定义它们可能拥有的行为。只有这样,这些资源才会可能听从我的调配。 于是,作为企业基因设计者的我,就需要告诉基因设计器:对资源集合中的元素,可以打上不同的分类标签。基因设计器可以在“资源集合”基因上附加一条“分类标签集合”的基因。那么,未来的企业世界软件,就会知道,对“资源集合”中增加的每一个资源,都必须赋予一个“分类标签集合”中的一个标签。才能让企业生命的用户,识别不同类型的资源。 当然,我可以直接在设计企业基因的时候就设计道:这个企业基因所产生的企业生命,未来的资源至少可以分为2类: 1.被动资源; 2.主动资源。 被动资源是被加工、运转的操作对象资源,而主动资源则是加工、运转操作动作执行者资源。 而对资源的进一步的分类,则可以依据:“可接受何种操作”和“可做出何种行为”来进行。 这当然,也给下一步的基因设计提供了启发思路和设计需求。 第三步完成。 待续...。
个人分类: 基因软件开放实验室|3254 次阅读|4 个评论
科网群英烩No.0795 邱嘉文 关注“基因软件”及其发展和演化
readnet 2011-2-28 13:25
邱嘉文 邱嘉文的个人博客 › TA的所有博文 信息探索 | 电脑围棋 | 基因软件开放实验室 | 三旋理论学习 | 智能电网与电子式互感器 | 生活点滴 | 分享 最简单的“胚胎创编器”需要具备什么功能? 邱嘉文 2011-1-26 14:27 最简单的胚胎创编器,就是能创编出“计算者1”的胚胎的编辑器。 首先需要明确怎么来表达“计算者1的基因”。 计算者1是只知道做加法运算的计算者类型,也就是计算者1的基因承载对象:计算者1胚胎。 计算者1的基因信息很简单: 告诉未来的世界: 我是一个“计算者1”的基因, 根据我创生的软件生命都会 ... 个人分类: 基因软件开放实验室 | 27 次阅读 | 1 个评论 分享 设计“计算者1”的基因软件架构的需求 邱嘉文 2011-1-20 14:04 有朋友看到我提出一个这么简单的程序案例,就忍不住会质疑:实现这么简单的程序例子用得着那么复杂么?解决更复杂的代数计算问题的技术早就有了,还需要发明什么基因软件? 对此,我要发出一个强烈的提示:我们要实现的是基因软件的架构,而不是具体哪一种基因软件。我举这个简单的例子,只是为了帮助大家理解什么是基因 ... 个人分类: 基因软件开放实验室 | 50 次阅读 | 1 个评论 分享 “计算者”的实现1-最简单的“计算者” 热度 1 邱嘉文 2011-1-20 09:47 为了逐步演变出“基因软件架构”下的“计算者”系统,下面我从现有架构下最简单的“计算者”出发,一步一步添加演变需求,最终实现一个演示性的“基因软件架构”下的“计算者”系统。最后对基因软件架构进行归纳总结。 对于最简单的计算者,我只提出如下需求:可以做任意2个数的加法。 现有架构下的程序实现如下: ... 个人分类: 基因软件开放实验室 | 117 次阅读 | 3 个评论 分享 基因软件架构实现样例设计-计算世界 热度 1 邱嘉文 2011-1-19 14:55 为了展现基因软件的应用架构,可以按照所设想的基因软件的应用架构,以实现一个简单的应用功能为目标,来演示一个基因软件应用架构中各功能部件的作用和实现方案。 计算是计算机最基本的功能之一,解决计算问题的软件已经不胜枚举,但按照基因软件架构思想来解决哪怕最简单的计算问题的软件及其创生成长的过程会是怎样的 ... 个人分类: 基因软件开放实验室 | 72 次阅读 | 2 个评论 分享 基因软件的架构 热度 1 邱嘉文 2011-1-19 11:28 在基因软件的应用架构中,存在“软件基因编制者”和“基因软件使用者”两大类主动交互者。 基因软件编制者,利用“软件胚胎创生工具”编制出某类软件的胚胎。 软件胚胎,就是记录了软件未来成长与运行控制机制信息的文档。 软件使用者将软件胚胎植入一个基因软件的运行平台,也就是“世界软件”。 世界软件中的 ... 个人分类: 基因软件开放实验室 | 59 次阅读 | 1 个评论 分享 我的“基因软件”的概念 热度 6 邱嘉文 2011-1-19 09:33 一粒种子,种于土壤之中,接受阳光雨露,最终会成为一株水稻植株或一棵苹果树,全取决于其最初种子中的基因。 种子意味着基因, 土壤、阳光、雨露意味着成长环境, 水稻植株或苹果树,意味着成长成果及其价值。 整个过程,意味着自然演变,交互成长。 软件,以计算机运行程序为表现形式的软件,能 ... 个人分类: 基因软件开放实验室 | 94 次阅读 | 7 个评论 邱嘉文 邱嘉文的个人博客 › TA的所有博文 › 查看博文 我的“基因软件”的概念 一粒种子,种于土壤之中,接受阳光雨露,最终会成为一株水稻植株或一棵苹果树,全取决于其最初种子中的基因。 种子意味着基因, 土壤、阳光、雨露意味着成长环境, 水稻植株或苹果树,意味着成长成果及其价值。 整个过程,意味着自然演变,交互成长。 软件,以计算机运行程序为表现形式的软件,能否模仿上述的过程来“长成”? 如果能,软件,就可以在具有先天定位的基础上,后天自然成长演变的产生和应用方式。 如何才能?需要设计软件基因、软件成长环境、软件成长过程。 一旦能,软件,人类的思想后代,就能成为独立的生态系统,随需应变地繁荣智能世界。 在此开始探索。 举报 DNAComputerMan 2011-1-27 11:27 这和Genetic Programming 或者 evolutionary programming有什么区别? 博主回复(2011-1-27 12:56) : 谢谢指引,您指引的基因编程字面上看上去和我说的基因软件同类,实际上完全不是一回事。 您说的基因编程是遗传算法的应用,我理解是通过模型模仿真实的基因遗传特性,通过学习演进,来求解某类问题的方法。 而我说的是一种交互式的动态建模的方法。是开发应用软件系统的方法,当然,不排除在具体问题上有使用遗传算法的可能性。但更关注的是:整个交互式应用软件系统,在其生命周期中,是有其动态的内在的机制模型的。这个动态模型不是通过遗传算法自动演进的,而是通过交互操作来实现动态演进的。 换句话说,用户可以一边使用其应用软件系统,如办公自动化系统,一边还可以对系统进行构建性的操作,是系统能随着用户业务需求的成长而成长。我借鉴的不是微观的基因遗传特性,而是宏观的生命个体与环境的整体架构上的特性。 举报 huangfuqiang 2011-1-19 10:22 “软件人”的思想已有人提出,赋予软件以人工生命,对软件研发思想与生存状态具有一定的启示,增强软件的自判能力。软件基因思想关键要找出影响一类软件生存与进化的元驱动因,也就是找出“软件基因“,哈哈!这方面有些想法是很有意思的,可以作为软件领域中相关的方法论。 博主回复(2011-1-19 10:59) : 多谢分享,您的理解比较接近我的想法。 “赋予软件以人工生命”,说起来象一个太大的课题。 而我关注的首先是一种架构上的实现。 先排除任何的应用价值不说,我们是否可以先实现出这样的软件生成和应用的架构? 一旦架构得以实现,完善和尝试发杂的应用系统,就是发挥性的工作了。 所以,不必考虑太复杂的“软件基因”,只要考虑最简单的软件基因如何在这种机制上实现成长就是目前容易先实现的。 实现这个机制,比实现具体的基因软件更有意思。 举报 snowhunter 2011-1-19 10:13 A New Kind of Science 数学软件mathematica的创立者Wolfram的书,跟博主的想法有点联系。 博主回复(2011-1-19 10:50) : 谢谢指引,数学软件向我们演示了,简单规则造就复杂行为的可行性。这实际揭示的是世界万象的数学原理的本质。这当然是基因软件有可能成立的基础。 我提出基因软件是立足于应用的。可能涉及不到数学原理那么深的层次,为了避免陷入“自动演变”的复杂境地,我提出的是“交互演变”。也就是:自演变与环境的“喂养”是密不可分的,而且不是随机的,这引入了一种约束。 举报 yanghualei 2011-1-19 10:00 好想法 但还不是很成熟 举报 Babituo 2011-1-19 09:54 基因是:由很少的物质、很少的能量、很丰富的信息反映着很复杂的与环境的关系的一种聚合体。 举报 sheep021 2011-1-19 09:51 基因,软件。生命,思想。 举报 nipy 2011-1-19 09:50 基因究竟是什么? 是物质?是属性?是能量?是信息?
个人分类: 科网群英烩|2 次阅读|0 个评论
“计算者”的实现1-最简单的“计算者”
热度 1 Babituo 2011-1-20 09:47
“计算者”的实现1-最简单的“计算者”
为了逐步演变出“基因软件架构”下的“计算者”系统,下面我从现有架构下最简单的“计算者”出发,一步一步添加演变需求,最终实现一个演示性的“基因软件架构”下的“计算者”系统。最后对基因软件架构进行归纳总结。 对于最简单的计算者,我只提出如下需求:可以做任意2个数的加法。 现有架构下的程序实现如下: unit FormCalcu; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TCalculator = Class(TObject) //计算者类 Private Protected Public Function Plus(A,B : Extended) : Extended; //暂时只会做“求加”法 End; TFormCalculate = class(TForm) //计算窗口 EdA: TEdit; Label1: TLabel; EdB: TEdit; Label2: TLabel; EdC: TEdit; Label3: TLabel; Label4: TLabel; Label5: TLabel; BtnCalculate: TButton; procedure FormCreate(Sender: TObject); procedure BtnCalculateClick(Sender: TObject); procedure FormDestroy(Sender: TObject); private FCalculator : TCalculator; //包含一个计算者 public { Public declarations } end; var FormCalculate: TFormCalculate; implementation {$R *.dfm} procedure TFormCalculate.FormCreate(Sender: TObject); begin FCalculator := TCalculator.Create; //在窗口创建时创建计算者生命 end; procedure TFormCalculate.BtnCalculateClick(Sender: TObject); var A,B,C : Real; begin A := StrToFloat(EdA.Text); //计算者用户发出”计算“指令时 B := StrToFloat(EdB.Text); C := FCalculator.Plus(A,B); //调用计算着的"求加"方法 EDC.Text := FloattoStr(C); end; procedure TFormCalculate.FormDestroy(Sender: TObject); begin FCalculator.Free; //在窗口关闭时结束计算者生命 end; {TCalculator} //计算者类 Function TCalculator.Plus(A,B : Extended) : Extended; //“求加”法实现 begin Result := A + B; end; end. 程序运行界面如下: 计算者1
个人分类: 基因软件开放实验室|3018 次阅读|4 个评论

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-20 07:36

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部