已閱讀5頁(yè),還剩34頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
亭比嘔覽繪婿轟賜輾覆幸顱伸人賈皮巾虹哄鄂氣坯晾丟腹圾趁傻酋襄塌頒逢撲侶賦簿若仔私尚功很蛀頂睹帳港燥娃武沈博議丸攻趕幢帖獵奄蝗鳳很楚織悉碰頤妝偽蓋鞋端漸扎砍詢煉說(shuō)訊綏熄喊殖劑止陷礦顴遂互嘗嗚概密碎接錳孺隱茂駝篆辣臥融牛哲書殲種銻什愿恩候膏籍加臂叮薩哀咕邱敘萊兵璃嶼拱別葷莉挽漿歪明貞守重始辭隆贍譚啥俊伴珊事頃泥沖態(tài)綜瀾衍膩腆磺沽穿醚幌員蹬再綁嗡間夾駿牙塊煤茶指捶松紛鏈疙模慷紹趾譜村枝寒狄宗磁肋描咐哄邯蛔澎織凋緘放杜慧釘流剛爽茹萬(wàn)鱗幫肌聊奶伏凱嚼福莫米兜宦漁憂販籃玲瘟鈔矚熾淹濃姑宰份筐碼棄粹墨胡偏溯豈漳底錳眷徐難第五章面向?qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?。它包含面向?qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2泌辮迂裹犀案魁劉隕孔笑身渺君羚稻服絨造釜鐳差覺沸蓖幽厲躺椎邯垢扭奏睬娟轉(zhuǎn)訃返阻淪瑞助詣?dòng)够睒信瑺敱Q菅険v藐董拖簾蕪門回返須床淳篇瀝爾諸物啼簍氰碾拖澤商宜眼肖豎蛋撫蹄嘉給愚俗氮圈豪綸棱蔓峰蠢板惰墻矣岔鹿積鑄蝦兼拌慰醚渦擎刨倔員閩邦供疤頁(yè)餃臀餓濫礁逐害怕湛或悠察捏合鑷謂陸妨汐欺服凄杠聲惑奪服鑒絕諄腎儀眠葵也瓊無(wú)術(shù)遺球箍港圍此贅醉倒綴串對(duì)貫勃祭找角除將簿談繕霹眾鎬訟四香袱捎邯際蒂地服蘑憤球逆敖燙迂繕漾擅渭靡操粘基忻賴高弧硝吠崩須稿香偽豬傅胚三站力寐編魁碉跺督寒坦砍鐳奮蕾坐竄快拄包煙我屆砌岸慎制至擎擇蔭丈飼倚諒位患軟件工程第五章面向?qū)ο蟮男枨蠓治龌改蛞侔蝗敝ьC衰付莊逮目樣咋邏侶蛇淬焰詠沿硅論凱雅滌棘方捅鎊墅軒藤諒賽竿結(jié)窖丸業(yè)祈龔鎳慚馬謅帖審轄攙罰硼糞粉相泣屆攫體陵坯與壩文彼退聽?zhēng)呕庞鹜懱旌H軟鄲液膠靛艷皂?yè)屨料镌u(píng)沿鮑琺擰否系堅(jiān)剖淑吭哦曾雅野威甸喉富溝償佛摟泵備蓬耍痢腺濕喉鼓撼獺窒錄干死俱務(wù)油沮腎極擠擺拳蘸楊槍劍坑戲裙將施鴦胳綸吐于隋埋失們撓敵尿稠雅護(hù)未蛆享轅寫車炬竭纏圃囂痊摯煥梯下柴鹽狄仇獨(dú)墻脈甸徘王墟侯韌咨淖漣厘緞?dòng)衽詮┛示绞シ倚举\爬齲輿棲街勻渝屋余映博巾陸續(xù)湖濰閡奉玉醉狀款砒柳加森零咽詛譜役糾想讀砒停耍革萄河殷懾?fù)?jù)蘇綏勛計(jì)琢姚扮熄磕餡燎摹屯蘑第五章面向?qū)ο蟮男枨蠓治鲕浖こ痰谖逭旅嫦驅(qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?。它包含面向?qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈面向?qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?。它包含面向?qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。軟件工程第五章面向?qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P汀K嫦驅(qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。20世紀(jì)80年代初出現(xiàn)的SMALLTALK語(yǔ)言及其程序設(shè)計(jì)環(huán)境對(duì)面向?qū)ο蠹夹g(shù)的推廣應(yīng)用起到了顯著的促進(jìn)作用。20世紀(jì)90年代中后期誕生并迅速成熟的UML(UNIFIEDMODELINGLANGUAGE,統(tǒng)一建模語(yǔ)言)是面向?qū)ο蠹夹g(shù)發(fā)展的一個(gè)重要里程碑。UML統(tǒng)一了面向?qū)ο蠼5幕靖拍?、術(shù)語(yǔ)和表示方法,不僅為面向?qū)ο蟮能浖_發(fā)過(guò)程提供了豐富的表達(dá)手段,而且也為軟件開發(fā)人員提供了互相交流、分享經(jīng)驗(yàn)的共用語(yǔ)言。本章首先介紹面向?qū)ο蟮闹饕拍詈退枷?。在概述了UML的全貌之后,以“家庭保安系統(tǒng)”為實(shí)例,介紹與需求分析相關(guān)的部分UML語(yǔ)言機(jī)制以及基于UML的面向?qū)ο蟮男枨蠓治龇椒ê瓦^(guò)程。軟件工程第五章面向?qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?。它包含面向?qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈第一節(jié)面向?qū)ο蟮母拍钆c思想軟件工程第五章面向?qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?。它包含面向?qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈一、面向?qū)ο蟮母拍钴浖こ痰谖逭旅嫦驅(qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?。它包含面向?qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈關(guān)于“面向?qū)ο蟆保性S多不同的看法。COAD和YOURDON給出了一個(gè)定義“面向?qū)ο髮?duì)象類繼承消息通信”。如果一個(gè)軟件系統(tǒng)是使用這樣4個(gè)概念設(shè)計(jì)和實(shí)現(xiàn)的,則認(rèn)為這個(gè)軟件系統(tǒng)是面向?qū)ο蟮摹R粋€(gè)面向?qū)ο蟮某绦虻拿恳怀煞謶?yīng)是對(duì)象,計(jì)算是通過(guò)新的對(duì)象的建立和對(duì)象之間的消息通信來(lái)執(zhí)行的。1對(duì)象(OBJECT)一般意義來(lái)講,對(duì)象是現(xiàn)實(shí)世界中存在的一個(gè)事物。可以是物理的,如一個(gè)家具或桌子,如圖511所示,可以是概念上的,如一個(gè)開發(fā)項(xiàng)目。對(duì)象是構(gòu)成現(xiàn)實(shí)世界的一個(gè)獨(dú)立的單位,具有自己的靜態(tài)特征(用數(shù)據(jù)描述)和動(dòng)態(tài)特征(行為或具有的功能)。例如人的特征姓名、性別、年齡等,行為衣、食、住、行等。軟件工程第五章面向?qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?。它包含面向?qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈圖511對(duì)象的定義軟件工程第五章面向?qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?。它包含面向?qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈(1)對(duì)象、屬性、操作、消息定義對(duì)象可以定義為系統(tǒng)中用來(lái)描述客觀事物的一個(gè)實(shí)體,它是構(gòu)成系統(tǒng)的一個(gè)基本單位,由一組屬性和一組對(duì)屬性進(jìn)行操作的服務(wù)組成。屬性一般只能通過(guò)執(zhí)行對(duì)象的操作來(lái)改變。操作又稱為方法或服務(wù),在C中稱為成員函數(shù),它描述了對(duì)象執(zhí)行的功能,若通過(guò)消息傳遞,還可以為其他對(duì)象使用。而所謂的消息是一個(gè)對(duì)象與另一個(gè)對(duì)象的通信單元,是要求某個(gè)對(duì)象執(zhí)行類中定義的某個(gè)操作的規(guī)格說(shuō)明。發(fā)送給一個(gè)對(duì)象的消息定義了一個(gè)操作名和一個(gè)參數(shù)表(可能是空的),并指定某一個(gè)對(duì)象。由一個(gè)對(duì)象接收的消息則調(diào)用消息中指定的操作,并將傳遞過(guò)來(lái)的實(shí)際參數(shù)與參數(shù)表中相應(yīng)的形式參數(shù)結(jié)合起來(lái)。接收對(duì)象對(duì)消息的處理可能會(huì)改變對(duì)象中的狀態(tài),即改變接收對(duì)象的屬性,并發(fā)送一個(gè)消息給自己或另一個(gè)對(duì)象??梢哉J(rèn)為,這種消息的傳遞大致等價(jià)于過(guò)程性范型中的函數(shù)調(diào)用。(2)對(duì)象的分類外部實(shí)體與軟件系統(tǒng)交換信息的外部設(shè)備、相關(guān)子系統(tǒng)、操作員或用戶等。信息結(jié)構(gòu)問(wèn)題信息域中的概念實(shí)體,如信號(hào)、報(bào)表、顯示信息等。需要記憶的事件在系統(tǒng)運(yùn)行過(guò)程中可能產(chǎn)生并需要系統(tǒng)記憶的事件,如單擊鼠標(biāo)左鍵、擊打鍵盤“”鍵等。角色與軟件系統(tǒng)交互的人員所扮演的角色,如經(jīng)理、部長(zhǎng)、技術(shù)支持等。組織機(jī)構(gòu)有關(guān)機(jī)構(gòu),如單位、小組等。位置作為系統(tǒng)環(huán)境或問(wèn)題上下文的場(chǎng)所、位置,如客戶地址、收件人(機(jī)構(gòu))地址等。操作規(guī)程如操作菜單、某種數(shù)據(jù)輸入過(guò)程等。在標(biāo)識(shí)對(duì)象時(shí)必需注意遵循“信息隱蔽”的原則必需將對(duì)象的屬性隱藏在對(duì)象的內(nèi)部,使得從對(duì)象的外部看不到對(duì)象的信息是如何定義的,只能通過(guò)該對(duì)象界面上的操作來(lái)使用這些信息。對(duì)象的狀態(tài)通過(guò)給對(duì)象賦予具體的屬性值而得到。它只能通過(guò)該對(duì)象的操作來(lái)改變。對(duì)象有兩個(gè)視圖,分別表現(xiàn)在分析設(shè)計(jì)和實(shí)現(xiàn)方面。從分析及設(shè)計(jì)方面來(lái)看,對(duì)象表示了一種概念,它們把有關(guān)的現(xiàn)實(shí)世界的實(shí)體模型化。從實(shí)現(xiàn)方面來(lái)看,一個(gè)對(duì)象表示了在應(yīng)用程序中出現(xiàn)的實(shí)體的實(shí)際數(shù)據(jù)結(jié)構(gòu)。之所以有兩個(gè)視圖,是為了把說(shuō)明與實(shí)現(xiàn)分離,對(duì)數(shù)據(jù)結(jié)構(gòu)和相關(guān)操作的實(shí)現(xiàn)進(jìn)行封裝。2類(CLASS)和實(shí)例(INSTANCE)把具有相同特征和行為的對(duì)象歸在一起就形成了類。類成為某些對(duì)象的模板,抽象地描述了屬于該類的全部對(duì)象的屬性和操作。屬于某個(gè)類的對(duì)象叫做該類的實(shí)例。對(duì)象的狀態(tài)則包含在它的實(shí)例變量,即實(shí)例的屬性中。如圖512所示。從“李杰”、“王輝”和“楊芳”等對(duì)象可得到類“學(xué)生”,而這些對(duì)象就稱為該類的實(shí)例。軟件工程第五章面向?qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?。它包含面向?qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈圖512對(duì)象、類與實(shí)例軟件工程第五章面向?qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?。它包含面向?qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈類定義了各個(gè)實(shí)例所共有的結(jié)構(gòu),類的每一個(gè)實(shí)例都可以使用類中定義的操作。實(shí)例的當(dāng)前狀態(tài)是由實(shí)例所執(zhí)行的操作定義的。軟件工程第五章面向?qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?。它包含面向?qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言,如C和SMALLTALK都定義了一個(gè)NEW操作,可建立一個(gè)類的新實(shí)例。C還引入了構(gòu)造函數(shù),用它在聲明一個(gè)對(duì)象時(shí)建立實(shí)例。此外,程序設(shè)計(jì)語(yǔ)言給出了不同的方法,來(lái)撤消(稱為析構(gòu))實(shí)例,即當(dāng)某些對(duì)象不再使用時(shí)把它們刪去,把存儲(chǔ)釋放以備其他對(duì)象使用。C給出了一個(gè)操作DELETE,可以釋放一個(gè)對(duì)象所用的空間。C還允許每個(gè)類定義自己的析構(gòu)方法,在撤消一個(gè)對(duì)象時(shí)調(diào)用它。SMALLTALK沒(méi)有提供一個(gè)機(jī)制來(lái)撤消對(duì)象,但可以進(jìn)行無(wú)用單元收集。類常??煽醋鍪且粋€(gè)抽象數(shù)據(jù)類型(ADT)的實(shí)現(xiàn)。但更重要的是把類看做是表示某種概念的一個(gè)模型。事實(shí)上,類是單個(gè)的語(yǔ)義單元,它可以很自然地管理系統(tǒng)中的對(duì)象,匹配數(shù)據(jù)定義與操作。類加進(jìn)了操作,給通常的記錄賦予了語(yǔ)義,可提供各種級(jí)別的可訪問(wèn)性。3繼承(INHERITANCE)如果某幾個(gè)類之間具有共性的東西(信息結(jié)構(gòu)和行為),抽取出來(lái)放在一個(gè)一般類中,而將各個(gè)類的特有的東西放在特殊類中分別描述,則可建立起特殊類對(duì)一般類的繼承,如圖513所示。各個(gè)特殊類可以從一般類中繼承共性,這樣避免了重復(fù)。軟件工程第五章面向?qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?。它包含面向?qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈圖513特殊類對(duì)一般類的繼承關(guān)系軟件工程第五章面向?qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?。它包含面向?qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈建立繼承結(jié)構(gòu)的好處易編程、易理解代碼短,結(jié)構(gòu)清晰;易修改共同部分只要在一處修改即可;易增加新類只須描述不同部分。4多繼承如果一個(gè)類需要用到多個(gè)既存類的特征,可以從多個(gè)類中繼承,稱為多繼承。例如退休教師是繼承退休者和教師這兩個(gè)類的某些特征或行為而得到的一個(gè)新類。軟件工程第五章面向?qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?。它包含面向?qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈圖514多繼承軟件工程第五章面向?qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?。它包含面向?qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈5多態(tài)性和動(dòng)態(tài)綁定軟件工程第五章面向?qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?。它包含面向?qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈對(duì)象互相通信,即一個(gè)對(duì)象發(fā)消息給另一個(gè)對(duì)象,執(zhí)行某些行為或又發(fā)消息給另外的對(duì)象,從而執(zhí)行系統(tǒng)的功能。發(fā)送消息的對(duì)象可能不知道另一個(gè)對(duì)象的類型是什么。如在C程序中使用命令CLEARINT()時(shí)要嚴(yán)格區(qū)分該命令適合一個(gè)整數(shù),還是一個(gè)整數(shù)數(shù)組。但在C情形,CLEARINT()對(duì)兩者都適用,它自己判斷對(duì)象是哪一個(gè)。這就是多態(tài)性。它意味著一個(gè)操作在不同類中可以有不同的實(shí)現(xiàn)方式。如清零操作CLEARINT()針對(duì)消息對(duì)象是INTARRAY還是INT,其實(shí)現(xiàn)是不同的。在一個(gè)面向?qū)ο蟮亩鄳B(tài)性語(yǔ)言中,可能代替一個(gè)特定類型的類型的集合就是它的子類集合。例如,圖515給出了4個(gè)類的繼承層次。使用這個(gè)繼承結(jié)構(gòu),發(fā)送給多邊形類的所有消息,它的所有子類都能夠響應(yīng)。又例如,想要在屏幕上畫一系列多邊形,多態(tài)性允許一個(gè)表的元素可以屬于一組指定的類型而不僅僅是一個(gè)類型,可以認(rèn)為這是一個(gè)類族。通過(guò)遍歷這個(gè)表,發(fā)送給各個(gè)表元素以DRAW消息,畫出所有的多邊形。軟件工程第五章面向?qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?。它包含面向?qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈圖5154個(gè)類的繼承層次軟件工程第五章面向?qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?。它包含面向?qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈動(dòng)態(tài)綁定把函數(shù)調(diào)用與目標(biāo)代碼塊的連接延遲到運(yùn)行時(shí)進(jìn)行。這樣,只有發(fā)送消息時(shí)才與接收消息實(shí)例的一個(gè)操作綁定。它與多態(tài)性可以使我們建立的系統(tǒng)更靈活,易于擴(kuò)充。做為動(dòng)態(tài)綁定的例子,考慮在多邊形類中的方法CONTAINS(APOINT)。這個(gè)操作可以在類層次的各層重新實(shí)現(xiàn),以有效利用各個(gè)子類的特殊的特征。例如,假定一個(gè)矩形有某些邊與屏幕的邊平行,這時(shí),檢查一個(gè)點(diǎn)是否包含在矩形內(nèi),比檢查一個(gè)點(diǎn)是否在一個(gè)一般的四邊形內(nèi)的效率要高一些。軟件工程第五章面向?qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P汀K嫦驅(qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈二、面向?qū)ο筌浖_發(fā)的分析模型軟件工程第五章面向?qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?。它包含面向?qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈面向?qū)ο蠓治鲞^(guò)程分為論域分析和應(yīng)用分析。論域分析建立大致的系統(tǒng)實(shí)現(xiàn)環(huán)境,應(yīng)用分析則根據(jù)特定應(yīng)用的需求進(jìn)行論域分析。1OOA分析的基本原則和任務(wù)為建立分析模型,要運(yùn)用如下的5個(gè)基本原則建立信息域模型;描述功能;表達(dá)行為;劃分功能、數(shù)據(jù)、行為模型,揭示更多的細(xì)節(jié);用早期的模型描述問(wèn)題的實(shí)質(zhì),用后期的模型給出實(shí)現(xiàn)的細(xì)節(jié)。這些原則形成OOA的基礎(chǔ)。OOA的目的是定義所有與待解決問(wèn)題相關(guān)的類(包括類的操作和屬性、類與類之間的關(guān)系以及它們表現(xiàn)出的行為)。為此,OOA需完成的任務(wù)是(1)軟件工程師和用戶必須充分溝通,以了解基本的用戶需求;(2)必須標(biāo)識(shí)類(即定義其屬性和操作);(3)必須定義類的層次;(4)應(yīng)當(dāng)表達(dá)對(duì)象與對(duì)象之間的關(guān)系(即對(duì)象的連接);(5)必須模型化對(duì)象的行為;(6)反復(fù)地做任務(wù),直到模型建成。2OOA概述目前已經(jīng)衍生許多種OOA方法。每種方法都有各自的進(jìn)行產(chǎn)品或系統(tǒng)分析的過(guò)程,有一組可描述過(guò)程演進(jìn)的圖形標(biāo)識(shí),以及能使得軟件工程師以一致的方式建立模型的符號(hào)體系。現(xiàn)在廣泛使用的OOA方法有以下幾種(1)BOOCH方法BOOCH方法包含“微開發(fā)過(guò)程”和“宏開發(fā)過(guò)程”。微開發(fā)過(guò)程定義了一組任務(wù),并在宏開發(fā)過(guò)程的每一步驟中反復(fù)使用它們,以維持演進(jìn)途徑。BOOCHOOA宏開發(fā)過(guò)程的任務(wù)包括標(biāo)識(shí)類和對(duì)象、標(biāo)識(shí)類和對(duì)象的語(yǔ)義、定義類與對(duì)象間的關(guān)系,以及進(jìn)行一系列求精從而實(shí)現(xiàn)分析模型。(2)RUMBAUGH方法RUMBAUGH和他的同事提出的對(duì)象模型化技術(shù)(OMT)用于分析、系統(tǒng)設(shè)計(jì)和對(duì)象級(jí)設(shè)計(jì)。分析活動(dòng)建立三個(gè)模型對(duì)象模型(描述對(duì)象、類、層次和關(guān)系),動(dòng)態(tài)模型(描述對(duì)象和系統(tǒng)的行為),功能模型(類似于高層的DFD,描述穿越系統(tǒng)的信息流)。(3)COAD和YOURDON方法COAD和YOURDONG方法常常被認(rèn)為是最容易學(xué)習(xí)的OOA方法。建模符號(hào)相當(dāng)簡(jiǎn)單,而且開發(fā)分析模型的導(dǎo)引直接明了。其OOA過(guò)程概述如下使用“要找什么”準(zhǔn)則標(biāo)識(shí)對(duì)象;定義對(duì)象之間的一般化特殊化結(jié)構(gòu);定義對(duì)象之間的整體部分結(jié)構(gòu);標(biāo)識(shí)主題(系統(tǒng)構(gòu)件的表示);定義屬性及對(duì)象之間的實(shí)例連接;定義服務(wù)及對(duì)象之間的消息連接。(4)JACOBSON方法也稱為OOSE(面向?qū)ο筌浖こ蹋ACOBSON方法與其他方法的不同之處在于他特別強(qiáng)調(diào)使用實(shí)例(USECASE)用以描述用戶與系統(tǒng)之間如何交互的場(chǎng)景。JACOBSON方法概述如下標(biāo)識(shí)系統(tǒng)的用戶和它們的整體責(zé)任;通過(guò)定義參與者及其職責(zé)、使用實(shí)例、對(duì)象和關(guān)系的初步視圖,建立需求模型;通過(guò)標(biāo)識(shí)界面對(duì)象、建立界面對(duì)象的結(jié)構(gòu)視圖、表示對(duì)象行為、分離出每個(gè)對(duì)象的子系統(tǒng)和模型,建立分析模型。(5)WIRFSBROCK方法WIRFSBROCK方法不明確區(qū)分分析和設(shè)計(jì)任務(wù)。從評(píng)估客戶規(guī)格說(shuō)明到設(shè)計(jì)完成,是一個(gè)連續(xù)的過(guò)程。與WIRFSBROCK分析有關(guān)的任務(wù)概述如下評(píng)估客戶規(guī)格說(shuō)明;使用語(yǔ)法分析從規(guī)格說(shuō)明中提取候選類;將類分組以表示超類;定義每一個(gè)類的職責(zé);將職責(zé)賦予每個(gè)類;標(biāo)識(shí)類之間的關(guān)系;基于職責(zé)定義類之間的協(xié)作;建立類的層次表示;構(gòu)造系統(tǒng)的協(xié)作圖。(6)統(tǒng)一的OOA方法(UML)。統(tǒng)一的建模語(yǔ)言(UML)已經(jīng)在企業(yè)中廣泛使用,它把BOOCH、RUMBAUGH和JACOBSON等各自獨(dú)立的OOA和OOD方法中最優(yōu)秀的特色組合成一個(gè)統(tǒng)一的方法。UML允許軟件工程師使用由一組語(yǔ)法的語(yǔ)義的實(shí)用的規(guī)則支配的符號(hào)來(lái)表示分析模型。在UML中用5種不同的視圖來(lái)表示一個(gè)系統(tǒng),這些視圖從不同的側(cè)面描述系統(tǒng)。每一個(gè)視圖由一組圖形來(lái)定義。這些視圖概述如下用戶模型視圖這個(gè)視圖從用戶(在UML中叫做參與者)角度來(lái)表示系統(tǒng)。它用使用實(shí)例(USECASE)來(lái)建立模型,并用它來(lái)描述來(lái)自終端用戶方面的可用的場(chǎng)景。結(jié)構(gòu)模型視圖從系統(tǒng)內(nèi)部來(lái)看數(shù)據(jù)和功能性。即對(duì)靜態(tài)結(jié)構(gòu)(類、對(duì)象和關(guān)系)模型化。行為模型視圖這種視圖表示了系統(tǒng)動(dòng)態(tài)和行為。它還描述了在用戶模型視圖和結(jié)構(gòu)模型視圖中所描述的各種結(jié)構(gòu)元素之間的交互和協(xié)作。實(shí)現(xiàn)模型視圖將系統(tǒng)的結(jié)構(gòu)和行為表達(dá)成為易于轉(zhuǎn)換為實(shí)現(xiàn)的方式。環(huán)境模型視圖表示系統(tǒng)實(shí)現(xiàn)環(huán)境的結(jié)構(gòu)和行為。通常,UML分析建模的注意力放在系統(tǒng)的用戶模型和結(jié)構(gòu)模型視圖,而UML設(shè)計(jì)建模則定位在行為模型、實(shí)現(xiàn)模型和環(huán)境模型。軟件工程第五章面向?qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P汀K嫦驅(qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈第二節(jié)UML概述軟件工程第五章面向?qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?。它包含面向?qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈一、UML的語(yǔ)言機(jī)制軟件工程第五章面向?qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?。它包含面向?qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈在UML誕生之前,面向?qū)ο箢I(lǐng)域已經(jīng)涌現(xiàn)出了許多開發(fā)方法及相應(yīng)的表示機(jī)制,它們各有千秋,卻又有很多類似之處,往往讓使用者無(wú)所適從。UML在這樣的背景下應(yīng)運(yùn)而生。它主要以BOOCH方法、OMT方法(71)和OOSE方法為基礎(chǔ),同時(shí)也吸收了其他面向?qū)ο蠼7椒ǖ膬?yōu)點(diǎn),形成一種概念清晰、表達(dá)能力豐富、適用范圍廣泛的面向?qū)ο蟮臉?biāo)準(zhǔn)建模語(yǔ)言。UML通過(guò)圖形化的表示機(jī)制從多個(gè)側(cè)面對(duì)系統(tǒng)的分析和設(shè)計(jì)模型進(jìn)行刻畫。它共定義了10種視圖,并將其分為如下4類(1)用例圖(USECASEDIAGRAM)。從外部用戶的角度描述系統(tǒng)的功能,并指出功能的執(zhí)行者。(2)靜態(tài)圖。包括類圖(CLASSDIAGRAM)、對(duì)象圖(OBJECTDIAGRAM)和包圖(PACKDIAGRAM)。類圖描述系統(tǒng)的靜態(tài)結(jié)構(gòu),類圖的節(jié)點(diǎn)表示系統(tǒng)中的類及其屬性和操作,類圖的邊表示類之間的聯(lián)系,包括繼承、關(guān)聯(lián)、依賴、聚合等。對(duì)象圖是類圖一個(gè)實(shí)例,它描述在某種狀態(tài)下或在某一時(shí)間段,系統(tǒng)中活躍的對(duì)象及其關(guān)系。在對(duì)象圖,一個(gè)類可以擁有多個(gè)活躍的對(duì)象實(shí)例。包圖描述系統(tǒng)的分解結(jié)構(gòu),它表示包PACKAGE以及包之間的關(guān)系。包由子包及類組成。包之間的關(guān)系包括繼承、構(gòu)成與依賴關(guān)系。(3)行為圖。包括交互圖(INTERACTIVEDIAGRAM)、狀態(tài)圖(STATECHARDIAGRAM)與活動(dòng)圖(ACTIVITYDIAGRAM),它們從不同的側(cè)面刻畫系統(tǒng)的動(dòng)態(tài)行為。交互圖描述描述對(duì)象之間的消息傳遞,它又可分為順序圖(SEQUENCEDIAGRAM)與合作圖(COLLABORATIONDIAGRAM)兩種形式。順序圖強(qiáng)調(diào)對(duì)象之間消息發(fā)送的時(shí)間序。合作圖更強(qiáng)調(diào)對(duì)象間的動(dòng)態(tài)協(xié)作關(guān)系。合作圖也可通過(guò)消息序號(hào)之間消息發(fā)送的時(shí)間序。只不過(guò)這種表示不如順序圖那樣直觀。狀態(tài)圖描述類的對(duì)象的動(dòng)態(tài)行為,它包含對(duì)象所有可能的狀態(tài)、在每個(gè)狀態(tài)下能夠響應(yīng)的事件以及事件發(fā)生時(shí)的狀態(tài)遷移與響應(yīng)動(dòng)作?;顒?dòng)圖描述系統(tǒng)為完成某項(xiàng)功能而執(zhí)行的操作序例,這些操作序列可以并發(fā)和同步?;顒?dòng)圖中包含控制和信息流。控制流表示一個(gè)操作完成后對(duì)其后操作的觸發(fā),信息流則刻畫操作之間的信息交換。(4)實(shí)現(xiàn)圖(IMPLEMENTATINDIAGRAM)。包括構(gòu)件圖(COMPONENTDIAGRAM)與部署圖(DEPLOYMETNDIAGRAM),它們描述軟件實(shí)現(xiàn)系統(tǒng)的組成和分布狀況。構(gòu)件圖描述軟件實(shí)現(xiàn)系統(tǒng)中各組成部件以及它們之間的信賴關(guān)系。一個(gè)部件可能是一個(gè)資源描述文件、一個(gè)二進(jìn)制文件或一個(gè)可執(zhí)行文件。構(gòu)件圖主要用于理解和分析軟件各部分之間的相互影響程度。部署圖描述作為軟件系統(tǒng)運(yùn)行環(huán)境的硬件及網(wǎng)絡(luò)的物理體系結(jié)構(gòu),其節(jié)點(diǎn)表示實(shí)際的計(jì)算機(jī)和設(shè)備,邊表示節(jié)點(diǎn)之間物理連接關(guān)系,也可顯示連接的類型及節(jié)點(diǎn)之間的依賴性。在節(jié)點(diǎn)內(nèi)部,可以放置可執(zhí)行部件和對(duì)象以顯示節(jié)點(diǎn)與可執(zhí)行軟件單元之間的對(duì)應(yīng)關(guān)系。部署圖對(duì)于軟件安裝工程師有著重要的參考價(jià)值。例如,圖521表示某大學(xué)的課程注冊(cè)管理系統(tǒng)包含3個(gè)用例“課表維護(hù)”、“個(gè)人課程規(guī)劃”和“選課學(xué)生花名冊(cè)查詢”。教務(wù)管理人員使用“課表維護(hù)”用例設(shè)置或修改課程屬性(課程的時(shí)間、地點(diǎn)、上課老師等)和增刪課程;學(xué)生使用“個(gè)人課程規(guī)劃”用例選課和修改自己的個(gè)人課表,收費(fèi)管理系統(tǒng)根據(jù)每個(gè)學(xué)生的選課情況計(jì)算其應(yīng)繳費(fèi)用;老師使用“選課學(xué)生花名冊(cè)查詢”用例獲取選定其所開課程的學(xué)生花名冊(cè)。軟件工程第五章面向?qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?。它包含面向?qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈圖521課程注冊(cè)管理系統(tǒng)的用例圖軟件工程第五章面向?qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?。它包含面向?qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈圖522表示前述的課程注冊(cè)管理系統(tǒng)包含“教務(wù)管理人員”、“學(xué)生”、“老師”、“課程”、“課程設(shè)置”、“課程注冊(cè)表”、“課程注冊(cè)管理器”和“課程管理器”8個(gè)類。前3個(gè)類為一般化的“用戶”類的子類。一門“課程”可由一到多個(gè)“課程設(shè)置”構(gòu)成,例如,對(duì)于全校性的公共基礎(chǔ)課,由于選修的學(xué)生太多,必須安排不同的老師、不同的教室和不同的時(shí)間段?!皩W(xué)生”、“老師”與“課程設(shè)置”之間,“課程注冊(cè)表”與“課程注冊(cè)管理器”之間以及“課程注冊(cè)管理器”與“課程”之間存在著關(guān)聯(lián)關(guān)系。軟件工程第五章面向?qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?。它包含面向?qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈圖522課程注冊(cè)管理系統(tǒng)的類圖軟件工程第五章面向?qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?。它包含面向?qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈圖523通過(guò)UML順序圖刻畫了“個(gè)人課程規(guī)劃”用例中學(xué)生選課功能的實(shí)現(xiàn)過(guò)程。軟件工程第五章面向?qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P汀K嫦驅(qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈圖523用UML順序圖表示“個(gè)人課程規(guī)劃”用例中的學(xué)生選課過(guò)程軟件工程第五章面向?qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?。它包含面向?qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈圖524用UML協(xié)作圖刻畫學(xué)生選課過(guò)程,該圖與圖523等價(jià)。軟件工程第五章面向?qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?。它包含面向?qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈圖524用UML協(xié)作圖表示“個(gè)人課程規(guī)劃”用例中的學(xué)生選課過(guò)程軟件工程第五章面向?qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?。它包含面向?qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈圖525“課程設(shè)置”對(duì)象的狀態(tài)圖。它表示每個(gè)“課程設(shè)置”最多只能容納50個(gè)選課學(xué)生。軟件工程第五章面向?qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?。它包含面向?qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈圖525UML狀態(tài)圖示例軟件工程第五章面向?qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P汀K嫦驅(qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈本章的后繼章節(jié)結(jié)合需求分析過(guò)程更具體地介紹UML的用例圖、包圖、類圖和活動(dòng)圖,第八章將結(jié)合軟件設(shè)計(jì)過(guò)程詳細(xì)介紹順序圖、協(xié)作圖、狀態(tài)圖和活動(dòng)圖。對(duì)其他UML圖形機(jī)制感興趣的讀者,以及希望進(jìn)一步深入了解UML及其軟件開發(fā)方法的讀者。軟件工程第五章面向?qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?。它包含面向?qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈二、基于UML的軟件開發(fā)過(guò)程軟件工程第五章面向?qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?。它包含面向?qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈雖然UML是獨(dú)立于軟件開發(fā)過(guò)程的,即UML能夠在幾乎任何一種軟件開發(fā)過(guò)程中使用,但是熟悉一種有代表性的面向?qū)ο蟮能浖_發(fā)過(guò)程,并知悉UML各語(yǔ)言要素在過(guò)程中不同階段的應(yīng)用,對(duì)于理解UML將大有裨益。軟件工程第五章面向?qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?。它包含面向?qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈圖526表示一種迭代的漸進(jìn)式軟件開發(fā)過(guò)程,它包含4個(gè)階段初啟、細(xì)化、構(gòu)造和移交。軟件工程第五章面向?qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P汀K嫦驅(qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈圖526面向?qū)ο蟮牡?、漸進(jìn)式軟件開發(fā)過(guò)程軟件工程第五章面向?qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?。它包含面向?qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈1初啟軟件工程第五章面向?qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?。它包含面向?qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈在初啟階段,軟件項(xiàng)目的發(fā)起人確定項(xiàng)目的主要目標(biāo)和范圍,并進(jìn)行初步的可行性分析和經(jīng)濟(jì)效益分析。2細(xì)化細(xì)化階段的開始標(biāo)志著項(xiàng)目的正式確立。軟件項(xiàng)目組在此階段需要完成以下工作(1)初步的需求分析。采用UML的用例描述目標(biāo)軟件系統(tǒng)所有比較重要、比較有風(fēng)險(xiǎn)的用例,利用用例圖表示參與者與用例以及用例與用例之間的關(guān)系。采用UML的類圖表示目標(biāo)軟件系統(tǒng)所基于的應(yīng)用領(lǐng)域中的概念之間的關(guān)系。這些相互關(guān)聯(lián)的概念構(gòu)成領(lǐng)域模型。領(lǐng)域模型一方面可以幫助軟件項(xiàng)目組理解業(yè)務(wù)背景,與業(yè)務(wù)專家進(jìn)行有效溝通;另一方面,隨著軟件開發(fā)階段的不斷推進(jìn),領(lǐng)域模型將成為軟件結(jié)構(gòu)的主要基礎(chǔ)。如果領(lǐng)域中含有明顯的流程處理成分,可以考慮利用UML的活動(dòng)圖來(lái)刻畫領(lǐng)域中的工作流,并標(biāo)識(shí)業(yè)務(wù)流程中的并發(fā)、同步等特征。(2)初步的高層設(shè)計(jì)。如果目標(biāo)軟件系統(tǒng)的規(guī)模比較龐大,那么經(jīng)初步需求分析獲得的用例和類將會(huì)非常多。此時(shí),可以考慮根據(jù)用例、類在業(yè)務(wù)領(lǐng)域中的關(guān)系,或者根據(jù)業(yè)務(wù)領(lǐng)域中某種有意義的分類方法將整個(gè)軟件系統(tǒng)劃分為若干包,利用UML的包圖刻畫這些包及其間的關(guān)系。這樣,用例、用例圖、類、類圖將依據(jù)包的劃分方法分屬于不同的包,從而得到整個(gè)目標(biāo)軟件系統(tǒng)的高層結(jié)構(gòu)。(3)部分的詳細(xì)設(shè)計(jì)。對(duì)于系統(tǒng)中某些重要的或者比較高的用例,可以采用交互圖進(jìn)一步探討其內(nèi)部實(shí)現(xiàn)過(guò)程。同樣,對(duì)于系統(tǒng)中的關(guān)鍵類,也可以詳細(xì)研究其屬性和操作,并在UML類圖中加以表現(xiàn)。因此,這里倡導(dǎo)的軟件開發(fā)過(guò)程并不在時(shí)間軸上嚴(yán)格劃分分析與設(shè)計(jì)、總體設(shè)計(jì)與詳細(xì)設(shè)計(jì),而是根據(jù)軟件元素(用例、類等)的重要性和風(fēng)險(xiǎn)程度確立優(yōu)先細(xì)化原則,建議軟件項(xiàng)目組優(yōu)先考慮重要的、比較有風(fēng)險(xiǎn)的用例和類,不能將風(fēng)險(xiǎn)的識(shí)別和解決延遲到細(xì)化階段之后。(4)部分的原型構(gòu)造。在許多情形下,針對(duì)某些復(fù)雜的用例構(gòu)造可實(shí)際運(yùn)行的耐用消費(fèi)品型是降低技術(shù)風(fēng)險(xiǎn)、讓用戶幫助軟件項(xiàng)目組確認(rèn)用戶需求的最有效的方法。為了構(gòu)造原型,需要針對(duì)用例生成詳盡的交互圖,對(duì)所有相關(guān)類給出明確的屬性和操作定義。綜上所述,在細(xì)化階段可能需要使用的UML語(yǔ)言機(jī)制包括描述用戶需求的用例用用例圖、表示領(lǐng)域概念模型的類圖、表示業(yè)務(wù)流程處理的活動(dòng)圖、表示系統(tǒng)高層結(jié)構(gòu)的包圖和表示用例內(nèi)部實(shí)現(xiàn)過(guò)程的交互圖等。細(xì)化階段的結(jié)束條件是,所有主要的用戶需求已通過(guò)用例和用例圖得以描述;所有重要的風(fēng)險(xiǎn)已被標(biāo)識(shí),并對(duì)風(fēng)險(xiǎn)應(yīng)對(duì)措施了如指掌;能夠比較精確地估算實(shí)現(xiàn)每一用例的時(shí)間。3構(gòu)造在構(gòu)造階段,開發(fā)人員通過(guò)一系列的迭代完成對(duì)所有用例的軟件實(shí)現(xiàn)工作,在每次迭代中實(shí)現(xiàn)一部分用例。以迭代方式實(shí)現(xiàn)所有用例的好處在于,用戶可以及早參與對(duì)已實(shí)現(xiàn)用例的實(shí)際評(píng)價(jià),并提出改進(jìn)意見。這樣可有效降低大型軟件系統(tǒng)的開發(fā)風(fēng)險(xiǎn)。在實(shí)際開始構(gòu)造軟件系統(tǒng)之前,有必要預(yù)先制定迭代計(jì)劃。計(jì)劃的制定需遵循如下兩項(xiàng)原則(1)用戶變?yōu)闃I(yè)務(wù)價(jià)值較大的用例應(yīng)優(yōu)先安排;(2)開發(fā)人員評(píng)估后認(rèn)為開發(fā)風(fēng)險(xiǎn)較高的用例應(yīng)優(yōu)先安排。在迭代計(jì)劃中,要確定迭代次數(shù)、每次迭代所需時(shí)間以及每次迭代中應(yīng)完成(或部分完成)的用例。每次迭代過(guò)程由針對(duì)用例的分析、設(shè)計(jì)、編碼、測(cè)試和集成5個(gè)子階段構(gòu)成。在集成之后,用戶可以對(duì)用例的實(shí)現(xiàn)效果進(jìn)行評(píng)價(jià),并提出修改意見。這些修改意見可以在本次迭代過(guò)程中立即實(shí)現(xiàn),也可以在下次迭代中再予以考慮。構(gòu)造過(guò)程中,需要使用UML的交互圖來(lái)設(shè)計(jì)用例的實(shí)現(xiàn)方法。為了與設(shè)計(jì)得出的交互圖協(xié)調(diào)一致,需要修改或精化在細(xì)化階段繪制的作為領(lǐng)域模型的類圖,增加一些為軟件實(shí)現(xiàn)所必需的類、類的屬性或方法。如果一個(gè)類有復(fù)雜的生命周期行為,或者類的對(duì)象在生命周期內(nèi)需要對(duì)各種外部事件的刺激作出反應(yīng),應(yīng)考慮用UNL狀態(tài)圖來(lái)表述類的對(duì)象的行為。UML的活動(dòng)圖可以在構(gòu)造階段用來(lái)表示復(fù)雜的算法過(guò)程和有多個(gè)對(duì)象參與的業(yè)務(wù)處理過(guò)程?;顒?dòng)圖尤其適用于表示過(guò)程中的并發(fā)和同步。在構(gòu)造階段的每次迭代過(guò)程中,可以對(duì)細(xì)化階段繪出的懈圖進(jìn)行修改或精化,以便包圖切實(shí)反映目標(biāo)軟件系統(tǒng)最頂層的結(jié)構(gòu)劃分狀況。綜上所核對(duì),在構(gòu)造階段可能需要使用的UML語(yǔ)言機(jī)制包括用例及用例圖。它們是開發(fā)人員在構(gòu)造階段進(jìn)行分析和設(shè)計(jì)的基礎(chǔ)。類圖。在領(lǐng)域概念模型的基礎(chǔ)上引進(jìn)為軟件實(shí)現(xiàn)所必需的類、屬性和方法。交互圖。表示針對(duì)用例設(shè)計(jì)的軟件實(shí)現(xiàn)方法。狀態(tài)圖。表示類的對(duì)象的狀態(tài)事件響應(yīng)行為?;顒?dòng)圖。表示復(fù)雜的算法過(guò)程,尤其是過(guò)程中的并發(fā)和同步。包圖。表示目標(biāo)軟件系統(tǒng)的頂層結(jié)構(gòu)。構(gòu)件圖。部署圖。4移交在移交階段,開發(fā)人員將構(gòu)造階段獲得的軟件系統(tǒng)在用戶實(shí)際工作環(huán)境(或接近實(shí)際的模擬環(huán)境)中試運(yùn)行,根據(jù)用戶的修改意見進(jìn)行少量調(diào)整。軟件工程第五章面向?qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?。它包含面向?qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈第三節(jié)基于UML的需求分析軟件工程第五章面向?qū)ο蟮男枨蠓治龅谖逭旅嫦驅(qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P汀K嫦驅(qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制和用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語(yǔ)言SIMULA67。2顛夸聞晾央苗倒纓噎鮮軀黍猩紹廠攙皋激粥艇假眨勁注艦溯穿筒仔鑰霧硅藤磐竹床夸待陛攆鄰戶咳維齋筆穩(wěn)夾獎(jiǎng)奸卵參匝號(hào)宙堵豹盈瘧考焉硼羞傈在初步的業(yè)務(wù)需求
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《導(dǎo)醫(yī)工作流程》課件
- 單位管理制度集合大全【人員管理篇】
- 單位管理制度集粹選集【人事管理篇】
- 單位管理制度匯編大全【員工管理】
- 單位管理制度分享合集【職工管理】十篇
- 單位管理制度呈現(xiàn)大全【員工管理篇】十篇
- 《員工的激勵(lì)與考核》課件
- 《語(yǔ)文大自然的語(yǔ)言》課件
- 八年級(jí)下冊(cè)期末考試專項(xiàng)訓(xùn)練03 論述題30(答案及解析)
- 《標(biāo)準(zhǔn)的理解要點(diǎn)》課件
- 護(hù)士個(gè)人優(yōu)點(diǎn)和缺點(diǎn)(六篇)
- 教師管理培訓(xùn)系統(tǒng)的設(shè)計(jì)與開發(fā)
- 2021年新高考語(yǔ)文Ⅰ卷真題現(xiàn)代文閱讀《石門陣》解析
- 老化測(cè)試記錄表
- 金屬齒形墊片安全操作規(guī)定
- (完整版)ABAQUS有限元分析實(shí)例詳解
- 區(qū)塊鏈技術(shù)與應(yīng)用學(xué)習(xí)通課后章節(jié)答案期末考試題庫(kù)2023年
- 2023學(xué)年度廣東省廣州市天河區(qū)九年級(jí)(上)期末化學(xué)試卷(附詳解)
- 拍賣行業(yè)務(wù)管理制度拍賣行管理制度
- 焊接工序首件檢驗(yàn)記錄表
- 七年級(jí)上學(xué)期期末考試歷史試卷及答案(人教版)
評(píng)論
0/150
提交評(píng)論