




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
目錄一、軟件工程概念二、軟件開發(fā)模型三、結(jié)構(gòu)化需求分析四、結(jié)構(gòu)化設(shè)計(jì)方法五、面向?qū)ο蠓椒?、軟件測(cè)試七、軟件過程八、ISO9000-3與CMM簡(jiǎn)介九、軟件工具、平臺(tái)與環(huán)境軟件-計(jì)算機(jī)系統(tǒng)中的程序及其文檔。程序是計(jì)算任務(wù)的處理對(duì)象和處理規(guī)則的描述;文檔是為了便于了解程序所需的闡明性資料。工程-將理論和所學(xué)的知識(shí)應(yīng)用于實(shí)踐的科學(xué)。軟件工程-應(yīng)用計(jì)算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理,開發(fā)軟件的工程。它借鑒傳統(tǒng)工程的原則、方法,以提高質(zhì)量,降低成本為目的。其中,計(jì)算機(jī)科學(xué)、數(shù)學(xué)用于構(gòu)造模型與算法,工程科學(xué)用于制定規(guī)范、設(shè)計(jì)范型、評(píng)估成本及確定權(quán)衡,管理科學(xué)用于計(jì)劃、資源、質(zhì)量、成本等管理。軟件工程是一門交叉性學(xué)科。一、軟件工程概念軟件工程框架軟件工程可定義為三元組:<目標(biāo),原則,活動(dòng)>
給出了軟件所涉及的工程要素給出了各要素之間的關(guān)系給出了軟件工程學(xué)科所研究的主要內(nèi)容1、需求定義問題,即建立系統(tǒng)模型
主要任務(wù)包括:需求獲取=>需求定義系統(tǒng)功能的一個(gè)正確的陳述需求規(guī)約=>系統(tǒng)需求規(guī)格說明主要成分:系統(tǒng)模型系統(tǒng)功能的一個(gè)精確、系統(tǒng)的描述需求驗(yàn)證軟件工程的基本活動(dòng)(1/3)2、設(shè)計(jì)在需求分析的基礎(chǔ)上,給出系統(tǒng)的軟件解決方案
總體設(shè)計(jì)=>系統(tǒng)的軟件體系結(jié)構(gòu)C/S結(jié)構(gòu)以數(shù)據(jù)庫為中心的結(jié)構(gòu)管道結(jié)構(gòu)面向?qū)ο蟮慕Y(jié)構(gòu)……
詳細(xì)設(shè)計(jì)針對(duì)總體設(shè)計(jì)結(jié)果,給出每一構(gòu)件的詳細(xì)描述軟件工程的基本活動(dòng)(2/3)3、實(shí)現(xiàn)選擇可用的構(gòu)件;或以一種選定的語言,對(duì)每一構(gòu)件進(jìn)行編碼
4、確認(rèn)貫穿軟件開發(fā)的整個(gè)過程主要體現(xiàn)為:軟件測(cè)試
5、支持完善性維護(hù)糾錯(cuò)性維護(hù)軟件工程的基本活動(dòng)(3/3)1、概念軟件過程、活動(dòng)、任務(wù)的結(jié)構(gòu)框架。瀑布模型演化模型增量模型螺旋模型噴泉模型
……外延-軟件開發(fā)活動(dòng)的組織內(nèi)涵-求解軟件的計(jì)算邏輯二、軟件開發(fā)模型分析編碼50年代末:二級(jí)模型“做什么”“編程-實(shí)現(xiàn)”需求分析設(shè)計(jì)編碼測(cè)試運(yùn)行瀑布模型雛型1、瀑布模型系統(tǒng)需求軟件需求需求分析設(shè)計(jì)編碼測(cè)試運(yùn)行1970年,W.Royce將雛型進(jìn)一步精化其中,每一階段具有以下特征:從上一階段接受工作對(duì)象,即輸入;對(duì)這一輸入實(shí)施本階段的工作;給出本階段的結(jié)果作為輸出。系統(tǒng)需求軟件需求需求分析設(shè)計(jì)編碼測(cè)試運(yùn)行歸納邏輯:
PQPQ
活動(dòng)如瀑布流水式的組織規(guī)定每一活動(dòng)的工作對(duì)象和輸出評(píng)審、確認(rèn)和反饋問題:無法通過開發(fā)活動(dòng)澄清本來不確切的軟件需求
=>維護(hù)、甚至返工的代價(jià)需求設(shè)計(jì)編碼測(cè)試集成開發(fā)反饋開發(fā)反饋……核心系統(tǒng)開發(fā)第二次迭代2、演化模型針對(duì)事先不能完整地定義需求針對(duì)用戶的核心需求,開發(fā)核心系統(tǒng)根據(jù)用戶的反饋,實(shí)施活動(dòng)的迭代需求設(shè)計(jì)編碼測(cè)試集成13245678121110913增量1
1,2,5,9增量2
3,6,7,4,10,11增量3
8,12,13管理增量規(guī)約增量設(shè)計(jì)糾錯(cuò)性分析增量實(shí)現(xiàn)增量1增量2增量33、增量模型將項(xiàng)目分為若干個(gè)里程碑階段定義穩(wěn)定、靈活的體系結(jié)構(gòu),并為構(gòu)件和子系統(tǒng)的開發(fā)提供統(tǒng)一的接口開發(fā)構(gòu)件,始終維持一個(gè)可發(fā)布的系統(tǒng)版本可以準(zhǔn)確把握項(xiàng)目進(jìn)展情況增強(qiáng)開發(fā)人員的信心和成就感可以隨時(shí)根據(jù)市場(chǎng)情況及時(shí)作出調(diào)整微軟“同步-穩(wěn)定的
產(chǎn)品開發(fā)模型”演化維護(hù)確認(rèn)實(shí)現(xiàn)設(shè)計(jì)分析4、噴泉模型特征:迭代、無縫與面向?qū)ο蠹夹g(shù)的關(guān)系USDP體現(xiàn)了UseCase
驅(qū)動(dòng)的、增量的、迭代的三、結(jié)構(gòu)化需求分析需求分析位于軟件開發(fā)的前期,它的基本任務(wù)是準(zhǔn)確地定義未來系統(tǒng)地目標(biāo),確定為了滿足用戶的需要系統(tǒng)必須做什么。要回答:如何定義問題?就如何定義問題而言,如何獲得需求如何規(guī)約需求如何驗(yàn)證需求1、關(guān)于需求獲取需求面臨的挑戰(zhàn):?jiǎn)栴}空間理解人與人之間的通信需求的不斷變化(1)需求目標(biāo)(1/2)在任何一個(gè)設(shè)計(jì)中,精確地陳述問題總是第一步。需求的目標(biāo)是要簡(jiǎn)潔而精確地說明所要解決的問題:軟件人員的注意力應(yīng)在做什么和為什么做,而不是如何做。與用戶和該領(lǐng)域的專家進(jìn)行交流,導(dǎo)引出他們對(duì)軟件產(chǎn)品的要求?;趯?duì)用戶要求的理解,結(jié)合計(jì)算機(jī)軟件的特有能力,創(chuàng)造出對(duì)用戶有價(jià)值的,能提高產(chǎn)品的質(zhì)量與可用性的新的產(chǎn)品要求。分析所定出的產(chǎn)品要求,判斷其正確性、一致性、完整性和可行性。(1)需求目標(biāo)(2/2)決定解決方案,完成高層次的設(shè)計(jì),確定出功能子系統(tǒng)及子系統(tǒng)之間的接口界面。把產(chǎn)品要求以用戶手冊(cè)及工程設(shè)計(jì)技術(shù)要求的形式表達(dá)出來(可能還包括測(cè)試的標(biāo)準(zhǔn)),用于在開發(fā)的全過程中驗(yàn)證核實(shí)所開發(fā)的產(chǎn)品確能滿足用戶的要求,支持技術(shù)文檔的管理,更重要的是支持需求變化的管理。(2)需求工程的重要性StandishGroup對(duì)350家公司的8000個(gè)軟件項(xiàng)目作過一次調(diào)查。其中,31%的項(xiàng)目的結(jié)局是被取消。導(dǎo)致這些項(xiàng)目失敗的原因是:13.1%不完整的產(chǎn)品要求;12.4%缺乏用戶的參與;10.6%缺少資源(人力、財(cái)力);9.9%不現(xiàn)實(shí)的期望;9.3%高層領(lǐng)導(dǎo)支持不足;8.7%產(chǎn)品要求與指標(biāo)的改變;8.1%沒有制訂計(jì)劃;7.5%不再需耍該開發(fā)中的系統(tǒng)。其中,與產(chǎn)品需求有關(guān)的(1,2,4和6項(xiàng))占了44.1%。這些數(shù)據(jù)突出地顯示了軟件產(chǎn)品需求在軟件開發(fā)中的重要性。需求工程包括需求的引出、創(chuàng)造、分析、表述、驗(yàn)核和管理。軟件需求工程做得好,它可以降低軟件產(chǎn)品的成本和提高其質(zhì)量,有助于產(chǎn)品按時(shí)完成;做得不好,它可以導(dǎo)致軟件項(xiàng)目的失敗。軟件需求工程-這種發(fā)生在軟件生命周期的初始階段的錯(cuò)誤是非常難于改正,并且是代價(jià)極高的。最新的研究興趣聚焦于“需求引出”,因?yàn)樗婕暗杰浖_發(fā)人員與非軟件專業(yè)人員合作的問題。(3)需求工程的原則分析問題和需求的能力與思維和經(jīng)驗(yàn)有關(guān)。好的思維包括:a>抽象:捕獲問題空間的“一般/特殊”關(guān)系是認(rèn)識(shí)、構(gòu)造問題的一般途徑b>劃分:捕獲問題空間的“整體/部分”關(guān)系是降低問題復(fù)雜性的基本途徑之一c>投影:捕獲問題空間的多維“視圖”是描述問題的基本手段之一好的思維來源于:嚴(yán)謹(jǐn)、邏輯和“活躍”的思考習(xí)慣。嚴(yán)謹(jǐn)要求思考的對(duì)象應(yīng)該是不放過任何一個(gè)“小”問題邏輯要求思考的過程應(yīng)該是一種符合規(guī)則的推導(dǎo)過程活躍思維要求思考的方式應(yīng)該是并行的,即不是僅一個(gè)角度,而是多個(gè)角度來思考問題經(jīng)驗(yàn)來源于:開發(fā)了一些軟件并善于總結(jié)-創(chuàng)新與教訓(xùn)跟蹤最新技術(shù)具體地說,軟件人員必須先在一定程度上熟悉并學(xué)習(xí)未來系統(tǒng)所涉及的專業(yè)領(lǐng)域,以滿足工作的要求為目標(biāo)。軟件人員要懂得如何幫助用戶去表達(dá)出他們對(duì)產(chǎn)品的耍求。因?yàn)樾枨螳@取是一個(gè)交互的過程。軟件人員面對(duì)的用戶是:他們不是計(jì)算機(jī)或軟件的專業(yè)人員,他們不能完全清楚軟件能帶來一些什么新的功能可以幫助提高工作效率和提供新的服務(wù),因此必須在需求規(guī)約中包括用戶對(duì)產(chǎn)品工作性能、可靠性、可維護(hù)性和可擴(kuò)展性等的需求。使用清楚而良構(gòu)的語言完成需求規(guī)約。必須完全用問題領(lǐng)域方面的詞匯來表達(dá),不應(yīng)該出現(xiàn)軟件領(lǐng)域內(nèi)的詞匯。通過瀏覽文檔,能夠完全理解所要解決的具體問題和該問題的一般性解決方案。開始問題定義時(shí),通常是建立一個(gè)詞匯表。對(duì)于具有模糊含義的術(shù)語,或者在目前的問題中用于有限范圍內(nèi)的術(shù)語,要給出專門的定義。在詞匯表中加入精化細(xì)節(jié)也是很有幫助的-那些通常歸入功能性需求規(guī)范的東西,常體現(xiàn)在精化細(xì)節(jié)中。集中在公司的關(guān)鍵任務(wù)的目標(biāo)上,一個(gè)新項(xiàng)目的開始,可能是執(zhí)行一個(gè)已有的長(zhǎng)期系統(tǒng)計(jì)劃的結(jié)果,或來自于一系列高層戰(zhàn)略信息系統(tǒng)計(jì)劃編制的建議。因此,由此產(chǎn)生的建造,應(yīng)該盡量基于長(zhǎng)期的方向和目標(biāo),而不是針對(duì)商業(yè)危機(jī)或技術(shù)潮流而做出的反應(yīng)。應(yīng)該直接集中在公司的業(yè)務(wù)需要上,而不是技術(shù)人員的理想軟件列表上。應(yīng)該通過考察現(xiàn)在的應(yīng)用情況,并根據(jù)其業(yè)務(wù)性能和任何預(yù)計(jì)的未來的市場(chǎng)影響,對(duì)每個(gè)系統(tǒng)進(jìn)行分類。需求分類根據(jù)軟件產(chǎn)品的性能指標(biāo)和實(shí)現(xiàn)難度,對(duì)問題和需求進(jìn)行分類:核心需求基本功能需求高級(jí)功能需求組合功能需求恰當(dāng)?shù)剡x取問題和需求的切入點(diǎn)所有問題和需求都有發(fā)生的根源,其表面現(xiàn)象往往是開發(fā)者思路的切入點(diǎn)。如果切入點(diǎn)是狹隘的,那么圍繞著問題和需求的分析往往局限于自身的思路范圍,問題和需求產(chǎn)生的原因就很難發(fā)現(xiàn)。所以當(dāng)不能理解分析的問題和需求時(shí),不妨先跳出思維慣例,尋求存在這樣的問題和需求的原因,然后再分析理解之。交替反復(fù)分析多個(gè)問題和需求,尋找問題間的共性和特性。問題復(fù)雜化,是一個(gè)抽象問題或需求的逆過程。提出問題需求的許多可能的假設(shè),豐富問題需求的形式。問題復(fù)雜化的意圖是許多問題應(yīng)該從更多的方面去驗(yàn)證不同環(huán)境下問題是否同樣存在。問題抽象化,繼而簡(jiǎn)化問題。眾多的問題和需求變成程序式過程,就是公式化問題和需求。類模板就是一個(gè)抽象問題很好的例子。(4)需求獲取技術(shù)的特征好的需求獲取技術(shù)應(yīng)具有的基本特征:方便通訊(使用易于理解的語言)提供定義系統(tǒng)邊界的方法提供劃分、抽象、投影等方法支持使用問題空間的術(shù)語,思考問題和編制文檔允許采用多種可供選擇的設(shè)計(jì)方法適應(yīng)需求的變化需求獲取技術(shù)示例-UseCase(IvarJacobson,1994)UseCase主要用于促進(jìn)和用戶的交流、溝通,為此使用了一種用戶和開發(fā)人員都能理解的方式描述系統(tǒng)功能和行為。UseCase可以劃分系統(tǒng)與外部實(shí)體的界限,是系統(tǒng)開發(fā)的起點(diǎn),而最終應(yīng)該落實(shí)到類和實(shí)現(xiàn)代碼上。UseCase既然是對(duì)系統(tǒng)行為的動(dòng)態(tài)描述,因此它是類、對(duì)象、操作的來源,是系統(tǒng)分析和設(shè)計(jì)階段的輸入之一,是分析和設(shè)計(jì)、制定開發(fā)計(jì)劃、測(cè)試計(jì)劃、設(shè)計(jì)測(cè)試用例的依據(jù)之一。UseCaseModel是系統(tǒng)需求分析階段的成果之一。UseCase不但有助于幫助分析員理清思路,驗(yàn)證用戶需求,而且也是開發(fā)人員之間進(jìn)行交流的重要手段。(1)USECASE語義(1/2)一個(gè)USECASE是系統(tǒng)或其它語義實(shí)體(例如子系統(tǒng)或一個(gè)類)所提供的一塊(unit)高內(nèi)聚的功能,表示該系統(tǒng)和一個(gè)或多個(gè)外部交互者(稱為操作者)交替出現(xiàn)的消息序列,以及該系統(tǒng)所執(zhí)行的動(dòng)作??梢姡琔SECASE用于定義一個(gè)系統(tǒng)或一個(gè)其它語義實(shí)體的行為,沒有揭示該實(shí)體的內(nèi)部結(jié)構(gòu)。每一USECASE說明(specifies)該實(shí)體與其操作者進(jìn)行交互所執(zhí)行的一個(gè)動(dòng)作序列,以及其它動(dòng)作(序列)的變體。(1)USECASE語義(2/2)USECASE包含一組操作和屬性,這些操作和屬性規(guī)約了該USECASE的實(shí)例所執(zhí)行的那個(gè)動(dòng)作序列。動(dòng)作包含狀態(tài)的改變以及該USECASE與其環(huán)境的通訊。如:執(zhí)行該動(dòng)作序列的前置條件
主要路徑
可選擇的路徑
執(zhí)行該動(dòng)作序列的后置條件一個(gè)操作者定義了一組高內(nèi)聚的角色,當(dāng)用戶與該實(shí)體交互時(shí),用戶可以扮演這一角色。對(duì)于每一USECASE,一個(gè)操作者有一種角色,即每一USECASE與具有一種角色的操作者進(jìn)行通訊。操作者語義(2)USECASE產(chǎn)品結(jié)構(gòu)(4)USECASE獲取仿真法(Simulation)掌握用戶的所有輸入與輸出的數(shù)據(jù)種類,通過仿真的方法,找出它們之間的對(duì)應(yīng)關(guān)系,與及相應(yīng)的數(shù)據(jù)處理過程。包括任何計(jì)劃中將要新增加的數(shù)據(jù)類型與處理過程。原型法(Prototyping)從用戶處取得一組基本的USECASE產(chǎn)品要求之后,立即建造USECASE產(chǎn)品的原型(這個(gè)原型可以是實(shí)際可運(yùn)行的軟件(外殼),或是一個(gè)用描述來表達(dá)的產(chǎn)品),然后讓用戶去模擬使用這個(gè)原型,提出修改的意見。其中,值得注意的是,不要忽略將要新增加的數(shù)據(jù)類型與處理過程。場(chǎng)景法(ScenarioGeneration)讓用戶窮舉他們現(xiàn)有的所有的數(shù)據(jù)處理實(shí)踐以及任何計(jì)劃中將要新增加的數(shù)據(jù)類型與處理過程。從以上三種方法可以看出,UseCase的功能劃分均要以角色為主體,行為是角色觸發(fā)的。USECASE中包含的信息名稱(Name)標(biāo)識(shí)(Identifier)描述(Description)角色(Actor)狀態(tài)(Status)活動(dòng)及時(shí)序頻度(Frequency)(6)關(guān)系在USECASE之間,或在操作者與USECASE之間,存在一些標(biāo)準(zhǔn)的關(guān)系:關(guān)聯(lián):參與關(guān)系,即操作者參與一個(gè)USECASE。例如,操作者的實(shí)例與USECASE實(shí)例相互通訊。關(guān)聯(lián)是操作者和USECASE之間的唯一關(guān)系。擴(kuò)展:USECASEA到USECASEB的一個(gè)擴(kuò)展關(guān)系,指出了USECASEB的一個(gè)實(shí)例可以由A說明的行為予以擴(kuò)展(根據(jù)該擴(kuò)展所說明的特定條件),并依據(jù)該擴(kuò)展點(diǎn)定義的位置,A說明的行為被插入到B中。包含:USECASEA到USECASEB的一個(gè)包含,指出A的一個(gè)實(shí)例將包含B說明的行為,即這一行為將包含在A定義的那部分中。泛化:USECASEA到USECASEB的泛化,指出A是B的特殊情況。1*<<include>><<include>><<include>><<extend>>thesalespersonasksforthecatalog
PlaceOrderextensionpointsadditionalrequests:aftercreationoftheorder
SupplyCustomerData
OrderProduct
ArrangePayment
RequestCatalogsalespersonSupervisor
EstablishCredit1*USECASE、Actor關(guān)系USECASE圖USECASE圖給出了操作者和USECASE以及它們之間的關(guān)系。即圖中給出了一些操作者、一組關(guān)系、一些接口和這些元素之間的關(guān)系。關(guān)系是操作者和USECASE之間的關(guān)聯(lián)是操作者之間的泛化是USECASE之間的泛化、擴(kuò)展和包含可以將一些USECASE用一矩形括起,以表示所包括的那個(gè)系統(tǒng)或其它語義實(shí)體的邊界。CheckstatusPlaceorderFillorder
EstablishcreditTelephoneCatalogSalespersonShippingClerkSupervisorCustomerUSECASE圖示例(7)使用USECASE圖的
建模類型使用USECASE圖所建造的類型,可以從兩個(gè)層面上進(jìn)行分類,它們是“整體/部分”關(guān)系。系統(tǒng)建模(systemmodeling)系統(tǒng)建模用于描述軟件系統(tǒng)的結(jié)構(gòu)和行為業(yè)務(wù)建模(businessmodeling)業(yè)務(wù)建模用于企業(yè)或組織過程的優(yōu)化和再工程業(yè)務(wù)建模的圖形元素不僅包括普通的Actor和UseCase,還包括Worker、Artifact、Business過程描述時(shí)還應(yīng)結(jié)合時(shí)序圖(sequencediagram)和任務(wù)圖(activitydiagram)結(jié)構(gòu)化分析方法(1)概念數(shù)據(jù)流:加工:數(shù)據(jù)存儲(chǔ):數(shù)據(jù)源:數(shù)據(jù)潭:
概念是完備的。(2)建模過程
建立系統(tǒng)的DFD-功能模型建立系統(tǒng)環(huán)境圖,確定系統(tǒng)邊界自頂向下,逐層分解
建立數(shù)據(jù)字典
給出加工小說明2、關(guān)于需求規(guī)約數(shù)據(jù)流圖-表達(dá)系統(tǒng)模型的工具結(jié)構(gòu)符:+|{}AAABCB0C0B*
-用于定義數(shù)據(jù)結(jié)構(gòu)判斷表與判定樹-用于給出加工小說明
ⅠⅡⅢⅣ(3)表示工具簡(jiǎn)化的商業(yè)自動(dòng)化系統(tǒng)營(yíng)業(yè)員收款員經(jīng)理銷售的商品現(xiàn)金額現(xiàn)金余額銷售情況日銷售額查詢要求錄入、修改或刪除商品信息錄入、修改現(xiàn)金額,并計(jì)算余額查詢商品銷售情況計(jì)算日銷售額銷售的商品現(xiàn)金額現(xiàn)金余額查詢要求銷售情況日銷售額銷售文件123判定要求查詢要求統(tǒng)計(jì)銷售情況計(jì)算日銷售額銷售文件查詢要求2查詢要求1銷售情況日銷售額加工3:數(shù)據(jù)字典:1、數(shù)據(jù)流:銷售的商品=商品名+商品編號(hào)+單價(jià)+數(shù)量+日期現(xiàn)金額=余額=日銷售額=非負(fù)實(shí)數(shù)查詢要求=[商品編號(hào)|日期]查詢要求1=商品編號(hào)查詢要求2=日期銷售情況=商品名+商品編號(hào)+金額2、數(shù)據(jù)存貯:銷售文件={銷售的商品}
(4)建模中需注意的問題i.模型平衡規(guī)則父圖和子圖必須平衡每個(gè)數(shù)據(jù)流和數(shù)據(jù)存儲(chǔ)必須在數(shù)據(jù)字典中予以定義“葉”加工(最低層)必須給出加工小說明小說明和數(shù)據(jù)流圖的圖形表示必須一致例如:在小說明中,必須說明“輸入數(shù)據(jù)流”如何使用如何產(chǎn)生“輸出數(shù)據(jù)流”如何選取、使用、修改“數(shù)據(jù)存儲(chǔ)”ii.控制復(fù)雜性規(guī)則上層數(shù)據(jù)可以“打包”上、下數(shù)據(jù)流對(duì)應(yīng)關(guān)系在數(shù)據(jù)字典中給出,但包內(nèi)數(shù)據(jù)流的性質(zhì)(輸入、輸出)必須一致一幅圖中的圖元個(gè)數(shù)應(yīng)控制在7+/-2以內(nèi)與每一加工相關(guān)的數(shù)據(jù)流的數(shù)目應(yīng)適中(與層次有關(guān))分析數(shù)據(jù)內(nèi)容,確定是否所有的輸入信息都用于產(chǎn)生輸出信息分析加工,確定一個(gè)加工所產(chǎn)生的輸出,是否都能由該加工的輸入信息導(dǎo)出3、關(guān)于需求驗(yàn)證SRS-SoftwareRequirementsSpecification有關(guān)SRS內(nèi)容方面:(1)正確性:指的是SRS中陳述的每個(gè)需求是否都表達(dá)了系統(tǒng)的某個(gè)要求。(2)無二義性:指的是SRS中陳述的每個(gè)需求是否都只有一種解釋。(3)完整性:未來系統(tǒng)所做的任何事情都包含在SRS的陳述中未來系統(tǒng)響應(yīng)所有可能的輸入(包括有效和無效)SRS中沒有被標(biāo)識(shí)為“待定”的內(nèi)容(4)可驗(yàn)證性:SRS中陳述的每個(gè)需求都是可驗(yàn)證的,即當(dāng)且僅當(dāng)存在一個(gè)有限代價(jià)的過程(人工或機(jī)器)可以檢查構(gòu)造的軟件產(chǎn)品是否符合用戶的需求。(5)一致性:SRS中陳述的需求沒有與以前的文檔發(fā)生沖突SRS中陳述的各個(gè)需求之間沒有發(fā)生沖突(6)可理解性有關(guān)SRS格式與風(fēng)格方面:(7)可修改性:指的是SRS的結(jié)構(gòu)和風(fēng)格使任何對(duì)需求的必要修改都易于完整、一致的進(jìn)行。(8)可被跟蹤性:指的是SRS中的每個(gè)需求的出處都是清楚的,這意味著SRS中包含對(duì)前期支持文檔的引用表。(9)可跟蹤性:指的是SRS的書寫方式有助于對(duì)其中陳述的每個(gè)需求進(jìn)行引用。(10)設(shè)計(jì)無關(guān)性:指的是SRS不暗示特定的軟件結(jié)構(gòu)和算法。四、結(jié)構(gòu)化設(shè)計(jì)要回答如何解決問題,即給出軟件解決方案分為總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩部分總體設(shè)計(jì)的任務(wù):如何將DFD轉(zhuǎn)化為MSD分兩步實(shí)現(xiàn),第一步:如何將DFD轉(zhuǎn)化為初始的MSD
分類:變換型數(shù)據(jù)流圖=>變換設(shè)計(jì)事務(wù)型數(shù)據(jù)流圖=>事務(wù)設(shè)計(jì)變換型:事務(wù)型:12345678abcdefhgyxz123546abcdefgy數(shù)據(jù)流圖分類XX系統(tǒng)變換模塊geteputhputggetcgetdc,d->ee->ff->g,hh->yputyg->xputxx->zputzgetagetbb->da->ceeg,hhgzzxxgyyhdbcacdeefg,hfxab變換設(shè)計(jì)事務(wù)中心輸入模塊路徑1路徑2輸出模塊aycgbfc->ecee->gegb->dbdd->fdf事務(wù)設(shè)計(jì)第二步:如何將初始的MSD轉(zhuǎn)化為最終可供詳細(xì)設(shè)計(jì)使用的MSD模塊的概念模塊化模塊化度量:內(nèi)聚耦合設(shè)計(jì)規(guī)則-經(jīng)驗(yàn)規(guī)則精化初始的MSD-體現(xiàn)設(shè)計(jì)人員的創(chuàng)造耦合不同模塊之間相互依賴程度的度量。內(nèi)容耦合:一個(gè)模塊直接修改或操作另一個(gè)模塊的數(shù)據(jù)。公共耦合:兩個(gè)以上的模塊共同引用一個(gè)全局?jǐn)?shù)據(jù)項(xiàng)??刂岂詈希阂粋€(gè)模塊向另一模塊傳遞一個(gè)控制信號(hào),接受信號(hào)的模塊將依據(jù)該信號(hào)值進(jìn)行必要的活動(dòng)。標(biāo)記耦合:兩個(gè)模塊至少有一個(gè)通過界面?zhèn)鬟f的公共有結(jié)構(gòu)的參數(shù)。數(shù)據(jù)耦合:模塊間通過參數(shù)傳遞基本類型的數(shù)據(jù)。內(nèi)聚一個(gè)模塊之內(nèi)各成分之間相互依賴程度的度量。偶然內(nèi)聚:一個(gè)模塊之內(nèi)各成分之間沒有任何關(guān)系。邏輯內(nèi)聚:幾個(gè)邏輯上相關(guān)的功能放在同一模塊中。時(shí)間內(nèi)聚:一個(gè)模塊完成的功能必須在同一時(shí)間內(nèi)完成,而這些功能只是因?yàn)闀r(shí)間因素關(guān)聯(lián)在一起。過程內(nèi)聚:處理成分必須以特定的次序執(zhí)行。通信內(nèi)聚:各成分都操作在同一數(shù)據(jù)集或生成同一數(shù)據(jù)集。順序內(nèi)聚:各成分與一個(gè)功能相關(guān),且一個(gè)成分的輸出作為另一成分的輸入。功能內(nèi)聚:模塊的所有成分對(duì)完成單一功能是最基本的,且該模塊對(duì)完成這一功能而言是充分必要的。啟發(fā)性規(guī)則經(jīng)驗(yàn)的總結(jié):改進(jìn)軟件結(jié)構(gòu),提高模塊獨(dú)立性;模塊規(guī)模適中-每頁60行語句;深度、寬度、扇入和扇出適中;模塊的作用域力爭(zhēng)在控制域之內(nèi);降低模塊接口的復(fù)雜性;模塊功能應(yīng)該可以預(yù)測(cè)。詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)的任務(wù)是定義每一模塊。結(jié)構(gòu)化程序設(shè)計(jì)三種控制結(jié)構(gòu):順序
begins1;s2;…snend;選擇
if條件表達(dá)式
thens1elses2;循環(huán)
while條件表達(dá)式dos;s1s2s1s2...s幾種表示工具流程圖、PAD、N-S圖、偽碼等。流程圖:偽碼偽碼是一種混合語言,外部采用形式語言的控制結(jié)構(gòu)內(nèi)部使用自然語言例如,begin
輸入一元二次方程的系數(shù)a,b,c;ifb2-4acothen計(jì)算兩實(shí)根
else輸出無實(shí)根;end.S1S2S3S1S2X5X<5S順序:選擇:循環(huán):注:支持逐步求精設(shè)計(jì)PAD圖
支持逐步求精設(shè)計(jì)舉例順序:選擇:循環(huán):條件FTS1S2循環(huán)條件循環(huán)體N:=1..10
X>5TFFTS1S2S3S4S5S6S8S7S9S10
X>10&Y>3N-S圖五、面向?qū)ο蠓椒?.核心概念2.行為描述3.關(guān)于過程4.UML要點(diǎn)5.面向?qū)ο蠓椒ㄅc結(jié)構(gòu)化方法的比較OO方法看待世界的觀點(diǎn)世界是由對(duì)象構(gòu)成的;對(duì)象有其自己的屬性和內(nèi)部運(yùn)動(dòng)規(guī)律;對(duì)象之間的相互作用,構(gòu)成了大千世界的各式各樣的不同系統(tǒng)。掌握面向?qū)ο蠓椒ǖ摹凹记伞敝R(shí)=概念+關(guān)系+條件/過程建模=(實(shí)際事物概念)+表示(形式化或半形式化符號(hào))抽象:關(guān)注一個(gè)事物的重要的或主要方面,而忽略或去掉不重要的或沒意義的細(xì)節(jié)。其中,就軟件開發(fā)而言,根據(jù)當(dāng)前情況和需要,應(yīng)以細(xì)節(jié)的不同層次來觀察問題控制復(fù)雜性,并考慮正確性、可維護(hù)性、可復(fù)用性和可理解性模型:anyabstractionthatincludesallessentialcapabilities,properties,oraspectsofwhatisbeingmodeledwithoutanyextraneousdetails[Firesmith,Henderson-Sellers]實(shí)踐1、核心概念對(duì)象(Object)分析層:對(duì)客觀事物的抽象。設(shè)計(jì)層:面向?qū)ο笙到y(tǒng)中的基本成分,是數(shù)據(jù)和操作(或謂屬性和行為)的封裝通信單位。數(shù)據(jù)表示對(duì)象的屬性狀態(tài),操作(或稱方法)決定了對(duì)象的行為和與其它對(duì)象進(jìn)行通信的接口。實(shí)現(xiàn)層:類的實(shí)例。Anyabstractionthatmodelsasinglething.[Coad,Coleman,…OMG]Anyperson,place,orthing.[Embley]Anyidentifiable,encapsulatedentitythatprovidesoneormoreservicesthatcanberequestedbyaclient.[Jacobson,OMG]Anyencapsulationofproperties(e.g.,data,state)andbehavior(e.g.,operations).[Booch,Coad,Firesmith,Jacobson,OMG]對(duì)象的三個(gè)基本特征:自治性封閉性通信性舉例說明(1/3)例如,在一個(gè)特定領(lǐng)域中,域?qū)ο蟀ǎ篈pplicationObjectAnyobjectthatmodelsanyinterfaceswithanend-userapplication.[OMG]Anyobjectencapsulatinganentireapplication.[ODMG]BusinessObjectAnyobjectthatmodelssomeessentialaspectoftheapplicationdomain.[OMG]舉例說明(2/3)ControllerObjectAnydomainobjectthatexisttoeithercontroloneormoreobjectsorcaptureuserinputasinthemodel-view-controller(MVC)framework.[Coleman,Firesmith]EntityObjectAnyobjectinabusinesssystemthatrepresentoccurrencesthatarehandledinthebusiness.[Jacobson]舉例說明(3/3)ModelObjectAnydomainobjectthatmodelsanapplicationdomainthings.[Firesmith]Problem-DomainObjectAnydomainobjectthathasadirectcounterpartintheapplicationenvironmentaboutwhichthesystemshouldhandleinformation.[Jacobson]ViewObjectAnydomainobjectthatexiststoprovideauserviewof(i.e.,informationaboutandcontrolover)oneormoremodelobject.[Firesmith]
還可以從不同角度(例如,構(gòu)造、環(huán)境響應(yīng)等方面)引入特定的對(duì)象分類。屬性表示對(duì)象狀態(tài)的一組值。Anynamedpropertyusedasadataabstractiontodescribeitsenclosingobject,class,orextent.[Firesmith,Rumbaugh]Anynamedpropertyofanobjectthattakesaliteralasitsvalue,definestheabstractstateofitsobject,andappearwithintheinterfaceratherthentheimplementation.[ODMG]舉例說明(1/2)基屬性:不能由其他屬性導(dǎo)出的屬性類屬性限定符(Qualifier)Anyattributeofanobjectthatdistinguishesitfromotherobject,therebyactingasarelationshipcardinalityconstraint.[Firesmith,Rumbaugh]舉例說明(2/2)AttributeSignatureThesignatureofanyattributedeclaresits-name-type-initialvalue(ifany)[ODMG]AttributeTypeAnytypeofobjectusedanattribute.[Firesmith,Jacobson]AttributeAssociationAnyassociationwhichcapturestherelationshipfromtheobjecttothatpartofitsattributethatholdthevalueoftheattribute.[Jacobson]
操作(Operation)為其它對(duì)象提供的服務(wù)。Anydiscreteactivity,action,orbehaviorthatisperformedby(i.e.,belongsto)anobjectorclass.[Ada95,Firesmith,Hender-Sellers]Anyservicethatcanberequested.[Jacobson,Martin,OMG]同義詞:功能(Function)
方法(Method)
服務(wù)(Service)舉例說明AbstractOperationAnyoperationthatisdeclaredby,butnotimplementedin,anabstractclass.ConcurrentOperationAnyoperationthatcontainsoneormoreseparatethreadsofcontrol.AggregateOperationAnyoperationthathasbeenfunctionallydecomposedintotwoormoresub-operations.連接(1/2)AssociationAnysemanticrelationshipbetweentwoormoreclassortypes.[Booch]ConnectionAnyproblemdomainassociationormappingbetweenobjectsthatrepresentswhatoneobjectneedstoknowaboutsomenumberofotherobjectsinordertofulfillitsresponsibilities.[Coad]連接(2/2)屬性關(guān)聯(lián)
對(duì)象與其自身有值的部分屬性之間的關(guān)系。基關(guān)聯(lián)
不能用其它關(guān)聯(lián)定義的關(guān)聯(lián)。被導(dǎo)出的關(guān)聯(lián)
由其它關(guān)聯(lián)定義的關(guān)聯(lián)。函數(shù)
返回一個(gè)值的操作。關(guān)系
Anyobjecttypemodelinganassociationwhoseextensionisasetoftuples.[Martin/Odell]c1c2c3c4c5c6c7p1p3p2p4p5擁有關(guān)系:{<p1,c3>,<p1,c4>,<p2,c1>,<p3,c2>,<p4,c6>,<p5,c7>}模型化為1..20..1
擁有關(guān)系連接概念解析注意:其中的連接標(biāo)識(shí)和約束其他概念為了控制信息組織的復(fù)雜性,引入了:類(class)
一組具有共同特征的相似對(duì)象的抽象描述,即相似的結(jié)構(gòu),相似的行為和相似的關(guān)系。類是面向?qū)ο笳Z言的基本成分面向?qū)ο蟪绦虻奈ㄒ粯?gòu)造單位抽象數(shù)據(jù)類型的具體實(shí)現(xiàn)對(duì)象的生成模板Anyuniquely-identifiedabstraction(i.e.,model)ofasetoflogically-relatedinstancesthatsharethesameorsimilarcharacteristics.[Firesmith,Lorenz,Rumbaugh]Anyconceptthathasmembers.[Henderson-Sellers]舉例說明(1/2)抽象類聚合類Collection(toholdcomponentobjectsofasingletypeanditssubtypes.[Firesmith])Container(toholdunrelatedcomponentobjectsofmultipleunrelatedtypes.[Booch,Firesmith,Rumbaugh])Structure(class)(componentobjectsofwhichareinterrelated.[Firesmith])基類,超類復(fù)合類(Compositeclass)Anyclassthatcomposedofotherclasses.[Wirfs-Brock]舉例說明(2/2)并發(fā)類(ConcurrentClass)
Anyclasswhoseinstancesareconcurrentobjects.[Firesmith]activeclass:anyconcurrentclassofactiveobjectthatexecutewithouttheneedforincomingmessages.[Firesmith]guardedclass:anyconcurrentclass,theinstancesofwhichprovideandenforcemutuallyexclusiveaccessinaconcurrentenvironment.[Firesmith]synchronousclass:anyclasswhoseinstancesguaranteetheirsemanticsviamutualexclusioninthepresenceofmultiplethreadsofcontrol.[Booch]
還可以從不同角度(例如:地位和作用等方面)引入特定的類。繼承(Inheritance)面向?qū)ο笾械膹?fù)用機(jī)制。Theincrementalconstructionofanewdefinitionintermofexistingdefinitionswithoutdisturbingtheoriginalconstructionsandtheirclient.[Ada95,Firesmith]例如:類繼承事件繼承單繼承/多繼承動(dòng)態(tài)繼承(需要?jiǎng)討B(tài)綁定的繼承)2、行為描述行為分類準(zhǔn)則(三條):有相同(相似)的導(dǎo)致行為狀態(tài)變遷的原因集有相同(相似)的狀態(tài)變遷歷史有相同(相似)的功能
狀態(tài)1
狀態(tài)2
狀態(tài)3
狀態(tài)4條件1條件2條件3條件4操作1操作2操作3操作4操作5操作6操作7操作8蘊(yùn)含蘊(yùn)含蘊(yùn)含COAD方法依據(jù)行為分類準(zhǔn)則(三條)以狀態(tài)圖和服務(wù)流程圖來表達(dá)類的行為為了表示對(duì)象動(dòng)態(tài)行為,引入了:狀態(tài):表示對(duì)象所處的階段、活動(dòng)和外征
Statesmaybeusedtomodelanon-discreteorlong-runningactivity,oracontinuousactivitythatmustbeinterruptedtoallowaresponsetoeventsorconditionsthataffectanobject.轉(zhuǎn)換:在事件的激發(fā)下,狀態(tài)的變遷事件:引起狀態(tài)變遷的條件、動(dòng)作(action)協(xié)作、交互、消息……狀態(tài)1@或/和條件Action狀態(tài)2@或/和條件Action狀態(tài)3狀態(tài)4@或/和條件Action狀態(tài)6狀態(tài)5狀態(tài)7@或/和條件Action狀態(tài)8條件條件OMT/OSA以狀態(tài)網(wǎng)來表示類的行為協(xié)作(Collaboration)在介紹協(xié)作概念之前,先說明以下分類符(classifier)這一概念。分類符(Classifier)是一個(gè)元素,它描述了行為和結(jié)構(gòu)的特性(Feature)。分類符有不同的形式,包括類、數(shù)據(jù)結(jié)構(gòu)、接口、構(gòu)件以及定義在其他元模型包中的元素。Classifier
DataType
ClassisActive:BooleanInterface
Node
Component
NodeElementname:NameElementResidecevisibility:visibilityKind+deploymentLocation+resident+implementationLocation+resident****協(xié)作的概念thecooperativeinteractionoftwoormoreobjectorclassesforsomecommonpurpose(e.g.,toprovidesomehigher-levelbehavior).[Booch,Firesmith]目標(biāo):規(guī)約一個(gè)操作或一個(gè)分類符(如usecase)怎樣通過一組分類符和關(guān)聯(lián)來細(xì)化之。協(xié)作定義了一個(gè)語境,在這一語境內(nèi),被細(xì)化的那個(gè)行為可以利用它們之間的交互予以說明。因此,當(dāng)一個(gè)模型描述整個(gè)系統(tǒng)時(shí),一個(gè)協(xié)作是該系統(tǒng)模型的一個(gè)切片,一個(gè)設(shè)計(jì)。一個(gè)協(xié)作定義了該模型內(nèi)容的一個(gè)子集的用法??梢栽趦蓚€(gè)層次上,表示一個(gè)協(xié)作,在規(guī)格說明層,協(xié)作圖將給出分類符角色和關(guān)聯(lián)角色在實(shí)例層,協(xié)作圖將給出與該協(xié)作內(nèi)那些角色相一致的實(shí)例和鏈在一個(gè)協(xié)作中,要規(guī)約必須包含的分類符;要規(guī)約參與協(xié)作的實(shí)例必須具有的性質(zhì),即規(guī)約每一參與者所需要的特性;要規(guī)約參與者之間必須存在的關(guān)聯(lián)。分類符與分類符角色的關(guān)系當(dāng)一個(gè)分類符是實(shí)例的完整描述時(shí),則一個(gè)分類符角色是對(duì)一個(gè)特定協(xié)作中所需要的那些特性的描述;如此的分類符僅表述它們是特定分類符角色的基本分類符。由于一個(gè)實(shí)例可以源于多個(gè)分類符,因此一個(gè)分類符角色可以有不同的基本分類符。不同分類符角色,甚至在同一協(xié)作中,可以有同一基本分類符,但它們的特性和所包含的元素可以是不同的特性子集和該分類符所包含的不同元素。因此,這些分類符角色規(guī)約了同一分類符的實(shí)例扮演了不同的角色。協(xié)作與其規(guī)約的“對(duì)象”當(dāng)一個(gè)協(xié)作用于規(guī)約一個(gè)分類符(例如一個(gè)USECASE)時(shí),則該分類符的基類可以是任意類型的分類符,如類或子系統(tǒng);當(dāng)在一個(gè)協(xié)作中規(guī)約了一個(gè)操作的細(xì)化,則這些基本分類符是該操作的參數(shù)類型(包含屬性類型)和擁有該操作的分類符所包含的其他分類符。在一個(gè)協(xié)作中的關(guān)聯(lián)角色在一個(gè)協(xié)作中,關(guān)聯(lián)角色定義了在這一語境中分類符之間需要的關(guān)聯(lián)。每一關(guān)聯(lián)角色表示了在該協(xié)作中的一個(gè)關(guān)聯(lián)的用法,并定義了分類符角色之間表示關(guān)聯(lián)的分類符。該關(guān)聯(lián)稱為那個(gè)關(guān)聯(lián)角色的基關(guān)聯(lián)。當(dāng)該關(guān)聯(lián)角色規(guī)約了一個(gè)關(guān)聯(lián)的特定用法時(shí),由該關(guān)聯(lián)端所表達(dá)的所有約束,對(duì)于完成所指定的用法而言不是必需的。在該協(xié)作中,該關(guān)聯(lián)端的多重性可以減少。關(guān)于協(xié)作中的關(guān)聯(lián)在一個(gè)特定的協(xié)作中,一個(gè)關(guān)聯(lián)可以被旋轉(zhuǎn)方向,但不是所有的關(guān)聯(lián)都允許旋轉(zhuǎn)。一個(gè)關(guān)聯(lián)端的可變性和定序,在關(guān)聯(lián)端角色中可以增強(qiáng),即在一個(gè)特定的用法中,該端點(diǎn)可以以更嚴(yán)格的方式(與該關(guān)聯(lián)端的定義相比)予以使用。如果一個(gè)關(guān)聯(lián)有一組限定符,則其中一些可以用于一個(gè)特定的協(xié)作。因此,一個(gè)關(guān)聯(lián)端角色可以包括那些限定符的子集,其中這些限定符是由該基類的所對(duì)應(yīng)的關(guān)聯(lián)端定義的。協(xié)作實(shí)例中的實(shí)例與角色在協(xié)作實(shí)例中,一個(gè)實(shí)例扮演一個(gè)特定的角色。在一個(gè)協(xié)作實(shí)例中,扮演一個(gè)特定角色的多個(gè)實(shí)例,由該分類符的多重性予以說明。一個(gè)實(shí)例在一個(gè)協(xié)作的不同實(shí)例中,可以扮演不同的角色。事實(shí)上,該實(shí)例可以在一個(gè)協(xié)作的同樣實(shí)例中,可以扮演多個(gè)角色。關(guān)于“不同的實(shí)例扮演同一角色”不同的實(shí)例可以扮演同一角色,但它們?cè)诓煌膮f(xié)作實(shí)例中;由于這些實(shí)例扮演同樣角色,因此它們都必須與說明該角色的分類符角色一致。它們經(jīng)常是該分類符角色的基分類符的實(shí)例,或是它的后裔的實(shí)例。由于它們必須具有對(duì)應(yīng)與該分類符角色所說明的那些屬性的值,并且必須參與在對(duì)應(yīng)連接到該分類符角色那些關(guān)聯(lián)角色的鏈,因此它們可以是滿足以上要求任意分類符的實(shí)例。當(dāng)然,這些實(shí)例有比該分類符角色更多的屬性值。例如,它們可以源于該基類子類的一個(gè)分類符。另外,如此的實(shí)例還可以有比它源于的多重分類符更多的屬性值。協(xié)作之間的關(guān)系協(xié)作對(duì)其它協(xié)作可以有一般關(guān)系,這意味著一個(gè)協(xié)作指出了另一協(xié)作任務(wù)的特殊任務(wù)。即子協(xié)作不僅包含父協(xié)作任務(wù)的所有角色,而且還可以包含新的角色;父協(xié)作任務(wù)的角色也可能以新的特性予以說明。對(duì)此,有二種辦法將一個(gè)協(xié)作特殊化:對(duì)現(xiàn)存的角色增加新的特性或增加新的角色。關(guān)于角色的交互與一個(gè)協(xié)作的角色相一致的這些實(shí)例,應(yīng)相互交互,以實(shí)現(xiàn)要具體化的那個(gè)分類符的行為,這個(gè)可用一組交互說明之。因此,該協(xié)作說明了一個(gè)語境,在該語境下,這些交互被執(zhí)行。如果該協(xié)作表示一個(gè)操作,則該語境包括了像參數(shù)、屬性、包含在具有該操作的分類符中的一些分類符。因此該交互說明了這些參數(shù)、屬性值、實(shí)例等將如何協(xié)作,實(shí)現(xiàn)該操作所說明的行為。如果一個(gè)協(xié)作是另一協(xié)作的特殊(specialization)協(xié)作,則由父協(xié)作說明的通訊也被包含在子協(xié)作中,子協(xié)作包括了父協(xié)作的所有交互。然而,可以在這些通訊中插入新的消息,即子協(xié)作可以具有新的角色。當(dāng)然,子協(xié)作還可以包括父協(xié)作中沒有的新的交互關(guān)于協(xié)作的組合目的兩個(gè)或多個(gè)協(xié)作可以組合在一起,以精化一個(gè)高層協(xié)作。例如,當(dāng)精化一個(gè)高層usecase時(shí),可以將規(guī)約每一個(gè)usecase的協(xié)作組合在一起,成為一個(gè)協(xié)作,它將是該高層協(xié)作的一個(gè)簡(jiǎn)單精化。如何組合只要將一個(gè)實(shí)例參與這兩個(gè)協(xié)作實(shí)例,就可以實(shí)現(xiàn)這一組合協(xié)作。這一實(shí)例必須與這兩個(gè)協(xié)作中的一個(gè)分類符角色一致。在組合協(xié)作中,這兩個(gè)分類符角色合并為一個(gè)新的分類符角色,它將包含兩個(gè)源分類符角色的所有特性。新的分類符角色將能滿足原來二個(gè)協(xié)作的需求,如此的實(shí)例將與新的分類符角色一致。關(guān)于“協(xié)作”的小結(jié)(1/2)一個(gè)協(xié)作定義了如何以特定的方式使用一些分類符和關(guān)聯(lián),來細(xì)化一個(gè)操作或一個(gè)分類符,如一個(gè)usecase。協(xié)作定義了由一組實(shí)例或鏈所扮演的角色,同時(shí)定義了一組交互,這組交互定義了扮演角色的那組實(shí)例之間的通訊。協(xié)作給出了分類符模型的一個(gè)視圖(限制,切片,具體化),該視圖描述了扮演角色的那些實(shí)例所需要的關(guān)系,也描述了所需要的包含在這些分類符中的特性。關(guān)于“協(xié)作”的小結(jié)(2/2)不同的協(xié)作可以描述同一組分類符各種不同的具體化方案。因此,一個(gè)分類符可以作為多個(gè)不同分類符角色。協(xié)作可以引用多個(gè)模型元素,通常是分類符和一般關(guān)系,以便表達(dá)結(jié)構(gòu)上的需求,例如實(shí)現(xiàn)一個(gè)協(xié)作的那些分類符之間可能就需要一般特殊關(guān)系。協(xié)作是一個(gè)可一般化元素,這意味著一個(gè)行為可以說明一個(gè)任務(wù),而這個(gè)任務(wù)是另一個(gè)協(xié)作的子任務(wù)。交互(Interaction)交互規(guī)約了執(zhí)行一個(gè)特定任務(wù)的實(shí)例之間的一個(gè)通訊。每一個(gè)交互是在一個(gè)協(xié)作中定義的,即該協(xié)作定義了一個(gè)語境,在這一語境中,發(fā)生這一交互。執(zhí)行由該交互說明的通訊之實(shí)例,與該交互的分類符角色相一致。一個(gè)交互說明發(fā)送一組激發(fā)。基于偏序關(guān)系,這些激發(fā)執(zhí)行它們所屬的線程。在每一個(gè)線程中,激發(fā)以一定次序被發(fā)送,而不同線程的激發(fā)可以并發(fā)的予以發(fā)送或以任意的次序被發(fā)送。消息(1/2)一個(gè)消息是一個(gè)通訊的規(guī)格說明,即消息定義了交互中實(shí)例之間的特定通訊。一個(gè)通訊可以是發(fā)出一個(gè)信號(hào),可以是引用一個(gè)操作,可以是創(chuàng)建或刪除一個(gè)實(shí)例等。一個(gè)消息指出發(fā)送者實(shí)例和接受者實(shí)例,也指出哪一個(gè)關(guān)聯(lián)規(guī)約了該通訊鏈。即可以用于說明發(fā)送者和接受者的角色、消息分派活動(dòng)、通訊鏈所扮演的角色。消息關(guān)聯(lián)一個(gè)動(dòng)作,該動(dòng)作給出一個(gè)陳述:當(dāng)執(zhí)行時(shí),導(dǎo)致該消息說明的通訊發(fā)生。如果該動(dòng)作是一個(gè)調(diào)用或是raise動(dòng)作,則該動(dòng)作指出該通訊中被發(fā)送的信號(hào)或被調(diào)用的操作。該動(dòng)作還包含變量表達(dá)式,當(dāng)動(dòng)作執(zhí)行時(shí),該表達(dá)式將確定在該通訊中被轉(zhuǎn)送的變量。另外,該通訊的任意條件和重復(fù)也由該動(dòng)作指出。消息(2/2)除了調(diào)用或raise動(dòng)作外,還有與一個(gè)消息相關(guān)的動(dòng)作如生成動(dòng)作和刪除動(dòng)作。在這些情況下,通訊將不會(huì)引發(fā)一個(gè)信號(hào)或調(diào)用一個(gè)操作,但導(dǎo)致創(chuàng)建一個(gè)新的實(shí)例或刪除已有的實(shí)例。在創(chuàng)建一個(gè)實(shí)例的情況里,由消息說明的接受者是被創(chuàng)建的實(shí)例所扮演的角色,當(dāng)該動(dòng)作被執(zhí)行時(shí)。一個(gè)動(dòng)作執(zhí)行時(shí)被發(fā)送的激發(fā),與一個(gè)消息是一致的,這意味著該激發(fā)的發(fā)送者和接受者實(shí)例,與由該消息說明的發(fā)送者和接受者的角色是一致的。另外,分派該激發(fā)的動(dòng)作與貼付于該消息的動(dòng)作是一樣的。如果與該消息相關(guān)的動(dòng)作是一個(gè)創(chuàng)建動(dòng)作或刪除動(dòng)作,則該消息的接受者角色說明了由該實(shí)例所扮演的角色。交互說明了每一個(gè)消息的活化者(activator)和后裔?;罨弋a(chǎn)生一個(gè)過程(procedure),該過程依次產(chǎn)生當(dāng)前消息。除了交互的初始消息外,其它消息均有一個(gè)活化者。后裔是一組消息,這組消息必須在當(dāng)前消息可以執(zhí)行之前予以完成。當(dāng)然,在一個(gè)過程中的第一個(gè)消息沒有后裔。如果一個(gè)消息有多個(gè)后裔,則表示二個(gè)控制線程的結(jié)合(joining)。如果一個(gè)消息有多個(gè)前啟者,它指出一個(gè)控制fork,形成多重線程。后裔關(guān)系對(duì)一個(gè)過程中的消息強(qiáng)加了一個(gè)偏序,而活化者關(guān)系對(duì)操作的激活強(qiáng)加了一棵樹。根據(jù)由后裔和活化者的關(guān)系對(duì)該順序約束,消息可以并發(fā)地執(zhí)行??梢姡换グ艘唤M消息,這些消息說明了扮演分類符角色的那些實(shí)例之間的通訊。分類符角色
(ClassifierRole)
分類符角色是一個(gè)特定的角色,它參與了一個(gè)協(xié)作。分類符角色是分類符的一個(gè)受限視圖,該受限視圖由該協(xié)作的需要所定義。在元模型中,分類符角色說明了一個(gè)參與,即與實(shí)例一致的一個(gè)角色。分類符角色定義了一組特性,這組特性是該角色對(duì)應(yīng)的那個(gè)分類符特性的子集,也是包含在那些分類符中所有模型元素特性的子集。分類符角色可以通過關(guān)聯(lián)端,連接一組關(guān)聯(lián)角色。作為分類符的分類符角色,可以在這類分類符角色之間定義一般關(guān)系,子角色可以繼承父角色的屬性和內(nèi)容。關(guān)聯(lián)角色
(AssociationRole)
關(guān)聯(lián)角色是一個(gè)關(guān)聯(lián)的特定用法,這一用法是一個(gè)協(xié)作所需要的。在元模型中,關(guān)聯(lián)角色說明了用在協(xié)作中的一個(gè)關(guān)聯(lián)的受限視圖。一個(gè)關(guān)聯(lián)角色是一組關(guān)聯(lián)端角色(AssociationEndRole)組合??梢?,關(guān)聯(lián)端角色是關(guān)聯(lián)角色的一部分,它把一個(gè)關(guān)聯(lián)角色連接到一個(gè)分類符角色。關(guān)聯(lián)端角色說明了用于協(xié)作中一個(gè)關(guān)聯(lián)的端點(diǎn)。關(guān)聯(lián)端角色對(duì)應(yīng)于基關(guān)聯(lián)的那些關(guān)聯(lián)端。協(xié)作圖
(collaborationdiagram)
Anydiagramthatgraphicallydepictsclasses,subsystems,contracts,andrelationshipbetweenclassesandsubsystems.[Lorenz]在一個(gè)協(xié)作圖中,對(duì)象顯示為圖標(biāo)(ICON);如同順序圖,箭頭線指示了在給定的USECASE中的消息發(fā)送,并對(duì)消息順序進(jìn)行編號(hào)。利用適當(dāng)?shù)摹翱臻g”設(shè)計(jì),允許表達(dá)其他信息。例如,可以給出對(duì)象是怎樣鏈接的,該協(xié)作所覆蓋的包等??梢允褂貌煌木幪?hào)模式,例如,使用如同1.1這樣的標(biāo)號(hào),可以清晰地表明:一個(gè)操作調(diào)用哪個(gè)操作??梢蕴罴优c順序圖一樣的控制
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國(guó)農(nóng)業(yè)GIS成圖與處理軟件系統(tǒng)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)全景照相機(jī)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)二層牛皮反絨革數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)不銹鋼錘片式粉碎機(jī)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)三相鼠籠式異步電動(dòng)機(jī)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)PCB版插針式電源變壓器數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)LDPE薄膜袋數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 吊帶企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略研究報(bào)告
- 醫(yī)學(xué)級(jí)美白面霜套裝企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 基因檢測(cè)大數(shù)據(jù)分析行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 初中九年級(jí)美術(shù)期末藝術(shù)測(cè)評(píng)指標(biāo)試卷及答案
- 藥品經(jīng)營(yíng)質(zhì)量管理制度樣本
- 有機(jī)農(nóng)業(yè)概述課件
- 學(xué)校托幼機(jī)構(gòu)腸道傳染病消毒隔離及防控要求
- 生產(chǎn)加工型小微企業(yè)安全管理考試(含答案)
- 沙子檢測(cè)報(bào)告
- 2023-2024學(xué)年部編版必修下冊(cè) 1-1 《子路、曾皙、冉有、公西華侍坐》教案2
- 無線電測(cè)向幻燈教材課件
- 第1課《我們的閑暇時(shí)光》課件
- 商務(wù)ktv項(xiàng)目計(jì)劃書
- 腦血管造影術(shù)護(hù)理查房課件
評(píng)論
0/150
提交評(píng)論