《軟件需求分析》教學(xué)PPT
《軟件需求分析》教學(xué)PPT,軟件需求分析,軟件,需求,分析,教學(xué),PPT
第8章.原型主要內(nèi)容1.應(yīng)用原型的必要性2.原型的類別3.原型方法過程4.原型方法的風(fēng)險(xiǎn)1.應(yīng)用原型的必要性什么是原型 n“原型是一個(gè)系統(tǒng),它內(nèi)化了(capture)一個(gè)更遲系統(tǒng)(later system)的本質(zhì)特征。原型系統(tǒng)通常被構(gòu)造為不完整的系統(tǒng),以在將來進(jìn)行改進(jìn)、補(bǔ)充或者替代?!眓如果在最終的物件(final artifact)產(chǎn)生之前,一個(gè)中間物件(mediate artifact)被用來在一定廣度和深度范圍內(nèi)表現(xiàn)這個(gè)最終物件,那么這個(gè)中間物件就被認(rèn)為是最終物件在該廣度和深度上的原型。1.應(yīng)用原型的必要性什么是原型n包括書面描繪、場景敘述、情節(jié)串聯(lián)圖板、幻燈演示、動(dòng)畫模擬、屏幕快照和程序代碼等在內(nèi)的各種被用來探索和論證軟件系統(tǒng)功能的物件都是軟件的原型 n一個(gè)組織會(huì)發(fā)展出自己獨(dú)特的原型文化,這些原型文化僅僅將一些限定類型的事物看作是有效的原型 1.應(yīng)用原型的必要性為什么要利用原型 n利用原型的好處有:q及時(shí)、有力的響應(yīng)用戶需求的變化;q減少返工;q幫助控制不完整需求所帶來的風(fēng)險(xiǎn);q可以將一個(gè)大的難以處理的開發(fā)過程細(xì)分成一些更小更容易處理的步驟;q減少開發(fā)成本,提高經(jīng)濟(jì)效益;q增加開發(fā)者之間的交流,幫助確定技術(shù)解決方案的可行性;q有效的識(shí)別風(fēng)險(xiǎn)和解決風(fēng)險(xiǎn),幫助進(jìn)行風(fēng)險(xiǎn)管理;q提高用戶在軟件開發(fā)中的參與程度。1.應(yīng)用原型的必要性為什么要利用原型n幫助需求工程師及早解決需求的不確定性:q創(chuàng)新性產(chǎn)品,它們的基本需求是潛在的,有著很大的不確定性;q產(chǎn)品的用戶對相關(guān)類別的產(chǎn)品沒有經(jīng)驗(yàn),產(chǎn)品的細(xì)節(jié)需求存在著不確定性;q用戶但在完成工作的方式上仍然存在障礙,產(chǎn)品在整體方案的可行性上存在著不確定性;q用戶在清晰說明他們的需求方面存在困難,這些相關(guān)的需求是有著不確定性的需求;q需求工程師在理解用戶的需求上存在困難,在澄清和理解之前,這些需求存在著不確定性;q需求的可行性值得懷疑,即具體需求的可滿足性存在著不確定性。主要內(nèi)容1.應(yīng)用原型的必要性2.原型的類別3.原型方法過程4.原型方法的風(fēng)險(xiǎn)2.原型的類別按照使用方式分類n演示原型(演示原型(presentation prototype)q主要被用在啟動(dòng)項(xiàng)目階段主要被用在啟動(dòng)項(xiàng)目階段 q目的是讓用戶相信應(yīng)用系統(tǒng)的開發(fā)是可行的 n嚴(yán)格意義上的原型(嚴(yán)格意義上的原型(prototype proper)q主要被用在分析需求階段 q用來闡明用戶界面或者系統(tǒng)功能的某些特定方面 n試驗(yàn)原型(試驗(yàn)原型(breadboard prototype)q主要被用在構(gòu)建系統(tǒng)階段 q幫助開發(fā)者澄清他們所面對的一些和系統(tǒng)構(gòu)建相關(guān)的技術(shù)問題 n引示系統(tǒng)原型(引示系統(tǒng)原型(pilot system prototype)q會(huì)被開發(fā)在系統(tǒng)開發(fā)的各個(gè)階段 q用作最終系統(tǒng)的構(gòu)建核心 2.原型的類別按照開發(fā)方法分類n探索式(探索式(exploratory)q以缺陷需求開始繼而不斷調(diào)整和修正需求的原型開發(fā)方式稱為探索式 q要盡可能的調(diào)整各種設(shè)計(jì)選項(xiàng) n實(shí)驗(yàn)式(實(shí)驗(yàn)式(experimental)q以清晰的用戶需求和模糊的實(shí)現(xiàn)方法、實(shí)現(xiàn)效果、可行性開始,明確需求的可行性和技術(shù)實(shí)現(xiàn)方案 q定義一個(gè)對原型的評(píng)估方法,確定評(píng)估的屬性 n演化式(演化式(evolutionary)q以清晰的原型化需求和項(xiàng)目積累下來的原型資產(chǎn)為開始q原型化的需求,也有項(xiàng)目積累下來的原型資產(chǎn) 2.原型的類別按照開發(fā)方法分類n探索式和實(shí)驗(yàn)式方法產(chǎn)生的原型產(chǎn)品又被稱為拋棄式原型 q花費(fèi)最小的代價(jià),爭取最快的速度 q可能會(huì)使用簡易的開發(fā)工具和不成熟的構(gòu)造技術(shù) q可能會(huì)忽略或簡化處理原型目的不相關(guān)的功能特征 q要堅(jiān)決的拋棄n演化式原型方法產(chǎn)生的原型產(chǎn)品被稱為演化式原型(evolutionary prototype)q質(zhì)量要從一開始就能達(dá)到最終系統(tǒng)的要求 q要易于進(jìn)行擴(kuò)展和頻繁改進(jìn),因此開發(fā)者必須重視演化式原型的設(shè)計(jì) q僅應(yīng)該被用于處理清晰的需求、規(guī)格說明和技術(shù)方案 2.原型的類別按照構(gòu)建技術(shù)分類n水平原型方法(horizontal prototyping)q它僅僅實(shí)現(xiàn)選定功能所有層次中的某些特定層次 q建立的原型產(chǎn)品稱為水平原型(horizontal prototype)q要把注意力集中在概括性需求和工作流問題上 n垂直原型方法(vertical prototyping)q它會(huì)觸及到選定功能實(shí)現(xiàn)的所有層次q建立的原型產(chǎn)品稱為垂直原型(vertical prototype)q要保證真實(shí)實(shí)現(xiàn)它的各種功能 2.原型的類別按照構(gòu)建技術(shù)分類廢棄型演化型水平型闡明并細(xì)化用例和功能性需求識(shí)別遺漏功能研究用戶界面方法實(shí)現(xiàn)核心用例根據(jù)優(yōu)先級(jí)實(shí)現(xiàn)其他用例使得系統(tǒng)適應(yīng)快速變化的需要垂直型演示系統(tǒng)可行性實(shí)現(xiàn)并擴(kuò)充核心功能實(shí)現(xiàn)并擴(kuò)充核心算法測試并調(diào)整性能2.原型的類別按照介質(zhì)分類2.原型的類別按照表現(xiàn)分類主要內(nèi)容1.應(yīng)用原型的必要性2.原型的類別3.原型方法過程4.原型方法的風(fēng)險(xiǎn)3.原型方法過程 3.原型方法過程確定原型需求 n原型的需求內(nèi)容可以從三個(gè)緯度上分析:外觀(Look and Feel)、角色(Role)和實(shí)現(xiàn)(Implementation)q角色是指原型物件在用戶工作中的價(jià)值,也就是說它為什么是對用戶有用的。n原型物件到底能夠幫助用戶完成什么樣的工作 q外觀是指用戶對原型物件的具體感覺體驗(yàn),即用戶在使用原型物件時(shí)會(huì)看到什么、聽到什么和感覺到什么 q實(shí)現(xiàn)是指原型物件完成功能的細(xì)節(jié)技術(shù)和方法 3.原型方法過程原型開發(fā) n選擇原型開發(fā)的方法 3.原型方法過程原型開發(fā)n選擇原型的構(gòu)建技術(shù) 需求內(nèi)容緯度構(gòu)建技術(shù)外觀水平角色實(shí)現(xiàn)集成垂直3.原型方法過程原型評(píng)估 n需要獲取的評(píng)估者反饋 q評(píng)估者反應(yīng) q評(píng)估者建議 q創(chuàng)新思想 n可以創(chuàng)建一些腳本來指導(dǎo)評(píng)估者的體驗(yàn)活動(dòng) n務(wù)必要讓合適的人從恰當(dāng)?shù)慕嵌葋碓u(píng)估原型 n觀察評(píng)估人員使用原型的過程 n創(chuàng)造一個(gè)無偏見的環(huán)境,讓評(píng)估人員暢所欲言 3.原型方法過程原型修正 n一方面要依據(jù)評(píng)估人員的反饋n另一方面也要考慮事先的原型調(diào)整計(jì)劃 主要內(nèi)容1.應(yīng)用原型的必要性2.原型的類別3.原型方法過程4.原型方法的風(fēng)險(xiǎn)4.原型方法的風(fēng)險(xiǎn) n涉眾看到了一個(gè)正在運(yùn)行的原型,得出產(chǎn)品幾乎已經(jīng)完成的結(jié)論,從而提出快速交付產(chǎn)品的不當(dāng)要求 n用戶可能會(huì)被原型所表現(xiàn)出來的非功能特性遮蔽了眼睛,從而忽略了他們更應(yīng)該重視的功能特性 n在澄清需求不確定性的同時(shí)也可能會(huì)掩蓋一些用戶的假設(shè),這些假設(shè)將會(huì)無從發(fā)現(xiàn) n原型開發(fā)工作投入太多的工作,使得開發(fā)團(tuán)隊(duì)消耗了過多的時(shí)間和過大的成本 實(shí)例分析n問題q項(xiàng)目使用到了原型。該原型主要用于探索與試驗(yàn)?zāi)康?,開發(fā)速度快,采用了一些技術(shù)不成熟的構(gòu)造技術(shù),原本打算在項(xiàng)目開發(fā)時(shí)拋棄。但是公司高層領(lǐng)導(dǎo)認(rèn)為該原型花費(fèi)了大量人力、物力以及時(shí)間,所以不允許拋棄。要求開發(fā)團(tuán)隊(duì)在該原型基礎(chǔ)上繼續(xù)開發(fā),以到達(dá)到節(jié)約開發(fā)成本的目的q然而,事實(shí)上事情并非之前所預(yù)料的那樣。由于該原型的質(zhì)量沒有達(dá)到最終系統(tǒng)的要求,部分實(shí)現(xiàn)細(xì)節(jié)存在缺陷,所以開發(fā)時(shí)不得不重新整理該原型,反而增加了項(xiàng)目的時(shí)間成本與風(fēng)險(xiǎn)。本章小結(jié)n原型是軟件開發(fā)當(dāng)中消除不確定性風(fēng)險(xiǎn)的有效工具,是一種有效的需求獲取方法n原型的體系是復(fù)雜的,不同類型的原型具有不同的作用和創(chuàng)建要求,實(shí)踐當(dāng)中應(yīng)該綜合考慮各種應(yīng)用因素選擇合適的類別n一個(gè)完整的原型方法過程可以幫助更有效的應(yīng)用原型方法n原型方法的應(yīng)用可能會(huì)給項(xiàng)目帶來相應(yīng)的風(fēng)險(xiǎn),需要妥善的加以解決思考題n說明下列典型的應(yīng)用情境適合使用哪種類型的原型?q人機(jī)交互界面信息表格或者報(bào)表。q人機(jī)交互界面具體功能的設(shè)置。q人機(jī)交互界面任務(wù)的執(zhí)行過程。q功能探索任務(wù)的功能內(nèi)容。q功能探索任務(wù)的執(zhí)行過程。q功能探索任務(wù)的執(zhí)行效果。第10章.模型驅(qū)動(dòng)方法主要內(nèi)容1.模型驅(qū)動(dòng)方法的作用2.面向目標(biāo)的方法3.基于場景的方法4.基于用例的方法1.模型驅(qū)動(dòng)方法的作用n指導(dǎo)和組織需求獲取行為的開展q模型可以用于指導(dǎo)后續(xù)需求獲取行為的開展 n整理和歸類需求獲取行為得到的信息 q模型是進(jìn)行信息整理和歸類的很好的框架依據(jù)n為詳細(xì)信息的分析提供背景基礎(chǔ)和上下文知識(shí) q模型驅(qū)動(dòng)方法則是側(cè)重于前期需求階段的方法,是傳統(tǒng)需求分析方法的一個(gè)很好的補(bǔ)充 n幫助組織需求文檔的結(jié)構(gòu) n作為需求驗(yàn)證的知識(shí)基礎(chǔ) q發(fā)現(xiàn)細(xì)節(jié)知識(shí)與模型內(nèi)容的偏差和錯(cuò)誤 q指導(dǎo)需求驗(yàn)證行為的開展 主要內(nèi)容1.模型驅(qū)動(dòng)方法的作用2.面向目標(biāo)的方法3.基于場景的方法4.基于用例的方法2.面向目標(biāo)的方法n目標(biāo)模型q目標(biāo):是系統(tǒng)被開發(fā)的目的 n可以在不同的抽象層次上進(jìn)行描述 n它有著明確的定義方式 n功能目標(biāo)(Functional Goal)和非功能目標(biāo)(Non-functional Goal)q滿足型目標(biāo)(Satisfaction Goal)和信息型目標(biāo)(Information Goal)q安全目標(biāo)(Safety Goal)、性能目標(biāo)(Performance Goal)、可用性目標(biāo)(Usability Goal)等等 n軟目標(biāo)(Soft Goal)和硬目標(biāo)(Hard Goal)n實(shí)現(xiàn)目標(biāo)(Achieve Goal,又稱為終止目標(biāo)Cease Goal)、維護(hù)目標(biāo)(Maintain Goal,又稱為避免目標(biāo)Avoid Goal)和優(yōu)化目標(biāo)(Optimize Goal)2.面向目標(biāo)的方法n目標(biāo)模型q關(guān)系n目標(biāo)之間的鏈接目標(biāo)之間的鏈接 qSupport(又稱為Dependency)鏈接和Conflict鏈接 qAND和OR鏈接 qAND Contribution鏈接和OR Contribution鏈接 積極(Positive),消極(Negative)n目標(biāo)與其他需求模型元素的鏈接目標(biāo)與其他需求模型元素的鏈接 qAND Operationalization鏈接和OR Operationalization鏈接:連接目標(biāo)和操作 前置(pre-)、后置(post-)和觸發(fā)(trigger)操作 qContribution鏈接:連接目標(biāo)和場景等需求的描述元素 q普通鏈接:連接目標(biāo)和分析模型 qResponsibility鏈接:連接目標(biāo)和行為者 qDependency鏈接:鏈接目標(biāo)和任務(wù)、資源 2.面向目標(biāo)的方法n面向目標(biāo)方法的處理過程 q目標(biāo)的獲取目標(biāo)的獲取 n現(xiàn)狀和背景的分析n已有目標(biāo)的驗(yàn)證和細(xì)化 n基于場景的方法等等q目標(biāo)分析目標(biāo)分析 n建立系統(tǒng)的目標(biāo)模型 q目標(biāo)實(shí)現(xiàn)目標(biāo)實(shí)現(xiàn) n收集與目標(biāo)相關(guān)的需求信息,討論可能的候選解決方案,確定最終的系統(tǒng)詳細(xì)需求和解決方案 主要內(nèi)容1.模型驅(qū)動(dòng)方法的作用2.面向目標(biāo)的方法3.基于場景的方法4.基于用例的方法3.基于場景的方法n場景q具有重點(diǎn)描述真實(shí)世界的特征,它利用情景、行為者之間的交互、事件隨時(shí)間的演化等方式來敘述性的描述系統(tǒng)的使用 3.基于場景的方法n基于場景的方法3.基于場景的方法n場景方法的分類3.基于場景的方法n場景的形式:場景的表達(dá)模式 q描述(Description)n表示法的正規(guī)性 q非形式化語言、半形式化語言和形式化語言n媒介形式(Medium)q敘述性的自由文本、結(jié)構(gòu)化文本、強(qiáng)限制文本、表格、圖表、圖像等 q外觀n動(dòng)態(tài)、靜態(tài)、交互3.基于場景的方法n場景的內(nèi)容q主要關(guān)注點(diǎn) n關(guān)于現(xiàn)在的,關(guān)于未來的,關(guān)于解決方案的 q環(huán)境范圍 n系統(tǒng)內(nèi)部,系統(tǒng)外部,系統(tǒng)和環(huán)境的交互q抽象層次 n具體的、抽象的、混合的q覆蓋范圍 n功能需求,非功能需求 q粒度 n整個(gè)業(yè)務(wù)過程;某個(gè)任務(wù)的完成過程;某個(gè)交互行為的詳細(xì)處理步驟 q示例類型 n正常流程,異常流程 3.基于場景的方法n場景的目的q描述(descriptive)n需求的文檔化,n需求協(xié)商q探索(exploratory)n需求獲取 n需求建模與分析 q解釋(explanatory)n需求的驗(yàn)證 3.基于場景的方法n場景的生命周期3.基于場景的方法n場景方法的作用q組織需求獲取得到的信息;q幫助進(jìn)行詳細(xì)的需求分析;q結(jié)合面向目標(biāo)的方法,指導(dǎo)需求獲取活動(dòng)的開展;主要內(nèi)容1.模型驅(qū)動(dòng)方法的作用2.面向目標(biāo)的方法3.基于場景的方法4.基于用例的方法4.基于用例的方法n用例q相關(guān)場景集合的敘述性的文本描述 qUML以用例來捕獲系統(tǒng)的功能需求,而不是所有的系統(tǒng)需求 4.基于用例的方法用例的描述ID:用例的標(biāo)識(shí),通常會(huì)結(jié)合用例的層次結(jié)構(gòu)使用X.Y.Z的方式名稱:對用例內(nèi)容的精確描述,體現(xiàn)了用例所描述的任務(wù),通常是“動(dòng)詞名詞”用例屬性包括創(chuàng)建者、創(chuàng)建日期、更新歷史等參與者:描述系統(tǒng)的主參與者、輔助參與者和每個(gè)參與者的目標(biāo)描述:簡要描述用例產(chǎn)生的原因,大概過程和輸出結(jié)果優(yōu)先級(jí):用例所描述的需求的優(yōu)先級(jí)觸發(fā)條件:標(biāo)識(shí)啟動(dòng)用例的事件,可能是系統(tǒng)外部的事件,也可能是系統(tǒng)內(nèi)部的事件,還可能是正常流程的第一個(gè)步驟前置條件:用例能夠正常啟動(dòng)和工作的系統(tǒng)狀態(tài)條件后置條件:用例執(zhí)行完成后的系統(tǒng)狀態(tài)條件正常流程:在常見和符合預(yù)期的條件下,系統(tǒng)與外界的行為交互序列分支流程:用例中可能發(fā)生的非常見的其他合理場景異常流程:在非預(yù)期的錯(cuò)誤條件發(fā)生時(shí),系統(tǒng)對外界進(jìn)行響應(yīng)的交互行為序列相關(guān)用例:記錄和該用例存在關(guān)系的其他用例。關(guān)于用例之間的關(guān)系見10.4.4業(yè)務(wù)規(guī)則:可能會(huì)影響用例執(zhí)行的業(yè)務(wù)規(guī)則特殊需求:和用例相關(guān)的其他特殊需求,尤其是非功能性需求假設(shè):在建立用例時(shí)所做的假設(shè)待確定問題:一些當(dāng)前的用例描述還沒有解決的問題4.基于用例的方法用例文檔本章小結(jié)n模型驅(qū)動(dòng)方法是基于模型的建立和使用而提出的方法,它在整個(gè)需求工程,甚至軟件工程中都可以發(fā)揮重要的作用q面向目標(biāo)的方法n目標(biāo)的概念將會(huì)對需求工程產(chǎn)生重要的影響q基于場景的方法n在軟件工程當(dāng)中有著極為廣泛的應(yīng)用q基于用例的方法n是最為常用的一種基于場景的方法n模型驅(qū)動(dòng)方法雖然已經(jīng)得到了相當(dāng)廣泛的應(yīng)用,但是它們?nèi)匀辉诓粩嗟陌l(fā)展和完善第十一章.需求分析概述主要內(nèi)容1.需求分析的根本任務(wù)1.建立分析模型2.建立解決方案2.需求分析技術(shù)3.需求分析方法4.前期需求階段的建模與分析5.需求分析的活動(dòng)1.需求分析的根本任務(wù)1.需求分析的根本任務(wù)n建立分析模型q將復(fù)雜的系統(tǒng)分解成為簡單的部分以及它們之間的聯(lián)系,確定本質(zhì)特征q和用戶達(dá)成對信息內(nèi)容的共同理解q分析的活動(dòng)主要包括識(shí)別、定義和結(jié)構(gòu)化,它的目的是獲取某個(gè)可以轉(zhuǎn)換為知識(shí)的事物的信息1.需求分析的根本任務(wù)n創(chuàng)建解決方案q將一個(gè)問題分解成獨(dú)立的、更簡單和易于管理的子問題來幫助尋找解決方案q創(chuàng)建解決方案的過程是創(chuàng)造性的q幫助開發(fā)者建立問題的定義,并確定被定義的事物之間的邏輯關(guān)系n這些邏輯關(guān)系可以形成信息的推理,進(jìn)而可以被用來驗(yàn)證解決方案的正確性。1.1建立分析模型n模型模型 q“模型是對事物的抽象,幫助人們在創(chuàng)建一個(gè)事物之前可以有更好的理解”q集中關(guān)注問題的計(jì)算特性(數(shù)據(jù)、功能、規(guī)則等等)q“它是對系統(tǒng)進(jìn)行思考和推理的一種方式。建模的目標(biāo)是建立系統(tǒng)的一個(gè)表示,這個(gè)表示以精確一致的方式描述系統(tǒng),使得系統(tǒng)的使用更加容易”q建模方法n抽象n分解n投影1.1建立分析模型n抽象(Abstraction)q一方面要求人們只關(guān)注重要的信息,忽略次要的內(nèi)容n通過強(qiáng)調(diào)本質(zhì)的特征,就減少了問題的復(fù)雜性q另一方面也要求人們將認(rèn)知保留在適當(dāng)?shù)膶哟?,屏蔽更深層次的?xì)節(jié)n在問題的各元素之間推斷出更廣泛和更普遍的關(guān)系,幫助人們尋找解決方案n分解(Decomposition/Partitioning)q“分而治之”n將單個(gè)復(fù)雜和難以理解的問題分解成多個(gè)相對更容易的子問題,并掌握各子問題之間的聯(lián)系q分解的方案往往還能提供問題的解決思路n投影(Projection)q多視點(diǎn)方法1.1建立分析模型n計(jì)算世界與計(jì)算模型q使用軟件的構(gòu)成單位作為模型的組元q軟件構(gòu)建單位之間的關(guān)系作為模型組元之間的關(guān)系n基于計(jì)算科學(xué)建立的,具有形式化的特征q信息的描述具有明確化、準(zhǔn)確化和確定化的特征n需求分析階段不適宜建立形式化的計(jì)算模型q重點(diǎn)是問題,缺乏和軟件實(shí)現(xiàn)相關(guān)的技術(shù)細(xì)節(jié)q用戶無法理解1.1建立分析模型n問題世界與業(yè)務(wù)模型q使用問題域中的重要概念作為模型的組元q使用概念之間的業(yè)務(wù)聯(lián)系作為組元之間的關(guān)系n使用了業(yè)務(wù)描述的方式,具有非形式化特征q業(yè)務(wù)模型元素(即業(yè)務(wù)概念和業(yè)務(wù)聯(lián)系)的選取和定義上具有不準(zhǔn)確、不確定和模糊化q可以抽取出需求信息中最重要和最本質(zhì)的內(nèi)容q可以達(dá)成用戶和開發(fā)者的共同理解n非形式化特征使得它不適合于進(jìn)行需求建模q不足以用于描述一個(gè)有效的軟件解決方案n不準(zhǔn)確、不確定和模糊化1.1建立分析模型n軟件分析模型q介于計(jì)算模型和業(yè)務(wù)模型二者之間的模型形式q使用了計(jì)算模型的組元形式q在組元的表現(xiàn)上采用了業(yè)務(wù)模型的表現(xiàn)方式n半形式化的q不像計(jì)算模型那么嚴(yán)謹(jǐn)q比業(yè)務(wù)模型更嚴(yán)格1.1建立分析模型n三種模型1.1建立分析模型n模型的描述q三個(gè)要素之間互為依賴,每個(gè)要素都為下一個(gè)要素提供了一個(gè)必需的環(huán)境n語法:使用規(guī)則怎樣使用模型的元素,并且以什么方式組織、連接或關(guān)聯(lián)這些元素;n語義:特定模型元素所具有的含義;n語用:模型元素的上下文,以及影響該模型元素意義的約束和假定n分析模型q語用復(fù)雜q語義豐富q語法嚴(yán)格同時(shí)又不太復(fù)雜曾經(jīng)有很多的研究者嘗試建立一種能夠描述軟件開發(fā)中各種情景的形式化或半形式化模型語言,但最后都失敗了1.1建立分析模型n模型的描述q多視點(diǎn)方法1.1建立分析模型n視點(diǎn)(Viewpoints):將系統(tǒng)中既交織共存又相對獨(dú)立的不同內(nèi)容拆解成不同的部分q每一個(gè)視點(diǎn)都是獨(dú)立的模型存在,用獨(dú)立的模型語言和表示法進(jìn)行描述n多視點(diǎn):所有視點(diǎn)的模型描述集成起來,就是對原有復(fù)雜系統(tǒng)的模型描述q依據(jù)系統(tǒng)內(nèi)不同部分之間的關(guān)系,建立不同模型內(nèi)元素之間的聯(lián)系,從而將多個(gè)獨(dú)立的模型描述在語義上連接起來1.1建立分析模型模型、模型語言與表示法 1.1建立分析模型n需求建模q通常的做法是:n先依據(jù)獲取的問題域信息建立初步的模型。n然后分析用戶需求,對模型進(jìn)行調(diào)整,得到一個(gè)中間形式的模型形式。n最后,對調(diào)整后的模型進(jìn)行邏輯推理和驗(yàn)證,如果符合預(yù)期的期望,那么它就是最終的解決方案模型。1.2 建立解決方案需求分析的目標(biāo)1.2 建立解決方案建立解決方案的過程主要內(nèi)容1.需求分析的根本任務(wù)2.需求分析技術(shù)1.常用需求分析技術(shù)2.需求分析技術(shù)的發(fā)展過程3.Wieringa框架4.Zachman 框架3.需求分析方法4.前期需求階段的建模與分析5.需求分析的活動(dòng)2.1 常用需求分析技術(shù)n結(jié)構(gòu)化技術(shù)q數(shù)據(jù)建模n實(shí)體關(guān)系圖Entity Relationship Diagramq過程建模n數(shù)據(jù)流圖Data Flow Diagramn上下文圖Context Diagramn微規(guī)格說明Mini-Specificationn數(shù)據(jù)字典Data Dictionaryq行為建模n狀態(tài)(轉(zhuǎn)換)圖/矩陣State(Transition)Diagram/Matrixq過程/數(shù)據(jù)關(guān)系建模n功能實(shí)體矩陣Function/Entity Matrixq信息工程方法n功能分解圖Function Decomposition Diagramn過程依賴圖Process Dependency Diagramn面向?qū)ο蠹夹g(shù)qUMLn用例圖Use-Case Diagramn類圖Class Diagramn交互圖(順序圖/通信圖)Interaction(Sequence/Communication)Diagramn活動(dòng)圖Activity Diagramn對象約束語言O(shè)bject Constraint Languagen狀態(tài)圖State Chart DiagramNext2.1 常用需求分析技術(shù)n技術(shù)的綜合運(yùn)用q如何為各個(gè)視角選擇需求分析技術(shù)?n每一種需求分析技術(shù)都有自己的特點(diǎn),具有在應(yīng)用上的獨(dú)特性q如何實(shí)現(xiàn)它們之間的配合?n只有通過多種需求分析技術(shù)的有機(jī)結(jié)合與集成才能充分的描述復(fù)雜應(yīng)用2.2需求分析技術(shù)的發(fā)展過程2.3 Wieringa框架系統(tǒng)對外交互系統(tǒng)內(nèi)部交互功能式描述通信式描述行為式描述對交互的有用性的描述對交互中發(fā)生的信息交流情況的描述更小的交互相互之間形成的先后銜接與協(xié)作關(guān)系交互所涉及的系統(tǒng)或者系統(tǒng)部分的分解關(guān)系分解可以使得系統(tǒng)的對外交互轉(zhuǎn)換為系統(tǒng)的內(nèi)部交互形式2.3 Wieringa框架結(jié)構(gòu)化信息工程面向?qū)ο笸ㄓ闷渌獠抗δ芄δ芊纸鈭D用例圖狀態(tài)(轉(zhuǎn)移)圖/矩陣外部通信上下文圖用例圖交互圖外部行為過程依賴圖交互圖概念組元數(shù)據(jù)流圖DFD實(shí)體關(guān)系圖ERD功能實(shí)體矩陣實(shí)體生命歷史事件實(shí)體矩陣類圖數(shù)據(jù)字典對象角色模型組元功能對象約束語言微規(guī)格說明組元通信數(shù)據(jù)流圖DFD功能實(shí)體矩陣事件實(shí)體矩陣過程依賴圖交互圖組元行為實(shí)體生命歷史活動(dòng)圖狀態(tài)(轉(zhuǎn)移)圖/矩陣業(yè)務(wù)過程模型Petri網(wǎng)2.4 Zachman 框架2.4 Zachman 框架nZachman矩陣的行q目標(biāo)/范圍(規(guī)劃者視圖)n關(guān)心軟件系統(tǒng)的成本和效益,n對最終系統(tǒng)的規(guī)模、形式、位置空間以及基本目標(biāo)的粗略描述n規(guī)劃者視圖規(guī)定了項(xiàng)目的前景和范圍。q企業(yè)模型(所有者視圖):n關(guān)心軟件系統(tǒng)會(huì)如何參與和幫助實(shí)際工作n對業(yè)務(wù)實(shí)體、業(yè)務(wù)過程以及它們與系統(tǒng)之間交互的描述n利用業(yè)務(wù)概念限定了系統(tǒng)的解決方案分析模型。q系統(tǒng)模型(設(shè)計(jì)師視圖):n關(guān)注軟件系統(tǒng)應(yīng)該的需要以及設(shè)計(jì)方法的選擇限制n對軟件系統(tǒng)的基本功能和設(shè)計(jì)空間的描述體系結(jié)構(gòu)。2.4 Zachman 框架nZachman矩陣的行q技術(shù)模型(構(gòu)建者視圖):n關(guān)注程序n對軟件系統(tǒng)當(dāng)中控制邏輯、算法、I/O控制以及其他各種具體技術(shù)細(xì)節(jié)的描述描述詳細(xì)設(shè)計(jì)的設(shè)計(jì)模型q組件模型(集成者視圖):n關(guān)注組裝n對軟件系統(tǒng)的組件、接口以及編碼程序等內(nèi)容的描述q實(shí)際運(yùn)行的系統(tǒng):n描述系統(tǒng)投入使用后的實(shí)際狀況和在運(yùn)行中的實(shí)際表現(xiàn)。2.4 Zachman 框架nZachman矩陣的列:q數(shù)據(jù):對企業(yè)有重要意義的事物以及企業(yè)對這些事物的理解q功能:企業(yè)在業(yè)務(wù)中執(zhí)行的任務(wù)以及企業(yè)對任務(wù)的理解。q位置:組織活動(dòng)和軟件系統(tǒng)的地理分布,以及它們與組織的其他方面的關(guān)聯(lián)。q人:在軟件系統(tǒng)被引入后會(huì)涉及的人員和組織q時(shí)間:系統(tǒng)內(nèi)的事件-事件關(guān)聯(lián)之間的時(shí)間因素,表現(xiàn)為業(yè)務(wù)的規(guī)劃調(diào)度、系統(tǒng)的事件響應(yīng)和控制結(jié)構(gòu)。q動(dòng)機(jī):該列針對的是企業(yè)建立目標(biāo)系統(tǒng)的動(dòng)機(jī),揭示了企業(yè)的目標(biāo)、目的、業(yè)務(wù)規(guī)劃、知識(shí)架構(gòu)、思想路線和決策基礎(chǔ)。2.4 Zachman 框架ContextualConceptualLogicalPhysicalAs BuiltFunctioningContextualConceptualLogicalPhysicalAs BuiltFunctioningWhyWhyWhoWhoWhenWhenWhereWhereWhatWhatHowHowProject scopeAnalysis modelDesign modelCoded programApplication SystemPlaning*AnalysisDesignImplementationIntegrationData ModelingBehavior ModelingEvent ModelingBusiness RulesNetwork topologiesOrganizational structure modelingBusiness Model2.4 Zachman 框架2.4 Zachman 框架結(jié)構(gòu)化信息工程面向?qū)ο笸ㄓ闷渌麛?shù)據(jù)數(shù)據(jù)流圖DFD實(shí)體關(guān)系圖ERD數(shù)據(jù)流圖DFD實(shí)體關(guān)系圖ERD類圖數(shù)據(jù)字典對象角色模型功能上下文圖數(shù)據(jù)流圖DFD功能實(shí)體矩陣上下文圖數(shù)據(jù)流圖DFD功能實(shí)體矩陣功能分解圖過程依賴圖用例圖交互圖活動(dòng)圖對象約束語言微規(guī)格說明狀態(tài)(轉(zhuǎn)移)圖/矩陣業(yè)務(wù)過程模型網(wǎng)絡(luò)Map人員層次模型矩陣模型網(wǎng)狀模型時(shí)間實(shí)體生命歷史事件實(shí)體矩陣實(shí)體生命歷史事件實(shí)體矩陣狀態(tài)(轉(zhuǎn)移)圖/矩陣Petri網(wǎng)動(dòng)機(jī)對象約束語言微規(guī)格說明對象角色模型主要內(nèi)容1.需求分析的根本任務(wù)2.需求分析技術(shù)3.需求分析方法4.前期需求階段的建模與分析5.需求分析的活動(dòng)3.需求分析方法n傳統(tǒng)分析 q沒有方法(1950s)n依賴個(gè)體才智,依據(jù)個(gè)人習(xí)慣n缺乏結(jié)構(gòu)、不可重復(fù)、不可測量,冗長、混亂、偏頗、無結(jié)構(gòu)等等n結(jié)構(gòu)化分析 q傳統(tǒng)結(jié)構(gòu)化分析(late 1960s),現(xiàn)代結(jié)構(gòu)化分析(late 1970s)n以數(shù)據(jù)流動(dòng)為中心,以DFD為核心技術(shù),輔助ERD,STDq信息工程(late 1980s)n以數(shù)據(jù)知識(shí)結(jié)構(gòu)為基礎(chǔ),ERD為核心技術(shù),輔助DFD,STD,FDD,PDn面向?qū)ο蠓治觯?990s)q以對象為中心,以UML(類圖)為核心技術(shù)q以全面思想革新為理想,以承繼結(jié)構(gòu)化技術(shù)為現(xiàn)實(shí)3.需求分析方法n結(jié)構(gòu)化分析3.需求分析方法n面向?qū)ο蠓治鲋饕獌?nèi)容1.需求分析的根本任務(wù)2.需求分析技術(shù)3.需求分析方法4.前期需求階段的建模與分析5.需求分析的活動(dòng)4.前期需求階段的建模與分析4.前期需求階段的建模與分析n面向目標(biāo)的分析(Goal Oriented Analysis)n面向問題域的分析(Problem Domain Oriented Analysis)n領(lǐng)域分析(Domain Analysis)n企業(yè)建模(Enterprise Modeling)4.前期需求階段的建模與分析n面向問題域的分析q問題框架n特性n解決q框架分解與組合q基本思路n研究所有可能的問題域,從中發(fā)現(xiàn)一些重復(fù)出現(xiàn)的簡單問題類型n分析每一種問題框架的特性,確定問題的理解和解決方法n將問題框架的建立和分類系統(tǒng)化,以簡單的問題框架為基本單位,進(jìn)行復(fù)雜問題的分解4.前期需求階段的建模與分析n領(lǐng)域分析4.前期需求階段的建模與分析n企業(yè)建模主要用來理解組織的結(jié)構(gòu)、行為規(guī)則、目標(biāo)、重要成員的任務(wù)與職責(zé)、操縱的數(shù)據(jù)等等。企業(yè)建模利用企業(yè)的目標(biāo)、任務(wù)、策略、資源等來刻畫組織的行為,并依此來發(fā)現(xiàn)組織開發(fā)系統(tǒng)的目的,建立系統(tǒng)的業(yè)務(wù)需求主要內(nèi)容1.需求分析的根本任務(wù)2.需求分析技術(shù)3.需求分析方法4.前期需求階段的建模與分析5.需求分析的活動(dòng)5.需求分析的活動(dòng)5.需求分析的活動(dòng)需求細(xì)化n明確用戶需求的隱含因素 n將從問題域和業(yè)務(wù)的角度表述的用戶需求等價(jià)的轉(zhuǎn)化為從軟件和技術(shù)的角度表述的系統(tǒng)需求 n非功能需求也需要從高層次的表述方式轉(zhuǎn)化為一系列更加詳細(xì)和具體的需求表述 n需求細(xì)化也會(huì)發(fā)現(xiàn)新的細(xì)節(jié)需求n需求已經(jīng)得了充分的理解,并且開發(fā)者已經(jīng)可以著手為其進(jìn)行方案設(shè)計(jì)時(shí)停止細(xì)化過程 n細(xì)化后的需求應(yīng)該被一一的標(biāo)識(shí)和記錄下來 5.需求分析的活動(dòng)需求細(xì)化n需求的記錄q標(biāo)識(shí)符(ID),每一條需求都應(yīng)該能夠通過ID唯一的標(biāo)識(shí)自己。q源頭(Source),要能夠回溯到需求的源頭,例如特定的涉眾。q理由(Rational),需求被提出的目的。q優(yōu)先級(jí)(Priority),詳細(xì)情況見下一節(jié)。q成本(Cost),預(yù)估的實(shí)現(xiàn)成本。q風(fēng)險(xiǎn)(Risk),實(shí)現(xiàn)該需求的過程中可能帶來的風(fēng)險(xiǎn)。q可變性(Volatility),將來發(fā)生變化的可能性。5.需求分析的活動(dòng)確定需求優(yōu)先級(jí)n累計(jì)投票累計(jì)投票 n區(qū)域劃分區(qū)域劃分 q重要性。需求的不可或缺程度。q緊急性。需求的時(shí)間緊迫程度。q懲罰性。忽略需求會(huì)導(dǎo)致的懲罰程度。q成本。實(shí)現(xiàn)需求的代價(jià)。q風(fēng)險(xiǎn)。需求實(shí)現(xiàn)中可能產(chǎn)生的風(fēng)險(xiǎn)程度。5.需求分析的活動(dòng)確定需求優(yōu)先級(jí)nTop-NqN的取值是不受明確限制的,真正受限制的是Top-N個(gè)需求的實(shí)現(xiàn)代價(jià)總和n數(shù)據(jù)量化數(shù)據(jù)量化 5.需求分析的活動(dòng)需求協(xié)商n明確沖突的因素,避免情緒上的沖突 n明確沖突的解決空間 n確定最佳解決方案 本章小結(jié)n需求分析是需求工程中最為重要和核心的活動(dòng),它對信息的建模是理解問題的關(guān)鍵,也是創(chuàng)建正確解決方案的關(guān)鍵n需求分析涉及很多的技術(shù)和方法,需求分析活動(dòng)的有效執(zhí)行需要分析人員能夠掌握并判定這些方法的選擇與使用n需求分析過程當(dāng)中會(huì)執(zhí)行很多的重要子活動(dòng),它們的有效整合確保了整個(gè)需求分析工作的成功思考題1.分析“結(jié)構(gòu)化分析”和“面向?qū)ο蠓治觥钡倪^程,說明它們?yōu)槭裁炊奸_始于系統(tǒng)的邊界定義?2.“事件”和“事物”一直是進(jìn)行需求分析的一個(gè)重要思路,你對此如何評(píng)價(jià)?3.列舉面向?qū)ο蠓治龅母鞣N技術(shù),說明它們是對結(jié)構(gòu)化分析技術(shù)的繼承和借鑒嗎?如果是,那么說明它們借鑒了哪些結(jié)構(gòu)化分析技術(shù),如果不是,那么說明它們的數(shù)學(xué)基礎(chǔ)是什么?4.Wieringa框架和Zachman框架給了你什么啟示?5.結(jié)合實(shí)踐調(diào)查情況,評(píng)價(jià)一下各種建模技術(shù)在實(shí)踐中的重要性.第12章.過程建模主要內(nèi)容1.過程建模2.數(shù)據(jù)流圖DFD3.微規(guī)格說明4.數(shù)據(jù)字典5.模塊結(jié)構(gòu)圖6.DFD的類型1.過程建模結(jié)構(gòu)化建模n怎么理解復(fù)雜世界?q復(fù)雜簡單(分解)n簡單可理解性(最基本單位)n簡單(高內(nèi)聚)n簡單 VS 簡單(低耦合)q簡單復(fù)雜(接口和實(shí)現(xiàn))n結(jié)構(gòu)化建模q復(fù)雜世界復(fù)雜處理過程(事情的發(fā)生發(fā)展)q簡單過程(可表達(dá)的“函數(shù)”)n軟件“函數(shù)”、程序q復(fù)雜簡單n功能分解結(jié)構(gòu)q簡單復(fù)雜(函數(shù)調(diào)用)1.過程建模n結(jié)構(gòu)化建模q過程建模,數(shù)據(jù)建模n過程建模是結(jié)構(gòu)化建模的核心方法q系統(tǒng)是過程的集合q過程可以被分解為子過程q最終的子過程可以被映射為計(jì)算實(shí)體函數(shù)q所有的系統(tǒng)都是由過程構(gòu)建的n主要思想q用圖形的方式建立和描述良好的過程模型1.過程建模主要內(nèi)容1.過程建模2.數(shù)據(jù)流圖DFD1.基本元素2.規(guī)則3.層次結(jié)構(gòu)4.層次結(jié)構(gòu)的建立5.DFD的驗(yàn)證3.微規(guī)格說明4.數(shù)據(jù)字典5.模塊結(jié)構(gòu)圖6.DFD的類型2.1 DFD的基本元素n外部實(shí)體q外部實(shí)體是指處于待構(gòu)建系統(tǒng)之外的人、組織、設(shè)備或者其他軟件系統(tǒng),它們不受系統(tǒng)的控制,開發(fā)者不能以任何方式操縱它們 q需要進(jìn)行建模的外部實(shí)體是那些和待構(gòu)建的軟件系統(tǒng)之間存在著數(shù)據(jù)交互的外部實(shí)體,它們是待構(gòu)建系統(tǒng)的數(shù)據(jù)源或者數(shù)據(jù)目的地q所有的外部實(shí)體聯(lián)合起來構(gòu)成了軟件系統(tǒng)的外部上下文環(huán)境 2.1 DFD的基本元素n過程q過程是指施加于數(shù)據(jù)的動(dòng)作或者行為,它們使得數(shù)據(jù)發(fā)生變化,包括被轉(zhuǎn)換(transformed)、被存儲(chǔ)(stored)或者被分布(distributed)q可能是由軟件系統(tǒng)控制的,也可能是由人工執(zhí)行的,它重在數(shù)據(jù)發(fā)生變化的效果而不是其執(zhí)行者 q可能會(huì)表現(xiàn)為不同的抽象層次 n內(nèi)容足夠細(xì)節(jié)和具體,能夠?qū)ζ渲苯舆M(jìn)行“編碼”處理的過程被稱為原始過程(Primitive Process,又稱為基本過程Elementary Process)2.1 DFD的基本元素n數(shù)據(jù)流q數(shù)據(jù)流是指數(shù)據(jù)的運(yùn)動(dòng),它是系統(tǒng)與其環(huán)境之間或者系統(tǒng)內(nèi)兩個(gè)過程之間的通信形式 q數(shù)據(jù)流可以分割和組合 q數(shù)據(jù)字典和ERD通常被用來描述DFD數(shù)據(jù)流的詳細(xì)內(nèi)容 2.1 DFD的基本元素n數(shù)據(jù)存儲(chǔ) q數(shù)據(jù)存儲(chǔ)是軟件系統(tǒng)需要在內(nèi)部收集、保存,以供日后使用的數(shù)據(jù)集合 q數(shù)據(jù)存儲(chǔ)的詳細(xì)內(nèi)容通常也是用數(shù)據(jù)字典和ERD來進(jìn)行描述的2.1 DFD的基本元素示例:DeMarco2.1 DFD的基本元素示例:Gane-SarsonReturn2.2 規(guī)則n過程是對數(shù)據(jù)的處理,必須有輸入,也必須有輸出,而且輸入數(shù)據(jù)集和輸出數(shù)據(jù)集應(yīng)該存在差異XXXY2.2 規(guī)則n數(shù)據(jù)流是必須和過程產(chǎn)生關(guān)聯(lián)的,它要么是過程的數(shù)據(jù)輸入,要么是過程的數(shù)據(jù)輸出2.2 規(guī)則nDFD當(dāng)中所有的對象都應(yīng)該有一個(gè)可以唯一標(biāo)識(shí)自己的名稱。q過程使用動(dòng)詞q外部實(shí)體、數(shù)據(jù)流和數(shù)據(jù)存儲(chǔ)使用名詞2.3 層次結(jié)構(gòu)n依據(jù)所含過程的不同抽象程度,DFD可以在不同的抽象層次上進(jìn)行系統(tǒng)的描述n一個(gè)比較抽象的過程可以被展開為一個(gè)子過程更加具體的DFD圖nDFD的層次結(jié)構(gòu)q上下文圖q0層圖qN層圖(N0)2.3 層次結(jié)構(gòu)n上下文圖q將整個(gè)系統(tǒng)看做是一個(gè)過程,這個(gè)過程實(shí)現(xiàn)系統(tǒng)的所有功能,是系統(tǒng)功能的最高抽象 n上下文圖中存在且僅存在一個(gè)過程,表示整個(gè)系統(tǒng)。這個(gè)單一的過程通常編號(hào)為0 n上下文圖中需要表示出所有和系統(tǒng)交互的外部實(shí)體,并描述交互的數(shù)據(jù)流,包括系統(tǒng)輸入和系統(tǒng)輸出 n上下文圖中不會(huì)出現(xiàn)數(shù)據(jù)存儲(chǔ)實(shí)例 q它非常適合于描述系統(tǒng)的應(yīng)用環(huán)境、定義系統(tǒng)的邊界 2.3 層次結(jié)構(gòu)n0層圖q位于上下文圖下面一層,是上下文圖中單一過程的細(xì)節(jié)描述,是對該單一過程的第一次功能分解 q是整個(gè)系統(tǒng)的功能概圖 q0層圖應(yīng)該被描述的簡潔、清晰,需求工程師要根據(jù)系統(tǒng)的復(fù)雜度掌握0層圖中過程的抽象程度q示例 2.3 層次結(jié)構(gòu)nN層圖q對0層圖的過程分解產(chǎn)生的子圖稱為1層圖,對N層圖的過程分解后產(chǎn)生的子圖稱為N+1層圖(N0),過程分解是可以持續(xù)進(jìn)行的,直至最終產(chǎn)生的子圖都是原始DFD圖q原始DFD圖可以進(jìn)一步展開為n微規(guī)格說明n數(shù)據(jù)字典q在低于0層圖的子圖上通常不顯示外部實(shí)體 2.4 層次結(jié)構(gòu)的建立n建立步驟1.創(chuàng)建上下文圖 2.發(fā)現(xiàn)并建立DFD片斷 3.根據(jù)DFD片斷組合產(chǎn)生0層圖;4.對0層圖的過程進(jìn)行功能分解,產(chǎn)生N層圖 2.4 層次結(jié)構(gòu)的建立1.創(chuàng)建上下文圖n在需求獲取階段獲得的業(yè)務(wù)需求以及業(yè)務(wù)需求所決定的項(xiàng)目前景與范圍可以用來幫助建立系統(tǒng)的上下文圖 2.4 層次結(jié)構(gòu)的建立2.發(fā)現(xiàn)并建立DFD片段nDFD片斷是系統(tǒng)對某個(gè)事件的響應(yīng)過程的DFD描述,它是為系統(tǒng)中發(fā)生的重要事件創(chuàng)建的。n它將系統(tǒng)對事件的處理看做是一個(gè)單一的過程,重點(diǎn)描述這個(gè)單一過程與事件外界(包括系統(tǒng)內(nèi)其他部分和系統(tǒng)外的外部實(shí)體)的數(shù)據(jù)流交互 2.4 層次結(jié)構(gòu)的建立3.產(chǎn)生0層圖n往往需要多次調(diào)整DFD片段的整合結(jié)果才能得出n對DFD圖(尤其是0層圖)質(zhì)量的判定有下面幾個(gè)準(zhǔn)則:q1、沒有語法錯(cuò)誤,遵守12.2.2所述的各項(xiàng)規(guī)則。q2、具有良好的語義,過程的功能設(shè)置要高內(nèi)聚、低耦合。q3、保持?jǐn)?shù)據(jù)一致性,過程的輸入流要足以產(chǎn)生數(shù)據(jù)輸出。同時(shí)過程的輸出流是在充分利用輸入數(shù)據(jù)的基礎(chǔ)上產(chǎn)生的,不存在輸入數(shù)據(jù)的浪費(fèi)。q4、控制復(fù)雜度,不要一次在圖中顯示太多的信息。一般情況下,一個(gè)圖中的過程數(shù)量最好控制在59(人腦的最佳信息處理量)個(gè)。而且圖中的數(shù)據(jù)流數(shù)量越少越好,越簡潔越好(接口最小化)。2.4 層次結(jié)構(gòu)的建立4.功能分解產(chǎn)生N層圖n功能分解是一個(gè)拆分功能的描述,將單個(gè)復(fù)雜的過程變?yōu)槎鄠€(gè)更加具體、更加精確和更加細(xì)節(jié)的過程 n在功能分解過程當(dāng)中,最重要的是要保證分解過程的平衡性(Balance),它要求DFD子圖的輸入流、輸出流必須和父過程的輸入流、輸出流保持一致 2.4 層次結(jié)構(gòu)的建立4.功能分解產(chǎn)生N層圖n在分解產(chǎn)生的子圖為下述情景之一時(shí),可以判定其為原始DFD圖,此時(shí)應(yīng)該停止持續(xù)的功能分解活動(dòng):q所有過程都已經(jīng)被簡化為一個(gè)選擇、計(jì)算或者數(shù)據(jù)庫操作;q所有數(shù)據(jù)存儲(chǔ)都僅僅表示了一個(gè)單獨(dú)的數(shù)據(jù)實(shí)體;q用戶已經(jīng)不關(guān)心比子圖更為細(xì)節(jié)的內(nèi)容,或者子圖的描述已經(jīng)詳細(xì)的足以支持后續(xù)的開發(fā)活動(dòng);q每一個(gè)數(shù)據(jù)流都已經(jīng)不需要進(jìn)行更詳細(xì)的切分,以展示對不同數(shù)據(jù)的不同處理方式;q每一個(gè)業(yè)務(wù)表單、事務(wù)、計(jì)算機(jī)的屏幕顯示(computer on-line display)和業(yè)務(wù)報(bào)表都已經(jīng)被表示為一個(gè)單獨(dú)的數(shù)據(jù)流;q系統(tǒng)的每一個(gè)最低層菜單選項(xiàng)都能在子圖中找到獨(dú)立的過程。2.4 層次結(jié)構(gòu)的建立 示例n使用DFD描述常見的電梯控制系統(tǒng)。q一個(gè)控制系統(tǒng)控制多個(gè)電梯。每個(gè)電梯被置于一個(gè)相應(yīng)甬道之中,在卷揚(yáng)電機(jī)的作用下在甬道內(nèi)做上下運(yùn)動(dòng)。甬道內(nèi)安裝有多個(gè)傳感器,通常每個(gè)電梯停靠點(diǎn)一個(gè),用來感應(yīng)電梯的實(shí)時(shí)位置。電梯內(nèi)部和建筑的每個(gè)電梯??繉佣荚O(shè)置有指示器,用來告知用戶的電梯實(shí)時(shí)位置和運(yùn)動(dòng)狀況。電梯內(nèi)和建筑的每個(gè)電梯??繉佣荚O(shè)有按鈕,用戶可以通過這些按鈕提出服務(wù)申請并進(jìn)出電梯??刂葡到y(tǒng)調(diào)度用戶的申請,讓電梯以最有效的方式滿足用戶的服務(wù)要求2.4 層次結(jié)構(gòu)的建立 示例:1.建立上下文圖2.4 層次結(jié)構(gòu)的建立 示例:2.建立DFD片段2.4 層次結(jié)構(gòu)的建立 示例:2.建立DFD片段2.4 層次結(jié)構(gòu)的建立 示例:3.建立0層圖2.4 層次結(jié)構(gòu)的建立 示例:3.建立0層圖2.4 層次結(jié)構(gòu)的建立 示例:4.功能分解建立N層圖n無2.5 DFD的驗(yàn)證n驗(yàn)證DFD的語法 q確保DFD中不會(huì)發(fā)生語法錯(cuò)誤 n驗(yàn)證DFD的結(jié)構(gòu) q驗(yàn)證DFD層次結(jié)構(gòu)之間的一致性 q驗(yàn)證DFD層次結(jié)構(gòu)說明的完備性 n驗(yàn)證DFD的語義 q確保DFD所說明內(nèi)容的正確性和準(zhǔn)確性 主要內(nèi)容1.過程建模2.數(shù)據(jù)流圖DFD3.微規(guī)格說明1.結(jié)構(gòu)化英語/偽碼2.行為圖3.決策表4.決策樹4.數(shù)據(jù)字典5.模塊結(jié)構(gòu)圖6.DFD的類型3.1 結(jié)構(gòu)化英語/偽碼n敘述上采用了結(jié)構(gòu)化程序語言的三種控制結(jié)構(gòu):順序、條件決策和循環(huán);n使用了一些類似于結(jié)構(gòu)化程序語言關(guān)鍵字的詞語來表明敘述的邏輯,例如IF、THEN、ELSE、DO、DO WHILE、DO UNTIL等等;n在格式上,使用和結(jié)構(gòu)化程序語言相同的縮進(jìn)方式來表明敘述的結(jié)構(gòu)。n簡短語句,使用名詞和動(dòng)詞,避免使用容易產(chǎn)生歧義的形容詞和副詞 3.1 結(jié)構(gòu)化英語/偽碼n示例3.2 行為圖n結(jié)構(gòu)化英語的一種特殊表達(dá)方式,用特定的圖示來表示過程的邏輯結(jié)構(gòu) 3.2 行為圖示例3.3 決策表n條件聲明是進(jìn)行決策時(shí)需要參考的變量列表n條件選項(xiàng)是那些變量可能的取值n動(dòng)作聲明是決策后可能采取的動(dòng)作n動(dòng)作選項(xiàng)表明那些動(dòng)作會(huì)在怎樣的條件下發(fā)生 條件和行動(dòng)規(guī)則條件聲明(Condition Statement)條件選項(xiàng)(Condition Entry)行動(dòng)聲明(Action Statement)行動(dòng)選項(xiàng)(Action Entry)3.3 決策表示例條件和行動(dòng)規(guī)則account-typeNOWNOWREGULARREGULARdaily-balance=300=100set service-charge to$5Xset service-charge to$0XXset service-charge to greater of$3 or$.20 timesX3.4 決策樹n通常是一顆平放的樹,樹根在左邊,樹枝從左向右展開。樹枝上是有關(guān)條件和行動(dòng)的描述 主要內(nèi)容1.過程建模2.數(shù)據(jù)流圖DFD3.微規(guī)格說明4.數(shù)據(jù)字典5.模塊結(jié)構(gòu)圖6.DFD的類型4.數(shù)據(jù)字典n數(shù)據(jù)字典是一個(gè)儲(chǔ)存庫,包含軟件使用和產(chǎn)生的所有數(shù)據(jù)對象的描述,其中也包括DFD當(dāng)中數(shù)據(jù)流和數(shù)據(jù)存儲(chǔ)的定義 n有組織地列出DFD中的涉及的所有數(shù)據(jù)元素(數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)),并定義每個(gè)數(shù)據(jù)元素的q名稱q表示方法q單位/格式q范圍q使用地點(diǎn)q使用方法q其他描述信息 4.數(shù)據(jù)字典數(shù)據(jù)結(jié)構(gòu)描述n數(shù)據(jù)字典要求對數(shù)據(jù)元素(尤其是其結(jié)構(gòu))的描述要精確、嚴(yán)格和明確 符號(hào)含義示例=包含,由構(gòu)成Name=first_name+last_name+指明序列結(jié)構(gòu)()內(nèi)容可選Phone_No.=(Area_No.)+Local_No.內(nèi)容多選一Number=0|1|2|3|4|5|6|7|8|9|分割內(nèi)部的多個(gè)選項(xiàng)nm循環(huán),最少n次,最多m次Area_No=3Number4數(shù)據(jù)存儲(chǔ)的標(biāo)識(shí)符(關(guān)鍵字)Student=ID+Name+.*注釋Area_No=3Number4*區(qū)號(hào)為3到4位數(shù)字4.數(shù)據(jù)字典數(shù)據(jù)結(jié)構(gòu)描述示例定義說明telephone no.=local extension|outside no.|0 local extension=30-93outside no.=9+service code|domestic no.service code=110|120|domestic no.=(area code)+local numberarea code=30-94local number=80-98電話號(hào)碼可能是內(nèi)線、外線或者轉(zhuǎn)接主機(jī)(撥0)內(nèi)線號(hào)碼是3位數(shù)字外線要先撥9,然后再撥特服號(hào)碼或普通電話號(hào)碼特服號(hào)碼有110、120、普通電話號(hào)碼為可選的區(qū)號(hào)加本地號(hào)區(qū)號(hào)是3到4位數(shù)字本地號(hào)是8位數(shù)字4.數(shù)據(jù)字典n數(shù)據(jù)字典為每個(gè)數(shù)據(jù)元素組織描述信息 名稱數(shù)據(jù)元素的原始名稱別名數(shù)據(jù)元素的其他名稱使用地點(diǎn)會(huì)使用該數(shù)據(jù)元素的過程使用方法該數(shù)據(jù)元素扮演的角色(輸入流、輸出流或者數(shù)據(jù)存儲(chǔ)等)使用范圍該數(shù)據(jù)元素存在的范圍描述對數(shù)據(jù)元素內(nèi)容的描述單位/格式數(shù)據(jù)元素的數(shù)據(jù)類型,可能事先設(shè)置的取值4.數(shù)據(jù)字典示例名稱telephone number別名phone number,number使用的地點(diǎn)和方法read-phone-number(input)display-phone-number(output)analyze-long-distance-calls(input)描述telephone no.=local extension|outside no.|0 local extension=30-93outside no.=9+service code|domestic no.service code=110|120|domestic no.=(area code)+local numberarea code=30-94local number=80-98格式alphanumeric data主要內(nèi)容1.過程建模2.數(shù)據(jù)流圖DFD3.微規(guī)格說明4.數(shù)據(jù)字典5.模塊結(jié)構(gòu)圖1.功能分解圖2.過程依賴圖6.DFD的類型5.1 功能分解圖n在一個(gè)圖內(nèi)自上至下的集中顯示系統(tǒng)的功能分解結(jié)構(gòu) q最頂層的單獨(dú)功能通常是對整個(gè)系統(tǒng)的使命描述,是對系統(tǒng)業(yè)務(wù)需求的概括 q系統(tǒng)使命說明的下一層被稱為功能的最頂層,描述了系統(tǒng)應(yīng)該具備的一些重要功能,它們支撐著系統(tǒng)使命的實(shí)現(xiàn) q功能最頂層下面的分支是對最頂層功能執(zhí)行分解后形成的層次關(guān)系 q最底層的是基本的業(yè)務(wù)功能。這些基本的業(yè)務(wù)功能是人們所能找到的最基本的、不可再細(xì)分的功能或處理n能夠更加集中、更加直觀的展示大量過程之間的層次關(guān)系 5.1 功能分解圖5.1 功能分解圖5.2 過程依賴圖n描述功能和過程之間的依賴關(guān)系 q數(shù)據(jù)依賴關(guān)系q資源依賴關(guān)系q約束依賴關(guān)系 主要內(nèi)容1.過程建模2.數(shù)據(jù)流圖DFD3.微規(guī)格說明4.數(shù)據(jù)字典5.模塊結(jié)構(gòu)圖6.DFD的類型6.DFD的類型6.DFD的類型本章小結(jié)n結(jié)構(gòu)化分析的主要方法是過程建模和數(shù)據(jù)建模,其中過程建模是其核心n過程建模以DFD為中心,結(jié)合使用微規(guī)格說明、數(shù)據(jù)字典、ERD、FDD、PDD等技術(shù)一起完成結(jié)構(gòu)化分析的建模任務(wù)nDFD建立在四種簡單的元素之上,使用層次結(jié)構(gòu)表達(dá)了功能分解關(guān)系,它是一種簡潔、易于理解和使用的技術(shù),但是它較用于建模復(fù)雜系統(tǒng)
收藏
編號(hào):67120358
類型:共享資源
大小:13.48MB
格式:ZIP
上傳時(shí)間:2022-03-30
35
積分
- 關(guān) 鍵 詞:
-
軟件需求分析
軟件
需求
分析
教學(xué)
PPT
- 資源描述:
-
《軟件需求分析》教學(xué)PPT,軟件需求分析,軟件,需求,分析,教學(xué),PPT
展開閱讀全文
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學(xué)習(xí)交流,未經(jīng)上傳用戶書面授權(quán),請勿作他用。