![全套課件·《軟件開發(fā)生命周期與統(tǒng)一建模語言UML》1_第1頁](http://file4.renrendoc.com/view/1cc4ff87a19679f06fb07e86d6dc1bd6/1cc4ff87a19679f06fb07e86d6dc1bd61.gif)
![全套課件·《軟件開發(fā)生命周期與統(tǒng)一建模語言UML》1_第2頁](http://file4.renrendoc.com/view/1cc4ff87a19679f06fb07e86d6dc1bd6/1cc4ff87a19679f06fb07e86d6dc1bd62.gif)
![全套課件·《軟件開發(fā)生命周期與統(tǒng)一建模語言UML》1_第3頁](http://file4.renrendoc.com/view/1cc4ff87a19679f06fb07e86d6dc1bd6/1cc4ff87a19679f06fb07e86d6dc1bd63.gif)
![全套課件·《軟件開發(fā)生命周期與統(tǒng)一建模語言UML》1_第4頁](http://file4.renrendoc.com/view/1cc4ff87a19679f06fb07e86d6dc1bd6/1cc4ff87a19679f06fb07e86d6dc1bd64.gif)
![全套課件·《軟件開發(fā)生命周期與統(tǒng)一建模語言UML》1_第5頁](http://file4.renrendoc.com/view/1cc4ff87a19679f06fb07e86d6dc1bd6/1cc4ff87a19679f06fb07e86d6dc1bd65.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、軟件開發(fā)生命周期與統(tǒng)一建模語言UML軟件開發(fā)生命周期與統(tǒng)一建模語言UML軟件開發(fā)生命周期與統(tǒng)一建模語言軟件工程概述1結(jié)構(gòu)化程序設(shè)計與面向?qū)ο蟪绦蛟O(shè)計 2統(tǒng)一建模語言與現(xiàn)代軟件工程 3用例圖 4靜態(tài)模型 5軟件開發(fā)生命周期與統(tǒng)一建模語言UML軟件開發(fā)生命周期與統(tǒng)一建模語言動態(tài)模型 6UML實現(xiàn)與部署 7新聞發(fā)布系統(tǒng)的實例 8Rational Rose簡介 9軟件開發(fā)生命周期與統(tǒng)一建模語言UML第1章 軟件工程概述 1.1 用例概述 1.1.1 軟件及其特點 1.1.2 軟件危機(jī) 1.1.3 軟件工程的定義1.1.4 軟件工程的基本原理1.2 軟件開發(fā)生命周期 1.3 過程模型 1.3.1 常見的
2、生命周期模型 1.3.2 生命周期模型的應(yīng)用 1.4 軟件工程方法學(xué) 軟件開發(fā)生命周期與統(tǒng)一建模語言UML第1章 軟件工程概述 教學(xué)要求理解:軟件和軟件工程的概念;軟件開發(fā)生命周期。掌握:軟件過程模型運用的原則。軟件開發(fā)生命周期與統(tǒng)一建模語言UML軟件開發(fā)是一個專業(yè)領(lǐng)域的人在為另一個專業(yè)領(lǐng)域的人服務(wù)在軟件開發(fā)過程中,需求可能經(jīng)常在變,每次需求變化會帶來軟件系統(tǒng)的開發(fā)延遲,甚至出現(xiàn)變更反復(fù),被推倒了的內(nèi)容又要重新確立在軟件沒有最終交付時,用戶如何了解開發(fā)進(jìn)展情況系統(tǒng)難以維護(hù)和擴(kuò)展,經(jīng)常重復(fù)開發(fā)類似的功能項目經(jīng)常延期,實際成本往往遠(yuǎn)遠(yuǎn)高于估計成本開發(fā)團(tuán)隊內(nèi)部使用了不同的技術(shù),在交流時常常有障礙如何
3、應(yīng)對軟件開發(fā)過程中的種種不確定因素,更有效地開發(fā)與維護(hù)軟件?1.1 軟件、軟件危機(jī)和軟件工程的定義軟件開發(fā)生命周期與統(tǒng)一建模語言UML1.1 軟件、軟件危機(jī)和軟件工程的定義軟件與硬件軟件開發(fā)生命周期與統(tǒng)一建模語言UML軟件的特點軟件是腦力勞動的產(chǎn)品,但它不同于追求個性化的藝術(shù)作品;軟件是產(chǎn)品,但它又不同于工業(yè)化生產(chǎn)得到的有形產(chǎn)品 1.1 軟件、軟件危機(jī)和軟件工程的定義軟件開發(fā)生命周期與統(tǒng)一建模語言UML1.1 軟件、軟件危機(jī)和軟件工程的定義軟件的特點描述抽象性軟件是一種邏輯實體而不是具體的物理實體,必須通過測試、分析、思考、判斷來了解它的功能、性能及其他特性可復(fù)制性軟件是通過人們的智力活動,把
4、知識與技術(shù)轉(zhuǎn)化成信息的一種產(chǎn)品,是在研制、開發(fā)中被創(chuàng)造出來的。一旦某一軟件項目研制成功,以后就可以大量地復(fù)制同一內(nèi)容的副本,即其研制成本遠(yuǎn)遠(yuǎn)大于其生產(chǎn)成本不會磨損在軟件的運行和使用期間,沒有硬件那樣的機(jī)械磨損、老化問題,但軟件也會出現(xiàn)故障,軟件維護(hù)比硬件維護(hù)要復(fù)雜得多,與硬件的維修有著本質(zhì)的差別依賴性軟件的開發(fā)和運行經(jīng)常受到計算機(jī)系統(tǒng)的限制,對計算機(jī)系統(tǒng)有著不同程度的依賴。為了消除這種依賴,在軟件開發(fā)中提出了軟件移植的問題,并且把軟件的可移植性作為衡量軟件質(zhì)量的因素之一開發(fā)效率低軟件的開發(fā)尚未完全擺脫手工的方式,依然有大量重復(fù)性的勞動開發(fā)費用高軟件的研制工作需要投入大量的、復(fù)雜的、高強(qiáng)度的腦力
5、勞動,需要較高的成本。軟件的開發(fā)是一個復(fù)雜的過程,因而管理是軟件開發(fā)過程中必不可少的內(nèi)容軟件開發(fā)生命周期與統(tǒng)一建模語言UML1.1 軟件、軟件危機(jī)和軟件工程的定義什么是軟件軟件 = 程序 + 數(shù)據(jù) + 文檔 數(shù)據(jù)包括初始化數(shù)據(jù)、測試數(shù)據(jù)、研發(fā)數(shù)據(jù)、運行數(shù)據(jù)、維護(hù)數(shù)據(jù),以及軟件企業(yè)積累的項目工程數(shù)據(jù)和項目管理數(shù)據(jù)。文檔是開發(fā)、使用和維護(hù)程序所需要的圖文資料。 軟件開發(fā)生命周期與統(tǒng)一建模語言UML1.1 軟件、軟件危機(jī)和軟件工程的定義什么是軟件危機(jī)軟件危機(jī)是指在計算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題如何開發(fā)軟件,以滿足對軟件日益增長的需求 如何維護(hù)數(shù)量不斷增加的已有軟件 軟件開發(fā)生命周
6、期與統(tǒng)一建模語言UML1.1 軟件、軟件危機(jī)和軟件工程的定義消除軟件危機(jī)的途徑正確認(rèn)識軟件。軟件=程序+數(shù)據(jù)+文檔在軟件開發(fā)的各個階段都要有完備的文檔。加強(qiáng)管理。軟件開發(fā)應(yīng)該是一種組織良好、管理嚴(yán)密、各類人員協(xié)同配合、共同完成的工程項目,應(yīng)該推廣使用在實踐中總結(jié)出來的開發(fā)軟件的成功的技術(shù)和方法。使用軟件工具。在軟件開發(fā)的每個階段都有許多煩瑣重復(fù)的工作需要做,在適當(dāng)?shù)能浖ぞ咻o助下,開發(fā)人員可以把這類工作做得既快又好??傊?,為了解決軟件危機(jī),既要有技術(shù)措施(方法和工具),又要有必要的組織管理措施。軟件工程正是從管理和技術(shù)兩方面研究如何更好地開發(fā)和維護(hù)計算機(jī)軟件的一門學(xué)科。軟件開發(fā)生命周期與統(tǒng)一建
7、模語言UML1.1 軟件、軟件危機(jī)和軟件工程的定義軟件工程的定義軟件工程 = 管理 + 技術(shù)軟件工程的目標(biāo) 軟件開發(fā)生命周期與統(tǒng)一建模語言UML1.1 軟件、軟件危機(jī)和軟件工程的定義軟件工程的基本原理(1)用分階段的生命周期計劃嚴(yán)格管理。統(tǒng)計發(fā)現(xiàn),不成功的軟件項目中有一半左右是由于計劃不周造成的。因此,有必要制定完善的計劃,分階段地進(jìn)行管理和控制。(2)堅持進(jìn)行階段評審。軟件中的大部分錯誤是在編碼之前造成的;錯誤發(fā)現(xiàn)與改正得越晚,所需付出的代價也就越高,如圖1-4所示。因此,在每個階段都進(jìn)行嚴(yán)格的評審以盡早發(fā)現(xiàn)在軟件開發(fā)過程中所犯的錯誤,是一條必須遵循的重要原則。早中晚低中高變化出現(xiàn)的時期代價
8、(3)實行嚴(yán)格的產(chǎn)品控制。軟件開發(fā)過程中,需求的變更往往需要付出較高的代價,但這種改變又是難以避免的,因此不能硬性禁止客戶提出改變需求的要求,而要依靠科學(xué)的產(chǎn)品控制技術(shù)來順應(yīng)這種要求,按照嚴(yán)格的規(guī)程進(jìn)行變更控制。(4)采用現(xiàn)代程序設(shè)計技術(shù)。如“清晰第一、效率第二”的程序風(fēng)格;面向?qū)ο蟮姆治龇椒ǎ桓鞣N框架技術(shù)的使用、模式的應(yīng)用;軟件建模方法的運用等。實踐表明,采用先進(jìn)的技術(shù)不僅可以提高軟件開發(fā)和維護(hù)的效率,而且可以提高軟件產(chǎn)品的質(zhì)量。(5)結(jié)果應(yīng)能清楚地審查。軟件是腦力勞動的邏輯產(chǎn)品,應(yīng)該根據(jù)軟件開發(fā)項目的總目標(biāo)及完成期限規(guī)定開發(fā)組織的責(zé)任和產(chǎn)品標(biāo)準(zhǔn),制定出完備的文檔,從而提高其“可見性”。(6
9、)開發(fā)小組的人員應(yīng)該少而精。(7)不斷改進(jìn)軟件工程實踐的經(jīng)驗和技術(shù)。軟件開發(fā)生命周期與統(tǒng)一建模語言UML改正同一錯誤付出的代價隨時間變化的趨勢早中晚低中高變化出現(xiàn)的時期代價1.1 軟件、軟件危機(jī)和軟件工程的定義軟件開發(fā)生命周期與統(tǒng)一建模語言UML1.2 軟件開發(fā)生命周期如何蓋一棟大樓? 軟件開發(fā)生命周期與統(tǒng)一建模語言UML1.2 軟件開發(fā)生命周期 1問題定義“要解決的問題是什么?”2可行性論證“有行得通的解決辦法嗎?”3需求分析“系統(tǒng)必須做什么?”4總體設(shè)計“概括地說,怎樣做?”5詳細(xì)設(shè)計“具體怎樣做?”6編碼和單元測試7綜合測試8運行/維護(hù)軟件開發(fā)生命周期與統(tǒng)一建模語言UML1.2 軟件開發(fā)
10、生命周期1問題定義“要解決的問題是什么?”通過對客戶的訪問調(diào)查,系統(tǒng)分析員扼要地寫出關(guān)于問題性質(zhì)、工程目標(biāo)和工程規(guī)模的書面報告,經(jīng)過討論和必要的修改之后這份報告應(yīng)該得到客戶的確認(rèn)。軟件開發(fā)生命周期與統(tǒng)一建模語言UML1.2 軟件開發(fā)生命周期2可行性論證及軟件計劃“有行得通的解決辦法嗎?”目的:用最小的代價在盡可能短的時間內(nèi)確定該軟件項目是否能夠開發(fā),是否值得去開發(fā)。主要任務(wù):了解客戶的要求及現(xiàn)實環(huán)境,從技術(shù)、經(jīng)濟(jì)和社會因素三方面研究并論證本軟件項目的可行性,編寫可行性研究報告,制定初步的項目開發(fā)計劃。軟件開發(fā)生命周期與統(tǒng)一建模語言UML1.2 軟件開發(fā)生命周期可行性論證及軟件計劃(續(xù))具體步驟
11、:(1)確定項目規(guī)模和目標(biāo)。(2)研究正在運行的系統(tǒng)。(3)建立新系統(tǒng)的高層邏輯模型。(4)導(dǎo)出和評價各種方案。(5)推薦可行的方案。(6)編寫可行性研究報告。系統(tǒng)分析員需要進(jìn)行一次大大壓縮和簡化了的系統(tǒng)分析和設(shè)計過程,研究問題的范圍,探索這個問題是否值得去解決,是否有可行的解決辦法。如果可行,制定出初步的開發(fā)計劃。軟件開發(fā)生命周期與統(tǒng)一建模語言UML1.2 軟件開發(fā)生命周期3需求分析“系統(tǒng)必須做什么?”確定目標(biāo)系統(tǒng)必須具備哪些功能。軟件開發(fā)是一個專業(yè)領(lǐng)域的人在為另一個專業(yè)領(lǐng)域的人做事。用戶了解他們所面對的問題,知道必須做什么,但是通常不能完整準(zhǔn)確地表達(dá)出他們的要求,更不知道怎樣利用計算機(jī)解決
12、他們的問題;軟件開發(fā)人員知道怎樣用軟件實現(xiàn)人們的要求,但是對特定用戶的具體要求并不完全清楚。因此,系統(tǒng)分析員在需求分析階段必須和用戶密切配合,充分交流信息,以得出用戶認(rèn)可的各種模型。常用的有用例模型、活動圖、順序圖、類圖、數(shù)據(jù)流圖、層次圖等。需求分析階段的兩個任務(wù)是捕獲需求和分析整理需求。需求分析階段確定的系統(tǒng)邏輯模型是以后設(shè)計和實現(xiàn)目標(biāo)系統(tǒng)的基礎(chǔ),因此必須準(zhǔn)確完整地體現(xiàn)用戶的要求。這個階段的一項重要任務(wù)是,用正式文檔準(zhǔn)確地記錄對目標(biāo)系統(tǒng)的需求,即規(guī)格說明書。軟件開發(fā)生命周期與統(tǒng)一建模語言UML1.2 軟件開發(fā)生命周期4總體設(shè)計“概括地說,應(yīng)該怎樣做?”基本任務(wù):(1)設(shè)計出實現(xiàn)目標(biāo)系統(tǒng)的幾種
13、可能的方案。軟件工程師用適當(dāng)?shù)谋磉_(dá)工具描述每種方案,分析每種方案的優(yōu)缺點,并在充分權(quán)衡各種方案的利弊的基礎(chǔ)上推薦一個最佳方案。此外,還應(yīng)該制定出實現(xiàn)最佳方案的詳細(xì)計劃。(2)設(shè)計軟件體系結(jié)構(gòu)。通常指劃分模塊,確定模塊的功能及其相互之間的調(diào)用關(guān)系,確定模塊間的接口等。(3)數(shù)據(jù)庫設(shè)計。(4)編寫概要設(shè)計文檔。軟件開發(fā)生命周期與統(tǒng)一建模語言UML1.2 軟件開發(fā)生命周期5詳細(xì)設(shè)計“具體怎樣做?”總體設(shè)計階段以比較抽象概括的方式提出了解決問題的辦法,詳細(xì)設(shè)計階段的任務(wù)就是把解法具體化。 這個階段的任務(wù)不是編寫程序,而是設(shè)計出程序的詳細(xì)規(guī)格說明,這種規(guī)格說明應(yīng)該包含必要的細(xì)節(jié),程序員可以根據(jù)它們寫出實
14、際的程序代碼。軟件開發(fā)生命周期與統(tǒng)一建模語言UML1.2 軟件開發(fā)生命周期6編碼和單元測試關(guān)鍵任務(wù):寫出正確的、容易理解、容易維護(hù)的程序模塊。程序員應(yīng)該根據(jù)目標(biāo)系統(tǒng)的性質(zhì)和實際環(huán)境選取一種適當(dāng)?shù)某绦蛟O(shè)計語言,把詳細(xì)設(shè)計的結(jié)果翻譯成用選定的語言書寫的程序,并且仔細(xì)測試編寫出的每一個模塊。軟件開發(fā)生命周期與統(tǒng)一建模語言UML1.2 軟件開發(fā)生命周期7綜合測試軟件測試的目的是希望以最低代價盡可能多地找出軟件中潛在的各種錯誤和缺陷。軟件測試并不是在軟件交付之后才開始,而應(yīng)盡早地、不斷地進(jìn)行,貫穿于軟件定義與開發(fā)的整個期間。例如,在需求分析和設(shè)計階段就要盡可能地考慮到如何提高軟件的可測試性。軟件開發(fā)生命
15、周期與統(tǒng)一建模語言UML1.2 軟件開發(fā)生命周期8運行/維護(hù)這一階段的關(guān)鍵任務(wù)是,通過各種必要的維護(hù)活動使系統(tǒng)持久地滿足用戶的需要。軟件開發(fā)生命周期與統(tǒng)一建模語言UML1.3 軟件過程模型(軟件生命周期模型)1瀑布模型核心思想是階段性的評審和驗證,每一階段結(jié)束時都要給出完整的文檔。缺點是該模型缺乏靈活性,后一階段出現(xiàn)的問題需要通過前一階段的重新確認(rèn)來解決。 軟件開發(fā)生命周期與統(tǒng)一建模語言UML2原型模型快速設(shè)計軟件中對用戶可見部分的表示,構(gòu)造原型,由用戶評估,逐步調(diào)整原型,使之滿足用戶需要。其優(yōu)點是開發(fā)者和用戶可以充分溝通,開發(fā)過程也是學(xué)習(xí)過程,可以低風(fēng)險開發(fā)柔性較大的計算機(jī)系統(tǒng)。1.3 軟件
16、過程模型(軟件生命周期模型)軟件開發(fā)生命周期與統(tǒng)一建模語言UML3螺旋模型把軟件開發(fā)過程組成為一個逐步細(xì)化的螺旋周期,每經(jīng)歷一個周期,系統(tǒng)就得到進(jìn)一步的細(xì)化和完善;整個模型緊密圍繞開發(fā)中的風(fēng)險分析,推動軟件設(shè)計向深層擴(kuò)展和求精。該模型要求開發(fā)人員與用戶能經(jīng)常直接進(jìn)行交流,通常用來指導(dǎo)內(nèi)部發(fā)行的大型軟件項目的開發(fā) 1.3 軟件過程模型(軟件生命周期模型)軟件開發(fā)生命周期與統(tǒng)一建模語言UML4增量模型一種漸近式的模型 第一個增量構(gòu)件往往實現(xiàn)軟件的基本需求,提供最核心的功能優(yōu)點:能在較短的時間內(nèi),向用戶提交可完成部分工作的產(chǎn)品;1.3 軟件過程模型(軟件生命周期模型)軟件開發(fā)生命周期與統(tǒng)一建模語言U
17、ML5迭代模型一種漸近式的模型,迭代模型與增量模型假設(shè)現(xiàn)在要開發(fā)A、B、C、D四個大的業(yè)務(wù)功能,每個功能都需要開發(fā)兩周的時間。對于增量方法而言可以將四個功能分為兩次增量來完成,第一個增量完成A、B功能,第二次增量完成C、D功能;而對于迭代開發(fā)來講則是分兩次迭代來開發(fā),第一次迭代完成A、B、C、D四個基本業(yè)務(wù)功能,但不含復(fù)雜的業(yè)務(wù)邏輯,而第二次迭代再逐漸細(xì)化補(bǔ)充完整相關(guān)的業(yè)務(wù)邏輯。就對風(fēng)險的消除上,增量和迭代模型都能夠很好地控制前期的風(fēng)險,但迭代模型在這方面更有優(yōu)勢。迭代模型可以更多地從總體方面思考系統(tǒng)問題,一開始就給出相對完善的框架或原型,后期的每次迭代都是針對上次迭代的逐步精化。1.3 軟件
18、過程模型(軟件生命周期模型)軟件開發(fā)生命周期與統(tǒng)一建模語言UML6快速原型模型快速建立起可以在計算機(jī)上運行的程序,它所完成的功能往往是最終產(chǎn)品功能的一個子集。通過讓用戶試用,收集反饋意見,從而獲取準(zhǔn)確的需求。這是一種很好的啟發(fā)式方法,可以快速地挖掘用戶需求并達(dá)成需求理解上的一致。當(dāng)用戶沒有信息系統(tǒng)的使用經(jīng)驗或系統(tǒng)分析員沒有過多的需求分析和挖掘經(jīng)驗的時候,這種方法將非常有效。1.3 軟件過程模型(軟件生命周期模型)軟件開發(fā)生命周期與統(tǒng)一建模語言UML7噴泉模型認(rèn)為軟件生命周期的各個階段是相互重疊和多次反復(fù)的,就像水噴上去又可以落下來,水既可以落在中間,也可以落在最底部。整個開發(fā)過程中都使用統(tǒng)一的
19、概念“對象”進(jìn)行分析,使用統(tǒng)一的概念和符號表示分析設(shè)計過程,各階段間沒有明顯的邊界,即“無縫”銜接,因此各開發(fā)步驟可以多次反復(fù)迭代,逐步深化。1.3 軟件過程模型(軟件生命周期模型)軟件開發(fā)生命周期與統(tǒng)一建模語言UML8MSF過程模型吸收了瀑布模型的里程碑和螺旋模型的反復(fù)迭代的思想 分為5個階段每一階段結(jié)束時都有明確的交付成果1.3 軟件過程模型(軟件生命周期模型)軟件開發(fā)生命周期與統(tǒng)一建模語言UML生命周期模型的應(yīng)用總體上說面向?qū)ο蟮某绦蛟O(shè)計采用的是噴泉模型,但局部可以結(jié)合其它模型。在前期需求明確、資料完整的情況下盡量采用瀑布模型。在用戶無信息系統(tǒng)使用經(jīng)驗,需求分析人員技能不足情況下要借助原
20、型。在不確定性因素很多,很多東西前面無法計劃的情況下盡量采用增量模型和螺旋模型。在需求不穩(wěn)定情況下盡量采用增量迭代模型。在資金和成本無法一次到位情況下可以采用增量模型,將產(chǎn)品分多個版本進(jìn)行發(fā)布。增量、迭代和原型可以綜合使用,但每一次增量或迭代都必須有明確的交付內(nèi)容??傊?,每個軟件開發(fā)組織都應(yīng)該根據(jù)所要開發(fā)的軟件特點及本組織的特點,選擇適合于自己的軟件過程模型,把各種生命周期模型的特性有機(jī)地結(jié)合起來,充分利用它們的優(yōu)點,回避缺陷。 1.3 軟件過程模型(軟件生命周期模型)軟件開發(fā)生命周期與統(tǒng)一建模語言UML1.4 軟件工程方法學(xué)研究如何通過分解和抽象,將復(fù)雜問題轉(zhuǎn)化成一系列可以理解和實現(xiàn)的簡單問
21、題 軟件開發(fā)生命周期與統(tǒng)一建模語言UML面向過程的程序 = 算法 + 數(shù)據(jù)結(jié)構(gòu)。面向?qū)ο蟮某绦?= 對象 + 類 + 繼承 + 消息通信。面向構(gòu)件的程序 = 構(gòu)件 + 架構(gòu)。形式化方法是建立在嚴(yán)格的數(shù)學(xué)基礎(chǔ)上,以邏輯推理為出發(fā)點,具有精確數(shù)學(xué)語義的開發(fā)方法。1.4 軟件工程方法學(xué)軟件開發(fā)生命周期與統(tǒng)一建模語言UML本章小結(jié)軟件不僅僅是程序,軟件=程序+數(shù)據(jù)+文檔。軟件工程是為了盡可能消除軟件危機(jī)的影響,克服軟件缺乏“可見性”的缺點,借鑒工業(yè)化生產(chǎn)的成功經(jīng)驗,對軟件產(chǎn)品的生產(chǎn)過程加以嚴(yán)格管理和控制的一門學(xué)科。它的最終目的是實現(xiàn)軟件的工業(yè)化生產(chǎn)。傳統(tǒng)軟件工程將軟件開發(fā)生命周期劃分為問題定義、可行性
22、分析、需求分析、概要設(shè)計、詳細(xì)設(shè)計、編碼、測試、運行維護(hù)8個階段,每一階段都有具體的任務(wù)和交付成果。軟件過程模型指如何具體地組織銜接軟件開發(fā)生命周期的各個階段。常見的有瀑布模型、螺旋模型、噴泉模型等。Thank You !中國水利水電出版社軟件開發(fā)生命周期與統(tǒng)一建模語言UML第2章 結(jié)構(gòu)化程序設(shè)計與面向?qū)ο蟪绦蛟O(shè)計2.1 概述 2.2 結(jié)構(gòu)化程序設(shè)計與面向?qū)ο蟪绦蛟O(shè)計2.2.1 實例 2.2.2 面向?qū)ο蠓椒ㄅc結(jié)構(gòu)化方法比較2.2.3 兩種方法的綜合運用2.3 結(jié)構(gòu)化方法的基本原理2.3.1 結(jié)構(gòu)化分析過程 2.3.2 結(jié)構(gòu)化分析工具 2.4 面向?qū)ο蠓椒▽W(xué)的基本概念和原則2.4.1 基本概念
23、 2.4.2 主要原則 軟件開發(fā)生命周期與統(tǒng)一建模語言UML第2章 結(jié)構(gòu)化程序設(shè)計與面向?qū)ο蟪绦蛟O(shè)計教學(xué)要求掌握:軟件結(jié)構(gòu)化分析方法中常用的方法及工具。理解:結(jié)構(gòu)化設(shè)計及面向?qū)ο笤O(shè)計的思路及特點;在面向?qū)ο笤O(shè)計中如何運用結(jié)構(gòu)化設(shè)計的方法及工具。了解:結(jié)構(gòu)化分析過程;面向?qū)ο蠓椒▽W(xué)的基本概念。軟件開發(fā)生命周期與統(tǒng)一建模語言UML2.1 概述結(jié)構(gòu)化方法與面向?qū)ο蟮姆椒ǖ墓残攒浖_發(fā)生命周期與統(tǒng)一建模語言UML2.2 面向?qū)ο蠓椒ㄅc結(jié)構(gòu)化方法比較實例“書店借書系統(tǒng)”的分析與設(shè)計(詳見教材) 軟件開發(fā)生命周期與統(tǒng)一建模語言UML2.2 面向?qū)ο蠓椒ㄅc結(jié)構(gòu)化方法比較(1)面向?qū)ο蠓椒ǚ磸?fù)迭代完善需求。對
24、已有的需求(參見附錄1)進(jìn)行整理,列出需求列表。與用戶交流得到有效的需求列表。畫出初始用例模型,表達(dá)系統(tǒng)的主要功能及主要業(yè)務(wù)流程。完善需求列表,完善用例模型。反復(fù)迭代進(jìn)行邏輯設(shè)計。識別系統(tǒng)中的對象及其關(guān)系,畫初始類模型。確定類的職責(zé)、屬性和方法。表示出主要業(yè)務(wù)過程的動態(tài)模型。由動態(tài)模型反復(fù)映射,完善類模型。軟件開發(fā)生命周期與統(tǒng)一建模語言UML2.2 面向?qū)ο蠓椒ㄅc結(jié)構(gòu)化方法比較面向?qū)ο蠓椒ǎɡm(xù))物理設(shè)計。確定整個系統(tǒng)的拓?fù)浣Y(jié)構(gòu)(部署圖)。修訂類模型。相應(yīng)修訂動態(tài)模型。完成反映程序模塊的包圖。完成反映程序軟件構(gòu)成的組件圖。設(shè)計界面,設(shè)計數(shù)據(jù)庫。軟件開發(fā)生命周期與統(tǒng)一建模語言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è)計。逐層細(xì)分,細(xì)化出每個處理。設(shè)計界面,設(shè)計數(shù)據(jù)庫。軟件開發(fā)生命周期與統(tǒng)一建模語言UML 2.2 面向?qū)ο蠓椒ㄅc結(jié)構(gòu)化方法比較結(jié)構(gòu)化程序設(shè)計方法也稱面向過程的方法或傳統(tǒng)軟件工程開發(fā)方法,它的特點是自頂向下、逐步求精,在獲取完整的需求之后才能開始系統(tǒng)的分析和設(shè)計。使用的手段主要有數(shù)據(jù)流圖、數(shù)據(jù)字典、層次方框圖、結(jié)構(gòu)化語言、判定表和判定樹等。一般步驟是:分析業(yè)務(wù)流程及信息走向;畫出數(shù)據(jù)流圖;建立數(shù)據(jù)字典;提出系統(tǒng)的總體邏輯方案;細(xì)化數(shù)據(jù)流圖;確
26、定模塊的接口;為每個模塊確定采用的算法和數(shù)據(jù)結(jié)構(gòu);根據(jù)E-R圖設(shè)計數(shù)據(jù)庫等。軟件開發(fā)生命周期與統(tǒng)一建模語言UML2.2 面向?qū)ο蠓椒ㄅc結(jié)構(gòu)化方法比較(續(xù))面向?qū)ο蟮某绦蛟O(shè)計方法的特點是根據(jù)現(xiàn)實問題直接抽象出對象,分析對象的行為和與行為相關(guān)的數(shù)據(jù),對象間通過傳遞消息進(jìn)行通信,協(xié)作完成相應(yīng)的功能,從問題出發(fā),模擬現(xiàn)實問題建立系統(tǒng)模型,易于理解和實現(xiàn)。對照表參見教材軟件開發(fā)生命周期與統(tǒng)一建模語言UML2.2 面向?qū)ο蠓椒ㄅc結(jié)構(gòu)化方法比較兩種方法的綜合運用 (1)內(nèi)在的一致性 目標(biāo)一致 使用分解和抽象的原則 局部化和信息隱蔽 模塊獨立 軟件開發(fā)生命周期與統(tǒng)一建模語言UML2.2 面向?qū)ο蠓椒ㄅc結(jié)構(gòu)化方
27、法比較(2)應(yīng)用的互補(bǔ)性 (在進(jìn)行面向?qū)ο蟮某绦蛟O(shè)計中如何很好地吸收結(jié)構(gòu)化分析方法中的精髓)成熟的理論 有效的方法 實用的工具 嚴(yán)謹(jǐn)?shù)拈_發(fā)過程 總的說來,在面向?qū)ο蟮某绦蛟O(shè)計中可以應(yīng)用結(jié)構(gòu)化分析的好的方法和思路,目的在于既體現(xiàn)面向?qū)ο蠓椒◤膯栴}域出發(fā)、易理解、易實現(xiàn)、易維護(hù)等特點,又發(fā)揮結(jié)構(gòu)化方法從整體上把握系統(tǒng)、逐層細(xì)分、強(qiáng)調(diào)良好的軟件結(jié)構(gòu)、進(jìn)行合理的數(shù)據(jù)庫設(shè)計等優(yōu)勢。一條根本的原則是:注意保持結(jié)構(gòu)化的分析設(shè)計結(jié)果(如模塊劃分)與面向?qū)ο蟮姆治鲈O(shè)計結(jié)果在核心內(nèi)容上的一致性。軟件開發(fā)生命周期與統(tǒng)一建模語言UML2.3 結(jié)構(gòu)化方法的基本原理結(jié)構(gòu)化分析過程結(jié)構(gòu)化分析工具 軟件開發(fā)生命周期與統(tǒng)一建模
28、語言UML2.3 結(jié)構(gòu)化方法的基本原理階段擬解決的關(guān)鍵性問題工具手段交付成果問題定義要解決的問題是什么可行性論證及軟件計劃有行得通的解決辦法嗎數(shù)據(jù)流圖、數(shù)據(jù)字典、數(shù)據(jù)流程圖、成本/效益分析可行性分析報告、多種解決方案、系統(tǒng)高層邏輯模型需求分析系統(tǒng)必須做什么數(shù)據(jù)流圖、數(shù)據(jù)字典、算法描述需求規(guī)格說明書、系統(tǒng)邏輯模型總體設(shè)計概括地說,應(yīng)該怎樣做數(shù)據(jù)流圖、系統(tǒng)流程圖、成本/效益分析、系統(tǒng)結(jié)構(gòu)圖、層次方框圖幾種可能的解法詳細(xì)設(shè)計具體怎樣做數(shù)據(jù)流圖、HIPO圖模塊及其接口設(shè)計、數(shù)據(jù)字典結(jié)構(gòu)化分析過程軟件開發(fā)生命周期與統(tǒng)一建模語言UML2.3 結(jié)構(gòu)化方法的基本原理結(jié)構(gòu)化分析工具數(shù)據(jù)流圖 數(shù)據(jù)字典 E-R圖
29、IPO圖 層次圖與HIPO圖狀態(tài)圖 成本/效益分析 程序流程圖與盒圖(N-S圖) 軟件開發(fā)生命周期與統(tǒng)一建模語言UML2.3 結(jié)構(gòu)化方法的基本原理1. 數(shù)據(jù)流圖(DFD圖)描繪信息流和數(shù)據(jù)從輸入移動到輸出的過程中所經(jīng)受的變換。基本符號處理數(shù)據(jù)存儲外部實體數(shù)據(jù)流軟件開發(fā)生命周期與統(tǒng)一建模語言UML2.3 結(jié)構(gòu)化方法的基本原理基本符號的含義矩形方框表示數(shù)據(jù)的源點或終點。是系統(tǒng)的外部實體圓形表示變換數(shù)據(jù)的處理。它可以代表一系列程序、單個程序或者程序的一個模塊平行橫線代表數(shù)據(jù)存儲。數(shù)據(jù)存儲并不等同于一個文件,它可以表示一個文件、文件的一部分、數(shù)據(jù)庫的元素或記錄的一部分等數(shù)據(jù)存儲和數(shù)據(jù)流都是數(shù)據(jù),僅僅所
30、處的狀態(tài)不同。數(shù)據(jù)存儲是處于靜止?fàn)顟B(tài)的數(shù)據(jù),數(shù)據(jù)流是處于運動中的數(shù)據(jù)軟件開發(fā)生命周期與統(tǒng)一建模語言UML2.3 結(jié)構(gòu)化方法的基本原理畫數(shù)據(jù)流圖的基本原則自頂向下逐層細(xì)化完善求精 軟件開發(fā)生命周期與統(tǒng)一建模語言UML2.3 結(jié)構(gòu)化方法的基本原理具體步驟:(1)繪頂層數(shù)據(jù)流圖。找出對整個系統(tǒng)而言的輸入、輸出數(shù)據(jù),確定外部實體,它們決定了系統(tǒng)與外界的接口。(2)為數(shù)據(jù)流命名,為加工命名。(3)檢查核對。(4)核對無誤后,進(jìn)行分解,畫處理的內(nèi)部。在(2)至(4)步之間反復(fù)迭代,直到處理無法進(jìn)一步分解為止。軟件開發(fā)生命周期與統(tǒng)一建模語言UML2.3 結(jié)構(gòu)化方法的基本原理書店借書系統(tǒng)的頂層數(shù)據(jù)流圖軟件開發(fā)
31、生命周期與統(tǒng)一建模語言UML2.3 結(jié)構(gòu)化方法的基本原理書店借書系統(tǒng)的第一次分解后的數(shù)據(jù)流圖軟件開發(fā)生命周期與統(tǒng)一建模語言UML2.3 結(jié)構(gòu)化方法的基本原理“借書”處理分解后的數(shù)據(jù)流圖軟件開發(fā)生命周期與統(tǒng)一建模語言UML2.3 結(jié)構(gòu)化方法的基本原理書店借書系統(tǒng)的層次圖軟件開發(fā)生命周期與統(tǒng)一建模語言UML2.3 結(jié)構(gòu)化方法的基本原理2數(shù)據(jù)字典數(shù)據(jù)字典是對所有與系統(tǒng)相關(guān)的數(shù)據(jù)元素的一個有組織的列表,精確、嚴(yán)格地定義各個數(shù)據(jù)元素,使得用戶及開發(fā)人員對于輸入、輸出、存儲和處理形成共同的理解例如:借閱制度表 = 讀者類別+允許借閱冊數(shù)+罰款規(guī)定+丟失圖書罰款規(guī)定讀者類別 = 金卡 | 銀卡 | 銅卡 又
32、如: 預(yù)訂請求 = 客人數(shù)據(jù)+住宿期限+客房類別 客人數(shù)據(jù) = 客人姓名+地址+身份證號碼+護(hù)照號碼 +支付方式 身份證號碼 = 15十進(jìn)制數(shù)字18 護(hù)照號碼 = 字母 + 8十進(jìn)制數(shù)字8 字母 = AZ 十進(jìn)制數(shù)字 = 09 軟件開發(fā)生命周期與統(tǒng)一建模語言UML2.3 結(jié)構(gòu)化方法的基本原理3E-R圖(實體關(guān)系圖 )例如軟件開發(fā)生命周期與統(tǒng)一建模語言UML2.3 結(jié)構(gòu)化方法的基本原理4IPO圖IPO是輸入、處理、輸出的簡稱,IPO圖能方便地描繪輸入數(shù)據(jù)、數(shù)據(jù)的處理和輸出數(shù)據(jù)的關(guān)系 軟件開發(fā)生命周期與統(tǒng)一建模語言UML2.3 結(jié)構(gòu)化方法的基本原理主文件更新的IPO圖軟件開發(fā)生命周期與統(tǒng)一建模語言
33、UML2.3 結(jié)構(gòu)化方法的基本原理5層次圖與HIPO圖層次圖用來描繪軟件的層次結(jié)構(gòu),圖中的一個矩形框代表一個模塊,方框間的連線表示調(diào)用關(guān)系。它適于在自頂向下設(shè)計軟件的過程中使用,描述模塊的劃分。軟件開發(fā)生命周期與統(tǒng)一建模語言UML2.3 結(jié)構(gòu)化方法的基本原理書店借書系統(tǒng)的層次圖軟件開發(fā)生命周期與統(tǒng)一建模語言UML2.3 結(jié)構(gòu)化方法的基本原理書店借書系統(tǒng)的H圖軟件開發(fā)生命周期與統(tǒng)一建模語言UML2.3 結(jié)構(gòu)化方法的基本原理6狀態(tài)圖(略)軟件開發(fā)生命周期與統(tǒng)一建模語言UML2.3 結(jié)構(gòu)化方法的基本原理7成本/效益分析目的從經(jīng)濟(jì)角度分析開發(fā)一個特定的新系統(tǒng)是否劃算,從而幫助客戶組織的負(fù)責(zé)人正確地作出
34、是否投資于這項開發(fā)工程的決定 軟件開發(fā)生命周期與統(tǒng)一建模語言UML2.3 結(jié)構(gòu)化方法的基本原理實例軟件開發(fā)生命周期與統(tǒng)一建模語言UML2.3 結(jié)構(gòu)化方法的基本原理8程序流程圖與盒圖(N-S圖)是表達(dá)語句執(zhí)行過程的主要工具 基本符號:軟件開發(fā)生命周期與統(tǒng)一建模語言UML2.4 面向?qū)ο蠓椒▽W(xué)的基本概念和原則基本概念1對象(object)2類(class)3實例(instance)4消息(message)5方法(method)6屬性(attribute)7封裝(encapsulation)8繼承(inheritance)9多態(tài)性(polymorphism)10重載(overloading)軟件開發(fā)
35、生命周期與統(tǒng)一建模語言UML2.4 面向?qū)ο蠓椒▽W(xué)的基本概念和原則主要原則(1)抽象(2)分類(3)聚合(4)關(guān)聯(lián)(5)消息通信(6)粒度控制(7)行為分析軟件開發(fā)生命周期與統(tǒng)一建模語言UML本章小結(jié)結(jié)構(gòu)化方法和面向?qū)ο蟮姆椒ㄊ钱?dāng)前兩種主流的軟件開發(fā)方法。其中,面向?qū)ο蟮某绦蛟O(shè)計方法根據(jù)現(xiàn)實問題直接抽象出對象,分析對象的行為和與行為相關(guān)的數(shù)據(jù),對象間通過傳遞消息進(jìn)行通信,從問題出發(fā),模擬現(xiàn)實問題,建立系統(tǒng)模型,易于理解和實現(xiàn);結(jié)構(gòu)化程序設(shè)計方法有一套成熟的理論基礎(chǔ),“自頂向下、逐步求精”,在獲取完整的需求之后才能開始系統(tǒng)的分析和設(shè)計。在進(jìn)行面向?qū)ο蟮某绦蛟O(shè)計時,要善于吸收、借鑒傳統(tǒng)結(jié)構(gòu)化程序設(shè)
36、計的方法工具。在進(jìn)行面向?qū)ο蟮脑O(shè)計時,從需求分析到系統(tǒng)設(shè)計都是一個反復(fù)迭代的過程。數(shù)據(jù)流圖(DFD圖)是分析數(shù)據(jù)存儲的有效工具。Thank You !中國水利水電出版社軟件開發(fā)生命周期與統(tǒng)一建模語言UML第3章 統(tǒng)一建模語言與現(xiàn)代軟件工程3.1 軟件工程的發(fā)展趨勢及成功經(jīng)驗 3.1.1 現(xiàn)代軟件工程中的熱點內(nèi)容3.1.2 現(xiàn)代軟件工程的成功經(jīng)驗3.1.3 統(tǒng)一建模語言在現(xiàn)代軟件工程中的作用 3.2 統(tǒng)一建模語言概述 3.2.1 什么是軟件建模3.2.2 什么是UML 3.2.3 UML的歷史3.2.4 UML中的五類圖3.2.5 UML建模的基本過程軟件開發(fā)生命周期與統(tǒng)一建模語言UML第3章
37、統(tǒng)一建模語言與現(xiàn)代軟件工程教學(xué)要求理解:什么是統(tǒng)一建模語言;統(tǒng)一建模語言作用;統(tǒng)一建模過程。了解:現(xiàn)代軟件工程研究中的熱點內(nèi)容;面向?qū)ο蟮慕K枷搿\浖_發(fā)生命周期與統(tǒng)一建模語言UML3.1軟件工程的發(fā)展趨勢及成功經(jīng)驗現(xiàn)代軟件工程研究的熱點內(nèi)容研究方面具體內(nèi)容軟件過程模型瀑布模型、增量模型、快速原形模型、螺旋模型、噴泉模型、MSF過程模型等軟件開發(fā)方法面向?qū)ο蟮姆椒?、面向?gòu)件的方法、極限編程等項目管理過程MSF過程模型、企業(yè)文化設(shè)計模式工廠模式、命令模式等輔助工具各種軟件建模工具(如Rational Rose、 Visio、Rational XDE)、項目計劃工具(如Project)、文檔自動
38、生成工具(如SODA)等軟件開發(fā)生命周期與統(tǒng)一建模語言UML3.1軟件工程的發(fā)展趨勢及成功經(jīng)驗現(xiàn)代軟件工程研究的熱點內(nèi)容軟件過程的研究在實際開發(fā)中如何合理的運用各種經(jīng)典的過程模型,構(gòu)造出與具體開發(fā)方法相適應(yīng)的嚴(yán)格的應(yīng)用步驟。 軟件開發(fā)方法的研究 如面向構(gòu)件的方法、極限編程,面向服務(wù)的方法、輕型計劃的方法、以及針對具體行業(yè)的特殊開發(fā)方法等 管理過程的研究 為了使軟件項目能夠按照預(yù)定的成本、進(jìn)度、質(zhì)量要求順利完成項目開發(fā),而對成本、人員、進(jìn)度、質(zhì)量、風(fēng)險等因素進(jìn)行分析、控制和管理的活動,旨在整個企業(yè)的開發(fā)能力。 設(shè)計模式研究每一個設(shè)計模式描述了一個在我們周圍不斷重復(fù)發(fā)生的問題,以及該問題的解決方案
39、的核心 輔助工具的研究軟件開發(fā)生命周期與統(tǒng)一建模語言UML3.1軟件工程的發(fā)展趨勢及成功經(jīng)驗現(xiàn)代軟件工程的成功經(jīng)驗文檔可視化迭代式開發(fā)使用模式基于組件的架構(gòu)變更管理(變更文檔)軟件開發(fā)生命周期與統(tǒng)一建模語言UML3.1軟件工程的發(fā)展趨勢及成功經(jīng)驗統(tǒng)一建模語言在現(xiàn)代軟件工程中的作用它是優(yōu)秀的文檔可視化工具,符號形象直觀。能體現(xiàn)文檔的連貫性(即從需求設(shè)計實現(xiàn)的自然過渡,且能較靈活地應(yīng)對變更)。貫穿軟件開發(fā)生命周期各個階段。能清楚地表達(dá)設(shè)計模式。與最好的軟件工程實踐經(jīng)驗集成為面向?qū)ο蟮脑O(shè)計與開發(fā)中涌現(xiàn)出的高級概念( 如協(xié)作 、框架 、模式和組件)提供支持, 強(qiáng)調(diào)在軟件開發(fā)中 對架構(gòu)、 框架、 模式和
40、組件的重用。與具體的實現(xiàn)無關(guān), 可應(yīng)用于任何語言平臺和工具平臺;與具體的過程無關(guān), 可應(yīng)用于任何軟件開發(fā)的過程;軟件開發(fā)生命周期與統(tǒng)一建模語言UML3.2統(tǒng)一建模語言概述模型的三個特點是一種簡化;通過不同的視角看問題;使用通用的符號。軟件建模的實現(xiàn)過程軟件開發(fā)生命周期與統(tǒng)一建模語言UML3.2統(tǒng)一建模語言概述面向?qū)ο蟮能浖C(jī)制 軟件開發(fā)生命周期與統(tǒng)一建模語言UML3.2統(tǒng)一建模語言概述統(tǒng)一建模語言 (Unified Modeling Language,UML)是一種通用的可視化面向?qū)ο蟮慕UZ言,適用于對任何面向?qū)ο蟮氖挛锏慕?軟件開發(fā)生命周期與統(tǒng)一建模語言UML3.2統(tǒng)一建模語言概述U
41、ML中的五類圖用例圖(Use Case Diagram)從用戶角度描述系統(tǒng)功能。靜態(tài)圖包括類圖(Class Diagram)、對象圖(Object Diagram)和包圖(Package Diagram)。其中類圖描述系統(tǒng)中類的靜態(tài)結(jié)構(gòu)。對象圖是類圖的實例。包圖由包或類組成,表示包與包之間的關(guān)系。包圖用于描述系統(tǒng)的分層結(jié)構(gòu)。行為圖包括狀態(tài)圖(Statechart Diagram)和活動圖(Activity Diagram)。其中,狀態(tài)圖描述類的對象所有可能的狀態(tài)以及事件發(fā)生時狀態(tài)的轉(zhuǎn)移條件;活動圖描述用例中的活動以及活動間的約束關(guān)系,可用于識別活動的并發(fā)性。交互圖描述對象間的交互關(guān)系。包括順序
42、圖(Sequence Diagram)和協(xié)作圖(Collaboration Diagram)。順序圖顯示對象之間依時間展開的交互關(guān)系;協(xié)作圖可以表達(dá)與順序圖相同的信息,它進(jìn)一步強(qiáng)調(diào)對象間的協(xié)作關(guān)系。實現(xiàn)圖包括組件圖(Component Diagram)和部署圖(Deployment Diagram)。組件圖描述軟件組件之間的依賴關(guān)系,這些組件包括源代碼文件、二進(jìn)制文件和可執(zhí)行文件等;部署圖顯示了基于計算機(jī)系統(tǒng)的物理體系結(jié)構(gòu)。軟件開發(fā)生命周期與統(tǒng)一建模語言UML3.2統(tǒng)一建模語言概述UML的建模基本過程Thank You !中國水利水電出版社軟件開發(fā)生命周期與統(tǒng)一建模語言第4章 用例圖 4.1
43、用例概述 4.1.1 用例建模的目的 4.1.2 定義用例圖 4.1.3 用例圖的主要組件 4.2 識別參與者 4.2.1 捕獲需求 4.2.2 識別參與者 軟件開發(fā)生命周期與統(tǒng)一建模語言第四章 用例圖 4.3 識別用例 4.3.1 識別用例的方法 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)一建模語言第四章 用例圖 4.6 重構(gòu)系統(tǒng)的用例模型 4.7 用例建模實例書店借書系統(tǒng) 4.7.1 建立用例模型的步驟 4.7.2 確定系統(tǒng)邊界 4.7.3 識別參與者 4.7.4 識別用例 4.7.
44、5 建立用例圖 4.7.6 書寫用例文檔 4.7.7 通過關(guān)系整理用例 軟件開發(fā)生命周期與統(tǒng)一建模語言第四章 用例圖 教學(xué)要求掌握:用例圖定義、用例圖的標(biāo)記符組件以及如何建立用例圖模型。理解:用例圖建模的原因、泛化技術(shù),以及包含與擴(kuò)展關(guān)系。了解:描述用例的方法。軟件開發(fā)生命周期與統(tǒng)一建模語言4.1 用例圖概述 用例建模的目的 利用“系統(tǒng)”的觀點來分析問題、解決問題。使用計算機(jī)邏輯來模擬描述系統(tǒng)本身,包括系統(tǒng)的組成、關(guān)系、系統(tǒng)的各種可能狀態(tài)以及系統(tǒng)中可能產(chǎn)生的過程和過程引起的切換。 可以利用一個容易理解的模型來描述用戶如何使用這個系統(tǒng)、系統(tǒng)和客戶以及系統(tǒng)和外部系統(tǒng)之間的交互過程,這個模型也就是通
45、常我們所說的使用UML設(shè)計新系統(tǒng)的起始點用例圖。 軟件開發(fā)生命周期與統(tǒng)一建模語言4.1 用例圖概述 定義用例圖 用例圖是有關(guān)系統(tǒng)細(xì)節(jié)的最高形式。它能準(zhǔn)確地說明客戶對他們要開發(fā)的應(yīng)用程序期望有什么樣的功能用例圖是一種在系統(tǒng)完成后能使管理機(jī)構(gòu)、用戶和其他干系人了解其功能的極好方法。 登錄系統(tǒng)存款取款查詢余額修改密碼轉(zhuǎn)賬退出系統(tǒng)客戶軟件開發(fā)生命周期與統(tǒng)一建模語言4.1 用例圖概述 用例圖的主要組件 用例圖包含4個基本組件:參與者(Actor)、用例(Use Case)、關(guān)系、系統(tǒng)。 (1)參與者。參與者是系統(tǒng)外部的一個實體,它以某種方式參與用例的執(zhí)行過程。(2)用例。用例代表系統(tǒng)的某項完整的功能,是
46、動作步驟的集合。系統(tǒng)的功能是通過參與者使用用例來實現(xiàn)的。 軟件開發(fā)生命周期與統(tǒng)一建模語言4.1 用例圖概述 用例圖的主要組件 用例圖包含4個基本組件:參與者(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)指一個軟件系統(tǒng)、一項業(yè)務(wù)、一個商務(wù)活動、一臺機(jī)器等。 (圖見書)軟件開發(fā)生命周期與統(tǒng)一建模語言4.2 識別參與者 捕獲需求 收集需求的方式有訪談、問卷調(diào)查、實地觀察、使用原型、特定群體調(diào)查、用戶指導(dǎo)等。需求的來源主要是人、各種現(xiàn)有成品(如報表、培訓(xùn)手冊、視頻
47、記錄等)、現(xiàn)有的軟件系統(tǒng)或人工系統(tǒng)。通過各種形式記錄下收集到的需求信息,經(jīng)過整理,從中獲取有價值的信息來建立系統(tǒng)模型。 軟件開發(fā)生命周期與統(tǒng)一建模語言4.2 識別參與者 識別參與者的方法 識別參與者的思路,可以從以下幾個方面來考慮:(1)誰使用系統(tǒng)的主要功能?(2)誰改變系統(tǒng)的數(shù)據(jù)?(3)誰從系統(tǒng)獲取信息?(4)誰需要系統(tǒng)的支持以完成日常工作任務(wù)?(5)誰負(fù)責(zé)維護(hù)、管理并保持系統(tǒng)正常運行?(6)系統(tǒng)需要處理哪些硬設(shè)備?(7)系統(tǒng)需要和哪些外部系統(tǒng)交互?(8)誰對系統(tǒng)運行產(chǎn)生的結(jié)果感興趣?(9)有無時間、氣溫等內(nèi)部或外部條件? 軟件開發(fā)生命周期與統(tǒng)一建模語言4.3 識別用例識別用例的方法 在識別
48、用例的過程中,可以從以下幾個方面來考慮: (1)特定參與者希望系統(tǒng)提供什么功能。(2)系統(tǒng)是否存儲和檢索信息,如果是,由哪個參與者觸發(fā)。(3)當(dāng)系統(tǒng)改變狀態(tài)時,是否通知參與者。(4)是否存在影響系統(tǒng)的外部事件。軟件開發(fā)生命周期與統(tǒng)一建模語言4.3 識別用例 用例的命名規(guī)則 用例名是一個字符串,用例是從用戶的角度來描繪系統(tǒng)的功能,因此命名的基本原則是:從參與者的角度出發(fā)進(jìn)行命名(如使用“登錄”而不用“身份驗證”),使用動詞加賓語的結(jié)構(gòu),盡量使用行業(yè)術(shù)語(如使用“報銷”,而不用“交錢”)。系統(tǒng)中用例太多時需求要適當(dāng)分組(包),這時可以通過在用例名后面加上雙冒號和包名來表示該用例是屬于哪個包的。軟件
49、開發(fā)生命周期與統(tǒng)一建模語言4.4 用例間的關(guān)系 泛化關(guān)系 用例與用例之間也存在著泛化關(guān)系,通常用于表示同一業(yè)務(wù)目的(父用例)的不同技術(shù)實現(xiàn)(各個子用例)。 軟件開發(fā)生命周期與統(tǒng)一建模語言4.4 用例間的關(guān)系 包含關(guān)系 在包含關(guān)系中,基本用例吸收了被包含的用例的行為,如果沒有后者它將是不完整的。包含關(guān)系的劃分有兩個好處:一是被包含用例被抽取出來,基本用例得以簡化;二是可以抽象出公共事件流,實現(xiàn)功能代碼的復(fù)用。 軟件開發(fā)生命周期與統(tǒng)一建模語言4.4 用例間的關(guān)系 擴(kuò)展關(guān)系 如果在完成某個功能的時候有時會執(zhí)行另一個功能,則用擴(kuò)展關(guān)系來表示。擴(kuò)展關(guān)系表示為虛線箭頭加“”字樣,箭頭指向被擴(kuò)展的用例。 教
50、師在保存成績的時候,如果有學(xué)生成績不合格將打印補(bǔ)考通知單 軟件開發(fā)生命周期與統(tǒng)一建模語言4.5 用例文檔 用例文檔用例圖不足以表達(dá)更多的細(xì)節(jié),對于系統(tǒng)中的每一個用例,還需要了解詳細(xì)的執(zhí)行情況,以便完整地理解創(chuàng)建系統(tǒng)時的設(shè)計任務(wù)。用例文檔為我們提供了一個很好的模板 。用例編號:用例名:用例描述:參與者:前置條件:后置條件:事件路徑:擴(kuò)展點:補(bǔ)充說明:軟件開發(fā)生命周期與統(tǒng)一建模語言4.6 重構(gòu)系統(tǒng)的用例模型用例建模的過程本身就是一個反復(fù)迭代和逐步精化的過程。 如果你對以下問題都回答“是”的話,那么這個用例就是合理的;否則,這個用例需要拆分為幾個小的用例。 這個用例是否能夠帶來一個獨立的好處?是否可
51、以用簡潔的文字來描述這個好處?參與者是否能夠僅通過一次會話就完成這個用例?能否想象在一個連貫的測試計劃中,這個用例將是一個測試用例? 軟件開發(fā)生命周期與統(tǒng)一建模語言4.6 重構(gòu)系統(tǒng)的用例模型用例建模的過程本身就是一個反復(fù)迭代和逐步精化的過程。 如果你對以下問題都回答“是”的話,那么這個用例就是有效的和獨立的;否則,這個用例實際上可能是其他用例的一個部分。參與者是否得到了明確的信息或者以某種可度量的方式改變系統(tǒng)?執(zhí)行這個用例之后,參與者是否可以在確定的時間內(nèi)停止使用這個系統(tǒng)?軟件開發(fā)生命周期與統(tǒng)一建模語言4.6 重構(gòu)系統(tǒng)的用例模型訂餐預(yù)約系統(tǒng)的最終用例模型 軟件開發(fā)生命周期與統(tǒng)一建模語言4.7
52、用例建模實例書店借書系統(tǒng) 書店借書系統(tǒng) 建立用例模型的步驟 (1)確定系統(tǒng)邊界。(2)識別參與者。(3)識別用例。(4)區(qū)分用例的優(yōu)先次序。(5)書寫用例文檔。(6)通過關(guān)系整理用例(確定泛化、包含、擴(kuò)展關(guān)系)。 軟件開發(fā)生命周期與統(tǒng)一建模語言4.7 用例建模實例書店借書系統(tǒng) 書店借書系統(tǒng)-確定系統(tǒng)邊界 建立用例模型的步驟 確定系統(tǒng)邊界 書店借書系統(tǒng)初步分析包含了借閱管理員辦理借還書業(yè)務(wù)、辦理會員卡業(yè)務(wù)。與書店銷售系統(tǒng)使用共同的數(shù)據(jù)庫。軟件開發(fā)生命周期與統(tǒng)一建模語言4.7 用例建模實例書店借書系統(tǒng) 書店借書系統(tǒng) 識別參與者 誰使用系統(tǒng)的主要功能?借閱管理員誰改變系統(tǒng)的數(shù)據(jù)?借閱管理員誰從系統(tǒng)獲
53、取信息?借閱管理員、會員誰需要系統(tǒng)的支持以完成日常工作任務(wù)?借閱管理員誰負(fù)責(zé)維護(hù)、管理并保持系統(tǒng)正常運行?借閱管理員系統(tǒng)需要處理哪些硬設(shè)備?沒有特殊的硬設(shè)施系統(tǒng)需要和哪些外部系統(tǒng)交互?書店銷售系統(tǒng)誰對系統(tǒng)運行產(chǎn)生的結(jié)果感興趣?借閱管理員、會員時間、氣溫等內(nèi)部外部條件?時間軟件開發(fā)生命周期與統(tǒng)一建模語言4.7 用例建模實例書店借書系統(tǒng) 書店借書系統(tǒng)識別用例 特定參與者希望系統(tǒng)提供什么功能?會員業(yè)務(wù)、借還書業(yè)務(wù)、借書完成后打印憑條系統(tǒng)是否存儲和檢索信息,如果是,由哪個參與者觸發(fā)?借閱管理員當(dāng)系統(tǒng)改變狀態(tài)時,是否通知參與者?是是否存在影響系統(tǒng)的外部事件?否軟件開發(fā)生命周期與統(tǒng)一建模語言4.7 用例建
54、模實例書店借書系統(tǒng) 書店借書系統(tǒng) 建立用例圖 ,提出以下基本用例的優(yōu)先次序: 借還書注冊會員查詢會員信息修改會員信息登錄注銷會員 軟件開發(fā)生命周期與統(tǒng)一建模語言4.7 用例建模實例書店借書系統(tǒng) 書店借書系統(tǒng) 書寫用例文檔 (見書,略)軟件開發(fā)生命周期與統(tǒng)一建模語言4.7 用例建模實例書店借書系統(tǒng) 書店借書系統(tǒng) 通過關(guān)系整理用例 軟件開發(fā)生命周期與統(tǒng)一建模語言本章小結(jié)用例模型是分析功能需求的一個有力工具。它由用例圖和每個用例的文檔組成。用例圖可以可視化地表達(dá)出用例功能,使分析員與用戶之間的交流更加容易。在用例圖中,用例的表示符號是一個橢圓,參與者的圖符是一個直立人形,參與者與用例之間用關(guān)聯(lián)線連接
55、,通常用例都位于表示系統(tǒng)邊界的矩形框之中。用例之間存在各種關(guān)系:包含關(guān)系用帶關(guān)鍵字的虛線箭頭線表示;擴(kuò)展關(guān)系用帶關(guān)鍵字的虛線箭頭線表示;還有一種泛化關(guān)系,表示一個用例繼承了另一個用例的屬性和行為。分析過程開始于和客戶交談,產(chǎn)生系統(tǒng)高層用例圖。用例圖在分析過程中起著很重要的作用,它能反映系統(tǒng)基本的功能需求。但要創(chuàng)建完整的用例模型,還要對每個高層用例進(jìn)行細(xì)化,建立用例文檔。對于復(fù)雜的系統(tǒng)可以先畫出表達(dá)系統(tǒng)整體功能的頂層用例模型,再畫出各個功能的用例模型子圖。用例模型是后期設(shè)計和開發(fā)的基礎(chǔ)。 Thank You !中國水利水電出版社軟件開發(fā)生命周期與統(tǒng)一建模語言第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)系的不同重數(shù)與代碼的映射 5.2.5 如何建模類圖 軟件開發(fā)生命周期與統(tǒng)一建模語言第五章 靜態(tài)模型5.3 對象圖 5.3.1 對象圖的概念 5.3.2 對象圖和類圖的區(qū)別 5.4 包圖 5.4.1 包圖的概念 5.4.2 包圖建模 軟件開發(fā)生命周期與統(tǒng)一建模語言第5章 靜態(tài)模型 教學(xué)要求掌握:類圖的標(biāo)記符組件,如何建模類,如何建模類圖。理解:如何表現(xiàn)類的特性、職責(zé)和約束,類之間的關(guān)系。了解:如何建模對象圖、包圖。軟件開發(fā)生命周期與統(tǒng)一建模語言5.1 靜態(tài)模型的基本概述 靜態(tài)模型的基本概述
57、 靜態(tài)模型包括類圖、對象圖、包圖、組件圖和部署圖。類圖描述系統(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ā)的整個生命周期。對象圖是類圖的實例,符號與類圖非常相似,可以認(rèn)為對象圖是類圖在程序執(zhí)行的某個過程中一瞬間的快照。包圖由包或類組成(有時也包括組件),表示包與包之間的關(guān)系。包圖可以用于描述系統(tǒng)的分層結(jié)構(gòu)。組件圖和部署圖涉及程序的物理實現(xiàn)。軟件開發(fā)生命周期與統(tǒng)一建模語言5.1 靜態(tài)模型的基本概述 采用面向?qū)ο蠹夹g(shù)設(shè)計系統(tǒng)步驟 描述需求 根據(jù)需求建立系統(tǒng)的靜態(tài)模型以構(gòu)造系統(tǒng)的結(jié)構(gòu) 描
58、述系統(tǒng)的行為 軟件開發(fā)生命周期與統(tǒng)一建模語言5.1 靜態(tài)模型的基本概述 靜態(tài)模型的基本概述 用例圖、類圖(包含包)、對象圖、組件圖和部署圖5類圖形,是統(tǒng)一建模語言UML的靜態(tài)建模機(jī)制。 狀態(tài)圖、活動圖、順序圖和協(xié)作圖4類圖形,是統(tǒng)一建模語言UML的動態(tài)建模機(jī)制 。軟件開發(fā)生命周期與統(tǒng)一建模語言5.2 類圖 類圖概述 類圖是用來顯示系統(tǒng)中的類、接口以及它們之間的靜態(tài)結(jié)構(gòu)和關(guān)系的一種靜態(tài)模型,它用于描述系統(tǒng)的結(jié)構(gòu)。 類圖的建模貫穿系統(tǒng)的分析和設(shè)計階段的始終,通常從商務(wù)伙伴能夠理解的用例開始建模,最終往往成為只有開發(fā)小組能夠完全理解的類。 建模類圖也是一個反復(fù)迭代的過程。 類圖包含兩個元素:類、關(guān)系
59、 。軟件開發(fā)生命周期與統(tǒng)一建模語言5.2 類圖 當(dāng)對系統(tǒng)的靜態(tài)模型建模時,通常以下面的3種方式之一使用類圖: 對系統(tǒng)的靜態(tài)對象建模。如書店借書系統(tǒng)的Book類、學(xué)生管理系統(tǒng)的Student類等。對簡單的協(xié)作建模。協(xié)作是一些共同行為的類、接口和其他元素的群體。如數(shù)據(jù)庫連接類、用戶驗證類、過濾字符串類等。對邏輯數(shù)據(jù)庫模式建模。在很多領(lǐng)域中,都需要在關(guān)系數(shù)據(jù)庫或面向?qū)ο髷?shù)據(jù)庫中存儲永久信息,系統(tǒng)分析者可以用類圖對這些需要永久化的實體建模。軟件開發(fā)生命周期與統(tǒng)一建模語言5.2 類圖 類圖的基本組件 類 軟件開發(fā)生命周期與統(tǒng)一建模語言5.2 類圖 類命名時應(yīng)該遵守以下幾條準(zhǔn)則:使用標(biāo)準(zhǔn)術(shù)語。使用具有確切
60、含義的名詞。必要時用名詞短語作名字。對于類圖中的類而言,它的類名、屬性、操作也有一定的書寫規(guī)范。類名:正體字說明類是可被實例化的,斜體字說明類為抽象類。 屬性:按照“可見性 屬性名 :類型 =初始值”的書寫順序。操作:按照“可見性 方法名稱( 參數(shù)列表) :返回類型”的書寫順序。軟件開發(fā)生命周期與統(tǒng)一建模語言5.2 類圖 類的表示方法軟件開發(fā)生命周期與統(tǒng)一建模語言5.2 類圖 隱藏屬性部分或操作部分,或者兩者都隱藏 軟件開發(fā)生命周期與統(tǒng)一建模語言5.2 類圖 通過在屬性名稱和數(shù)據(jù)類型之后添加等號來為屬性指定默認(rèn)值 在UML中,可以通過 符號表示類的某些屬性的多重性 軟件開發(fā)生命周期與統(tǒng)一建模語
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新人教版七年級數(shù)學(xué)上冊1.2.4《 絕對值》(第2課時)聽評課記錄1
- 七年級歷史下冊第三單元明清時期:統(tǒng)一多民族國家的鞏固與發(fā)展20清朝君主專制的強(qiáng)化聽課評課記錄(新人教版)
- 蘇科版數(shù)學(xué)八年級上冊1.3《探索三角形全等的條件》聽評課記錄6
- 八年級數(shù)學(xué)上冊 14.1 整式的乘法 14.1.4 整式的乘法 第3課時 多項式乘以多項式聽評課記錄 新人教版
- 湘教版數(shù)學(xué)七年級下冊4.4《平行線的判定方法1》聽評課記錄
- 五年級上冊數(shù)學(xué)聽評課記錄《1.1 精打細(xì)算》(2)-北師大版
- 湘教版數(shù)學(xué)九年級上冊《小結(jié)練習(xí)》聽評課記錄6
- 人民版道德與法治九年級下冊第一課第1課時《“地球村”形成了》聽課評課記錄
- 人教部編版歷史八年級下冊:第19課《社會生活的變遷》聽課評課記錄4
- 一年級《聽》評課記錄
- GB/T 8014.1-2005鋁及鋁合金陽極氧化氧化膜厚度的測量方法第1部分:測量原則
- 股票基礎(chǔ)知識(入市必讀)-PPT
- eNSP簡介及操作課件
- 公文與公文寫作課件
- 運動技能學(xué)習(xí)與控制課件第七章運動技能的協(xié)調(diào)控制
- 節(jié)后復(fù)工吊籃驗收表格
- 基于振動信號的齒輪故障診斷方法研究
- 醫(yī)療器械分類目錄2002版
- DB11_T1713-2020 城市綜合管廊工程資料管理規(guī)程
- 氣管套管滑脫急救知識分享
- 壓縮空氣系統(tǒng)管道阻力計算
評論
0/150
提交評論