軟件系統(tǒng)設(shè)計(jì)概述_第1頁
軟件系統(tǒng)設(shè)計(jì)概述_第2頁
軟件系統(tǒng)設(shè)計(jì)概述_第3頁
軟件系統(tǒng)設(shè)計(jì)概述_第4頁
軟件系統(tǒng)設(shè)計(jì)概述_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

軟件系統(tǒng)設(shè)計(jì)概述楊福林目錄軟件設(shè)計(jì)的概述軟件設(shè)計(jì)的基本原理模塊設(shè)計(jì)概要設(shè)計(jì)概述結(jié)構(gòu)化設(shè)計(jì)方法JACKSON設(shè)計(jì)方法數(shù)據(jù)設(shè)計(jì)和文件設(shè)計(jì)過程設(shè)計(jì)(詳細(xì)設(shè)計(jì))設(shè)計(jì)的評(píng)審軟件設(shè)計(jì)的目標(biāo)和任務(wù)軟件設(shè)計(jì)重要性軟件設(shè)計(jì)方法軟件設(shè)計(jì)階段軟件設(shè)計(jì)的概述討論要點(diǎn)(1)如何將需求分析模型轉(zhuǎn)換為軟件設(shè)計(jì)?(2)作為軟件工程師在軟件設(shè)計(jì)方面應(yīng)使用哪些基本原則和概念?軟件設(shè)計(jì)的概述

一.軟件設(shè)計(jì)的目標(biāo)軟件需求:解決“做什么”軟件設(shè)計(jì):解決“怎么做”二.軟件設(shè)計(jì)的任務(wù)

問題結(jié)構(gòu)(軟件需求)軟件結(jié)構(gòu)從軟件需求規(guī)格說明書出發(fā),形成軟件的具體設(shè)計(jì)方案。映射軟件設(shè)計(jì)的目標(biāo)和任務(wù)數(shù)據(jù)設(shè)計(jì)側(cè)重于數(shù)據(jù)結(jié)構(gòu)的定義。系統(tǒng)結(jié)構(gòu)設(shè)計(jì),包括接口設(shè)計(jì)和體系結(jié)構(gòu)設(shè)計(jì),定義軟件系統(tǒng)各主要成份之間的關(guān)系。過程設(shè)計(jì)則是把結(jié)構(gòu)成份轉(zhuǎn)換成軟件的過程性描述。在編碼步驟,根據(jù)這種過程性描述,生成源程序代碼,然后通過測(cè)試最終得到完整有效的軟件。軟件設(shè)計(jì)的目標(biāo)和任務(wù)軟件的開發(fā)階段軟件設(shè)計(jì)的重要性為什么軟件設(shè)計(jì)很重要?軟件設(shè)計(jì)是開發(fā)階段中最重要的步驟,它是軟件開發(fā)過程中質(zhì)量得以保證的關(guān)鍵步驟。設(shè)計(jì)提供了軟件的表示,使得軟件的質(zhì)量評(píng)價(jià)成為可能。同時(shí),軟件設(shè)計(jì)又是將用戶要求準(zhǔn)確地轉(zhuǎn)化成為最終的軟件產(chǎn)品的唯一途徑。另一方面,軟件設(shè)計(jì)是后續(xù)開發(fā)步驟及軟件維護(hù)工作的基礎(chǔ)。如果沒有設(shè)計(jì),只能建立一個(gè)不穩(wěn)定的系統(tǒng)。軟件設(shè)計(jì)的重要性

只要出現(xiàn)一些小小的變動(dòng),就會(huì)使得軟件垮掉,而且難于測(cè)試。軟件設(shè)計(jì)方法結(jié)構(gòu)化設(shè)計(jì)方法(SD)面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法(JSD方法)面向?qū)ο蟮脑O(shè)計(jì)方法(OOD)軟件設(shè)計(jì)的階段軟件設(shè)計(jì)的階段(1)概要設(shè)計(jì)(總體設(shè)計(jì))確定軟件的結(jié)構(gòu)以及各組成成分(子系統(tǒng)或模塊)之間的相互關(guān)系。(2)詳細(xì)設(shè)計(jì)(過程設(shè)計(jì),模塊設(shè)計(jì))

確定模塊內(nèi)部的算法和數(shù)據(jù)結(jié)構(gòu),產(chǎn)生描述各模塊程序過程的詳細(xì)文檔。軟件設(shè)計(jì)的概述軟件設(shè)計(jì)的基礎(chǔ)模塊設(shè)計(jì)基礎(chǔ)概要設(shè)計(jì)概述結(jié)構(gòu)化設(shè)計(jì)方法JACKSON設(shè)計(jì)方法數(shù)據(jù)設(shè)計(jì)和文件設(shè)計(jì)過程設(shè)計(jì)(詳細(xì)設(shè)計(jì))設(shè)計(jì)的評(píng)審目錄軟件設(shè)計(jì)基礎(chǔ)

軟件體系結(jié)構(gòu)程序結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)軟件過程

自頂向下,逐步細(xì)化模塊化抽象化信息隱蔽一.軟件體系結(jié)構(gòu)軟件結(jié)構(gòu)包括兩部分:程序結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)軟件的體系結(jié)構(gòu)通過一個(gè)劃分過程來完成。該劃分過程從需求分析確立的目標(biāo)系統(tǒng)的模型出發(fā),對(duì)整個(gè)問題進(jìn)行分割,使其每個(gè)部分用一個(gè)或幾個(gè)軟件成份加以解決,整個(gè)問題就解決了.軟件設(shè)計(jì)基礎(chǔ)軟件設(shè)計(jì)基礎(chǔ)一.軟件體系結(jié)構(gòu)二.程序結(jié)構(gòu)

程序結(jié)構(gòu)(控制層次)表明了程序各個(gè)部件(模塊)的組織情況。

軟件設(shè)計(jì)基礎(chǔ)三.數(shù)據(jù)結(jié)構(gòu)軟件設(shè)計(jì)基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)是數(shù)據(jù)的各個(gè)元素之間的邏輯關(guān)系的一種表示。數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)應(yīng)確定數(shù)據(jù)的組織、存取方式、相關(guān)程度以及信息的不同處理方法。數(shù)據(jù)結(jié)構(gòu)的組織方法和復(fù)雜程度可以靈活多樣,但典型的數(shù)據(jù)結(jié)構(gòu)種類是有限的,它們是構(gòu)成一些更復(fù)雜結(jié)構(gòu)的基本構(gòu)件塊。三.數(shù)據(jù)結(jié)構(gòu)軟件設(shè)計(jì)基礎(chǔ)

四.軟件過程軟件過程則著重描述各個(gè)模塊的處理細(xì)節(jié)。軟件過程必須提供精確的處理說明,包括事件的順序、正確的判定點(diǎn)、重復(fù)的操作等等。軟件設(shè)計(jì)基礎(chǔ)軟件設(shè)計(jì)基礎(chǔ)四.軟件過程五.自頂向下,逐步細(xì)化

將軟件的體系結(jié)構(gòu)按自頂向下方式,對(duì)各個(gè)層次的過程細(xì)節(jié)和數(shù)據(jù)細(xì)節(jié)逐層細(xì)化,直到用程序設(shè)計(jì)語言的語句能夠?qū)崿F(xiàn)為止,從而最后確立整個(gè)的體系結(jié)構(gòu)。軟件設(shè)計(jì)基礎(chǔ)六.模塊化(Modularity)軟件系統(tǒng)的模塊化是指整個(gè)軟件被劃分成若干單獨(dú)命名和可編址的部分,稱之為模塊。這些模塊可以被組裝起來以滿足整個(gè)問題的需求。把問題/子問題的分解與軟件開發(fā)中的系統(tǒng)/子系統(tǒng)或系統(tǒng)/模塊對(duì)應(yīng)起來,就能夠把一個(gè)大而復(fù)雜的軟件系統(tǒng)劃分成易于理解的比較單純的模塊結(jié)構(gòu)。軟件設(shè)計(jì)基礎(chǔ)模塊化是軟件設(shè)計(jì)的一個(gè)基本準(zhǔn)則

高層模塊從整體上把握問題,隱蔽細(xì)節(jié)復(fù)雜問題較小問題

分解

可減小解題所需的總的工作分解軟件設(shè)計(jì)基礎(chǔ)模塊化和軟件成本圖成本或工作量模塊數(shù)量軟件總成本集成成本成本/模塊M最小成本區(qū)域軟件設(shè)計(jì)基礎(chǔ)七.抽象化軟件系統(tǒng)進(jìn)行模塊設(shè)計(jì)時(shí),可有不同的抽象層次。在最高的抽象層次上,可以使用問題所處環(huán)境的語言概括地描述問題的解法。在較低的抽象層次上,則采用過程化的方法。軟件設(shè)計(jì)基礎(chǔ)(1)過程的抽象

在軟件工程中,從系統(tǒng)定義到實(shí)現(xiàn),每進(jìn)展一步都可以看做是對(duì)軟件解決方法的抽象化過程的一次細(xì)化。在軟件需求分析階段,用“問題所處環(huán)境的、為大家所熟悉的術(shù)語”來描述軟件的解決方法。在從概要設(shè)計(jì)到詳細(xì)設(shè)計(jì)的過程中,抽象化的層次逐次降低。產(chǎn)生源程序時(shí)到達(dá)最低抽象層次。軟件設(shè)計(jì)基礎(chǔ)(2)數(shù)據(jù)抽象

在不同層次上描述數(shù)據(jù)對(duì)象的細(xì)節(jié),定義與該數(shù)據(jù)對(duì)象相關(guān)的操作。

例如,在CAD軟件中,定義一個(gè)叫做drawing的數(shù)據(jù)對(duì)象。可將drawing規(guī)定為一個(gè)抽象數(shù)據(jù)類型,定義它的內(nèi)部細(xì)節(jié)為:TYPEdrawingISSTRUCTUREDEFIND

numberISSTRINGLENGTH(12);

geometryDEFIND……notesISSTRINGLENGTH(256);

BOMDEFIND……ENDdrawingTYPE;軟件設(shè)計(jì)基礎(chǔ)數(shù)據(jù)抽象drawing本身由另外一些數(shù)據(jù)抽象,如geometry、BOM(billofmaterials)構(gòu)成定義drawing的抽象數(shù)據(jù)類型之后,可引用它來定義其它數(shù)據(jù)對(duì)象,而不必涉及drawing的內(nèi)部細(xì)節(jié)例如,定義:

blue-printISINSTANCEOFdrawing;

軟件設(shè)計(jì)基礎(chǔ)七.信息隱蔽由parnas方法提倡的信息隱蔽是指,每個(gè)模塊的實(shí)現(xiàn)細(xì)節(jié)對(duì)于其它模塊來說是隱蔽的。也就是說,模塊中所包含的信息(包括數(shù)據(jù)和過程)不允許其它不需要這些信息的模塊使用。獨(dú)立的模塊間僅僅交換為完成系統(tǒng)功能而必須交換的信息。軟件設(shè)計(jì)基礎(chǔ)信息隱蔽的目的:

提高模塊的獨(dú)立性,減少修改或維護(hù)時(shí)的影響面。軟件設(shè)計(jì)基礎(chǔ)軟件設(shè)計(jì)的概述軟件設(shè)計(jì)的基礎(chǔ)模塊設(shè)計(jì)基礎(chǔ)概要設(shè)計(jì)概述結(jié)構(gòu)化設(shè)計(jì)方法JACKSON開發(fā)方法數(shù)據(jù)設(shè)計(jì)和文件設(shè)計(jì)過程設(shè)計(jì)(詳細(xì)設(shè)計(jì))設(shè)計(jì)的評(píng)審目錄模塊設(shè)計(jì)基礎(chǔ)一.模塊(Module) “模塊”,一般具有如下三個(gè)基本屬性:功能:描述該模塊實(shí)現(xiàn)什么功能邏輯:描述模塊內(nèi)部怎么做狀態(tài):該模塊使用時(shí)的環(huán)境和條件在描述一個(gè)模塊時(shí),還必須按模塊的外部特性與內(nèi)部特性分別描述模塊的外部特性模塊的模塊名、參數(shù)表、其中的輸入?yún)?shù)和輸出參數(shù),以及給程序以至整個(gè)系統(tǒng)造成的影響模塊的內(nèi)部特性完成其功能的程序代碼和僅供該模塊內(nèi)部使用的數(shù)據(jù)模塊設(shè)計(jì)基礎(chǔ)二.模塊獨(dú)立性模塊獨(dú)立性,是指軟件系統(tǒng)中每個(gè)模塊只涉及軟件要求的具體的子功能,而與軟件系統(tǒng)中其它的模塊的接口是簡(jiǎn)單的.例如,若一個(gè)模塊只具有單一的功能且與其它模塊沒有太多的聯(lián)系,則稱此模塊具有模塊獨(dú)立性

一般采用兩個(gè)準(zhǔn)則度量模塊獨(dú)立性。即模塊間耦合和模塊內(nèi)聚模塊設(shè)計(jì)基礎(chǔ)

耦合是模塊之間的互相連接的緊密程度的度量。

內(nèi)聚是模塊功能強(qiáng)度(一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度)的度量。模塊獨(dú)立性比較強(qiáng)的模塊應(yīng)是高內(nèi)聚低耦合的模塊。模塊設(shè)計(jì)基礎(chǔ)三.模塊間的耦合模塊設(shè)計(jì)基礎(chǔ)

非直接耦合(NondirectCoupling)

兩個(gè)模塊之間沒有直接關(guān)系,它們之間的聯(lián)系完全是通過主模塊的控制和調(diào)用來實(shí)現(xiàn)的。非直接耦合的模塊獨(dú)立性最強(qiáng)。數(shù)據(jù)耦合(DataCoupling)

(Onlydataarepassed.Itiseasytotracedataandmakechanges.)一個(gè)模塊訪問另一個(gè)模塊時(shí),彼此之間是通過簡(jiǎn)單數(shù)據(jù)參數(shù)(不是控制參數(shù)、公共數(shù)據(jù)結(jié)構(gòu)或外部變量)來交換輸入、輸出信息的。標(biāo)記耦合(StampCoupling)

一組模塊通過參數(shù)表傳遞記錄信息,就是標(biāo)記耦合。這個(gè)記錄是某一數(shù)據(jù)結(jié)構(gòu)的子結(jié)構(gòu),而不是簡(jiǎn)單變量。模塊設(shè)計(jì)基礎(chǔ)控制耦合

(ControlCoupling)

如果一個(gè)模塊通過傳送開關(guān)、標(biāo)志、名字等控制信息,明顯地控制選擇另一模塊的功能,就是控制耦合。模塊設(shè)計(jì)基礎(chǔ)外部耦合(ExternalCoupling)

一組模塊都訪問同一全局簡(jiǎn)單變量而不是同一全局?jǐn)?shù)據(jù)結(jié)構(gòu),而且不是通過參數(shù)表傳遞該全局變量的信息,則稱之為外部耦合。公共耦合(CommonCoupling)(Dataareaccessiblefromacommondatastore)若一組模塊都訪問同一個(gè)公共數(shù)據(jù)環(huán)境,則它們之間的耦合就稱為公共耦合。公共的數(shù)據(jù)環(huán)境可以是全局?jǐn)?shù)據(jù)結(jié)構(gòu)、共享的通信區(qū)、內(nèi)存的公共覆蓋區(qū)等。模塊設(shè)計(jì)基礎(chǔ)公共耦合的復(fù)雜程度隨耦合模塊的個(gè)數(shù)增加而顯著增加。若只是兩模塊間有公共數(shù)據(jù)環(huán)境,則公共耦合有兩種情況。松散公共耦合和緊密公共耦合。模塊設(shè)計(jì)基礎(chǔ)公共耦合

(Commoncoupling):Global:V1V2A:……………………A1=V1+V2……………………B:……………………V1=B1……………………Global:V1V2A:……………………V1++……………………B:……………………V2=B1+V1……………………問題:

公共部分的改動(dòng)將影響所有調(diào)用它的模塊;

公共部分的數(shù)據(jù)存取無法控制;

復(fù)雜程度隨耦合模塊的個(gè)數(shù)增加而增加。內(nèi)容耦合(ContentCoupling)

如果發(fā)生下列情形,兩個(gè)模塊之間就發(fā)生了內(nèi)容耦合:

(1)一個(gè)模塊直接訪問另一個(gè)模塊的內(nèi)部數(shù)據(jù);

(2)一個(gè)模塊不通過正常入口轉(zhuǎn)到另一模塊內(nèi)部;

(3)兩個(gè)模塊有一部分程序代碼重迭(只可能出現(xiàn)在匯編語言中);

(4)一個(gè)模塊有多個(gè)入口。模塊設(shè)計(jì)基礎(chǔ)……ABCDA:……………………gotoC1……………………C:……………………C1:…………例1:A訪問C的內(nèi)部數(shù)據(jù)或不通過正常入口而轉(zhuǎn)入C的內(nèi)部。例2:部分代碼重疊(常出現(xiàn)在匯編程序中)B

A例3:一個(gè)模塊有多個(gè)入口(功能)A:………………………………entry1:………………………………entry2:………………………………

c

模塊設(shè)計(jì)基礎(chǔ)內(nèi)容耦合圖

模塊設(shè)計(jì)基礎(chǔ)實(shí)際上,模塊之間是混合式的耦合原則:盡量使用數(shù)據(jù)耦合,少用控制耦合,限制公共耦合的范圍,完全不用內(nèi)容耦合。

c

四.模塊內(nèi)聚模塊設(shè)計(jì)基礎(chǔ)功能內(nèi)聚(FunctionalCohesion)

一個(gè)模塊中各個(gè)部分都是完成某一具體功能必不可少的組成部分,或者說該模塊中所有部分都是為了完成一項(xiàng)具體功能而協(xié)同工作,緊密聯(lián)系,不可分割的。則稱該模塊為功能內(nèi)聚模塊。模塊設(shè)計(jì)基礎(chǔ)信息內(nèi)聚(InformationalCohesion)

這種模塊完成多個(gè)功能,各個(gè)功能都在同一數(shù)據(jù)結(jié)構(gòu)上操作,每一項(xiàng)功能有一個(gè)唯一的入口點(diǎn)。這個(gè)模塊將根據(jù)不同的要求,確定該執(zhí)行哪一個(gè)功能。由于這個(gè)模塊的所有功能都是基于同一個(gè)數(shù)據(jù)結(jié)構(gòu)(符號(hào)表),因此,它是一個(gè)信息內(nèi)聚的模塊。模塊設(shè)計(jì)基礎(chǔ)模塊設(shè)計(jì)基礎(chǔ)信息內(nèi)聚示例圖信息內(nèi)聚模塊可以看成是多個(gè)功能內(nèi)聚模塊的組合,并且達(dá)到信息的隱蔽。即把某個(gè)數(shù)據(jù)結(jié)構(gòu)、資源或設(shè)備隱蔽在一個(gè)模塊內(nèi),不為別的模塊所知曉。模塊設(shè)計(jì)基礎(chǔ)通信內(nèi)聚(CommunicationCohesion)

如果一個(gè)模塊內(nèi)各功能部分都使用了相同的輸入數(shù)據(jù),或產(chǎn)生了相同的輸出數(shù)據(jù),則稱之為通信內(nèi)聚模塊。通常,通信內(nèi)聚模塊是通過數(shù)據(jù)流圖

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論