目录
27 关系: 基于接口编程,基于构件的软件工程,印度教育,可扩展消息与存在协议,契约式设计,富客户端平台,布萊德·考克斯,介面 (程式設計),异步方法调用,EdgeHTML,道格拉斯·麥克羅伊,软件组件,胶水语言,GObject,JavaServer Faces,Modelica,Mozilla应用程序框架,Paint.NET,Portlet,Presto,TinyOS,Trident (排版引擎),TypeScript,Web组件,XPCOM,松耦合,梵语。
基于接口编程
基于接口编程(Interface-based programming)也称基于接口的架构(interface-based architecture),它是一种在没有模块系统的面向对象程序设计语言中的组件层面实现模块化编程的。符合此例的一个语言是Java,,它没有组件级别的模块系统。Java有一个包(package)系统,但Java软件组件通常由多个Java包组成——并且在任何情况下,接口编程可以提供优于仅使用Java包的优势,即使组件仅由单个Java包组成。 基于接口的编程将应用程序定义为组件的集合,其中组件间的应用程序接口(API)调用可能只通过抽象化接口完成,而没有具体的类。类的实例化一般通过使用如工厂模式等技术的其他接口完成。 这种方式被认为增加了应用程序的模块性并因而增加了。但是,有必要谨慎考虑——仅将应用程序分解成通过接口通信的任意组件本身不能保证低耦合性或高內聚性,这两项通常被认为是可维护性的另外两项关键属性。 当第三方(或同一个组织内的另一个团队)为已建立的系统开发了额外的组件或插件时,可以使用基于接口体系结构。Eclipse IDE的代码库就是基于接口编程的一个例子。Eclipse插件插件供应商只需开发满足父应用程序供应商Eclipse基金会指定接口的组件。在Eclipse中,哪怕“Java开发工具”等原始组件本身也是一个插件。这有点像移动电话制造商制定的移动充电器接口(引脚布局、预期直流電电压等)和,制造商和第三方都制造符合这种标准接口规范的手机充电器。.
基于构件的软件工程
#重定向 基于组件的软件工程.
印度教育
印度的教育已经有数千年的历史,该国拥有一批世界知名的大学(如 印度理工学院,),还要面对初等教育的挑战,为识字率达到100%而努力。全面实行初等义务教育,由于不容易将穷人子女留在学校,以及保持农村地区的教育质量,实现将有很大难度,(喀拉拉邦是目前唯一完成目标的邦)。.
可扩展消息与存在协议
可扩展消息与存在协议(XMPP,全称为Extensible Messaging and Presence Protocol,前稱Jabber)是一种以XML為基礎的開放式即時通訊協定,是經由網際網路工程工作小組(IETF)通過的網際網路標準。XMPP因为被Google Talk应用而被广大网民所接触。.
契约式设计
契约式设计(Design by Contract,縮寫為 DbC),一种设计计算机软件的方法。这种方法要求软件设计者为软件组件定义正式的,精确的并且可验证的接口,这样,为传统的抽象数据类型又增加了先验条件、后验条件和不变式。这种方法的名字里用到的“契约”或者说“契约”是一种比喻,因为它和商业契约的情况有点类似。 因为Design by Contract是属于Eiffel Software的注册商标,很多开发人员用契約式編程(Programming by Contract),契約編程(Contract Programming),或者契約優先式開發(Contract-First development)来指代这种方法。微軟也採用這種設計方法,稱為程式碼合約(Code Contracts)。.
富客户端平台
富客户端平台,即Rich Client Platform(RCP),指的是一种C/S(Client/Server)应用软件的公用基础结构实现,其Rich概念是相对于B/S(Browser/Server)应用软件的(Thin Client)浏览器而言的,有时也称之为胖客户端(Fat Client)或者传统客户端(Traditional Client),它通常包含以下组件:.
布萊德·考克斯
布萊德·考克斯(Brad Cox),美國計算機科學家,知名於他在以下领域的工作:.
介面 (程式設計)
--(英語:interface),--。介面泛指實體把自己提供給外界的一種抽象化物(可以為另一實體),用以由內部操作分離出外部溝通方法,使其能被修改內部而不影響外界其他實體與其互動的方式,就如物件導向程式設計提供的多重抽象化。介面可能也提供某種意義上的在講不同語言的實體之間的翻譯,諸如人類與電腦之間。因為介面是一種間接手段,所以相比起直接溝通,會引致些額外負擔。 人類與電腦等資訊機器或人類與程式之間的介面稱為使用者介面。電腦等資訊機器硬體元件間的介面叫硬體介面。電腦等資訊機器軟體元件間的介面叫軟體介面,其存在於分離的軟體元件間,並提供一種機制使這些元件可以溝通。這條目主要述及程式編寫或設計的方法論中所關心的介面,這些介面作為程式元件功能的抽象化,屬於軟體介面的一類。.
异步方法调用
异步方法调用或异步方法模式是(多线程)面向对象程序设计中用于异步调用对象的潜在的长期运行方法的一种设计模式。它等价于Allan Vermeulen提出的IOU模式。 基于事件的异步模式是异步方法调用的一个变种,开销更大但能更好的表现软件组件对象。.NET框架和Java中的java.util.concurrent.FutureTask类中使用的基于事件的异步模式使用事件来解决同样的问题。 大部分编程语言中对方法的调用是同步执行的。例如在线程执行体内,即线程的调用函数中,方法的调用就是同步执行的。如果方法需要很长的时间来完成,比方说从Internet加载数据的方法,调用者线程将被阻塞直到方法调用完成。如果不希望调用被阻塞,则可以通过创建新的worker线程并在worker线程中调用方法,在大多数编程环中上这样做可能需要很长的一段代码,尤其是需要小心处理线程过多的额外开销。异步方法调用它通过使用一种立即返回的异步的变体并提供额外的方法来支持接受完成通知以及完成等待改进长期运行的(同步)方法。 活动对象(active object)设计模式通常使用异步方法调用。异步方法调用的一个替代方案是同步的方法调用和未来对象(future object)模式。 在Web浏览器的实现上可以采用异步方法调用,例如浏览器需要在Web页面中的图像加载完成之前将页面显示出来。.
EdgeHTML
EdgeHTML是由微軟發展並用於Microsoft Edge的專有排版引擎。該排版引擎是Trident的一個分支,但EdgeHTML移除所有舊版Internet Explorer遺留下來的程式碼,並重寫主要的程式碼以和其他現代瀏覽器的設計精神互通有無。EdgeHTML的渲染引擎,首次出現於Windows 10預覽版9926號中Internet Explorer 11的實驗選項;其主要排版引擎則用於Microsoft Edge。 《AnandTech》曾經針對Windows 10最新預覽版的EdgeHTML進行評價,發現其基準表現超越Trident;尤其是JavaScript引擎表現已經達到Google Chrome的標準水平。其他如WebGL API的表現也比Google Chrome與Mozilla Firefox好。.
道格拉斯·麥克羅伊
科姆·道格拉斯·麥克羅伊(Malcolm Douglas McIlroy,),著名數學家、工程師以及程式設計師,曾服務於貝爾實驗室,參與包括Unix與Plan 9的開發。截至2007年,他是達特茅斯學院的兼職教授,教授計算機科學。他曾提出基于组件的软件工程,並開發了多個Unix工具程式,如管道(Unix pipelines)、diff。.
软件组件
软件组件,定义为自包含的、可编程的、可重用的、与语言无关的软件单元。 软件组件可以很容易被用于组装应用程序中。.
胶水语言
胶水语言(glue language)是用来连接软件组件的程序设计语言(通常是脚本语言)。 胶水语言的例子.
GObject
GLib对象系统,或者说GObject,是一个在LGPL下发布的自由软件库,它提供了一个轻便的对象系统并支持透明的多语言互通。GObject被设计为可以直接使用在C程序中,也封装至其他语言。.
JavaServer Faces
JavaServer Faces(JSF)是一个为网络应用程序构建基于组件的用户界面的Java规范,并已通过JCP格式化为Java EE的一部分。它也是一个MVC Web应用框架,通过在页面中使用可重用的UI组件简化了基于服务器的应用程序的用户界面(UI)。.
Modelica
Modelica是一种面向对象、声明式的多领域建模语言,可用于基于组件的复杂系统建模,包括机械、电气、电子、液压、热力、控制、电力或面向过程的子系统等。Modelica语言是自由软件(免费、开源),由非盈利性质的Modelica协会开发。Modelica协会也开发了同样为自由软件的Modelica标准库,Modelica标准库包含可用于不同领域的约1290个常见组件模型和910个函数(3.2版中)。.
Mozilla应用程序框架
Mozilla应用程序框架(Mozilla application framework)是一套跨平台软件组件,其构成了Mozilla应用软件。它最早被称为XPFE,一个跨平台前端的縮寫。后来也曾被称为XPToolkit。为避免混淆,它现在被称为Mozilla应用程序框架。 类似于GTK+、Qt和wxWidgets等,它的目的是提供适合制作网络应用程序(例如网页浏览器)的跨平台功能子集,以利用Gecko排版引擎中构建的跨平台功能。.
Paint.NET
Paint.NET是使用.NET Framework開發,適用於Windows的開放原始碼點陣圖形編輯軟件。Paint.NET最初是一個華盛頓州立大學的學生專案,而Paint.NET則發展成支援圖層、顏色渲染、透明度及擴充元件的小畫家替代品。而現在Paint.NET則已經被視為Adobe Photoshop的免費替代品。.
Portlet
Portlets在Web门户上管理和显示的可插拔的用户界面组件。Portlet产生可以聚合到门户页面中的标记语言代码的片段,如HTML,XML等。通常,根据桌面隐喻,一个门户页面显示为一组互相不重叠的portlet窗口,其中每一个portlet窗口显示一个portlet。因此,可以说一个(或一组)portlet就像一个在门户网站上运行的基于Web的应用程序。 Portlet应用程序的一些例子包括电子邮件,天气预报,论坛和新闻等。 Portlet标准的目的是使开发人员开发出的portlet可以插入到任何支持该标准的门户网站。.
Presto
Presto是一個由Opera Software開發的網頁瀏覽器排版引擎,由Opera 7.0至12.18版本所使用。 Presto取代了舊版Opera 4至6版本使用的Elektra排版引擎,包括加入動態功能,例如網頁或其部分可隨著DOM及Script語法的事件而重新排版。Presto在推出後不斷有更新版本推出,使不少錯誤得以修正,以及閱讀JavaScript效能得以最佳化。 2013年2月12日,Opera宣佈將結束Presto引擎的開發,未來將以Webkit引擎為主。 2016年2月15日,传出Opera被收购的消息,同日Presto内核版Opera更新到。.
TinyOS
TinyOS是一款自由和开源的基于组件(component-based)的嵌入式操作系统,主要针对无线传感器网络(WSN, wireless sensor network)开发。TinyOS使用nesC语言编写,经由一系列合作项目得以完善。TinyOS最初是加州伯克利分校和英特尔研究院为嵌入智能微塵而开发的合作项目,之后逐渐演变成一个国际合作项目,即TinyOS联盟。.
Trident (排版引擎)
Trident(又稱為MSHTML、IE内核),是微軟的視窗作業系統(Windows)搭載的網頁瀏覽器—Internet Explorer的排版引擎的名稱,它的第一個版本隨著1997年10月Internet Explorer第四版釋出,之後不斷的加入新的技術並隨著新版本的Internet Explorer釋出。在Internet Explorer第七版中,微軟對Trident排版引擎做了的重大的變動,除了加入新的技術之外,並增加對網頁標準的支持。儘管這些變動已經在相當大的程度上落後了其它的排版引擎,如Gecko、KHTML、Webkit及Presto。 除此之外,微軟還有另一個網頁瀏覽器排版引擎,稱為Tasman,它是使用在「Internet Explorer for Mac」的排版引擎。相較於Trident,Tasman引擎對網頁標準有較佳的支援。與普遍的看法相反的是,微軟已經停止了Mac版本的Internet Explorer的開發,但Tasman的開發仍舊持續,新版本的Tasman引擎仍被應用在一些微軟產品上,例如Office for Mac。.
TypeScript
TypeScript是一種由微軟開發的自由和開源的編程语言。它是JavaScript的一個严格超集,並添加了可選的靜態型別和類別基礎的物件導向編程。C#的首席架构师以及Delphi和Turbo Pascal的创始人安德斯·海尔斯伯格参与了TypeScript的开发。 TypeScript设计目标是开发大型應用,然后转译成JavaScript。由于TypeScript是JavaScript的严格超集,任何現有的JavaScript程式都是合法的TypeScript程序。 TypeScript支援為現存JavaScript函式庫添加類型資訊的定义文件,方便其他程序像使用静态类型的值一样使用现有库中的值。目前有第三方提供常用函式庫如jQuery、MongoDB、Node.js和D3.js的定义文件。 TypeScript编译器本身也是用TypeScript写成(见自举),并被转译为JavaScript,以Apache License 2发布。.
Web组件
Web组件(Web Components)是W3C正在向HTML和DOM规范添加的一套功能,它允许在Web文档和Web应用程序中创建可重用的或组件。这样做的目的是将基于组件的软件工程引入万维网。组件模型将允许单个HTML元素的封裝和互操作性。 Web组件由四大部分组成,可单独或组合使用。.
XPCOM
跨平台组件对象模型(Cross Platform Component Object Model,简称XPCOM)是Mozilla的一个跨平台组件模型。它类似微软的组件对象模型(COM)和公共对象请求代理体系结构(CORBA)。它有多个语言绑定和接口描述语言(IDL)描述符,因此程序员可以将自己的自定义函数插入到框架中并与其他组件连接。 2015年8月,Mozilla宣布将放弃为创建Firefox附加组件而使用的XPCOM,未来将支持WebExtensions。Firefox的分支苍月浏览器(Pale Moon)则将继续无限期的支持XPCOM。.
松耦合
在電腦運算和系统设计中,一个松耦合的系统中的每一个组件对其他独立组件的定义所知甚少或一无所知。子范围包括类、接口、数据和服务之间的耦合。 松耦合是紧耦合的对立面。.
梵语
梵语(संस्कृता वाक्,,簡稱संस्कृतम्,)是印欧语系的印度-伊朗語族的印度-雅利安语支的一种语言,是印歐語系最古老的語言之一。和拉丁語一樣,梵語已經成為一種屬於學術和宗教的專門用語。 印度教經典《吠陀經》即用梵文寫成。其語法和發音均視作一種宗教儀規而得以絲毫不差地保存下來。19世紀時梵語成為重構印歐諸語言的關鍵語種。古印度相信梵文是由梵天發明。.
查看 基于组件的软件工程和梵语
亦称为 CBSE,基于组件的开发,軟體元件化。