目录
26 关系: 基于组件的软件工程,头等函数,封裝 (物件導向程式設計),延續性,企业服务总线,异步通信,得墨忒耳定律,分布式计算,函數程式語言,內聚性 (計算機科學),关注点分离,Clojure,统一建模语言,Eiffel,面向服务的架构,面向服务架构,闭包 (计算机科学),電腦運算,耦合性 (計算機科學),JSON,LISP,Ruby,Smalltalk,XML,接口,数据模型。
- 企业应用集成
- 服務導向
- 编程原则
- 软件质量
基于组件的软件工程
基于组件的软件工程(Component-based software engineering,简称CBSE)或基于组件的开发(Component-Based Development,简称CBD)是一种软件开发范型。它是现今软件复用理论实用化的研究热点,在组件对象模型的支持下,通过复用已有的构件,软件开发者可以“即插即用”地快速构造应用软件。这样不仅可以节省时间和经费,提高工作效率,而且可以产生更加规范、更加可靠的应用软件。 Category:面向对象的程序设计 Category:软件架构 Category:基于组件的软件工程 es:Programación orientada a componentes.
头等函数
头等函数(first-class function)是指在程序设计语言中,函数被当作头等公民。这意味着,函数可以作为别的函数的参数、函数的返回值,赋值给变量或存储在数据结构中。 有人主张应包括支持匿名函数(函数字面量,function literals)。, by Michael Lee Scott, section 11.2 "Functional Programming".
查看 松耦合和头等函数
封裝 (物件導向程式設計)
在物件導向程式設計方法中,封裝(Encapsulation)是指,一種將抽象性函式介面的實作細節部份包裝、隱藏起來的方法。同時,它也是一種防止外界呼叫端,去存取物件內部實作細節的手段,這個手段是由程式語言本身來提供的。這兩個概念有一些不同,但通常被混合使用。封裝被視為是物件導向的四項原則之一。 適當的封裝,可以將物件使用介面的程式實作部份隱藏起來,不讓使用者看到,同時確保使用者無法任意更改物件內部的重要資料。它可以讓程式碼更容易理解與維護,也加強了程式碼的安全性。.
延續性
在计算机科学和程序设计中,计算续体(continuation)是计算机程序的控制状态的一种抽象表现。 延續性实化了程序状态信息。可以理解为,一个计算续体以数据结构的形式表现了程序在运行过程中某一点的计算状态,相应的数据内容可以被编程语言访问,而不是被运行时环境所隐藏掉。这对实现编程语言的某些控制机制,如异常处理、协程、生成器非常有用。 计算续体包含了当前程序的栈(包括当前周期内的所有数据,也就是本地变量),以及当前运行的位置。一个计算续体的实例可以在将来被用做控制流,被调用时它从所表达的状态开始恢复执行。 Category:控制流程 Category:计算机科学 Category:计算机编程.
查看 松耦合和延續性
企业服务总线
企业服务总线(Enterprise Service Bus,ESB)的概念是從服務導向架構(Service Oriented Architecture, SOA)發展而來。SOA描述了一种IT基础设施的应用集成模型;其中的软构件集是以一种定义清晰的层次化结构来相互耦合。一个ESB是一个预先组装的SOA实现,它包含了实现SOA分层目标所必需的基础功能部件。 在企业计算领域,企业服务总线是指由中间件基础设施产品技术实现的、 通过事件驱动和基于XML消息引擎,为更复杂的面向服务的架构提供的软件架构的构造物。企业服务总线通常在企业消息系统上提供一个抽象层,使得集成架构师能够不用编码而是利用消息的价值完成集成工作。 企业服务总线提供可靠消息传输,服务接入,协议转换,数据格式转换,基于内容的路由等功能,屏蔽了服务的物理位置,协议和数据格式。 ESB架构(ESB Architecture) 总线一词是对在一台电脑的不同设备间运输比特的物理总线的引申。ESB在更高抽象层次上提供类似的功能。在一个使用ESB的企业架构(:EA:enterprise architecture)中,应用将通过总线交互,而总线扮演着应用间的信息调度(message broker)的角色。这种方法的主要优点是它减少了应用间交互所需的点对点连接的数量。这样,另一方面使得对主要软件变化带来的影响进行分析更简单更直观了。通过减少一个应用系统的连接点数量,对这个系统中的一个组件的改造过程变得简单了。 企业服务总线(ESB)的应用特征 大规模分布式的企业应用需要相对简单而实用的中间件技术来简化和统一越来越复杂、繁琐的企业级信息系统平台。面向服务体系架构(SOA)是能够将应用程序的不同功能单元通过服务之间定义良好的接口和契约联系起来。SOA使用户可以不受限制地重复使用软件、把各种资源互连起来,只要IT人员选用标准接口包装旧的应用程序、把新的应用程序构建成服务,那么其他应用系统就可以很方便的使用这些功能服务。 支撑SOA的关键是其消息传递架构-企业服务总线(ESB)。ESB是传统中间件技术与XML、Web服务等技术相互结合的产物,用于实现企业应用不同消息和信息的准确、高效和安全传递。ESB的出现改变了传统的软件架构,可以提供比传统中间件产品更为廉价的解决方案,同时它还可以消除不同应用之间的技术差异,让不同的应用服务协调运作,实现不同服务之间的通信与整合。ESB在不同领域具有非常广泛的用途: 电信领域:ESB能够在全方位支持电信行业OSS的应用整合概念。是理想的电信级应用软件承载平台。 电力领域:ESB能够在全方位支持电力行业EMS的数据整合概念,是理想的SCADA系统数据交换平台。 金融领域:ESB能够在全方位支持银企间业务处理平台的流程整合概念,是理想的B2B交易支撑平台。 电子政务:ESB能够在全方位支持电子政务应用软件业务基础平台、信息共享交换平台、决策分析支撑平台和政务门户的平台化实现。 Category:企业应用集成 Category:软件架构 Category:分布式计算.
查看 松耦合和企业服务总线
异步通信
异步通信(Asynchronous conferencing)是科学领域中正式使用的术语,特指以计算机为媒介,沟通,协作和学习,在互动贡献者中有一定延迟的技术。与之相对的是同步通信,同步会议指各种“聊天”系统,在该系统中,用户“实时”同步通信。 Category:电脑中介沟通.
查看 松耦合和异步通信
得墨忒耳定律
得墨忒耳定律(Law of Demeter,缩写LoD)亦稱為“最少知识原则(Principle of Least Knowledge)”,是一种软件开发的设计指導原則,特别是面向对象的程序设计。得墨忒耳定律是松耦合的一种具體案例。該原則是美國東北大學在1987年末在發明的,可以簡單地以下面任一種方式總結.
查看 松耦合和得墨忒耳定律
分布式计算
在計算機科學中,分布式计算(Distributed computing),又譯為--。這個研究領域,主要研究分散式系統(Distributed system)如何進行計算。分散式系統是一組電腦,透過網路相互连接傳遞訊息與通訊後并协调它们的行为而形成的系統。组件之间彼此进行交互以实现一个共同的目标。把需要进行大量计算的工程数据分割成小块,由多台计算机分别计算,再上传运算结果後,將結果统一合并得出数据结论的科学。分布式系统的例子来自有所不同的面向服务的架构,大型多人線上遊戲,对等网络应用。 目前常见的分布式计算项目通常使用世界各地上千万志愿者计算机的闲置计算能力,通过互联网进行数据传输(志愿计算)。如分析计算蛋白质的内部结构和相关药物的Folding@home项目,該项目結構庞大,需要惊人的计算量,由一台电脑计算是不可能完成的。虽然现在有了计算能力超强的超级計算機,但這些設備造價高昂,而一些科研机构的经费却又十分有限,藉助分佈式計算可以花費較小的成本來達到目標。.
查看 松耦合和分布式计算
函數程式語言
函數式編程(functional programming)或称函数程序设计,又稱泛函編程,是一種編程典範,它將電腦運算視為數學上的函數計算,並且避免使用程序状态以及易变物件。函數程式語言最重要的基礎是λ演算(lambda calculus)。而且λ演算的函數可以接受函數當作輸入(引數)和輸出(傳出值)。 比起指令式編程,函數式編程更加強調程序执行的结果而非执行的过程,倡导利用若干简单的执行单元让计算结果不断渐进,逐层推导复杂的运算,而不是设计一个复杂的执行过程。.
查看 松耦合和函數程式語言
內聚性 (計算機科學)
内聚性(Cohesion)也稱為内聚力,是一軟體度量,是指機能相關的程式組合成一模組的程度 Alan Hecht and Andy Simmons (1986) NASA 1986.
关注点分离
注點分離(Separation of concerns,SOC)是對只与「特定概念、目标」(關注點)相关联的软件组成部分進行「标识、封装和操纵」的能力,即标识、封装和操纵关注点的能力。是处理复杂性的一个原则。由于关注点混杂在一起会导致复杂性大大增加,所以能够把不同的关注点分离开来,分别处理就是处理复杂性的一个原则,一种方法。 关注点分离在計算機科學中,是將計算機程序分隔為不同部份的設計原則,是面向对象的程序设计的核心概念。每一部份會有各自的關注焦點。關注焦點是影響計算機程式代碼的一組資訊。關注焦點可以像是將代碼優化過的硬件細節一般,或者像實例化類別的名稱一樣具體。展現關注點分離設計的程序被稱為模組化程序。模組化程度,也就是區分關注焦點,通過將資訊封装在具有明確界面的程序代碼段落中。封裝是一種資訊隱藏手段。資訊系統中的分層設計是關注點分離的另一個實施例(例如,表示層,業務邏輯層,數據訪問層,維持齊一層)。分离关注点使得解决特定领域问题的代码从业务逻辑中独立出来,业务逻辑的代码中不再含有针对特定领域问题代码的调用(將针对特定领域问题代碼抽象化成較少的程式碼,例如將代碼封裝成function或是class),业务逻辑同特定领域问题的关系通过侧面来封装、维护,这样原本分散在整个应用程序中的变动就可以很好的管理起来。 關注點分離的價值在於簡化計算機程序的開發和維護。當關注點分開時,各部份可以重複使用,以及獨立開發和更新。具有特殊價值的是能夠稍後改進或修改一段代碼,而無需知道其他部分的細節必須對這些部分進行相應的更改。.
查看 松耦合和关注点分离
Clojure
Clojure(發音類似"closure")是一套現代的Lisp語言的動態語言版。它是一个函数式多用途的语言。 Clojure可以執行於Java虛擬機,通用語言運行時以及JavaScript引擎之上。與其他Lisp一樣,Clojure認為同像性,同時擁有複雜的巨集。 Clojure最新的稳定版本是1.8,发布于2016年1月19日。第一个稳定版本1.0于2009年5月4日发布。 Clojure是一个在Eclipse公共许可证下发行的自由软件。目前其开发进程是社区主导的,在作者Rich Hickey以一个“终身的仁慈独裁者”的身份监督下进行。.
查看 松耦合和Clojure
统一建模语言
统一建模语言(Unified Modeling Language,縮寫 UML)是非专利的第三代建模和规约语言。UML是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。 這個語言由葛來迪·布區,伊瓦爾·雅各布森與詹姆士·蘭寶於1994年至1995年間,在公司中開發,於1996年,又進一步發展。UML集成了Booch,OMT和面向对象软件工程的概念,将这些方法融合为单一的,通用的,并且可以广泛使用的建模语言。UML打算成为可以对并发和分布式系统的标准建模语言。 UML并不是一个工业标准,但在Object Management Group的主持和资助下,UML正在逐渐成为工业标准。OMG之前曾经呼吁业界向其提供有关面向对象的理论及实现的方法,以便制作一个严谨的软件建模语言(Software Modeling Language)。有很多业界的领袖亦真诚地回应OMG,帮助它建立一个业界标准。.
查看 松耦合和统一建模语言
Eiffel
Eiffel是一套物件導向程式語言,1985年由伯特蘭·邁耶所發明。文法類似Pascal ,並且將語言本身與軟體工程、和工具結合為一。Eiffel实现契约式设计(Design by Contract)的風格。.
查看 松耦合和Eiffel
面向服务的架构
#重定向 面向服务的体系结构.
查看 松耦合和面向服务的架构
面向服务架构
#重定向 面向服务的体系结构.
查看 松耦合和面向服务架构
闭包 (计算机科学)
在计算机科学中,闭包(Closure),又稱词法闭包(Lexical Closure)或函數閉包(function closures),是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外。所以,有另一种说法认为闭包是由函数和与其相关的引用环境组合而成的实体。闭包在运行时可以有多个实例,不同的引用环境和相同的函数组合可以产生不同的实例。 闭包的概念出现于60年代,最早实现闭包的程序语言是Scheme。之后,闭包被广泛使用于函数式编程语言如ML语言和LISP。很多命令式程序语言也开始支持闭包。 在一些语言中,在函数中可以(嵌套)定义另一个函数时,如果内部的函数引用了外部的函数的变量,则可能产生闭包。运行时,一旦外部的 函数被执行,一个闭包就形成了,闭包中包含了内部函数的代码,以及所需外部函数中的变量的引用。其中所引用的变量称作上值(upvalue)。 闭包一词经常和匿名函数混淆。这可能是因为两者经常同时使用,但是它们是不同的概念。.
電腦運算
#重定向 计算 (计算机科学).
查看 松耦合和電腦運算
耦合性 (計算機科學)
耦合性(Coupling,dependency,或稱耦合力或耦合度)是一種軟體度量,是指一程式中,模組及模組之間資訊或參數依赖的程度。 内聚性是一個和耦合性相對的概念,一般而言低耦合性代表高内聚性,反之亦然。耦合性和内聚性都是由提出結構化設計概念的所提出。低耦合性是結構良好程式的特性,低耦合性程式的可讀性及可維護性會比較好。.
JSON
JSON(JavaScript Object Notation)是一種由道格拉斯·克羅克福特構想和設計、輕量級的資料交換語言,该语言以易於讓人閱讀的文字為基礎,用来传输由属性值或者序列性的值组成的数据对象。儘管JSON是JavaScript的一個子集,但JSON是獨立於語言的文本格式,並且採用了類似於C語言家族的一些習慣。 JSON 数据格式与语言无关,脱胎于 JavaScript,但目前很多编程语言都支持 JSON 格式数据的生成和解析。JSON 的官方 MIME 类型是 application/json,文件扩展名是.json。.
查看 松耦合和JSON
LISP
LISP是具有悠久歷史的計算機編程語言家族,有獨特和完全括號的前綴符號表示法。起源於西元1958年,是現今第二悠久而仍廣泛使用的高階編程語言。只有FORTRAN編程語言比它更早一年。LISP編程語族已經演變出許多種方言。現代最著名的通用編程語種是Common Lisp和Scheme。 LISP最初創建時受到阿隆佐·邱奇的lambda演算的影響,用來作為計算機程序實用的數學表達。因為是早期的高階編程語言之一,它很快成為人工智能研究中最受歡迎的編程語言。在計算機科學領域,LISP開創了許多先驅概念,包括:.
查看 松耦合和LISP
Ruby
Ruby 是一种面向对象、命令式、函数式、动态的通用编程语言。在20世纪90年代中期由日本電腦科學家松本行弘(Matz)设计并开发。 遵守BSD许可证和Ruby License。它的灵感与特性来自于Perl、Smalltalk、Eiffel、Ada以及Lisp语言。由Ruby语言本身还发展出了JRuby(Java平台)、IronRuby(.NET平台)等其他平台的Ruby语言替代品。.
查看 松耦合和Ruby
Smalltalk
Smalltalk,被。Smalltalk由艾伦·凯,Dan Ingalls,Ted Kaehler,Adele Goldberg等于70年代初在Xerox PARC开发。 Smalltalk对其它众多的程序设计语言的产生起到了极大的推动作用,主要有:C++,C#,Objective-C,Actor,Java和Ruby等。90年代的许多软件开发思想得利于Smalltalk,例如设计模式、敏捷编程和代码重构等。.
XML
可扩展标记语言(Extensible Markup Language,简称:XML),是一种标记语言。标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。如何定义这些标记,既可以选择国际通用的标记语言,比如HTML,也可以使用像XML这样由相关人士自由决定的标记语言,这就是语言的可扩展性。XML是从标准通用标记语言(SGML)中简化修改出来的。它主要用到的有可扩展标记语言、可扩展样式语言(XSL)、XBRL和XPath等。.
查看 松耦合和XML
接口
接口是port或socket的譯名時,可以指:.
查看 松耦合和接口
数据模型
在软件工程中,数据模型是定义数据如何输入和与输出的一种模型。其主要作用是为信息系统提供数据的定义和格式。数据模型是数据库系统的核心和基础,现有的数据库系统都是基于某种数据模型而建立起来的。.
查看 松耦合和数据模型
另见
企业应用集成
- Apache ActiveMQ
- Apache Camel
- Kafka
- Kontact
- Microsoft BizTalk Server
- 企业应用集成
- 企业服务总线
- 信息烟囱
- 服务组件架构
- 松耦合
- 面向服务的体系结构
服務導向
编程原则
- 90-90法则
- KISS原则
- SOLID (面向对象设计)
- 一次且仅一次
- 三次法则 (程序设计)
- 代码复用
- 依赖反转原则
- 关注点分离
- 单一功能原则
- 封裝 (物件導向程式設計)
- 开闭原则
- 得墨忒耳定律
- 接口隔离原则
- 控制反转
- 更糟就是更好
- 松耦合
- 耦合性 (計算機科學)
- 里氏替换原则
- 防御性编程
- 黑箱
软件质量
- HP Quality Center
- 健壮性 (计算机科学)
- 向後移植
- 故障容許度
- 易用性
- 松耦合
- 生命攸關系統
- 第二系統效應
- 被测系统
- 軟體可測試性
- 軟體可移植性
- 軟體品質管理
- 軟體驗證及確認
- 软件危机
- 软件质量
- 软件质量保证
- 長期支援
- 關鍵質量
- 非功能性需求