1、簡要描述系統概要設計包括哪些方面的架構
在需求明確、准備開始編碼之前,要做概要設計,而詳細設計可能大部分公司沒有做,有做的也大部分是和編碼同步進行,或者在編碼之後。因此,對大部分的公司來說,概要設計文檔是唯一的設計文檔,對後面的開發、測試、實施、維護工作起到關鍵性的影響。
一、問題的提出
概要設計寫什麼?概要設計怎麼做?
如何判斷設計的模塊是完整的?
為什麼說設計階段過於重視業務流程是個誤區?
以需求分析文檔還是以概要設計文檔來評估開發工作量、指導開發計劃准確?
結構化好還是面向對象好?
以上問題的答案請在文章中找。
二、概要設計的目的
將軟體系統需求轉換為未來系統的設計;
逐步開發強壯的系統構架;
使設計適合於實施環境,為提高性能而進行設計;
結構應該被分解為模塊和庫。
三、概要設計的任務
制定規范:代碼體系、介面規約、命名規則。這是項目小組今後共同作戰的基礎,有了開發規范和程序模塊之間和項目成員彼此之間的介面規則、方式方法,大家就有了共同的工作語言、共同的工作平台,使整個軟體開發工作可以協調有序地進行。
總體結構設計:
功能(加工)->模塊:每個功能用那些模塊實現,保證每個功能都有相應的模塊來實現;
模塊層次結構:某個角度的軟體框架視圖;
模塊間的調用關系:模塊間的介面的總體描述;
模塊間的介面:傳遞的信息及其結構;
處理方式設計:滿足功能和性能的演算法
用戶界面設計;
數據結構設計:
詳細的數據結構:表、索引、文件;
演算法相關邏輯數據結構及其操作;
上述操作的程序模塊說明(在前台?在後台?用視圖?用過程?······)
介面控製表的數據結構和使用規則
其他性能設計。
四、概要設計寫什麼
結構化軟體設計說明書結構(因篇幅有限和過時嫌疑,在此不作過多解釋)
任務:目標、環境、需求、局限;
總體設計:處理流程、總體結構與模塊、功能與模塊的關系;
介面設計:總體說明外部用戶、軟、硬體介面;內部模塊間介面(註:介面≈系統界面)
數據結構:邏輯結構、物理結構,與程序結構的關系;
模塊設計:每個模塊「做什麼」、簡要說明「怎麼做」(輸入、輸出、處理邏輯、與其它模塊的介面,與其它系統或硬體的介面),處在什麼邏輯位置、物理位置;
運行設計:運行模塊組合、控制、時間;
出錯設計:出錯信息、處錯處理;
其他設計:保密、維護;
OO軟體設計說明書結構
1 概述
系統簡述、軟體設計目標、參考資料、修訂版本記錄
這部分論述整個系統的設計目標,明確地說明哪些功能是系統決定實現而哪些時不準備實現的。同時,對於非功能性的需求例如性能、可用性等,亦需提及。需求規格說明書對於這部分的內容來說是很重要的參考,看看其中明確了的功能性以及非功能性的需求。
這部分必須說清楚設計的全貌如何,務必使讀者看後知道將實現的系統有什麼特點和功能。在隨後的文檔部分,將解釋設計是怎麼來實現這些的。
2 術語表
對本文檔中所使用的各種術語進行說明。如果一些術語在需求規格說明書中已經說明過了,此處不用再重復,可以指引讀者參考需求說明。
3 用例
此處要求系統用用例圖表述(UML),對每個用例(正常處理的情況)要有中文敘述。
4 設計概述
4.1 簡述
這部分要求突出整個設計所採用的方法(是面向對象設計還是結構化設計)、系統的體系結構(例如客戶/伺服器結構)以及使用到的相應技術和工具(例如OMT、Rose)
4.2 系統結構設計
這部分要求提供高層系統結構(頂層系統結構、各子系統結構)的描述,使用方框圖來顯示主要的組件及組件間的交互。最好是把邏輯結構同物理結構分離,對前者進行描述。別忘了說明圖中用到的俗語和符號。
4.3 系統界面
各種提供給用戶的界面以及外部系統在此處要予以說明。如果在需求規格說明書中已經對用戶界面有了敘述,此處不用再重復,可以指引讀者參考需求說明。如果系統提供了對其它系統的介面,比如說從其它軟體系統導入/導出數據,必須在此說明。
4.4 約束和假定
描述系統設計中最主要的約束,這些是由客戶強制要求並在需求說明書寫明的。說明系統是如何來適應這些約束的。
另外如果本系統跟其它外部系統交互或者依賴其它外部系統提供一些功能輔助,那麼系統可能還受到其它的約束。這種情況下,要求清楚地描述與本系統有交互的軟體類型以及這樣導致的約束。
實現的語言和平台也會對系統有約束,同樣在此予以說明。
對於因選擇具體的設計實現而導致對系統的約束,簡要地描述你的想法思路,經過怎麼樣的權衡,為什麼要採取這樣的設計等等。
5 對象模型
提供整個系統的對象模型,如果模型過大,按照可行的標准把它劃分成小塊,例如可以把客戶端和伺服器端的對象模型分開成兩個圖表述。在其中應該包含所有的系統對象。這些對象都是從理解需求後得到的。要明確哪些應該、哪些不應該被放進圖中。所有對象之間的關聯必須被確定並且必須指明聯系的基數。聚合和繼承關系必須清楚地確定下來。每個圖必須附有簡單的說明。
6 對象描述
在這個部分敘述每個對象的細節,它的屬性、它的方法。在這之前必須從邏輯上對對象進行組織。你可能需要用結構圖把對象按子系統劃分好。
為每個對象做一個條目。在系統對象模型中簡要的描述它的用途、約束(如只能有一個實例),列出它的屬性和方法。如果對象是存儲在持久的數據容器中,標明它是持久對象,否則說明它是個臨時對象(transient object)。
對每個對象的每個屬性詳細說明:名字、類型,如果屬性不是很直觀或者有約束(例如,每個對象的該屬性必須有一個唯一的值或者值域是有限正整數等)。
對每個對象的每個方法詳細說明:方法名,返回類型,返回值,參數,用途以及使用的演算法的簡要說明(如果不是特別簡單的話)。如果對變數或者返回值由什麼假定的話,Pre-conditions和Post-conditions必須在此說明。列出它或者被它調用的方法需要訪問或者修改的屬性。最後,提供可以驗證實現方法的測試案例。
7 動態模型
這部分的作用是描述系統如何響應各種事件。一般使用順序圖和狀態圖。
確定不同的場景(Scenario)是第一步,不需要確定所有可能的場景,但是必須至少要覆蓋典型的系統用例。不要自己去想當然地創造場景,通常的策略是描述那些客戶可以感受得到的場景。
7.1 場景(Scenarios)
對每個場景做一則條目,包括以下內容:
場景名:給它一個可以望文生義的名字
場景描述:簡要敘述場景是干什麼的以及發生的動作的順序。
順序圖:描述各種事件及事件發生的相對時間順序。
7.2 狀態圖
這部分的內容包括系統動態模型重要的部分的狀態圖。可能你想為每個對象畫一個狀態圖,但事實上會導致太多不期望的細節信息,只需要確定系統中一些重要的對象並為之提供狀態圖即可。
8 非功能性需求
五、概要設計怎麼做
結構化軟體設計方法:
詳細閱讀需求規格說明書,理解系統建設目標、業務現狀、現有系統、客戶需求的各功能說明;
分析數據流圖,弄清數據流加工的過程;
根據數據流圖決定數據處理問題的類型(變換型、事務型、其他型);
通過以上分析,推導出系統的初始結構圖;
對初始結構圖進行改進完善:所有的加工都要能對應到相應模塊(模塊的完整性在於他們完成了需求中的所有加工),消除完全相似或局部相似的重復功能(智者察同),理清模塊間的層次、控制關系,減少高扇出結構,隨著深度增大扇入,平衡模塊大小。
由對數據字典的修改補充完善,導出邏輯數據結構,導出每種數據結構上的操作,這些操作應當屬於某個模塊。
確定系統包含哪些應用服務系統、客戶端、資料庫管理系統;
確定每個模塊放在哪個應用伺服器或客戶端的哪個目錄、哪個文件(庫),或是在資料庫內部建立的對象。
對每個篩選後的模塊進行列表說明。
對邏輯數據結構進行列表說明。
根據結構化軟體設計說明書結構對其他需要說明的問題進行補充說明,形成概要設計說明書。
OO軟體設計方法:
在OOA基礎上設計對象與類:在問題領域分析(業務建模和需求分析)之後,開始建立系統構架。
第一步是抽取建立領域的概念模型,在UML中表現為建立對象類圖、活動圖和交互圖。對象類就是從對象中經過「察同」找出某組對象之間的共同特徵而形成類:
對象與類的屬性:數據結構;
對象與類的服務操作:操作的實現演算法;
對象與類的各外部聯系的實現結構;
設計策略:充分利用現有的類;
方法:繼承、復用、演化;
活動圖用於定義工作流,主要說明工作流的5W(Do What、Who Do、When Do、Where Do、Why Do)等問題,交互圖把人員和業務聯系在一起是為了理解交互過程,發現業務工作流中相互交互的各種角色。
第二步是構建完善系統結構:對系統進行分解,將大系統分解為若乾子系統,子系統分解為若干軟體組件,並說明子系統之間的靜態和動態介面,每個子系統可以由用例模型、分析模型、設計模型、測試模型表示。軟體系統結構的兩種方式:層次、塊狀
層次結構:系統、子系統、模塊、組件(同一層之間具有獨立性);
塊狀結構:相互之間弱耦合
系統的組成部分:
問題論域:業務相關類和對象(OOA的重點);
人機界面:窗口、菜單、按鈕、命令等等;
數據管理:數據管理方法、邏輯物理結構、操作對象類;
任務管理:任務協調和管理進程;
2、系統概要設計怎麼寫?
軟體文檔中概要設計也稱「總體設計」,是開發人員在明確用戶需求(要什麼)後對系統的一個總體考慮(明確系統目標、設計原則,初步考慮資料庫設計和功能設計),國家關於這方面有相關標准(概要設計說明書(GB8567-88))。
在具體實踐中可以按下列提綱撰寫內容:
1.引言
1.1編寫目的
[說明編寫這份概要設計說明書的目的,指出預期的讀者。]
1.2背景
a.[待開發軟體系統的名稱;]
b.[列出本項目的任務提出者、開發者、用戶。]
1.3定義
[列出本文件中用到的專門術語的定義和外文首字母組詞的原片語。]
1.4參考資料
[列出有關的參考資料。]
2.總體設計
2.1需求規定
[說明對本系統的主要的輸入輸出項目、處理的功能性能要求。包括]
2.1.1系統功能
2.1.2系統性能
2.1.2.1精度
2.1.2.2時間特性要求
2.1.2.3可靠性
2.1.2.4靈活性
2.1.3輸入輸出要求
2.1.4數據管理能力要求
2.1.5故障處理要求
2.1.6其他專門要求
2.2運行環境
[簡要地說明對本系統的運行環境的規定。]
2.2.1設備
[列出運行該軟體所需要的硬設備。說明其中的新型設備及其專門功能。]
2.2.2支持軟體
[列出支持軟體,包括要用到的操作系統、編譯(或匯編)程序、測試支持軟體等。]
2.2.3介面
[說明該系統同其他系統之間的介面、數據通信協議等]
2.2.4控制
[說明控制該系統的運行的方法和控制信號,並說明這些控制信號的來源。]
2.3基本設計概念和處理流程
[說明本系統的基本設計概念和處理流程,盡量使用圖表的形式。]
2.4結構
[給出系統結構總體框圖(包括軟體、硬體結構框圖),說明本系統的各模塊的劃分,扼要說明每個系統模塊的標識符和功能,分層次地給出各模塊之間的控制與被控制關系。]
2.5功能需求與系統模塊的關系
[本條用一張矩陣圖說明各項功能需求的實現同各模塊的分配關系。]
2.6人工處理過程
[說明在本系統的工作過程中不得不包含的人工處理過程。]
2.7尚未解決的問題
[說明在概要設計過程中尚未解決而設計者認為在系統完成之前必須解決的各個問題。]
3.介面設計
3.1用戶介面
[說明將向用戶提供的命令和它們的語法結構,以及相應的回答信息。]
[說明提供給用戶操作的硬體控制面板的定義。]
3.2外部介面
[說明本系統同外界的所有介面的安排包括軟體與硬體之間的介面、本系統與各支持系統之間的介面關系。]
3.3內部介面
[說明本系統之內的各個系統元素之間的介面的安排。]
4.運行設計
4.1運行模塊組合
[說明對系統施加不同的外界運行控制時所引起的各種不同的運行模塊組合,說明每種運行所歷經的內部模塊的支持軟體。]
4.2運行控制
[說明每一種外界的運行控制的方式方法和操作步驟。]
4.3運行時間
[說明每種運行模塊組合將佔用各種資源的時間。]
5.系統數據結構設計
[不涉及軟體設計可不包含]
5.1邏輯結構設計要點
[給出本系統內軟體所使用的每個數據結構的名稱、標識符以及它們之中每個數據項、記錄、文卷和系的標識、定義、長度及它們之間的層次的或表格的相互關系。]
5.2物理結構設計要點
[給出本系統內軟體所使用的每個數據結構中的每個數據項的存儲要求,訪問方法、存取單位、存取的物理關系、設計考慮和保密條件。]
5.3數據結構與程序的關系
[說明各個數據結構與訪問這些數據結構的各個程序之間的對應關系。]
6.系統出錯處理設計
6.1出錯信息
[用一覽表的方式說明每種可能的出錯或故障情況出現時,系統輸出信息的形式、含意及處理方法。]
6.2補救措施
[說明故障出現後可能採取的變通措施。]
6.3系統維護設計
[說明為了系統維護的方便而在程序內部設計中作出的安排,包括在程序中專門安排用於系統的檢查與維護的檢測點和專用模塊。]
3、網站的概要設計說明書
?
4、軟體概要設計與詳細設計有什麼區別?
」概要設計「其實和方案設計差不多概念性的東西,比較理想主版義,就像是一個框架,權比如說一輛汽車,它的外表可以比做是概要設計,它的軸承發動機剎車系統等就可以列為詳細設計。簡單來說就是一個從無到有的過程, 先有大的構思然後去細化。一般設計都分為1、調研階段2、方案階段(概念設計階段)2、完成實現階段(詳細階段)
5、概要設計與詳細設計的區別
概要設計與詳細設計的區別如下:
1、概要設計的主要任務是把需求分析得到的系統擴展用例圖轉換為軟體結構和數據結構。設計軟體結構的具體任務是:將一個復雜系統按功能進行模塊劃分、建立模塊的層次結構及調用關系、確定模塊間的介面及人機界面等。數據結構設計包括數據特徵的描述、確定數據的結構特性、以及資料庫的設計。顯然,概要設計建立的是目標系統的邏輯模型.
2、詳細設計是軟體工程中軟體開發的一個步驟,就是對概要設計的一個細化,就是詳細設計每個模塊實現演算法,所需的局部結構。在詳細設計階段,主要是通過需求分析的結果,設計出滿足用戶需求的嵌入式系統產品。
3、概要設計階段通常得到軟體結構圖 , 詳細設計階段常用的描述方式有:流程圖、N-S圖、PAD圖、偽代碼等 。
4、詳細設計階段就是為每個模塊完成的功能進行具體的描述,要把功能描述轉變為精確的、結構化的過程描述。
(5)二手網站系統概要設計擴展資料
設計是把一種設想通過合理的規劃、周密的計劃、通過各種感覺形式傳達出來的過程。人類通過勞動改造世界,創造文明,創造物質財富和精神財富,而最基礎、最主要的創造活動是造物。設計便是造物活動進行預先的計劃,可以把任何造物活動的計劃技術和計劃過程理解為設計。
設計(Design)是為構建有意義的秩序而付出的有意識的直覺上的努力。更詳細的定義如下:
第一步:理解用戶的期望、需要、動機,並理解業務、技術和行業上的需求和限制。
第二步:將這些所知道的東西轉化為對產品的規劃(或者產品本身),使得產品的形式、內容和行為變得有用、能用,令人嚮往,並且在經濟和技術上可行。(這是設計的意義和基本要求所在)
6、系統設計的概要設計和詳細設計的區別
概要設計抄的主要任務是把需襲求分析得到的系統擴展用例圖轉換為軟體結構和數據結構。設計軟體結構的具體任務是:將一個復雜系統按功能進行模塊劃分、建立模塊的層次結構及調用關系、確定模塊間的介面及人機界面等。數據結構設計包括數據特徵的描述、確定數據的結構特性、以及資料庫的設計。顯然,概要設計建立的是目標系統的邏輯模型.
詳細設計是軟體工程中軟體開發的一個步驟,就是對概要設計的一個細化,就是詳細設計每個模塊實現演算法,所需的局部結構。在詳細設計階段,主要是通過需求分析的結果,設計出滿足用戶需求的嵌入式系統產品。