北京大學工程碩士軟件工程教材軟件工程串講_第1頁
北京大學工程碩士軟件工程教材軟件工程串講_第2頁
北京大學工程碩士軟件工程教材軟件工程串講_第3頁
北京大學工程碩士軟件工程教材軟件工程串講_第4頁
北京大學工程碩士軟件工程教材軟件工程串講_第5頁
已閱讀5頁,還剩137頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

北京大學工程碩士軟件工程教材軟件工程串講本課件PPT僅供大家學習使用學習完請自行刪除,謝謝!本課件PPT僅供大家學習使用學習完請自行刪除,謝謝!本課件PPT僅供大家學習使用學習完請自行刪除,謝謝!本課件PPT僅供大家學習使用學習完請自行刪除,謝謝!北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第1頁。為屏蔽計算機硬件的異構性,開展了操作系統(tǒng).NET/COMWebServicesJ2EE/EJB操作系統(tǒng)UNIXWindowsLinuxC/C++語言Java語言支撐軟件中間件為屏蔽操作系統(tǒng)和編程語言的異構性,開展了支撐軟件和中間件為了屏蔽中間件之間的異構性,出現(xiàn)了Web技術。Fortran語言為了禰補應用軟件與現(xiàn)實計算環(huán)境之間的距離應用系統(tǒng)

網(wǎng)絡層綜觀軟件技術的開展軟件開發(fā)的本質北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第2頁。

應用系統(tǒng)概念不同,邏輯不同。解決問題的思維邏輯不同。-“距離〞語言網(wǎng)絡異構VB、VC--程序設計環(huán)境中間件技術與產(chǎn)品面向領域的軟件體系構造應用框架領域軟件生產(chǎn)線系統(tǒng)建模運行平臺開發(fā)平臺軟件工程學科所要解決的問題北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第3頁。軟件開發(fā)的本質可概括為:第一點:問題空間的概念與解空間的模型化概念之間的映射例如:對象=F〔張山〕〔模型化概念〕〔問題空間的概念〕其中,對應的過程:需求分析使用的技術:面向對象使用的原理:數(shù)據(jù)抽象目的:作為計算的客體。北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第4頁。第二點:問題空間的處理邏輯與解空間處理邏輯之間的映射例如1:加工1〔及相關的數(shù)據(jù)流〕=F〔計算學生成績〕其中:使用的方法:構造化方法;對應的過程:需求分析使用的原理:過程抽象

加工1計算學生平均成績科目+年級/班學生成績文件學生平均成績規(guī)約后的處理邏輯北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第5頁。例如2:交互圖1=H〔計算學生成績〕其中:對應的過程:需求分析使用的方法:面向對象使用的原理:行為構造抽象〔簡稱行為抽象〕

作用:實現(xiàn)計算:教務員:教員遞交A科學生成績表A科學生成績表:教學主任求A科平均A科平均北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第6頁。由于以上兩個映射是由“人〞完成的,因此就軟件開發(fā)而言,需要解決兩個方面的問題:1:管理2:技術進一步說,技術問題主要是指軟件開發(fā)過程通常需要遵循的途徑和方向其中,過程方向確定用于創(chuàng)立問題模型和設計解的特定的抽象層次例如,需求、設計、實現(xiàn)、部署等北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第7頁。一、根本概念1、軟件程序及其文檔2、軟件工程應用計算機科學理論和技術以及工程管理原那么和方法,按預算和進度,實現(xiàn)滿足用戶要求的軟件產(chǎn)品的定義、開發(fā)、發(fā)布和維護的工程,或以之為研究對象的學科。Softwareengineeringisthedisciplinedapplicationoftheoriesandtechniquesfromcomputersciencetodefine,develop,deliver,andmaintain,ontimeandwithinbudget,softwareproductsthatmeetcustomers’needsandexpectations.Softwareproductincludetheactualprogramsourcecodeanddatastructure,aswellasthedocumentsnecessarytoproducethese,anddocumentsandinterfaceprogramnecessarytousethemintheintendedenvironment.-BonnieMelhart,2000北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第8頁。3、軟件工程框架軟件工程目標生產(chǎn)具有正確性、可用性和開銷合宜的產(chǎn)品。正確性是指軟件產(chǎn)品到達預期功能的程度??捎眯允侵杠浖緲嬙?、實現(xiàn)以及文檔為用戶可用的程度。開銷合宜是指軟件開發(fā)、運行的整個開銷滿足用戶要求的程度。軟件開發(fā)活動生產(chǎn)一個最終滿足需求且到達工程目標的軟件產(chǎn)品所需要的活動。軟件開發(fā)的根本活動包括:需求分析〔requirementanalysis〕,設計〔design〕,實現(xiàn)〔implementation〕,驗證/確認〔verification/validation〕和維護〔maintenance〕。北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第9頁?!?〕需求分析是在一個抽象層上建立系統(tǒng)模型的活動。產(chǎn)生需求規(guī)約,作為開發(fā)人員和客戶間契約的根底,并作為以后開發(fā)階段的輸入?!?〕設計定義了實現(xiàn)需求規(guī)約所需的構造。包括軟件體系構造〔數(shù)據(jù)和程序構造〕,以及詳細的處理算法,即所謂設計規(guī)約,給出了實現(xiàn)軟件需求的軟件解決方案?!?〕實現(xiàn)是由設計規(guī)約到代碼的轉換。〔4〕驗證/確認是一種評估活動,其中主要包括需求規(guī)約、設計規(guī)約以及實現(xiàn)代碼的評估。驗證/確認這一評估可以是動態(tài)的,或是靜態(tài)的。在動態(tài)分析中,以選定的輸入來執(zhí)行程序或程序段,并與預期結果進展比較。靜態(tài)分析是不執(zhí)行程序的分析,例如模型評審、代碼“走查〞以及程序的形式化驗證等?!?〕維護是軟件發(fā)布之后所進展的開發(fā)或修改(modification),包括對發(fā)現(xiàn)錯誤的修正以及對環(huán)境的變化所進展的必要調整等。北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第10頁。軟件工程原那么圍繞軟件開發(fā),提出了以下根本原那么。第一:選取適宜的開發(fā)風范在系統(tǒng)設計中,經(jīng)常需要權衡軟件需求、硬件需求以及其它因素之間的相互制約和影響,適應需求的易變性。選用適宜的開發(fā)風范,以保證軟件開發(fā)的可持續(xù)性,并使最終的軟件產(chǎn)品滿足客戶的要求。第二:采用適宜的設計方法在軟件設計中,通常需要考慮軟件的模塊化、信息隱蔽、局部化、一致性及適應性等問題。采用適宜的設計方法,支持這些問題的解決和實現(xiàn)。第三條:提供高質量的工程支持如其它工程一樣,需要提供高質量的工程支持,例如配置管理、質量保證等,才能按期交付高質量的軟件產(chǎn)品。第四條原那么:有效的軟件工程管理軟件工程的管理,直接影響可用資源的有效利用,提高軟件組織的生產(chǎn)能力。僅當對軟件過程實施有效管理時,才能實現(xiàn)有效的軟件工程。北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第11頁。二、軟件開發(fā)模型1、根本概念軟件過程、活動、任務的構造框架。2、幾種典型模型及其用法3、模型的外征與內涵北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第12頁。系統(tǒng)需求軟件需求需求分析設計編碼測試運行1〕瀑布模型活動如瀑布流水式的組織規(guī)定每一活動的工作對象和輸出評審、確認和反響問題:無法通過開發(fā)活動澄清本來不確切的軟件需求

維護、甚至返工的代價北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第13頁。優(yōu)點:在決定系統(tǒng)怎樣做之前,存在一個單一的需求階段,從而鼓勵對系統(tǒng)做什么進展規(guī)約〔即設計之前的規(guī)約〕在建造構件之前,存在一個單一的設計階段,從而鼓勵規(guī)劃系統(tǒng)構造〔即編碼之前的設計〕在每一階段完畢時進展復審,從而允許獲取方和用戶的參與允許基線和配置早期承受控制前一步作為下一步被認可的、文檔化的基線北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第14頁。缺乏之處:客戶必須能夠完整、正確和清晰地表達他們的需求設計、編碼和測試階段都可能發(fā)生延期可能要花費更多的時間,用于建立一些用處不大的文檔在開場兩個或者三個階段中,很難評估真正的進度狀態(tài)在一個工程的早期階段,過分地強調了基線和里程碑處的文檔開發(fā)人員一開場就必須理解其應用當接近工程完畢時,出現(xiàn)了大量的集成和測試工作直到工程完畢之前,都不能演示系統(tǒng)的能力北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第15頁。需求設計編碼測試集成需求設計編碼測試集成開發(fā)反饋開發(fā)反饋...核心系統(tǒng)開發(fā)第二次迭代2〕演化模型〔Evolutionarymodel〕是一種有彈性的過程模式,由一些小的開發(fā)步組成,每一步歷經(jīng)需求分析、設計、實現(xiàn)和驗證,產(chǎn)生軟件產(chǎn)品的一個增量。通過這些迭代,完成最終軟件產(chǎn)品的開發(fā)。針對事先不能完整地定義需求針對用戶的核心需求,開發(fā)核心系統(tǒng)根據(jù)用戶的反響,實施活動的迭代北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第16頁。13259101167121384增量1

1,2,5,9

增量2

3,6,7,4,10,11

增量3

8,12,13

管理增量規(guī)約增量設計糾錯性分析增量實現(xiàn)增量1增量2增量3〔3〕增量模型-一種迭代風范北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第17頁。(4)螺旋模型-一種迭代風范

Thespiralparadigmdividesthesoftwarelifecycleactivitiesintofourrepeatedstages:planning,riskanalysis,development,andevaluation.Progressismadealonganoutwardspiraleachspiralloop.Theevaluationandriskanalysisphaseendwithadecisiontoproceedornotwiththeplannedproject(Boehm,1988).Thewidthofthespiral(numberofloops)indicatestheresourcesalreadyconsumedfortheeffort.Therequirementsspecificationactivitytakesplaceduringplanning,riskanalysis,anddevelopment.Designandimplementationactivitiesaregenerallyinthedevelopmentstage.V&Vactivitiesoccurinthedevelopmentandevaluation.Prototypingisoftenusedinearlyloopstoguidedecisionsforthefinalimplementation.riskanalysisstageDevelopmentstagePlanningstageEvaluationstagestartResourceuse北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第18頁。(4)螺旋模型-一種迭代風范〔1〕制定方案:確定軟件目標,選定實施方案,弄清工程開發(fā)的限制條件;〔2〕風險分析:分析評估所選方案,考慮如何識別和消除風險;〔3〕實施工程:實施軟件開發(fā)和驗證;〔4〕客戶評估:評價開發(fā)工作,提出修正建議,制定下一步方案。優(yōu)點1〕設計上的靈活性,可以在工程的各個階段進展變更。2〕以小的分段來構建大型系統(tǒng),使本錢計算變得簡單容易。3〕客戶始終參與每個階段的開發(fā),保證了工程不偏離正確方向以及工程的可控性。4〕隨著工程推進,客戶始終掌握工程的最新信息,從而他或她能夠和管理層有效地交互。5〕客戶認可這種公司內部的開發(fā)方式帶來的良好的溝通和高質量的產(chǎn)品。缺點很難讓用戶確信這種演化方法的結果是可以控制的。建立周期長,而軟件技術開展比較快,所以經(jīng)常出現(xiàn)軟件開發(fā)完畢后,和當前的技術水平有了較大的差距,無法滿足當前用戶需求。螺旋模型的工程適用:對于新近開發(fā),需求不明確的情況下,適合用螺旋模型進展開發(fā),便于風險控制和需求變更!北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第19頁。(4)螺旋模型-一種迭代風范“螺旋模型〞剛開場規(guī)模很小,當工程被定義得更好、更穩(wěn)定時,逐漸展開。“螺旋模型〞的核心就在于您不需要在剛開場的時候就把所有事情都定義的清清楚楚。您輕松上陣,定義最重要的功能,實現(xiàn)它,然后聽取客戶的意見,之后再進入到下一個階段。如此不斷輪回重復,直到得到您滿意的最終產(chǎn)品。每輪循環(huán)包含如下六個步驟:1.確定目標,可選項,以及強制條件。2.識別并化解風險。3.評估可選項。4.開發(fā)并測試當前階段。5.規(guī)劃下一階段。6.確定進入下一階段的方法步驟。北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第20頁。演化維護確認實現(xiàn)設計分析(5)噴泉模型-一種迭代風范特征:迭代無縫與面向對象技術的關系北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第21頁。所有模型的內在根本特征:描述了開發(fā)的主要階段定義了每一個階段要完成的主要過程和活動規(guī)約了每一個階段的輸入和輸出〔產(chǎn)品〕提供了一個框架,可以把必要的活動映射到該框架中開發(fā)模型內涵:求解軟件的計算邏輯外延:宏觀上給出開發(fā)活動的組織北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第22頁。三、系統(tǒng)建模技術-構造化方法構造化方法要答復:如何定義問題?就如何定義問題而言,如何獲得需求如何規(guī)約需求如何驗證需求北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第23頁?!惨弧承枨螳@取1、需求面臨的挑戰(zhàn)?問題空間理解?人與人之間的通信?需求的不斷變化2、需求目標在任何一個設計中,準確地陳述問題總是第一步的。需求的目標是要簡潔而準確地說明所要解決的問題北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第24頁。3、需求工程的原那么

1〕抽象:抓住事物的本質〔要素〕。其中,一個重要方面是:捕獲問題空間的“一般/特殊〞關系是認識、構造問題的一般途徑。2〕劃分:別離問題。其中,一個重要方面是:捕獲問題空間的“整體/局部〞關系是降低問題復雜性的根本途徑之一3〕投影:捕獲并建立問題空間的多維“視圖〞是描述問題的根本手段之一是解決“A是B,B是A〞的根本方法北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第25頁。4、需求獲取技術-UseCase(IvarJacobson,1994)1〕引言UseCase主要用于促進和用戶的交流、溝通。為此使用了一種用戶和開發(fā)人員都能理解方式描述系統(tǒng)功能和行為UseCase可以劃分系統(tǒng)與外部實體的界限,是系統(tǒng)開發(fā)的起點,而最終應該落實到類和實現(xiàn)代碼上UseCase既然是對系統(tǒng)行為的動態(tài)描述,因此它是類、對象、操作的來源,是系統(tǒng)分析和設計階段的輸入之一,是分析和設計,制定開發(fā)方案,測試方案,設計測試用例的依據(jù)之一UseCaseModel是系統(tǒng)需求分析階段的成果之一UseCase不但有助于幫助分析員理清思路;驗證用戶需求。而且,也是開發(fā)人員之間進展交流的重要手段北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第26頁。2〕語義與表示一般地說,USECASE是用戶為了到達某一目標和系統(tǒng)進展的典型交互。例如:“做一次拼寫檢查〞“對一個文檔建立索引〞對一個用況而言,關鍵要素是:表示一種用戶可以理解并對該用戶有價值的功能。用況提供了客戶和開發(fā)人員在制訂工程方案中進展交流的主要成分。北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第27頁?!?〕USECASE語義一個USECASE是系統(tǒng)或其它語義實體〔例如子系統(tǒng)或一個類〕所提供的一塊(unit)高內聚的功能,顯露該系統(tǒng)和一個或多個外部的交互者〔稱為操作者〕交替出現(xiàn)的消息序列,以及該系統(tǒng)所執(zhí)行的動作。可見,一個USECASE捕獲了參與交互的各方關于其行為的一個約定。通過這一約定,描述了該語義實體在不同條件下的行為對參與者一個要求的響應,以實現(xiàn)某一目的。不同的行為序列,依賴于所給出的特定要求以及與這些要求相關的條件。北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第28頁。〔2〕表示與描述USECASE通常被表示為:USECASE包含一組操作和屬性,這些操作和屬性規(guī)約了該USECASE的實例所執(zhí)行的那個動作序列。動作包含狀態(tài)的改變以及該USECASE與其環(huán)境的通訊。為了說明USECASE所包含的具體內容,還應給出它的正文描述。即:北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第29頁。USECASE中包含的信息名稱(Name)標識(Identifier)描述(Description)角色(Actor)狀態(tài)(Status)活動及時序頻度(Frequency)北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第30頁。3〕操作者語義與表示一個操作者定義了一組高內聚的角色,當用戶與該實體交互時,用戶可以扮演這一角色。對于每一USECASE,一個操作者有一種角色,即每一USECASE與具有一種角色的操作者進展通訊。通常,一個操作者被表示為:

北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第31頁。4〕關系在USECASE之間,或在操作者與USECASE之間,存在一些標準的關系:關聯(lián):參與關系,即操作者參與一個USECASE。例如,操作者的實例與USECASE實例相互通訊。關聯(lián)是操作者和USECASE之間的唯一關系。擴展:USECASEA到USECASEB的一個擴展關系,指出了USECASEB的一個實例可以由A說明的行為予以擴展〔根據(jù)該擴展所說明的特定條件〕,并依據(jù)該擴展點定義的位置,A說明的行為被插入到B中。包含:USECASEA到USECASEB的一個包含,指出A的一個實例將包含B說明的行為,即這一行為將包含在A定義的那局部中。泛化:USECASEA到USECASEB的泛化,指出A是B的特殊情況。北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第32頁。1*<<include>><<include>><<include>><<extend>>thesalespersonasksforthecatalog

PlaceOrderextensionpointsadditionalrequests:aftercreationoftheorder

SupplyCustomerData

OrderProduct

ArrangePayment

RequestCatalogsalesperson

例:USECASE關系

Actor關系Supervisor(超級用戶)

EstablishCredit

1*北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第33頁。5〕USECASE圖USECASE圖給出了操作者和USECASE以及它們之間的關系。即圖中給出了一些操作者、一組關系、一些接口和這些元素之間的關系。(關系是操作者和USECASE之間的關聯(lián)是操作者之間的泛化是USECASE之間的泛化、擴展和包含)可以將一些USECASE用一矩形括起,以表示所包括的那個系統(tǒng)或其它語義實體的邊界。北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第34頁。CheckstatusPlaceorderFillorder

EstablishcreditTelephoneCatalogSalespersonShippingClerckSupervisorCustomer例:USECASE圖北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第35頁。5、需求規(guī)約需求規(guī)約的主要目標:依據(jù)需求陳述〔作為輸入〕,解決其中的歧義、不一致等問題,以系統(tǒng)化的形式表達用戶的需求,即給出問題的形式化或半形式化的描述〔建立模型〕,形成需求規(guī)格說明書。為了實現(xiàn)這一目標,1〕提出的概念有:數(shù)據(jù)流:加工:數(shù)據(jù)存儲:數(shù)據(jù)源:數(shù)據(jù)潭:概念是完備的。北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第36頁。2〕建模過程(1)建立系統(tǒng)的功能模型---使用的工具為數(shù)據(jù)流圖DFD首先:建立系統(tǒng)環(huán)境圖,確定系統(tǒng)邊界繼之:自頂向下,逐層分解(2)建立數(shù)據(jù)字典定義數(shù)據(jù)流定義數(shù)據(jù)存儲定義數(shù)據(jù)項(3)給出加工小說明---使用的工具可以為判定表判定樹北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第37頁。(1)建立系統(tǒng)的功能模型

---使用的工具為數(shù)據(jù)流圖DFD

數(shù)據(jù)流圖:是一種描述數(shù)據(jù)變換的圖形工具。例如:旅行社訂票單預定機票準備機票記帳費用航班帳單機票記帳文件航班目錄旅行社北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第38頁。數(shù)據(jù)流圖由四個根本成分組成:數(shù)據(jù)流加工數(shù)據(jù)存儲數(shù)據(jù)源和數(shù)據(jù)潭其中:1各成分的定義

2數(shù)據(jù)流、數(shù)據(jù)存儲---支持數(shù)據(jù)抽象加工---支持過程/功能的抽象

3關于命名問題北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第39頁。簡化的商業(yè)自動化系統(tǒng)營業(yè)員收款員經(jīng)理銷售的商品現(xiàn)金額現(xiàn)金余額銷售情況日銷售額查詢要求首先:建立系統(tǒng)環(huán)境圖,確定系統(tǒng)邊界

------頂層DFD其中:1數(shù)據(jù)流為:銷售的商品,日銷售額等

3個輸入流,3個輸出流數(shù)據(jù)源為:營業(yè)員,經(jīng)理,收款員數(shù)據(jù)潭為:經(jīng)理,收款員

2加工名為:要建立的系統(tǒng)名字北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第40頁。錄入、修改或刪除商品信息錄入、修改現(xiàn)金額,并計算余額查詢商品銷售情況計算日銷售額123繼之:自頂向下,逐層分解A、按人或部門的功能要求,將加工“打碎〞,形成:注:需給每一加工編號;北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第41頁。B、〞分派〞數(shù)據(jù)流,形成:錄入、修改或刪除商品信息2錄入、修改現(xiàn)金額,并計算余額查詢商品銷售情況計算日銷售額銷售的商品現(xiàn)金額現(xiàn)金余額查詢要求銷售情況日銷售額13其中:要根據(jù)特定的加工要求進展分派;保持與頂層數(shù)據(jù)流的一致;可以不引入數(shù)據(jù)源和數(shù)據(jù)潭。北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第42頁。錄入、修改或刪除商品信息錄入、修改現(xiàn)金額,并計算余額查詢商品銷售情況計算日銷售額銷售的商品現(xiàn)金額現(xiàn)金余額查詢要求銷售情況日銷售額銷售文件123C、引入文件,使之形成一個有機整體—系統(tǒng):注:到一個文件,既有輸入流,又有輸出流,那么可簡化為,并可不給出標識。至此,表達精化,形成0層數(shù)據(jù)流圖。北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第43頁。查詢商品銷售情況計算日銷售額查詢要求銷售情況日銷售額銷售文件3繼續(xù)A、B、C:自頂向下,逐層分解。例如:加工3可分解為:判定要求查詢要求統(tǒng)計銷售情況計算日銷售額銷售文件查詢要求2查詢要求1銷售情況日銷售額加工3:北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第44頁。(2)建立數(shù)據(jù)字典定義數(shù)據(jù)流定義數(shù)據(jù)存儲定義數(shù)據(jù)項

引入:構造符+|{}-用于定義數(shù)據(jù)構造

AAABCB0C0B*北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第45頁。數(shù)據(jù)字典:1、數(shù)據(jù)流:銷售的商品=商品名+商品編號+單價+數(shù)量+日期現(xiàn)金額=余額=日銷售額=非負實數(shù)查詢要求=[商品編號|日期]查詢要求1=商品編號查詢要求2=日期銷售情況=商品名+商品編號+金額2、數(shù)據(jù)存貯:銷售文件={銷售的商品}3、數(shù)據(jù)項北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第46頁。(3)給出加工小說明---使用的工具可以為判定表判定樹判斷表Ⅰ條件類別Ⅱ條件組合Ⅲ操作Ⅳ操作執(zhí)行例如:考試總分>=620>=620<620單科成績有總分值有不及格有總分值發(fā)升級通知書yyn發(fā)留級通知書nny發(fā)重修通知書nyn北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第47頁。3〕建模中注意的問題〔1〕模型平衡規(guī)那么·父圖和子圖必須平衡·每個數(shù)據(jù)流和數(shù)據(jù)存儲必須在數(shù)據(jù)字典中予以定義·“葉〞加工〔最低層〕必須給出加工小說明·小說明和數(shù)據(jù)流圖的圖形表示必須一致,例如:在小說明中,必須說明“輸入數(shù)據(jù)流〞如何使用,必須說明如何產(chǎn)生“輸出數(shù)據(jù)流〞,必須說明如何選取、使用、修改“數(shù)據(jù)存儲〞北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第48頁?!?〕控制復雜性規(guī)那么·上層數(shù)據(jù)可以“打包〞上、下數(shù)據(jù)流對應關系在數(shù)據(jù)字典中給出,但包內數(shù)據(jù)流的性質〔輸入、輸出〕必須一致。·一幅圖中的圖元個數(shù)應控制在7+/-2以內·與每一加工相關的數(shù)據(jù)流的數(shù)目應適中〔與層次有關〕·分析數(shù)據(jù)內容,確定是否所有的輸入信息都用于產(chǎn)生輸出信息;分析加工,確定一個加工所產(chǎn)生的輸出,是否都能由該加工的輸入信息導出北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第49頁。實例講解:圖書管理系統(tǒng)—問題陳述見P35。根據(jù)問題陳述,在一定的層次上,可以把該系統(tǒng)分為兩“大塊〞,即:借還書等事務的處理,以及咨詢事務處理。---進展功能抽象?!沧ⅲ翰煌墓δ艹橄髮е虏煌慕Y果!但應該是等價的。〕于是,可以根據(jù)這一抽象,可以識別:1〕頂層數(shù)據(jù)流:借還書等事務處理要求咨詢事務要求以及相關的數(shù)據(jù)流2〕數(shù)據(jù)源和數(shù)據(jù)潭為:圖書管理人員,讀者以及時鐘。北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第50頁?;谝陨戏治?,可形成該系統(tǒng)的環(huán)境圖:圖書管理系統(tǒng)圖書管理員圖書管理要求查詢要求圖書統(tǒng)計表圖書情況讀者情況

讀者

系統(tǒng)時鐘當前日期罰款單其中:3個輸入流:圖書管理要求,查詢要求,系統(tǒng)時鐘圖書管理要求=入庫單借書單還書單注銷單查詢要求=讀者情況圖書情況圖書統(tǒng)計表

4個輸出流:圖書統(tǒng)計表,圖書情況,讀者情況、罰款單北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第51頁。通過“打碎〞、“分派〞,可形成如下0層DFD:1處理借還書等事務2處理咨詢事務圖書管理要求查詢要求當前日期目錄文件借書文件讀者文件罰款單讀者情況圖書情況圖書統(tǒng)計表其中:保持輸入與輸出的一致;引入三個文件,對頂層DFD進展細化?!沧ⅲ捍嬖跀?shù)據(jù)庫設計問題〕北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第52頁。以同樣方式,對加工1進展分解,形成:入庫新書

借書

還書注銷圖書圖書管理要求處理圖書管理要求目錄文件罰款單當前日期借書文件讀者文件入庫單借書單注銷單還書單其中:注意平衡問題;平面化問題。當然,還可以繼續(xù)細化北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第53頁。

借書目錄文件借書文件例如:借書讀者文件借書單檢查讀者的有效性讀者文件檢查讀者的資格辦理借書檢查圖書庫存借書單無效讀者有效讀者借書單借書超限核準后的借書單該書已借完借書記錄借書文件目錄文件注意:其中粗線數(shù)據(jù)流!北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第54頁。圖書管理系統(tǒng)的USECASE模型〔根本思路〕:借書還書新書入庫注銷圖書圖書管理員

讀者北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第55頁。6、關于需求驗證有關SRS內容方面:〔1〕正確性:指的是SRS中陳述的每個需求是否都表達了系統(tǒng)的某個要求〔2〕無二義性:指的是SRS中陳述的每個需求是否都只有一種解釋〔3〕完整性:·未來系統(tǒng)所做的任何事情都包含在SRS的陳述中·未來系統(tǒng)響應所有可能的輸入〔包括有效和無效〕·SRS中沒有被標識為“待定〞的內容北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第56頁。〔4〕可驗證性:SRS中陳述的每個需求都是可驗證的-即當且僅當存在一個有限代價的過程〔人工或機器〕可以檢查構造的軟件產(chǎn)品是否符合用戶的需求〔5〕一致性:·SRS中陳述的需求沒有與以前的文檔發(fā)生沖突·SRS中陳述的各個需求之間沒有發(fā)生沖突〔6〕可理解性:北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第57頁。有關SRS格式與風格方面〔7〕可修改性:指的是SRS的構造和風格使任何對需求的必要修改都易于完整、一致的進展〔8〕可被跟蹤性:指的是SRS中的每個需求的出處都是清楚的,這意味著SRS中包含對前期支持文檔的引用表〔9〕可跟蹤性:指的是SRS的書寫方式有助于對其中陳述的每個需求進展引用〔10〕設計無關性:指的是SRS不暗示特定的軟件構造和算法北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第58頁。7、構造化設計要答復如何解決問題-即給出軟件解決方案1)總體設計的任務:如何將DFD轉化為MSD分二步實現(xiàn):第一步:如何將DFD轉化為初始的MSD第二步:如何將初始的MSD轉化為最終可供詳細設計

北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第59頁。第一步:如何將DFD轉化為初始的MSD數(shù)據(jù)流圖分類變換型:事務型12345678abcdefhgyxz123546abcdefgy北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第60頁。變換設計XX系統(tǒng)變換模塊geteputhputggetcgetdc,d->ee->ff->g,hh->yputyg->xputxx->zputzgetagetbb->da->ceeg,hhgzzxxgyyhdbcacdeefg,hfxab北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第61頁。事務設計事務中心輸入模塊路徑1路徑2輸出模塊aycgbfc->ecee->gegb->dbdd->fdf北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第62頁。34682579A2cbdefgihmkn110A1x

一個系統(tǒng)的DFD,通常是變換型數(shù)據(jù)流圖和事務型數(shù)據(jù)流圖的組合。如下所示:北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第63頁。第二步:如何將初始的MSD轉化為最終可供詳細設計使用的MSD概念:模塊模塊化模塊化度量:內聚耦合設計規(guī)那么-經(jīng)歷規(guī)那么精化初始的MSD-表達設計人員的創(chuàng)造

北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第64頁。1〕耦合:不同模塊之間相互依賴程度的度量。耦合類型:〔1〕內容耦合:一個模塊直接修改或操作另一個模塊的數(shù)據(jù)〔2〕公共耦合:兩個以上的模塊共同引用一個全局數(shù)據(jù)項?!?〕控制耦合:一個模塊向另一模塊傳遞一個控制信號,承受信號的模塊將依據(jù)該信號值進展必要的活動?!?〕標記耦合:兩個模塊至少有一個通過界面?zhèn)鬟f的公共有構造的參數(shù)?!?〕數(shù)據(jù)耦合:模塊間通過參數(shù)傳遞根本類型的數(shù)據(jù)。北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第65頁。2〕內聚:一個模塊之內各成分之間相互依賴程度的度量。內聚類型:〔1〕偶然內聚:一個模塊之內各成分之間沒有任何關系。〔2〕邏輯內聚:幾個邏輯上相關的功能放在同一模塊中?!?〕時間內聚:一個模塊完成的功能必須在同一時間內完成,而這些功能只是因為時間因素關聯(lián)在一起。〔4〕過程內聚:處理成分必須以特定的次序執(zhí)行?!?〕通信內聚:各成分都操作在同一數(shù)據(jù)集或生成同一數(shù)據(jù)集?!?〕順序內聚:各成分與一個功能相關,且一個成分的輸出作為另一成分的輸入?!?〕功能內聚:模塊的所有成分對完成單一功能是最根本的,且該模塊對完成這一功能而言是充分必要的。北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第66頁。啟發(fā)性規(guī)那么-經(jīng)歷的總結〔1〕改進軟件構造,提高模塊性;〔2〕模塊規(guī)模適中-每頁60行語句;〔3〕深度、寬度、扇入和扇出適中;〔4〕模塊的作用域力爭在控制域之內;〔5〕降低模塊接口的復雜性;〔6〕模塊功能應該可以預測。北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第67頁。2)詳細設計的任務:定義每一模塊構造化程序設計三種控制構造:順序begins1;s2;…snend;選擇if條件表達式thens1elses2;循環(huán)while條件表達式dos;北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第68頁。2)詳細設計的任務:定義每一模塊幾種表示工具流程圖、PAD、N-S圖、偽碼等

框圖s1s2s1s2...s北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第69頁。偽碼偽碼是一種混合語言。外部采用形式語言的控制構造,內部使用自然語言。PAD圖S1S2S3S1S2X5X<5S順序:選擇:循環(huán):注:支持逐步求精設計北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第70頁。N-S圖

支持逐步求精設計舉例順序:選擇:循環(huán):條件FTS1S2循環(huán)條件循環(huán)體N:=1..10

X>5TFFTS1S2S3S4S5S6S8S7S9S10

X>10&Y>3北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第71頁。構造化方法小結:1〕構造化方法是一種比較系統(tǒng)的軟件開發(fā)方法學。包括構造化分析和構造化設計。構造化分析方法以分層的數(shù)據(jù)流圖和控制流圖為工具,開發(fā)系統(tǒng)的功能模型和數(shù)據(jù)模型。著名的有E.Yourdon和T.DeMarco的構造化分析〔SSA〕。構造化設計包括軟件體系構造設計、過程〔功能〕設計和數(shù)據(jù)設計。體系構造設計以系統(tǒng)的功能模型為根底,逐層精化,最終形成系統(tǒng)的模塊〔子系統(tǒng)〕以及它們之間的控制關系。其中,強調模塊〔子系統(tǒng)〕的高內聚和低耦合。過程〔功能〕設計針對體系構造中的每一模塊,給出它的過程屬性描述,即算法設計。數(shù)據(jù)設計將系統(tǒng)的數(shù)據(jù)模型轉換為數(shù)據(jù)構造。北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第72頁。2〕緊緊圍繞“過程抽象〞和“數(shù)據(jù)抽象〞,給出了完備的符號體系---概念與表示可操作的過程---步驟與準那么易理解的表示工具提供了控制信息組織復雜性的機制,例如逐層分解,數(shù)據(jù)打包等北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第73頁。3〕問題:捕獲的“過程〞和“數(shù)據(jù)〞恰恰是客觀事物的易變性質,解的構造也不保持原系統(tǒng)的構造,從而:造成維護,驗證上的困難。AB1B2B3B4C2C3C4C5C1DnDm…數(shù)據(jù)構造1數(shù)據(jù)構造2北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第74頁。4〕軟件方法學概念軟件方法學-以軟件方法為研究對象的學科。主要涉及指導軟件設計的原理和原那么,以及基于這些原理、原那么的方法和技術。狹義的也指某種特定的軟件設計指導原那么和方法體系。從構造的角度,軟件開發(fā)方法學主要由三局部組成·NOTATION·PROCESS·TOOLS從能力的角度,軟件開發(fā)方法學應能表達:·系統(tǒng)的說明性信息·系統(tǒng)的行為信息·系統(tǒng)的功能信息,并要給出以下機制:·控制信息組織復雜性·控制文檔組織復雜性北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第75頁。四、系統(tǒng)建模技術-面向對象方法多層面的建立系統(tǒng)模型構造模塊的四種根本觀點1〕以“過程〞或“函數(shù)〞為基點,使每一模塊實現(xiàn)一項功能2〕以一個“數(shù)據(jù)構造〞為基點,使每一模塊實現(xiàn)該數(shù)據(jù)構造上的操作功能;3〕以“事件驅動〞為基點,使每一模塊識別一個事件并對該事件作出響應4〕以“問題域中的一個成分〞為基點,使每一模塊對應現(xiàn)實世界中的一個事物北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第76頁。OO方法基于的“世界觀〞:世界是由對象構成的;對象有其自己的屬性和內部運動規(guī)律;對象之間的相互作用,構成了大千世界的各式各樣的不同系統(tǒng)。

北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第77頁。

1、靜態(tài)模型概念及其表示1〕對象(Object)及其特征〔自治性封閉性通信性〕2〕屬性:表示對象狀態(tài)的一組值。3〕操作:為其它對象提供的效勞。4〕連接5〕類(class):一組具有共同特征的相似對象的抽象描述。6〕一般/特殊關系7〕整體/局部關系北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第78頁。

例如北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第79頁。例子該圖說明,類String支持接口Hashable、Comparable,而類HashTable使用接口Hashable、Comparable。北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第80頁。關于對象的描述知識點〔1〕給出了表達客觀事物根本成分〔對描述客觀事物而言不可再分的〕的概念:對象,類語義及其表示?!?〕給出了這些成分的根本構造:屬性,操作語義及其表示〔3〕給出了支持功能抽象的機制:接口語義及其表示,以及北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第81頁?!?〕接口與其他成分之間的關系接口:一組操作〔沒有實現(xiàn)的〕,這組操作在一個特定類中實現(xiàn)。作為一種機制,支持功能抽象。操作:一個類對外提供的效勞??梢允浅橄蟮?。其聲明可以作為接口的成分。方法:是操作的一個實現(xiàn)。北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第82頁。至此可以說:這五個概念圍繞一個問題,即如何描述客觀事物-“對象〞展開的!如何抽象對象的“構造〞:屬性,操作如何描述一組具有相似性質的對象:類如何抽象并描述在特定環(huán)境中對象的功能:接口。北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第83頁。解決問題的根本思想和途徑〔1〕大千世界是有對象構成的,對象有其自己的屬性與運動規(guī)律?!?〕根本途徑數(shù)據(jù)和操作〔功能〕的局部化-支持事物語義的表達;數(shù)據(jù)和操作的封裝性--支持交互;功能模塊化〔接口〕--支持在一個層次上的功能抽象;描述的“二分法〞〔?元數(shù)據(jù),數(shù)據(jù)?〕--支持復雜性控制〔抽象〕?類,對象??接口,操作??操作,方法?提高模型的穩(wěn)定性,可維護性北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第84頁。關于“關系〞描述1、知識點〔1〕給出了表達客觀事物之間關系的根本概念:鏈?!?〕給出了關聯(lián)的語義和表示,并且,〔3〕還給出了一些特定的關聯(lián)〔分類〕。主要包括:二元關聯(lián)與N元關聯(lián),聚合與組合,泛化,依賴。語義及其表示?!?〕給出了關聯(lián)語義的描述:關聯(lián)端點-多重性,排序,導航,角色名,接口說明符,可變性,可見性等;限定符-關聯(lián)的屬性;北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第85頁。關聯(lián)類;對泛化給出了子類劃分的語義約束。2、解決問題的根本思想和途徑緊緊圍繞“關系〞的表達〔其中包括“形〞與“義〞〕,給出了一組概念。采用“二分法〞:?關聯(lián),鏈?-控制信息組織的復雜性通過對關系的分類,可以有效地支持關系的建模為了彌補“形〞的表達能力,給出了一些概念〔多重性,可變性等〕,支持語義的表達為了支持關系屬性和操作的表示,引入了“關聯(lián)類〞和“限定符〞。北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第86頁。2、順序圖目的:為了表示實例之間按時間順序組織的交互。支持實時系統(tǒng)和復雜場景的詳細建模。途徑:引入實例生命線,表示參與交互的實例;引入消息,并將消息按時間順序排列,表示實例之間的交互。局限性:只是對一組實例及之間的交互進展描述。1〕順序圖(1)語義順序圖是一種表達對象間交互的圖,由一組對象以及其間順序發(fā)送的消息組成。北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第87頁。(2)表示法北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第88頁??梢姡喉樞驁D是二維的。其中:垂直方向表示時間,水平方向表示不同的對象。(3)表示選項 生命線之間的順序是任意的??梢越粨Q軸;可以在消息名上使用時間表達式,表示計時約束。其中:可以把函數(shù)sendTime〔發(fā)送消息時間〕和函數(shù)receiveTime〔接收消息時間〕應用于消息名,以計時間??梢允褂靡恍嬙鞓擞?,用于指示時間間隔。類似地,可以用消息名表示在計時表達式中的發(fā)送或接收消息的時間。北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第89頁。2〕對象生命線(1)語義在順序圖中,對象生命線表示扮演特定角色的對象。類的角色規(guī)定了對象的角色,它描述了扮演該角色的對象的性質。與對象生命線相關的有:生命線之間的箭頭〔消息〕:表示扮演這些角色的對象之間的通訊。窄長的矩形〔活化〕:表示處于一個角色狀態(tài)的對象的存在和持續(xù)。(2)表示法“對象生命線〞表示為垂直虛線。生命線代表一個對象在特定時間內的存在。例如:北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第90頁。其中:---:生命線:激活〔活化〕[X>0]:轉換時間:消息Foo(x):消息名:撤消北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第91頁。3〕激活(1)語義激活〔控制焦點〕表示一個對象直接或者通過附屬例程執(zhí)行一個行為的時期。它既表示了行為執(zhí)行的持續(xù)時間,也表示了活動和它的調用者之間的控制關系。(2)表示法用一個窄長的矩形表示激活〔活化〕。活化的:矩形頂端為活化的開場時刻,末端為完畢時刻。激活的動作:可以用文本標注被執(zhí)行的動作。

北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第92頁。4〕消息(1)語義消息是兩個對象間的通訊,這樣的通訊用于傳輸將產(chǎn)生的動作所需要的信息。一個消息會引起一個被調用的操作,產(chǎn)生一個信號,或者引起一個對象被創(chuàng)立或者被消除。(2)表示法在順序圖中,把消息表示為從一個對象生命線到另一個對象生命線的一個水平實線箭頭。對于到自身的消息,箭頭就從同一個對象符號開場和完畢。用消息〔操作或信號〕的名字及其參數(shù)值或者參數(shù)表達式標示箭頭。箭頭也可以用一個序列數(shù)標示,以表示消息在整個交互中的順序。序列數(shù)對于標示并發(fā)控制線程很有用處。另外,還可以用監(jiān)護條件標示消息。北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第93頁。5〕轉換時間(1)語義消息可以指定幾個不同的時間〔例如,發(fā)出時間和承受時間〕。這些時間可以用在約束表達式中。用戶可以按需要為特定的目的給出時間表達,如elapsedTime〔占用時間〕和startExecutionTime〔開場執(zhí)行時間〕??梢栽诩s束中使用這些表達式,以給消息指派有效的具體時間約束。(2)表示法可以賦予消息一個名字。把時間約束寫成為一個基于消息名字的表達式。例如,如果消息的名字是stim

,用stim.sendTime()表示發(fā)送時間,用stim.receiveTime()表達接收時間??梢园褧r間約束表示在與箭頭對齊的圖的左邊上,也可以通過把布爾表達式〔可能包括時間表達式〕放在括號中表示約束。北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第94頁。3、狀態(tài)圖狀態(tài)圖用于描述模型元素〔如對象〕的行為。特別是,用它描述元素之狀態(tài)的可能序列和動作的可能序列。因對特定事件〔如信號和操作調用〕的響應,元素在其生命期中要經(jīng)歷這樣的狀態(tài),并執(zhí)行相應的動作。1)狀態(tài)圖(1)語義通過描述對事件實例接收的響應,狀態(tài)圖描述了具有動態(tài)行為能力的實體之行為。通常用狀態(tài)圖描述類的行為,也可以用它描述其它模型實體〔如用況、參與者、子系統(tǒng)、操作或方法〕的行為。北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第95頁。(2)表示法狀態(tài)圖是表示狀態(tài)機的圖。用適當?shù)臓顟B(tài)表示狀態(tài)機圖中的狀態(tài);一般地,用連接狀態(tài)的有向弧表示轉換。(3)實例簡單的狀態(tài)的轉換其中:狀態(tài)轉換Ringing事件北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第96頁。狀態(tài)(1)語義一個狀態(tài)是對象在其生命期內的一個條件,或在對象滿足某個條件、進展某個動作或等待某個事件的期間內的一個交互。在概念上,對象要在一個狀態(tài)內維持一段時間。在這一語義下,可以對瞬時狀態(tài)建模,以及對非瞬時的交互建模。(2)表示法把一個狀態(tài)表示成一個四角均為圓角的矩形。北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第97頁。根據(jù)需要,可以把狀態(tài)劃分成由水平線相互分隔的多個分欄:

名稱分欄給出狀態(tài)名。在同一張狀態(tài)圖里不應該出現(xiàn)具有一樣名稱的狀態(tài)。如果沒有狀態(tài)名稱,那么該狀態(tài)就是匿名的。同一張圖中的匿名狀態(tài)是各不一樣的。

內部轉換分欄給出在這個狀態(tài)中對象所執(zhí)行的內部動作或活動的列表其一般格式為:動作標號’/’動作表達式其中:動作標號標識在該環(huán)境下要調用由動作表達式指定的動作。動作表達式可以使用對象范圍內的任何屬性和鏈。假設動作表達式為空,那么可省略斜線分隔符。北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第98頁。下面給出專用的動作標號〔注:它們不能用作事件名〕:

?entry該標號標識在進入狀態(tài)時,執(zhí)行由相應的動作表達式規(guī)定的動作〔進入動作〕。

?exit該標號標識在退出狀態(tài)時,執(zhí)行由相應的動作表達式規(guī)定的動作〔退出動作〕。

?do該標號標識正在進展的活動〔“do活動〞〕〔只要被建模的元素是在狀態(tài)中,沒有完成由動作表達式指定的計算,就執(zhí)行這個活動;當動作表達式指定的計算完成時,可能產(chǎn)生一個完成事件〕。北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第99頁。3〕事件(1)語義事件是值得注意的所發(fā)生的事情。按照狀態(tài)圖的具體用意,事件是指可以引發(fā)狀態(tài)轉換的所發(fā)生的事情。事件可以分為:a)條件〔用布爾表達式描述〕變?yōu)檎?。不管何時,只要條件變?yōu)檎妫录及l(fā)生?!沧⒁猓哼@不同于監(jiān)護條件。無論什么時候激發(fā)具有監(jiān)護條件的事件,都對監(jiān)護條件進展求值。如果求值的結果為假,轉換就不發(fā)生,并且事件喪失。〕b)一個對象對另一個對象的顯式信號的接收,導致一個信號事件。把這樣的事件的特征標記放由它所觸發(fā)的轉換上。c)對操作的調用的接收,導致一個調用事件。d)在指定事件〔經(jīng)常是當前狀態(tài)的入口〕后,經(jīng)過了一定的時間或到了指定日期/時間,導致一個時間事件。北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第100頁。(2)表示法可以按如下的格式定義信號事件或調用事件:事件名 ‘(‘用逗號分隔的參數(shù)列表‘)’參數(shù)的格式如下:參數(shù)名 ‘:’ 類型表達式在類圖中,在類符號上用關鍵字<<signal>>聲明信號。把該關鍵字放在信號名的上面,把參數(shù)說明為信號的屬性。注意,信號是實例之間異步傳送的消息的規(guī)格說明??梢杂藐P鍵詞“after〞和計算時間量的表達式表示時間事件,比方“after(5秒)〞或者〞after(從狀態(tài)A退出后經(jīng)歷了10秒)〞。如果沒指明時間起始點,那么從進入當前狀態(tài)開場計時。可把其它的時間事件指定為條件,比方“when(date=2000年1月1日)〞。用關鍵詞“when〞和布爾表達式表示變?yōu)檎娴氖录???梢园哑淇醋魇沁B續(xù)測試條件,直到它為真。北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第101頁。4〕轉換(1)語義轉換是兩個狀態(tài)之間的關系,表示當一個特定事件出現(xiàn)時,如果滿足一定的條件,對象就從第一個狀態(tài)進入第二個狀態(tài),并執(zhí)行一定的動作。--對于這樣的狀態(tài)的改變,稱為“觸發(fā)〞轉換。轉換的觸發(fā)器就是標注在轉換上的事件。事件可能有參數(shù),這樣的參數(shù)可由轉換指定的動作訪問,也可由與源和目標相聯(lián)系的退出和進入動作分別訪問。在狀態(tài)圖中,每次處理一個事件。如果事件沒有觸發(fā)任何轉換,就丟棄它。如果在同一個簡單狀態(tài)圖中觸發(fā)了多個轉換,就只對優(yōu)先級最高的那個轉換點火。如果這些相沖突的轉換具有一樣的優(yōu)先級,就隨機地選擇一個轉換,進展觸發(fā)。北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第102頁。(2)表示法把轉換表示成從源狀態(tài)出發(fā)并在目標狀態(tài)上終止的帶箭頭的實線。它可以由轉換串標記。轉換串的格式為:事件特征標記‘[‘監(jiān)護條件’]’‘/’ 動作表達式其中:事件特征標記描述帶參數(shù)的事件:事件名 ‘(‘由逗號分隔的參數(shù)表‘)’監(jiān)護條件:是布爾表達式,根據(jù)觸發(fā)事件的參數(shù)和擁有這個狀態(tài)機的對象的屬性和鏈來書寫這樣的布爾表達式。也可用監(jiān)護條件顯式地指定某個可達對象的狀態(tài)〔例如,〞inState1〞或〞notinState2〞〕。如果觸發(fā)了轉換,就執(zhí)行動作表達式??梢愿鶕?jù)對象的屬性、操作和鏈以及觸發(fā)事件的參數(shù),或在其范圍內的其它特征書寫動作表達式。動作表達式可以是由一些有區(qū)別的動作組成的動作序列,其中包括顯式地產(chǎn)生事件的動作,如發(fā)送信號或調用操作。表達式的細節(jié)與為模型選擇的動作語言有關。北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第103頁。4、RUPRational統(tǒng)一過程是由統(tǒng)一建模語言〔UnifiedModelingLanguang,簡稱UML〕的開發(fā)者們提出來的,并為對象管理組織(ObjectManagementGroup,簡稱OMG)所推薦。RUP是在權衡了三十年的軟件開發(fā)實踐的根底上形成的。例如,它吸取了數(shù)百個用戶多年的現(xiàn)場經(jīng)歷以及Ratioanal公司多年的工作成果。RUP對于如何運用UML的概念進展軟件開發(fā)提供了詳細指導。即:指導開發(fā)隊伍安排其開發(fā)活動的次序為各開發(fā)者和整個開發(fā)組指定任務明確地規(guī)定需要開發(fā)的制品提供對工程中的制品和活動進展監(jiān)控與度量的準那么北京大學工程碩士軟件工程教材軟件工程串講全文共142頁,當前為第104頁。RUP是以用況〔usecase〕為驅動、以體系

溫馨提示

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

最新文檔

評論

0/150

提交評論