走在架構(gòu)師的大道上 Jack.Wang's home

          Java, C++, linux c, C#.net 技術(shù),軟件架構(gòu),領(lǐng)域建模,IT 項(xiàng)目管理 Dict.CN 在線詞典, 英語(yǔ)學(xué)習(xí), 在線翻譯

          BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
            195 Posts :: 3 Stories :: 728 Comments :: 0 Trackbacks
              架構(gòu),從字面上很容易聯(lián)想到建筑學(xué)中的構(gòu)建藍(lán)圖,不過(guò)他是相對(duì)穩(wěn)定的,而軟件中的架構(gòu)是需要不斷演進(jìn)的動(dòng)態(tài)過(guò)程。軟件架構(gòu)是對(duì)系統(tǒng)構(gòu)件及其交互關(guān)系的高層抽象描述,是軟件系統(tǒng)的藍(lán)圖和整體結(jié)構(gòu),用于指導(dǎo)后續(xù)的設(shè)計(jì)與開發(fā),以使抽象具體化。軟件架構(gòu)一直沒有一個(gè)確切的定義,但是,普遍認(rèn)為軟件架構(gòu)是一種關(guān)注和描述軟件系統(tǒng)整體組織結(jié)構(gòu)和性能的抽象系統(tǒng)機(jī)制,為軟件系統(tǒng)提供了一個(gè)結(jié)構(gòu)、行為和屬性的高級(jí)抽象,由構(gòu)成系統(tǒng)的元素描述、這些元素的相互作用、指導(dǎo)元素集成的模式以及這些模式的約束組成   

              雖然軟件系結(jié)構(gòu)的概念早在20世紀(jì)80年代就已經(jīng)提出,但真正引起關(guān)注和重視是在90年代。
              1992年,Ikwayne Perry和Ales Wolf定義:軟件體系結(jié)構(gòu)={元素,形式,準(zhǔn)則}。軟件體系結(jié)構(gòu)是
          由具有特定形式的體系結(jié)構(gòu)元素或設(shè)計(jì)元素構(gòu)成,包括處理元素、數(shù)據(jù)元素和連接元素。處理元素負(fù)責(zé)對(duì)數(shù)據(jù)進(jìn)行加工,數(shù)據(jù)元素是被加工的信息連接元素把體系結(jié)構(gòu)的不同部分組合連接起來(lái)。軟件體系結(jié)構(gòu)形式由專有特性和關(guān)系組成。而在多個(gè)體系結(jié)構(gòu)方案中選擇合適的體系結(jié)構(gòu)方案往往基于一組

          準(zhǔn)則。這一定義注重區(qū)分處理元素、數(shù)據(jù)元素和連接元素,這一方法在其它的定義和方法中基本上得到保持。
              1993年 DavidW an和MaryS haw提出:軟件體系結(jié)構(gòu)=}組件,連接件,約束}。組件可以是一組代
          碼,如程序的模塊;也可以是一個(gè)獨(dú)立的程序,如數(shù)據(jù)庫(kù)服務(wù)器。連接件可以是過(guò)程調(diào)用、管道、遠(yuǎn)程調(diào)用等,用于表示組件之間的相互作用。一個(gè)軟件體系結(jié)構(gòu)還包括某些約束,約束一般為對(duì)象連接時(shí)的規(guī)則或指明連接的勢(shì)態(tài)和條件。軟件體系結(jié)構(gòu)是設(shè)計(jì)過(guò)程的一個(gè)層次,它處理那些超越算法和數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì),研究整體結(jié)構(gòu)設(shè)計(jì)和描述方法。
              1994年 , Bass等人提出:體系結(jié)構(gòu)設(shè)計(jì)至少應(yīng)包括應(yīng)用領(lǐng)域的功能分割、系統(tǒng)結(jié)構(gòu)、結(jié)構(gòu)的領(lǐng)域功能分配三個(gè)方面。
              1995年 , DavidG arlan和MaryS haw修正定義:軟件體系結(jié)構(gòu)包括系統(tǒng)組件的結(jié)構(gòu)、組件的相互關(guān)系以及控制組件設(shè)計(jì)演化的原則和指導(dǎo)三個(gè)方面。
              1996 年 ,Kmchten指出,軟件體系結(jié)構(gòu)有四個(gè)角度:概念角度、模塊角度、運(yùn)行角度和代碼角度。概念角度描述系統(tǒng)的主要組件及它們之間的關(guān)系;模塊角度包含功能分解與層次結(jié)構(gòu);運(yùn)行角度描述一個(gè)系統(tǒng)的動(dòng)態(tài)結(jié)構(gòu);代碼角度描述各種代碼和庫(kù)函數(shù)在開發(fā)環(huán)境中的組織。
              1997年 , Bass,Cl ements和KazTnan提出:軟件體系結(jié)構(gòu)包括組件、組件的外部可見性以及相互的關(guān)系。其中軟件組件的外部可見性是指軟件組件提供的服務(wù)、性能、特性、共享資源使用等。該定義強(qiáng)調(diào)體系結(jié)構(gòu)分析需要從系統(tǒng)中抽象出用于分析、決策的信息。概括各種不同觀點(diǎn),可發(fā)現(xiàn)它們都支持這樣的觀點(diǎn),即:軟件體系結(jié)構(gòu)包括系統(tǒng)總體組織、全局控制、通信技術(shù)、同步、數(shù)據(jù)存取、設(shè)計(jì)元素的功能、組織、規(guī)模、性能、設(shè)計(jì)方案的選擇。





          本博客為學(xué)習(xí)交流用,凡未注明引用的均為本人作品,轉(zhuǎn)載請(qǐng)注明出處,如有版權(quán)問題請(qǐng)及時(shí)通知。由于博客時(shí)間倉(cāng)促,錯(cuò)誤之處敬請(qǐng)諒解,有任何意見可給我留言,愿共同學(xué)習(xí)進(jìn)步。
          posted on 2008-08-14 16:37 Jack.Wang 閱讀(3182) 評(píng)論(7)  編輯  收藏

          Feedback

          # re: 軟件架構(gòu)的六個(gè)定義 2008-08-15 22:09 長(zhǎng)江三峽
          kuikui  回復(fù)  更多評(píng)論
            

          # re: 軟件架構(gòu)的六個(gè)定義 2008-08-17 18:09 dell電腦
          架構(gòu)這個(gè)詞我一直覺得是從港臺(tái)移植過(guò)來(lái)的。  回復(fù)  更多評(píng)論
            

          # re: 軟件架構(gòu)的六個(gè)定義 2008-08-18 09:02 Jack.Wang
          一般學(xué)院派都叫體系結(jié)構(gòu),實(shí)用派都叫架構(gòu)。有人考究過(guò)這兩個(gè)用詞有啥不同,其實(shí)是一個(gè)意思!英文都叫 software architecture  回復(fù)  更多評(píng)論
            

          # re: 軟件架構(gòu)的六個(gè)定義 2008-08-19 13:10 rocket
          鄙視這種文章,泛泛而談,沒有一點(diǎn)實(shí)際意義。
          對(duì)于不同需求的系統(tǒng)資源會(huì)有不同的構(gòu)架體系。
          學(xué)校里就是喜歡搞這些浪費(fèi)時(shí)間浪費(fèi)精力浪費(fèi)資源的東西??!  回復(fù)  更多評(píng)論
            

          # re: 軟件架構(gòu)的六個(gè)定義 2008-08-19 13:26 ldd600
          一個(gè)名詞的概念,一個(gè)規(guī)范的定義都是很有意義的。  回復(fù)  更多評(píng)論
            

          # re: 軟件架構(gòu)的六個(gè)定義 2008-09-12 21:39 Jack.Wang
          所有軟件開發(fā)方法都要解決從需求到實(shí)現(xiàn)之間的轉(zhuǎn)換問題?;隗w系結(jié)構(gòu)的軟件開發(fā)包含以下幾個(gè)主要階段:
          1)通過(guò)對(duì)特定領(lǐng)域應(yīng)用軟件進(jìn)行分析,提煉出其中的穩(wěn)定需求和易變需求,建立可重用的領(lǐng)域模型。依據(jù)領(lǐng)域模型和用戶需求,產(chǎn)生應(yīng)用系統(tǒng)的需求規(guī)格說(shuō)明。
          2)在領(lǐng)域模型的基礎(chǔ)上,根據(jù)需求規(guī)格說(shuō)明提煉出特定領(lǐng)域的軟件體系結(jié)構(gòu)。這是系統(tǒng)的高層設(shè)計(jì),其目標(biāo)是通過(guò)重用領(lǐng)域體系結(jié)構(gòu)庫(kù)中已有的高質(zhì)量的體系結(jié)構(gòu),或生成最適合該用戶需求的體系結(jié)構(gòu),并加以提煉入庫(kù),以備將來(lái)的重用,并在此體系結(jié)構(gòu)的指導(dǎo)下,把系統(tǒng)逐步分解成相應(yīng)的組件和連接件,直至組件
          和連接件可以被設(shè)計(jì)模式和面向?qū)ο蠓椒ㄌ幚頌橹埂?
          3)這個(gè)階段主要解決具體組件和連接件的設(shè)計(jì)問題。通過(guò)重用可重用組件庫(kù)中模式、對(duì)象和其它可重用的設(shè)計(jì)件,或重新設(shè)計(jì)的組件,并提煉入庫(kù);然后通過(guò)具體的編程實(shí)現(xiàn),就可得到可運(yùn)行的程序  回復(fù)  更多評(píng)論
            

          # re: 軟件架構(gòu)的六個(gè)定義 2008-09-13 10:38 Maggie
          層級(jí)理論是構(gòu)建復(fù)雜軟件體系的基本原則
          諾貝爾獎(jiǎng)獲得者赫伯特A.西蒙曾論述到:“要構(gòu)造一門關(guān)于復(fù)雜系統(tǒng)的比較正規(guī)的理論,有一條路就是求助于層級(jí)理論??我們可以期望,在一個(gè)復(fù)雜性必然是從簡(jiǎn)單性進(jìn)化而來(lái)的世界中,復(fù)雜系統(tǒng)是層級(jí)結(jié)構(gòu)的”。對(duì)于軟件這樣復(fù)雜的人造事務(wù),發(fā)現(xiàn)層級(jí)和運(yùn)用層級(jí),是分析和構(gòu)建的基本原則。粗略地觀察一下軟件表述方式(語(yǔ)言)的發(fā)展:從穿孔紙帶(機(jī)器的語(yǔ)言)開始,首先是匯編語(yǔ)言,然后是高級(jí)語(yǔ)言,再往后有面向?qū)ο笳Z(yǔ)言和所謂第四代語(yǔ)言(FGL)出現(xiàn)??但每一代的語(yǔ)言并不是在“取代”前一代語(yǔ)言,而是用上一代語(yǔ)言來(lái)“寫”下一代語(yǔ)言。在這個(gè)自然的進(jìn)化過(guò)程中,西蒙所論述的復(fù)雜體系的層級(jí)特征清晰地出現(xiàn)了。進(jìn)一步看,在由簡(jiǎn)單到復(fù)雜的進(jìn)化道路上,軟件的體系結(jié)構(gòu)、軟件開發(fā)的體系結(jié)構(gòu)、軟件開發(fā)工具的體系結(jié)構(gòu)等等,都呈現(xiàn)出層級(jí)的特征。“好”的軟件體系具有更加清晰的層級(jí)  回復(fù)  更多評(píng)論
            


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 宜昌市| 汉源县| 东阳市| 丽江市| 大姚县| 昭平县| 陆河县| 托克托县| 法库县| 禹城市| 泊头市| 微山县| 扶风县| 河东区| 鹤壁市| 墨玉县| 新密市| 浙江省| 汉源县| 临高县| 商丘市| 中江县| 新化县| 仙居县| 双鸭山市| 安福县| 文水县| 民勤县| 湘潭市| 大洼县| 新龙县| 陵川县| 大渡口区| 黑河市| 双城市| 荔浦县| 合作市| 云霄县| 纳雍县| 镇安县| 崇礼县|