版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第三章需求分析獲取需求1.需求獲取原則2.需求獲取技術(shù)3.需求調(diào)研方法4.需求獲取步驟5.需求表達與整理6.需求確認需求分析1.需求分析目標2.需求分析任務(wù)3.需求分析方法4.需求分析過程
5.需求建模1)功能建模2)數(shù)據(jù)建模3)行為建模6.結(jié)構(gòu)化分析方法-E-R圖-數(shù)據(jù)字典-狀態(tài)-遷移圖7.實例需求規(guī)格說明書需求評審1軟件工程第三章需求分析獲取需求5.需求建模1軟件工程3.1需求獲取1.需求獲取原則2.需求獲取技術(shù)3.需求調(diào)研方法4.需求獲取步驟5.需求表達與整理6.需求確認2軟件工程3.1需求獲取1.需求獲取原則2軟件工程3.1.1需求定義需求定義就是識別用戶的要求系統(tǒng)分析過程的第一步就是識別用戶要求。分析員必須考慮以下問題:功能和性能可靠性和質(zhì)量總的系統(tǒng)目標成本與進度限制制造需求
市場與競爭情況有效的技術(shù)將來可能的擴充識別希望的功能和性能范圍;確定系統(tǒng)的功能、性能、約束和接口;3軟件工程3.1.1需求定義需求定義就是識別用戶的要求功能和性能3.1.2.需求獲取的基本原則深入淺出
需求獲取要盡可能全面、細致。獲取的需求是個全集,系統(tǒng)真正實現(xiàn)的是個子集。細致地調(diào)研并不表明在分析時將調(diào)研內(nèi)容都納入到新系統(tǒng)中,但有利于以后的擴充。以流程為主線
在與用戶交流的過程中,應(yīng)該用流程將所有的內(nèi)容串起來。如信息、組織結(jié)構(gòu)、處理規(guī)則等。這樣便于交流溝通。4軟件工程3.1.2.需求獲取的基本原則深入淺出4軟件工程流程的描述既要有宏觀,又要有微觀。即要強調(diào)總體的業(yè)務(wù)流程、全生存期的業(yè)務(wù)流程,又要對流程細化,有分支的業(yè)務(wù)流程。需求獲取可能是軟件開發(fā)中最困難、最關(guān)鍵、最易出錯及最需要交流的方面。表現(xiàn)在:
需求的不穩(wěn)定性:在整個軟件生存周期內(nèi)軟件需求會隨著時間的推移發(fā)生變化;
需求的不準確性:用戶和開發(fā)人員的認識會隨著使用系統(tǒng)實現(xiàn)業(yè)務(wù)流程的實踐逐步提高,一開始不可能設(shè)想得面面俱到。需求獲取只有通過有效的客戶/開發(fā)者的合作才能成功。5軟件工程流程的描述既要有宏觀,又要有微觀。即要強調(diào)總體的業(yè)務(wù)流程、全3.1.3需求獲取技術(shù)需求獲取是在問題及其最終解決方案之間架設(shè)橋梁的第一步。獲取需求的一個必不可少的結(jié)果是對項目中描述的客戶需求的普遍理解。一旦理解了需求,分析人員、開發(fā)人員和客戶就能探索出描述這些需求的多種解決方案。需求獲取技術(shù)包括兩方面的工作:
建立獲取用戶要求的方法的框架;支持和監(jiān)控需求獲取的過程的機制。6軟件工程3.1.3需求獲取技術(shù)需求獲取是在問題及其最終解決方案之間1.弄清軟件需求的層次業(yè)務(wù)需求
反映了組織或客戶開展相關(guān)業(yè)務(wù)的工作流和業(yè)務(wù)規(guī)則,是對系統(tǒng)、產(chǎn)品高層次的目標要求,與該組織或客戶的業(yè)務(wù)領(lǐng)域有關(guān)。用戶需求
描述用戶使用軟件需要完成哪些任務(wù),可通過用例(usecase)圖或場景說明加以闡明。功能―非功能需求
定義了開發(fā)人員必須實現(xiàn)的軟件功能,而非功能需求如表所示:7軟件工程1.弄清軟件需求的層次業(yè)務(wù)需求7軟件工程2.產(chǎn)品功能、性能要求及過程要求8軟件工程2.產(chǎn)品功能、性能要求及過程要求8軟件工程3.1.4.需求調(diào)研的方法調(diào)研用戶的組織結(jié)構(gòu)、崗位設(shè)置、職責定義,從功能上區(qū)分有多少個子系統(tǒng),劃分系統(tǒng)的大致范圍,明確系統(tǒng)的目標。調(diào)研每個子系統(tǒng)的工作流程、功能與處理規(guī)則,收集原始信息資料,用數(shù)據(jù)流來表示物流、資金流、信息流三者的關(guān)系。對調(diào)研內(nèi)容事先準備,針對不同管理層次的用戶詢問不同的問題,列出問題清單。將操作層、管理層、決策層的需求既聯(lián)系又區(qū)分開來,形成一個需求的層次。9軟件工程3.1.4.需求調(diào)研的方法調(diào)研用戶的組織結(jié)構(gòu)、崗位設(shè)置、職對與用戶溝通的情況及時總結(jié)歸納,整理調(diào)研結(jié)果,初步構(gòu)成需求基線。若基線符合要求,則需求獲取完成。需求調(diào)研的主要手段:發(fā)調(diào)查表;召開調(diào)查會;向用戶領(lǐng)域的專家個別咨詢;實地考察,跟蹤現(xiàn)場業(yè)務(wù)流程;查閱與待開發(fā)系統(tǒng)有關(guān)的資料;使用各種調(diào)查工具等。10軟件工程對與用戶溝通的情況及時總結(jié)歸納,整理調(diào)研結(jié)果,初步構(gòu)成需求基由于軟件開發(fā)項目和組織文化的不同,對于需求開發(fā)沒有一個簡單的、公式化的途徑。下面列出9個步驟,用以指導(dǎo)需求獲取活動。
3.1.5需求獲取的步驟11軟件工程由于軟件開發(fā)項目和組織文化的不同,對于需求開發(fā)沒有一個簡單的定義項目的視圖和范圍包括組織結(jié)構(gòu)圖、各部門的崗位/角色列表。確定用戶類包括人員/責任矩陣。確定目標系統(tǒng)的業(yè)務(wù)工作流包括物流、資金流、信息流,建立業(yè)務(wù)工作流模型。運用需求獲取技術(shù)開發(fā)用例(或數(shù)據(jù)流圖)并設(shè)置優(yōu)先級
用以掌握主要業(yè)務(wù)規(guī)則。收集來自用戶的質(zhì)量特性信息和其他非功能需求
將性能、安全性、可靠性等需求和其他設(shè)計約束結(jié)合業(yè)務(wù)規(guī)則,形成功能需求。12軟件工程定義項目的視圖和范圍包括組織結(jié)構(gòu)圖、各部門的崗位/角分類在用例(或數(shù)據(jù)流圖)中涉及的數(shù)據(jù)包括數(shù)據(jù)的組成和數(shù)據(jù)之間的關(guān)系。詳細擬訂用例(或數(shù)據(jù)流圖)
建立功能模型,并進行審查,用以澄清需求獲取的參與者對需求的理解。開發(fā)并評估界面原型
設(shè)想輸入設(shè)備、輸出設(shè)備、顯示風格、顯示方式、輸出格式等,建立接口規(guī)范和信息流傳輸規(guī)則。從功能描述中開發(fā)概念測試用例
用測試用例來驗證用例(或數(shù)據(jù)流圖)、功能需求和原型。13軟件工程分類在用例(或數(shù)據(jù)流圖)中涉及的數(shù)據(jù)包括數(shù)據(jù)的組成和3.1.6.需求整理與表達的方法采用窮舉方法可以避免遺漏。采用歸納方法,通過對各種情況進行綜合分類可以使問題條理化。采用抽象方法,可以發(fā)現(xiàn)問題的實質(zhì),抓住問題的主要矛盾,忽略其次要矛盾。需求整理可以多種手段共用,如組織結(jié)構(gòu)圖、業(yè)務(wù)流程圖、多叉樹、關(guān)系矩陣、文字敘述、表格、圖形等。需求描述包括組織結(jié)構(gòu)與崗位定義、業(yè)務(wù)流程、處理規(guī)則、數(shù)據(jù)項、功能以及上述5個方面的關(guān)系。14軟件工程3.1.6.需求整理與表達的方法采用窮舉方法可以避免遺漏。3.1.7.需求確認將整理好的用戶需求說明書讓用戶確認15軟件工程3.1.7.需求確認將整理好的用戶需求說明書讓用戶確認153.2需求分析需求分析是軟件定義時期的最后一個階段,它的基本任務(wù)是準確理解用戶的要求,進行細致的調(diào)查分析,將用戶非形式的需求陳述轉(zhuǎn)化為完整的需求定義,再由需求定義轉(zhuǎn)換到相應(yīng)的形式功能規(guī)約(需求規(guī)格說明書)。即準確地回答“系統(tǒng)必須做什么?”這個問題16軟件工程3.2需求分析需求分析是軟件定義時期的最后一個階段,它的軟件開發(fā)是要實現(xiàn)目標系統(tǒng)的物理模型。需求分析的任務(wù)就是借助于當前系統(tǒng)的邏輯模型導(dǎo)出目標系統(tǒng)的邏輯模型,解決目標系統(tǒng)“做什么”的問題。目標系統(tǒng)當前系統(tǒng)物理模型邏輯模型模型化抽象化物理模型邏輯模型具體化實例化理解需求導(dǎo)出怎么做做什么17軟件工程軟件開發(fā)是要實現(xiàn)目標系統(tǒng)的物理模型。需求分析的任務(wù)就是借助于需要能夠表達和理解問題的信息域和功能域信息流:數(shù)據(jù)和控制通過一個系統(tǒng)時的變化方式。兩個功能之間的數(shù)據(jù)/控制傳遞就確定了功能間的接口。
信息內(nèi)容:單個數(shù)據(jù)或控制對象,它們構(gòu)成了某個更大的由軟件變換生成的信息的集合。
信息結(jié)構(gòu):各種數(shù)據(jù)和控制項的內(nèi)部組織。3.2.1需求分析的原則18軟件工程需要能夠表達和理解問題的信息域和功能域3.2.1需求分析的以層次化的方式對問題進行分解和不斷細化縱向分解橫向分解19軟件工程以層次化的方式對問題進行分解和不斷細化縱橫向分解19軟件工程計算機系統(tǒng)工程基于計算機的系統(tǒng)系統(tǒng)是某些元素的一個集合或排列,這些元素被組織起來以實現(xiàn)某種方法,過程或借助處理信息進行控制。分析員必須考慮以下問題:基于計算機的系統(tǒng)的系統(tǒng)元素包括硬件、軟件、人、數(shù)據(jù)庫、文檔和過程。20軟件工程計算機系統(tǒng)工程基于計算機的系統(tǒng)20軟件工程基于計算機系統(tǒng)的系統(tǒng)元素輸入系統(tǒng)過程硬件軟件文檔人數(shù)據(jù)庫輸出21軟件工程基于計算機系統(tǒng)的系統(tǒng)元素輸入系統(tǒng)過程硬件軟件文檔人數(shù)據(jù)庫輸出軟件計算機程序、數(shù)據(jù)結(jié)構(gòu)、相關(guān)文檔;硬件電子計算設(shè)備(如CPU,存儲器)和外部機電設(shè)備(如傳感器、馬達等);人硬件和軟件的用戶;數(shù)據(jù)庫一個大型的有組織的信息集合;文檔手冊、表格和其它用以描述系統(tǒng)使用和操作的信息;過程定義每一種系統(tǒng)元素的特定使用步驟,或系統(tǒng)駐留的過程性環(huán)境。22軟件工程軟件計算機程序、數(shù)據(jù)結(jié)構(gòu)、相關(guān)文檔;22軟件工程系統(tǒng)的層次結(jié)構(gòu)基于計算機的系統(tǒng)本身可以成為一個更大的基于計算機系統(tǒng)中的一個元素,并稱為那個更大系統(tǒng)的宏元素。23軟件工程系統(tǒng)的層次結(jié)構(gòu)基于計算機的系統(tǒng)本身可以成為一個更大的基于計算計算機系統(tǒng)工程計算機系統(tǒng)工程是一個問題求解活動,目的是揭示、分析所期望的功能,并把它們分配到各個單獨的系統(tǒng)元素中去。與用戶合作確認用戶的目標和約束;導(dǎo)出功能、性能、接口、設(shè)計約束和信息結(jié)構(gòu)的表示;將它們分配到每一個系統(tǒng)元素中。24軟件工程計算機系統(tǒng)工程計算機系統(tǒng)工程是一個問題求解活動,目的是揭示、3.2.2系統(tǒng)分析的目標識別用戶要求評價系統(tǒng)的可行性進行經(jīng)濟分析和技術(shù)分析把功能分配給硬件、軟件、人、數(shù)據(jù)庫和其他系統(tǒng)元素建立成本和進度限制生成系統(tǒng)規(guī)格說明,形成所有后續(xù)工程的基礎(chǔ)25軟件工程3.2.2系統(tǒng)分析的目標識別用戶要求25軟件工程系統(tǒng)建模為了開發(fā)系統(tǒng)模型,使用了“結(jié)構(gòu)模板”。系統(tǒng)工程師把各種系統(tǒng)元素分配到模板內(nèi)的五個處理區(qū)域:用戶界面;輸入;系統(tǒng)功能與控制;輸出;維護與自測試。結(jié)構(gòu)模板能幫助分析員建立一個分層結(jié)構(gòu)。26軟件工程系統(tǒng)建模為了開發(fā)系統(tǒng)模型,使用了“結(jié)構(gòu)模板”。26軟件工程系統(tǒng)結(jié)構(gòu)上下文圖ACD則位于層次結(jié)構(gòu)的頂層(ArchitectureContextDiagram)27軟件工程系統(tǒng)結(jié)構(gòu)上下文圖ACD則位于層次結(jié)構(gòu)的頂層(Architec系統(tǒng)結(jié)構(gòu)上下文圖建立了待實現(xiàn)系統(tǒng)與系統(tǒng)運行上下文環(huán)境之間的信息邊界。ACD定義了
系統(tǒng)使用的所有信息的外部產(chǎn)生者由系統(tǒng)建立的所有信息的外部使用者通過接口進行通信或?qū)嵤┚S護與自測試的所有實體。28軟件工程系統(tǒng)結(jié)構(gòu)上下文圖建立了待實現(xiàn)系統(tǒng)與系統(tǒng)運行上下文環(huán)境之間的信例:CLSS抽出功能有:1)讀入條形碼輸入信息;2)讀入脈沖計數(shù)器信號;3)譯零件碼數(shù)據(jù);4)數(shù)據(jù)庫查詢;5)決定料箱位置;6)對分流機構(gòu)生成控制信號。29軟件工程例:CLSS抽出功能有:1)讀入條形碼輸入信息;2)CLSS的ACD圖30軟件工程CLSS的ACD圖30軟件工程每一個方框表示一個外部實體,即系統(tǒng)信息的產(chǎn)生者或使用者。整個系統(tǒng)(或位于下層的專門子系統(tǒng))的符號用圓角矩形表示。因此,CLSS在ACD中間的處理與控制區(qū)域內(nèi)表示。在ACD中附加名字的箭頭表示外部實體與CLSS系統(tǒng)之間傳送的(數(shù)據(jù)或控制)信息。外部實體“條形碼閱讀器”產(chǎn)生條形碼輸入信息。本質(zhì)上,ACD把任一系統(tǒng)都置于它的外部環(huán)境中。31軟件工程每一個方框表示一個外部實體,即系統(tǒng)信息的產(chǎn)生者或使用者。31系統(tǒng)工程師對ACD圖中的矩形詳細分析,加細ACD圖。建立各種專門子系統(tǒng)完成傳輸線分類系統(tǒng)(CLSS)的功能。專門子系統(tǒng)定義在從ACD導(dǎo)出的系統(tǒng)結(jié)構(gòu)流程圖AFD中(ArchitectureFlowDiagram)。信息流穿越ACD的各個矩形,可幫助系統(tǒng)工程師開發(fā)AFD─更詳細的CLSS“圖解”。系統(tǒng)結(jié)構(gòu)流程圖給出了各個專門子系統(tǒng)和重要的(數(shù)據(jù)與控制)信息流。32軟件工程系統(tǒng)工程師對ACD圖中的矩形詳細分析,加細ACD圖。建立各種33軟件工程33軟件工程結(jié)構(gòu)模板把子系統(tǒng)處理劃分成五個處理區(qū)域。每個子系統(tǒng)可以包含一個或多個系統(tǒng)元素(如硬件、軟件、人),它們是系統(tǒng)工程師分配給子系統(tǒng)的。系統(tǒng)結(jié)構(gòu)模板還可能包含一個“結(jié)構(gòu)字典”,列出在模板中出現(xiàn)的每一個信息項及其說明。結(jié)構(gòu)字典是需求中“數(shù)據(jù)字典”的系統(tǒng)級版本。
34軟件工程結(jié)構(gòu)模板把子系統(tǒng)處理劃分成五個處理區(qū)域。每個子系統(tǒng)可以包含一35軟件工程35軟件工程3.2軟件需求分析需求分析是軟件定義時期的最后一個階段,它的基本任務(wù)是準確地回答“系統(tǒng)必須做什么?”這個問題。36軟件工程3.2軟件需求分析需求分析是軟件定義時期的最后一個階段,它物理模型(實施模型、技術(shù)模型)邏輯模型(本質(zhì)模型、概念模型)當前系統(tǒng)描述現(xiàn)實系統(tǒng)是如何在物理上實現(xiàn)的。描述重要的業(yè)務(wù)功能,不考慮系統(tǒng)是如何實施的。目標系統(tǒng)描述新系統(tǒng)是如何實施的(包括技術(shù))。描述新系統(tǒng)的主要業(yè)務(wù)功能和用戶新的需求,不考慮系統(tǒng)應(yīng)如何實施。37軟件工程物理模型邏輯模型當前描述現(xiàn)實系統(tǒng)是如何在物理上實現(xiàn)的。描述重需求分析的任務(wù)是發(fā)現(xiàn)、求精、建模和規(guī)格說明的過程。包括確定對系統(tǒng)的綜合要求(發(fā)現(xiàn));細化在項目開發(fā)計劃中規(guī)定的軟件范圍;分析系統(tǒng)的數(shù)據(jù)要求;創(chuàng)建所需的數(shù)據(jù)模型、功能模型和控制模型;分析可選擇的解決方案,并將它們分配到各個軟件成分中去。3.2.1需求分析的任務(wù)38軟件工程需求分析的任務(wù)是發(fā)現(xiàn)、求精、建模和規(guī)格說明的過程。包括3.2需求分析的過程可以分成四個階段:問題識別(需求獲?。┛虅澇鲕浖墓δ芎托阅苄枨?;明確用戶界面需求;指明軟件與其他系統(tǒng)元素的接口需求;建立軟件必須滿足的約束。從系統(tǒng)角度來理解軟件并評審用于產(chǎn)生計劃估算的軟件范圍是否恰當;確定對目標系統(tǒng)的需求;提出這些需求實現(xiàn)條件,以及需求應(yīng)達到的標準;修正系統(tǒng)開發(fā)計劃。3.2.2需求分析的過程39軟件工程需求分析的過程可以分成四個階段:3.2.2需求分析的過程3問題識別的另一項工作是建立分析所需要的通信途徑,以保證能順利地對問題進行分析。管理人員用戶分析人員軟件開發(fā)組軟件需求說明軟件實施計劃原型軟件實施計劃軟件實施計劃軟件需求說明軟件需求說明原型原型40軟件工程問題識別的另一項工作是建立分析所需要的通信途徑,以保證能順利分析與綜合,導(dǎo)出軟件的邏輯模型(需求建模)
進行各種要求的一致性檢查;逐步細化所有的軟件功能;分解數(shù)據(jù)域,分配給各個子功能;找出系統(tǒng)各成分之間的聯(lián)系、接口特性和設(shè)計限制。判斷是否存在不合理的用戶要求或用戶尚未提出的潛在要求。綜合成系統(tǒng)的解決方案,給出目標系統(tǒng)的詳細邏輯模型。41軟件工程分析與綜合,導(dǎo)出軟件的邏輯模型(需求建模)41軟件工程編制需求分析階段的文檔軟件需求規(guī)格說明;初步的用戶手冊;確認測試計劃;修改和完善軟件開發(fā)計劃。需求評審作為需求分析階段工作的復(fù)查手段,應(yīng)該對功能的正確性、文檔的一致性、完備性、準確性和清晰性,以及其它需求給予評價。42軟件工程編制需求分析階段的文檔42軟件工程給出系統(tǒng)的邏輯視圖和物理視圖
軟件需求的邏輯視圖給出的是軟件要達到的功能和要處理的數(shù)據(jù)之間的關(guān)系,而不是實現(xiàn)的細節(jié)。 軟件需求的邏輯描述是軟件設(shè)計的基礎(chǔ)。軟件需求的物理視圖給出的是處理功能和數(shù)據(jù)結(jié)構(gòu)的實際表現(xiàn)形式,這往往是由設(shè)備本身決定的,因此推遲到設(shè)計階段考慮。43軟件工程給出系統(tǒng)的邏輯視圖和物理視圖43軟件工程5.需求整理與表達的方法采用窮舉方法可以避免遺漏。采用歸納方法,通過對各種情況進行綜合分類可以使問題條理化。采用抽象方法,可以發(fā)現(xiàn)問題的實質(zhì),抓住問題的主要矛盾,忽略其次要矛盾。需求整理可以多種手段共用,如組織結(jié)構(gòu)圖、業(yè)務(wù)流程圖、多叉樹、關(guān)系矩陣、文字敘述、表格、圖形等。需求描述包括組織結(jié)構(gòu)與崗位定義、業(yè)務(wù)流程、處理規(guī)則、數(shù)據(jù)項、功能以及上述5個方面的關(guān)系。44軟件工程5.需求整理與表達的方法采用窮舉方法可以避免遺漏。44軟件3.3常用的分析方法面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法(SA)面向數(shù)據(jù)結(jié)構(gòu)的Jackson方法(JSD)面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化數(shù)據(jù)系統(tǒng)開發(fā)方法(DSSD)面向?qū)ο蟮姆治龇椒?OOA)等45軟件工程3.3常用的分析方法面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法(SA)4結(jié)構(gòu)化分析方法最初只是著眼于數(shù)據(jù)流,自頂向下,逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。擴充后,將建模技術(shù)擴展到數(shù)據(jù)建模、功能建模和行為建模,以實體-關(guān)系圖、數(shù)據(jù)流圖和控制流圖、狀態(tài)-遷移圖為工具,數(shù)據(jù)字典為核心,從不同視點建立系統(tǒng)的分析模型。3.3結(jié)構(gòu)化分析方法46軟件工程結(jié)構(gòu)化分析方法最初只是著眼于數(shù)據(jù)流,自頂向下,逐層分解,建立結(jié)構(gòu)化分析的分析模型實體—關(guān)系圖狀態(tài)—遷移圖數(shù)據(jù)流圖數(shù)據(jù)對象描述加工規(guī)格說明數(shù)據(jù)字典控制規(guī)格說明47軟件工程結(jié)構(gòu)化分析的分析模型實體—狀態(tài)—遷移圖數(shù)據(jù)流圖數(shù)據(jù)對象描述加3.3.1數(shù)據(jù)建模數(shù)據(jù)模型包括三種互相關(guān)聯(lián)的信息:數(shù)據(jù)對象,描述對象的屬性,描述對象間相互連接的關(guān)系。在需求分析階段描述數(shù)據(jù)對象和它們之間的關(guān)系,使用了E-R圖。例如,在教學管理中,一個教師可以教授零門、一門或多門課程,每位學生也需要學習幾門課程。因此,教學管理中涉及的對象(實體型)有學生、教師和課程。48軟件工程3.3.1數(shù)據(jù)建模數(shù)據(jù)模型包括三種互相關(guān)聯(lián)的信息:數(shù)據(jù)對教學數(shù)據(jù)模型學號姓名專業(yè)性別……學生職工號姓名專業(yè)職稱年齡教師課程號課程名學分學時……課程學號課程號成績選課49軟件工程教學數(shù)據(jù)模型學號姓名專業(yè)性別……學生實例的關(guān)聯(lián)有三種:一對一(1:1);一對多(1:m);多對多(n:m)。這種實例的關(guān)聯(lián)稱為“基數(shù)”。基數(shù)表明了“重復(fù)性”。教師學生教授基數(shù):一位教師基數(shù):多位學生參與度:必須參與度:可選50軟件工程實例的關(guān)聯(lián)有三種:一對一(1:1);一對多(1:m);多E-R圖中表示實體關(guān)聯(lián)的符號如下:XY一個X與一個Y相關(guān)聯(lián)一個X與一個或多個Y相關(guān)聯(lián)XY一個X與零個或一個Y相關(guān)聯(lián)XY一個X與零個,一個或多個Y相關(guān)聯(lián)XY一個X與一個Y或Z相關(guān)聯(lián)XYZ一個X與一個Y與Z相關(guān)聯(lián)XYZ51軟件工程E-R圖中表示實體關(guān)聯(lián)的符號如下:XY一個X與一個Y相關(guān)聯(lián)一3.3.2功能建模和數(shù)據(jù)流圖最初,結(jié)構(gòu)化分析方法僅討論數(shù)據(jù)流建模。目標系統(tǒng)被表示成如圖所示的數(shù)據(jù)變換流程圖。系統(tǒng)的功能體現(xiàn)在核心的數(shù)據(jù)變換中。外部實體外部實體外部實體外部實體目標系統(tǒng)輸入信息輸入信息輸出信息輸出信息52軟件工程3.3.2功能建模和數(shù)據(jù)流圖最初,結(jié)構(gòu)化分析方法僅討論1.功能建模的思想功能建模就是用抽象模型的概念,按照軟件內(nèi)部數(shù)據(jù)傳遞、變換的關(guān)系,自頂向下逐層分解,直到找到滿足功能要求的所有可實現(xiàn)的軟件為止。根據(jù)DeMarco的論述,功能模型使用了數(shù)據(jù)流圖來表達系統(tǒng)內(nèi)數(shù)據(jù)的運動情況,而數(shù)據(jù)流的變換則用結(jié)構(gòu)化英語、判定表與判定樹來描述。53軟件工程1.功能建模的思想功能建模就是用抽象模型的概念,按照軟件數(shù)據(jù)流圖中的主要圖形元素數(shù)據(jù)加工(數(shù)據(jù)變換)數(shù)據(jù)源或數(shù)據(jù)潭(外部實體)數(shù)據(jù)流數(shù)據(jù)存儲文件54軟件工程數(shù)據(jù)流圖中的主要圖形元素數(shù)據(jù)加工(數(shù)據(jù)變換)數(shù)據(jù)源或數(shù)據(jù)潭分層的數(shù)據(jù)流圖55軟件工程分層的數(shù)據(jù)流圖55軟件工程數(shù)據(jù)流圖的層次結(jié)構(gòu)為了表達數(shù)據(jù)處理過程,需要采用層次結(jié)構(gòu)的數(shù)據(jù)流圖。按照系統(tǒng)的層次結(jié)構(gòu)進行逐步分解,并以分層的數(shù)據(jù)流圖反映這種結(jié)構(gòu)關(guān)系。頂層流圖僅包含一個加工,它代表被開發(fā)系統(tǒng)。它的輸入流是該系統(tǒng)的輸入數(shù)據(jù),輸出流是系統(tǒng)所輸出數(shù)據(jù)底層流圖是指其加工不需再做分解的數(shù)據(jù)流圖,它處在最底層中間層流圖則表示對其上層父圖的細化。它的每一加工可能繼續(xù)細化,形成子圖。56軟件工程數(shù)據(jù)流圖的層次結(jié)構(gòu)為了表達數(shù)據(jù)處理過程,需要采用層次結(jié)構(gòu)的數(shù)2.結(jié)構(gòu)化分析方法功能建模的步驟實例考務(wù)處理系統(tǒng)的功能(1)對考生送來的報名單進行檢查;(2)對合格的報名單編好準考證號后將準考證送給考生,并將匯總后的考生名單送給閱卷站;(3)對閱卷站送來的成績單進行檢查,并根據(jù)考試中心制定的合格標準審定合格者;(4)制作考生通知單(含成績及合格/不合格標志)送給考生;(5)按地區(qū)進行成績分類統(tǒng)計和試題難度分析,產(chǎn)生統(tǒng)計分析表。57軟件工程2.結(jié)構(gòu)化分析方法功能建模的步驟(1)對考生送來的報名單頂層數(shù)據(jù)流圖考生考務(wù)處理系統(tǒng)考試中心閱卷站不合格報名表報名表準考證考生通知單成績單合格標準錯誤成績單考生名單統(tǒng)計分析表58軟件工程頂層數(shù)據(jù)流圖考考務(wù)考閱卷站不合格報名表報名表準考證考生通知單這個數(shù)據(jù)流圖只是一個高層的系統(tǒng)邏輯模型,它反映了目標系統(tǒng)要實現(xiàn)的功能以及系統(tǒng)與外界的關(guān)系。該圖亦稱為上下文圖或語境圖(ContextDiagram)數(shù)據(jù)流圖繪制步驟首先確定系統(tǒng)的輸入和輸出根據(jù)考務(wù)處理業(yè)務(wù),畫出頂層數(shù)據(jù)流圖,以反映最主要業(yè)務(wù)處理流程59軟件工程這個數(shù)據(jù)流圖只是一個高層的系統(tǒng)邏輯模型,它反映了目標系統(tǒng)要實經(jīng)過分析,考務(wù)業(yè)務(wù)處理的主要功能應(yīng)當有登記報名單、統(tǒng)計成績兩大項。主要數(shù)據(jù)流輸入的源點和輸出終點是考生、考試中心和閱卷站。然后從輸入端開始,根據(jù)考務(wù)業(yè)務(wù)工作流,畫出數(shù)據(jù)流流經(jīng)的各加工框,逐步畫到輸出端,得到第1層數(shù)據(jù)流圖。60軟件工程經(jīng)過分析,考務(wù)業(yè)務(wù)處理的主要功能應(yīng)當有登記報名單、統(tǒng)計成績兩報名表準考證1登記報名表2統(tǒng)計成績不合格報名表考生通知單成績單統(tǒng)計分析表第1層數(shù)據(jù)流圖考生名冊合格標準考生名單錯誤成績單61軟件工程報名表準考證12不合格考生通知單成績單統(tǒng)計分析表第1層數(shù)據(jù)流第2層數(shù)據(jù)流圖(a)1.1
檢查報名表報名表準考證1.2編準考證號碼不合格報名表考生名冊考生名單合格報名表1.3登記考生合格報名表62軟件工程第2層數(shù)據(jù)流圖(a)1.1報名表準考證1.2不合格考生名第2層數(shù)據(jù)流圖(b)2.1檢查成績單2.2審定合格者考生名冊正確成績單2.3制作通知單2.4分析統(tǒng)計成績2.5分析試題難度試題得分表考生通知單難度分析表合格標準分類統(tǒng)計表成績單錯誤成績單經(jīng)審定的成績單63軟件工程第2層數(shù)據(jù)流圖(b)2.12.2考生名冊正確2.32.423.繪制數(shù)據(jù)流圖的原則數(shù)據(jù)流圖上所有圖形符號只限于前述四種基本圖形元素;數(shù)據(jù)流圖的頂層圖上的數(shù)據(jù)流必須封閉在外部實體之間;每個加工至少有一個輸入數(shù)據(jù)流和一個輸出數(shù)據(jù)流;在數(shù)據(jù)流圖中,需按層給加工框編號。編號表明該加工所處層次及上下層的親子關(guān)系;64軟件工程3.繪制數(shù)據(jù)流圖的原則數(shù)據(jù)流圖上所有圖形符號只限于前述四規(guī)定任何一個數(shù)據(jù)流子圖必須與它上一層的一個加工對應(yīng),兩者的輸入數(shù)據(jù)流和輸出數(shù)據(jù)流必須一致。此即父圖與子圖的平衡;如果一個數(shù)據(jù)文件僅在展開的數(shù)據(jù)流子圖中使用,可以在父圖中不畫出;可以在數(shù)據(jù)流圖中加入物質(zhì)流,幫助用戶理解數(shù)據(jù)流圖;圖上每個元素都必須有名字;數(shù)據(jù)流圖中不可夾帶控制流。65軟件工程規(guī)定任何一個數(shù)據(jù)流子圖必須與它上一層的一個加工對應(yīng),兩者的輸
數(shù)據(jù)流和控制流舉例(使用Ward和mellor符號)監(jiān)控固件和操作接口每個固件狀態(tài)動作警告機器人初始化控制操作命令部件狀態(tài)緩沖器位置命令開始/停止處理機器人命令機器人命令文件操作設(shè)置處理活動記錄機器人動作位串66軟件工程數(shù)據(jù)流和控制流舉例監(jiān)控固每個固件狀態(tài)動作機器人初始數(shù)據(jù)和控制模型的關(guān)系
DFD加工規(guī)格說明加工模型DFD控制規(guī)格說明控制模型數(shù)據(jù)輸出數(shù)據(jù)條件數(shù)據(jù)輸入控制輸入控制輸出加工激活者67軟件工程數(shù)據(jù)和控制模型的關(guān)系DFD加工規(guī)格說明加工模型DFD控制規(guī)3.3.3行為建模行為建模給出需求分析方法的所有操作原則,但只有結(jié)構(gòu)化分析方法的擴充版本才提供這種建模的符號。狀態(tài)遷移圖Petri網(wǎng)68軟件工程3.3.3行為建模行為建模給出需求分析方法的所有操作原則1.狀態(tài)遷移圖例如,有關(guān)CPU分配的進程的狀態(tài)遷移。t2t3t4t1運行就緒等待69軟件工程1.狀態(tài)遷移圖例如,有關(guān)CPU分配的進程的狀態(tài)遷移。t狀態(tài)遷移圖是描述系統(tǒng)的狀態(tài)如何響應(yīng)外部的事件進行推移的一種圖形表示?!啊稹北硎究傻玫降南到y(tǒng)狀態(tài)“→”表示從一種狀態(tài)向另一種狀態(tài)的遷移。S2S1S3t1t2t3t4t4t3t2t1事件狀態(tài)S1S2S3S3S2S3S170軟件工程狀態(tài)遷移圖是描述系統(tǒng)的狀態(tài)如何響應(yīng)外部的事件進行推移的一種圖2.Petri網(wǎng)Petri網(wǎng)已廣泛地應(yīng)用于硬件與軟件系統(tǒng)的開發(fā)中,它適用于描述與分析相互獨立、協(xié)同操作的處理系統(tǒng),也就是并發(fā)執(zhí)行的處理系統(tǒng)。Petri網(wǎng)簡稱PNG(PetriNetGraph),它有兩種結(jié)點:位置:符號“○”,表示系統(tǒng)狀態(tài)。轉(zhuǎn)移:符號“|”,表示系統(tǒng)中的事件。有向邊表示轉(zhuǎn)移的輸入,或轉(zhuǎn)移的輸出71軟件工程2.Petri網(wǎng)Petri網(wǎng)已廣泛地應(yīng)用于硬件與軟件系統(tǒng)標記,或稱令牌(token),是表明系統(tǒng)當前處于什么狀態(tài)的標志。Petri網(wǎng)可能的變化有:72軟件工程標記,或稱令牌(token),是表明系統(tǒng)當前處于什么狀態(tài)的標進程得到資源占用資源運行釋放資源不用資源運行PR1LOCKR處理11UNLOCKR處理12PR2LOCKR處理21UNLOCKR處理22例如,處理兩個進程的同步問題:73軟件工程進程得到資源占用資源運行釋放資源不用資源運行PR174軟件工程74軟件工程3.3.4數(shù)據(jù)字典數(shù)據(jù)字典是結(jié)構(gòu)化分析方法的核心。與各模型的圖形表示配合,能清楚地表達數(shù)據(jù)處理的要求詞條描述——對于在模型中每一個被命名的圖形元素,均加以定義,其內(nèi)容有:
名字,別名或編號,分類,描述,定義,位置,其它,等。75軟件工程3.3.4數(shù)據(jù)字典數(shù)據(jù)字典是結(jié)構(gòu)化分析方法的核心。與各模(1)數(shù)據(jù)流詞條描述
數(shù)據(jù)流名:說明:簡要介紹它產(chǎn)生的原因和結(jié)果數(shù)據(jù)流來源:來自何方數(shù)據(jù)流去向:去向何處數(shù)據(jù)流組成:數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)量流通量:數(shù)據(jù)量,流通量1.詞條描述76軟件工程(1)數(shù)據(jù)流詞條描述1.詞條描述76軟件工程(2)數(shù)據(jù)元素詞條描述類型:數(shù)字(離散值,連續(xù)值),文字(編碼類型)長度:取值范圍:相關(guān)的數(shù)據(jù)元素及數(shù)據(jù)結(jié)構(gòu):(3)數(shù)據(jù)文件詞條描述
數(shù)據(jù)文件名:簡述:存放的是什么數(shù)據(jù)輸入數(shù)據(jù):輸出數(shù)據(jù):
77軟件工程(2)數(shù)據(jù)元素詞條描述77軟件工程數(shù)據(jù)文件組成:數(shù)據(jù)結(jié)構(gòu)存儲方式:順序,直接,關(guān)鍵碼存取頻率:
(4)加工邏輯詞條描述
加工名:加工編號:反映該加工的層次簡要描述:加工邏輯及功能簡述輸入數(shù)據(jù)流:輸出數(shù)據(jù)流:
加工邏輯:簡述加工程序,加工順序78軟件工程數(shù)據(jù)文件組成:數(shù)據(jù)結(jié)構(gòu)78軟件工程(5)數(shù)據(jù)源及數(shù)據(jù)譚詞條描述
名稱:外部實體名簡要描述:什么外部實體有關(guān)數(shù)據(jù)流:數(shù)目:79軟件工程(5)數(shù)據(jù)源及數(shù)據(jù)譚詞條描述79軟件工程2.數(shù)據(jù)結(jié)構(gòu)的描述
符號
含義
舉例=被定義為+與
x=a+b[...,...]或[...|...]或
x=[a,b],x=[a|b]{...}或m{...}n重復(fù)
x={a},x=3{a}8(...)可選
x=(a)“...”基本數(shù)據(jù)元素
x=“a”.. 連結(jié)符
x=1..980軟件工程2.數(shù)據(jù)結(jié)構(gòu)的描述符號 存折格式81軟件工程存折格式81軟件工程存折=戶名+所號+帳號+開戶日+性質(zhì)+(印密)+1{存取行}50戶名=2{字母}24所號=“001”..“999”帳號=“00000001”..“99999999”開戶日=年+月+日性質(zhì)=“1”..“6”
注:“1”表示普通戶,“5”表示工資戶等印密=“0”
注:印密在存折上不顯示存取行=日期+(摘要)+支出+存入+余額+操作+復(fù)核82軟件工程存折=戶名+所號+帳號+開戶日+性質(zhì)+(印密)+1{存取行}3.基本加工邏輯說明
對數(shù)據(jù)流圖的每一個基本加工,必須有一個基本加工邏輯說明?;炯庸み壿嬚f明必須描述基本加工如何把輸入數(shù)據(jù)流變換為輸出數(shù)據(jù)流的加工規(guī)則。加工邏輯說明必須描述實現(xiàn)加工的策略而不是實現(xiàn)加工的細節(jié)。加工邏輯說明中包含的信息應(yīng)是充足的,完備的,有用的,無冗余的。83軟件工程3.基本加工邏輯說明對數(shù)據(jù)流圖的每一個基本加工,必須有一用于寫加工邏輯說明的工具結(jié)構(gòu)化語言判定表判定樹84軟件工程用于寫加工邏輯說明的工具結(jié)構(gòu)化語言84軟件工程(1)結(jié)構(gòu)化語言結(jié)構(gòu)化語言的詞匯表由命令動詞數(shù)據(jù)字典中定義的名字有限的自定義詞邏輯關(guān)系詞
IF_THEN_ELSE、SWITCH、WHILE_DO、FOR、
DO_WHILE等組成。85軟件工程(1)結(jié)構(gòu)化語言結(jié)構(gòu)化語言的詞匯表由85軟件工程是一種介于自然語言和形式化語言之間的語言。語言的正文用基本控制結(jié)構(gòu)進行分割,加工中的操作用自然語言短語來表示。其基本控制結(jié)構(gòu)有三種:簡單陳述句結(jié)構(gòu):避免復(fù)合語句;重復(fù)結(jié)構(gòu):while_do、for_do或
do_while結(jié)構(gòu)。判定結(jié)構(gòu):if_then_else或switch_do結(jié)構(gòu);86軟件工程是一種介于自然語言和形式化語言之間的語言。86軟件工程商店業(yè)務(wù)處理系統(tǒng)中“檢查發(fā)貨單”if發(fā)貨單金額超過$500then
if欠款超過了60天then在償還欠款前不予批準
else
(欠款未超期)發(fā)批準書,發(fā)貨單
else
(發(fā)貨單金額未超過$500)
if欠款超過60天then發(fā)批準書,發(fā)貨單及賒欠報告else
(欠款未超期)發(fā)批準書,發(fā)貨單
87軟件工程商店業(yè)務(wù)處理系統(tǒng)中“檢查發(fā)貨單”if發(fā)貨單金額超過$500(2)判定表如果數(shù)據(jù)流圖的加工需要依賴于多個邏輯條件的取值,使用判定表來描述比較合適。88軟件工程(2)判定表如果數(shù)據(jù)流圖的加工需要依賴于多個邏輯條件的取值以“檢查發(fā)貨單”為例89軟件工程以“檢查發(fā)貨單”為例89軟件工程(3)判定樹判定樹也是用來表達加工邏輯的一種工具。有時侯它比判定表更直觀。檢查發(fā)貨單金額>$500金額
$500
欠款>60天不發(fā)出批準書
欠款
60天發(fā)貨單發(fā)出批準書、
欠款>60天發(fā)出批準書、發(fā)貨單及賒欠報告
欠款
60天發(fā)出批準書、發(fā)貨單90軟件工程(3)判定樹判定樹也是用來表達加工邏輯的一種工具。有時侯它這是一種有效駕馭風險的技術(shù)。在軟件開發(fā)中,原型是軟件的一個早期可運行的版本,它反映最終系統(tǒng)的部分重要特性。
探索型:目的是要弄清對目標系統(tǒng)的要求,確定所希望的特性,并探討多種方案的可行性。實驗型:這種原型用于大規(guī)模開發(fā)和實現(xiàn)之前,考核方案是否合適,規(guī)格說明是否可靠。3.4快速原型化方法91軟件工程這是一種有效駕馭風險的技術(shù)。3.4快速原型化方法91軟件
進化型:這種原型的目的不在于改進規(guī)格說明,而是將系統(tǒng)建造得易于變化,在改進原型的過程中,逐步將原型進化成最終系統(tǒng)。原型使用策略
廢棄策略追加策略92軟件工程進化型:原型使用策略廢棄策略92軟件工程建立快速原型的好處增進軟件者和用戶對系統(tǒng)服務(wù)需求的理解,使比較含糊的具有不確定性的軟件需求(主要是功能)明確化。原型化方法提供了一種有力的學習手段??梢匀菀椎卮_定系統(tǒng)的性能,確認各項主要系統(tǒng)服務(wù)的可應(yīng)用性,確認系統(tǒng)設(shè)計的可行性,確認系統(tǒng)作為產(chǎn)品的結(jié)果。有的原型可以直接成為產(chǎn)品,有的略加修改就可成為最終系統(tǒng)的一個組成部分。93軟件工程建立快速原型的好處增進軟件者和用戶對系統(tǒng)服務(wù)需求的理解,使比94軟件工程94軟件工程原型開發(fā)技術(shù)可執(zhí)行規(guī)格說明基于場景(scenario)的設(shè)計自動程序設(shè)計專用語言可復(fù)用(reusable)的軟件簡化假設(shè)95軟件工程原型開發(fā)技術(shù)可執(zhí)行規(guī)格說明95軟件工程1.可執(zhí)行規(guī)格說明可執(zhí)行規(guī)格說明是用于需求規(guī)格說明的一種自動化技術(shù)。使用這種方法,人們可以直接觀察他們用語言規(guī)定的任何系統(tǒng)性行為。包括代數(shù)規(guī)格說明有限狀態(tài)模型可執(zhí)行的數(shù)據(jù)流圖96軟件工程1.可執(zhí)行規(guī)格說明可執(zhí)行規(guī)格說明是用于需求規(guī)格說明的一種自(1)代數(shù)規(guī)格說明使用集合、定義于這些集合上的函數(shù)和定義于這些函數(shù)上的方程來描述對象。規(guī)格說明的操作語義用這些方程表示。舉例:定義一個無界的棧及其操作NEW_STACK:→StackPUSH:Stack,Element→StackPOP:Stack→(Element|Undefined)POP(NEW_STACK())=UndefinedPOP(PUSH(Stack,elem))=elem97軟件工程(1)代數(shù)規(guī)格說明使用集合、定義于這些集合上的函數(shù)和定義于(2)有限狀態(tài)模型parnas提出的使用最廣泛的一種可執(zhí)行規(guī)格說明形式。從一個初始狀態(tài)開始接收輸入,到產(chǎn)生輸出,狀態(tài)在推移變化。施加在狀態(tài)元素上的約束確定了有效狀態(tài)的推移。舉例:建立用戶/程序?qū)υ?8軟件工程(2)有限狀態(tài)模型parnas提出的使用最廣泛的一種可執(zhí)行startgoofinfobyenewentryreport‘enter’‘quit’‘help’‘print’99軟件工程startgoofinfobyenewentryrepor(3)可執(zhí)行的數(shù)據(jù)流圖數(shù)據(jù)流圖是基于結(jié)構(gòu)化開發(fā)方法的結(jié)構(gòu)化規(guī)格說明用一種可執(zhí)行的語言程序代替定義處理邏輯的結(jié)構(gòu)化英語,數(shù)據(jù)流圖就成為由可執(zhí)行語言程序模塊組成的網(wǎng)絡(luò),在一定環(huán)境或工具的支持下就可成為一個可以執(zhí)行的原型系統(tǒng)。100軟件工程(3)可執(zhí)行的數(shù)據(jù)流圖數(shù)據(jù)流圖是基于結(jié)構(gòu)化開發(fā)方法的結(jié)構(gòu)化2.基于場景的設(shè)計場景是指用戶界面的原型。一個場景用以模擬在系統(tǒng)運行期間用戶經(jīng)歷的事件。它提供了輸入─處理─輸出的屏幕格式和有關(guān)對話的模型。因此,軟件開發(fā)人員能夠給用戶顯示系統(tǒng)的逼真的視圖,使用戶得以判斷是否符合他的意圖。可在任一場景中使用一套可復(fù)用的軟件模塊,以表達某一方面的要求。101軟件工程2.基于場景的設(shè)計場景是指用戶界面的原型。101軟件工程可使用一種原型語言來描述原型系統(tǒng)。原型開發(fā)過程中用這種語言來定義屏幕數(shù)據(jù)項相關(guān)的操作從系統(tǒng)的外部描述開始,開發(fā)與數(shù)據(jù)庫的接口錯誤處理和恢復(fù)過程等系統(tǒng)的與外部視圖一致的細節(jié)。102軟件工程可使用一種原型語言來描述原型系統(tǒng)。102軟件工程3.自動程序設(shè)計在程序自動生成環(huán)境的支持下,利用計算機實現(xiàn)軟件的開發(fā)??梢宰詣踊虬胱詣拥匕延脩舻姆沁^程式問題規(guī)格說明轉(zhuǎn)換為某種高級語言程序:演繹綜合手段:基于數(shù)學推理的構(gòu)造式證明。程序變換手段:將一程序轉(zhuǎn)換成另一功能等價的程序,并保持其正確性不變。103軟件工程3.自動程序設(shè)計在程序自動生成環(huán)境的支持下,利用計算機實
實例推廣手段:從實例特征出發(fā),將它推廣為待編程序的特征,最后得到程序。
過程化手段:研究甚高級語言的編譯和知識的過程化。104軟件工程實例推廣手段:104軟件工程4.專用語言專用語言是應(yīng)用領(lǐng)域的模型化語言。在原型開發(fā)中使用專用語言,可方便用戶和軟件開發(fā)者在計劃中的系統(tǒng)特性方面的交流。105軟件工程4.專用語言專用語言是應(yīng)用領(lǐng)域的模型化語言。105軟件工5.軟件復(fù)用技術(shù)利用可復(fù)用的模塊,做出適當?shù)慕M合,就可得到快速構(gòu)造的原型系統(tǒng)。為了快速地構(gòu)造原型,這些模塊必須有簡單而清晰的界面;應(yīng)當盡量不依賴其它的模塊或數(shù)據(jù)結(jié)構(gòu);應(yīng)具有一些通用的功能。106軟件工程5.軟件復(fù)用技術(shù)利用可復(fù)用的模塊,做出適當?shù)慕M合,就可得到6.簡化假設(shè)簡化假設(shè)是在開發(fā)過程中使設(shè)計者迅速得到一個簡化的系統(tǒng)所做的假設(shè)。盡管這些假設(shè)可能實際上并不能成立,但它們在原型開發(fā)過程中可以使開發(fā)者的注意力集中在一些主要的方面。107軟件工程6.簡化假設(shè)簡化假設(shè)是在開發(fā)過程中使設(shè)計者迅速得到一個簡3.5數(shù)據(jù)及數(shù)據(jù)庫需求在數(shù)據(jù)字典中,強調(diào)對數(shù)據(jù)存儲結(jié)構(gòu)的邏輯設(shè)計,并用數(shù)據(jù)結(jié)構(gòu)表達數(shù)據(jù)項之間的邏輯關(guān)系。但任何一個軟件系統(tǒng)都可能有成千上萬個數(shù)據(jù)項,僅僅描述這些數(shù)據(jù)項是不夠的,更重要的是如何把它們以最優(yōu)的方式組織起來,以滿足系統(tǒng)對數(shù)據(jù)的要求。用例108軟件工程3.5數(shù)據(jù)及數(shù)據(jù)庫需求在數(shù)據(jù)字典中,強調(diào)對數(shù)據(jù)存儲結(jié)構(gòu)的3.5.1有關(guān)數(shù)據(jù)庫的基本概念在軟件系統(tǒng)中需要處理的數(shù)據(jù)是現(xiàn)實世界中存在的事物及其關(guān)聯(lián)的反映。人們通常將與數(shù)據(jù)處理有關(guān)的的領(lǐng)域分為三個世界:現(xiàn)實世界信息世界數(shù)據(jù)世界現(xiàn)實世界是存在于人們頭腦之外的客觀世界,現(xiàn)實世界中的事物可分成對象和性質(zhì)兩大類。109軟件工程3.5.1有關(guān)數(shù)據(jù)庫的基本概念在軟件系統(tǒng)中需要處理的數(shù)據(jù)對象可以是人、是物,還可以是概念的東西,例如,大學、城市等。對象還可以指事物與事物間的關(guān)聯(lián)。性質(zhì)則是指事物的性質(zhì)或特征。信息世界也叫做觀念世界,是現(xiàn)實世界在人們頭腦中的反映??陀^世界中的事物在信息世界中叫做實體,反映事物之間關(guān)聯(lián)的叫做實體模型。實體是由若干屬性的屬性值組成。屬性是實體某一方面的特征,相應(yīng)于事物的性質(zhì)。110軟件工程對象可以是人、是物,還可以是概念的東西,例如,大學、城市等。例如,一個學生實體是如下的一個5元組:
(951149,袁秋慧,女,19,軟件)5元組中每一元素是學生的某一屬性的屬性值。他們對應(yīng)的屬性集合是:(學號,姓名,性別,年齡,專業(yè))這些屬性集合表征了“學生”實體的類型,叫做實體型。同一類型的實體的集合叫做實體集。數(shù)據(jù)世界則是信息世界中信息的數(shù)據(jù)化,現(xiàn)實世界中的事物及其關(guān)聯(lián)在數(shù)據(jù)世界中用數(shù)據(jù)模型描述。111軟件工程例如,一個學生實體是如下的一個5元組:111軟件工程描述每一實體的數(shù)據(jù)稱為記錄,描述屬性的數(shù)據(jù)叫做數(shù)據(jù)項或字段。與實體集相對應(yīng)的稱為文件。例如,學生文件就由多個記錄組成,這些記錄放在一起構(gòu)成一個二維表。表中每一橫排叫做一個記錄或元組,每一縱列叫做一個屬性。記錄由數(shù)據(jù)項組成,正如實體由若干屬性的屬性值組成一樣。一般數(shù)據(jù)項沿用屬性名。用做屬性名時表示觀念信息,用做數(shù)據(jù)項名時表示數(shù)據(jù)信息。每個數(shù)據(jù)項包括兩個特征:即數(shù)據(jù)類型和數(shù)據(jù)長度。112軟件工程描述每一實體的數(shù)據(jù)稱為記錄,描述屬性的數(shù)據(jù)叫做數(shù)據(jù)項或字段。為了對文件中的記錄有效組織和存取,通常指定一個數(shù)據(jù)項進行區(qū)別,這個數(shù)據(jù)項叫做關(guān)鍵字,用
_ID標識。學號姓名性別年齡專業(yè)990080趙赤兵男17國際金融990436錢橙海男20生物工程992570孫蘭波女20無線電通信994021李綠濤男18自動控制994149周青華女19計算機應(yīng)用113軟件工程為了對文件中的記錄有效組織和存取,通常指定一個數(shù)據(jù)項進行區(qū)別3.5.2E-R方法
(Entity-RelationshipApproach)
和實體模型在需求分析階段進行數(shù)據(jù)庫邏輯設(shè)計過程中,使用E-R圖,可定義一個實體模型。實體模型是現(xiàn)實世界的純表示,它不涉及數(shù)據(jù)世界的數(shù)據(jù)結(jié)構(gòu)、存取路徑、存取效率等問題。因此,它可以轉(zhuǎn)換成數(shù)據(jù)庫中的數(shù)據(jù)模型。114軟件工程3.5.2E-R方法
(Entity-Relatio3.5.3數(shù)據(jù)結(jié)構(gòu)的規(guī)范化信息域分析需要確定數(shù)據(jù)的內(nèi)容,每個數(shù)據(jù)項要用表格列出,最后組織成文件的邏輯結(jié)構(gòu),即面向應(yīng)用而不是面向存儲的結(jié)構(gòu)。為了便于數(shù)據(jù)庫的設(shè)計,常常要對這種結(jié)構(gòu)做一些簡化,其中最常見的一種方法就是規(guī)范化技術(shù)。“規(guī)范化”將數(shù)據(jù)的邏輯結(jié)構(gòu)歸結(jié)為滿足一定條件的二維表
(關(guān)系)。115軟件工程3.5.3數(shù)據(jù)結(jié)構(gòu)的規(guī)范化信息域分析需要確定數(shù)據(jù)的內(nèi)容,每
表格中每個信息項必須是一個不可分割的數(shù)據(jù)項,不可是組項。
表格中每一列(列表示屬性)中所有信息項必須是同一類型,各列的名字(屬性名)互異,列的次序任意。
表格中各行(行表示元組)互不相同,行的次序任意。不滿足上述要求的二維表或關(guān)系,叫做非規(guī)范化關(guān)系。對于非規(guī)范化的關(guān)系,必須將它規(guī)范化。116軟件工程表格中每個信息項必須是一個不可分割的數(shù)據(jù)項,不可是組項。1規(guī)范化的目的是:消除數(shù)據(jù)冗余消除關(guān)系中屬性的多義性使關(guān)系的“概念”單一化,消除組項或重復(fù)組;方便操作使關(guān)系模式更靈活,易于實現(xiàn)接近自然語言的查詢方式。117軟件工程規(guī)范化的目的是:117軟件工程用教學管理例說明如何規(guī)范化有三個實體型,即課程、學生和教師,用三個關(guān)系保存它們的信息:
學生(學號,姓名,性別,年齡,專業(yè),籍貫)
教師(職工號,姓名,年齡,職稱,工資級別,工資)
課程(課程號,課程名,學分,學時,課程類型)118軟件工程用教學管理例說明如何規(guī)范化有三個實體型,即課程、學生和教師,為表示實體型之間的關(guān)聯(lián),又建立兩個關(guān)系:
選課(學號,課程號,聽課出勤率,作業(yè)完成率,分數(shù))
教課(職工號,課程號)這五個關(guān)系,組成了數(shù)據(jù)庫的模型。在每個關(guān)系中,屬性名下加下劃線
指明關(guān)鍵字。并規(guī)定關(guān)鍵字能唯一地標識一個元組。關(guān)系規(guī)范化的程度,通常按屬性間的依賴程度來區(qū)分,并以范式NF(NormalForm)來表達。常用的范式分為第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。119軟件工程為表示實體型之間的關(guān)聯(lián),又建立兩個關(guān)系:119軟件工程設(shè)R是一個關(guān)系,X和Y是R中的兩個屬性。若對于X的任一個值,Y僅有一個值與之對應(yīng),則稱R的屬性Y函數(shù)依賴于屬性X。例如,教師(職工號,姓名,年齡,
)其中,屬性“姓名”,“年齡”等都函數(shù)依賴于屬性“職工號”。屬性X可以是復(fù)合屬性,如:選課(學號,課程號,聽課出勤率,
)120軟件工程設(shè)R是一個關(guān)系,X和Y是R中的兩個屬性。若對于X的任一個值,如果屬性Y函數(shù)依賴于復(fù)合屬性X,而不與X的任何真子集函數(shù)依賴,則稱屬性Y完全函數(shù)依賴于復(fù)合屬性X。例如在“選課”關(guān)系中,屬性“聽課出勤率”、“作業(yè)完成率”和“分數(shù)”等表示某個學生學習某門課程時的學習情況。只有同時指定“學號”和“課程號”,才能說明是哪位學生學習哪門課程。因此,“分數(shù)”等屬性完全函數(shù)依賴于“學號,課程號”。121軟件工程如果屬性Y函數(shù)依賴于復(fù)合屬性X,而不與X的任何真子集函數(shù)依賴判斷規(guī)范化程度的條件是:
關(guān)系中所有屬性都是“單純域”,即不出現(xiàn)“表中有表”
非主屬性完全函數(shù)依賴于關(guān)鍵字
非主屬性相互獨立,即任何非主屬性間不存在函數(shù)依賴。如果一個關(guān)系連條件
都不滿足,則這個關(guān)系是非規(guī)范化的。122軟件工程判斷規(guī)范化程度的條件是:122軟件工程如果一個關(guān)系僅滿足條件
,則這個關(guān)系滿足第一范式(1NF)。如果一個關(guān)系滿足條件
、
,但不滿足
,則這個關(guān)系滿足第二范式(2NF)。如果一個關(guān)系同時滿足條件
、
和
,則這個關(guān)系表滿足第三范式(3NF)。當數(shù)據(jù)模型達到3NF,一般情況下就能滿足數(shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 推土機租賃合同參考
- 戰(zhàn)略合作伙伴關(guān)系合同
- 2024年有償服務(wù)協(xié)議書標準版
- 2024品牌轉(zhuǎn)讓談判方案
- 版權(quán)合作共贏協(xié)議書
- 2024年公司工程裝修合同
- 企業(yè)間采購協(xié)議范本
- 年度寫字樓裝修協(xié)議書范本
- 海外獨家銷售協(xié)議
- 餐飲行業(yè)合伙經(jīng)營合同樣本
- 高級廚師基礎(chǔ)知識題庫100道及答案
- 2024年公安機關(guān)人民警察基本級執(zhí)法資格考試試題
- 大力弘揚教育家精神課件
- 人教版小學五年級科學上冊《第四單元 光》大單元整體教學設(shè)計
- DL∕T 5754-2017 智能變電站工程調(diào)試質(zhì)量檢驗評定規(guī)程
- 近年來被公開報道的起重大醫(yī)院感染事件正式完整版
- 統(tǒng)編版(2024新教材)七年級上冊語文第一單元測試卷(含答案)
- GJB9001C首件鑒定報告
- 2024年《考評員》應(yīng)知應(yīng)會考試題庫(附答案)
- 人工智能設(shè)計倫理智慧樹知到期末考試答案章節(jié)答案2024年浙江大學
- 2024年職業(yè)院校“研學旅行”(高職組)技能大賽考試題庫及答案
評論
0/150
提交評論