版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第4章
理解需求本章學(xué)習(xí)目標(biāo)1.了解有關(guān)需求的基本知識(shí)。2.掌握需求工程的主要活動(dòng)及它們之間的關(guān)系。3.掌握需求獲取主要方法。4.應(yīng)用用例和場景對(duì)需求建模。5.應(yīng)用用戶故事地圖建立項(xiàng)目需求。
需求工程1軟件需求獲取2用例和場景3用戶故事地圖40理解需求Brooks曾描述“構(gòu)建一個(gè)軟件系統(tǒng)最困難的部分是確定構(gòu)建什么,其他部分工作不會(huì)像這部分工作一樣,在出錯(cuò)之后會(huì)如此嚴(yán)重地影響隨后實(shí)現(xiàn)的系統(tǒng),并且以后修補(bǔ)竟會(huì)如此的困難。”4.1需求工程需求工程的介紹對(duì)軟件工程師來說,理解項(xiàng)目的需求是什么是他們所面臨的最困難的工作之一。很多時(shí)候客戶也不確切知道自己需要的是什么。他們能夠接受在軟件開發(fā)過程中需求的不斷變化:有些是由溝通引起的,有些是外部干預(yù)者強(qiáng)加的,還有一些是客戶隨著項(xiàng)目演進(jìn)不斷提高對(duì)系統(tǒng)需求的認(rèn)識(shí)所導(dǎo)致的。需求工程(RequirementsEngineering,簡稱RE)不能清晰地解決上述所有問題,但是項(xiàng)目總要有一個(gè)起始點(diǎn),可以把需求工程理解為解決上述問題的一個(gè)較為可靠的途徑。4.1需求工程需求工程劃分為五個(gè)獨(dú)立的階段:(1)需求獲取階段需求獲取指通過與各利益相關(guān)者交流、觀察現(xiàn)有系統(tǒng)以及對(duì)任務(wù)進(jìn)行探討,從而捕獲、導(dǎo)出和不斷修訂用戶的需求的過程。在需求獲取階段,可以確定的一些利益相關(guān)者有:最終用戶、軟件工程師、產(chǎn)品工程師、業(yè)務(wù)運(yùn)行管理人員、產(chǎn)品管理人員、市場銷售人員、支持和維護(hù)工程師等。4.1需求工程需求工程劃分為五個(gè)獨(dú)立的階段:(1)需求獲取階段下列因素導(dǎo)致了導(dǎo)出需求的困難:①范圍:系統(tǒng)的邊界不清楚、或是客戶(用戶)說明中帶有不必要的技術(shù)細(xì)節(jié),混淆而不是澄清系統(tǒng)的整體目標(biāo)。②理解:客戶(用戶)并不能完全確定需要什么。③易變:需求會(huì)隨著時(shí)間發(fā)生變化。在給定有限資源情況下,客戶或者用戶可能提出過高的要求,利益相關(guān)者也可能提出了相互沖突的需求,并強(qiáng)調(diào)他們各自要求的重要性。需求工程師必須通過協(xié)商過程來調(diào)節(jié)這些沖突。4.1需求工程需求工程劃分為五個(gè)獨(dú)立的階段:(2)需求分析階段需求分析是通過前面階段全面的需求獲取后,對(duì)需求進(jìn)行的整理、規(guī)范和分析,用以說明軟件的功能、特征和信息等各個(gè)方面。該階段的任務(wù)主要集中于得到一個(gè)精確的需求模型。4.1需求工程需求工程劃分為五個(gè)獨(dú)立的階段:(3)需求定義階段需求定義是指在對(duì)所要開發(fā)的產(chǎn)品達(dá)成共識(shí)后,形成一份需求的一致性定義,也就是需求規(guī)格說明。如:IEEE的需求規(guī)格說明書模板。4.1需求工程需求工程劃分為五個(gè)獨(dú)立的階段:(4)需求確認(rèn)階段需求確認(rèn)主要是就需求定義和利益相關(guān)者進(jìn)行溝通,并獲得利益相關(guān)者的認(rèn)可。在需求確認(rèn)階段需要做到以下幾點(diǎn):①軟件需求規(guī)格說明正確描述了預(yù)期的滿足各方需求的系統(tǒng)能力和特征。②從系統(tǒng)需求、業(yè)務(wù)規(guī)則或其他來源中正確地推導(dǎo)出軟件需求。③需求是完整的、高質(zhì)量的。④需求的表述在所有地方都是一致的。⑤需求為繼續(xù)進(jìn)行產(chǎn)品設(shè)計(jì)和構(gòu)造提供了充分的基礎(chǔ)。⑥可以預(yù)先設(shè)計(jì)一些需求確認(rèn)檢查表來檢查每項(xiàng)需求是否是有用的。4.1需求工程需求工程劃分為五個(gè)獨(dú)立的階段:(5)需求跟蹤和變更控制階段需求跟蹤是指通過比較需求文檔與后續(xù)工作成果之間的對(duì)應(yīng)關(guān)系,確保產(chǎn)品依據(jù)需求文檔進(jìn)行開發(fā),建立與維護(hù)“需求——設(shè)計(jì)——編程——測試”等后續(xù)工作之間的一致性,確保所有工作成果符合用戶需求。4.2軟件需求獲取需求提取是發(fā)現(xiàn)用戶真實(shí)需要的過程,也稱需求捕獲。軟件需求提取可以分成兩個(gè)步驟:理解應(yīng)用領(lǐng)域和建立商業(yè)過程模型。例如:開發(fā)一個(gè)移動(dòng)終端的實(shí)驗(yàn)室監(jiān)管系統(tǒng)可以使用UML中的用例(UseCase)圖、用例描述、活動(dòng)圖等來對(duì)業(yè)務(wù)過程建模。4.2.1需求獲取方式4.2軟件需求獲取軟件需求的獲取方式主要有以下幾種:1.直接與用戶訪談和組織會(huì)談2.用戶工作環(huán)境體驗(yàn)和資料采集3.潛在用戶調(diào)查報(bào)告4.市場相關(guān)產(chǎn)品調(diào)研5.快速原型方法4.2軟件需求獲取我們對(duì)系統(tǒng)建立的初始理解可以開始于對(duì)項(xiàng)目所處應(yīng)用領(lǐng)域的了解。利用術(shù)語表完成對(duì)該領(lǐng)域中應(yīng)用技術(shù)詞匯的列表解釋。例如:建立一個(gè)智慧教室系統(tǒng)智慧教室(SmartClassroom)的研究始于歐洲。從2005年英國雷丁大學(xué)研究智慧教室的學(xué)生交互行為開始,針對(duì)智慧教室的研究正式進(jìn)入大眾的視野。4.2.2應(yīng)用領(lǐng)域理解4.2軟件需求獲取智慧教室主要是指借助互聯(lián)網(wǎng)技術(shù)、智能技術(shù)等構(gòu)建起來的新型教室。智慧教室旨在為教學(xué)活動(dòng)提供人性化、智能化的互動(dòng)空間;通過物理空間與數(shù)字空間的結(jié)合,本地與遠(yuǎn)程的結(jié)合,改善人與學(xué)習(xí)環(huán)境的關(guān)系,在學(xué)習(xí)空間實(shí)現(xiàn)人與環(huán)境的自然交互,促進(jìn)個(gè)性化學(xué)習(xí)、開放式學(xué)習(xí)和泛在學(xué)習(xí)。該類新型教室通過各類智能裝備的輔助更好地呈現(xiàn)教學(xué)內(nèi)容、便利獲取多樣化學(xué)習(xí)資源、促進(jìn)在課堂上展開多重交互,實(shí)現(xiàn)情境感知與環(huán)境管理功能的自動(dòng)調(diào)節(jié)。4.2.2應(yīng)用領(lǐng)域理解4.2軟件需求獲?。?)提供圖像識(shí)別系統(tǒng),可以實(shí)現(xiàn)人臉考勤、用戶行為分析、用戶情感分析等。(2)提供物聯(lián)設(shè)備系統(tǒng),可以實(shí)時(shí)監(jiān)控教室溫度、濕度等環(huán)境變化,并自動(dòng)做出調(diào)整;能夠自動(dòng)控制教室設(shè)備。(3)提供互動(dòng)交互系統(tǒng),通過智能錄課將線下課堂與云課堂結(jié)合,支持云端回看,同時(shí)配有電子白板和電子書包等。現(xiàn)有的智慧教室的主要功能有:4.2軟件需求獲取表4-1智慧教室實(shí)例初始術(shù)語表術(shù)語解釋考勤系統(tǒng)考勤系統(tǒng)是指一套管理出勤記錄等相關(guān)情況的管理系統(tǒng)人臉考勤通過教室攝像頭記錄識(shí)別人臉信息完成考勤用戶行為分析學(xué)生課堂情緒與行為的檢測,包括對(duì)學(xué)生考勤、情緒、低頭及交頭接耳行為等進(jìn)行識(shí)別物聯(lián)教室實(shí)時(shí)監(jiān)控教室溫度、濕度等環(huán)境變化,并自動(dòng)做出調(diào)整,能夠自動(dòng)控制教室設(shè)備智能錄課自動(dòng)錄制課程并上傳到云端供學(xué)生課后查看云課堂基于云計(jì)算技術(shù)的一種高效、便捷、實(shí)時(shí)互動(dòng)的遠(yuǎn)程教學(xué)課堂形式電子白板顯示上課內(nèi)容,保存板書供學(xué)生課后學(xué)習(xí)電子書包利用信息化設(shè)備進(jìn)行教學(xué)的便攜式終端4.2軟件需求獲取圖4-1智慧教室系統(tǒng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)4.2.3應(yīng)用實(shí)例需求獲取智慧教室管理系統(tǒng)人臉考勤業(yè)務(wù)主要流程:(1)生物信息采集用智能終端采集人臉照片,并上傳到后臺(tái)系統(tǒng)中,由教師確認(rèn)照片為學(xué)生本人無誤后,交由后臺(tái)識(shí)別軟件識(shí)別生成人臉信息庫。4.2軟件需求獲取4.2.3應(yīng)用實(shí)例需求獲?。?)考勤學(xué)生在教室就坐后,由教師提醒學(xué)生抬頭,并向智慧教室終端發(fā)送簽到指令,啟動(dòng)考勤服務(wù)。通過教室的攝像頭采集教室里的學(xué)生圖像,通過網(wǎng)絡(luò)發(fā)送給云端服務(wù)軟件進(jìn)行識(shí)別,并將識(shí)別結(jié)果和人臉信息庫中的信息進(jìn)行匹配比對(duì),若相似度大于設(shè)定的某個(gè)閾值,則考勤成功,反之則考勤失敗,暫記作缺勤處理。在上課期間,考勤系統(tǒng)持續(xù)工作,抓拍學(xué)生人臉圖像進(jìn)行比對(duì),對(duì)缺勤記錄進(jìn)行修正。下課前,由老師關(guān)閉考勤服務(wù)。(3)統(tǒng)計(jì)結(jié)果考勤后,統(tǒng)計(jì)應(yīng)到學(xué)生數(shù)和實(shí)到學(xué)生數(shù),并將對(duì)接的教務(wù)系統(tǒng)中請(qǐng)假的學(xué)生作標(biāo)注,最終得到本次的考勤結(jié)果。4.2軟件需求獲取4.2.3應(yīng)用實(shí)例需求獲?。?)人臉考勤時(shí)的特殊情況①錄入:錄入時(shí)學(xué)生可能會(huì)誤操作上傳其他人臉的照片,所以需要教師確認(rèn)照片是學(xué)生本人無誤后再交由后臺(tái)處理。②考勤:考勤時(shí)學(xué)生可能低著頭未被攝像頭采集到人臉信息,所以需要學(xué)生主動(dòng)抬起頭,或者在上課期間,多次補(bǔ)充人臉信息采集。③統(tǒng)計(jì):可能存在學(xué)生請(qǐng)假,但未在教務(wù)系統(tǒng)上申請(qǐng)的情況,所以要提供可以修改考勤結(jié)果的途徑。④可能還有其他的異常情況會(huì)產(chǎn)生,需要在多次溝通后逐步調(diào)整需求。用例圖描述的是參與者所理解的系統(tǒng)功能,幫助人們以一種可視化的方式理解系統(tǒng)的功能需求,講述了最終用戶如何在一個(gè)特定環(huán)境下和系統(tǒng)交互。用例圖有四個(gè)部分:用例(UseCase)、參與者(Actor)、系統(tǒng)邊界、關(guān)系。(1)用例是參與者可以感受到的系統(tǒng)服務(wù)或功能單元。(2)參與者是與系統(tǒng)交互的人或物,是在將要說明的功能和行為環(huán)境內(nèi)使用系統(tǒng)或產(chǎn)品的外部實(shí)體或角色。參與者可以是人、其他軟件系統(tǒng)、硬件設(shè)備或其他與系統(tǒng)進(jìn)行交互的實(shí)體。(3)系統(tǒng)邊界指系統(tǒng)與系統(tǒng)之間的界限。把系統(tǒng)邊界以外的同系統(tǒng)相關(guān)聯(lián)的其他部分稱為系統(tǒng)環(huán)境。4.3用例和場景4.3.1UML用例和場景4.3用例和場景4.3.1UML用例和場景(4)在用例圖中表示的關(guān)系有四種:關(guān)聯(lián)、泛化、包含和擴(kuò)展。①關(guān)聯(lián)關(guān)系圖4-2用例圖中的關(guān)聯(lián)關(guān)系②泛化關(guān)系圖4-3父用例和子用例的關(guān)系圖4-4參與者之間存在泛化關(guān)系4.3用例和場景4.3.1UML用例和場景(4)在用例圖中表示的關(guān)系有四種:關(guān)聯(lián)、泛化、包含和擴(kuò)展。③包含關(guān)系圖4-5用例之間包含關(guān)系示意圖④擴(kuò)展關(guān)系圖4-6用例之間擴(kuò)展關(guān)系4.3用例和場景4.3.1UML用例和場景在用例圖中,場景通常被定義為特定用例的一個(gè)或多個(gè)實(shí)例,用以描述系統(tǒng)如何與外部參與者交互以實(shí)現(xiàn)特定目標(biāo)或功能。場景描述了參與者如何與系統(tǒng)交互,觸發(fā)特定用例,以及系統(tǒng)對(duì)這些觸發(fā)的響應(yīng)。用例和場景之間的區(qū)別在于用例提供了整個(gè)功能的一般描述,而場景是用例的特定實(shí)例,就如對(duì)象是類的一個(gè)實(shí)例。場景的定義應(yīng)簡潔明了,利益相關(guān)者通過場景可以更好地理解系統(tǒng)的功能和行為。通過建立特定場景可以進(jìn)一步提取需求。4.3.2應(yīng)用實(shí)例業(yè)務(wù)模型業(yè)務(wù)模型是對(duì)商業(yè)過程的描述,可以通過訪談,結(jié)合調(diào)查問卷、檢查業(yè)務(wù)上使用的各種表格以及對(duì)用戶直接觀察等方法來獲取業(yè)務(wù)模型信息。4.3用例和場景4.3.2應(yīng)用實(shí)例業(yè)務(wù)模型(1)初始系統(tǒng)用例智慧教室的人臉考勤業(yè)務(wù)模型概述為:學(xué)生在智慧教室后端上傳學(xué)生人臉照片,并由教師審核通過后存入人臉信息庫。上課時(shí),教師通過智慧教室終端發(fā)送考勤指令,教室攝像頭采集學(xué)生人臉信息,交由后臺(tái)處理并將識(shí)別結(jié)果和人臉信息庫中的信息進(jìn)行匹配比對(duì),若存在相似度大于閾值的人臉信息,則考勤成功;反之則考勤失敗,先計(jì)成缺課處理。將所有教室里的學(xué)生進(jìn)行考勤后,統(tǒng)計(jì)應(yīng)到學(xué)生數(shù)和實(shí)到學(xué)生數(shù),減去對(duì)接的教務(wù)系統(tǒng)中已請(qǐng)假的學(xué)生,最終生成本次的考勤結(jié)果,并記錄在數(shù)據(jù)庫中。4.3用例和場景4.3.2應(yīng)用實(shí)例業(yè)務(wù)模型圖4-7系統(tǒng)初始用例圖初始需求時(shí),由于對(duì)一些具體的業(yè)務(wù)流程還不清楚,在用例描述中可以不記錄詳細(xì)的操作步驟。表4-2課堂管理用例描述用例名稱課堂管理用例描述對(duì)智慧教室上課時(shí)系統(tǒng)進(jìn)行操作與管理參與者教師與學(xué)生4.3用例和場景4.3.2應(yīng)用實(shí)例業(yè)務(wù)模型表4-3課程管理用例描述用例名稱課程管理用例描述對(duì)課程信息進(jìn)行管理,如添加、修改、刪除課程信息、課程信息發(fā)布、教學(xué)班維護(hù)等操作參與者教師4.3用例和場景圖4-7系統(tǒng)初始用例圖4.3.2應(yīng)用實(shí)例業(yè)務(wù)模型表4-4考勤管理用例描述用例名稱考勤管理用例描述對(duì)考勤情況進(jìn)行管理,如添加、修改、刪除考勤記錄等操作參與者教師、學(xué)生4.3用例和場景圖4-7系統(tǒng)初始用例圖4.3.2應(yīng)用實(shí)例業(yè)務(wù)模型表4-5教室管理用例描述用例名稱教室管理用例描述對(duì)上課教室管理,如教室基本信息維護(hù),教室申請(qǐng)等操作參與者教師、樓管4.3用例和場景圖4-7系統(tǒng)初始用例圖4.3.2應(yīng)用實(shí)例業(yè)務(wù)模型表4-6設(shè)備管理用例描述用例名稱設(shè)備管理用例描述對(duì)智慧教室的設(shè)備進(jìn)行管理,如設(shè)備信息錄入,設(shè)備分配等操作參與者系統(tǒng)管理員4.3用例和場景圖4-7系統(tǒng)初始用例圖4.3.2應(yīng)用實(shí)例業(yè)務(wù)模型表4-7用戶管理用例描述用例名稱用戶管理用例描述對(duì)智慧教室系統(tǒng)的用戶進(jìn)行管理,如添加教師、添加學(xué)生等操作參與者系統(tǒng)管理員4.3用例和場景圖4-7系統(tǒng)初始用例圖(2)用例迭代需求獲取是一個(gè)迭代的過程,隨著需求獲取工作的深入展開,應(yīng)逐步細(xì)化用例和用例描述。4.3用例和場景4.3用例和場景表4-8人臉考勤用例描述用例名稱人臉考勤用例描述系統(tǒng)對(duì)學(xué)生人臉信息進(jìn)行獲取與驗(yàn)證參與者教師基本路徑1.教師發(fā)出考勤指令(1)教師選擇課程的人臉考勤選項(xiàng)(2)發(fā)出考勤指令(3)相關(guān)設(shè)備開始工作2.收集學(xué)生人臉信息并識(shí)別(1)智慧教室攝像頭采集教室內(nèi)照片(2)攝像頭識(shí)別出學(xué)生人臉交給后臺(tái)處理(3)后臺(tái)第三方圖像處理軟件處理人臉照片(4)將處理的結(jié)果與已有的人臉信息庫比對(duì)(5)比對(duì)結(jié)果相似度大于90%為考勤成功(6)比對(duì)結(jié)果相似度小于90%為考勤失敗3.對(duì)已請(qǐng)假的學(xué)生做處理(1)調(diào)用考勤管理用例中已請(qǐng)假的學(xué)生信息(2)將請(qǐng)假的學(xué)生作請(qǐng)假處理4.生成考勤結(jié)果并儲(chǔ)存(1)將考勤成功、缺勤和請(qǐng)假的學(xué)生標(biāo)記(2)將標(biāo)記后的結(jié)果存入數(shù)據(jù)庫異常路徑1.學(xué)生在教室但考勤失敗,到教師機(jī)專用考勤攝像頭補(bǔ)錄入或者手動(dòng)考勤2.學(xué)生已請(qǐng)假,但是未在教務(wù)系統(tǒng)申請(qǐng)圖4-8課堂管理用例圖4.3用例和場景表4-9AI視頻錄課用例描述用例名稱AI視頻錄課用例描述AI智能錄課,并上傳云端供學(xué)生課后復(fù)習(xí)參與者教師和學(xué)生基本路徑1.教師在智慧教室終端點(diǎn)擊上課按鈕2.系統(tǒng)提示開始上課3.系統(tǒng)自動(dòng)錄制上課內(nèi)容4.將錄制的內(nèi)容整理后系統(tǒng)自動(dòng)上傳到智慧教室云課堂5.學(xué)生在智慧教室云課堂查看課程內(nèi)容異常路徑1.未在規(guī)定時(shí)間內(nèi)上課2.未點(diǎn)擊上課按鈕圖4-8課堂管理用例圖4.3用例和場景表4-10智慧白板應(yīng)用用例描述用例名稱智慧白板應(yīng)用用例描述智慧白板記錄上課板書,并上傳云端供學(xué)生課后復(fù)習(xí)查看參與者教師與學(xué)生基本路徑1.教師在智慧教室終端點(diǎn)擊上課按鈕2.系統(tǒng)提示開始上課3.系統(tǒng)自動(dòng)記錄白板內(nèi)容4.系統(tǒng)將記錄的內(nèi)容整理后自動(dòng)上傳到智慧教室云課堂5.學(xué)生在智慧教室云課堂查看課程內(nèi)容異常路徑1.未在規(guī)定時(shí)間內(nèi)上課2.未點(diǎn)擊上課按鈕圖4-8課堂管理用例圖4.3用例和場景表4-11智能環(huán)境監(jiān)控用例描述用例名稱智能環(huán)境監(jiān)控用例描述智慧教室系統(tǒng)自動(dòng)監(jiān)控教室溫濕度環(huán)境情況并做出調(diào)節(jié)參與者智慧教室系統(tǒng)基本路徑1.教師在智慧教室終端點(diǎn)擊上課按鈕2.系統(tǒng)提示開始上課3.教室系統(tǒng)智能環(huán)境監(jiān)控開始工作4.環(huán)境監(jiān)控系統(tǒng)記錄監(jiān)控?cái)?shù)據(jù)5.若監(jiān)控?cái)?shù)據(jù)發(fā)現(xiàn)異常,自動(dòng)提醒設(shè)備做出調(diào)節(jié)異常路徑1.未在規(guī)定時(shí)間內(nèi)上課2.未點(diǎn)擊上課按鈕圖4-8課堂管理用例圖4.3用例和場景表4-12課程信息維護(hù)用例描述圖4-9課程管理用例圖用例名稱課程信息維護(hù)用例描述教師對(duì)課程信息進(jìn)行管理參與者教師基本路徑1.在課程管理菜單中選擇課程信息管理選項(xiàng)2.選擇增加、刪除、修改、查詢課程信息操作3.輸入相關(guān)信息并確認(rèn)課程主要信息:課程號(hào)、課程名稱、課程簡介、課時(shí)、學(xué)分4.系統(tǒng)將相關(guān)數(shù)據(jù)保存到數(shù)據(jù)庫中4.3用例和場景表4-13課程發(fā)布用例描述用例名稱課程發(fā)布用例描述教師發(fā)布課程參與者教師基本路徑1.在課程管理菜單中選擇要發(fā)布的課程選項(xiàng)2.選擇可以看到課程發(fā)布的對(duì)象3.單擊發(fā)布按鈕4.系統(tǒng)提示是否確認(rèn)發(fā)布5.確認(rèn)后,系統(tǒng)顯示發(fā)布成功圖4-9課程管理用例圖4.3用例和場景表4-14教學(xué)班維護(hù)用例描述用例名稱教學(xué)班維護(hù)用例描述教師對(duì)教學(xué)班進(jìn)行管理參與者教師基本路徑1.在課程管理菜單中選擇教學(xué)班管理選項(xiàng)2.選擇增加、刪除、修改、查詢教學(xué)班操作3.輸入相關(guān)信息并確認(rèn)教學(xué)班主要信息:教學(xué)班編號(hào)、教學(xué)班名稱、教學(xué)班簡介、人數(shù)、所屬學(xué)院、學(xué)生名單4.系統(tǒng)將相關(guān)數(shù)據(jù)保存到數(shù)據(jù)庫中圖4-9課程管理用例圖4.3用例和場景表4-15考勤結(jié)果修改用例描述圖4-10考勤管理用例圖用例名稱考勤結(jié)果修改用例描述教師修改錯(cuò)誤的考勤結(jié)果參與者教師基本路徑1.在考勤管理菜單中選擇考勤結(jié)果修改選項(xiàng)2.輸入學(xué)生學(xué)號(hào)3.選擇考勤時(shí)間4.輸入正確的考勤結(jié)果5.單擊提交按鈕,系統(tǒng)顯示修改考勤結(jié)果成功4.3用例和場景表4-16考勤結(jié)果申訴用例描述用例名稱考勤結(jié)果申訴用例描述學(xué)生申訴錯(cuò)誤的考勤結(jié)果參與者學(xué)生基本路徑1.在考勤管理菜單中選擇考勤結(jié)果申訴選項(xiàng)2.輸入學(xué)生學(xué)號(hào)3.選擇考勤時(shí)間4.輸入正確的考勤結(jié)果5.單擊申訴按鈕,系統(tǒng)顯示考勤結(jié)果申訴提交成功擴(kuò)展路徑1.學(xué)生申訴不予通過圖4-10考勤管理用例圖4.3用例和場景表4-17請(qǐng)假申請(qǐng)用例描述用例名稱請(qǐng)假申請(qǐng)用例描述學(xué)生在智慧教室系統(tǒng)中提交請(qǐng)假申請(qǐng)參與者學(xué)生基本路徑1.在考勤管理菜單中選擇請(qǐng)假申請(qǐng)選項(xiàng)2.輸入學(xué)生學(xué)號(hào)3.選擇請(qǐng)假時(shí)間4.輸入請(qǐng)假原因5.單擊申請(qǐng)請(qǐng)假按鈕,系統(tǒng)顯示申請(qǐng)請(qǐng)假提交成功擴(kuò)展路徑1.不在該課程請(qǐng)假時(shí)間范圍內(nèi),請(qǐng)假失敗圖4-10考勤管理用例圖4.3用例和場景表4-18請(qǐng)假管理用例描述用例名稱請(qǐng)假管理用例描述教師在智慧教室系統(tǒng)中審批學(xué)生請(qǐng)假信息參與者教師基本路徑1.在考勤管理菜單中選擇請(qǐng)假管理選項(xiàng)2.選擇請(qǐng)假學(xué)生3.系統(tǒng)顯示請(qǐng)假原因和請(qǐng)假時(shí)間4.單擊同意按鈕,系統(tǒng)顯示該學(xué)生請(qǐng)假成功,或者單擊不同意按鈕,系統(tǒng)顯示該學(xué)生請(qǐng)假不成功圖4-10考勤管理用例圖4.3用例和場景表4-19教室信息管理用例描述圖4-11教室管理用例圖用例名稱教室信息管理用例描述樓管對(duì)教室信息進(jìn)行管理參與者樓管基本路徑1.在教室管理菜單中選擇教室信息管理選項(xiàng)2.選擇增加、刪除、修改、查詢教室信息操作3.輸入相關(guān)信息并確認(rèn)教室信息包括:教室編號(hào)、教室位置、教室類型、座位數(shù)量、教室用途4.系統(tǒng)將相關(guān)數(shù)據(jù)保存到數(shù)據(jù)庫中4.3用例和場景表4-20教室使用申請(qǐng)用例描述用例名稱教室使用申請(qǐng)用例描述樓管與教師對(duì)智慧教室使用申請(qǐng)進(jìn)行管理參與者樓管與教師基本路徑1.教師在教室管理菜單中選擇使用申請(qǐng)選項(xiàng)2.選擇增加、刪除、修改、查詢操作3.教師輸入相關(guān)申請(qǐng)信息并提交申請(qǐng)管理信息包括:申請(qǐng)時(shí)間、教室編號(hào)、申請(qǐng)用途、申請(qǐng)人編號(hào)4.樓管對(duì)教室申請(qǐng)信息進(jìn)行確認(rèn)5.系統(tǒng)將相關(guān)數(shù)據(jù)保存到數(shù)據(jù)庫中圖4-11教室管理用例圖4.3用例和場景表4-21設(shè)備登記用例描述圖4-12設(shè)備管理詳細(xì)用例圖用例名稱設(shè)備登記用例描述系統(tǒng)管理員登記新設(shè)備參與者系統(tǒng)管理員基本路徑1.在設(shè)備管理菜單中選擇設(shè)備登記選項(xiàng)2.選擇需要登記的設(shè)備3.輸入相關(guān)登記信息并點(diǎn)擊登記登記信息包括:設(shè)備名稱、設(shè)備型號(hào)、生產(chǎn)廠商、產(chǎn)品序列號(hào)、登記的時(shí)間4.相關(guān)信息保存到數(shù)據(jù)庫中4.3用例和場景表4-22設(shè)備分配用例描述用例名稱設(shè)備分配用例描述系統(tǒng)管理員分配設(shè)備到智慧教室參與者系統(tǒng)管理員基本路徑1.在設(shè)備管理菜單中選擇設(shè)備分配選項(xiàng)2.選擇需要分配的設(shè)備3.選擇需要分配到的教室4.確認(rèn)后點(diǎn)擊分配按鈕5.保存到數(shù)據(jù)庫中異常路徑1.設(shè)備無法分配圖4-12設(shè)備管理詳細(xì)用例圖4.3用例和場景表4-23用戶信息管理用例描述圖4-13用戶管理用例圖用例名稱用戶信息管理用例描述系統(tǒng)管理員管理用戶信息參與者系統(tǒng)管理員基本路徑1.在用戶管理菜單中選擇用戶信息管理選項(xiàng)2.選擇增加、刪除、修改、查詢課程信息操作3.輸入相關(guān)信息并確認(rèn)教師信息包括:教師號(hào)、姓名、性別、密碼、手機(jī)、頭像學(xué)生信息包括:學(xué)號(hào)、姓名、性別、密碼、班級(jí)、頭像、手機(jī)號(hào)樓管信息包括:樓管賬號(hào)、姓名、性別、密碼、所處大樓、手機(jī)號(hào)其他人員信息包括:編號(hào)、姓名、性別、密碼、手機(jī)4.系統(tǒng)將相關(guān)數(shù)據(jù)保存到數(shù)據(jù)庫中4.3用例和場景表4-24用戶權(quán)限管理用例描述用例名稱用戶權(quán)限管理用例描述系統(tǒng)管理員修改指定的用戶權(quán)限參與者系統(tǒng)管理員基本路徑1.在用戶管理菜單中選中指定用戶2.點(diǎn)擊用戶權(quán)限管理按鈕3.對(duì)用戶權(quán)限進(jìn)行增、刪、改操作4.單擊保存按鈕5.系統(tǒng)提示是否確認(rèn)保存6.確認(rèn)后,系統(tǒng)顯示保存成功圖4-13用戶管理用例圖4.4用戶故事地圖用戶故事(userstory)是從用戶角度來描述用戶渴望得到的功能。它是敏捷過程實(shí)踐中的一個(gè)重要環(huán)節(jié)。一個(gè)基本的用戶故事包括三個(gè)要素:角色、活動(dòng)、商業(yè)價(jià)值,其一般描述格式:“作為什么角色,我想要進(jìn)行什么活動(dòng)(想要什么功能),以此來實(shí)現(xiàn)什么商業(yè)價(jià)值。”例如一個(gè)故事可能是:作為學(xué)生可以查看他(她)的考勤記錄,以了解出勤情況。4.4.1用戶故事4.4用戶故事地圖極限創(chuàng)始人之一RonJeffries提出了一個(gè)關(guān)于用戶故事的3C描述:(1)卡片(Card):用戶故事一般寫在小的記事卡片上??ㄆ峡赡軙?huì)寫上故事的簡短描述,工作量估算等。(2)交談(Conversation):用戶故事背后的細(xì)節(jié)來源于和客戶或者產(chǎn)品負(fù)責(zé)人的交流溝通。(3)確認(rèn)(Confirmation):通過驗(yàn)收測試確認(rèn)用戶故事被正確完成。用戶故事通常由客戶團(tuán)隊(duì)而不是開發(fā)人員編寫,每個(gè)客戶團(tuán)隊(duì)?wèi)?yīng)包括確保軟件符合潛在用戶需求的相關(guān)人員。整個(gè)故事使用商業(yè)用語,而不是技術(shù)術(shù)語。客戶團(tuán)隊(duì)與開發(fā)人員共同確定故事細(xì)節(jié)并安排故事的優(yōu)先級(jí)順序。4.4.1用戶故事一個(gè)好的用戶故事應(yīng)該具有6個(gè)特性:1.獨(dú)立性(Independent)2.可協(xié)商性(Negotiable)3.對(duì)用戶或者客戶有價(jià)值(Valuable)4.可估算性(Estimable)5.短小(Small)6.可測試性(Testable)4.4用戶故事地圖4.4用戶故事地圖用戶故事與用例比較:用戶故事比用例的范圍更小。用例的主要目的是以客戶和開發(fā)人員都可以接受的格式,記錄客戶和開發(fā)團(tuán)隊(duì)之間的協(xié)議。用例描述會(huì)涉及用戶界面和細(xì)節(jié)問題,并在整個(gè)軟件生命周期中都存在。用戶故事主要目的是用于溝通,啟動(dòng)后期的分析和談話,它不涉及更多的細(xì)節(jié),也不完全對(duì)應(yīng)于用例的主要正常場景,可以被存檔或者拋棄。4.4.1用戶故事4.4用戶故事地圖在編寫合理的用戶故事以后,需要對(duì)項(xiàng)目進(jìn)行估算并制定各類的項(xiàng)目計(jì)劃。如果以用戶故事來描述系統(tǒng)功能,敏捷方法中通常會(huì)選用故事點(diǎn)來估算用戶故事。故事點(diǎn)是對(duì)故事復(fù)雜度、工作量或工期的相對(duì)估算。例如,一個(gè)故事點(diǎn)可以定義為沒有打擾情況下一個(gè)理想工作日所能完成的工作。4.4.2用戶故事估算和計(jì)劃4.4用戶故事地圖4.4.2用戶故事估算和計(jì)劃WidebandDelph估算法用迭代方式進(jìn)行估算:1.所有參與的客戶和開發(fā)人員聚在一起,由客戶隨機(jī)抽取第一個(gè)故事開始,詳細(xì)講解故事直到所有人都清楚了解這個(gè)故事。2.然后每個(gè)開發(fā)人員以團(tuán)隊(duì)共同定義的一個(gè)故事點(diǎn)可以完成的任務(wù)為單位,先寫下自己估算這個(gè)故事的完成時(shí)間。3.接著大家展示自己的估算,然后每個(gè)人解釋為什么估算出這個(gè)值。4.經(jīng)過討論和再次個(gè)人估算,直到經(jīng)過論證,團(tuán)隊(duì)估算出一個(gè)所有人都認(rèn)可的值,再繼續(xù)下一個(gè)故事的估算。4.4用戶故事地圖4.4.2用戶故事估算和計(jì)劃在估算數(shù)個(gè)故事后,對(duì)估算結(jié)果做三角測量:在估算一個(gè)故事時(shí),根據(jù)這個(gè)故事與其他一個(gè)或多個(gè)故事的關(guān)系來估算。假定一個(gè)故事估算為4個(gè)故事點(diǎn),第二個(gè)故事為2個(gè)故事點(diǎn),把這兩個(gè)故事放在一起考慮的時(shí)候,程序員都應(yīng)該認(rèn)可4個(gè)故事點(diǎn)的故事大小是2個(gè)故事點(diǎn)的故事的2倍,其他3個(gè)故事點(diǎn)的故事的大小應(yīng)該介于4個(gè)故事點(diǎn)的故事和2個(gè)故事點(diǎn)的故事之間。如果上面的三角測量的結(jié)果不對(duì),團(tuán)隊(duì)就應(yīng)該重新估算。4.4用戶故事地圖4.4.3用戶故事地圖JeffPatton提出用戶故事地圖(UserStoryMapping),以結(jié)構(gòu)化的方式來組織用戶故事圖4-14用戶故事地圖舉例4.4用戶故事地圖4.4.3用戶故事地圖圖4-15智慧教室用戶故事地圖的脈絡(luò)5個(gè)主要步驟:(1)產(chǎn)品的定義(2)梳理骨干故事(3)拆分故事(4)確定優(yōu)先級(jí)和發(fā)布計(jì)劃(5)反饋修正故事小結(jié)1.了解有關(guān)需求的基本知識(shí)。2.掌握需求工程的主要活動(dòng)及它們之間的關(guān)系。3.掌握需求獲取主要方法。4.掌握通過用例和場景對(duì)需求建模。5.掌握用戶故事地圖建立項(xiàng)目需求。作業(yè)與思考作業(yè):1.試對(duì)智慧教室的物聯(lián)設(shè)備做進(jìn)一步探究,了解相關(guān)的應(yīng)用領(lǐng)域
,建立物聯(lián)設(shè)備的術(shù)語表。2.請(qǐng)?jiān)O(shè)計(jì)教材以外的一個(gè)智慧教室的應(yīng)用場景,并對(duì)本節(jié)中的用例加以改進(jìn)。3.請(qǐng)給出“查看考勤結(jié)果”用例描述。4.選取一個(gè)實(shí)例,用用戶故事地圖來建立實(shí)例的二維視圖。思考:1.如何理解“如果產(chǎn)品能以20%的功能滿足80%的人的需求,那么這個(gè)產(chǎn)品就成功了一大步”這句話。它的背后隱含著什么定律或者原則。第5章
需求分析本章學(xué)習(xí)目標(biāo)1.理解需求分析的主要任務(wù)。2.理解不同需求分析方法解決問題的本質(zhì)3.掌握傳統(tǒng)的結(jié)構(gòu)化分析方法。4.掌握面向?qū)ο蟮姆治龇椒ā?.熟練應(yīng)用UML建立需求分析模型。6.了解軟件形式化分析技術(shù)。
面向數(shù)據(jù)流的結(jié)構(gòu)化分析1形式化分析技術(shù)5結(jié)構(gòu)化分析實(shí)例2面向?qū)ο蟮姆治?面向?qū)ο蠓治鰧?shí)例4需求分析的主要任務(wù)在需求工程的起始階段,項(xiàng)目利益相關(guān)者建立起基本的問題需求,定義重要的項(xiàng)目約束條件并描述項(xiàng)目的功能和主要特征。這些信息經(jīng)過各種需求收集活動(dòng)后,在需求導(dǎo)出階段記錄下來。在進(jìn)入需求的精化階段,需求會(huì)得到進(jìn)一步的精煉,并擴(kuò)展為分析模型。創(chuàng)建需求分析模型原則Ariow和Neustadt提出了在創(chuàng)建需求分析模型時(shí)應(yīng)注意的原則:(1)分析模型應(yīng)關(guān)注問題域或業(yè)務(wù)域內(nèi)可見的需求,并注意提高抽象級(jí)別。(2)分析模型的每個(gè)元素都應(yīng)能增加對(duì)軟件需求的整體理解,并提供對(duì)信息域、功能和系統(tǒng)行為域的深入理解。(3)關(guān)于基礎(chǔ)結(jié)構(gòu)和其他非功能的模型應(yīng)推遲到設(shè)計(jì)階段再考慮。(4)應(yīng)最小化整個(gè)系統(tǒng)內(nèi)的關(guān)聯(lián),減少類和功能間的直接依賴關(guān)系和相互作用。(5)確認(rèn)分析模型為項(xiàng)目所有利益相關(guān)者都能帶來價(jià)值。(6)盡可能保持模型簡潔。需求建模方法在需求建模過程中,軟件工程具體關(guān)注的焦點(diǎn)是“系統(tǒng)要做什么”,而不是“系統(tǒng)該怎么做”。關(guān)注的主要問題有“在特定的應(yīng)用環(huán)境下,發(fā)生了哪些用戶交互?系統(tǒng)處理哪些對(duì)象?系統(tǒng)必須執(zhí)行什么功能?系統(tǒng)對(duì)外界展示什么行為?系統(tǒng)與外界有哪些接口?受到什么樣的約束?”等。需求建模方法傳統(tǒng)的面向數(shù)據(jù)和面向處理的需求建模方法被稱為結(jié)構(gòu)化分析,其中處理是將數(shù)據(jù)作為獨(dú)立實(shí)體加以轉(zhuǎn)換,表示了數(shù)據(jù)對(duì)象在系統(tǒng)內(nèi)流動(dòng)時(shí),系統(tǒng)是如何處理和如何轉(zhuǎn)換數(shù)據(jù)。面向?qū)ο蟮男枨蠓治龇椒?,則是關(guān)注于識(shí)別和定義類,通過類之間的協(xié)作來響應(yīng)客戶的需求。5.1.1半形式化分析技術(shù)(1)數(shù)據(jù)流圖數(shù)據(jù)流圖有時(shí)也被稱為數(shù)據(jù)流程圖(DataFlowDiagram,簡稱DFD),是一種便于用戶理解和分析系統(tǒng)數(shù)據(jù)流程的圖形工具。表5-1數(shù)據(jù)流程圖基本符號(hào)5.1面向數(shù)據(jù)流的結(jié)構(gòu)化分析5.1面向數(shù)據(jù)流的結(jié)構(gòu)化分析在繪制分層數(shù)據(jù)流圖時(shí)應(yīng)注意以下事項(xiàng):①自頂向下、逐層分解。②數(shù)據(jù)流必須經(jīng)過加工環(huán)節(jié)。③每個(gè)加工必須既有輸入數(shù)據(jù)流,又有輸出數(shù)據(jù)流。④數(shù)據(jù)存儲(chǔ)環(huán)節(jié)一般作為兩個(gè)加工環(huán)節(jié)的界面來安排。⑤適當(dāng)?shù)貫閿?shù)據(jù)流、加工、數(shù)據(jù)存儲(chǔ)、外部實(shí)體命名,名字應(yīng)反映該成分的實(shí)際含義,避免空洞的名字。在繪制分層數(shù)據(jù)流圖時(shí)應(yīng)注意以下事項(xiàng):⑥編號(hào)。⑦保持?jǐn)?shù)據(jù)守恒。⑧局部數(shù)據(jù)存儲(chǔ)的隱蔽性。⑨保持父圖與子圖平衡。⑩只繪制所描述的系統(tǒng)穩(wěn)定工作情況下的數(shù)據(jù)流圖。?畫數(shù)據(jù)流而不要畫控制流。5.1面向數(shù)據(jù)流的結(jié)構(gòu)化分析(2)判定樹和判決表判定樹又稱決策樹(decisiontree),是一種描述加工的圖形工具,適合描述問題處理中具有多個(gè)判斷,并且每個(gè)決策與若干條件有關(guān),導(dǎo)致不同的結(jié)果。5.1面向數(shù)據(jù)流的結(jié)構(gòu)化分析例如有關(guān)退票改簽費(fèi)有如下規(guī)定:
開車前8天(不含)以上退票的,不收取退票費(fèi);票面乘車站開車時(shí)間前48小時(shí)以上的按票價(jià)5%計(jì),24小時(shí)以上、不足48小時(shí)的按票價(jià)10%計(jì),不足24小時(shí)的按票價(jià)20%計(jì)。辦理車票改簽時(shí),新車票票價(jià)高于原車票的,收取票價(jià)差額。新車票票價(jià)等于原車票,不收取費(fèi)用。新車票票價(jià)低于原車票的,退還差額。5.1面向數(shù)據(jù)流的結(jié)構(gòu)化分析圖5-1判定樹表示購票5.1面向數(shù)據(jù)流的結(jié)構(gòu)化分析表5-2購買火車票判定表5.1面向數(shù)據(jù)流的結(jié)構(gòu)化分析(3)數(shù)據(jù)字典數(shù)據(jù)字典是元數(shù)據(jù)(metadata)的結(jié)構(gòu)化存儲(chǔ)庫,它提供所用數(shù)據(jù)的全面描述。其主要目的是提供一種共同的語言,以幫助軟件項(xiàng)目的涉眾理解數(shù)據(jù)、數(shù)據(jù)的含義以及數(shù)據(jù)與其他數(shù)據(jù)元素的關(guān)系。在結(jié)構(gòu)化分析中,數(shù)據(jù)字典的作用是給數(shù)據(jù)流圖中每個(gè)成分加以定義和說明,數(shù)據(jù)流圖和數(shù)據(jù)字典共同構(gòu)成系統(tǒng)的邏輯模型。5.1面向數(shù)據(jù)流的結(jié)構(gòu)化分析1.數(shù)據(jù)項(xiàng):數(shù)據(jù)流圖中數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)項(xiàng)說明。數(shù)據(jù)項(xiàng)描述={數(shù)據(jù)項(xiàng)名,數(shù)據(jù)項(xiàng)含義說明,別名,數(shù)據(jù)類型,長度,取值范圍,取值含義,與其他數(shù)據(jù)項(xiàng)的邏輯關(guān)系}2.數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)流圖中數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu)說明。數(shù)據(jù)結(jié)構(gòu)描述={數(shù)據(jù)結(jié)構(gòu)名,含義說明,組成:{數(shù)據(jù)項(xiàng)或數(shù)據(jù)結(jié)構(gòu)}}3.數(shù)據(jù)流:數(shù)據(jù)流圖中流線的說明。數(shù)據(jù)流描述={數(shù)據(jù)流名,說明,數(shù)據(jù)流來源,數(shù)據(jù)流去向,組成:{數(shù)據(jù)結(jié)構(gòu)},平均流量,高峰期流量}4.數(shù)據(jù)存儲(chǔ):數(shù)據(jù)流圖中數(shù)據(jù)塊的存儲(chǔ)特性說明。數(shù)據(jù)存儲(chǔ)描述={數(shù)據(jù)存儲(chǔ)名,說明,編號(hào),流入的數(shù)據(jù)流,流出的數(shù)據(jù)流,組成:{數(shù)據(jù)結(jié)構(gòu)},數(shù)據(jù)量,存取方式}5.處理過程:數(shù)據(jù)流圖中功能塊也就是加工的說明。處理過程描述={處理過程名,說明,輸入:{數(shù)據(jù)流},輸出:{數(shù)據(jù)流},處理:{簡要說明}}5.1面向數(shù)據(jù)流的結(jié)構(gòu)化分析5.1.2
Gane和Sarsen結(jié)構(gòu)化系統(tǒng)分析Gane和Sarsen的結(jié)構(gòu)化系統(tǒng)分析方法作為主流的傳統(tǒng)需求分析技術(shù)是以系統(tǒng)中數(shù)據(jù)流動(dòng)為重點(diǎn),對(duì)數(shù)據(jù)出入系統(tǒng)邊界形態(tài)、系統(tǒng)內(nèi)部處理進(jìn)行研究來分析用戶的要求。其分析過程分為9個(gè)步驟。5.1面向數(shù)據(jù)流的結(jié)構(gòu)化分析分析過程分為以下9個(gè)步驟:(1)在需求初步獲取的基礎(chǔ)上運(yùn)用逐步求精的方法畫數(shù)據(jù)流圖,數(shù)據(jù)流圖分層描述。(2)決定軟件系統(tǒng)實(shí)現(xiàn)數(shù)據(jù)流圖中哪些部分。(3)確定數(shù)據(jù)流圖中數(shù)據(jù)流的細(xì)節(jié)。(4)定義數(shù)據(jù)流圖中加工的處理邏輯。(5)定義數(shù)據(jù)流圖中涉及的數(shù)據(jù)存儲(chǔ)。(6)定義滿足項(xiàng)目需要的物理資源。(7)確定項(xiàng)目需要滿足的輸入-輸出規(guī)格說明。(8)確定系統(tǒng)中輸入數(shù)據(jù)、中間計(jì)算結(jié)果、輸出數(shù)據(jù)的大小。(9)根據(jù)步驟(8)中的計(jì)算結(jié)果,確定硬件要求和約束。5.1面向數(shù)據(jù)流的結(jié)構(gòu)化分析5.2結(jié)構(gòu)化分析實(shí)例5.2.1逐步求精數(shù)據(jù)流圖智慧教室是一個(gè)較為復(fù)雜的問題,一次性得到一張完整的DFD比較困難,可以按照系統(tǒng)抽象層次結(jié)構(gòu)進(jìn)行逐步求精,并采用分層數(shù)據(jù)流圖表示。圖5-2頂層數(shù)據(jù)流圖圖5-3第一次細(xì)化數(shù)據(jù)流圖5.2結(jié)構(gòu)化分析實(shí)例圖5-4課堂管理細(xì)化數(shù)據(jù)流圖5.2結(jié)構(gòu)化分析實(shí)例圖5-5人臉考勤管理細(xì)化數(shù)據(jù)流圖5.2結(jié)構(gòu)化分析實(shí)例5.2.2定義數(shù)據(jù)字典表5-3人臉考勤管理數(shù)據(jù)字典部分詞條5.2結(jié)構(gòu)化分析實(shí)例5.2.3建造實(shí)體-關(guān)系模型5.2結(jié)構(gòu)化分析實(shí)例面向?qū)ο蠓治?.3.1面向?qū)ο蠓椒ê徒Y(jié)構(gòu)化方法結(jié)構(gòu)化方法求解問題的基本策略是從功能的角度審視問題域。它將應(yīng)用程序看成實(shí)現(xiàn)某些特定任務(wù)的功能模塊。在每個(gè)功能模塊中,用數(shù)據(jù)結(jié)構(gòu)描述待處理數(shù)據(jù)的組織形式,用算法描述具體的操作過程。在面向?qū)ο蟮募夹g(shù)中,對(duì)象由數(shù)據(jù)和操作組成。對(duì)程序設(shè)計(jì)者而言,對(duì)象是一個(gè)具有信息性內(nèi)聚的程序模塊;對(duì)其他用戶而言,對(duì)象是程序提供給他們的服務(wù),通過知悉對(duì)象接口形式就可以調(diào)用,并不需要了解它們的內(nèi)部實(shí)現(xiàn)細(xì)節(jié)。5.3面向?qū)ο蠓治?.3.2面向?qū)ο蠓治鲋械闹饕夹g(shù)面向?qū)ο蠓治觯∣OA)是一種半形式化的分析技術(shù)。在多種面向?qū)ο蟮能浖こ谭椒ㄖ?,比較有影響的應(yīng)用有Booch、OOSE、OMT,以及后面出現(xiàn)的統(tǒng)一過程等。5.3面向?qū)ο蠓治?.3.2面向?qū)ο蠓治鲋械闹饕夹g(shù)GradyBooch是面向?qū)ο蠓椒ㄗ钤绲某珜?dǎo)者之一。他于1986年提出了“面向?qū)ο蠓治雠c設(shè)計(jì)(OOAD)”。
Booch提出的開發(fā)模型包括邏輯模型、物理模型、靜態(tài)模型和動(dòng)態(tài)模型。①發(fā)現(xiàn)類和對(duì)象,在一定抽象層面標(biāo)識(shí)出類和對(duì)象;②確定類和對(duì)象的語義,將期望的行為賦予對(duì)象類;③標(biāo)識(shí)類和對(duì)象之間的關(guān)系。Booch方法有很強(qiáng)的表達(dá)能力,其迭代和增量的思想對(duì)很多軟件工程開發(fā)設(shè)計(jì)階段的建模提供了重要的指導(dǎo)。5.3面向?qū)ο蠓治鯫MT(ObjectModelingTechnique)方法是由Loomis,Shan和JamesRumbaugh在最先提出的實(shí)體和關(guān)系模型基礎(chǔ)上進(jìn)一步擴(kuò)展了類、行為以及繼承等得來。①對(duì)象模型:表述對(duì)象靜態(tài)的結(jié)構(gòu)以及它們之間的相互作用關(guān)系。②動(dòng)態(tài)模型:描述系統(tǒng)動(dòng)態(tài)的變化特點(diǎn),包括狀態(tài)和活動(dòng)等。③功能模型:描述與數(shù)據(jù)值的變換有關(guān)的系統(tǒng)特征,不同數(shù)據(jù)值之間在系統(tǒng)內(nèi)的轉(zhuǎn)換,包括處理、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)流等概念。5.3面向?qū)ο蠓治鯦acobson提出了“面向?qū)ο筌浖こ蹋∣OSE)”方法,其核心是用例驅(qū)動(dòng),建立面向?qū)ο蟮姆治瞿P秃驮O(shè)計(jì)模型。主要用五種模型來描述系統(tǒng):①需求模型(Requirementmodel,簡稱RM)。②分析模型(Analysismodel,AM)。③設(shè)計(jì)模型(Designmodel,簡稱DM)。④實(shí)現(xiàn)模型(Implementationmodel,IM)。⑤測試模型(Testingmodel,簡稱TM)。OOSE的開發(fā)活動(dòng)主要包括分析、構(gòu)造、測試三個(gè)過程。5.3面向?qū)ο蠓治鼋y(tǒng)一過程使用統(tǒng)一建模語言(UnifiedModelingLanguage,簡稱UML)來表示要開發(fā)的軟件。UML是面向?qū)ο箝_發(fā)中一種通用的圖形化建模語言?;赨ML建模可以分為靜態(tài)和動(dòng)態(tài)兩類:基于用例圖、對(duì)象圖以及類圖等創(chuàng)建的模型為靜態(tài)模型,基于狀態(tài)圖、活動(dòng)圖等創(chuàng)建的模型為動(dòng)態(tài)模型。表5-4UML部分語法描述5.3面向?qū)ο蠓治?.3.3面向?qū)ο蟮姆治龇椒ê椭饕襟E面向?qū)ο蠓治龅哪繕?biāo)主要是完成對(duì)求解問題的分析,建立系統(tǒng)的需求分析模型,包括對(duì)象模型、動(dòng)態(tài)模型和功能模型等。(1)對(duì)象模型:對(duì)用例模型進(jìn)行分析,把系統(tǒng)分解成互相協(xié)作的分析類,通過類圖和對(duì)象圖描述對(duì)象、對(duì)象的屬性以及對(duì)象間的關(guān)系。對(duì)象模型是對(duì)系統(tǒng)的靜態(tài)建模。(2)動(dòng)態(tài)模型:描述系統(tǒng)的動(dòng)態(tài)行為,通過順序圖、協(xié)作圖描述對(duì)象的交互,以揭示對(duì)象間如何協(xié)作來完成每個(gè)具體的用例。單個(gè)對(duì)象的狀態(tài)變化、動(dòng)態(tài)行為可以通過狀態(tài)圖來表示。(3)功能模型:描述系統(tǒng)應(yīng)該做什么,最直接地反映了用戶對(duì)目標(biāo)系統(tǒng)的需求。通常功能模型由一組數(shù)據(jù)流圖或一組用例圖組成。5.3面向?qū)ο蠓治?.3.3面向?qū)ο蟮姆治龇椒ê椭饕襟E可以把面向?qū)ο蟮姆治鲞^程分成三個(gè)主要活動(dòng):用例建模、類建模和動(dòng)態(tài)建模。(1)
用例建模:建立以用例模型為主體的需求模型,提出所有用例的場景,又稱功能建模。(2)類建模:確定類和它們的屬性,以及類間的相互關(guān)系和交互作用。(3)動(dòng)態(tài)建模:確定由每個(gè)類或者子類執(zhí)行的活動(dòng)或?qū)λ鼈冞M(jìn)行的行為。5.3面向?qū)ο蠓治?.3.3面向?qū)ο蟮姆治龇椒ê椭饕襟E面向?qū)ο蠓治鰪某槿☆愰_始。5.3表5-5
類的構(gòu)造表達(dá)面向?qū)ο蠓治?.3.3面向?qū)ο蟮姆治龇椒ê椭饕襟E實(shí)體類的提取可以按照如下步驟進(jìn)行:1)提出所有用例的可能場景,包括正常場景和異常場景。2)標(biāo)識(shí)出這些用例和場景中的實(shí)體類(包括屬性和方法,
也可以在面向?qū)ο笤O(shè)計(jì)時(shí)深入探索)。3)確定實(shí)體類結(jié)構(gòu)和層次。4)確定實(shí)體類之間的交互關(guān)系。5.3面向?qū)ο蠓治?.3.3面向?qū)ο蟮姆治龇椒ê椭饕襟E用例是系統(tǒng)功能的一般性描述,場景是用例的一個(gè)特定實(shí)例。系統(tǒng)每個(gè)用例可以通過由實(shí)體類、邊界類、控制類相互關(guān)聯(lián)的類圖來表示。用例的場景通過這些類的對(duì)象之間的交互關(guān)系和交互行為來實(shí)現(xiàn),可以通過順序圖、協(xié)作圖等來對(duì)這個(gè)場景進(jìn)行動(dòng)態(tài)建模。在面向?qū)ο蠓治鲞^程中,有多種方法可以幫助提取實(shí)體類。5.3面向?qū)ο蠓治?.3.3面向?qū)ο蟮姆治龇椒ê椭饕襟E(1)用例識(shí)別從用例和場景中識(shí)別類是提取類的一種主要方法。針對(duì)每個(gè)用例,我們可以通過回答以下問題來識(shí)別出候選類:①用例或者場景描述,需要哪些實(shí)體參與合作以完成任務(wù)?②用例或者場景描述中,會(huì)生成或者存儲(chǔ)哪些需要長期保存的信息?③用例使用者需要向用例輸入的信息有哪些?④用例向使用者輸出的信息有哪些?⑤用例需要對(duì)哪些設(shè)備進(jìn)行操作?5.3面向?qū)ο蠓治觯?)名詞識(shí)別法首先用指定語言對(duì)系統(tǒng)進(jìn)行簡要的描述,通常用一個(gè)段落即可;接著從這段描述中標(biāo)識(shí)出名詞、代詞、名詞短語,并將其表示成初始的候選類;然后通過回答以下問題進(jìn)一步確定類。①是否存在兩個(gè)及以上類,表述的是同一個(gè)信息,刪除冗余的候選類,僅保留一個(gè)具有描述能力的候選類。②刪除處于系統(tǒng)邊界之外的類,即去掉不相干的候選類。③刪除定義不確切,或者范圍過大的模糊的候選類。④刪除獨(dú)立性不清,應(yīng)該屬于類的屬性的候選類。⑤刪除獨(dú)立性不強(qiáng),應(yīng)該屬于類的操作的候選類。5.3面向?qū)ο蠓治觯?)CRC卡片1990年Wiener提出了類—職責(zé)—協(xié)作建模(Class-Responsibility-Collaboration,簡稱CRC)。CRC模型在開始時(shí)是用卡片記錄,將每個(gè)類的類名、功能(職責(zé))和它要需要調(diào)用其他類的列表放在一張卡片中。5.35.4.1功能建模表5-6查看考勤結(jié)果用例場景描述面向?qū)ο蠓治鰧?shí)例5.45.4.1功能建模圖5-7查看考勤結(jié)果活動(dòng)圖面向?qū)ο蠓治鰧?shí)例5.4面向?qū)ο蠓治鰧?shí)例5.4.1功能建模表5-8
活動(dòng)圖基本組成描述5.45.4.2類建模根據(jù)人臉考勤用例可以得到下列類:(1)實(shí)體類①考勤記錄:記錄用戶每一次的考勤結(jié)果。②采集人臉信息:保存教室現(xiàn)場采集的考勤人臉特征信息。③學(xué)生信息:保存學(xué)生信息包括學(xué)生人臉信息。(2)控制類①人臉考勤:負(fù)責(zé)處理考勤過程中系統(tǒng)特定指令和動(dòng)作。(3)邊界類①攝像頭接口:負(fù)責(zé)獲取教室圖像信息。②教師界面:教師與系統(tǒng)交流的媒介。面向?qū)ο蠓治鰧?shí)例5.45.4.2類建模圖5-8考勤管理用例的初始類圖面向?qū)ο蠓治鰧?shí)例5.45.4.2類建模圖5-9用戶管理用例的初始類圖面向?qū)ο蠓治鰧?shí)例5.45.4.2類建模圖5-10智慧教室管理系統(tǒng)部分用例合并得到的初始類圖面向?qū)ο蠓治鰧?shí)例5.45.4.3動(dòng)態(tài)建模
(1)狀態(tài)圖表5-9狀態(tài)圖基本組成描述面向?qū)ο蠓治鰧?shí)例5.45.4.3動(dòng)態(tài)建模
在狀態(tài)圖中,事件(Event)、動(dòng)作(Action)、以及活動(dòng)(Activity),在描述狀態(tài)之間的轉(zhuǎn)換和狀態(tài)行為時(shí)起著關(guān)鍵作用。事件是引起狀態(tài)轉(zhuǎn)換或觸發(fā)狀態(tài)中行為的觸發(fā)器。它可以是外部的信號(hào)、條件的改變、用戶的操作等。事件表示狀態(tài)變化的原因或起因。動(dòng)作是在狀態(tài)機(jī)中執(zhí)行的某種行為或操作,它通常與狀態(tài)轉(zhuǎn)換相關(guān)聯(lián),描述了狀態(tài)從一個(gè)狀態(tài)到另一個(gè)狀態(tài)的具體動(dòng)作。動(dòng)作是狀態(tài)機(jī)中可以執(zhí)行的原子操作。活動(dòng)是狀態(tài)機(jī)中一個(gè)狀態(tài)執(zhí)行的一系列操作或任務(wù)。它是狀態(tài)中進(jìn)行的非原子操作,可以描述狀態(tài)內(nèi)部的活動(dòng)流程,而不是僅僅描述狀態(tài)之間的轉(zhuǎn)換。面向?qū)ο蠓治鰧?shí)例5.45.4.3動(dòng)態(tài)建模
(1)狀態(tài)圖圖5-11學(xué)生考勤狀態(tài)圖面向?qū)ο蠓治鰧?shí)例5.45.4.3動(dòng)態(tài)建模
(2)順序圖表5-10順序圖基本組成描述面向?qū)ο蠓治鰧?shí)例5.45.4.3動(dòng)態(tài)建模
(2)順序圖圖5-12人臉考勤順序圖面向?qū)ο蠓治鰧?shí)例5.45.4.3動(dòng)態(tài)建模
(2)順序圖圖5-13教師查詢考勤記錄順序圖面向?qū)ο蠓治鰧?shí)例5.45.4.3動(dòng)態(tài)建模
(3)協(xié)作圖表5-11協(xié)作圖中的部分符號(hào)面向?qū)ο蠓治鰧?shí)例5.45.4.3動(dòng)態(tài)建模
(3)協(xié)作圖圖5-14教師查詢考勤結(jié)果協(xié)作圖面向?qū)ο蠓治鰧?shí)例5.4形式化分析技術(shù)形式化方法(FormalMethods)是驗(yàn)證軟件系統(tǒng)是否高度安全可靠的重要方法,是提高軟件質(zhì)量的有效途徑。在軟件工程領(lǐng)域,形式化方法是基于數(shù)學(xué)的描述和驗(yàn)證軟件系統(tǒng)的一種方法。形式化方法利用數(shù)學(xué)的嚴(yán)密性去證明系統(tǒng)的正確性,形成一套嚴(yán)密的理論體系,提供一個(gè)完整的框架,使得人們可以在這個(gè)框架中以一種系統(tǒng)的方式描述和驗(yàn)證軟件系統(tǒng)。5.5形式化方法可以分為以下五類:(1)基于模型的方法:通過明確定義狀態(tài)和操作來建立一個(gè)系統(tǒng)模型,顯式說明系統(tǒng)如何從一個(gè)狀態(tài)轉(zhuǎn)換到另一個(gè)狀態(tài),例如Z語言、VDM和B方法等。(2)基于網(wǎng)絡(luò)的方法:采用具有形式語義的圖形語言,例如Petri網(wǎng)、狀態(tài)機(jī)等。(3)進(jìn)程代數(shù)方法:通過限制所有容許的可觀察的進(jìn)程間通信來表示系統(tǒng)行為,允許并發(fā)進(jìn)程的顯式表示,例如通信順序進(jìn)程CSP、通信系統(tǒng)演算CCS、時(shí)序排序規(guī)約語言LOTOS、計(jì)時(shí)通信順序進(jìn)程TCSP、計(jì)時(shí)可能性演算TPCCS等。形式化分析技術(shù)5.5形式化方法可以分為以下五類:(4)基于邏輯的方法:用邏輯描述系統(tǒng)底層規(guī)約、時(shí)序和行為等,采用與所選邏輯相關(guān)的公理系統(tǒng)證明系統(tǒng)達(dá)到預(yù)期目標(biāo)。利用具體的編程構(gòu)造擴(kuò)充邏輯,通過保持正確性的細(xì)化步驟集來開發(fā)系統(tǒng)。這類方法有各類時(shí)序邏輯TL、hoare邏輯、WP演算、模態(tài)邏輯等。(5)代數(shù)方法:通過將未定義狀態(tài)下不同的操作行為相聯(lián)系,給出操作的顯式定義。這類方法有OBJ、Larch族代數(shù)規(guī)約語言等。形式化分析技術(shù)5.5汽車無鑰匙進(jìn)入系統(tǒng)CSP模型//模型需要的常量定義#defineN2;//車鑰匙擁有者數(shù)目(2人)#definefar0;//人離汽車遠(yuǎn)#definenear1;//人離汽車近,有鑰匙的話可以開車門#definein2;//人在車?yán)?defineoff0;//汽車發(fā)動(dòng)機(jī)關(guān)#defineon1;//汽車發(fā)動(dòng)機(jī)開#defineunlock0;//車門關(guān)閉但沒鎖#definelock1;//車門鎖住#defineopen2;//車門開著#defineincar-1;//鑰匙在車?yán)?definefaralone-2;//鑰匙不在車?yán)锴译x車很遠(yuǎn)形式化分析技術(shù)5.5//模型需要的變量定義varowner[N]={far,far};//人的位置,編號(hào)分別是0和1,初始時(shí)2人都離車很遠(yuǎn)varengine=off;//發(fā)動(dòng)機(jī)狀態(tài),初始時(shí)關(guān)閉vardoor=lock;//車門的狀態(tài),初始時(shí)門是鎖住的varkey=0;//車鑰匙歸屬,初始時(shí)在0號(hào)人處varmoving=0;//汽車移動(dòng)狀態(tài),0是停止,1是移動(dòng)varfuel=10;//發(fā)動(dòng)機(jī)油耗,1表示短距離,5表示長距離//人的行為模型,其中i表示人的編號(hào)(這個(gè)模型中可以是0也可以是1),“[]”表示前后連接的行為可以任意選擇,“[條件]”表示滿足條件才能進(jìn)行條件后的行為(斜體字部分),“{運(yùn)算}”表示行為發(fā)生時(shí)改變一些變量的值,箭頭表示行為發(fā)生先后順序,“&&”和“||”分別表示邏輯并或者邏輯或owner_pos(i)=[owner[i]==far]towards.i{owner[i]=near;}->owner_pos(i)[][owner[i]==near]goaway.i{owner[i]=far;}->owner_pos(i)[][owner[i]==near&&door==open&&moving==0]getin.i{owner[i]=in;}->owner_pos(
溫馨提示
- 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)價(jià)
- -ST工智:哈工成長(岳陽)私募股權(quán)基金企業(yè)(有限合伙)評(píng)估報(bào)告
- 在外貿(mào)公司實(shí)習(xí)報(bào)告3篇
- 文員實(shí)習(xí)工作總結(jié)(15篇)
- 美麗中國雙碳有我初中作文5篇
- 成人畢業(yè)自我鑒定范文
- 公司會(huì)計(jì)個(gè)人辭職報(bào)告(匯編11篇)
- 大班語言教案及教學(xué)反思《聰明的烏龜》
- 債權(quán)抵消合同(2篇)
- 公共交通站臺(tái)廣告投放合同(2篇)
- 安徽省合肥市蜀山區(qū)2024-2025學(xué)年七年級(jí)上學(xué)期地理期末模擬練習(xí)(含答案)
- 新建設(shè)項(xiàng)目施工人員安全教育培訓(xùn)課件
- 江蘇省揚(yáng)州市2024-2025學(xué)年高中學(xué)業(yè)水平合格性模擬考試英語試題(含答案)
- 品質(zhì)總監(jiān)轉(zhuǎn)正述職報(bào)告
- 2024年游艇俱樂部會(huì)員專屬活動(dòng)策劃與執(zhí)行合同3篇
- 《項(xiàng)目管理培訓(xùn)課程》課件
- 2024年企業(yè)團(tuán)購:銷售合作協(xié)議3篇
- 2024-2025學(xué)年八年級(jí)語文上學(xué)期期末真題復(fù)習(xí) 專題06 文言文閱讀
- 2024秋國開《管理學(xué)基礎(chǔ)》形考任務(wù)(1234)試題及答案
- 叉車安全管理
- 制藥課程設(shè)計(jì)三廢處理
評(píng)論
0/150
提交評(píng)論