注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

阿弥陀佛

街树飘影未见尘 潭月潜水了无声 般若观照心空静...

 
 
 

日志

 
 
关于我

一直从事气象预报、服务建模实践应用。 注重气象物理场、实况场、地理信息、本体知识库、分布式气象内容管理系统建立。 对Barnes客观分析, 小波,计算神经网络、信任传播、贝叶斯推理、专家系统、网络本体语言有一定体会。 一直使用Java、Delphi、Prolog、SQL编程。

网易考拉推荐

《范畴论在软件设计中的应用》摘录  

2013-05-21 09:10:03|  分类: DOC |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
1.范畴论在软件设计中的应用
摘 要:针对范畴论在程序设计、软件架构和软件重用等方面的结合与应用,比较详细地叙述了国内外学者将范畴论应用于计算机科学的历史和现状,比较分析软件重用技术的过去和现在的不同做法,以突出范畴论的理论在实践应用中的重要性。软件重用的思想一直被软件设计者所重视,尤其发展到现在更是如此;程序员的职责不再只是单纯编制程序,而且还应该应用科学理论创造新方法工具,架设沟通理论与工程之间的桥梁;突出程序设计中的创造性特点,把理论和实践结合起来,以求程序设计的精确和完美。
关键词:范畴论;函子;态射;参数化规约;软件重用;软件架构

第33 卷第1 期
2009 年2 月 南昌大学学报(理科版)
Journal of Nanchang University(Natural Science)
Vol.33 No.1 Feb.2009

60 年代以来许多著名的计算机专家(如Floyd、E.W.Dijkstra、howare、David Gries 等),为了保证程
序的可靠性,他们开创性地提出了算法程序的形式化设计和证明方法,为此引起了许多学者在这领域的兴趣,Dijkstra 在为Gries 著的枟The science of programming枠一书而写的序言中写道:“近10 年来,‘程序’一词的潜在意义已发生了深刻的变化”。传统的程序设计方法已经不能适应发展的需要,必须揭示隐藏在程序设计背后的理论和带原则性的东西,程序正向科学的方向转变。从此产生了一个新的分支“程序设计方法学”。他们的研究建立在几种不同的语义学基础之上,主要有操作语义、公理语义、代数语义等;
观点:
1. 软件体系结构是一个高层次上的软件开发,具有较高的抽象性,因此在重用的生命周期阶段上比组件具有更大的应用范围,文献[28]以范畴理论为基础的CDT(范畴数据类型)模型给出了体系结构的形式化定义,在此基础上对软件体系结构的重用进行了理论分析与探讨,作者为了重用软件体系结构,把软件体系结构之间的映射构造成一个特殊的函子。
2. 随着计算机软件理论的发展,人们越来越意识到理论的重要性,许多人把范畴论应用到各种计算机的研究领域中。针对信息系统的设计,在文献[22]中Bench -Capon T 等人以代数理论为基础提出了一种构建形式化的本体的方法,作者认为一个信息系统的构建或多或少地都需要一些领域知识,通常人们都是通过一定的假设来构建数据库或知识库,这些假设常常是概念不清晰的,尤其是针对多个信息系统共享的数据来说更是如此。作者成功地开发了一个形式化本题针对数据模式使用范畴论理论精确地描述本体与数据模式的之间的关系,并且使得这些概念可以很好地使用在信息系统的交互中。
3.规约合成关系图。规约及规约之间的态射组成了一个范畴。这里在规约B,A,C 之间很容易验证colimit的存在。我们用B←i—A—j→C 来表示这个colimit 这样就可以利用这个colimit 来将规约B 和规约c 合成得到了一个更大的规约A 最后这个拟序的规约就可以通过下面的colimit 来求得。
范畴论与软件系统设计参考 - 险峰 - 阿弥陀佛
4. 软件架构技术。软件重用可以使得减少开发与维护成本;缩短开发时间;提高软件质量。软件构件的可理解性和可跟踪性是构件重用的前提,寻找适当的抽象机制描述开发经验以及建立问题域和软件构件之间的跟踪模型是该领域研究的难点。如何定义构件之间的关系将显得十分重要。

近年来许多学者利用范畴论定义构件之间的关系,使得构件之间的关系以及关系组合具有严格的语义,态射合成被用来跟踪不同抽象层次的构件之间的关系,利用体系结构设计模式精确地定义构件的组合关系和应满足的条件,还有一些学者利用范畴论支持图形化建模,可以使模型中的构件关系以及结构特征可视化,有利于模型的理解、跟踪和重用,使得形式化的构件建模方法适用于以重用为目标的软件开发。
小结: 纵观范畴论的应用历史和现在,人们应用范畴论来描述一些概念和结构的关系,其目的无外乎就是使得概念或系统更具有一般性,但更重要的是有些人使用范畴论是为了发现新的机制和方法,新的类型构造,新的程序设计思路等等,不管是过去还是现在只要我们仔细考察范畴论的应用,我们不难发现他们都具有一个一般的应用模式,不管是基于参数化代数规约形式来解决软件的重用问题,还是当今的软件架构的重用思想都可以使用范畴论作为基础对其加以描述,其根本原因是因为范畴论相对其它数学理论有许多不同的特点:
(1)范畴论实际上是抽象中的抽象,具有不同的抽象层次;
(2)范畴论的表达方式多使用图形更直观;
(3)范畴论本质上用来描述不同结构的联系,尤其是对异质结构来说可以通过抽象的方法去掉具体的特点,使得异质结构具有可比性,这样就可以解释一些很难解释的现象。范畴论已经作为计算机理论基础得到了巨大的发展。

体会:
1. 规约合成关系图。通过态射实现规约,同时引导范畴的形成;
2. 软件架构技术。使用开源构件重用作为软件架构的基础,不仅可以节省成本,而且可以减轻劳动强度;
3. 范畴论本质上用来描述不同结构的联系。通过范畴整合异结构,不仅可以突出每一个结构的特点,而且可以从宏观角度考察架构的合理性。
4. 范畴设计需要有领域知识为背景。否则将无的放矢。
5. 范畴设计有一定的文化背景。否则会降低软件架构的品味。
6. 同构的作用尚未涉及。
7. 范畴论作为一门新兴的数学理论,为计算机理论科学提供了一种工具、思维方法和研究手段,与集合论相比,范畴论具有更高的抽象性和更强、更直观的表达力。范畴是群、环、域等抽象数学结构的进一步抽象,其研究重点在于对象之间的关系而非对象的内部结构,因此,比集合论更适合建立较高抽象层次的模型。此外,范畴论的表达方式是一种基于图形的略图语言,这种基于图的语义表达方法更直观易懂。
  评论这张
 
阅读(537)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017