1. 程式人生 > >軟體架構設計---軟體架構文件化

軟體架構設計---軟體架構文件化

 軟體架構文件化  

    記錄軟體架構的活動就是架構編檔過程,也就是架構的文件化。它包含兩個方面:一是過程,編檔過程能促使架構設計師進一步思考,使得架構更加完善;二是結果,描述架構的文件將作為架構開發的成果,供專案關係人使用。

    1.架構文件的使用者

    架構文件的使用者是架構的專案關係人。編寫技術文件(尤其是軟體架構文件)最基本的原則之一是要從讀者的角度來編寫,易於編寫但很難閱讀的文件是不受歡迎的。

   架構的主要用途是充當專案關係人之間進行交流的工具,文件則促進了這種交流—— 架構專案關係人希望從架構文件中獲得自己所關心的架構資訊,如:系統實現人員希望文件提供關於開發活動的不能違反的限制及可利用的自由;測試人員和整合人員希望能從文件中得到必須組合在一起的各部分,並以此得到一個正確的測試黑箱;專案經理希望根據所確定的工作任務組建開發小組,規劃和分配專案資源。

    2.合理的編檔規則編寫架構文件和編寫其他文件一樣,必須遵守一些基本規則,這裡將任何軟體編檔(包括軟體架構編檔)的規則歸納為 7 條:

    (1)從讀者的角度編寫文件。

    (2)避免出現不必要的重複。

    (3)避免歧義。

    (4)使用標準結構。

    (5)記錄基本原理。

    (6)使文件保持更新,但更新頻率不要過高。

    (7)針對目標的適宜性對文件進行評審。

     3.檢視編檔 

    檢視是最重要的軟體架構編檔概念,本書將在 9.11 節中專門討論架構的檢視。檢視的概念為架構設計師提供了進行軟體架構編檔的基本原則。架構文件化就是將相關檢視編成文件,並補充多個檢視的關聯關係。

    檢視編檔的組織結構(內容及編排次序、大綱)雖然目前還沒有工業標準模板,研究者(Bachmann 等人)提出的文件組織結構包含 7 個部分,如圖 9-18 所示。

    (1)檢視概述:對系統進行概括性的描述,包含檢視的主要元素和元素間的關係(但並不包含所有元素和元素間的關

系,如:與錯誤處理相關的內容可以放在支援文件中)。主要表示可用多個形式:圖形、表格、文字,通常用圖形形式,使用UML 語言來描述。

    (2)元素目錄:對主要表示中所描述的元素及其關係進行詳細描述,包括:元素及其 屬性、關係及其屬性、元素介面、元素行為。

   這部分是文件的主要組成部分,其中要注意:

  • —對元素及其協同工作的行為進行編檔,如用UML 的順序圖和狀態圖描述行為;

  • —對介面進行編檔,圖9-19 說明了這部分的內容。

    (3)上下文圖:用圖形展示系統如何與其環境相關。

    (4)可變性指南:描述架構的可變化點,如在軟體產品線中,產品線架構通過變化,適用於多個系統,因此,文件中應包含這些變化點,如各系統要做出選擇的選項、做出選擇的時間。

    (5)架構背景:為架構的合理性提供足夠的、令人信服的論據。包括:基本原理、分析結果及設計中所反映的假定。

    (6)術語表:對文件中每個術語進行簡要說明。

    (7)其他資訊:描述不屬於架構方面的必要資訊,如管理資訊(創作者、配置控制資料及變更歷史)。 

    4.跨檢視文件

    軟體架構由多個檢視文件來反映,按前面所述的要求完成每個檢視的文件後,需要對這些文件進行一個整體的“打包”工作,這就是跨檢視文件。它包括如下內容:

    (1)文件有哪些內容,它們是如何組織的:檢視目錄(含哪些檢視);檢視模板(即前面描述的檢視文件,企業可以通過規範化來定義統一的、公共的檢視模板)。

    (2)架構概述:它描述系統的目的、檢視之間的關聯、元素表及索引、專案詞彙。

    (3)為什麼架構是這樣的(基本原理):跨檢視基本原理解釋了整體架構實際上是其需求的一個解決方案。即解釋了做出決策的原因、方案的限制、改變決策時的影響及意義。

    5.使用 UML

    UML已經成為對軟體架構進行文件化的事實上的標準表示法。在檢視文件的組織結構中,UML 主要用於表示元素或元素組的行為。

    6.軟體架構重構

    前面已論述了架構編檔,即在架構設計時完成編檔工作。但是還有另外一種情況:系統已經存在,但不知其架構,即架構沒有通過文件很好地保留下來(文件的缺失/失效)。如何維護這樣的系統並管理其演變?其關鍵就是要找到軟體架構,軟體架構重構就是研究解決這一問題的方法,它是反向工程之一。

    架構重構需要工具的支援,但任何一個工具或工具集對架構重構都是不夠的。因為:

  • 工具往往是面向特定語言的;

  • 資料提取工具經常返回不完整的或錯誤的結果,因此,應在多個工具提供的結果間進行補充、驗證和判斷;

  • 重構的目的(文件的用途)不同,決定了需要提取什麼資料,這反過來影響了工具的選擇。以此為原則,就是架構重構的工作臺方法,如 SEI 開發的 Dali。

     軟體架構重構由以下活動組成,這些活動以迭代方式進行,如圖 9-20 所示。

    (1)資訊提取(View Extraction)。可以使用各種工具進行資訊提取,如解析器、語法分析器等;可以利用 build 和 makefile 檔案中關於模組的依賴關係;可以從原始碼、編譯時製品和設計製品中提取靜態資訊;可以使用分析工具提取動態資訊。

    (2)資料庫構造(Database Construction):將提取的資訊轉化為標準的形式,並置於資料庫中。

    (3)檢視融合(View Fusion):將資料庫中的資訊組合在一起,生成該架構的一個內聚的檢視。

    (4)重構(Reconstruction):構建資料抽象和各種表示以生成架構表示,主要由兩個活動組成:視覺化和互動、模式定義和識別。最後生成需要的架構文件(Documentation)。

    上述過程中,架構是由重構人員通過對系統做出一組假定來獲得,為了最有效地生成這些假定並對其進行驗證,必須讓熟悉系統的人蔘與此項工作,包括過去參與系統開發的人員或現在正在對其進行維護的人員。

相關推薦

軟體架構設計---軟體架構

 軟體架構文件化       記錄軟體架構的活動就是架構編檔過程,也就是架構的文件化。它包含兩個方面:一是過程,編檔過程能促使架構設計師進一步思考,使得架構更加完善;二是結果,描述架構的文件將作為架構開發的成果,供專案關係人使用。     1.架構文件的使用者    

軟體工程之程式編碼④(原始碼“”:識別符號命名,註釋,程式視覺組織)

      編碼的目的是使用選定的程式設計語言,把模組的過程描述翻譯為用該語言書寫的源程式。源程式應該正確可靠、簡明清晰,而且具有較高的效率。軟體工程專案對程式碼編寫的要求,不僅僅是源程式語法上的正確性,也不只是源程式中沒有各種錯誤,還要求源程式具有良好的結構性和良好的

軟體架構設計---軟體架構風格

軟體架構風格     軟體架構設計的一個核心問題是能否使用重複的軟體架構模式,即能否達到架構級別的軟體重用。也就是說,能否在不同的軟體系統中,使用同一架構。基於這個目的,學者們開始研究和實踐軟體架構的風格和型別問題。     軟體架構風格是描述某一特定應用領域中系統組織方

軟體架構設計---軟體架構檢視

 軟體架構檢視    從軟體架構本身的特點出發討論了架構建模及與特定應用領域密切相關的架構風格。本節將從對架構編檔的角度對軟體架構檢視及其風格進行討論。 1 軟體檢視的分類     現代軟體系統非常複雜,通常在某個具體的時間內只需將注意力集中在某幾個結構上(就像看病時,

軟體架構設計---軟體架構概述

     像學寫文章一樣,在學會字、詞、句之後,就應上升到段落,就應追求文章的“佈局謀篇”,這就是架構。通俗地講,軟體架構設計就是軟體系統的“佈局謀篇”。     人們在軟體工程實踐中,逐步認識到了軟體架構的重要性,從而開闢了一個嶄新的研究領域。軟體架構的研究內容主要涉及軟

軟體架構設計---軟體架構評估

軟體架構評估     軟體架構評估是在對架構分析、評估的基礎上,對架構策略的選取進行決策。它也可以靈活地運用於對軟體架構進行評審等工作中。 1 軟體架構評估的方法 業界已開發出多種軟體架構評估的方法,按基於的技術手段來看,可以分為三類:基於調查問卷或檢查表的方式、基於場

[基礎架構]PeopleSoft Tuxedo 重要說明

說明 src 完成 ltp 庫文件 數據庫服務 可執行文件 必須 left 我們都知道PeopleSoft是由幾個不同的服務組成的,他們在PeopleSoft體系結構中扮演著自己的角色。這些服務具有不同的文件結構並包含重要的可執行文件和配置文件。 以下是Peoplesof

linux運維、架構之路-linux屬性

增加 軟連接 ext4 源文件 linux文件屬性 屬性 sys dump 剩余空間 1、查看文件屬性 ls -lhi 文件屬性詳細說明 1. 第一列: inode索引節點編號 2. 第二列:文件類型及權限 3. 第三列:硬鏈接數 4. 第四列:

Android Studio指定引用jnilibs 特定CPU架構的so庫

文件 jni adl 性能 沒有 1.2 x86_64 apk andro 稍微大一些的項目都會用到第三方庫,所以不可避免的會有針對不同手機cpu架構的.so庫文件 ‘x86‘, ‘x86_64‘, ‘mips‘, ‘mips64‘ ‘armeabi‘ ,‘armeab

《企業級應用架構設計》3.軟設計原則

原則 包含 設計 高內聚低耦合 選擇 註意 soc cnblogs 說明 3.1.軟件設計通用原則 3.1.1 內聚和耦合 內聚:建議創建專註類,少量方法表示邏輯操作。 耦合:衡量兩個軟件模塊(如類)之間的依賴程度。例如A類和B類,A類改變,必須改變B,說明它們耦合。 3.

軟體“產品”開發需要哪些

在專案開發過程中,應該按要求編寫好十三種文件,文件編制要求具有針對性、  精確性、清晰性、完整性、靈活性、可追溯性。    ◇   可行性分析報告:      說明該軟體開發專案的實現在技術上、經濟上和社會因素上的可行性,評述  為了合理地達到開發目標可供選擇的各種可能實施

軟體工程】——軟工(GB8567--88)

一.簡介 軟體工程是一門研究用工程化方法構建和維護有效的、實用的和高質量的軟體的學科。它涉及程式設計語言、資料庫、軟體開發工具、系統平臺、標準、設計模式等方面。 軟工中主要的六階段:制定計劃,需求分

架構設計雜談001-軟開發人員的成長之路

設計 ade 咨詢顧問 路線 https 高級 token 雜談 lang 軟件開發人員的成長路線-1 從技術方面來看,基本上就三條主要路線: 1、純技術路線: 高級開發人員 →系統設計人員→架構師→資深技術專家/資深架構師 2、技術管理路線: 研發型技術管理高級開發人員→

教程、API、軟體開發工具包、

設計和程式碼。構建和測試。執行和除錯。 開始使用適用於 Java 的 AWS 開發工具包中的 Java 庫、程式碼示例和文件構建軟體。通過 AWS Toolkit for Eclipse,Eclipse Java IDE 使用者可以輕鬆使用軟體開發工具包開始工作。

軟體開發過程中的總結

(一)、在系統軟體的開發前期,需要的文件有: 1.系統開發立項報告,需要包含的:   (a).專案的定位及價值   (b).開發中的主要難點及可能出現的問題   (c).時間規劃及人員安排 2.系統設計原理,需要包含:  (a).總體框架  (b).實現原理  (c).存

[LeetCode] Design In-Memory File System 設計內存系統

format directory ring orm turn original all lee example Design an in-memory file system to simulate the following functions: ls: Give

數字資產交易平臺開發的架構設計理論架構

應用 是什麽 模型 什麽 api 是不是 安全性 有理 選擇 數字資產交易平臺開發的架構設計理論架構架構和設計,這是整個系統的靈魂步驟。一個架構不過關,到後面的問題可能是毀滅性的(相同業務量,相近的硬件,你的系統只跑兩年就很卡,人家跑五年沒事,很可能就是架構沒做好);系統設

單詞統計:對程序設計語言源統計字符數、單詞數、行數,統計結果以指定格式輸出到默認

let 單詞 百度 cli info class bsp push lan  項目地址:https://gitee.com/loyal888/WordCount 一.工具篇 1.1 IDEA+gitee+git  方便push和增加開發效率,自從用了idea

CAD軟體全套、PS軟體、PDF轉換軟體、3D設計軟體、草圖設計軟體、PR設計軟體、AE設計軟體、CDR設計軟體設計軟體彙總

           在網上下載設計軟體要麼有毒,要麼下載不了,要麼廣告連篇,所以,我做了一個彙總,學設計和應用都必不可少的一些軟體: 連結地址:點選進入微塵軟體分享     &nbs

SpringBoot 使用 swagger 實現Rest Api

swagger 允許使用者在一個html5 web 頁面中,對API 進行文件化和互動 優點: 功能豐富 :支援多種註解,自動生成介面文件介面,支援在介面測試API介面功能; 及時更新 :開發過程中花一點寫註釋的時間,就可以及時的更新API文件,省心省力; 整合簡單 :通過新增pom依賴