版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、經(jīng)典的軟件工程思想將軟件開發(fā)分成5個階段:需求分析系統(tǒng)分析與設計;系統(tǒng)實現(xiàn)測試及維護五個階段。序言假如想搭一個狗窩,備好木料、釘子和一些基本工具(如錘子、鋸和卷尺)之后,就可以開頭工作了。從制定一點初步方案到完成一個滿足適當功能的狗窩,可能不用別人掛念,在幾個小時內(nèi)就能夠實現(xiàn)。只要狗窩夠大且不太漏水,狗就可以安居。假如未能達到期望的效果,返工總是可以的,無非是讓狗受點委屈。假如你要建筑一座高層辦公大廈,若還是先備好木料、釘子和一些基本工具就開頭工作,那將是格外愚蠢的。由于你所使用的資金可能是別人的,他們會對建筑物的規(guī)模、外形和風格做出要求。同時,他們經(jīng)常會轉變想法,甚至是在工程已經(jīng)開工之后。由
2、于失敗的代價太高了,因此必需要做詳盡的方案。負責建筑物設計和施工的是一個浩大的組織機構,你只是其中的一部分。這個組織將需要各種各樣的設計圖和模型,以供各方相互溝通。只要得到了合適的人員和工具,并對把建筑概念轉換為實際建筑的過程進行樂觀的管理,將會建成這座滿足使用要求的大廈。假如想連續(xù)從事建筑工作,那么肯定要在使用要求和實際的建筑技術之間做好平衡,并且處理好建筑團隊成員們的休息問題,既不能把他們置于風險之中,也不能驅使他們過分辛苦地工作以至于精疲力盡。驚異的是,很多軟件開發(fā)組織開頭想建筑一座大廈式的軟件,而在動手處理時卻好像他們正在倉促地造一個狗窩。有時你是幸運的。假如在恰當?shù)臅r間有足夠的合適人
3、員,并且其他一切事情都很如意,你的團隊有可能(僅是可能)推出一個令用戶眼花繚亂的軟件產(chǎn)品。然而,一般的狀況下,不行能全部人員都合適(合適的人員經(jīng)常供不應求),時間并不總是恰當?shù)模ㄗ蛱炜偸歉茫?,其他的事情也并不盡如人意(經(jīng)常由不得自己)。現(xiàn)在對軟件開發(fā)的要求正在日益增加,而開發(fā)團隊卻還是經(jīng)常單純地依靠他們唯一真正知道如何做好的一件事編寫程序代碼。英雄式的編程工作成為這一行業(yè)的傳奇,人們好像經(jīng)常認為更努力地工作是面對開發(fā)中消滅的各種危機的正常反應。然而,這未必能產(chǎn)生正確的程序代碼,而且一些項目是格外巨大的,無論怎樣延長工作時間,也不足以完成所需的工作。假如真正想建筑一個相當于房子或大廈類的軟件系
4、統(tǒng),問題可不是僅僅編寫很多軟件。事實上,關鍵是要編出正確的軟件,并考慮如何少寫軟件。要生產(chǎn)合格的軟件就要有一套關于體系結構、過程和工具的規(guī)范。即使如此,很多項目開頭看起來像狗窩,但隨后進展得像大廈,緣由很簡潔,它們是自己成就的犧牲品。假如對體系結構、過程或工具的規(guī)范沒有作任何考慮,總有一天狗窩會膨脹成大廈,并會由于其自身的重量而倒塌。狗窩的倒塌可能使你的狗憤怒;同理,不成功的大廈則將對大廈的租戶造成嚴峻的影響。不成功的軟件項目失敗的緣由各不相同,而全部成功的項目在很多方面都是相像的。成功的軟件組織有很多成功的因素,其中共同的一點就是對建模的接受。一、 項目開發(fā)中模型是什么以及建模的重要性。那么
5、,模型是什么?簡潔地說:模型是對現(xiàn)實的簡化。模型供應了系統(tǒng)的藍圖。模型既可以包括具體的方案,也可以包括從很高的層次考慮系統(tǒng)的總體方案。一個好的模型包括那些有廣泛影響的主要元素,而忽視那些與給定的抽象水平不相關的次要元素。每個系統(tǒng)都可以從不同的方面用不同的模型來描述,因而每個模型都是一個在語義上閉合的系統(tǒng)抽象。模型可以是結構性的,強調(diào)系統(tǒng)的組織。它也可以是行為性的,強調(diào)系統(tǒng)的動態(tài)方面。為什么要建模?一個基本理由是:建模是為了能夠更好地理解正在開發(fā)的系統(tǒng)。通過建模,要達到4個目的:(1)模型有助于依據(jù)實際狀況或依據(jù)所需要的樣式對系統(tǒng)進行可視化。(2)模型能夠規(guī)約系統(tǒng)的結構或行為。(3)模型給出了指
6、導構造系統(tǒng)的模板。(4)模型對做出的決策進行文檔化。 建模并不只是針對大的系統(tǒng)。甚至像狗窩那樣的軟件也能從一些建模中受益。然而,可以明確地講,系統(tǒng)越大、越簡單,建模的重要性就越大,一個很簡潔的緣由是:由于不能完整地理解一個簡單的系統(tǒng),所以要對它建模。人對簡單問題的理解力量是有限的。通過建模,縮小所爭辯問題的范圍,一次只著重爭辯它的一個方面,即把一個困難問題劃分成一系列能夠解決的小問題;解決了這些小問題也就解決了這個難題。此外,通過建模可以增加人的智力。一個適當選擇的模型可以使建模人員在較高的抽象層次上工作。每個項目都能從一些建模中受益。即使在一次性的軟件開發(fā)中由于可視化編程語言的支持,可以輕而
7、易舉地扔掉不適合的軟件。建模也能掛念開發(fā)組更好地對系統(tǒng)方案進行可視化,并掛念他們正確地進行構造,使開發(fā)工作進展得更快。假如根本不建模,項目越簡單,就越有可能失敗或者構造出錯誤的東西。全部有用系統(tǒng)都有一個自然趨勢:隨著時間的推移變得越來越簡單。雖然今日可能認為不需要建模,但隨著系統(tǒng)的演化,終將會對這個打算感到懊悔,但那時為時已晚。在項目開發(fā)中如何建模,接下來我將具體講解一下建模工具UML。二、 UML介紹UML( Unified Modeling Language )又稱統(tǒng)一建模語言或標準建模語言,是始于1997年一個OMG標準,它是一個支持模型化和軟件系統(tǒng)開發(fā)的圖形化語言,為軟件開發(fā)的全部階段
8、供應模型化和可視化支持,包括由需求分析到規(guī)格,到構造和配置。 UML是一種功能強大的,面對對象的可視化系統(tǒng)分析的建模語言,它的各個模型可以掛念開發(fā)人員更好地理解業(yè)務流程,建立更牢靠,更完善的系統(tǒng)模型.從而使用戶和開發(fā)人員對問題的描述達到相同的理解,以削減語義差異,保障分析的正確性。UML建模分為需求建模和設計建模,需求建模的目的是確定系統(tǒng)邊界并明確系統(tǒng)需要實現(xiàn)的功能。而設計建模主要目的是用于開發(fā)團隊中的設計思想溝通;以及后續(xù)程序設計的依據(jù);后續(xù)測試和驗收程序的依據(jù)。)三、 UML應用領域UML的目標是以面對對象圖的方式來描述任何類型的系統(tǒng),具有很寬的應用領域。其中最常用的是建立軟件系
9、統(tǒng)的模型,但它同樣可以用于描述非軟件領域的系統(tǒng),如機械系統(tǒng)、企業(yè)機構或業(yè)務過程,以及處理簡單數(shù)據(jù)的信息系統(tǒng)、具有實時要求的工業(yè)系統(tǒng)或工業(yè)過程等??傊琔ML是一個通用的標準建模語言,可以對任何具有靜態(tài)結構和動態(tài)行為的系統(tǒng)進行建模。此外,UML適用于系統(tǒng)開發(fā)過程中從需求規(guī)格描述到系統(tǒng)完成后測試的不同階段。在需求分析階段,可以用用例來捕獲用戶需求。通過用例建模,描述對系統(tǒng)感愛好的外部角色及其對系統(tǒng)(用例)的功能要求。分析階段主要關懷問題域中的主要概念(如抽象、類和對象等)和機制,需要識別這些類以及它們相互間的關系,并用UML類圖來描述。為實現(xiàn)用例,類之間需要協(xié)作,這可以用UML動態(tài)模型來描述。在分
10、析階段,只對問題域的對象(現(xiàn)實世界的概念)建模,而不考慮定義軟件系統(tǒng)中技術細節(jié)的類(如處理用戶接口、數(shù)據(jù)庫、通訊和并行性等問題的類)。這些技術細節(jié)將在設計階段引入,因此設計階段為構造階段供應更具體的規(guī)格說明。編程(構造)是一個獨立的階段,其任務是用面對對象編程語言將來自設計階段的類轉換成實際的代碼。在用UML建立分析和設計模型時,應盡量避開考慮把模型轉換成某種特定的編程語言。由于在早期階段,模型僅僅是理解和分析系統(tǒng)結構的工具,過早考慮編碼問題格外不利于建立簡潔正確的模型。UML模型還可作為測試階段的依據(jù)。系統(tǒng)通常需要經(jīng)過單元測試、集成測試、系統(tǒng)測試和驗收測試。不同的測試小組使用不同的UML圖作
11、為測試依據(jù):單元測試使用類圖和類規(guī)格說明;集成測試使用部件圖和合作圖;系統(tǒng)測試使用用例圖來驗證系統(tǒng)的行為;驗收測試由用戶進行,以驗證系統(tǒng)測試的結果是否滿足在分析階段確定的需求??傊瑯藴式UZ言UML適用于以面對對象技術來描述任何類型的系統(tǒng),而且適用于系統(tǒng)開發(fā)的不同階段,從需求規(guī)格描述直至系統(tǒng)完成后的測試和維護。四、 UML圖形種類介紹UML從考慮系統(tǒng)的不同角度動身,定義了用例圖、類圖、對象圖、狀態(tài)圖、活動圖、序列圖、協(xié)作圖、構件圖、部署圖等9種圖,按其特點可分成五大類,1.用例圖;2.靜態(tài)圖:(類圖、對象圖);3.行為圖:(活動圖、狀態(tài)圖);4.交互圖:(挨次圖、協(xié)作圖);5.實現(xiàn)圖:(構件
12、圖、部署圖)。這些圖從不同的側面對系統(tǒng)進行描述。系統(tǒng)模型將這些不同的側面綜合成全都的整體,便于系統(tǒng)的分析和構造。1、用例圖 描述角色以及角色與用例之間的連接關系。說明的是誰要使用系統(tǒng),以及他們使用該系統(tǒng)可以做些什么。一個用例圖包含了多個模型元素,如系統(tǒng)、參與者和用例,并且顯示了這些元素之間的各種關系,如泛化、關聯(lián)和依靠。2、類圖 類圖是描述系統(tǒng)中的類,以及各個類之間的關系的靜態(tài)視圖。能夠讓我們在正確編寫代碼以前對系統(tǒng)有一個全面的生疏。類圖是一種模型類型,精確的說,是一種靜態(tài)模型類型。3、對象圖
13、; 與類圖極為相像,它是類圖的實例,對象圖顯示類的多個對象實例,而不是實際的類。它描述的不是類之間的關系,而是對象之間的關系。4、活動圖 描述用例要求所要進行的活動,以及活動間的約束關系,有利于識別并行活動。能夠演示出系統(tǒng)中哪些地方存在功能,以及這些功能和系統(tǒng)中其他組件的功能如何共同滿足前面使用用例圖建模的商務需求。5、狀態(tài)圖 描述類的對象全部可能的狀態(tài),以及大事發(fā)生時狀態(tài)的轉移條件。可以捕獲對象、子系統(tǒng)和系統(tǒng)的生命周期。他們可以告知一個對象可以擁有的狀態(tài),并且大事(如
14、消息的接收、時間的消逝、錯誤、條件變?yōu)檎娴?會怎么隨著時間的推移來影響這些狀態(tài)。一個狀態(tài)圖應當連接到全部具有清楚的可標識狀態(tài)和簡單行為的類;該圖可以確定類的行為,以及該行為如何依據(jù)當前的狀態(tài)變化,也可以呈現(xiàn)哪些大事將會轉變類的對象的狀態(tài)。狀態(tài)圖是對類圖的補充。6、序列圖 (挨次圖) 序列圖是用來顯示你的參與者如何以一系列挨次的步驟與系統(tǒng)的對象交互的模型。挨次圖可以用來呈現(xiàn)對象之間是如何進行交互的。挨次圖將顯示的重點放在消息序列上,即強調(diào)消息是如何在對象之間被發(fā)送和接收的。7、協(xié)作圖 和序列圖相
15、像,顯示對象間的動態(tài)合作關系??梢钥闯墒穷悎D和挨次圖的交集,協(xié)作圖建模對象或者角色,以及它們彼此之間是如何通信的。假如強調(diào)時間和挨次,則使用序列圖;假如強調(diào)上下級關系,則選擇協(xié)作圖;這兩種圖合稱為交互圖。8、構件圖 (組件圖) 描述代碼構件的物理結構以及各種構建之間的依靠關系。用來建模軟件的組件及其相互之間的關系,這些圖由構件標記符和構件之間的關系構成。在組件圖中,構件時軟件單個組成部分,它可以是一個文件,產(chǎn)品、可執(zhí)行文件和腳本等。9、部署圖 (配置圖) 是用來建模系統(tǒng)的物理部署。例
16、如計算機和設備,以及它們之間是如何連接的。部署圖的使用者是開發(fā)人員、系統(tǒng)集成人員和測試人員。以上圖形中由于類圖之間的關系相對比較簡單,所以對于類圖之間的關系進行一個大致的講解。其關系種類有關聯(lián)、聚合、組合、泛化、依靠。1. 泛化(Generalization)【泛化關系】:是一種繼承關系, 表示一般與特殊的關系, 它指定了子類如何特化父類的全部特征和行為. 例如:老虎是動物的一種, 即有老虎的特性也有動物的共性.【箭頭指向】:帶三角箭頭的實線,箭頭指向父類
17、60;2. 實現(xiàn)(Realization)【實現(xiàn)關系】:是一種類與接口的關系, 表示類是接口全部特征和行為的實現(xiàn).【箭頭指向】:帶三角箭頭的虛線,箭頭指向接口 3. 關聯(lián)(Association)【關聯(lián)關系】:是一種擁有的關系, 它使一個類知道另一個類的屬性和方法;如:老師與同學,丈夫與妻子關聯(lián)可以是雙向的,也可以是單向的。雙向的關聯(lián)可以有兩個箭頭或者沒有箭頭,單向的關聯(lián)有一個箭頭?!敬a體現(xiàn)】:成員變量【箭頭及指向】:帶一般箭頭(或實心三角形箭頭)的實心線,指向被擁有者 上圖中,老師與同學是雙向關聯(lián),老師有多名同學,同學也可能有多名
18、老師。但同學與某課程間的關系為單向關聯(lián),一名同學可能要上多門課程,課程是個抽象的東西他不擁有同學。4. 聚合(Aggregation)【聚合關系】:是整體與部分的關系, 且部分可以離開整體而單獨存在. 如車和輪胎是整體和部分的關系, 輪胎離開車仍舊可以存在.聚合關系是關聯(lián)關系的一種,是強的關聯(lián)關系;關聯(lián)和聚合在語法上無法區(qū)分,必需考察具體的規(guī)律關系?!敬a體現(xiàn)】:成員變量【箭頭及指向】:帶空心菱形的實心線,菱形指向整體 5. 組合(Composition)【組合關系】:是整體與部分的關系, 但部分不能離開整體而單獨存在. 如公司和部門是整體和部分的關系, 沒有公司就不存在部門. 組合關系是關聯(lián)關系的一種,是比聚合關系還要強的關系,它要求一般的聚合關系中代表整體的對象負責代表部分的對象的生命周期【代碼體現(xiàn)】:成員變量【箭頭及指向】:帶實心菱形的實線,菱形指向整體 6. 依靠(Dependency)【依靠關系】:是一種使用的關系, 即一個類的實現(xiàn)需要另一個類
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 航空運輸服務流程優(yōu)化手冊
- 企業(yè)設備管理與維護規(guī)范與操作手冊
- 林草種子工春節(jié)假期安全告知書
- 企業(yè)信息化項目管理與操作規(guī)范手冊(標準版)
- 2025年企業(yè)質量管理與客戶滿意度
- 考研專業(yè)課計算機真題題庫及答案
- 2025 四年級科學上冊觀察方法系統(tǒng)指導課件
- 化妝培訓眉毛教案課件
- 學校管理崗位晉升考試試題及答案
- 2025 四年級科學上冊科學假設的合理性判斷課件
- 安徽省蕪湖市鳩江區(qū)2024-2025學年高一上學期期末考試生物試卷
- 2025年對中國汽車行業(yè)深度變革的觀察與思考報告
- 福建省泉州市晉江市2024-2025學年八年級上學期1月期末考試英語試題(含答案無聽力音頻及原文)
- 心血管疾病風險評估
- 慢性肝病患者營養(yǎng)支持護理培訓
- 汽車租賃業(yè)應急預案(3篇)
- 基層高血壓管理流程
- 2026年咨詢工程師咨詢實務考前沖刺重點知識考點總結記憶筆記
- 2025年內(nèi)蒙古自治區(qū)呼和浩特市評審專家考試題庫(一)
- 電化學儲能電站安全檢查要點表
- 空軍招飛心理測試題及答案解析
評論
0/150
提交評論