軟件結構化設計之概要設計


什么是概要設計?

又叫總體設計。即對全局問題的設計,也就是設計系統總的處理方案。軟件工程總體設計包括:計算機配置設計、系統模塊結構設計、數據庫和文件設計、代碼設計以及系統可靠性與內部控制設計等內容。軟件功能分解屬於下列軟件開發中的總體設計階段。

完成大型工程體系的總體方案和總體技術途徑的設計過程。在一般工程設計中總體設計則指按計划任務書的內容進行概略計算,附以必要的文字說明和圖紙設計,又稱初步設計。對於工程系統工程總體設計是指前一種含義。總體設計是工程項目開發過程中的一個重要階段。

研制大型工程體系的基本問題是,怎樣把比較籠統的初始研制要求逐步地變為成千上萬個研制參加者的具體工作,以及怎樣把這些工作最終綜合成一個技術上先進、經濟上合算、研制周期短、能協調運轉的實際系統,並使這個系統成為它所從屬的更大系統的有效組成部分。1954年美國最早出現為導彈研制計划提供這種服務的系統工程公司──拉莫·沃爾德里奇公司。50年代末中國開始研制人造衛星和運載火箭時,也建立了這樣的機構,並稱之為總體設計部。總體設計部設計的是系統的總體,系統的總體方案和實現它的技術途徑,並通過可行性研究和技術經濟論證,確保項目在規划、設計、制造和運行各個階段,總體性能最優。這樣可以避免因規划、研制和運用的缺陷造成人力、物力和財力的浪費。

軟件工程的概要設計就是把系統的功能需求分配到一個特定的軟件系統結構中。基本目的就是回答“概括地說,系統應該如何實現”這個問題。總體設計階段的另一項重要任務是設計軟件的結構,也就是要確定系統中每個程序是由哪些模塊組成的,以及這些模塊相互間的關系。

概要設計的主要任務是把需求分析得到的系統擴展用例圖轉換為軟件結構和數據結構。設計軟件結構的具體任務是:將一個復雜系統按功能進行模塊划分、建立模塊的層次結構及調用關系、確定模塊間的接口及人機界面等。數據結構設計包括數據特征的描述、確定數據的結構特性、以及數據庫的設計。顯然,概要設計建立的是目標系統的邏輯模型,與計算機無關。

概要設計基本原理

 

概要設計過程和任務

設計過程

概要設計基本過程如下圖 所示,它主要包括三個方面的設計。首先是系統構架設計,用 於定義組成系統的子系統,以及對子系統的控制、子系統之間的通信和數據環境等;然后是軟 件結構和數據結構的設計,用於定義構造子系統的功能模塊、模塊接口、模塊之間的調用與返 回關系,以及數據結構、數據庫結構等。

 

概要設計要求建立在需求分析基礎之上,軟件需求文檔是軟件概要設計的前提條件。只有這樣,才能使得開發出來的軟件系統最大限度地滿足用戶的應用需要。 實際上,概要設計的過程也就是將需求分析之中產生的功能模型、數據模型和行為模型等 分析結論進行轉換,由此產生設計結論的過程。在從分析向設計的轉換過程中,概要設計能夠 產生出有關軟件的系統構架、軟件結構和數據結構等設計模型來。這些結論將被寫進概要設計 文檔中,作為后期詳細設計的基本依據,能夠為后面的詳細設計、程序編碼提供技術定位。 需要注意的是,概要設計所能夠獲得的還只是有關軟件系統的抽象表達式,需要專心考慮 的是軟件系統的基本結構,至於軟件系統的內部實現細節如何,則被放到以后詳細設計中去解 決。例如模塊,概要設計中的模塊只是一個外殼,雖然它有確定的功能邊界,並提供了通信的 接口定義,但模塊內部還基本上是空的,諸多具體的功能加工細節則必須等到詳細設計完成以 后才能確定下來。因此,在有關軟件設計的全部工作中,概要設計所提供的並不是最終設計藍 圖,而只是一份具有設計價值的具體實施方案與策略,用於把握系統的整體布局。盡管概要設 計並不涉及系統內部實現細節,但它所產生的實施方案與策略將會最終影響軟件實現的成功與 否,並影響到今后軟件系統維護的難易程度。

設計任務

概要設計階段的任務既包括技術方面的,也包括管理方面的,具體說來,主要有以下幾個方面:

(1)制定規范

具有一定規模的軟件項目總是需要通過團隊形式實施開發,例如,組成一個或幾個開發小組 來承擔對軟件系統的開發任務。為了適應團隊式開發的需要,在進入軟件開發階段之后,首先應 該為軟件開發團隊制定在設計時應該共同遵守的規范,以便協調與規范團隊內各成員的工作。

概要設計時需要制定的規范或標准包括:

      a.需要采用的管理規則,例如操作流程、交流方式、工作紀律等。

      b.設計文檔的編制標准,包括文檔體系、文檔格式、圖表樣式等。

      c.信息編碼形式,硬件、操作系統的接口規約,命名規則等。

      d.設計目標、設計原則。

(2)系統構架設計

系統構架設計就是根據系統的需求框架,確定系統的基本結構,以獲得有關系統創建的總 體方案。其主要設計內容包括:

     a.根據系統業務需求,將系統分解成諸多具有獨立任務的子系統。

        b.分析子系統之間的通信,確定子系統的外部接口。

     c.分析系統的應用特點、技術特點以及項目資金情況,確定系統的硬件環境、軟件環境、 網絡環境和數據環境等。

     d.根據系統整體邏輯構造與應用需要,對系統進行整體物理部署與優化。 很顯然,當系統構架被設計完成之后,軟件項目就可按每個具有獨立工作特征的子系統為 單位進行任務分解了,由此可以將一個大的軟件項目分解成許多小的軟件子項目。

(3)軟件結構設計

軟件結構設計是在系統構架確定以后,對組成系統的各個子系統的結構設計。例如,將系統進一步分解為諸多功能模塊,並考慮如何通過這些模塊來構造軟件。

軟件結構設計主要內容包括:

    a.確定構造子系統的模塊元素。

    b.根據軟件需求定義每個模塊的功能。

    c.定義模塊接口與設計模塊接口數據結構。

    d.確定模塊之間的調用與返回關系。

    e.評估軟件結構質量,進行結構優化

(4)公共數據結構設計

概要設計中還需要確定那些將被許多模塊共同使用的公共數據的構造。例如,公共變量、 數據文件以及數據庫中數據等,可以將這些數據看作為系統的公共數據環境。 對公共數據的設計包括:

    a.公共數據變量的數據結構與作用范圍。

    b.輸入、輸出文件的結構。

    c.數據庫中的表結構、視圖結構以及數據完整性等。

(5)安全性設計

系統安全性設計包括:操作權限管理設計、操作日志管理設計、文件與數據加密設計以及 特定功能的操作校驗設計等。概要設計需要對以上方面的問題作出專門的說明,並制定出相應 的處理規則。 例如操作權限,假如應用系統需要具有權限分級管理的功能,則概要設計就必須對權限分級管理中所涉及的分級層數、權限范圍、授權步驟以及用戶賬號存儲方式等,從技術角度作出專門的安排。

(6)故障處理設計

軟件系統工作過程中難免出現故障,概要設計時需要對各種可能出現的來自於軟件、硬件 以及網絡通信方面的故障作出專門考慮。例如,提供備用設備、設置出錯處理模塊、設置數據備份模塊等。

(7)可維護性設計

軟件系統在投入使用以后必將面臨維護,如改正軟件錯誤、擴充軟件功能等。對此,概要設計需要作出專門安排,以方便日后的維護。例如,在軟件中設置用於系統檢測維護的專用模 塊;預計今后需要進行功能擴充的模塊,並對這些接口進行專門定義。

(8)編寫文檔

概要設計階段需要編寫的文檔包括:概要設計說明書、數據庫設計說明書、用戶操作手冊。 此外,還應該制定出有關測試的初步計划。 上述文檔中,概要設計說明書是概要設計階段必須產生的基本文檔,涉及系統目標、系統 構架、軟件結構、數據結構、運行控制、出錯處理、安全機制等諸多方面的設計說明。

(9)概要設計評審

在諸多概要設計任務完成之后,應當組織對概要設計的評審。 概要設計評審內容主要包括:

    a.需求確認:確認所設計的軟件是否已覆蓋了所有已確定的軟件需求。

    b.接口確認:確認該軟件的內部接口與外部接口是否已經明確定義。

    c.模塊確認:確認所設計的模塊是否滿足高內聚、低耦合的要求,模塊的作用范圍是否在其控制范圍之內。

    d.風險性:該設計在現有技術條件下和預算范圍內是否能按時實現。

    e.實用性:該設計對於需求的解決是否實用。

    f.可維護性:該設計是否考慮了今后的維護。

    g.質量:該設計是否表現出了良好的質量特征

概要設計的步驟

將DFD圖(流程圖)轉換成“高內聚,低耦合”的模塊結構圖。

怎么轉換了,兩種映射方法

1.變換設計:一個線性的順序結構,由輸入,輸出和變換中心三部分組成,變換中心讓數據發生一個本質的變換。輸入把物理輸入變成邏輯輸入,輸出臂把邏輯輸出變成了物理輸出。

2.事務設計:有一個事務的處理中心,它將輸入分為許多相互平行的加工路徑,然后根據輸入的屬性,選擇某一加工路徑。

概要設計圖形工具

  1. 層次圖:描述層次結構。
  2. HIPO圖:在層次圖的基礎上,把圖中除了頂層的方框外都加上編號****基本形式:輸入,處理,輸出。
  3. 模塊結構圖(SC):表達程序結構圖形的表示方法,反映程序模塊間的層次關系和聯系。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM