【软件工程】 软件设计阶段
【前言】
在經(jīng)歷過(guò)計(jì)劃階段和需求分析的階段接下來(lái)就到了軟件設(shè)計(jì)的階段,他是軟件工程中非常重要的階段,它主要是分兩步來(lái)完成,一個(gè)是概要設(shè)計(jì),一個(gè)是詳細(xì)設(shè)計(jì)!
一、概要設(shè)計(jì)階段
1、解析
概要設(shè)計(jì)主要是完成,系統(tǒng)的結(jié)構(gòu)設(shè)計(jì),進(jìn)入了設(shè)計(jì)階段,要把軟件“做什么”的邏輯模型變換為“怎么做”的物理模型,即著手實(shí)現(xiàn)軟件的需求,并將設(shè)計(jì)的結(jié)果反映在“設(shè)計(jì)規(guī)格說(shuō)明書(shū)”文檔中,所以軟件設(shè)計(jì)是一個(gè)把軟件需求轉(zhuǎn)換為軟件表示的過(guò)程。
2、軟件設(shè)計(jì)的基礎(chǔ):
1.自頂向下,逐步細(xì)化; 
 2.軟件結(jié)構(gòu) ——-將軟件結(jié)構(gòu)分解,為的是解決復(fù)雜性。 
 3.程序結(jié)構(gòu)——–樹(shù)狀結(jié)構(gòu)(層次結(jié)構(gòu)),網(wǎng)狀結(jié)構(gòu)。 
 4.結(jié)構(gòu)圖———-解決了模塊的層次關(guān)系和調(diào)用關(guān)系() 
 5.模塊化———-能夠把一個(gè)大而復(fù)雜的軟件系統(tǒng)劃分成易于理解的比較單純的模塊結(jié)構(gòu)。 (高內(nèi)聚,低耦合) 
 6.抽象化———-考慮最本質(zhì)的因素(功能) 
 7.信息屏蔽——–屏蔽重要的信息
3、模塊的內(nèi)聚和耦合
模塊具有三個(gè)基本的屬性,功能、邏輯、狀態(tài)!功能指的是模塊實(shí)現(xiàn)的功能是什么,邏輯就是描述模塊內(nèi)部應(yīng)該怎么做,狀態(tài)就是該模塊使用時(shí)候的環(huán)境和條件。
耦合(塊間聯(lián)系)
耦合指的是模塊間的聯(lián)系的強(qiáng)度,耦合性越強(qiáng),模塊間的聯(lián)系越強(qiáng) 
  
 內(nèi)容耦合——– 一個(gè)模塊直接訪問(wèn)另一模塊的內(nèi)容,則稱(chēng)這兩個(gè)模塊為內(nèi)容耦合。
若在程序中出現(xiàn)下列情況之一,則說(shuō)明兩個(gè)模塊之間發(fā)生了內(nèi)容耦合: 一個(gè)模塊直接訪問(wèn)另一個(gè)模塊的內(nèi)部數(shù)據(jù)。 
 一個(gè)模塊不通過(guò)正常入口而直接轉(zhuǎn)入到另一個(gè)模塊的內(nèi)部。 兩個(gè)模塊有一部分代碼重疊(該部分代碼具有一定的獨(dú)立功能)。 一個(gè)模塊有多個(gè)入口。 
 內(nèi)容耦合可能在匯編語(yǔ)言中出現(xiàn)。大多數(shù)高級(jí)語(yǔ)言都已設(shè)計(jì)成不允許出現(xiàn)內(nèi)容耦合。這種耦合的耦合性最強(qiáng),模塊獨(dú)立性最弱。
 
 公共耦合——— 一組模塊都訪問(wèn)同一個(gè)全局?jǐn)?shù)據(jù)結(jié)構(gòu)。 
 外部耦合——— 一組模塊都訪問(wèn)同一全局簡(jiǎn)單變量,而且不通過(guò)參數(shù)表傳遞該全局變量的信息,則稱(chēng)之為外部耦合。 
 控制耦合———模塊之間傳遞的不是數(shù)據(jù)信息,而是控制信息例如標(biāo)志、開(kāi)關(guān)量等,一個(gè)模塊控制了另一個(gè)模塊的功能。 
 標(biāo)記耦合———調(diào)用模塊和被調(diào)用模塊之間傳遞數(shù)據(jù)結(jié)構(gòu)而不是簡(jiǎn)單數(shù)據(jù),同時(shí)也稱(chēng)作特征耦合。表就和的模塊間傳遞的不是簡(jiǎn)單變量,而是像高級(jí)語(yǔ)言中的數(shù)據(jù)名、記錄名和文件名等數(shù)據(jù)結(jié)果,這些名字即為標(biāo)記,其實(shí)傳遞的是地址。 
 數(shù)據(jù)耦合———調(diào)用模塊和被調(diào)用模塊之間只傳遞簡(jiǎn)單的數(shù)據(jù)項(xiàng)參數(shù)。相當(dāng)于高級(jí)語(yǔ)言中的值傳遞。 
 非直接耦合———兩個(gè)模塊之系,它們之間的聯(lián)系完全是通過(guò)主模塊的控制和調(diào)用來(lái)實(shí)現(xiàn)的。耦合度最弱,模塊獨(dú)立性最強(qiáng)。
內(nèi)聚(塊內(nèi)聯(lián)系)
內(nèi)聚指的是同一個(gè)模塊之間的聯(lián)系程度,理想模塊都是高內(nèi)聚的! 
  
 功能內(nèi)聚——模塊內(nèi)所有元素的各個(gè)組成部分全部都為完成同一個(gè)功能而存在,共同完成一個(gè)單一的功能,模塊已 不可再分。即模塊僅包括為完成某個(gè)功能所必須的所有成分,這些成分緊密聯(lián)系、缺一不可。 
 信息內(nèi)聚——按照順序執(zhí)行(一個(gè)模塊有一個(gè)任務(wù)) 
 通信內(nèi)聚——具有公共的數(shù)據(jù) 
 過(guò)程內(nèi)聚——順序執(zhí)行(一個(gè)模塊中有多個(gè)任務(wù),上一個(gè)步驟執(zhí)行完,下一個(gè)執(zhí)行) 
 時(shí)間內(nèi)聚——同一時(shí)間完成任務(wù),同一時(shí)間執(zhí)行 
 邏輯內(nèi)聚——將幾種相關(guān)的功能結(jié)合在一起 
 巧合內(nèi)聚——模塊內(nèi)部各部分之間沒(méi)有什么聯(lián)系
綜上由上邊的兩幅圖可知,模塊的獨(dú)立性強(qiáng)的表現(xiàn)為就是高內(nèi)聚,低耦合。
4、概要設(shè)計(jì)的基本任務(wù)
(1)成本效益分析,系統(tǒng)的進(jìn)度計(jì)劃 
 (2)確定模塊結(jié)構(gòu),劃分功能模塊, 
 (3)編寫(xiě)文檔
5、產(chǎn)生的文檔
概要設(shè)計(jì)說(shuō)明書(shū) 
 用戶(hù)手冊(cè) 
 測(cè)試計(jì)劃 
 數(shù)據(jù)描述
二、詳細(xì)設(shè)計(jì)
 
 詳細(xì)設(shè)計(jì)主要是完成數(shù)據(jù)設(shè)計(jì)(描述定義)和過(guò)程設(shè)計(jì)(代碼的依據(jù)),根據(jù)概要設(shè)計(jì)提供的文檔,確定每一個(gè)模塊的算法,內(nèi)部的數(shù)據(jù)組織!
詳細(xì)設(shè)計(jì)的基本任務(wù):
(1)為每個(gè)模塊進(jìn)行詳細(xì)的算法設(shè)計(jì)。 
 (2)為模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計(jì)。 
 (3)對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行物理設(shè)計(jì),即確定數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)。物理結(jié)構(gòu)主要指數(shù)據(jù)庫(kù)的存儲(chǔ)記錄格式、存儲(chǔ)記錄安排和存儲(chǔ)方法,這些都依賴(lài)于具體所使用的數(shù)據(jù)庫(kù)系統(tǒng)。 
 (4)估算存取時(shí)間和存儲(chǔ)容量 
 (5)編寫(xiě)詳細(xì)設(shè)計(jì)說(shuō)明書(shū)。 
 (6)評(píng)審。對(duì)處理過(guò)程的算法和數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)都要評(píng)審。
詳細(xì)設(shè)計(jì)用到的工具
1、數(shù)據(jù)流程圖
2、n-s圖(盒圖)
控制關(guān)系隱含,循環(huán)的次數(shù)隱含,它看不到控制流
3、pad圖(問(wèn)題分析圖)便于記憶,容易轉(zhuǎn)換成高級(jí)語(yǔ)言(自頂向下)
4、判定表(靜態(tài)邏輯)
后記:
軟工視頻已經(jīng)完成很長(zhǎng)時(shí)間了,現(xiàn)在才總結(jié),都是拖拉造成的,趁著假期,很快都會(huì)補(bǔ)上的!
總結(jié)
以上是生活随笔為你收集整理的【软件工程】 软件设计阶段的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
 
                            
                        - 上一篇: [CSCCTF 2019 Qual]Fl
- 下一篇: 在线图片批量压缩工具
