【软件工程】--设计阶段
【前言】
 ? ?走過了前面的計劃階段和需求分析階段之后,我們來到了設(shè)計階段的學(xué)習(xí),設(shè)計階段的學(xué)習(xí)是至關(guān)重要的,本階段是軟件工程的核心,成品的軟件的原型基本是在設(shè)計階段塑造的,這個階段要分兩步來完成,首先我們進行概要設(shè)計,然后再進行詳細(xì)設(shè)計。我覺得呢,和現(xiàn)在那些蓋高樓的應(yīng)該是一個原理,先搭好整個鋼筋框架,然后再開始填磚瓦。
 
【概要設(shè)計階段】 ?
? ?軟件概要設(shè)計的基本任務(wù)在軟件需求分析階段,已經(jīng)搞清楚了軟件“做什么”的問題,并把這些需求通過規(guī)格說明書描述了出來,這也是目標(biāo)系統(tǒng)的邏輯模型。進入了設(shè)計階段,要把軟件“做什么”的邏輯模型變換為“怎么做”的物理模型,即著手實現(xiàn)軟件的需求,并將設(shè)計的結(jié)果反映在“設(shè)計規(guī)格說明書”文檔中,所以軟件設(shè)計是一個把軟件需求轉(zhuǎn)換為軟件表示的過程。?
 
(一)還是老樣子,先來張導(dǎo)圖理理思路。熟悉一下流程。
(二)來看看設(shè)計的基礎(chǔ),:
1.自頂向下,逐步細(xì)化;
 2.軟件結(jié)構(gòu)--將軟件結(jié)構(gòu)分解,細(xì)化問題尋找方案。?
 3.程序結(jié)構(gòu)--樹狀,網(wǎng)狀。
 4.結(jié)構(gòu)圖--模塊的高內(nèi)聚低耦合
 5.模塊化--能夠把一個大而復(fù)雜的軟件系統(tǒng)劃分成易于理解的比較單純的模塊結(jié)構(gòu)。?
 6.抽象化--軟件系統(tǒng)進行模塊設(shè)計時,可以有不同的抽象層次。
 7.信息屏蔽--如果不想讓壞事傳播開來,就應(yīng)該把壞事隱藏起來,“家丑不可外揚”就是這個道理。為了盡量避免某個模塊的行為去干擾同一系統(tǒng)中的其它模塊,在設(shè)計模塊時就要注意信息隱藏。應(yīng)該讓模塊僅僅公開必須要讓外界知道的內(nèi)容,而隱藏其它一切內(nèi)容。
 
(三)概要設(shè)計的基本任務(wù)
? ?設(shè)計軟件系統(tǒng)結(jié)構(gòu)(簡稱軟件結(jié)構(gòu))為了實現(xiàn)目標(biāo)系統(tǒng),最終必須設(shè)計出組成這個系統(tǒng)的所有程序和數(shù)據(jù)庫(文件),對于程序,則首先進行結(jié)構(gòu)設(shè)計,具體為:
 (1)采用某種設(shè)計方法,將一個復(fù)雜的系統(tǒng)按功能劃分成模塊。
 (2)確定每個模塊的功能。
 (3)確定模塊之間的調(diào)用關(guān)系。
 (4)確定模塊之間的接口,即模塊之間傳遞的信息。
 (5)評價模塊結(jié)構(gòu)的質(zhì)量。
 
 (四)編寫概要設(shè)計的文檔主要有:
 (1)概要設(shè)計說明書。
 (2)數(shù)據(jù)庫設(shè)計說明書,主要給出所使用的DBMS簡介、數(shù)據(jù)庫的概念模型、邏輯設(shè)計、結(jié)果。
 (3)用戶手冊,對需求分析階段編寫的用戶手冊進行補充。
 (4)修訂測試計劃,對測試策略、方法、步驟提出明確要求。
 
--------------------------------------------------------------------------------------------------------------------------------
【詳細(xì)設(shè)計階段】
??詳細(xì)設(shè)計是軟件設(shè)計的第二階段,主要確定每個模塊具體執(zhí)行過程,也稱“過程設(shè)計”,詳細(xì)設(shè)計的目標(biāo)不僅是邏輯上正確地實現(xiàn)每個模塊的功能,并使設(shè)計出的處理過程清晰易讀。大概就是,在編程序之前,對算法的邏輯關(guān)系進行分析,然后設(shè)計出全部必要的過程細(xì)節(jié),并給予清晰地表達(dá)。
? 嗯哼~~ 再來一張圖,熟悉一下詳細(xì)設(shè)計的任務(wù)。
 
 
 
(一)詳細(xì)設(shè)計的基本任務(wù):
(1)為每個模塊進行詳細(xì)的算法設(shè)計。用某種圖形、表格、語言等工具將每個模塊處理過程的詳細(xì)算法描述出來。
 (2)為模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu)進行設(shè)計。對于需求分析、概要設(shè)計確定的概念性的數(shù)據(jù)類型進行確切的定義。
 (3)對數(shù)據(jù)結(jié)構(gòu)進行物理設(shè)計,即確定數(shù)據(jù)庫的物理結(jié)構(gòu)。物理結(jié)構(gòu)主要指數(shù)據(jù)庫的存儲記錄格式、存儲記錄安排和存儲方法,這些都依賴于具體所使用的數(shù)據(jù)庫系統(tǒng)。
 (4)其他設(shè)計:根據(jù)軟件系統(tǒng)的類型,還可能要進行以下設(shè)計: ①代碼設(shè)計。為了提高數(shù)據(jù)的輸入、分類、存儲、檢索等操作,節(jié)約內(nèi)存空間,對數(shù)據(jù)庫中的某些數(shù)據(jù)項的值要進行代碼設(shè)計。②輸入/輸出格式設(shè)計。
 ③人機對話設(shè)計。對于一個實時系統(tǒng),用戶與計算機頻繁對話,因此要進行對話方式、內(nèi)容、格式的具體設(shè)計。
 (5)編寫詳細(xì)設(shè)計說明書。
 (6)評審。對處理過程的算法和數(shù)據(jù)庫的物理結(jié)構(gòu)都要評審。
 
(二)詳細(xì)描述處理過程常用三種工具:
? 圖形、表格和語言。
 (1)程序流程圖 程序流程圖又稱為程序框圖,它是使用最廣泛的一種描述程序邏輯結(jié)構(gòu)的工具。
 (2)PAD圖 PAD圖指問題分析圖(Problem Analysis Diagram),是日本日立公司于1979年提出的一種算法描述工具,它是一種由左往右展開的二維樹型結(jié)構(gòu)。
 (3)過程設(shè)計語言
 ? 過程設(shè)計語言(Problem Design Language,簡稱PDL),也稱程序描述語言(Problem Descripition Language),又稱為偽碼。它是一種用于描述算法設(shè)計和處理細(xì)節(jié)的語言。
 ? 用PDL表示的程序結(jié)構(gòu)一般有以下幾種:
 ①順序結(jié)構(gòu)?②選擇結(jié)構(gòu)?③重復(fù)結(jié)構(gòu)?④出口結(jié)構(gòu)
 
(三)設(shè)計的后處理:
1.寫處理說明
 2.提供接口說明
 3.確定全局?jǐn)?shù)據(jù)結(jié)構(gòu)和局部數(shù)據(jù)結(jié)構(gòu)
 4.指出所有的設(shè)計約束和限制
 5.進行評審
【總結(jié)】
? 軟件設(shè)計階段中還有一個重要的地方一定要弄清楚,模塊部分。由于篇幅原因,關(guān)于模塊的總結(jié)呢,欲知后事如何,且聽下回分解。
? 感謝您的閱讀,未完待續(xù)~~
 
總結(jié)
以上是生活随笔為你收集整理的【软件工程】--设计阶段的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: [CSCCTF 2019 Qual]Fl
- 下一篇: 方案设计阶段目标成本形成过程
