導航:首頁 > 工程技術 > 軟體工程系統架構

軟體工程系統架構

發布時間:2021-08-16 17:06:00

⑴ 什麼是應用架構

應用架構,系統架構,軟體架構三者含義基本一致。
從1985年開始,在過去的二十多年裡,關於什麼是「軟體架構(Software Architecture)」已經基本得到了軟體工程領域普遍的認同。其中一些重要的定義介紹如下。

「軟體架構代表了系統的組織結構。這包括將系統分解為不同的部分、界定它們之間的連接、確定它們之間的交換機制、並且為後續的設計提供指導性的原則」 ---出自UML的著名原創者James Rumbaugh、Grady Booch 及 Ivar Jacobson (即架構界俗稱的「三個火槍手」)。

「軟體架構表述了一個系統的一個或一系列組織結構。這包擴了軟體構件、這些構件的外部可見特徵,以及這些構件之間的關系。」 ---出自Bass Len、Paul Clements、Rick Kazman 在2003年出版的經典的《架構的實踐》一書。

IEEE在2004年4月公布的「IEEE Standard 1471」中,提出了IEEE自己對軟體架構的定義:「軟體系統架構是根據具有參考意義的實踐而定義出來的。主要表述了有一個系統的基本組織結構、基本組成構件和互相的關系,以及構件於外部環境間的關系。同時,軟體系統架構為後續的設計和架構演化提供了指導性原則」 。IEEE Standard 1471也澄清了架構領域的許多其他感念,例如架構描述、架構標准等。

可以看出,上述諸多不同用詞的「軟體架構」的定義,其實都表達了近乎一致的思想。我們可以引用Frank Buschmann 的經典論述來定義一個架構師:「一個軟體系統的架構師是一個要擔負起軟體系統的定義、架構的實現、系統的實施、系統架構演化和系統演化的人。換句話說,是一個要為系統整個生命周期負責的人 。」

但有意思的是,軟體工程領域基本上沒有一致的有關「軟體架構師(Software Architecture)」的定義。很多公司也沒有這樣的職位;有些公司雖然有這樣的職位,但卻說不清楚這個職位所要求的技能和工作職責;另外但我們對比不同公司關於該職位的描述時,也能看到其中的不一致,例如Microsoft公司與Motorola公司對架夠師的職位表述就很不一樣。更常見的是這些職位描述嚴重混淆了很多概念,例如:當年的Rational公司就混淆了「軟體架構師」與「高級程序員」的概念。

這樣的現象,無論是在國內還是國外都很相似。這也導致了我們可以見到大量的不同職位名稱出現在軟體工程行業中的觀象,例如有解決方案架構師、系統架構師、軟體架構師、企業架構師、總工、首席架構師、Java架構師、微軟架構師及.NET架構師。

⑵ 什麼是軟體架構

當你去了解一個東東的時候,第一步要做的,就應該去知道這個東東的定義,對於軟體架構也是如此,經過網上查詢和書籍的幫助,我大概理清了一個輪廓。
軟體行業是一個熱衷於製造‘名詞’的行業,如果退回15年,估計沒幾個人知道‘軟體架構’是什麼,在上個世紀80年代,隨著軟體開發的規模不斷擴大,軟體開發成為一個行業,初期,隨之而來的是越來越多的軟體項目的失敗,造成項目失敗的原因很多,但主要集中在開發過程,所以軟體工程應運而生,CMMI等流程標准也是一茬接著一茬的冒個不停。
在軟體工程初具規模的時候,軟體開發還是以數據結構+演算法的形式存在,進入20世紀最後10年,隨著面向對象技術、設計模式等在開發過程中的成功應用,軟體架構也走進了大家的視野。
軟體架構在定義上分為‘組成派’和‘決策派’兩大陣營,分別描述如下:
’組成派‘認為軟體架構是將系統描述成計算組件及組件之間的交互
。它有兩個非常明顯的特點:
關注架構實踐的客體——軟體,以軟體本身作為描述對象。
分析了軟體的組成,說明軟體不是一個‘原子’意義上的整體,而是有不同的部分經過特定的介面進行連接組成的一個整體,這對軟體開發來說很重要。
‘決策派’認為
軟體架構包含了一系列的決策
,主要包括:
軟體系統的組織
選擇組成系統的結構元素和它們之間的介面,以及當這些元素相互協作時所體現的行為
用於指導這個系統組織的架構風格:這些元素以及它們的介面、協作和組合
軟體架構並不僅僅關注軟體本身的結構和行為,還注重其他特性:使用、功能性、性能、彈性、重用、可理解、經濟以及技術的限制和權衡等。
‘決策派’有以下兩個顯著的特點:
關注軟體架構中的實體——人,以人的決策為描述對象。
歸納了軟體架構決策的類型,指出架構決策不僅包括關於軟體系統的組織、元素、子系統和架構風格等幾類決策,還包括關於眾多非功能性需求的決策。
按照‘組成派’的觀點,軟體架構關注的是軟體整體的分割和交互,之所以分割,是因為不同的部分在邏輯或物理上相對獨立,通過‘分而治之’的原則進行分割可以更好的理解整個系統,把握用戶的需求,但是雖然整個軟體可以分割成多個模塊或子系統,但是模塊和子系統之間的通信和交互也是很重要的,我想按照這種觀點,架構師的主要任務是將軟體分割成不同的模塊,並定義模塊之間的介面。
按照‘決策派’的觀點,軟體是一個在很多限制下產生的產品,這些限制包括用戶和技術兩方面,用戶方麵包括功能需求、性能需求、硬體需求等,技術方麵包括技術選擇、可擴展性、可重用性、可維護性等。我想按照這中觀點,架構師的主要任務就是作出上述個各種限製作出選擇或決策。《軟體架構設計》 溫昱

⑶ 請問軟體架構與軟體體系結構有什麼關系

軟體架構:整個軟體系統的各個模塊之間的結構設計,是軟體工程范疇的概念,就象設計一棟房子由幾個什麼樣的板塊組成一樣。
軟體體系結構:是軟體編程風格範疇的一個通俗概念,比如說用C++、PoworBuild、Delphi等來進行軟體設計是面向對象的編程語言體系結構,而Basic、C、Foxbase的軟體體系結構特點是面向任務流程的(不是面向對象的編程語言)。

⑷ 什麼是軟體系統架構設計

「架構」一詞最早來自建築學,原意為建築物設計和建造的藝術。但是在軟體工程領域,軟體架構不是一個新名詞,只是在早期的著作中人們將軟體架構稱為軟體體系架構。這就是架構的概念。所謂架構,就是人們對一個結構內的元素及元素間關系的一種主觀影射的產物。
系統架構的主要任務是界定系統級的功能與非功能要求、規劃要設計的整體系統的特徵、規劃並設計實現系統級的各項要求的手段,同時利用各種學科技術完成子系統的結構構建。
在系統架構中,由於對軟體越來越深入的依賴,軟體架構的任務也體現出重要的作用。而且系統架構與軟體架構是緊密聯系和相互依賴的。
1997年,Eberhadrt Rechtin 與MarkW Maier 在其論著中,為計算機科學總結了系統架構方面的實踐成果,從而奠定了系統科學和系統架構在計算機科學中的基石:
無論何種系統架構應用領域,目的都是一樣的,即完整地、高一致性的、平衡各種利弊的、有技術和市場前瞻性的設計系統和實施系統。

⑸ 軟體工程中總體設計階段中的系統架構是什麼,架構圖是指功能模塊圖嗎各位能手快快回答,江湖救急

網上訂餐系統的總體設計和詳細設計報告我幫助 給撰稿啊~原創的.

⑹ 請問「軟體工程師」與「系統架構師」還有「項目經理」這三個職位有什麼區別,分別要求要什麼

系統架構設計師考試合格人員能夠根據系統需求規格說明書,結合應用領域和技術發展的實際情況,考慮有關約束條件,設計正確、合理的軟體架構,確保系統架構具有良好的特性;能夠對項目的系統架構進行描述、分析、設計與評估;能夠按照相關標准編寫相應的設計文檔;能夠與系統分析師、項目管理師相互協作、配合工作;具有高級工程師的實際工作能力和業務水平。
軟體設計師考試的合格人員能根據軟體開發項目管理和軟體工程的要求,按照系統總體設計規格說明書進行軟體設計,編寫程序設計規格說明書等相應的文檔;組織和指導程序員編寫、調試程序,並對軟體進行優化和集成測試,開發出符合系統總體設計要求的高質量軟體;具有工程師的實際工作能力和業務水平。
系統集成項目經理考試合格人員能夠掌握系統集成項目管理的知識體系;具備管理系統集成項目的能力;能根據需求組織制訂可行的項目管理計劃;能夠組織項目實施,對項目進行監控並能根據實際情況及時做出調整,系統地監督項目實施過程的績效,保證項目在一定的約束條件下達到既定的項目目標;能分析和評估項目管理計劃和成果;能對項目進行風險管理,制定並適時執行風險應對措施;能協調系統集成項目所涉及的相關單位和人員;具有工程師的實際工作能力和業務水平。

⑺ 軟體工程中軟體結構圖和層次圖的異同

兩者之間沒有區別。兩者指的均是軟體構架,為軟體系統的草圖。

軟體工程中軟體結構圖和層次圖均是為了反映軟體系統中組件之間相互關系和約束的體系結構設計圖,屬於一系列相關的抽象模式,用於指導大型軟體系統各個方面的設計。

軟體結構圖(又被叫做軟體構架)一般通過分層次或分時間段等方式說明體系結構的各個組成部分的組合關系。描述的對象是直接構成系統的抽象組件,各個組件之間的連接則明確和相對細致地描述組件之間的通訊關系。

(7)軟體工程系統架構擴展閱讀:

其他介紹:

軟體結構圖包括架構元件、聯結器、任務流。所謂架構元素,也就是組成系統的核心磚瓦,而聯結器則描述這些元件之間通訊的路徑、通訊的機制、通訊的預期結果,任務流則描述系統如何使用這些元件和聯結器完成某一項需求。

通過一個軟體結構圖建造一個系統所作出的最高層次的、以後難以更改的,商業的和技術的決定。在建造一個系統之前會有很多的重要決定需要事先作出,而一旦系統開始進行詳細設計甚至建造,這些決定就很難更改甚至無法更改。顯然,這樣的決定必定是有關系統設計成敗的最重要決定,必須經過非常慎重的研究和考察。

⑻ 軟體工程中的主要體系結構有哪些,並說明區別

20世紀60年代的軟體危機使得人們開始重視軟體工程的研究。起初,人們把軟體設計的重點放在數據結構和演算法的選擇上,然而隨著軟體系統規模越來越大,對總體的系統結構設計和規格說明變得異常重要。隨著軟體危機程度的加劇,軟體體系結構(software architecture)這一概念應運而生。軟體體系結構著眼於軟體系統的全局組織形式,在較高層次上把握系統各部分之間的內在聯系,將軟體開發的焦點從成百上千的代碼上轉移到粒度較大的體系結構元素及其交互的設計上。與傳統軟體技術相比,軟體體系結構理論的提出不僅有利於解決軟體系統日益增加的規模和復雜度的問題,有利於構件的重用,也有利於軟體生產率的提高。面向方面軟體開發(AOSD)認為系統是由核心關注點(corn concern)和橫切關注點(cross-cutting concern)有機地交織在一起而形成的。核心關注點是軟體要實現的主要功能和目標,橫切關注點是那些與核心關注點之間有橫切作用的關注點,如系統日誌、事務處理和許可權驗證等。AOSD通過分離系統的橫切關注點和核心關注點,使得系統的設計和維護變得容易很多。
Extremara大學的Navasa等人[1]在2002年提出了將面向方面軟體開發技術引入到軟體體系結構的設計中,稱之為面向方面軟體體系結構(aspect oriented software architecture,AO-SA),這樣能夠結合兩者的優點,但是並沒有給出構建面向方面軟體體系結構的詳細方法。
盡管目前對於面向方面軟體體系結構這個概念尚未形成統一的認識,但是一般認為面向方面軟體體系結構在傳統軟體體系結構基礎上增加了方面構件(aspect component)這一新的構成單元,通過方面構件來封裝系統的橫切關注點。目前國內外對於面向方面軟體體系模型的研究還相對較少,對它的構成單元模型的研究更少,通常只關注方面構件這一構成單元。方面構件最早是由Lieberherr等人[2]提出的,它是在自適應可插拔構件(adaptive plug and play component,APPC)基礎之上通過引入面向方面編程(AOP)思想擴展一個可更改的介面而形成的,但它關於請求介面和服務介面的定義很模糊,未能給出一個清晰的方面構件模型。Pawlak等人[3]提出了一個面向方面的框架,該框架主要包含了一個方面構件模型———Java方面構件(Java aspect component,JAC),但該方面構件模型僅包含了切點(pointcut),並把AOP中裝備(advice)集成到了切點的表達式中,它主要從實現的角度進行了闡述,並沒有給出詳細的方面構件模型。本文沒有隻關注面向方面軟體體系結構中方面構件這一構成單元模型,還詳細分析了它的另外兩個構成單元,即構件和連接件,因為面向方面軟體體系結構各部分之間是相互關聯的。
1面向方面軟體體系結構相關概念
面向方面軟體體系結構涉及諸多概念,以下將分別介紹。軟體體系結構在軟體工程領域有著廣泛的影響,但當前仍未形成一個統一的、標準的定義。目前國內外普遍認可的看法是軟體體系結構包含構件、連接件和約束[4]。其中約束描述了體系結構配置和拓撲的要求,確定了體系結構的構件與連接件的連接關系。這樣就可以把軟體體系結構寫成
軟體體系結構(software architecture)=構件(components)+
連接件(connectors)+約束(constraints)
構件是軟體體系結構的基本元素之一。一般認為,構件是指具有一定功能、可明確辨識的軟體單位,並且具備語義完整、語法正確、有可重用價值的特點,然而目前對於構件的具體結構及構成並沒有一個統一的標准[5],而且一些主要的構件技術也沒有使用相同的構件類型。另外,當前被廣泛接受的構件定義並不包含具體的軟體構件模型(software component model)。例如,Szyperski等人[6]給出了軟體構件一個很有名的定義:軟體構件是一個僅帶特定契約介面和顯式語境依賴的結構單位,它可以獨立部署,易於第三方整合。但是關於軟體構件模型有一個被普遍接受的觀點是:軟體構件是一個具有服務提供和服務請求功能的軟體單元[7]。
連接件是軟體體系結構另一個基本的構成元素,是用來建立構件間交互以及支配這些交互規則的構造模塊。連接件最先是由Shaw[8]提出來的,她建議把連接件作為軟體體系結構中第一類實體,用來表示普通構件之間的交互關系。目前對於連接件尚未形成統一的認識,盡管在軟體體系結構中強調了連接件存在的必要性,但是關於連接件模型的研究還很少,連接件的實際應用還不成熟。
面向方面軟體體系結構在傳統軟體體系結構的基礎上增加了方面構件單元。通常認為,方面構件是封裝了系統橫切關注點的一類特殊的構件。目前關於方面構件模型的研究還處於起步階段。
2面向方面軟體體系結構模型
由於傳統軟體體系結構模型包含構件、連接件和約束,而面向方面軟體體系結構是在傳統軟體體系結構的基礎之上擴展了方面構件,所以面向方面軟體體系模型結構包含構件、連接件、方面構件和約束。其中約束描述了面向方面體系結構配置和拓撲的要求,確定了體系結構的構件、連接件和方面構件之間的連接關系,而構件、連接件、方面構件是它的三個基本的構成單元。以下對這三個構成單元的模型進行詳細的設計。

⑼ 軟體構架師與軟體工程師的區別

軟體架構師是軟體行業中一種新興職業,工作職責是在一個軟體項目開發過程中,將客戶的需求轉換為規范的開發計劃及文本,並制定這個項目的總體架構,指導整個開發團隊完成這個計劃。主導系統全局分析設計和實施、負責軟體構架和關鍵技術決策的人員
軟體工程師是從事軟體開發相關工作的人員的統稱。它是一個廣義的概念,包括軟體設計人員、軟體架構人員、軟體工程管理人員、程序員等一系列崗位,工作內容都與軟體開發生產相關。

⑽ 什麼是系統架構設計

簡單一點,系統架構設計就是一個系統的草圖,描述了構成系統的抽象組件,以及各個組件之間的是如何進行通訊的,這些組件在實現過程中可以被細化為實際的組件比如類或者對象。在面向對象領域中,組件之間的聯通通常面向於介面實現的。

是人們對一個結構內的元素及元素間關系的一種主觀映射的產物。架構設計是一系列相關的抽象模式,用於指導大型軟體系統各個方面的設計。

「架構」一詞最早來自建築學,原意為建築物設計和建造的藝術。但是在軟體工程領域,軟體架構不是一個新名詞,只是在早期的著作中人們將軟體架構稱為軟體體系架構。這就是架構的概念。所謂架構,就是人們對一個結構內的元素及元素間關系的一種主觀影射的產物。

無論何種系統架構應用領域,目的都是一樣的,即完整地、高一致性的、平衡各種利弊的、有技術和市場前瞻性的設計系統和實施系統。

(10)軟體工程系統架構擴展閱讀

系統架構的主要任務是界定系統級的功能與非功能要求、規劃要設計的整體系統的特徵、規劃並設計實現系統級的各項要求的手段,同時利用各種學科技術完成子系統的結構構建。

在系統架構中,由於對軟體越來越深入的依賴,軟體架構的任務也體現出重要的作用。而且系統架構與軟體架構是緊密聯系和相互依賴的。

1997年,Eberhadrt Rechtin 與MarkW Maier 在其論著中,為計算機科學總結了系統架構方面的實踐成果,從而奠定了系統科學和系統架構在計算機科學中的基石。

與軟體工程系統架構相關的資料

熱點內容
蘇州假山景觀設計工程 瀏覽:862
哈爾濱工程造價招聘 瀏覽:937
建築工程土建勞務分包 瀏覽:632
道路監理工程師 瀏覽:476
安徽工程大學機電學院在本校嗎 瀏覽:370
河北工程大學保研率多少 瀏覽:287
有學質量工程師的書嗎 瀏覽:479
康樂縣建築工程公司 瀏覽:569
助理工程師二級 瀏覽:872
注冊安全工程師初級考試時間 瀏覽:901
食品科學與工程專業課題研究 瀏覽:881
工程造價圖紙建模 瀏覽:888
遼寧恆潤建設工程有限公司 瀏覽:93
實行施工總承包的工程項目 瀏覽:737
道路橋梁工程技術興趣愛好 瀏覽:316
密歇根理工大學電氣工程專業 瀏覽:388
廣西交通工程質量監督站 瀏覽:31
四川大學材料科學與工程學院考研參考書目 瀏覽:858
有線電視工程建設管理條例 瀏覽:270
雲南工程監理公司排名 瀏覽:673