全套課件·《軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML》1_第1頁(yè)
全套課件·《軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML》1_第2頁(yè)
全套課件·《軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML》1_第3頁(yè)
全套課件·《軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML》1_第4頁(yè)
全套課件·《軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML》1_第5頁(yè)
已閱讀5頁(yè),還剩277頁(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)介

1、軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言軟件工程概述1結(jié)構(gòu)化程序設(shè)計(jì)與面向?qū)ο蟪绦蛟O(shè)計(jì) 2統(tǒng)一建模語(yǔ)言與現(xiàn)代軟件工程 3用例圖 4靜態(tài)模型 5軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言動(dòng)態(tài)模型 6UML實(shí)現(xiàn)與部署 7新聞發(fā)布系統(tǒng)的實(shí)例 8Rational Rose簡(jiǎn)介 9軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML第1章 軟件工程概述 1.1 用例概述 1.1.1 軟件及其特點(diǎn) 1.1.2 軟件危機(jī) 1.1.3 軟件工程的定義1.1.4 軟件工程的基本原理1.2 軟件開發(fā)生命周期 1.3 過(guò)程模型 1.3.1 常見的

2、生命周期模型 1.3.2 生命周期模型的應(yīng)用 1.4 軟件工程方法學(xué) 軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML第1章 軟件工程概述 教學(xué)要求理解:軟件和軟件工程的概念;軟件開發(fā)生命周期。掌握:軟件過(guò)程模型運(yùn)用的原則。軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML軟件開發(fā)是一個(gè)專業(yè)領(lǐng)域的人在為另一個(gè)專業(yè)領(lǐng)域的人服務(wù)在軟件開發(fā)過(guò)程中,需求可能經(jīng)常在變,每次需求變化會(huì)帶來(lái)軟件系統(tǒng)的開發(fā)延遲,甚至出現(xiàn)變更反復(fù),被推倒了的內(nèi)容又要重新確立在軟件沒有最終交付時(shí),用戶如何了解開發(fā)進(jìn)展情況系統(tǒng)難以維護(hù)和擴(kuò)展,經(jīng)常重復(fù)開發(fā)類似的功能項(xiàng)目經(jīng)常延期,實(shí)際成本往往遠(yuǎn)遠(yuǎn)高于估計(jì)成本開發(fā)團(tuán)隊(duì)內(nèi)部使用了不同的技術(shù),在交流時(shí)常常有障礙如何

3、應(yīng)對(duì)軟件開發(fā)過(guò)程中的種種不確定因素,更有效地開發(fā)與維護(hù)軟件?1.1 軟件、軟件危機(jī)和軟件工程的定義軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML1.1 軟件、軟件危機(jī)和軟件工程的定義軟件與硬件軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML軟件的特點(diǎn)軟件是腦力勞動(dòng)的產(chǎn)品,但它不同于追求個(gè)性化的藝術(shù)作品;軟件是產(chǎn)品,但它又不同于工業(yè)化生產(chǎn)得到的有形產(chǎn)品 1.1 軟件、軟件危機(jī)和軟件工程的定義軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML1.1 軟件、軟件危機(jī)和軟件工程的定義軟件的特點(diǎn)描述抽象性軟件是一種邏輯實(shí)體而不是具體的物理實(shí)體,必須通過(guò)測(cè)試、分析、思考、判斷來(lái)了解它的功能、性能及其他特性可復(fù)制性軟件是通過(guò)人們的智力活動(dòng),把

4、知識(shí)與技術(shù)轉(zhuǎn)化成信息的一種產(chǎn)品,是在研制、開發(fā)中被創(chuàng)造出來(lái)的。一旦某一軟件項(xiàng)目研制成功,以后就可以大量地復(fù)制同一內(nèi)容的副本,即其研制成本遠(yuǎn)遠(yuǎn)大于其生產(chǎn)成本不會(huì)磨損在軟件的運(yùn)行和使用期間,沒有硬件那樣的機(jī)械磨損、老化問(wèn)題,但軟件也會(huì)出現(xiàn)故障,軟件維護(hù)比硬件維護(hù)要復(fù)雜得多,與硬件的維修有著本質(zhì)的差別依賴性軟件的開發(fā)和運(yùn)行經(jīng)常受到計(jì)算機(jī)系統(tǒng)的限制,對(duì)計(jì)算機(jī)系統(tǒng)有著不同程度的依賴。為了消除這種依賴,在軟件開發(fā)中提出了軟件移植的問(wèn)題,并且把軟件的可移植性作為衡量軟件質(zhì)量的因素之一開發(fā)效率低軟件的開發(fā)尚未完全擺脫手工的方式,依然有大量重復(fù)性的勞動(dòng)開發(fā)費(fèi)用高軟件的研制工作需要投入大量的、復(fù)雜的、高強(qiáng)度的腦力

5、勞動(dòng),需要較高的成本。軟件的開發(fā)是一個(gè)復(fù)雜的過(guò)程,因而管理是軟件開發(fā)過(guò)程中必不可少的內(nèi)容軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML1.1 軟件、軟件危機(jī)和軟件工程的定義什么是軟件軟件 = 程序 + 數(shù)據(jù) + 文檔 數(shù)據(jù)包括初始化數(shù)據(jù)、測(cè)試數(shù)據(jù)、研發(fā)數(shù)據(jù)、運(yùn)行數(shù)據(jù)、維護(hù)數(shù)據(jù),以及軟件企業(yè)積累的項(xiàng)目工程數(shù)據(jù)和項(xiàng)目管理數(shù)據(jù)。文檔是開發(fā)、使用和維護(hù)程序所需要的圖文資料。 軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML1.1 軟件、軟件危機(jī)和軟件工程的定義什么是軟件危機(jī)軟件危機(jī)是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重問(wèn)題如何開發(fā)軟件,以滿足對(duì)軟件日益增長(zhǎng)的需求 如何維護(hù)數(shù)量不斷增加的已有軟件 軟件開發(fā)生命周

6、期與統(tǒng)一建模語(yǔ)言UML1.1 軟件、軟件危機(jī)和軟件工程的定義消除軟件危機(jī)的途徑正確認(rèn)識(shí)軟件。軟件=程序+數(shù)據(jù)+文檔在軟件開發(fā)的各個(gè)階段都要有完備的文檔。加強(qiáng)管理。軟件開發(fā)應(yīng)該是一種組織良好、管理嚴(yán)密、各類人員協(xié)同配合、共同完成的工程項(xiàng)目,應(yīng)該推廣使用在實(shí)踐中總結(jié)出來(lái)的開發(fā)軟件的成功的技術(shù)和方法。使用軟件工具。在軟件開發(fā)的每個(gè)階段都有許多煩瑣重復(fù)的工作需要做,在適當(dāng)?shù)能浖ぞ咻o助下,開發(fā)人員可以把這類工作做得既快又好??傊瑸榱私鉀Q軟件危機(jī),既要有技術(shù)措施(方法和工具),又要有必要的組織管理措施。軟件工程正是從管理和技術(shù)兩方面研究如何更好地開發(fā)和維護(hù)計(jì)算機(jī)軟件的一門學(xué)科。軟件開發(fā)生命周期與統(tǒng)一建

7、模語(yǔ)言UML1.1 軟件、軟件危機(jī)和軟件工程的定義軟件工程的定義軟件工程 = 管理 + 技術(shù)軟件工程的目標(biāo) 軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML1.1 軟件、軟件危機(jī)和軟件工程的定義軟件工程的基本原理(1)用分階段的生命周期計(jì)劃嚴(yán)格管理。統(tǒng)計(jì)發(fā)現(xiàn),不成功的軟件項(xiàng)目中有一半左右是由于計(jì)劃不周造成的。因此,有必要制定完善的計(jì)劃,分階段地進(jìn)行管理和控制。(2)堅(jiān)持進(jìn)行階段評(píng)審。軟件中的大部分錯(cuò)誤是在編碼之前造成的;錯(cuò)誤發(fā)現(xiàn)與改正得越晚,所需付出的代價(jià)也就越高,如圖1-4所示。因此,在每個(gè)階段都進(jìn)行嚴(yán)格的評(píng)審以盡早發(fā)現(xiàn)在軟件開發(fā)過(guò)程中所犯的錯(cuò)誤,是一條必須遵循的重要原則。早中晚低中高變化出現(xiàn)的時(shí)期代價(jià)

8、(3)實(shí)行嚴(yán)格的產(chǎn)品控制。軟件開發(fā)過(guò)程中,需求的變更往往需要付出較高的代價(jià),但這種改變又是難以避免的,因此不能硬性禁止客戶提出改變需求的要求,而要依靠科學(xué)的產(chǎn)品控制技術(shù)來(lái)順應(yīng)這種要求,按照嚴(yán)格的規(guī)程進(jìn)行變更控制。(4)采用現(xiàn)代程序設(shè)計(jì)技術(shù)。如“清晰第一、效率第二”的程序風(fēng)格;面向?qū)ο蟮姆治龇椒ǎ桓鞣N框架技術(shù)的使用、模式的應(yīng)用;軟件建模方法的運(yùn)用等。實(shí)踐表明,采用先進(jìn)的技術(shù)不僅可以提高軟件開發(fā)和維護(hù)的效率,而且可以提高軟件產(chǎn)品的質(zhì)量。(5)結(jié)果應(yīng)能清楚地審查。軟件是腦力勞動(dòng)的邏輯產(chǎn)品,應(yīng)該根據(jù)軟件開發(fā)項(xiàng)目的總目標(biāo)及完成期限規(guī)定開發(fā)組織的責(zé)任和產(chǎn)品標(biāo)準(zhǔn),制定出完備的文檔,從而提高其“可見性”。(6

9、)開發(fā)小組的人員應(yīng)該少而精。(7)不斷改進(jìn)軟件工程實(shí)踐的經(jīng)驗(yàn)和技術(shù)。軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML改正同一錯(cuò)誤付出的代價(jià)隨時(shí)間變化的趨勢(shì)早中晚低中高變化出現(xiàn)的時(shí)期代價(jià)1.1 軟件、軟件危機(jī)和軟件工程的定義軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML1.2 軟件開發(fā)生命周期如何蓋一棟大樓? 軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML1.2 軟件開發(fā)生命周期 1問(wèn)題定義“要解決的問(wèn)題是什么?”2可行性論證“有行得通的解決辦法嗎?”3需求分析“系統(tǒng)必須做什么?”4總體設(shè)計(jì)“概括地說(shuō),怎樣做?”5詳細(xì)設(shè)計(jì)“具體怎樣做?”6編碼和單元測(cè)試7綜合測(cè)試8運(yùn)行/維護(hù)軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML1.2 軟件開發(fā)

10、生命周期1問(wèn)題定義“要解決的問(wèn)題是什么?”通過(guò)對(duì)客戶的訪問(wèn)調(diào)查,系統(tǒng)分析員扼要地寫出關(guān)于問(wèn)題性質(zhì)、工程目標(biāo)和工程規(guī)模的書面報(bào)告,經(jīng)過(guò)討論和必要的修改之后這份報(bào)告應(yīng)該得到客戶的確認(rèn)。軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML1.2 軟件開發(fā)生命周期2可行性論證及軟件計(jì)劃“有行得通的解決辦法嗎?”目的:用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定該軟件項(xiàng)目是否能夠開發(fā),是否值得去開發(fā)。主要任務(wù):了解客戶的要求及現(xiàn)實(shí)環(huán)境,從技術(shù)、經(jīng)濟(jì)和社會(huì)因素三方面研究并論證本軟件項(xiàng)目的可行性,編寫可行性研究報(bào)告,制定初步的項(xiàng)目開發(fā)計(jì)劃。軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML1.2 軟件開發(fā)生命周期可行性論證及軟件計(jì)劃(續(xù))具體步驟

11、:(1)確定項(xiàng)目規(guī)模和目標(biāo)。(2)研究正在運(yùn)行的系統(tǒng)。(3)建立新系統(tǒng)的高層邏輯模型。(4)導(dǎo)出和評(píng)價(jià)各種方案。(5)推薦可行的方案。(6)編寫可行性研究報(bào)告。系統(tǒng)分析員需要進(jìn)行一次大大壓縮和簡(jiǎn)化了的系統(tǒng)分析和設(shè)計(jì)過(guò)程,研究問(wèn)題的范圍,探索這個(gè)問(wèn)題是否值得去解決,是否有可行的解決辦法。如果可行,制定出初步的開發(fā)計(jì)劃。軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML1.2 軟件開發(fā)生命周期3需求分析“系統(tǒng)必須做什么?”確定目標(biāo)系統(tǒng)必須具備哪些功能。軟件開發(fā)是一個(gè)專業(yè)領(lǐng)域的人在為另一個(gè)專業(yè)領(lǐng)域的人做事。用戶了解他們所面對(duì)的問(wèn)題,知道必須做什么,但是通常不能完整準(zhǔn)確地表達(dá)出他們的要求,更不知道怎樣利用計(jì)算機(jī)解決

12、他們的問(wèn)題;軟件開發(fā)人員知道怎樣用軟件實(shí)現(xiàn)人們的要求,但是對(duì)特定用戶的具體要求并不完全清楚。因此,系統(tǒng)分析員在需求分析階段必須和用戶密切配合,充分交流信息,以得出用戶認(rèn)可的各種模型。常用的有用例模型、活動(dòng)圖、順序圖、類圖、數(shù)據(jù)流圖、層次圖等。需求分析階段的兩個(gè)任務(wù)是捕獲需求和分析整理需求。需求分析階段確定的系統(tǒng)邏輯模型是以后設(shè)計(jì)和實(shí)現(xiàn)目標(biāo)系統(tǒng)的基礎(chǔ),因此必須準(zhǔn)確完整地體現(xiàn)用戶的要求。這個(gè)階段的一項(xiàng)重要任務(wù)是,用正式文檔準(zhǔn)確地記錄對(duì)目標(biāo)系統(tǒng)的需求,即規(guī)格說(shuō)明書。軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML1.2 軟件開發(fā)生命周期4總體設(shè)計(jì)“概括地說(shuō),應(yīng)該怎樣做?”基本任務(wù):(1)設(shè)計(jì)出實(shí)現(xiàn)目標(biāo)系統(tǒng)的幾種

13、可能的方案。軟件工程師用適當(dāng)?shù)谋磉_(dá)工具描述每種方案,分析每種方案的優(yōu)缺點(diǎn),并在充分權(quán)衡各種方案的利弊的基礎(chǔ)上推薦一個(gè)最佳方案。此外,還應(yīng)該制定出實(shí)現(xiàn)最佳方案的詳細(xì)計(jì)劃。(2)設(shè)計(jì)軟件體系結(jié)構(gòu)。通常指劃分模塊,確定模塊的功能及其相互之間的調(diào)用關(guān)系,確定模塊間的接口等。(3)數(shù)據(jù)庫(kù)設(shè)計(jì)。(4)編寫概要設(shè)計(jì)文檔。軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML1.2 軟件開發(fā)生命周期5詳細(xì)設(shè)計(jì)“具體怎樣做?”總體設(shè)計(jì)階段以比較抽象概括的方式提出了解決問(wèn)題的辦法,詳細(xì)設(shè)計(jì)階段的任務(wù)就是把解法具體化。 這個(gè)階段的任務(wù)不是編寫程序,而是設(shè)計(jì)出程序的詳細(xì)規(guī)格說(shuō)明,這種規(guī)格說(shuō)明應(yīng)該包含必要的細(xì)節(jié),程序員可以根據(jù)它們寫出實(shí)

14、際的程序代碼。軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML1.2 軟件開發(fā)生命周期6編碼和單元測(cè)試關(guān)鍵任務(wù):寫出正確的、容易理解、容易維護(hù)的程序模塊。程序員應(yīng)該根據(jù)目標(biāo)系統(tǒng)的性質(zhì)和實(shí)際環(huán)境選取一種適當(dāng)?shù)某绦蛟O(shè)計(jì)語(yǔ)言,把詳細(xì)設(shè)計(jì)的結(jié)果翻譯成用選定的語(yǔ)言書寫的程序,并且仔細(xì)測(cè)試編寫出的每一個(gè)模塊。軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML1.2 軟件開發(fā)生命周期7綜合測(cè)試軟件測(cè)試的目的是希望以最低代價(jià)盡可能多地找出軟件中潛在的各種錯(cuò)誤和缺陷。軟件測(cè)試并不是在軟件交付之后才開始,而應(yīng)盡早地、不斷地進(jìn)行,貫穿于軟件定義與開發(fā)的整個(gè)期間。例如,在需求分析和設(shè)計(jì)階段就要盡可能地考慮到如何提高軟件的可測(cè)試性。軟件開發(fā)生命

15、周期與統(tǒng)一建模語(yǔ)言UML1.2 軟件開發(fā)生命周期8運(yùn)行/維護(hù)這一階段的關(guān)鍵任務(wù)是,通過(guò)各種必要的維護(hù)活動(dòng)使系統(tǒng)持久地滿足用戶的需要。軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML1.3 軟件過(guò)程模型(軟件生命周期模型)1瀑布模型核心思想是階段性的評(píng)審和驗(yàn)證,每一階段結(jié)束時(shí)都要給出完整的文檔。缺點(diǎn)是該模型缺乏靈活性,后一階段出現(xiàn)的問(wèn)題需要通過(guò)前一階段的重新確認(rèn)來(lái)解決。 軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML2原型模型快速設(shè)計(jì)軟件中對(duì)用戶可見部分的表示,構(gòu)造原型,由用戶評(píng)估,逐步調(diào)整原型,使之滿足用戶需要。其優(yōu)點(diǎn)是開發(fā)者和用戶可以充分溝通,開發(fā)過(guò)程也是學(xué)習(xí)過(guò)程,可以低風(fēng)險(xiǎn)開發(fā)柔性較大的計(jì)算機(jī)系統(tǒng)。1.3 軟件

16、過(guò)程模型(軟件生命周期模型)軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML3螺旋模型把軟件開發(fā)過(guò)程組成為一個(gè)逐步細(xì)化的螺旋周期,每經(jīng)歷一個(gè)周期,系統(tǒng)就得到進(jìn)一步的細(xì)化和完善;整個(gè)模型緊密圍繞開發(fā)中的風(fēng)險(xiǎn)分析,推動(dòng)軟件設(shè)計(jì)向深層擴(kuò)展和求精。該模型要求開發(fā)人員與用戶能經(jīng)常直接進(jìn)行交流,通常用來(lái)指導(dǎo)內(nèi)部發(fā)行的大型軟件項(xiàng)目的開發(fā) 1.3 軟件過(guò)程模型(軟件生命周期模型)軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML4增量模型一種漸近式的模型 第一個(gè)增量構(gòu)件往往實(shí)現(xiàn)軟件的基本需求,提供最核心的功能優(yōu)點(diǎn):能在較短的時(shí)間內(nèi),向用戶提交可完成部分工作的產(chǎn)品;1.3 軟件過(guò)程模型(軟件生命周期模型)軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言U

17、ML5迭代模型一種漸近式的模型,迭代模型與增量模型假設(shè)現(xiàn)在要開發(fā)A、B、C、D四個(gè)大的業(yè)務(wù)功能,每個(gè)功能都需要開發(fā)兩周的時(shí)間。對(duì)于增量方法而言可以將四個(gè)功能分為兩次增量來(lái)完成,第一個(gè)增量完成A、B功能,第二次增量完成C、D功能;而對(duì)于迭代開發(fā)來(lái)講則是分兩次迭代來(lái)開發(fā),第一次迭代完成A、B、C、D四個(gè)基本業(yè)務(wù)功能,但不含復(fù)雜的業(yè)務(wù)邏輯,而第二次迭代再逐漸細(xì)化補(bǔ)充完整相關(guān)的業(yè)務(wù)邏輯。就對(duì)風(fēng)險(xiǎn)的消除上,增量和迭代模型都能夠很好地控制前期的風(fēng)險(xiǎn),但迭代模型在這方面更有優(yōu)勢(shì)。迭代模型可以更多地從總體方面思考系統(tǒng)問(wèn)題,一開始就給出相對(duì)完善的框架或原型,后期的每次迭代都是針對(duì)上次迭代的逐步精化。1.3 軟件

18、過(guò)程模型(軟件生命周期模型)軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML6快速原型模型快速建立起可以在計(jì)算機(jī)上運(yùn)行的程序,它所完成的功能往往是最終產(chǎn)品功能的一個(gè)子集。通過(guò)讓用戶試用,收集反饋意見,從而獲取準(zhǔn)確的需求。這是一種很好的啟發(fā)式方法,可以快速地挖掘用戶需求并達(dá)成需求理解上的一致。當(dāng)用戶沒有信息系統(tǒng)的使用經(jīng)驗(yàn)或系統(tǒng)分析員沒有過(guò)多的需求分析和挖掘經(jīng)驗(yàn)的時(shí)候,這種方法將非常有效。1.3 軟件過(guò)程模型(軟件生命周期模型)軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML7噴泉模型認(rèn)為軟件生命周期的各個(gè)階段是相互重疊和多次反復(fù)的,就像水噴上去又可以落下來(lái),水既可以落在中間,也可以落在最底部。整個(gè)開發(fā)過(guò)程中都使用統(tǒng)一的

19、概念“對(duì)象”進(jìn)行分析,使用統(tǒng)一的概念和符號(hào)表示分析設(shè)計(jì)過(guò)程,各階段間沒有明顯的邊界,即“無(wú)縫”銜接,因此各開發(fā)步驟可以多次反復(fù)迭代,逐步深化。1.3 軟件過(guò)程模型(軟件生命周期模型)軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML8MSF過(guò)程模型吸收了瀑布模型的里程碑和螺旋模型的反復(fù)迭代的思想 分為5個(gè)階段每一階段結(jié)束時(shí)都有明確的交付成果1.3 軟件過(guò)程模型(軟件生命周期模型)軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML生命周期模型的應(yīng)用總體上說(shuō)面向?qū)ο蟮某绦蛟O(shè)計(jì)采用的是噴泉模型,但局部可以結(jié)合其它模型。在前期需求明確、資料完整的情況下盡量采用瀑布模型。在用戶無(wú)信息系統(tǒng)使用經(jīng)驗(yàn),需求分析人員技能不足情況下要借助原

20、型。在不確定性因素很多,很多東西前面無(wú)法計(jì)劃的情況下盡量采用增量模型和螺旋模型。在需求不穩(wěn)定情況下盡量采用增量迭代模型。在資金和成本無(wú)法一次到位情況下可以采用增量模型,將產(chǎn)品分多個(gè)版本進(jìn)行發(fā)布。增量、迭代和原型可以綜合使用,但每一次增量或迭代都必須有明確的交付內(nèi)容。總之,每個(gè)軟件開發(fā)組織都應(yīng)該根據(jù)所要開發(fā)的軟件特點(diǎn)及本組織的特點(diǎn),選擇適合于自己的軟件過(guò)程模型,把各種生命周期模型的特性有機(jī)地結(jié)合起來(lái),充分利用它們的優(yōu)點(diǎn),回避缺陷。 1.3 軟件過(guò)程模型(軟件生命周期模型)軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML1.4 軟件工程方法學(xué)研究如何通過(guò)分解和抽象,將復(fù)雜問(wèn)題轉(zhuǎn)化成一系列可以理解和實(shí)現(xiàn)的簡(jiǎn)單問(wèn)

21、題 軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML面向過(guò)程的程序 = 算法 + 數(shù)據(jù)結(jié)構(gòu)。面向?qū)ο蟮某绦?= 對(duì)象 + 類 + 繼承 + 消息通信。面向構(gòu)件的程序 = 構(gòu)件 + 架構(gòu)。形式化方法是建立在嚴(yán)格的數(shù)學(xué)基礎(chǔ)上,以邏輯推理為出發(fā)點(diǎn),具有精確數(shù)學(xué)語(yǔ)義的開發(fā)方法。1.4 軟件工程方法學(xué)軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML本章小結(jié)軟件不僅僅是程序,軟件=程序+數(shù)據(jù)+文檔。軟件工程是為了盡可能消除軟件危機(jī)的影響,克服軟件缺乏“可見性”的缺點(diǎn),借鑒工業(yè)化生產(chǎn)的成功經(jīng)驗(yàn),對(duì)軟件產(chǎn)品的生產(chǎn)過(guò)程加以嚴(yán)格管理和控制的一門學(xué)科。它的最終目的是實(shí)現(xiàn)軟件的工業(yè)化生產(chǎn)。傳統(tǒng)軟件工程將軟件開發(fā)生命周期劃分為問(wèn)題定義、可行性

22、分析、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、測(cè)試、運(yùn)行維護(hù)8個(gè)階段,每一階段都有具體的任務(wù)和交付成果。軟件過(guò)程模型指如何具體地組織銜接軟件開發(fā)生命周期的各個(gè)階段。常見的有瀑布模型、螺旋模型、噴泉模型等。Thank You !中國(guó)水利水電出版社軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML第2章 結(jié)構(gòu)化程序設(shè)計(jì)與面向?qū)ο蟪绦蛟O(shè)計(jì)2.1 概述 2.2 結(jié)構(gòu)化程序設(shè)計(jì)與面向?qū)ο蟪绦蛟O(shè)計(jì)2.2.1 實(shí)例 2.2.2 面向?qū)ο蠓椒ㄅc結(jié)構(gòu)化方法比較2.2.3 兩種方法的綜合運(yùn)用2.3 結(jié)構(gòu)化方法的基本原理2.3.1 結(jié)構(gòu)化分析過(guò)程 2.3.2 結(jié)構(gòu)化分析工具 2.4 面向?qū)ο蠓椒▽W(xué)的基本概念和原則2.4.1 基本概念

23、 2.4.2 主要原則 軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML第2章 結(jié)構(gòu)化程序設(shè)計(jì)與面向?qū)ο蟪绦蛟O(shè)計(jì)教學(xué)要求掌握:軟件結(jié)構(gòu)化分析方法中常用的方法及工具。理解:結(jié)構(gòu)化設(shè)計(jì)及面向?qū)ο笤O(shè)計(jì)的思路及特點(diǎn);在面向?qū)ο笤O(shè)計(jì)中如何運(yùn)用結(jié)構(gòu)化設(shè)計(jì)的方法及工具。了解:結(jié)構(gòu)化分析過(guò)程;面向?qū)ο蠓椒▽W(xué)的基本概念。軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML2.1 概述結(jié)構(gòu)化方法與面向?qū)ο蟮姆椒ǖ墓残攒浖_發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML2.2 面向?qū)ο蠓椒ㄅc結(jié)構(gòu)化方法比較實(shí)例“書店借書系統(tǒng)”的分析與設(shè)計(jì)(詳見教材) 軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML2.2 面向?qū)ο蠓椒ㄅc結(jié)構(gòu)化方法比較(1)面向?qū)ο蠓椒ǚ磸?fù)迭代完善需求。對(duì)

24、已有的需求(參見附錄1)進(jìn)行整理,列出需求列表。與用戶交流得到有效的需求列表。畫出初始用例模型,表達(dá)系統(tǒng)的主要功能及主要業(yè)務(wù)流程。完善需求列表,完善用例模型。反復(fù)迭代進(jìn)行邏輯設(shè)計(jì)。識(shí)別系統(tǒng)中的對(duì)象及其關(guān)系,畫初始類模型。確定類的職責(zé)、屬性和方法。表示出主要業(yè)務(wù)過(guò)程的動(dòng)態(tài)模型。由動(dòng)態(tài)模型反復(fù)映射,完善類模型。軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML2.2 面向?qū)ο蠓椒ㄅc結(jié)構(gòu)化方法比較面向?qū)ο蠓椒ǎɡm(xù))物理設(shè)計(jì)。確定整個(gè)系統(tǒng)的拓?fù)浣Y(jié)構(gòu)(部署圖)。修訂類模型。相應(yīng)修訂動(dòng)態(tài)模型。完成反映程序模塊的包圖。完成反映程序軟件構(gòu)成的組件圖。設(shè)計(jì)界面,設(shè)計(jì)數(shù)據(jù)庫(kù)。軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML2.2 面向?qū)ο?/p>

25、方法與結(jié)構(gòu)化方法比較(2)結(jié)構(gòu)化方法。 獲取完整的需求。自頂向下、逐層分解,畫出數(shù)據(jù)流圖。書寫數(shù)據(jù)字典。映射出系統(tǒng)的層次結(jié)構(gòu),進(jìn)行系統(tǒng)結(jié)構(gòu)(模塊及其接口)設(shè)計(jì)。逐層細(xì)分,細(xì)化出每個(gè)處理。設(shè)計(jì)界面,設(shè)計(jì)數(shù)據(jù)庫(kù)。軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML 2.2 面向?qū)ο蠓椒ㄅc結(jié)構(gòu)化方法比較結(jié)構(gòu)化程序設(shè)計(jì)方法也稱面向過(guò)程的方法或傳統(tǒng)軟件工程開發(fā)方法,它的特點(diǎn)是自頂向下、逐步求精,在獲取完整的需求之后才能開始系統(tǒng)的分析和設(shè)計(jì)。使用的手段主要有數(shù)據(jù)流圖、數(shù)據(jù)字典、層次方框圖、結(jié)構(gòu)化語(yǔ)言、判定表和判定樹等。一般步驟是:分析業(yè)務(wù)流程及信息走向;畫出數(shù)據(jù)流圖;建立數(shù)據(jù)字典;提出系統(tǒng)的總體邏輯方案;細(xì)化數(shù)據(jù)流圖;確

26、定模塊的接口;為每個(gè)模塊確定采用的算法和數(shù)據(jù)結(jié)構(gòu);根據(jù)E-R圖設(shè)計(jì)數(shù)據(jù)庫(kù)等。軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML2.2 面向?qū)ο蠓椒ㄅc結(jié)構(gòu)化方法比較(續(xù))面向?qū)ο蟮某绦蛟O(shè)計(jì)方法的特點(diǎn)是根據(jù)現(xiàn)實(shí)問(wèn)題直接抽象出對(duì)象,分析對(duì)象的行為和與行為相關(guān)的數(shù)據(jù),對(duì)象間通過(guò)傳遞消息進(jìn)行通信,協(xié)作完成相應(yīng)的功能,從問(wèn)題出發(fā),模擬現(xiàn)實(shí)問(wèn)題建立系統(tǒng)模型,易于理解和實(shí)現(xiàn)。對(duì)照表參見教材軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML2.2 面向?qū)ο蠓椒ㄅc結(jié)構(gòu)化方法比較兩種方法的綜合運(yùn)用 (1)內(nèi)在的一致性 目標(biāo)一致 使用分解和抽象的原則 局部化和信息隱蔽 模塊獨(dú)立 軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML2.2 面向?qū)ο蠓椒ㄅc結(jié)構(gòu)化方

27、法比較(2)應(yīng)用的互補(bǔ)性 (在進(jìn)行面向?qū)ο蟮某绦蛟O(shè)計(jì)中如何很好地吸收結(jié)構(gòu)化分析方法中的精髓)成熟的理論 有效的方法 實(shí)用的工具 嚴(yán)謹(jǐn)?shù)拈_發(fā)過(guò)程 總的說(shuō)來(lái),在面向?qū)ο蟮某绦蛟O(shè)計(jì)中可以應(yīng)用結(jié)構(gòu)化分析的好的方法和思路,目的在于既體現(xiàn)面向?qū)ο蠓椒◤膯?wèn)題域出發(fā)、易理解、易實(shí)現(xiàn)、易維護(hù)等特點(diǎn),又發(fā)揮結(jié)構(gòu)化方法從整體上把握系統(tǒng)、逐層細(xì)分、強(qiáng)調(diào)良好的軟件結(jié)構(gòu)、進(jìn)行合理的數(shù)據(jù)庫(kù)設(shè)計(jì)等優(yōu)勢(shì)。一條根本的原則是:注意保持結(jié)構(gòu)化的分析設(shè)計(jì)結(jié)果(如模塊劃分)與面向?qū)ο蟮姆治鲈O(shè)計(jì)結(jié)果在核心內(nèi)容上的一致性。軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML2.3 結(jié)構(gòu)化方法的基本原理結(jié)構(gòu)化分析過(guò)程結(jié)構(gòu)化分析工具 軟件開發(fā)生命周期與統(tǒng)一建模

28、語(yǔ)言UML2.3 結(jié)構(gòu)化方法的基本原理階段擬解決的關(guān)鍵性問(wèn)題工具手段交付成果問(wèn)題定義要解決的問(wèn)題是什么可行性論證及軟件計(jì)劃有行得通的解決辦法嗎數(shù)據(jù)流圖、數(shù)據(jù)字典、數(shù)據(jù)流程圖、成本/效益分析可行性分析報(bào)告、多種解決方案、系統(tǒng)高層邏輯模型需求分析系統(tǒng)必須做什么數(shù)據(jù)流圖、數(shù)據(jù)字典、算法描述需求規(guī)格說(shuō)明書、系統(tǒng)邏輯模型總體設(shè)計(jì)概括地說(shuō),應(yīng)該怎樣做數(shù)據(jù)流圖、系統(tǒng)流程圖、成本/效益分析、系統(tǒng)結(jié)構(gòu)圖、層次方框圖幾種可能的解法詳細(xì)設(shè)計(jì)具體怎樣做數(shù)據(jù)流圖、HIPO圖模塊及其接口設(shè)計(jì)、數(shù)據(jù)字典結(jié)構(gòu)化分析過(guò)程軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML2.3 結(jié)構(gòu)化方法的基本原理結(jié)構(gòu)化分析工具數(shù)據(jù)流圖 數(shù)據(jù)字典 E-R圖

29、IPO圖 層次圖與HIPO圖狀態(tài)圖 成本/效益分析 程序流程圖與盒圖(N-S圖) 軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML2.3 結(jié)構(gòu)化方法的基本原理1. 數(shù)據(jù)流圖(DFD圖)描繪信息流和數(shù)據(jù)從輸入移動(dòng)到輸出的過(guò)程中所經(jīng)受的變換。基本符號(hào)處理數(shù)據(jù)存儲(chǔ)外部實(shí)體數(shù)據(jù)流軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML2.3 結(jié)構(gòu)化方法的基本原理基本符號(hào)的含義矩形方框表示數(shù)據(jù)的源點(diǎn)或終點(diǎn)。是系統(tǒng)的外部實(shí)體圓形表示變換數(shù)據(jù)的處理。它可以代表一系列程序、單個(gè)程序或者程序的一個(gè)模塊平行橫線代表數(shù)據(jù)存儲(chǔ)。數(shù)據(jù)存儲(chǔ)并不等同于一個(gè)文件,它可以表示一個(gè)文件、文件的一部分、數(shù)據(jù)庫(kù)的元素或記錄的一部分等數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)流都是數(shù)據(jù),僅僅所

30、處的狀態(tài)不同。數(shù)據(jù)存儲(chǔ)是處于靜止?fàn)顟B(tài)的數(shù)據(jù),數(shù)據(jù)流是處于運(yùn)動(dòng)中的數(shù)據(jù)軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML2.3 結(jié)構(gòu)化方法的基本原理畫數(shù)據(jù)流圖的基本原則自頂向下逐層細(xì)化完善求精 軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML2.3 結(jié)構(gòu)化方法的基本原理具體步驟:(1)繪頂層數(shù)據(jù)流圖。找出對(duì)整個(gè)系統(tǒng)而言的輸入、輸出數(shù)據(jù),確定外部實(shí)體,它們決定了系統(tǒng)與外界的接口。(2)為數(shù)據(jù)流命名,為加工命名。(3)檢查核對(duì)。(4)核對(duì)無(wú)誤后,進(jìn)行分解,畫處理的內(nèi)部。在(2)至(4)步之間反復(fù)迭代,直到處理無(wú)法進(jìn)一步分解為止。軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML2.3 結(jié)構(gòu)化方法的基本原理書店借書系統(tǒng)的頂層數(shù)據(jù)流圖軟件開發(fā)

31、生命周期與統(tǒng)一建模語(yǔ)言UML2.3 結(jié)構(gòu)化方法的基本原理書店借書系統(tǒng)的第一次分解后的數(shù)據(jù)流圖軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML2.3 結(jié)構(gòu)化方法的基本原理“借書”處理分解后的數(shù)據(jù)流圖軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML2.3 結(jié)構(gòu)化方法的基本原理書店借書系統(tǒng)的層次圖軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML2.3 結(jié)構(gòu)化方法的基本原理2數(shù)據(jù)字典數(shù)據(jù)字典是對(duì)所有與系統(tǒng)相關(guān)的數(shù)據(jù)元素的一個(gè)有組織的列表,精確、嚴(yán)格地定義各個(gè)數(shù)據(jù)元素,使得用戶及開發(fā)人員對(duì)于輸入、輸出、存儲(chǔ)和處理形成共同的理解例如:借閱制度表 = 讀者類別+允許借閱冊(cè)數(shù)+罰款規(guī)定+丟失圖書罰款規(guī)定讀者類別 = 金卡 | 銀卡 | 銅卡 又

32、如: 預(yù)訂請(qǐng)求 = 客人數(shù)據(jù)+住宿期限+客房類別 客人數(shù)據(jù) = 客人姓名+地址+身份證號(hào)碼+護(hù)照號(hào)碼 +支付方式 身份證號(hào)碼 = 15十進(jìn)制數(shù)字18 護(hù)照號(hào)碼 = 字母 + 8十進(jìn)制數(shù)字8 字母 = AZ 十進(jìn)制數(shù)字 = 09 軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML2.3 結(jié)構(gòu)化方法的基本原理3E-R圖(實(shí)體關(guān)系圖 )例如軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML2.3 結(jié)構(gòu)化方法的基本原理4IPO圖IPO是輸入、處理、輸出的簡(jiǎn)稱,IPO圖能方便地描繪輸入數(shù)據(jù)、數(shù)據(jù)的處理和輸出數(shù)據(jù)的關(guān)系 軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML2.3 結(jié)構(gòu)化方法的基本原理主文件更新的IPO圖軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言

33、UML2.3 結(jié)構(gòu)化方法的基本原理5層次圖與HIPO圖層次圖用來(lái)描繪軟件的層次結(jié)構(gòu),圖中的一個(gè)矩形框代表一個(gè)模塊,方框間的連線表示調(diào)用關(guān)系。它適于在自頂向下設(shè)計(jì)軟件的過(guò)程中使用,描述模塊的劃分。軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML2.3 結(jié)構(gòu)化方法的基本原理書店借書系統(tǒng)的層次圖軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML2.3 結(jié)構(gòu)化方法的基本原理書店借書系統(tǒng)的H圖軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML2.3 結(jié)構(gòu)化方法的基本原理6狀態(tài)圖(略)軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML2.3 結(jié)構(gòu)化方法的基本原理7成本/效益分析目的從經(jīng)濟(jì)角度分析開發(fā)一個(gè)特定的新系統(tǒng)是否劃算,從而幫助客戶組織的負(fù)責(zé)人正確地作出

34、是否投資于這項(xiàng)開發(fā)工程的決定 軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML2.3 結(jié)構(gòu)化方法的基本原理實(shí)例軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML2.3 結(jié)構(gòu)化方法的基本原理8程序流程圖與盒圖(N-S圖)是表達(dá)語(yǔ)句執(zhí)行過(guò)程的主要工具 基本符號(hào):軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML2.4 面向?qū)ο蠓椒▽W(xué)的基本概念和原則基本概念1對(duì)象(object)2類(class)3實(shí)例(instance)4消息(message)5方法(method)6屬性(attribute)7封裝(encapsulation)8繼承(inheritance)9多態(tài)性(polymorphism)10重載(overloading)軟件開發(fā)

35、生命周期與統(tǒng)一建模語(yǔ)言UML2.4 面向?qū)ο蠓椒▽W(xué)的基本概念和原則主要原則(1)抽象(2)分類(3)聚合(4)關(guān)聯(lián)(5)消息通信(6)粒度控制(7)行為分析軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML本章小結(jié)結(jié)構(gòu)化方法和面向?qū)ο蟮姆椒ㄊ钱?dāng)前兩種主流的軟件開發(fā)方法。其中,面向?qū)ο蟮某绦蛟O(shè)計(jì)方法根據(jù)現(xiàn)實(shí)問(wèn)題直接抽象出對(duì)象,分析對(duì)象的行為和與行為相關(guān)的數(shù)據(jù),對(duì)象間通過(guò)傳遞消息進(jìn)行通信,從問(wèn)題出發(fā),模擬現(xiàn)實(shí)問(wèn)題,建立系統(tǒng)模型,易于理解和實(shí)現(xiàn);結(jié)構(gòu)化程序設(shè)計(jì)方法有一套成熟的理論基礎(chǔ),“自頂向下、逐步求精”,在獲取完整的需求之后才能開始系統(tǒng)的分析和設(shè)計(jì)。在進(jìn)行面向?qū)ο蟮某绦蛟O(shè)計(jì)時(shí),要善于吸收、借鑒傳統(tǒng)結(jié)構(gòu)化程序設(shè)

36、計(jì)的方法工具。在進(jìn)行面向?qū)ο蟮脑O(shè)計(jì)時(shí),從需求分析到系統(tǒng)設(shè)計(jì)都是一個(gè)反復(fù)迭代的過(guò)程。數(shù)據(jù)流圖(DFD圖)是分析數(shù)據(jù)存儲(chǔ)的有效工具。Thank You !中國(guó)水利水電出版社軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML第3章 統(tǒng)一建模語(yǔ)言與現(xiàn)代軟件工程3.1 軟件工程的發(fā)展趨勢(shì)及成功經(jīng)驗(yàn) 3.1.1 現(xiàn)代軟件工程中的熱點(diǎn)內(nèi)容3.1.2 現(xiàn)代軟件工程的成功經(jīng)驗(yàn)3.1.3 統(tǒng)一建模語(yǔ)言在現(xiàn)代軟件工程中的作用 3.2 統(tǒng)一建模語(yǔ)言概述 3.2.1 什么是軟件建模3.2.2 什么是UML 3.2.3 UML的歷史3.2.4 UML中的五類圖3.2.5 UML建模的基本過(guò)程軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML第3章

37、統(tǒng)一建模語(yǔ)言與現(xiàn)代軟件工程教學(xué)要求理解:什么是統(tǒng)一建模語(yǔ)言;統(tǒng)一建模語(yǔ)言作用;統(tǒng)一建模過(guò)程。了解:現(xiàn)代軟件工程研究中的熱點(diǎn)內(nèi)容;面向?qū)ο蟮慕K枷?。軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML3.1軟件工程的發(fā)展趨勢(shì)及成功經(jīng)驗(yàn)現(xiàn)代軟件工程研究的熱點(diǎn)內(nèi)容研究方面具體內(nèi)容軟件過(guò)程模型瀑布模型、增量模型、快速原形模型、螺旋模型、噴泉模型、MSF過(guò)程模型等軟件開發(fā)方法面向?qū)ο蟮姆椒?、面向?gòu)件的方法、極限編程等項(xiàng)目管理過(guò)程MSF過(guò)程模型、企業(yè)文化設(shè)計(jì)模式工廠模式、命令模式等輔助工具各種軟件建模工具(如Rational Rose、 Visio、Rational XDE)、項(xiàng)目計(jì)劃工具(如Project)、文檔自動(dòng)

38、生成工具(如SODA)等軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML3.1軟件工程的發(fā)展趨勢(shì)及成功經(jīng)驗(yàn)現(xiàn)代軟件工程研究的熱點(diǎn)內(nèi)容軟件過(guò)程的研究在實(shí)際開發(fā)中如何合理的運(yùn)用各種經(jīng)典的過(guò)程模型,構(gòu)造出與具體開發(fā)方法相適應(yīng)的嚴(yán)格的應(yīng)用步驟。 軟件開發(fā)方法的研究 如面向構(gòu)件的方法、極限編程,面向服務(wù)的方法、輕型計(jì)劃的方法、以及針對(duì)具體行業(yè)的特殊開發(fā)方法等 管理過(guò)程的研究 為了使軟件項(xiàng)目能夠按照預(yù)定的成本、進(jìn)度、質(zhì)量要求順利完成項(xiàng)目開發(fā),而對(duì)成本、人員、進(jìn)度、質(zhì)量、風(fēng)險(xiǎn)等因素進(jìn)行分析、控制和管理的活動(dòng),旨在整個(gè)企業(yè)的開發(fā)能力。 設(shè)計(jì)模式研究每一個(gè)設(shè)計(jì)模式描述了一個(gè)在我們周圍不斷重復(fù)發(fā)生的問(wèn)題,以及該問(wèn)題的解決方案

39、的核心 輔助工具的研究軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML3.1軟件工程的發(fā)展趨勢(shì)及成功經(jīng)驗(yàn)現(xiàn)代軟件工程的成功經(jīng)驗(yàn)文檔可視化迭代式開發(fā)使用模式基于組件的架構(gòu)變更管理(變更文檔)軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML3.1軟件工程的發(fā)展趨勢(shì)及成功經(jīng)驗(yàn)統(tǒng)一建模語(yǔ)言在現(xiàn)代軟件工程中的作用它是優(yōu)秀的文檔可視化工具,符號(hào)形象直觀。能體現(xiàn)文檔的連貫性(即從需求設(shè)計(jì)實(shí)現(xiàn)的自然過(guò)渡,且能較靈活地應(yīng)對(duì)變更)。貫穿軟件開發(fā)生命周期各個(gè)階段。能清楚地表達(dá)設(shè)計(jì)模式。與最好的軟件工程實(shí)踐經(jīng)驗(yàn)集成為面向?qū)ο蟮脑O(shè)計(jì)與開發(fā)中涌現(xiàn)出的高級(jí)概念( 如協(xié)作 、框架 、模式和組件)提供支持, 強(qiáng)調(diào)在軟件開發(fā)中 對(duì)架構(gòu)、 框架、 模式和

40、組件的重用。與具體的實(shí)現(xiàn)無(wú)關(guān), 可應(yīng)用于任何語(yǔ)言平臺(tái)和工具平臺(tái);與具體的過(guò)程無(wú)關(guān), 可應(yīng)用于任何軟件開發(fā)的過(guò)程;軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML3.2統(tǒng)一建模語(yǔ)言概述模型的三個(gè)特點(diǎn)是一種簡(jiǎn)化;通過(guò)不同的視角看問(wèn)題;使用通用的符號(hào)。軟件建模的實(shí)現(xiàn)過(guò)程軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML3.2統(tǒng)一建模語(yǔ)言概述面向?qū)ο蟮能浖C(jī)制 軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML3.2統(tǒng)一建模語(yǔ)言概述統(tǒng)一建模語(yǔ)言 (Unified Modeling Language,UML)是一種通用的可視化面向?qū)ο蟮慕UZ(yǔ)言,適用于對(duì)任何面向?qū)ο蟮氖挛锏慕?軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML3.2統(tǒng)一建模語(yǔ)言概述U

41、ML中的五類圖用例圖(Use Case Diagram)從用戶角度描述系統(tǒng)功能。靜態(tài)圖包括類圖(Class Diagram)、對(duì)象圖(Object Diagram)和包圖(Package Diagram)。其中類圖描述系統(tǒng)中類的靜態(tài)結(jié)構(gòu)。對(duì)象圖是類圖的實(shí)例。包圖由包或類組成,表示包與包之間的關(guān)系。包圖用于描述系統(tǒng)的分層結(jié)構(gòu)。行為圖包括狀態(tài)圖(Statechart Diagram)和活動(dòng)圖(Activity Diagram)。其中,狀態(tài)圖描述類的對(duì)象所有可能的狀態(tài)以及事件發(fā)生時(shí)狀態(tài)的轉(zhuǎn)移條件;活動(dòng)圖描述用例中的活動(dòng)以及活動(dòng)間的約束關(guān)系,可用于識(shí)別活動(dòng)的并發(fā)性。交互圖描述對(duì)象間的交互關(guān)系。包括順序

42、圖(Sequence Diagram)和協(xié)作圖(Collaboration Diagram)。順序圖顯示對(duì)象之間依時(shí)間展開的交互關(guān)系;協(xié)作圖可以表達(dá)與順序圖相同的信息,它進(jìn)一步強(qiáng)調(diào)對(duì)象間的協(xié)作關(guān)系。實(shí)現(xiàn)圖包括組件圖(Component Diagram)和部署圖(Deployment Diagram)。組件圖描述軟件組件之間的依賴關(guān)系,這些組件包括源代碼文件、二進(jìn)制文件和可執(zhí)行文件等;部署圖顯示了基于計(jì)算機(jī)系統(tǒng)的物理體系結(jié)構(gòu)。軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言UML3.2統(tǒng)一建模語(yǔ)言概述UML的建?;具^(guò)程Thank You !中國(guó)水利水電出版社軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言第4章 用例圖 4.1

43、用例概述 4.1.1 用例建模的目的 4.1.2 定義用例圖 4.1.3 用例圖的主要組件 4.2 識(shí)別參與者 4.2.1 捕獲需求 4.2.2 識(shí)別參與者 軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言第四章 用例圖 4.3 識(shí)別用例 4.3.1 識(shí)別用例的方法 4.3.2 用例的命名規(guī)則 4.4 用例間的關(guān)系 4.4.1 泛化關(guān)系 4.4.2 包含關(guān)系 4.4.3 擴(kuò)展關(guān)系4.5 用例文檔軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言第四章 用例圖 4.6 重構(gòu)系統(tǒng)的用例模型 4.7 用例建模實(shí)例書店借書系統(tǒng) 4.7.1 建立用例模型的步驟 4.7.2 確定系統(tǒng)邊界 4.7.3 識(shí)別參與者 4.7.4 識(shí)別用例 4.7.

44、5 建立用例圖 4.7.6 書寫用例文檔 4.7.7 通過(guò)關(guān)系整理用例 軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言第四章 用例圖 教學(xué)要求掌握:用例圖定義、用例圖的標(biāo)記符組件以及如何建立用例圖模型。理解:用例圖建模的原因、泛化技術(shù),以及包含與擴(kuò)展關(guān)系。了解:描述用例的方法。軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言4.1 用例圖概述 用例建模的目的 利用“系統(tǒng)”的觀點(diǎn)來(lái)分析問(wèn)題、解決問(wèn)題。使用計(jì)算機(jī)邏輯來(lái)模擬描述系統(tǒng)本身,包括系統(tǒng)的組成、關(guān)系、系統(tǒng)的各種可能狀態(tài)以及系統(tǒng)中可能產(chǎn)生的過(guò)程和過(guò)程引起的切換。 可以利用一個(gè)容易理解的模型來(lái)描述用戶如何使用這個(gè)系統(tǒng)、系統(tǒng)和客戶以及系統(tǒng)和外部系統(tǒng)之間的交互過(guò)程,這個(gè)模型也就是通

45、常我們所說(shuō)的使用UML設(shè)計(jì)新系統(tǒng)的起始點(diǎn)用例圖。 軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言4.1 用例圖概述 定義用例圖 用例圖是有關(guān)系統(tǒng)細(xì)節(jié)的最高形式。它能準(zhǔn)確地說(shuō)明客戶對(duì)他們要開發(fā)的應(yīng)用程序期望有什么樣的功能用例圖是一種在系統(tǒng)完成后能使管理機(jī)構(gòu)、用戶和其他干系人了解其功能的極好方法。 登錄系統(tǒng)存款取款查詢余額修改密碼轉(zhuǎn)賬退出系統(tǒng)客戶軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言4.1 用例圖概述 用例圖的主要組件 用例圖包含4個(gè)基本組件:參與者(Actor)、用例(Use Case)、關(guān)系、系統(tǒng)。 (1)參與者。參與者是系統(tǒng)外部的一個(gè)實(shí)體,它以某種方式參與用例的執(zhí)行過(guò)程。(2)用例。用例代表系統(tǒng)的某項(xiàng)完整的功能,是

46、動(dòng)作步驟的集合。系統(tǒng)的功能是通過(guò)參與者使用用例來(lái)實(shí)現(xiàn)的。 軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言4.1 用例圖概述 用例圖的主要組件 用例圖包含4個(gè)基本組件:參與者(Actor)、用例(Use Case)、關(guān)系、系統(tǒng)。 (3)關(guān)系。除了用例和參與者之間的關(guān)聯(lián)關(guān)系以外,還可以定義參與者之間的泛化關(guān)系,用例之間有包含、擴(kuò)展和泛化關(guān)系。 (4)系統(tǒng)。系統(tǒng)指一個(gè)軟件系統(tǒng)、一項(xiàng)業(yè)務(wù)、一個(gè)商務(wù)活動(dòng)、一臺(tái)機(jī)器等。 (圖見書)軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言4.2 識(shí)別參與者 捕獲需求 收集需求的方式有訪談、問(wèn)卷調(diào)查、實(shí)地觀察、使用原型、特定群體調(diào)查、用戶指導(dǎo)等。需求的來(lái)源主要是人、各種現(xiàn)有成品(如報(bào)表、培訓(xùn)手冊(cè)、視頻

47、記錄等)、現(xiàn)有的軟件系統(tǒng)或人工系統(tǒng)。通過(guò)各種形式記錄下收集到的需求信息,經(jīng)過(guò)整理,從中獲取有價(jià)值的信息來(lái)建立系統(tǒng)模型。 軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言4.2 識(shí)別參與者 識(shí)別參與者的方法 識(shí)別參與者的思路,可以從以下幾個(gè)方面來(lái)考慮:(1)誰(shuí)使用系統(tǒng)的主要功能?(2)誰(shuí)改變系統(tǒng)的數(shù)據(jù)?(3)誰(shuí)從系統(tǒng)獲取信息?(4)誰(shuí)需要系統(tǒng)的支持以完成日常工作任務(wù)?(5)誰(shuí)負(fù)責(zé)維護(hù)、管理并保持系統(tǒng)正常運(yùn)行?(6)系統(tǒng)需要處理哪些硬設(shè)備?(7)系統(tǒng)需要和哪些外部系統(tǒng)交互?(8)誰(shuí)對(duì)系統(tǒng)運(yùn)行產(chǎn)生的結(jié)果感興趣?(9)有無(wú)時(shí)間、氣溫等內(nèi)部或外部條件? 軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言4.3 識(shí)別用例識(shí)別用例的方法 在識(shí)別

48、用例的過(guò)程中,可以從以下幾個(gè)方面來(lái)考慮: (1)特定參與者希望系統(tǒng)提供什么功能。(2)系統(tǒng)是否存儲(chǔ)和檢索信息,如果是,由哪個(gè)參與者觸發(fā)。(3)當(dāng)系統(tǒng)改變狀態(tài)時(shí),是否通知參與者。(4)是否存在影響系統(tǒng)的外部事件。軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言4.3 識(shí)別用例 用例的命名規(guī)則 用例名是一個(gè)字符串,用例是從用戶的角度來(lái)描繪系統(tǒng)的功能,因此命名的基本原則是:從參與者的角度出發(fā)進(jìn)行命名(如使用“登錄”而不用“身份驗(yàn)證”),使用動(dòng)詞加賓語(yǔ)的結(jié)構(gòu),盡量使用行業(yè)術(shù)語(yǔ)(如使用“報(bào)銷”,而不用“交錢”)。系統(tǒng)中用例太多時(shí)需求要適當(dāng)分組(包),這時(shí)可以通過(guò)在用例名后面加上雙冒號(hào)和包名來(lái)表示該用例是屬于哪個(gè)包的。軟件

49、開發(fā)生命周期與統(tǒng)一建模語(yǔ)言4.4 用例間的關(guān)系 泛化關(guān)系 用例與用例之間也存在著泛化關(guān)系,通常用于表示同一業(yè)務(wù)目的(父用例)的不同技術(shù)實(shí)現(xiàn)(各個(gè)子用例)。 軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言4.4 用例間的關(guān)系 包含關(guān)系 在包含關(guān)系中,基本用例吸收了被包含的用例的行為,如果沒有后者它將是不完整的。包含關(guān)系的劃分有兩個(gè)好處:一是被包含用例被抽取出來(lái),基本用例得以簡(jiǎn)化;二是可以抽象出公共事件流,實(shí)現(xiàn)功能代碼的復(fù)用。 軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言4.4 用例間的關(guān)系 擴(kuò)展關(guān)系 如果在完成某個(gè)功能的時(shí)候有時(shí)會(huì)執(zhí)行另一個(gè)功能,則用擴(kuò)展關(guān)系來(lái)表示。擴(kuò)展關(guān)系表示為虛線箭頭加“”字樣,箭頭指向被擴(kuò)展的用例。 教

50、師在保存成績(jī)的時(shí)候,如果有學(xué)生成績(jī)不合格將打印補(bǔ)考通知單 軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言4.5 用例文檔 用例文檔用例圖不足以表達(dá)更多的細(xì)節(jié),對(duì)于系統(tǒng)中的每一個(gè)用例,還需要了解詳細(xì)的執(zhí)行情況,以便完整地理解創(chuàng)建系統(tǒng)時(shí)的設(shè)計(jì)任務(wù)。用例文檔為我們提供了一個(gè)很好的模板 。用例編號(hào):用例名:用例描述:參與者:前置條件:后置條件:事件路徑:擴(kuò)展點(diǎn):補(bǔ)充說(shuō)明:軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言4.6 重構(gòu)系統(tǒng)的用例模型用例建模的過(guò)程本身就是一個(gè)反復(fù)迭代和逐步精化的過(guò)程。 如果你對(duì)以下問(wèn)題都回答“是”的話,那么這個(gè)用例就是合理的;否則,這個(gè)用例需要拆分為幾個(gè)小的用例。 這個(gè)用例是否能夠帶來(lái)一個(gè)獨(dú)立的好處?是否可

51、以用簡(jiǎn)潔的文字來(lái)描述這個(gè)好處?參與者是否能夠僅通過(guò)一次會(huì)話就完成這個(gè)用例?能否想象在一個(gè)連貫的測(cè)試計(jì)劃中,這個(gè)用例將是一個(gè)測(cè)試用例? 軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言4.6 重構(gòu)系統(tǒng)的用例模型用例建模的過(guò)程本身就是一個(gè)反復(fù)迭代和逐步精化的過(guò)程。 如果你對(duì)以下問(wèn)題都回答“是”的話,那么這個(gè)用例就是有效的和獨(dú)立的;否則,這個(gè)用例實(shí)際上可能是其他用例的一個(gè)部分。參與者是否得到了明確的信息或者以某種可度量的方式改變系統(tǒng)?執(zhí)行這個(gè)用例之后,參與者是否可以在確定的時(shí)間內(nèi)停止使用這個(gè)系統(tǒng)?軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言4.6 重構(gòu)系統(tǒng)的用例模型訂餐預(yù)約系統(tǒng)的最終用例模型 軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言4.7

52、用例建模實(shí)例書店借書系統(tǒng) 書店借書系統(tǒng) 建立用例模型的步驟 (1)確定系統(tǒng)邊界。(2)識(shí)別參與者。(3)識(shí)別用例。(4)區(qū)分用例的優(yōu)先次序。(5)書寫用例文檔。(6)通過(guò)關(guān)系整理用例(確定泛化、包含、擴(kuò)展關(guān)系)。 軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言4.7 用例建模實(shí)例書店借書系統(tǒng) 書店借書系統(tǒng)-確定系統(tǒng)邊界 建立用例模型的步驟 確定系統(tǒng)邊界 書店借書系統(tǒng)初步分析包含了借閱管理員辦理借還書業(yè)務(wù)、辦理會(huì)員卡業(yè)務(wù)。與書店銷售系統(tǒng)使用共同的數(shù)據(jù)庫(kù)。軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言4.7 用例建模實(shí)例書店借書系統(tǒng) 書店借書系統(tǒng) 識(shí)別參與者 誰(shuí)使用系統(tǒng)的主要功能?借閱管理員誰(shuí)改變系統(tǒng)的數(shù)據(jù)?借閱管理員誰(shuí)從系統(tǒng)獲

53、取信息?借閱管理員、會(huì)員誰(shuí)需要系統(tǒng)的支持以完成日常工作任務(wù)?借閱管理員誰(shuí)負(fù)責(zé)維護(hù)、管理并保持系統(tǒng)正常運(yùn)行?借閱管理員系統(tǒng)需要處理哪些硬設(shè)備?沒有特殊的硬設(shè)施系統(tǒng)需要和哪些外部系統(tǒng)交互?書店銷售系統(tǒng)誰(shuí)對(duì)系統(tǒng)運(yùn)行產(chǎn)生的結(jié)果感興趣?借閱管理員、會(huì)員時(shí)間、氣溫等內(nèi)部外部條件?時(shí)間軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言4.7 用例建模實(shí)例書店借書系統(tǒng) 書店借書系統(tǒng)識(shí)別用例 特定參與者希望系統(tǒng)提供什么功能?會(huì)員業(yè)務(wù)、借還書業(yè)務(wù)、借書完成后打印憑條系統(tǒng)是否存儲(chǔ)和檢索信息,如果是,由哪個(gè)參與者觸發(fā)?借閱管理員當(dāng)系統(tǒng)改變狀態(tài)時(shí),是否通知參與者?是是否存在影響系統(tǒng)的外部事件?否軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言4.7 用例建

54、模實(shí)例書店借書系統(tǒng) 書店借書系統(tǒng) 建立用例圖 ,提出以下基本用例的優(yōu)先次序: 借還書注冊(cè)會(huì)員查詢會(huì)員信息修改會(huì)員信息登錄注銷會(huì)員 軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言4.7 用例建模實(shí)例書店借書系統(tǒng) 書店借書系統(tǒng) 書寫用例文檔 (見書,略)軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言4.7 用例建模實(shí)例書店借書系統(tǒng) 書店借書系統(tǒng) 通過(guò)關(guān)系整理用例 軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言本章小結(jié)用例模型是分析功能需求的一個(gè)有力工具。它由用例圖和每個(gè)用例的文檔組成。用例圖可以可視化地表達(dá)出用例功能,使分析員與用戶之間的交流更加容易。在用例圖中,用例的表示符號(hào)是一個(gè)橢圓,參與者的圖符是一個(gè)直立人形,參與者與用例之間用關(guān)聯(lián)線連接

55、,通常用例都位于表示系統(tǒng)邊界的矩形框之中。用例之間存在各種關(guān)系:包含關(guān)系用帶關(guān)鍵字的虛線箭頭線表示;擴(kuò)展關(guān)系用帶關(guān)鍵字的虛線箭頭線表示;還有一種泛化關(guān)系,表示一個(gè)用例繼承了另一個(gè)用例的屬性和行為。分析過(guò)程開始于和客戶交談,產(chǎn)生系統(tǒng)高層用例圖。用例圖在分析過(guò)程中起著很重要的作用,它能反映系統(tǒng)基本的功能需求。但要?jiǎng)?chuàng)建完整的用例模型,還要對(duì)每個(gè)高層用例進(jìn)行細(xì)化,建立用例文檔。對(duì)于復(fù)雜的系統(tǒng)可以先畫出表達(dá)系統(tǒng)整體功能的頂層用例模型,再畫出各個(gè)功能的用例模型子圖。用例模型是后期設(shè)計(jì)和開發(fā)的基礎(chǔ)。 Thank You !中國(guó)水利水電出版社軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言第5章 靜態(tài)模型 5.1 靜態(tài)模型的基

56、本概述 5.2 類圖 5.2.1 類圖概述 5.2.2 類圖的基本組件 5.2.3 關(guān)系 5.2.4 關(guān)聯(lián)關(guān)系的不同重?cái)?shù)與代碼的映射 5.2.5 如何建模類圖 軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言第五章 靜態(tài)模型5.3 對(duì)象圖 5.3.1 對(duì)象圖的概念 5.3.2 對(duì)象圖和類圖的區(qū)別 5.4 包圖 5.4.1 包圖的概念 5.4.2 包圖建模 軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言第5章 靜態(tài)模型 教學(xué)要求掌握:類圖的標(biāo)記符組件,如何建模類,如何建模類圖。理解:如何表現(xiàn)類的特性、職責(zé)和約束,類之間的關(guān)系。了解:如何建模對(duì)象圖、包圖。軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言5.1 靜態(tài)模型的基本概述 靜態(tài)模型的基本概述

57、 靜態(tài)模型包括類圖、對(duì)象圖、包圖、組件圖和部署圖。類圖描述系統(tǒng)中類的靜態(tài)結(jié)構(gòu),它不僅定義系統(tǒng)中的類,表示類之間的關(guān)系(如關(guān)聯(lián)、依賴、聚集等),也表達(dá)類的內(nèi)部結(jié)構(gòu)(即類的屬性和操作)。類圖描述的這種靜態(tài)關(guān)系涉及軟件系統(tǒng)開發(fā)的整個(gè)生命周期。對(duì)象圖是類圖的實(shí)例,符號(hào)與類圖非常相似,可以認(rèn)為對(duì)象圖是類圖在程序執(zhí)行的某個(gè)過(guò)程中一瞬間的快照。包圖由包或類組成(有時(shí)也包括組件),表示包與包之間的關(guān)系。包圖可以用于描述系統(tǒng)的分層結(jié)構(gòu)。組件圖和部署圖涉及程序的物理實(shí)現(xiàn)。軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言5.1 靜態(tài)模型的基本概述 采用面向?qū)ο蠹夹g(shù)設(shè)計(jì)系統(tǒng)步驟 描述需求 根據(jù)需求建立系統(tǒng)的靜態(tài)模型以構(gòu)造系統(tǒng)的結(jié)構(gòu) 描

58、述系統(tǒng)的行為 軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言5.1 靜態(tài)模型的基本概述 靜態(tài)模型的基本概述 用例圖、類圖(包含包)、對(duì)象圖、組件圖和部署圖5類圖形,是統(tǒng)一建模語(yǔ)言UML的靜態(tài)建模機(jī)制。 狀態(tài)圖、活動(dòng)圖、順序圖和協(xié)作圖4類圖形,是統(tǒng)一建模語(yǔ)言UML的動(dòng)態(tài)建模機(jī)制 。軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言5.2 類圖 類圖概述 類圖是用來(lái)顯示系統(tǒng)中的類、接口以及它們之間的靜態(tài)結(jié)構(gòu)和關(guān)系的一種靜態(tài)模型,它用于描述系統(tǒng)的結(jié)構(gòu)。 類圖的建模貫穿系統(tǒng)的分析和設(shè)計(jì)階段的始終,通常從商務(wù)伙伴能夠理解的用例開始建模,最終往往成為只有開發(fā)小組能夠完全理解的類。 建模類圖也是一個(gè)反復(fù)迭代的過(guò)程。 類圖包含兩個(gè)元素:類、關(guān)系

59、 。軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言5.2 類圖 當(dāng)對(duì)系統(tǒng)的靜態(tài)模型建模時(shí),通常以下面的3種方式之一使用類圖: 對(duì)系統(tǒng)的靜態(tài)對(duì)象建模。如書店借書系統(tǒng)的Book類、學(xué)生管理系統(tǒng)的Student類等。對(duì)簡(jiǎn)單的協(xié)作建模。協(xié)作是一些共同行為的類、接口和其他元素的群體。如數(shù)據(jù)庫(kù)連接類、用戶驗(yàn)證類、過(guò)濾字符串類等。對(duì)邏輯數(shù)據(jù)庫(kù)模式建模。在很多領(lǐng)域中,都需要在關(guān)系數(shù)據(jù)庫(kù)或面向?qū)ο髷?shù)據(jù)庫(kù)中存儲(chǔ)永久信息,系統(tǒng)分析者可以用類圖對(duì)這些需要永久化的實(shí)體建模。軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言5.2 類圖 類圖的基本組件 類 軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言5.2 類圖 類命名時(shí)應(yīng)該遵守以下幾條準(zhǔn)則:使用標(biāo)準(zhǔn)術(shù)語(yǔ)。使用具有確切

60、含義的名詞。必要時(shí)用名詞短語(yǔ)作名字。對(duì)于類圖中的類而言,它的類名、屬性、操作也有一定的書寫規(guī)范。類名:正體字說(shuō)明類是可被實(shí)例化的,斜體字說(shuō)明類為抽象類。 屬性:按照“可見性 屬性名 :類型 =初始值”的書寫順序。操作:按照“可見性 方法名稱( 參數(shù)列表) :返回類型”的書寫順序。軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言5.2 類圖 類的表示方法軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言5.2 類圖 隱藏屬性部分或操作部分,或者兩者都隱藏 軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)言5.2 類圖 通過(guò)在屬性名稱和數(shù)據(jù)類型之后添加等號(hào)來(lái)為屬性指定默認(rèn)值 在UML中,可以通過(guò) 符號(hào)表示類的某些屬性的多重性 軟件開發(fā)生命周期與統(tǒng)一建模語(yǔ)

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論