




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
需求分析Ppt5.1需求獲取25.1.1需求定義需求定義就是識(shí)別用戶的要求系統(tǒng)分析過程的第一步就是識(shí)別用戶要求。分析員必須弄清楚以下問題:
總的系統(tǒng)目標(biāo)項(xiàng)目范圍系統(tǒng)涉眾相關(guān)技術(shù)標(biāo)準(zhǔn)和法規(guī)功能和性能可靠性和質(zhì)量成本與進(jìn)度限制環(huán)境與約束外部接口將來(lái)可能的擴(kuò)充識(shí)別希望的功能和性能范圍;確定系統(tǒng)的功能、性能、約束和接口;3系統(tǒng)目標(biāo):業(yè)務(wù)目標(biāo);經(jīng)濟(jì)目標(biāo)項(xiàng)目范圍:每一版的組織范圍、業(yè)務(wù)范圍、實(shí)施范圍涉眾:系統(tǒng)的利益相關(guān)者。相關(guān)技術(shù)標(biāo)準(zhǔn)和法規(guī):相關(guān)法律法規(guī)、行業(yè)規(guī)范與標(biāo)準(zhǔn)、領(lǐng)域參考模型涉眾用戶需求分類(1)功能性需求:定義了系統(tǒng)做什么(描述系統(tǒng)必須支持的功能和過程)(2)性能需求:定義了系統(tǒng)工作時(shí)的特性(響應(yīng)時(shí)間、恢復(fù)時(shí)間、吞吐能力等)可靠性和質(zhì)量:系統(tǒng)正確性、穩(wěn)定性、健壯性、安全性、可維護(hù)性成本和進(jìn)度限制:環(huán)境和約束:實(shí)現(xiàn)語(yǔ)言及環(huán)境、系統(tǒng)部署環(huán)境和條件、操作環(huán)境等外部接口:與人、硬件、其它軟件和硬件的相互關(guān)系(1)功能需求
系統(tǒng)做什么?系統(tǒng)何時(shí)做什么?系統(tǒng)何時(shí)及如何修改或升級(jí)?(2)性能需求
軟件開發(fā)的技術(shù)性指標(biāo)例如:存儲(chǔ)容量限制執(zhí)行速度、相應(yīng)時(shí)間吞吐量(3)環(huán)境需求
硬件設(shè)備:機(jī)型、外設(shè)、接口、地點(diǎn)、分布、溫度、濕度、磁場(chǎng)干擾等軟件:操作系統(tǒng)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)(4)界面需求
有來(lái)自其它系統(tǒng)的輸入嗎?到自其它系統(tǒng)的輸出嗎?對(duì)數(shù)據(jù)格式有規(guī)定嗎?對(duì)數(shù)據(jù)存儲(chǔ)介質(zhì)有規(guī)定嗎?(5)用戶或人的因素
用戶類型?各種用戶熟練程度?需受何種訓(xùn)練?用戶理解、使用系統(tǒng)的難度?用戶錯(cuò)誤操作系統(tǒng)的可能性?(6)文檔需求
需哪些文檔?文檔針對(duì)哪些讀者?(7)數(shù)據(jù)需求
輸入、輸出數(shù)據(jù)的格式?接收、發(fā)送數(shù)據(jù)的頻率?數(shù)據(jù)的準(zhǔn)確性和精度?數(shù)據(jù)流量?數(shù)據(jù)需保持的時(shí)間?(8)資源需求
軟件運(yùn)行時(shí)所需的數(shù)據(jù)、軟件。內(nèi)存空間等資源。軟件開發(fā)、維護(hù)所需的人力、支撐軟件、開發(fā)設(shè)備等。(9)安全保密要求
需對(duì)訪問系統(tǒng)或系統(tǒng)信息加以控制嗎?如何隔離用戶之間的數(shù)據(jù)?用戶程序如何與其它程序和操作系統(tǒng)隔離?系統(tǒng)備份要求?(10)軟件成本消耗
與開發(fā)進(jìn)度需求開發(fā)有規(guī)定的時(shí)間表嗎?軟硬件有無(wú)限制?(11)質(zhì)量保證
系統(tǒng)的可靠性要求?系統(tǒng)必須監(jiān)測(cè)和隔離錯(cuò)誤嗎?規(guī)定系統(tǒng)平均出錯(cuò)時(shí)間?出錯(cuò)后,重啟系統(tǒng)允許的時(shí)間?系統(tǒng)變化如何反映到設(shè)計(jì)中?維護(hù)是否包括對(duì)系統(tǒng)的改進(jìn)?系統(tǒng)的可移植性?5.1.2.需求獲取的基本原則深入淺出
需求獲取要盡可能全面、細(xì)致。獲取的需求是個(gè)全集,系統(tǒng)真正實(shí)現(xiàn)的是個(gè)子集。細(xì)致地調(diào)研并不表明在分析時(shí)將調(diào)研內(nèi)容都納入到新系統(tǒng)中,但有利于以后的擴(kuò)充。以流程為主線
在與用戶交流的過程中,應(yīng)該用流程將所有的內(nèi)容串起來(lái)。如信息、組織結(jié)構(gòu)、處理規(guī)則等。這樣便于交流溝通。16流程的描述既要有宏觀,又要有微觀。即要強(qiáng)調(diào)總體的業(yè)務(wù)流程、全生存期的業(yè)務(wù)流程,又要對(duì)流程細(xì)化,有分支的業(yè)務(wù)流程。需求獲取可能是軟件開發(fā)中最困難、最關(guān)鍵、最易出錯(cuò)及最需要交流的方面。表現(xiàn)在:需求的不穩(wěn)定性:在整個(gè)軟件生存周期內(nèi)軟件需求會(huì)隨著時(shí)間的推移發(fā)生變化;需求的不準(zhǔn)確性:用戶和開發(fā)人員的認(rèn)識(shí)會(huì)隨著使用系統(tǒng)實(shí)現(xiàn)業(yè)務(wù)流程的實(shí)踐逐步提高,一開始不可能設(shè)想得面面俱到。需求獲取只有通過有效的客戶/開發(fā)者的合作才能成功。175.1.3需求獲取技術(shù)需求獲取是在問題及其最終解決方案之間架設(shè)橋梁的第一步。獲取需求的一個(gè)必不可少的結(jié)果是對(duì)項(xiàng)目中描述的客戶需求的普遍理解。一旦理解了需求,分析人員、開發(fā)人員和客戶就能探索出描述這些需求的多種解決方案。需求獲取技術(shù)包括兩方面的工作:建立獲取用戶要求的方法的框架;支持和監(jiān)控需求獲取的過程的機(jī)制。181.弄清軟件需求的層次業(yè)務(wù)需求
反映了組織或客戶開展相關(guān)業(yè)務(wù)的工作流和業(yè)務(wù)規(guī)則,是對(duì)系統(tǒng)、產(chǎn)品高層次的目標(biāo)要求,與該組織或客戶的業(yè)務(wù)領(lǐng)域有關(guān)。用戶需求
描述用戶使用軟件需要完成哪些任務(wù),可通過用例(usecase)圖或場(chǎng)景說(shuō)明加以闡明。功能―非功能需求
定義了開發(fā)人員必須實(shí)現(xiàn)的軟件功能,而非功能需求如表所示:192.產(chǎn)品功能、性能要求及過程要求205.1.4.需求調(diào)研的方法調(diào)研用戶的組織結(jié)構(gòu)、崗位設(shè)置、職責(zé)定義,從功能上區(qū)分有多少個(gè)子系統(tǒng),劃分系統(tǒng)的大致范圍,明確系統(tǒng)的目標(biāo)。調(diào)研每個(gè)子系統(tǒng)的工作流程、功能與處理規(guī)則,收集原始信息資料,用數(shù)據(jù)流來(lái)表示物流、資金流、信息流三者的關(guān)系。對(duì)調(diào)研內(nèi)容事先準(zhǔn)備,針對(duì)不同管理層次的用戶詢問不同的問題,列出問題清單。將操作層、管理層、決策層的需求既聯(lián)系又區(qū)分開來(lái),形成一個(gè)需求的層次。21對(duì)與用戶溝通的情況及時(shí)總結(jié)歸納,整理調(diào)研結(jié)果,初步構(gòu)成需求基線。若基線符合要求,則需求獲取完成。需求調(diào)研的主要手段:發(fā)調(diào)查表;召開調(diào)查會(huì);向用戶領(lǐng)域的專家個(gè)別咨詢;實(shí)地考察,跟蹤現(xiàn)場(chǎng)業(yè)務(wù)流程;查閱與待開發(fā)系統(tǒng)有關(guān)的資料;使用各種調(diào)查工具等。22某出版社系統(tǒng)調(diào)查表編號(hào)提出問題1您在哪個(gè)部門工作?2出版業(yè)務(wù)流程是什么?3您每日都處理那些文件、數(shù)據(jù)、報(bào)表?4工作中手工處理特別麻煩的事情是什么?5工作中手工處理什么問題解決不了?影響效率的問題有哪些?6您認(rèn)為提高工作效率,節(jié)省工作時(shí)間,減輕工作強(qiáng)度可采取哪些辦法?某出版社系統(tǒng)調(diào)查表編號(hào)提出問題7您的部門需要成本核算和統(tǒng)計(jì)的內(nèi)容有哪些?8您的部門采用計(jì)算機(jī)管理工作情況如何?9如何改進(jìn)業(yè)務(wù)流程使之更合理?10哪些問題是目前傳統(tǒng)手工方法根本無(wú)法解決的?11出版社計(jì)算機(jī)管理信息系統(tǒng)需要解決什么問題?由于軟件開發(fā)項(xiàng)目和組織文化的不同,對(duì)于需求開發(fā)沒有一個(gè)簡(jiǎn)單的、公式化的途徑。下面列出9個(gè)步驟,用以指導(dǎo)需求獲取活動(dòng)。需求獲取的步驟25定義項(xiàng)目的視圖和范圍包括組織結(jié)構(gòu)圖、各部門的崗位/角色列表。確定用戶類包括人員/責(zé)任矩陣。確定目標(biāo)系統(tǒng)的業(yè)務(wù)工作流包括物流、資金流、信息流,建立業(yè)務(wù)工作流模型。運(yùn)用需求獲取技術(shù)開發(fā)用例(或數(shù)據(jù)流圖)并設(shè)置優(yōu)先級(jí)
用以掌握主要業(yè)務(wù)規(guī)則。收集來(lái)自用戶的質(zhì)量特性信息和其他非功能需求
將性能、安全性、可靠性等需求和其他設(shè)計(jì)約束結(jié)合業(yè)務(wù)規(guī)則,形成功能需求。26分類在用例(或數(shù)據(jù)流圖)中涉及的數(shù)據(jù)包括數(shù)據(jù)的組成和數(shù)據(jù)之間的關(guān)系。詳細(xì)擬訂用例(或數(shù)據(jù)流圖)
建立功能模型,并進(jìn)行審查,用以澄清需求獲取的參與者對(duì)需求的理解。開發(fā)并評(píng)估界面原型
設(shè)想輸入設(shè)備、輸出設(shè)備、顯示風(fēng)格、顯示方式、輸出格式等,建立接口規(guī)范和信息流傳輸規(guī)則。從功能描述中開發(fā)概念測(cè)試用例
用測(cè)試用例來(lái)驗(yàn)證用例(或數(shù)據(jù)流圖)、功能需求和原型。275.1.6.需求整理與表達(dá)的方法采用窮舉方法可以避免遺漏。采用歸納方法,通過對(duì)各種情況進(jìn)行綜合分類可以使問題條理化。采用抽象方法,可以發(fā)現(xiàn)問題的實(shí)質(zhì),抓住問題的主要矛盾,忽略其次要矛盾。需求整理可以多種手段共用,如組織結(jié)構(gòu)圖、業(yè)務(wù)流程圖、多叉樹、關(guān)系矩陣、文字?jǐn)⑹觥⒈砀?、圖形等。需求描述包括組織結(jié)構(gòu)與崗位定義、業(yè)務(wù)流程、處理規(guī)則、數(shù)據(jù)項(xiàng)、功能以及上述5個(gè)方面的關(guān)系。285.1.7.需求確認(rèn)將整理好的用戶需求說(shuō)明書讓用戶確認(rèn)(溝通、交流:剔除重復(fù)和超出項(xiàng)目范圍的需求;討論不同對(duì)象提出的有歧義的需求)295.2需求分析需求分析是軟件定義時(shí)期的最后一個(gè)階段,它的基本任務(wù)是準(zhǔn)確理解用戶的要求,進(jìn)行細(xì)致的調(diào)查分析,將用戶非形式的需求陳述轉(zhuǎn)化為完整的需求定義,再由需求定義轉(zhuǎn)換到相應(yīng)的形式功能規(guī)約(需求規(guī)格說(shuō)明書)。即準(zhǔn)確地回答“系統(tǒng)必須做什么?”這個(gè)問題30軟件開發(fā)是要實(shí)現(xiàn)目標(biāo)系統(tǒng)的物理模型。需求分析的任務(wù)就是借助于當(dāng)前系統(tǒng)的邏輯模型導(dǎo)出目標(biāo)系統(tǒng)的邏輯模型,解決目標(biāo)系統(tǒng)“做什么”的問題。目標(biāo)系統(tǒng)當(dāng)前系統(tǒng)物理模型邏輯模型模型化抽象化物理模型邏輯模型具體化實(shí)例化理解需求導(dǎo)出怎么做做什么31邏輯模型和物理模型模型是對(duì)對(duì)象系統(tǒng)的形式化的特征抽象,概括性或近似地表示;構(gòu)造模型的過程是一個(gè)抽象、分析的過程。模型系統(tǒng)對(duì)象系統(tǒng)抽象(映射)模型應(yīng)用模型構(gòu)造的過程物理模型(實(shí)施模型、技術(shù)模型)邏輯模型(本質(zhì)模型、概念模型)當(dāng)前系統(tǒng)描述現(xiàn)實(shí)系統(tǒng)是如何在物理上實(shí)現(xiàn)的。描述重要的業(yè)務(wù)功能,不考慮系統(tǒng)是如何實(shí)施的。目標(biāo)系統(tǒng)描述新系統(tǒng)是如何實(shí)施的(包括技術(shù))。描述新系統(tǒng)的主要業(yè)務(wù)功能和用戶新的需求,不考慮系統(tǒng)應(yīng)如何實(shí)施。33需要能夠表達(dá)和理解問題的信息域和功能域信息流:數(shù)據(jù)和控制通過一個(gè)系統(tǒng)時(shí)的變化方式。兩個(gè)功能之間的數(shù)據(jù)/控制傳遞就確定了功能間的接口。信息內(nèi)容:?jiǎn)蝹€(gè)數(shù)據(jù)或控制對(duì)象,它們構(gòu)成了某個(gè)更大的由軟件變換生成的信息的集合。信息結(jié)構(gòu):各種數(shù)據(jù)和控制項(xiàng)的內(nèi)部組織。需求分析的原則34以層次化的方式對(duì)問題進(jìn)行分解和不斷細(xì)化縱向分解橫向分解355.2.2系統(tǒng)分析的目標(biāo)識(shí)別用戶要求評(píng)價(jià)系統(tǒng)的可行性進(jìn)行經(jīng)濟(jì)分析和技術(shù)分析把功能分配給硬件、軟件、人、數(shù)據(jù)庫(kù)和其他系統(tǒng)元素建立成本和進(jìn)度限制生成系統(tǒng)規(guī)格說(shuō)明,形成所有后續(xù)工程的基礎(chǔ)365.2.3需求分析的任務(wù)基本任務(wù)就是準(zhǔn)確指出軟件目標(biāo)產(chǎn)品必須做什么,并建立分析模型,創(chuàng)建軟件解決問題的方法。37需求分析的過程可以分成四個(gè)階段:?jiǎn)栴}識(shí)別(需求獲?。┛虅澇鲕浖墓δ芎托阅苄枨?;明確用戶界面需求;指明軟件與其他系統(tǒng)元素的接口需求;建立軟件必須滿足的約束。從系統(tǒng)角度來(lái)理解軟件并評(píng)審用于產(chǎn)生計(jì)劃估算的軟件范圍是否恰當(dāng);確定對(duì)目標(biāo)系統(tǒng)的需求;提出這些需求實(shí)現(xiàn)條件,以及需求應(yīng)達(dá)到的標(biāo)準(zhǔn);修正系統(tǒng)開發(fā)計(jì)劃。需求分析的過程38問題識(shí)別的另一項(xiàng)工作是建立分析所需要的通信途徑,以保證能順利地對(duì)問題進(jìn)行分析。管理人員用戶分析人員軟件開發(fā)組軟件需求說(shuō)明軟件實(shí)施計(jì)劃原型軟件實(shí)施計(jì)劃軟件實(shí)施計(jì)劃軟件需求說(shuō)明軟件需求說(shuō)明原型原型39分析與綜合,導(dǎo)出軟件的邏輯模型(需求建模)
進(jìn)行各種要求的一致性檢查;逐步細(xì)化所有的軟件功能;分解數(shù)據(jù)域,分配給各個(gè)子功能;找出系統(tǒng)各成分之間的聯(lián)系、接口特性和設(shè)計(jì)限制。判斷是否存在不合理的用戶要求或用戶尚未提出的潛在要求。綜合成系統(tǒng)的解決方案,給出目標(biāo)系統(tǒng)的詳細(xì)邏輯模型。40編制需求分析階段的文檔軟件需求規(guī)格說(shuō)明;初步的用戶手冊(cè);確認(rèn)測(cè)試計(jì)劃;修改和完善軟件開發(fā)計(jì)劃。需求評(píng)審作為需求分析階段工作的復(fù)查手段,應(yīng)該對(duì)功能的正確性、文檔的一致性、完備性、準(zhǔn)確性和清晰性,以及其它需求給予評(píng)價(jià)。415.需求整理與表達(dá)的方法采用窮舉方法可以避免遺漏。采用歸納方法,通過對(duì)各種情況進(jìn)行綜合分類可以使問題條理化。采用抽象方法,可以發(fā)現(xiàn)問題的實(shí)質(zhì),抓住問題的主要矛盾,忽略其次要矛盾。需求整理可以多種手段共用,如組織結(jié)構(gòu)圖、業(yè)務(wù)流程圖、多叉樹、關(guān)系矩陣、文字?jǐn)⑹?、表格、圖形等。需求描述包括組織結(jié)構(gòu)與崗位定義、業(yè)務(wù)流程、處理規(guī)則、數(shù)據(jù)項(xiàng)、功能以及上述5個(gè)方面的關(guān)系。42給出系統(tǒng)的邏輯視圖和物理視圖軟件需求的邏輯視圖給出的是軟件要達(dá)到的功能和要處理的數(shù)據(jù)之間的關(guān)系,而不是實(shí)現(xiàn)的細(xì)節(jié)。 軟件需求的邏輯描述是軟件設(shè)計(jì)的基礎(chǔ)。軟件需求的物理視圖給出的是處理功能和數(shù)據(jù)結(jié)構(gòu)的實(shí)際表現(xiàn)形式,這往往是由設(shè)備本身決定的,因此推遲到設(shè)計(jì)階段考慮。43需求建模44抽象(模型化)源于實(shí)驗(yàn)科學(xué),主要要素為數(shù)據(jù)采集方法和假設(shè)的形式說(shuō)明,模型的構(gòu)造與預(yù)測(cè)實(shí)驗(yàn)分析結(jié)果分析.在為可能的算法數(shù)據(jù)結(jié)構(gòu)和系統(tǒng)結(jié)構(gòu)等構(gòu)造模型時(shí)使用此過程.抽象的結(jié)果是概念符號(hào)模型有時(shí)我們使用術(shù)語(yǔ)“抽象”來(lái)表示模型,因?yàn)槲覀儚默F(xiàn)實(shí)世界中抽象出對(duì)我們特別有用的東西。模型(model)模型一般分為具體模型和抽象模型兩大類。具體模型有直觀模型、物理模型等,抽象模型有思維模型、符號(hào)模型、數(shù)學(xué)模型等。
軟件開發(fā)的四個(gè)要素:人員、項(xiàng)目、產(chǎn)品和過程項(xiàng)目過程產(chǎn)品人員工具模板參與者結(jié)果自動(dòng)化
系統(tǒng)包含一組模型,每個(gè)參與軟件系統(tǒng)開發(fā)的人員都需要有一個(gè)獨(dú)特的系統(tǒng)視角。系統(tǒng)構(gòu)架工程師項(xiàng)目經(jīng)理構(gòu)架工程師設(shè)計(jì)人員測(cè)試人員用戶模型的類型數(shù)學(xué)模型描述模型圖形模型需求分析的過程實(shí)例(1)通過對(duì)現(xiàn)實(shí)環(huán)境的調(diào)查,獲得當(dāng)前系統(tǒng)的物理模型
學(xué)生學(xué)生購(gòu)書申請(qǐng)購(gòu)書單發(fā)票領(lǐng)書單書信北107張教務(wù)科信北206王會(huì)計(jì)室信北206李出納員(二實(shí)南)趙教材科學(xué)生購(gòu)買教材的實(shí)際處理流程—當(dāng)前系統(tǒng)物理模型(2)去掉具體模型中的非本質(zhì)因素,抽取現(xiàn)實(shí)系統(tǒng)的實(shí)質(zhì),抽象出當(dāng)前系統(tǒng)的邏輯模型。
學(xué)生購(gòu)買教材的邏輯模型學(xué)生學(xué)生購(gòu)書申請(qǐng)購(gòu)書單發(fā)票領(lǐng)書單書審查有效性開發(fā)票開領(lǐng)書單發(fā)書需求分析的過程實(shí)例需求分析的過程實(shí)例(3)分析當(dāng)前系統(tǒng)與目標(biāo)系統(tǒng)的差別,
建立目標(biāo)系統(tǒng)的邏輯模型
計(jì)算機(jī)教材管理系統(tǒng)的邏輯模型學(xué)生購(gòu)書單發(fā)票領(lǐng)書單審查并開發(fā)票開領(lǐng)書單無(wú)效書單學(xué)生需求分析過程示意(4)對(duì)目標(biāo)系統(tǒng)的邏輯模型進(jìn)行改進(jìn)與優(yōu)化(5)需求分析的驗(yàn)證
5.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)等54結(jié)構(gòu)化分析方法最初只是著眼于數(shù)據(jù)流,自頂向下,逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。擴(kuò)充后,將建模技術(shù)擴(kuò)展到數(shù)據(jù)建模、功能建模和行為建模,以實(shí)體-關(guān)系圖、數(shù)據(jù)流圖和控制流圖、狀態(tài)-遷移圖為工具,數(shù)據(jù)字典為核心,從不同視點(diǎn)建立系統(tǒng)的分析模型。5.3結(jié)構(gòu)化分析方法55結(jié)構(gòu)化分析的分析模型實(shí)體—關(guān)系圖狀態(tài)—遷移圖數(shù)據(jù)流圖數(shù)據(jù)對(duì)象描述加工規(guī)格說(shuō)明數(shù)據(jù)字典控制規(guī)格說(shuō)明565.3.1數(shù)據(jù)建模數(shù)據(jù)模型包括三種互相關(guān)聯(lián)的信息:數(shù)據(jù)對(duì)象,描述對(duì)象的屬性,描述對(duì)象間相互連接的關(guān)系。在需求分析階段描述數(shù)據(jù)對(duì)象和它們之間的關(guān)系,使用了E-R圖。例如,在教學(xué)管理中,一個(gè)教師可以教授零門、一門或多門課程,每位學(xué)生也需要學(xué)習(xí)幾門課程。因此,教學(xué)管理中涉及的對(duì)象(實(shí)體型)有學(xué)生、教師和課程。57教學(xué)數(shù)據(jù)模型學(xué)號(hào)姓名專業(yè)性別……學(xué)生職工號(hào)姓名專業(yè)職稱年齡教師課程號(hào)課程名學(xué)分學(xué)時(shí)……課程學(xué)號(hào)課程號(hào)成績(jī)選課58實(shí)例的關(guān)聯(lián)有三種:一對(duì)一(1:1);一對(duì)多(1:m);多對(duì)多(n:m)。這種實(shí)例的關(guān)聯(lián)稱為“基數(shù)”?;鶖?shù)表明了“重復(fù)性”。教師學(xué)生教授基數(shù):一位教師基數(shù):多位學(xué)生參與度:必須參與度:可選59E-R圖中表示實(shí)體關(guān)聯(lián)的符號(hào)如下:XY一個(gè)X與一個(gè)Y相關(guān)聯(lián)一個(gè)X與一個(gè)或多個(gè)Y相關(guān)聯(lián)XY一個(gè)X與零個(gè)或一個(gè)Y相關(guān)聯(lián)XY一個(gè)X與零個(gè),一個(gè)或多個(gè)Y相關(guān)聯(lián)XY一個(gè)X與一個(gè)Y或Z相關(guān)聯(lián)XYZ一個(gè)X與一個(gè)Y與Z相關(guān)聯(lián)XYZ605.3.2功能建模和數(shù)據(jù)流圖最初,結(jié)構(gòu)化分析方法僅討論數(shù)據(jù)流建模。目標(biāo)系統(tǒng)被表示成如圖所示的數(shù)據(jù)變換流程圖。系統(tǒng)的功能體現(xiàn)在核心的數(shù)據(jù)變換中。外部實(shí)體外部實(shí)體外部實(shí)體外部實(shí)體目標(biāo)系統(tǒng)輸入信息輸入信息輸出信息輸出信息611.功能建模的思想功能建模就是用抽象模型的概念,按照軟件內(nèi)部數(shù)據(jù)傳遞、變換的關(guān)系,自頂向下逐層分解,直到找到滿足功能要求的所有可實(shí)現(xiàn)的軟件為止。根據(jù)DeMarco的論述,功能模型使用了數(shù)據(jù)流圖來(lái)表達(dá)系統(tǒng)內(nèi)數(shù)據(jù)的運(yùn)動(dòng)情況,而數(shù)據(jù)流的變換則用結(jié)構(gòu)化英語(yǔ)、判定表與判定樹來(lái)描述。62數(shù)據(jù)流圖中的主要圖形元素?cái)?shù)據(jù)加工(數(shù)據(jù)變換)數(shù)據(jù)源或數(shù)據(jù)潭(外部實(shí)體)數(shù)據(jù)流數(shù)據(jù)存儲(chǔ)文件63分層的數(shù)據(jù)流圖64數(shù)據(jù)流圖的層次結(jié)構(gòu)為了表達(dá)數(shù)據(jù)處理過程,需要采用層次結(jié)構(gòu)的數(shù)據(jù)流圖。按照系統(tǒng)的層次結(jié)構(gòu)進(jìn)行逐步分解,并以分層的數(shù)據(jù)流圖反映這種結(jié)構(gòu)關(guān)系。頂層流圖僅包含一個(gè)加工,它代表被開發(fā)系統(tǒng)。它的輸入流是該系統(tǒng)的輸入數(shù)據(jù),輸出流是系統(tǒng)所輸出數(shù)據(jù)底層流圖是指其加工不需再做分解的數(shù)據(jù)流圖,它處在最底層中間層流圖則表示對(duì)其上層父圖的細(xì)化。它的每一加工可能繼續(xù)細(xì)化,形成子圖。652.結(jié)構(gòu)化分析方法功能建模的步驟實(shí)例考務(wù)處理系統(tǒng)的功能(1)對(duì)考生送來(lái)的報(bào)名單進(jìn)行檢查;(2)對(duì)合格的報(bào)名單編好準(zhǔn)考證號(hào)后將準(zhǔn)考證送給考生,并將匯總后的考生名單送給閱卷站;(3)對(duì)閱卷站送來(lái)的成績(jī)單進(jìn)行檢查,并根據(jù)考試中心制定的合格標(biāo)準(zhǔn)審定合格者;(4)制作考生通知單(含成績(jī)及合格/不合格標(biāo)志)送給考生;(5)按地區(qū)進(jìn)行成績(jī)分類統(tǒng)計(jì)和試題難度分析,產(chǎn)生統(tǒng)計(jì)分析表。66頂層數(shù)據(jù)流圖考生考務(wù)處理系統(tǒng)考試中心閱卷站不合格報(bào)名表報(bào)名表準(zhǔn)考證考生通知單成績(jī)單合格標(biāo)準(zhǔn)錯(cuò)誤成績(jī)單考生名單統(tǒng)計(jì)分析表67這個(gè)數(shù)據(jù)流圖只是一個(gè)高層的系統(tǒng)邏輯模型,它反映了目標(biāo)系統(tǒng)要實(shí)現(xiàn)的功能以及系統(tǒng)與外界的關(guān)系。該圖亦稱為上下文圖或語(yǔ)境圖(ContextDiagram)數(shù)據(jù)流圖繪制步驟首先確定系統(tǒng)的輸入和輸出根據(jù)考務(wù)處理業(yè)務(wù),畫出頂層數(shù)據(jù)流圖,以反映最主要業(yè)務(wù)處理流程68經(jīng)過分析,考務(wù)業(yè)務(wù)處理的主要功能應(yīng)當(dāng)有登記報(bào)名單、統(tǒng)計(jì)成績(jī)兩大項(xiàng)。主要數(shù)據(jù)流輸入的源點(diǎn)和輸出終點(diǎn)是考生、考試中心和閱卷站。然后從輸入端開始,根據(jù)考務(wù)業(yè)務(wù)工作流,畫出數(shù)據(jù)流流經(jīng)的各加工框,逐步畫到輸出端,得到第1層數(shù)據(jù)流圖。69報(bào)名表準(zhǔn)考證1登記報(bào)名表2統(tǒng)計(jì)成績(jī)不合格報(bào)名表考生通知單成績(jī)單統(tǒng)計(jì)分析表第1層數(shù)據(jù)流圖考生名冊(cè)合格標(biāo)準(zhǔn)考生名單錯(cuò)誤成績(jī)單70第2層數(shù)據(jù)流圖(a)1.1檢查報(bào)名表報(bào)名表準(zhǔn)考證1.2編準(zhǔn)考證號(hào)碼不合格報(bào)名表考生名冊(cè)考生名單合格報(bào)名表1.3登記考生合格報(bào)名表71第2層數(shù)據(jù)流圖(b)2.1檢查成績(jī)單2.2審定合格者考生名冊(cè)正確成績(jī)單2.3制作通知單2.4分析統(tǒng)計(jì)成績(jī)2.5分析試題難度試題得分表考生通知單難度分析表合格標(biāo)準(zhǔn)分類統(tǒng)計(jì)表成績(jī)單錯(cuò)誤成績(jī)單經(jīng)審定的成績(jī)單723.繪制數(shù)據(jù)流圖的原則數(shù)據(jù)流圖上所有圖形符號(hào)只限于前述四種基本圖形元素;數(shù)據(jù)流圖的頂層圖上的數(shù)據(jù)流必須封閉在外部實(shí)體之間;每個(gè)加工至少有一個(gè)輸入數(shù)據(jù)流和一個(gè)輸出數(shù)據(jù)流;在數(shù)據(jù)流圖中,需按層給加工框編號(hào)。編號(hào)表明該加工所處層次及上下層的親子關(guān)系;73規(guī)定任何一個(gè)數(shù)據(jù)流子圖必須與它上一層的一個(gè)加工對(duì)應(yīng),兩者的輸入數(shù)據(jù)流和輸出數(shù)據(jù)流必須一致。此即父圖與子圖的平衡;如果一個(gè)數(shù)據(jù)文件僅在展開的數(shù)據(jù)流子圖中使用,可以在父圖中不畫出;可以在數(shù)據(jù)流圖中加入物質(zhì)流,幫助用戶理解數(shù)據(jù)流圖;圖上每個(gè)元素都必須有名字;數(shù)據(jù)流圖中不可夾帶控制流。74
數(shù)據(jù)流和控制流舉例(使用Ward和mellor符號(hào))監(jiān)控固件和操作接口每個(gè)固件狀態(tài)動(dòng)作警告機(jī)器人初始化控制操作命令部件狀態(tài)緩沖器位置命令開始/停止處理機(jī)器人命令機(jī)器人命令文件操作設(shè)置處理活動(dòng)記錄機(jī)器人動(dòng)作位串75數(shù)據(jù)和控制模型的關(guān)系
DFD加工規(guī)格說(shuō)明加工模型DFD控制規(guī)格說(shuō)明控制模型數(shù)據(jù)輸出數(shù)據(jù)條件數(shù)據(jù)輸入控制輸入控制輸出加工激活者765.3.3行為建模行為建模給出需求分析方法的所有操作原則,但只有結(jié)構(gòu)化分析方法的擴(kuò)充版本才提供這種建模的符號(hào)。狀態(tài)遷移圖
Petri網(wǎng)771.狀態(tài)遷移圖例如,有關(guān)CPU分配的進(jìn)程的狀態(tài)遷移。t2t3t4t1運(yùn)行就緒等待78狀態(tài)遷移圖是描述系統(tǒng)的狀態(tài)如何響應(yīng)外部的事件進(jìn)行推移的一種圖形表示?!啊稹北硎究傻玫降南到y(tǒng)狀態(tài)“→”表示從一種狀態(tài)向另一種狀態(tài)的遷移。S2S1S3t1t2t3t4t4t3t2t1事件狀態(tài)S1S2S3S3S2S3S1792.Petri網(wǎng)Petri網(wǎng)已廣泛地應(yīng)用于硬件與軟件系統(tǒng)的開發(fā)中,它適用于描述與分析相互獨(dú)立、協(xié)同操作的處理系統(tǒng),也就是并發(fā)執(zhí)行的處理系統(tǒng)。Petri網(wǎng)簡(jiǎn)稱PNG(PetriNetGraph),它有兩種結(jié)點(diǎn):位置:符號(hào)“○”,表示系統(tǒng)狀態(tài)。轉(zhuǎn)移:符號(hào)“|”,表示系統(tǒng)中的事件。有向邊表示轉(zhuǎn)移的輸入,或轉(zhuǎn)移的輸出80標(biāo)記,或稱令牌(token),是表明系統(tǒng)當(dāng)前處于什么狀態(tài)的標(biāo)志。Petri網(wǎng)可能的變化有:81進(jìn)程得到資源占用資源運(yùn)行釋放資源不用資源運(yùn)行PR1LOCKR處理11UNLOCKR處理12PR2LOCKR處理21UNLOCKR處理22例如,處理兩個(gè)進(jìn)程的同步問題:82835.3.4數(shù)據(jù)字典數(shù)據(jù)字典是結(jié)構(gòu)化分析方法的核心。與各模型的圖形表示配合,能清楚地表達(dá)數(shù)據(jù)處理的要求詞條描述——對(duì)于在模型中每一個(gè)被命名的圖形元素,均加以定義,其內(nèi)容有:
名字,別名或編號(hào),分類,描述,定義,位置,其它,等。84(1)數(shù)據(jù)流詞條描述
數(shù)據(jù)流名:說(shuō)明:簡(jiǎn)要介紹它產(chǎn)生的原因和結(jié)果數(shù)據(jù)流來(lái)源:來(lái)自何方數(shù)據(jù)流去向:去向何處數(shù)據(jù)流組成:數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)量流通量:數(shù)據(jù)量,流通量1.詞條描述85(2)數(shù)據(jù)元素詞條描述類型:數(shù)字(離散值,連續(xù)值),文字(編碼類型)長(zhǎng)度:取值范圍:相關(guān)的數(shù)據(jù)元素及數(shù)據(jù)結(jié)構(gòu):(3)數(shù)據(jù)文件詞條描述
數(shù)據(jù)文件名:簡(jiǎn)述:存放的是什么數(shù)據(jù)輸入數(shù)據(jù):輸出數(shù)據(jù):
86數(shù)據(jù)文件組成:數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)方式:順序,直接,關(guān)鍵碼存取頻率:
(4)加工邏輯詞條描述
加工名:加工編號(hào):反映該加工的層次簡(jiǎn)要描述:加工邏輯及功能簡(jiǎn)述輸入數(shù)據(jù)流:輸出數(shù)據(jù)流:
加工邏輯:簡(jiǎn)述加工程序,加工順序87(5)數(shù)據(jù)源及數(shù)據(jù)譚詞條描述
名稱:外部實(shí)體名簡(jiǎn)要描述:什么外部實(shí)體有關(guān)數(shù)據(jù)流:數(shù)目:882.數(shù)據(jù)結(jié)構(gòu)的描述
符號(hào)
含義
舉例=被定義為+與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..989存折格式90存折=戶名+所號(hào)+帳號(hào)+開戶日+性質(zhì)+(印密)+1{存取行}50戶名=2{字母}24所號(hào)=“001”..“999”帳號(hào)=“00000001”..“99999999”開戶日=年+月+日性質(zhì)=“1”..“6”注:“1”表示普通戶,“5”表示工資戶等印密=“0”注:印密在存折上不顯示存取行=日期+(摘要)+支出+存入+余額+操作+復(fù)核913.基本加工邏輯說(shuō)明
對(duì)數(shù)據(jù)流圖的每一個(gè)基本加工,必須有一個(gè)基本加工邏輯說(shuō)明?;炯庸み壿嬚f(shuō)明必須描述基本加工如何把輸入數(shù)據(jù)流變換為輸出數(shù)據(jù)流的加工規(guī)則。加工邏輯說(shuō)明必須描述實(shí)現(xiàn)加工的策略而不是實(shí)現(xiàn)加工的細(xì)節(jié)。加工邏輯說(shuō)明中包含的信息應(yīng)是充足的,完備的,有用的,無(wú)冗余的。92用于寫加工邏輯說(shuō)明的工具結(jié)構(gòu)化語(yǔ)言判定表判定樹93是一種介于自然語(yǔ)言和形式化語(yǔ)言之間的語(yǔ)言。簡(jiǎn)要描述:什么外部實(shí)體編號(hào)表明該加工所處層次及上下層的親子關(guān)系;數(shù)據(jù)庫(kù)其基本控制結(jié)構(gòu)有三種:原型化方法提供了一種有力的學(xué)習(xí)手段。支撐軟件、開發(fā)設(shè)備等。關(guān)系規(guī)范化的程度,通常按屬性間的依賴程度來(lái)區(qū)分,并以范式NF(NormalForm)來(lái)表達(dá)。5元組中每一元素是學(xué)生的某一屬性的屬性值。根據(jù)考務(wù)處理業(yè)務(wù),畫出頂層數(shù)據(jù)流圖,以反映最主要業(yè)務(wù)處理流程使關(guān)系模式更靈活,易于實(shí)現(xiàn)接近自然語(yǔ)言的查詢方式。性質(zhì)則是指事物的性質(zhì)或特征。進(jìn)行經(jīng)濟(jì)分析和技術(shù)分析找出系統(tǒng)各成分之間的聯(lián)系、接口特性和設(shè)計(jì)限制。(1)結(jié)構(gòu)化語(yǔ)言結(jié)構(gòu)化語(yǔ)言的詞匯表由命令動(dòng)詞數(shù)據(jù)字典中定義的名字有限的自定義詞邏輯關(guān)系詞
IF_THEN_ELSE、
SWITCH、WHILE_DO、FOR、
DO_WHILE等組成。94是一種介于自然語(yǔ)言和形式化語(yǔ)言之間的語(yǔ)言。語(yǔ)言的正文用基本控制結(jié)構(gòu)進(jìn)行分割,加工中的操作用自然語(yǔ)言短語(yǔ)來(lái)表示。其基本控制結(jié)構(gòu)有三種:簡(jiǎn)單陳述句結(jié)構(gòu):避免復(fù)合語(yǔ)句;重復(fù)結(jié)構(gòu):while_do、for_do或do_while結(jié)構(gòu)。判定結(jié)構(gòu):if_then_else或switch_do結(jié)構(gòu);95商店業(yè)務(wù)處理系統(tǒng)中“檢查發(fā)貨單”if發(fā)貨單金額超過$500thenif欠款超過了60天then在償還欠款前不予批準(zhǔn)else(欠款未超期)發(fā)批準(zhǔn)書,發(fā)貨單else(發(fā)貨單金額未超過$500)if欠款超過60天then發(fā)批準(zhǔn)書,發(fā)貨單及賒欠報(bào)告else(欠款未超期)發(fā)批準(zhǔn)書,發(fā)貨單
96(2)判定表如果數(shù)據(jù)流圖的加工需要依賴于多個(gè)邏輯條件的取值,使用判定表來(lái)描述比較合適。97以“檢查發(fā)貨單”為例98(3)判定樹判定樹也是用來(lái)表達(dá)加工邏輯的一種工具。有時(shí)侯它比判定表更直觀。檢查發(fā)貨單金額>$500金額$500
欠款>60天不發(fā)出批準(zhǔn)書
欠款60天發(fā)貨單發(fā)出批準(zhǔn)書、
欠款>60天發(fā)出批準(zhǔn)書、發(fā)貨單及賒欠報(bào)告
欠款60天發(fā)出批準(zhǔn)書、發(fā)貨單99這是一種有效駕馭風(fēng)險(xiǎn)的技術(shù)。在軟件開發(fā)中,原型是軟件的一個(gè)早期可運(yùn)行的版本,它反映最終系統(tǒng)的部分重要特性。探索型:目的是要弄清對(duì)目標(biāo)系統(tǒng)的要求,確定所希望的特性,并探討多種方案的可行性。實(shí)驗(yàn)型:這種原型用于大規(guī)模開發(fā)和實(shí)現(xiàn)之前,考核方案是否合適,規(guī)格說(shuō)明是否可靠。5.4快速原型化方法100
進(jìn)化型:這種原型的目的不在于改進(jìn)規(guī)格說(shuō)明,而是將系統(tǒng)建造得易于變化,在改進(jìn)原型的過程中,逐步將原型進(jìn)化成最終系統(tǒng)。原型使用策略
廢棄策略追加策略101建立快速原型的好處增進(jìn)軟件者和用戶對(duì)系統(tǒng)服務(wù)需求的理解,使比較含糊的具有不確定性的軟件需求(主要是功能)明確化。原型化方法提供了一種有力的學(xué)習(xí)手段??梢匀菀椎卮_定系統(tǒng)的性能,確認(rèn)各項(xiàng)主要系統(tǒng)服務(wù)的可應(yīng)用性,確認(rèn)系統(tǒng)設(shè)計(jì)的可行性,確認(rèn)系統(tǒng)作為產(chǎn)品的結(jié)果。有的原型可以直接成為產(chǎn)品,有的略加修改就可成為最終系統(tǒng)的一個(gè)組成部分。102103原型開發(fā)技術(shù)可執(zhí)行規(guī)格說(shuō)明基于場(chǎng)景(scenario)的設(shè)計(jì)自動(dòng)程序設(shè)計(jì)專用語(yǔ)言可復(fù)用(reusable)的軟件簡(jiǎn)化假設(shè)1041.可執(zhí)行規(guī)格說(shuō)明可執(zhí)行規(guī)格說(shuō)明是用于需求規(guī)格說(shuō)明的一種自動(dòng)化技術(shù)。使用這種方法,人們可以直接觀察他們用語(yǔ)言規(guī)定的任何系統(tǒng)性行為。包括代數(shù)規(guī)格說(shuō)明有限狀態(tài)模型可執(zhí)行的數(shù)據(jù)流圖105(1)代數(shù)規(guī)格說(shuō)明使用集合、定義于這些集合上的函數(shù)和定義于這些函數(shù)上的方程來(lái)描述對(duì)象。規(guī)格說(shuō)明的操作語(yǔ)義用這些方程表示。舉例:定義一個(gè)無(wú)界的棧及其操作NEW_STACK:→StackPUSH:Stack,Element→StackPOP:Stack→(Element|Undefined)POP(NEW_STACK())=UndefinedPOP(PUSH(Stack,elem))=elem106(2)有限狀態(tài)模型parnas提出的使用最廣泛的一種可執(zhí)行規(guī)格說(shuō)明形式。從一個(gè)初始狀態(tài)開始接收輸入,到產(chǎn)生輸出,狀態(tài)在推移變化。施加在狀態(tài)元素上的約束確定了有效狀態(tài)的推移。舉例:建立用戶/程序?qū)υ?07startgoofinfobyenewentryreport‘enter’‘quit’‘help’‘print’108(3)可執(zhí)行的數(shù)據(jù)流圖數(shù)據(jù)流圖是基于結(jié)構(gòu)化開發(fā)方法的結(jié)構(gòu)化規(guī)格說(shuō)明用一種可執(zhí)行的語(yǔ)言程序代替定義處理邏輯的結(jié)構(gòu)化英語(yǔ),數(shù)據(jù)流圖就成為由可執(zhí)行語(yǔ)言程序模塊組成的網(wǎng)絡(luò),在一定環(huán)境或工具的支持下就可成為一個(gè)可以執(zhí)行的原型系統(tǒng)。1092.基于場(chǎng)景的設(shè)計(jì)場(chǎng)景是指用戶界面的原型。一個(gè)場(chǎng)景用以模擬在系統(tǒng)運(yùn)行期間用戶經(jīng)歷的事件。它提供了輸入─處理─輸出的屏幕格式和有關(guān)對(duì)話的模型。因此,軟件開發(fā)人員能夠給用戶顯示系統(tǒng)的逼真的視圖,使用戶得以判斷是否符合他的意圖。可在任一場(chǎng)景中使用一套可復(fù)用的軟件模塊,以表達(dá)某一方面的要求。110可使用一種原型語(yǔ)言來(lái)描述原型系統(tǒng)。原型開發(fā)過程中用這種語(yǔ)言來(lái)定義屏幕數(shù)據(jù)項(xiàng)相關(guān)的操作從系統(tǒng)的外部描述開始,開發(fā)與數(shù)據(jù)庫(kù)的接口錯(cuò)誤處理和恢復(fù)過程等系統(tǒng)的與外部視圖一致的細(xì)節(jié)。1113.自動(dòng)程序設(shè)計(jì)在程序自動(dòng)生成環(huán)境的支持下,利用計(jì)算機(jī)實(shí)現(xiàn)軟件的開發(fā)??梢宰詣?dòng)或半自動(dòng)地把用戶的非過程式問題規(guī)格說(shuō)明轉(zhuǎn)換為某種高級(jí)語(yǔ)言程序:演繹綜合手段:基于數(shù)學(xué)推理的構(gòu)造式證明。程序變換手段:將一程序轉(zhuǎn)換成另一功能等價(jià)的程序,并保持其正確性不變。112
實(shí)例推廣手段:從實(shí)例特征出發(fā),將它推廣為待編程序的特征,最后得到程序。
過程化手段:研究甚高級(jí)語(yǔ)言的編譯和知識(shí)的過程化。1134.專用語(yǔ)言專用語(yǔ)言是應(yīng)用領(lǐng)域的模型化語(yǔ)言。在原型開發(fā)中使用專用語(yǔ)言,可方便用戶和軟件開發(fā)者在計(jì)劃中的系統(tǒng)特性方面的交流。1145.軟件復(fù)用技術(shù)利用可復(fù)用的模塊,做出適當(dāng)?shù)慕M合,就可得到快速構(gòu)造的原型系統(tǒng)。為了快速地構(gòu)造原型,這些模塊必須有簡(jiǎn)單而清晰的界面;應(yīng)當(dāng)盡量不依賴其它的模塊或數(shù)據(jù)結(jié)構(gòu);應(yīng)具有一些通用的功能。1156.簡(jiǎn)化假設(shè)簡(jiǎn)化假設(shè)是在開發(fā)過程中使設(shè)計(jì)者迅速得到一個(gè)簡(jiǎn)化的系統(tǒng)所做的假設(shè)。盡管這些假設(shè)可能實(shí)際上并不能成立,但它們?cè)谠烷_發(fā)過程中可以使開發(fā)者的注意力集中在一些主要的方面。1165.5數(shù)據(jù)及數(shù)據(jù)庫(kù)需求在數(shù)據(jù)字典中,強(qiáng)調(diào)對(duì)數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)的邏輯設(shè)計(jì),并用數(shù)據(jù)結(jié)構(gòu)表達(dá)數(shù)據(jù)項(xiàng)之間的邏輯關(guān)系。但任何一個(gè)軟件系統(tǒng)都可能有成千上萬(wàn)個(gè)數(shù)據(jù)項(xiàng),僅僅描述這些數(shù)據(jù)項(xiàng)是不夠的,更重要的是如何把它們以最優(yōu)的方式組織起來(lái),以滿足系統(tǒng)對(duì)數(shù)據(jù)的要求。用例1175.5.1有關(guān)數(shù)據(jù)庫(kù)的基本概念在軟件系統(tǒng)中需要處理的數(shù)據(jù)是現(xiàn)實(shí)世界中存在的事物及其關(guān)聯(lián)的反映。人們通常將與數(shù)據(jù)處理有關(guān)的的領(lǐng)域分為三個(gè)世界:現(xiàn)實(shí)世界信息世界數(shù)據(jù)世界現(xiàn)實(shí)世界是存在于人們頭腦之外的客觀世界,現(xiàn)實(shí)世界中的事物可分成對(duì)象和性質(zhì)兩大類。118對(duì)象可以是人、是物,還可以是概念的東西,例如,大學(xué)、城市等。對(duì)象還可以指事物與事物間的關(guān)聯(lián)。性質(zhì)則是指事物的性質(zhì)或特征。信息世界也叫做觀念世界,是現(xiàn)實(shí)世界在人們頭腦中的反映??陀^世界中的事物在信息世界中叫做實(shí)體,反映事物之間關(guān)聯(lián)的叫做實(shí)體模型。實(shí)體是由若干屬性的屬性值組成。屬性是實(shí)體某一方面的特征,相應(yīng)于事物的性質(zhì)。119例如,一個(gè)學(xué)生實(shí)體是如下的一個(gè)5元組:(951149,袁秋慧,女,19,軟件)5元組中每一元素是學(xué)生的某一屬性的屬性值。他們對(duì)應(yīng)的屬性集合是:(學(xué)號(hào),姓名,性別,年齡,專業(yè))這些屬性集合表征了“學(xué)生”實(shí)體的類型,叫做實(shí)體型。同一類型的實(shí)體的集合叫做實(shí)體集。數(shù)據(jù)世界則是信息世界中信息的數(shù)據(jù)化,現(xiàn)實(shí)世界中的事物及其關(guān)聯(lián)在數(shù)據(jù)世界中用數(shù)據(jù)模型描述。120描述每一實(shí)體的數(shù)據(jù)稱為記錄,描述屬性的數(shù)據(jù)叫做數(shù)據(jù)項(xiàng)或字段。與實(shí)體集相對(duì)應(yīng)的稱為文件。例如,學(xué)生文件就由多個(gè)記錄組成,這些記錄放在一起構(gòu)成一個(gè)二維表。表中每一橫排叫做一個(gè)記錄或元組,每一縱列叫做一個(gè)屬性。記錄由數(shù)據(jù)項(xiàng)組成,正如實(shí)體由若干屬性的屬性值組成一樣。一般數(shù)據(jù)項(xiàng)沿用屬性名。用做屬性名時(shí)表示觀念信息,用做數(shù)據(jù)項(xiàng)名時(shí)表示數(shù)據(jù)信息。每個(gè)數(shù)據(jù)項(xiàng)包括兩個(gè)特征:即數(shù)據(jù)類型和數(shù)據(jù)長(zhǎng)度。121為了對(duì)文件中的記錄有效組織和存取,通常指定一個(gè)數(shù)據(jù)項(xiàng)進(jìn)行區(qū)別,這個(gè)數(shù)據(jù)項(xiàng)叫做關(guān)鍵字,用_ID標(biāo)識(shí)。學(xué)號(hào)姓名性別年齡專業(yè)990080趙赤兵男17國(guó)際金融990436錢橙海男20生物工程992570孫蘭波女20無(wú)線電通信994021李綠濤男18自動(dòng)控制994149周青華女19計(jì)算機(jī)應(yīng)用1225.5.2E-R方法
(Entity-RelationshipApproach)
和實(shí)體模型在需求分析階段進(jìn)行數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)過程中,使用E-R圖,可定義一個(gè)實(shí)體模型。實(shí)體模型是現(xiàn)實(shí)世界的純表示,它不涉及數(shù)據(jù)世界的數(shù)據(jù)結(jié)構(gòu)、存取路徑、存取效率等問題。因此,它可以轉(zhuǎn)換成數(shù)據(jù)庫(kù)中的數(shù)據(jù)模型。123數(shù)據(jù)結(jié)構(gòu)的規(guī)范化信息域分析需要確定數(shù)據(jù)的內(nèi)容,每個(gè)數(shù)據(jù)項(xiàng)要用表格列出,最后組織成文件的邏輯結(jié)構(gòu),即面向應(yīng)用而不是面向存儲(chǔ)的結(jié)構(gòu)。為了便于數(shù)據(jù)庫(kù)的設(shè)計(jì),常常要對(duì)這種結(jié)構(gòu)做一些簡(jiǎn)化,其中最常見的一種方法就是規(guī)范化技術(shù)?!耙?guī)范化”將數(shù)據(jù)的邏輯結(jié)構(gòu)歸結(jié)為滿足一定條件的二維表(關(guān)系)。124
表格中每個(gè)信息項(xiàng)必須是一個(gè)不可分割的數(shù)據(jù)項(xiàng),不可是組項(xiàng)。
表格中每一列(列表示屬性)中所有信息項(xiàng)必須是同一類型,各列的名字(屬性名)互異,列的次序任意。
表格中各行(行表示元組)互不相同,行的次序任意。不滿足上述要求的二維表或關(guān)系,叫做非規(guī)范化關(guān)系。對(duì)于非規(guī)范化的關(guān)系,必須將它規(guī)范化。125規(guī)范化的目的是:消除數(shù)據(jù)冗余消除關(guān)系中屬性的多義性使關(guān)系的“概念”單一化,消除組項(xiàng)或重復(fù)組;方便操作使關(guān)系模式更靈活,易于實(shí)現(xiàn)接近自然語(yǔ)言的查詢方式。126用教學(xué)管理例說(shuō)明如何規(guī)范化有三個(gè)實(shí)體型,即課程、學(xué)生和教師,用三個(gè)關(guān)系保存它們的信息:
學(xué)生(學(xué)號(hào),姓名,性別,年齡,專業(yè),籍貫)教師(職工號(hào),姓名,年齡,職稱,工資級(jí)別,工資)課程(課程號(hào),課程名,學(xué)分,學(xué)時(shí),課程類型)127為表示實(shí)體型之間的關(guān)聯(lián),又建立兩個(gè)關(guān)系:選課(學(xué)號(hào),課程號(hào),聽課出勤率,作業(yè)完成率,分?jǐn)?shù))教課(職工號(hào),課程號(hào))這五個(gè)關(guān)系,組成了數(shù)據(jù)庫(kù)的模型。在每個(gè)關(guān)系中,屬性名下加下劃線
指明關(guān)鍵字。并規(guī)定關(guān)鍵字能唯一地標(biāo)識(shí)一個(gè)元組。關(guān)系規(guī)范化的程度,通常按屬性間的依賴程度來(lái)區(qū)分,并以范式NF(NormalForm)來(lái)表達(dá)。常用的范式分為第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。128設(shè)R是一個(gè)關(guān)系,X和Y是R中的兩個(gè)屬性。若對(duì)于X的任一個(gè)值,Y僅有一個(gè)值與之對(duì)應(yīng),則稱R的屬性Y函數(shù)依賴于屬性X。例如,教師(職工號(hào),姓名,年齡,)其中,屬性“姓名”,“年齡”等都函數(shù)依賴于屬性“職工號(hào)”。屬性X可以是復(fù)合屬性,如:選課(學(xué)號(hào),課程號(hào),聽課出勤率,)129如果屬性Y函數(shù)依賴于復(fù)合屬性X,而不與X的任何真子集函數(shù)依賴,則稱屬性Y完全函數(shù)依賴于復(fù)合屬性X。例如在“選課”關(guān)系中,屬性“聽課出勤率”、“作業(yè)完成率”和“分?jǐn)?shù)”等表示某個(gè)學(xué)生學(xué)習(xí)某門課程時(shí)的學(xué)習(xí)情
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度房地產(chǎn)項(xiàng)目增資入股投資協(xié)議
- 二零二五年度辦公室文員聘用與企業(yè)文化融合協(xié)議
- 二零二五年度新能源汽車碰撞責(zé)任免除合同
- 2025年度現(xiàn)代農(nóng)業(yè)病蟲害防治藥害賠償協(xié)議書
- 二零二五年度勞動(dòng)局標(biāo)準(zhǔn)合同:養(yǎng)老服務(wù)業(yè)員工就業(yè)保障協(xié)議范本
- 2025年度賬戶變更補(bǔ)充服務(wù)協(xié)議
- 高性能計(jì)算中心設(shè)備采購(gòu)及安裝合同
- 企業(yè)辦公室裝飾設(shè)計(jì)與施工服務(wù)合同
- 教育培訓(xùn)行業(yè)線上課程開發(fā)與運(yùn)營(yíng)計(jì)劃書
- 電氣設(shè)備安裝工程施工合同新
- 2《中國(guó)老年糖尿病診療指南(2024年版)》解讀
- 國(guó)自科項(xiàng)目申報(bào)協(xié)議書模板
- 行政或后勤崗位招聘筆試題及解答(某大型國(guó)企)2025年
- 2024年北京中考地理試卷
- 四川蜀道集團(tuán)筆試題
- 零食門市轉(zhuǎn)讓協(xié)議書范本
- 電氣自動(dòng)化工程師考試題庫(kù)
- 小學(xué)利潤(rùn)問題應(yīng)用題100道附答案(完整版)
- 醫(yī)院智能化系統(tǒng)內(nèi)網(wǎng)、外網(wǎng)及設(shè)備網(wǎng)系統(tǒng)拓?fù)鋱D-可編輯課件
- 小學(xué)生心理健康主題家長(zhǎng)會(huì)
- 社交禮儀-儀態(tài)禮儀
評(píng)論
0/150
提交評(píng)論