發(fā)文章
發(fā)文工具
撰寫
網(wǎng)文摘手
文檔
視頻
思維導(dǎo)圖
隨筆
相冊
原創(chuàng)同步助手
其他工具
圖片轉(zhuǎn)文字
文件清理
AI助手
留言交流
聲明:此文來自于軟件體系結(jié)構(gòu)課程PPT
1
軟件體系結(jié)構(gòu)已經(jīng)成為國內(nèi)外軟件研究的熱點(diǎn),人們已經(jīng)把解決復(fù)雜軟件設(shè)計(jì)的難題,以及提高軟件設(shè)計(jì)的效率和質(zhì)量寄托在軟件體系結(jié)構(gòu)研究的突破上。然而,軟件體系結(jié)構(gòu)的技術(shù)研究從理論到實(shí)踐還處在發(fā)展時(shí)期。主要研究包括:
1)軟件體系結(jié)構(gòu)形式化
2)軟件體系結(jié)構(gòu)的描述語言、工具和環(huán)境
3)軟件體系結(jié)構(gòu)經(jīng)典風(fēng)格、應(yīng)用框架和設(shè)計(jì)模式的總結(jié)
形式化方法的兩方面研究:
①用形式化體系解釋體系結(jié)構(gòu)
抽象定義體系結(jié)構(gòu)的精確語義,證明某種體系結(jié)構(gòu)運(yùn)用的必然性和充分性,進(jìn)而擴(kuò)展證明它的使用性,并且,作為驗(yàn)證結(jié)構(gòu)合理性的基礎(chǔ),用于系統(tǒng)設(shè)計(jì)中的結(jié)構(gòu)選取。
軟件體系結(jié)構(gòu)的主要形式化體系:
等等
②體系結(jié)構(gòu)描述語言ADL(Architecture DescriptionLanguage)
用形式化的符號(hào)表示體系,進(jìn)行建模和結(jié)構(gòu)分析。形式地描述結(jié)構(gòu),便于掌握系統(tǒng)全局和特征,便于分析系統(tǒng)的構(gòu)成角色和特性,便于復(fù)用和繼承已有結(jié)構(gòu),目標(biāo)是體系結(jié)構(gòu)自動(dòng)化。
研究進(jìn)展:
ACME: 描述系統(tǒng)結(jié)構(gòu)的交互機(jī)制
Aesop:對體系結(jié)構(gòu)特定風(fēng)格的規(guī)范性描述
C2: 描述分布式可延展動(dòng)態(tài)系統(tǒng)的結(jié)構(gòu)
MetaH:用于描述導(dǎo)引和控制體系結(jié)構(gòu)
Rapide:對體系結(jié)構(gòu)描述中的動(dòng)態(tài)行為建模并模擬運(yùn)行
SADL: 用形式化對體系結(jié)構(gòu)層次及不同層次的細(xì)節(jié)描述
Unicom:用公共接口協(xié)議連結(jié)構(gòu)件,粘合生成系統(tǒng)的方式
Wright:用于并發(fā)性系統(tǒng)建模,對死鎖等動(dòng)態(tài)行為分析
2)軟件體系結(jié)構(gòu)的工具和環(huán)境
描述語言和工具環(huán)境的關(guān)系:
描述語言的可用性,直接反映在工具所提供的環(huán)境中
軟件體系結(jié)構(gòu)工具環(huán)境應(yīng)該具備的基本功能:
2 軟件體系結(jié)構(gòu)語言ADL
ADL研究現(xiàn)狀:
ADL具備的共同點(diǎn):
各種ADL目前存在的問題:
IEEEP1471規(guī)定了應(yīng)用體系結(jié)構(gòu)的描述標(biāo)準(zhǔn):(2000.9)
體系結(jié)構(gòu)的存檔要求
能區(qū)別個(gè)體及其關(guān)系
體系結(jié)構(gòu)視點(diǎn)
體系結(jié)構(gòu)視點(diǎn)的選擇
體系結(jié)構(gòu)視點(diǎn)之間的一致性
體系結(jié)構(gòu)原理
ADL應(yīng)該具備的基本特點(diǎn):
能使用較小的獨(dú)立體系結(jié)構(gòu)元素來建造軟件系統(tǒng);
關(guān)注的是構(gòu)件和連接件描述,而無需關(guān)注實(shí)現(xiàn);
構(gòu)件和連接件以及體系結(jié)構(gòu)都是開發(fā)設(shè)計(jì)的重用部件;
描述的每個(gè)元素都有自己局部的結(jié)構(gòu),支持動(dòng)態(tài)變化組合;
可描述不同體系結(jié)構(gòu)的關(guān)聯(lián);
可對描述的體系結(jié)構(gòu)進(jìn)行性能及功能的分析。
2.1 ADL核心模型
所有ADL都圍繞著被稱為“軟件體系結(jié)構(gòu)核心模型”而設(shè)計(jì)的。軟件體系結(jié)構(gòu)核心模型由五個(gè)基本元素:構(gòu)件、連接件、配置、端口和角色。
構(gòu)件:是軟件結(jié)構(gòu)的構(gòu)造塊,是計(jì)算與狀態(tài)存在的場所
構(gòu)件的大小:可小到只有一個(gè)過程或大到整個(gè)應(yīng)用系統(tǒng)
構(gòu)件的存儲(chǔ):有自己的或與其它成分共享的存儲(chǔ)和執(zhí)行空間
構(gòu)件的屬性:如類型、語義、狀態(tài),等
構(gòu)件接口(端口):構(gòu)件與外部交互的端口點(diǎn)。
構(gòu)件類型:構(gòu)件是按照指定的類型實(shí)例化的,類型可參數(shù)化。ADL應(yīng)具有構(gòu)件類型保證機(jī)制。
構(gòu)件演化:構(gòu)件通過子類型形成特性細(xì)化的特殊構(gòu)件。目前只有少數(shù)幾種ADL部分地支持構(gòu)件演化。
連接件:軟件結(jié)構(gòu)的構(gòu)造塊。建立構(gòu)件交互的規(guī)則。
與構(gòu)件的區(qū)別:不直接對應(yīng)編譯單元。
連接件包括:
消息路由兼容設(shè)備、共享變量、入口表、緩沖區(qū)、指令連接器、動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu)、內(nèi)嵌在代碼中的遠(yuǎn)程過程調(diào)用序列、初始化參數(shù)、客戶服務(wù)協(xié)議、管道、數(shù)據(jù)存儲(chǔ)、應(yīng)用程序之間的查詢語言,等。
連接件接口(角色):由一組角色組成,參與者對應(yīng)交互的角色。例如:二元消息傳遞連接件有兩個(gè)角色,發(fā)送者和接收者。而廣播連接件有多個(gè)角色,一個(gè)發(fā)送者角色,多個(gè)接收者角色。
連接件協(xié)議:提供規(guī)定類型的通信交互的規(guī)范。協(xié)議可以是獨(dú)立的或是內(nèi)嵌在交互機(jī)制中實(shí)現(xiàn)的。
ADL應(yīng)提供協(xié)議的交換語法,能夠規(guī)劃交互協(xié)議,建立內(nèi)部連接件的依賴關(guān)系以及用途邊界。通過強(qiáng)制風(fēng)格和角色限制來保證連接約束。
體系結(jié)構(gòu)配置---是用來描述體系結(jié)構(gòu)的構(gòu)件與連接件的連接圖。配置信息可以用來確定構(gòu)件的連接、接口的匹配,通信的正確性以及實(shí)現(xiàn)的組合行為語義。
文本和圖形說明---ADL應(yīng)該以簡單的、可理解的語法來配置結(jié)構(gòu)化信息。除了文本形式外,還提供圖形說明形式,并且它們之間可以互換。多視圖、多場景的體系結(jié)構(gòu)方法成為研究方向。
復(fù)合及合成---復(fù)合是包括將一個(gè)整體作為另一個(gè)的部分構(gòu)成更大的配置。這樣可以適應(yīng)異構(gòu)和不斷變化的結(jié)構(gòu)
目前在軟件體系結(jié)構(gòu)研究領(lǐng)域出現(xiàn)多種體系結(jié)構(gòu)描述語言,既有針對特定領(lǐng)域的ADL,也有以通用性為目標(biāo)的ADL。不同的ADL描述體系結(jié)構(gòu)的側(cè)重點(diǎn)不盡相同。
UniCon是 Caregie Mellon 大學(xué)的 Mary Shaw 等人研究的成果。它主要的目標(biāo)是支持對體系結(jié)構(gòu)的描述,針對構(gòu)件連接器模型,區(qū)分不同需要的構(gòu)件,支持構(gòu)件打包、定位、交互模式描述和編碼。
UniCon語言構(gòu)件描述示例
ComponentReal_Time_System
interface istypeGeneral
implementation is
uses client interface RTclient
PRIORITY(10)
…
end client
uses server interface RTserver
end server
establish RTM-realtime-sched with
client?applicetion1 as load
server?applicetion2 as load
server?services as load
ALGORITHM(rate_monotonic)
end RTM-realtime-sched
establish RTM-remote-proc-call with
client?timeget as caller
server?timeget as definer
IDLTYPE(Mach)
end RTM-remote-proc-call
end implementation
endReal_Time_System
實(shí)時(shí)系統(tǒng)構(gòu)件說明:
1.實(shí)時(shí)系統(tǒng)接口是通用類型
2.實(shí)時(shí)系統(tǒng)的實(shí)現(xiàn),
Client接口:優(yōu)先級(jí)等
Server接口:優(yōu)先級(jí)等
建立實(shí)時(shí)管理的實(shí)時(shí)調(diào)用程序
Client和Server加載應(yīng)用load
和服務(wù)算法
建立實(shí)時(shí)管理的遠(yuǎn)程調(diào)用程序
Client和Server交互方式
C2支持事件風(fēng)格的用戶界面體系結(jié)構(gòu)描述語言。配合有設(shè)計(jì)環(huán)境Argo系統(tǒng)。使用可替換、可重用的GUI構(gòu)件開發(fā)體系結(jié)構(gòu)。重點(diǎn)是構(gòu)件的動(dòng)態(tài)改變,以滿足某些GUI特性。
C2的連接件負(fù)責(zé)構(gòu)件之間的消息傳遞, C2的構(gòu)件只能通過連接件完成消息傳遞。消息要么是請求其它構(gòu)件執(zhí)行某項(xiàng)操作,要么是通知其它構(gòu)件改變狀態(tài),請求消息只能向上層傳遞,通知消息只能向下層在內(nèi)部構(gòu)件間傳遞。
C2的構(gòu)件維持狀態(tài)、執(zhí)行操作并通過top和bottom端口與其它構(gòu)件交換信息。每個(gè)構(gòu)件最多只能和一個(gè)連接件相連,而連接件可以和任意數(shù)目的構(gòu)件相連。
Component_message_interface::=
top_domain_interface
bottom_domain_interface
top_domain_interface::=
top_domain is
out interface_requests
in interface_notifications
bottom_domain_interface::=
bottom_domain is
out interface_ notifications
in interface_requests
interface_requests::=
{request;} | null
interface_notifications ::=
{notification;} | null
request::=
message_name(request_parameters)
request_parameters::=
[to component_name][parameter_list]
notification::=
message_name[parameter_list]
Wright是一種特定的形式化體系結(jié)構(gòu)描述語言。它的連接器針對離散的、異步的行為關(guān)系模型構(gòu)件,并可限定配置。
ComponentSplitFilter
port Input [read data until end -of -data is reached ]
port Left [output data repeatly]
Port Right [output data repeatly]
computation [repeatly read from input,then output,
alternating betweenLeft and Righ Ports]
ConfigurationCapitalize
Component SplitFilter
……
Component UpperCase
Connector Pipe
…….
Instances
Split=SplitFilter;
upper=UpperCase;
Merge=MergrFilter;
p1,p2,p3=Pipe
Attachments
Split.Left as p1.Source
Upper.Input as p1.Sink;
Split.Right as p2. Source;
Merge.Left as p2. Sink;
Upper.Output as p3. Source
Merge.Right as p3. Sink;
EndCapitalize
配置中說明三部分內(nèi)容:
1.定義各構(gòu)件和連接件;
2.聲明給定類型的不同實(shí)例;
3.附件說明了連接件及構(gòu)件的組合約束。
從軟件體系結(jié)構(gòu)研究和應(yīng)用的現(xiàn)狀來看,當(dāng)前對軟件體系結(jié)構(gòu)的描述,在很大程度上還停留在非形式化的基礎(chǔ)上。軟件體系結(jié)構(gòu)設(shè)計(jì)依賴于設(shè)計(jì)人員的經(jīng)驗(yàn)和技巧。人們對同一種結(jié)構(gòu)的理解和表達(dá)差別很大,所使用的符號(hào)體系也相差很大,并且,對約定、術(shù)語和概念是分散的、缺乏嚴(yán)格性、一致性和系統(tǒng)性,沒有形成對軟件體系結(jié)構(gòu)設(shè)計(jì)的一般性指導(dǎo)。這些都表明建立軟件形式化和規(guī)范化結(jié)構(gòu)描述的必要性。
要點(diǎn):
形式地推論系統(tǒng)特征的方法
遵循給出的數(shù)學(xué)系統(tǒng)得出結(jié)論
數(shù)學(xué)系統(tǒng)的基礎(chǔ)是公式邏輯,提供正確的思維規(guī)律,或推理規(guī)則,即結(jié)論和前提間的推斷關(guān)系。
目的:
形式方法關(guān)注應(yīng)用模型和計(jì)算機(jī)模型之間的邏輯關(guān)系。軟件工程中的形式方法,即是依靠數(shù)學(xué)模型和計(jì)算,來描述和驗(yàn)證目標(biāo)軟件系統(tǒng)的行為和特性。
嚴(yán)格的形式化描述和驗(yàn)證技術(shù),可實(shí)現(xiàn)自然地軟件自動(dòng)生成和自動(dòng)驗(yàn)證的目的。
Z標(biāo)記形式化描述語言
Z標(biāo)記語言是由英國牛津大學(xué)的Programming Research Group研究的。是一種以一階謂詞邏輯和集合論為基礎(chǔ)的數(shù)學(xué)表示語言。它使用標(biāo)準(zhǔn)的邏輯操作符和集合操作符,以及標(biāo)準(zhǔn)的語義。由于描述的數(shù)學(xué)對象與程序?qū)ο笥屑捌湎嗨浦?,可以直接對?yīng)軟件工程問題,因此,Z語言被較廣泛地運(yùn)用在軟件程序規(guī)格說明和軟件體系結(jié)構(gòu)的形式化描述上。
Z的規(guī)范由文字和數(shù)學(xué)描述兩部分組成
數(shù)學(xué)描述使用類型集合的方式,每個(gè)類型是謂詞真值的集合
Z提供了一些基本的類型,如自然數(shù)N、整數(shù)Z等等
Z也可以自行定義類型,用[]引出,并用英文大寫字母
例如:[CLIENT,ROOM]兩個(gè)類型
Z的圖解架構(gòu)(schema)是一種類型結(jié)構(gòu)的抽象,采用盒式圖解結(jié)構(gòu)。架構(gòu)形式化地描述過程或結(jié)構(gòu)。盒中線以上是狀態(tài)描述變量,以下是變量關(guān)系式
一組構(gòu)造類型的運(yùn)算符:包括PX、X ′ Y、seq X、XY、X+Y、XY、X>Y、 X>+Y、等等
用Z語言描述文件存儲(chǔ)塊結(jié)構(gòu)以及處理文件存儲(chǔ)塊的行為特性。文件由固定長度的存儲(chǔ)塊BLOCKS構(gòu)成,每個(gè)BLOCKS有起始地址、長度等信息,并由序號(hào)標(biāo)識(shí)。系統(tǒng)的任務(wù)是根據(jù)需求,從BLOCKS序列中取出存儲(chǔ)塊并分配使用。
事件系統(tǒng)中對EM事件管理器,只聲明是”事件與方法的對應(yīng)”,沒有規(guī)定同一個(gè)事件是否可與多個(gè)不同方法的關(guān)聯(lián)?或者可以不與任何方法關(guān)聯(lián)?并且,也沒有說明構(gòu)件發(fā)布事件的條件,以及與事件對應(yīng)方法的約束和限制。因此,對應(yīng)隱式激發(fā)機(jī)制需要做必要的說明。
MVC(Model-View-Controller)隱式激發(fā)機(jī)制,將視圖和控制作為依賴者向模型注冊,當(dāng)模型對象發(fā)布changed事件時(shí),視圖和控制的update方法則隱式地被激發(fā)。因此,MVC事件系統(tǒng)應(yīng)提供changed事件與update方法的依賴關(guān)聯(lián)定義。
來自: 昵稱10504424 > 《C#》
0條評論
發(fā)表
請遵守用戶 評論公約
體系結(jié)構(gòu)描述語言
體系結(jié)構(gòu)描述語言。體系結(jié)構(gòu)描述語言可以是形式化或半形式化的描述語言,也可以是圖形語言。體系結(jié)構(gòu)描述語言可分為配置結(jié)構(gòu)描述語言、實(shí)例描述語言和風(fēng)格描述語言三類。配置結(jié)構(gòu)描述語言(如Darwin、C...
詳解軟件體系結(jié)構(gòu)的現(xiàn)狀及發(fā)展方向
詳解軟件體系結(jié)構(gòu)的現(xiàn)狀及發(fā)展方向。Wright是-種結(jié)構(gòu)描述語言,該語言基于一種形式化的、抽象的系統(tǒng)模型,為描述和分析軟件體系結(jié)構(gòu)和結(jié)構(gòu)化方法提供了一種實(shí)用的工具。研究軟件體系結(jié)構(gòu)的首要問題是如...
軟件體系結(jié)構(gòu)
軟件體系結(jié)構(gòu)處理算法與數(shù)據(jù)結(jié)構(gòu)之上關(guān)于整體系統(tǒng)結(jié)構(gòu)設(shè)計(jì)和描述方面的一些問題,如全局組織和全局控制結(jié)構(gòu)、關(guān)于通訊、同步與數(shù)據(jù)存取...
【慧材科技】日本住宅產(chǎn)業(yè)化發(fā)展模式
20世紀(jì)70年代是日本住宅產(chǎn)業(yè)的成熟期,興起一股住宅產(chǎn)業(yè)化熱潮,大企業(yè)聯(lián)合組建集團(tuán)進(jìn)入住宅產(chǎn)業(yè),在技術(shù)上產(chǎn)生了盒子住宅、單元住宅等...
預(yù)應(yīng)力鋼結(jié)構(gòu)技術(shù)的創(chuàng)新和拓展探究
預(yù)應(yīng)力鋼結(jié)構(gòu)技術(shù)的創(chuàng)新和拓展探究預(yù)應(yīng)力鋼結(jié)構(gòu)技術(shù)的創(chuàng)新和拓展探究 預(yù)應(yīng)力鋼結(jié)構(gòu)技術(shù)的創(chuàng)新和拓展探究。在上個(gè)世紀(jì)中期預(yù)應(yīng)力鋼結(jié)構(gòu)就已經(jīng)開始逐漸得到廣泛的應(yīng)用,正是由于預(yù)應(yīng)力鋼結(jié)構(gòu)在實(shí)際生產(chǎn)過...
淺論C/S和B/S體系結(jié)構(gòu)
再者,平臺(tái)體系結(jié)構(gòu)也從過去單用戶發(fā)展到今天的文件/服務(wù)器(F/S)體系和領(lǐng)導(dǎo)主流的客戶機(jī)/服務(wù)器(C/S)體系和瀏覽器/服務(wù)器(B/S)體系。由于B/S架構(gòu)管理軟件只安裝在服務(wù)器端(Server)上,...
高級(jí)分布式學(xué)習(xí)系統(tǒng)
ADL 提供了一整套通用的準(zhǔn)則,以確保這個(gè)新興的、面向服務(wù)對象的學(xué)習(xí)環(huán)境的預(yù)期目標(biāo)和功效的實(shí)現(xiàn),具體表現(xiàn)如下:1) 通過使用元數(shù)據(jù)(metadata)和包裝標(biāo)準(zhǔn)使得盡可能多的人都能夠使用ADL來學(xué)習(xí),即使...
學(xué)術(shù)進(jìn)展
新結(jié)構(gòu)經(jīng)濟(jì)學(xué)具體領(lǐng)域的應(yīng)用形成了自成體系的新結(jié)構(gòu)產(chǎn)業(yè)經(jīng)濟(jì)學(xué)、新結(jié)構(gòu)金融經(jīng)濟(jì) 學(xué)、新結(jié)構(gòu)勞動(dòng)經(jīng)濟(jì)學(xué)、新結(jié)構(gòu)區(qū)域經(jīng)濟(jì)學(xué)、新結(jié)構(gòu)國際經(jīng)濟(jì)學(xué)、新結(jié)構(gòu)周期理論、新結(jié)構(gòu)制度經(jīng)濟(jì)學(xué)、新結(jié)構(gòu)轉(zhuǎn)型經(jīng)濟(jì)學(xué)、新...
編寫軟件架構(gòu)文檔說明,第 1 部分: 什么是軟件架構(gòu),為什么為軟件架構(gòu)編寫文檔說明非常重要
了解編寫文檔說明的不同方面:系統(tǒng)上下文、體系結(jié)構(gòu)概述、功能體系結(jié)構(gòu)、操作體系結(jié)構(gòu)和體系結(jié)構(gòu)決策。它采用一組在體系結(jié)構(gòu)上非常重要的用例(業(yè)務(wù)場景),并說明如何將四種視圖的每一種視圖中的體系...
微信掃碼,在手機(jī)上查看選中內(nèi)容