官术网_书友最值得收藏!

1.1 軟件架構流程

軟件架構(Software Architecture)是指一系列相關的抽象模式,用于指導大型軟件系統(tǒng)各個方面的設計。軟件架構可以看作是一個系統(tǒng)的“草圖”,軟件體系結(jié)構是構建計算機軟件的實踐基礎。軟件架構所描述的對象由直接的系統(tǒng)抽象組件構成。連接系統(tǒng)的各個組件需要做到將組件之間所存在的通信以比較明確且相對細致的方式進行描述。當處于相應的系統(tǒng)實現(xiàn)環(huán)節(jié)時,那么就會細化這些抽象組件成為現(xiàn)實的組件。

軟件架構為軟件系統(tǒng)提供了一個將結(jié)構、行為和屬性融合為一體的高級抽象,它由構件的描述、構件的相互作用、指導構件集成的模式和這些模式的約束組成。軟件架構不僅明確了軟件需求和軟件結(jié)構之間的對應關系,而且指定了整個軟件系統(tǒng)的組織和拓撲結(jié)構,并提供了一些設計決策的基本原理。

1.1.1 業(yè)務分析

業(yè)務分析是面向業(yè)務的一門分析學科,它通常可以采取邏輯分析和概念分析兩種方法論。邏輯分析是指進行部件解析;概念分析則是綜合性地從概念所處的上下文背景環(huán)境入手進行分析。簡單來說,業(yè)務分析主要針對目標行業(yè)的業(yè)務戰(zhàn)略、藍圖、業(yè)務功能及流程進行分析。在此期間,提出部分功能以信息化的手段進行處理,通過分析最終得出信息化要解決的問題。

業(yè)務分析作為一種實踐,通過戰(zhàn)略分析與利益相關者合作,定義業(yè)務需求,從而有助于促進組織變革。業(yè)務分析是一個識別業(yè)務需求并確定業(yè)務問題解決方案的研究學科。解決方案通常包括軟件系統(tǒng)開發(fā)組件,但也可能包括流程改進、組織變更、戰(zhàn)略規(guī)劃和政策制定。執(zhí)行此任務的人稱為業(yè)務分析師或BA。

以下是四種類型的業(yè)務分析。

(1)識別組織的業(yè)務需求和業(yè)務機會。

(2)業(yè)務模型分析。定義組織的政策和市場方法。

(3)流程設計。標準化組織的工作流。

(4)系統(tǒng)分析。技術系統(tǒng)的業(yè)務規(guī)則和要求的解釋。

1.1.2 解決方案架構

解決方案架構屬于“技術性”架構,它包括軟件、數(shù)據(jù)和IT基礎架構等各種技術元素。解決方案架構是解決系統(tǒng)問題的主要藍圖,其中涉及主要的工作步驟和采用的技術方法等。

解決方案,即提出解決問題的方案,主要用于解決已經(jīng)出現(xiàn)或可預期的問題、缺陷、需求等,同時確保解決方案能夠有效執(zhí)行。解決方案包括明確的對象、施行的范圍和領域。

解決方案是多個項目的集合,一個項目的輸出一般對應一個程序集。解決方案的輸出構成了一個應用程序,根據(jù)項目數(shù)量的不同,其可以是單個文件或多個文件。

1.1.3 系統(tǒng)功能設計

系統(tǒng)功能設計是根據(jù)系統(tǒng)分析的結(jié)果,運用系統(tǒng)科學的思想和方法,設計出可以最大限度滿足所有要求目標的過程。系統(tǒng)設計流程為:確定系統(tǒng)功能、設計方針和方法,提出理想系統(tǒng)并做出草案→通過收集信息對草案做出修正,形成可選設計方案→將系統(tǒng)分解為若干子系統(tǒng),進行子系統(tǒng)和總系統(tǒng)的詳細設計并評價→對系統(tǒng)方案進行論證并做出性能效果預測。

在進行系統(tǒng)設計時,必須把所要設計的對象系統(tǒng)和圍繞該對象系統(tǒng)的環(huán)境共同考慮。前者稱為內(nèi)部系統(tǒng),后者稱為外部系統(tǒng)。內(nèi)部系統(tǒng)和外部系統(tǒng)結(jié)合起來,稱為總體系統(tǒng)。內(nèi)部系統(tǒng)與外部系統(tǒng)之間存在著相互支持和相互制約的關系,因此,在設計系統(tǒng)時必須采用內(nèi)部設計與外部設計相結(jié)合的方式,從總體系統(tǒng)的功能、輸入、輸出、環(huán)境、程序、人為因素、物質(zhì)媒介各方面綜合考慮,設計出整體最優(yōu)的系統(tǒng)。進行系統(tǒng)設計應當采用分解、綜合與反饋的工作方法。無論多復雜的系統(tǒng),首先要分解為若干子系統(tǒng),分解可從結(jié)構要素、功能要求、時間序列、空間配置等方面進行,并將其特征和性能標準化,綜合成最優(yōu)子系統(tǒng),然后將最優(yōu)子系統(tǒng)進行總體設計,從而得到最優(yōu)系統(tǒng)。在這一過程中,從設計計劃開始到設計出滿意系統(tǒng)為止,都要進行分階段及總體綜合評價,并以此對各項工作進行修改和完善。整個設計階段是一個綜合性反饋過程。

系統(tǒng)設計通常應用兩種方法:一種是歸納法;另一種是演繹法。應用歸納法進行系統(tǒng)設計的過程是:首先盡可能地收集現(xiàn)有的和過去同類系統(tǒng)的設計資料,接著在對這些系統(tǒng)的設計、制造和運行狀況進行分析、研究的基礎上,根據(jù)所設計系統(tǒng)的功能要求進行多次選擇,然后對少數(shù)幾個同類系統(tǒng)做出相應修正,最終得到一個理想的系統(tǒng)。演繹法是一種公理化方法,即先從普遍的規(guī)則和原理出發(fā),根據(jù)設計人員的知識和經(jīng)驗,從具有一定功能的元素集合中選擇符合系統(tǒng)功能要求的多種元素,然后將這些元素按照一定形式進行組合,從而創(chuàng)造出具有所需功能的新系統(tǒng)。在系統(tǒng)設計的實踐中,這兩種方法往往是并用的。

1.1.4 系統(tǒng)架構設計

系統(tǒng)架構設計主要針對某一系統(tǒng)的支撐表達、層次化關系表達及功能、技術核心元素進行設計。

系統(tǒng)架構設計是指根據(jù)一個系統(tǒng)的“草圖”,描述構成系統(tǒng)的抽象組件及各個組件之間是如何進行通信的,這些組件在實現(xiàn)過程中會被細化為實際的組件,例如類或?qū)ο蟆T诿嫦驅(qū)ο箢I域中,組件之間的關聯(lián)通常是面向接口實現(xiàn)的。

“架構”一詞最早來自建筑學,原意為建筑物設計和建造的藝術。但是在軟件工程領域,軟件架構并不是一個新名詞,只是在早期的著作中人們常將軟件架構稱為軟件體系架構。

1.1.5 技術體系設計

技術體系設計主要針對系統(tǒng)的接口、數(shù)據(jù)存儲、技術路線、部署及實現(xiàn)抽象進行設計。

體系架構通常會建立一個共有的遠景。然而,僅有簡單的設定遠景是遠遠不夠的,必須與構建人員、客戶、其他相關人員進行溝通以達成共識。在構建過程中要維護該體系架構。體系架構可以定義為一種可行的、有條理的部件集合的結(jié)構化形式,該架構通過這些部件以一種精確的方式為用戶提供遠景支持。IT行業(yè)使用“體系架構”這一個概念的歷史不是很長,但它與其他行業(yè)在體系結(jié)構使用的方法上有相同的應用愿景,即體系架構的實現(xiàn)連接了具體的需求和遠景戰(zhàn)略規(guī)劃。

從IT規(guī)劃角度看,企業(yè)IT體系架構往往與軟件系統(tǒng)架構、應用程序架構混為一談。確切來講,企業(yè)IT體系架構的概念比軟件系統(tǒng)架構的概念更為寬泛,它指明了通過IT系統(tǒng)支持業(yè)務目標的方向。在企業(yè)IT體系架構中,其中較為關鍵的部分就是技術體系架構。之所以技術體系結(jié)構重要,是因為它對IT規(guī)劃的實現(xiàn)起著支撐作用。從本質(zhì)上講,技術體系架構定義了組織為了獲得商業(yè)利潤而構建與使用的信息技術平臺。

技術體系架構包含以下幾點內(nèi)容。

(1)描述和定義所交付業(yè)務系統(tǒng)采用的技術環(huán)境結(jié)構。

(2)建立和維護一套評價技術項目的核心技術標準。

(3)建立技術實現(xiàn)決策的框架。

(4)建立一個技術與業(yè)務系統(tǒng)有機結(jié)合的有效方法。

(5)為組織內(nèi)技術環(huán)境保持良好的發(fā)展態(tài)勢提供管理架構。

1.1.6 體系結(jié)構設計原則

體系結(jié)構設計原則有以下幾點。

1.合適性

合適性是指體系結(jié)構是否契合軟件的“功能性需求”和“非功能性需求”。高水平的設計師能設計出恰好滿足客戶需求的軟件,并且使開發(fā)方和客戶方均獲取到最大的利益,而不是不惜代價設計出最先進的軟件。

2.結(jié)構穩(wěn)定性

詳細設計階段的工作(如用戶界面設計、數(shù)據(jù)庫設計、模塊設計、數(shù)據(jù)結(jié)構與算法設計等)都是在體系結(jié)構確定后開展的,而編程和測試則是更靠后面的工作,因此體系結(jié)構應在一定的時間內(nèi)保持穩(wěn)定。

軟件開發(fā)過程中最怕的就是需求變化,但“需求會發(fā)生變化”是個無法逃避的現(xiàn)實。開發(fā)人員等希望在需求發(fā)生變化時最好只對軟件做些簡單的修改,而不需要改動軟件的體系結(jié)構。如果需求發(fā)生變化時,程序員必須去修改軟件的體系結(jié)構,那么這表示該軟件的系統(tǒng)設計是失敗的。

高水平的設計師應當能夠分析需求文檔,判斷出哪些需求是穩(wěn)定不變的、哪些需求是可能變動的。于是,便可以根據(jù)那些穩(wěn)定不變的需求設計體系結(jié)構,而根據(jù)那些可變的需求設計軟件的“可擴展性”。

3.可擴展性

可擴展性是指軟件擴展新功能的容易程度。可擴展性越好,表示軟件適應“變化”的能力越強。

4.可復用性

由經(jīng)驗可知,通常在一個新系統(tǒng)中,大部分的內(nèi)容是成熟的,只有小部分內(nèi)容是創(chuàng)新的。一般可以相信成熟的事物總是比較可靠的(即具有高質(zhì)量),而大量成熟的工作可以通過復用來快速實現(xiàn)(即具有高生產(chǎn)率)。

可復用性是設計出來的,而不是偶然碰到的。要使體系結(jié)構具有良好的可復用性,設計師應當分析應用域的共性問題,然后設計出一種通用的體系結(jié)構模式。這樣的體系結(jié)構才可以被復用。

主站蜘蛛池模板: 南昌县| 信丰县| 四平市| 盖州市| 界首市| 瑞金市| 石楼县| 广州市| 建湖县| 长垣县| 苏尼特左旗| 于都县| 鹤山市| 蕉岭县| 漠河县| 塔城市| 巫溪县| 望谟县| 赫章县| 彝良县| 南充市| 诏安县| 双辽市| 财经| 驻马店市| 金阳县| 滦南县| 鸡泽县| 浮梁县| 无为县| 涞水县| 应用必备| 通渭县| 浦东新区| 普兰县| 呼玛县| 余干县| 林州市| 济阳县| 乌兰察布市| 茌平县|