




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第2章軟件工程方法與工具軟件工程方法概述面向對象的概念與開發方法統一建模語言UML簡介軟件工具概述UML建模工具RationalRose2.1軟件工程方法概述概念軟件工程是技術和管理緊密結合所形成的工程學科。通常將軟件開發全過程中使用的一整套技術方法的集合稱為方法學(methedology),也稱為范型(paradigm)。目前使用最廣泛的軟件工程方法學傳統方法(結構化方法)面向對象方法2.1軟件工程方法概述軟件工程三要素:方法、工具和過程。方法提供“如何做”的技術;工具提供自動的或半自動的軟件支撐環境;過程規定了完成各項任務的工作步驟。2.1軟件工程方法概述結構化方法將軟件生命周期的全過程依次劃分為若干個階段,采用結構化技術來完成每個階段的任務。特點:
(1)強調自頂向下順序地完成軟件開發的各階段任務;(2)結構化方法要么面向行為,要么面向數據,缺乏使兩者有機結合的機制。2.1軟件工程方法概述面向對象方法將數據和對數據的操作緊密地結合起來的方法。軟件開發過程是多次反復迭代的演化過程。對于大型、復雜及交互性比較強的系統,使用面向對象方法更有優勢。2.1軟件工程方法概述形式化方法形式化方法是一種基于形式化數學變換的軟件開發方法,它可將系統的規格說明轉換為可執行的程序。該過程的具體描述如圖所示。2.2面向對象的概念與開發方法現實世界就是由各種對象組成的,如建筑物、人、汽車、動物、植物等。對象擁有屬性和行為。8操作打電話發短信照相收發郵件導航qq微博…屬性型號顏色年份重量待機時間對象名手機對象2.2面向對象的概念與開發方法類:具有相同屬性和相同操作的對象的抽象。包括類名、類的屬性、類的操作三方面的內容。一個具體對象是類的一個實例。10將對象分組為類的例子11可以使用方框來表示一個類`大象類顏色:text象牙數:Integer生活區域:text重量:float高度:float遷移(location)洗澡(date)進食(amount,date,time)2.2面向對象的概念與開發方法Coad和Yourdon給出了“面向對象”的一個定義:
面向對象=對象+類+繼承+消息通信如果一個系統是使用這樣4個概念設計和實現的,則可認為這個系統是面向對象的。
對象對象是包含現實世界物體特征的抽象實體,它反映了系統為之保存信息和(或)與它交互的能力。例如,Student對象的數據可能有姓名、性別、出生日期、家庭住址、電話號碼等,其操作可能是對這些數據值的賦值及更改。對象對象與后面講的類具有幾乎完全相同的表示形式,主要差別是對象的名字下面要加一條下劃線。對象名有下列三種表示格式:(1)第一種格式是對象名在前,類名在后,中間用冒號連接。形如:
對象名:類名
(2)第二種格式形如:
:類名
這種格式用于尚未給對象命名的情況,注意,類名前的冒號不能省略。(3)第三種格式形如:
對象名
對象對象有兩個層次的概念:(1)現實生活中對象指的是客觀世界的實體。可以是可見的有形對象,如人、學生、汽車、房屋等;也可以是抽象的邏輯對象,如銀行帳號,生日。(2)程序中對象就是一組變量和相關方法的集合,其中變量表明對象的狀態,方法表明對象所具有的行為。對象程序中的對象分為5類:物理對象,角色,事件,交互,規格說明。
物理對象(PhysicalObjects)──通常可以在問題領域的描述中找到,它們的屬性可以標識和測量。例如,大學課程注冊系統中的學生對象;一個網絡管理系統中各種網絡物理資源對象(如開關、CPU和打印機)都是物理對象。對象(2)角色(Roles)──一個實體的角色也可以抽象成一個單獨的對象。一個實際的物理對象可能同時承擔幾個角色。例如,一個退休教師同時扮演退休者和教師的角色。對象(3)事件(Events)──一個事件是某種活動的一次“出現”。如“鼠標”事件對象有諸如光標坐標、左右鍵、單擊、雙擊等信息。對象(4)交互(Interactions)──交互表示了在兩個對象之間的關系,這種類型的對象類似于在數據庫設計時所涉及的“關系”實體。例如,在大學課程注冊系統中,學生和課程之間的關系是多對多的關系,可設置一個“選課”交互對象來簡化它們之間的關系。(5)規格說明(specification)──表明組合某些實體時的要求。一個“烹飪”對象定義各種調料和它們的量,以及它們組合的次序和方式。類與封裝類為了讓計算機創建對象,必須先提供對象的定義,也就是先定義對象所屬的類。例如,可以將學生對象所屬的類定義為Student。類的圖形表示如圖所示。22簡單圖形程序設計類等級圓類弧類類與封裝封裝封裝是一種信息隱蔽技術,就是利用抽象數據類型將數據和基于數據的操作封裝在一起。用戶只能看到對象的封裝界面信息,對象的內部細節對用戶是隱蔽的。封裝的定義是:(1)清楚的邊界,所有對象的內部信息被限定在這個邊界內;(2)接口,即對象向外界提供的方法,外界可以通過這些方法與對象進行交互;(3)受保護的內部實現,即軟件對象功能的實現細節,實現細節不能從類外訪問。繼承繼承。繼承是為類的重用提供了方便,它提供了明確表述不同類之間共性的方法。公共類稱為超類(superclass)、父類(fatherclass)、祖先(ancestor)或基類(baseclass),而從其繼承的類稱為子類(subclasses)、后代(deslendane)或導出類(derivedclass)。25簡單圖形程序設計類層次位置點圓弧多態根據為請求提供服務的對象不同可以得到不同的行為,這種現象稱為多態。在運行時對類進行實例化,并調用與實例化對象相應的方法,稱為動態綁定。如果方法的調用是在編譯時確定的,則稱為是靜態綁定。
通過在子類中覆蓋父類的方法實現多態。27#include<iostream.h>classCShape{public:
virtualvoiddisplay()=0;
};classCEllipse :publicCShape{public:
virtualvoiddisplay()
{cout<<"Ellipse\n";}};classCCircle :publicCEllipse{public:
virtualvoiddisplay()
{cout<<"Circle\n";}};classCTriangle :publicCShape{public:
virtualvoiddisplay(){cout<<"Triangle\n";}};28classCRect:publicCShape{public:
virtualvoiddisplay()
{cout<<"Rectangle\n";}};classCSquare:publicCRect{public:
virtualvoiddisplay()
{cout<<"Square\n";}};voidmain(){ CEllipseaEllipse; CCircleaCircle; CTriangleaTriange; CRectaRect; CSquareaSquare; CShape*pShape[5]= {&aEllipse,&aCircle, &aTriange,&aRect, &aSquare};
for(inti=0;i<5;i++) pShape[i]->display();}消息通信消息是一個對象與另一個對象的通信單元,是要求某個對象執行類中定義的某個操作的規格說明。發送給一個對象的消息定義了一個方法名和一個參數表(可能是空的),并指定某一個對象。一個對象接收到消息,則調用消息中指定的方法,并將形式參數與參數表中相應的值結合起來。面向對象的開發方法面向對象軟件開發方法的特征方法的唯一性
即方法是對軟件開發過程所有階段進行綜合考慮而得到的。從生存期的一個階段到下一個階段的高度連續性
即生存期后一階段的成果只是在前一階段成果的補充和修改。把面向對象分析(OOA)、面向對象設計(OOD)和面向對象程序設計(OOP)集成到生存期的相應階段。Rumbaugh方法
Rumbaugh和他的同事提出的對象模型化技術(OMT)用于分析、系統設計和對象級設計。分析活動建立三個模型:對象模型(描述對象、類、層次和關系);動態模型(描述對象和系統的行為);功能模型(類似于高層的DFD,描述穿越系統的信息流)。面向對象的開發方法Coad和Yourdon方法
Coad和Yourdon方法常常被認為是最容易學習的OOA方法。建模符號相當簡單,其OOA過程如下:(1)使用“要找什么”準則標識對象;(2)定義對象之間的一般化/特殊化結構(又稱為分類結構);(3)定義對象之間的整體/部分結構(又稱為組合結構);(4)標識主題;(5)定義對象的屬性及對象之間的實例連接;(6)定義服務及對象之間的消息連接。面向對象的開發方法Booch方法包含“微開發過程”和“宏開發過程”兩個過程。OOA宏觀開發過程如下:標識類和對象;標識類和對象的語義;標識類和對象間的關系;進行一系列精化;實現類和對象。面向對象的開發方法Jacobson方法也稱為OOSE(面向對象軟件工程),其特點是特別強調使用用例——用以描述用戶和產品或系統間如何交互的場景。過程如下:標識系統的用戶和他們的整體責任構造需求模型構造分析模型
面向對象的開發方法2.3統一建模語言UML簡介面向對象的建模語言很多,目前使用最廣泛的是統一建模語言(UML,UnifiedModelingLanguage);它將Booch、Rumbaugh和Jacobson等各自獨立的OOA和OOD方法中最優秀的特色組合成一個統一的方法。UML的產生和發展UML(UnifiedModelingLanguage)的概念于1996年由面向對象方法領域的三位著名專家GradyBooch,JamesRumbaugh和IvarJacobson提出的。1996年6月和10月分別發布了UML0.9,UML0.91。1997年1月,UML1.0被提交給對象管理組織OMG。1997年9月,提交UML1.1,1997年11月被OMG采納作為基于面向對象技術的標準建模語言。1998、2000、2001、2003、2005年分別發布了UML1.2、UML1.3、UML1.4、UML1.5、UML2.0。2007年發布了UML2.1.1,UML2.1.2。2009年發布了UML2.2UML的產生和發展(1)統一標準
UML不僅統一了Booch、OMT和OOSE等方法中的基本概念,還吸取了面向對象技術領域中其他流派的長處,其中也包括非OO方法的影響。已經成為OMG的標準。(2)面向對象
UML支持面向對象技術的主要概念,它提供了一批基本的表示模型元素的圖形和方法,能簡潔明了地表達面向對象的各種概念和模型元素。UML的特點(3)可視化,表達能力強大UML是一種圖形化語言,用UML的模型圖形能清晰地表示系統的邏輯模型或實現模型。UML還提供了語言的擴展機制,用戶可以根據需要增加定義自己的構造型、標記值和約束等。(4)獨立于過程
UML是系統建模的語言,不依賴特定的開發過程。UML的特點(5)容易掌握使用
UML概念明確,建模表示法簡潔明了,圖形結構清晰,容易掌握使用。(6)與編程語言的關系
支持UML的一些CASE工具(如Rose)可以根據UML所建立的系統模型自動產生Java、C++等代碼框架。UML的特點2.4軟件工具概述軟件工具的概念軟件工具的發展軟件工具的分類常用軟件工具介紹軟件工具的概念軟件工具是指能支持軟件生存周期中某一階段的需要而使用的軟件工具。軟件工具通常也稱為CASE(計算機輔助軟件工程,computeraidedsoftwareengineering)工具。軟件工具的發展50年代末期出現了程序設計語言,因此,出現了編輯程序、匯編程序和各種程序語言的編譯程序或解釋程序、連接程序、裝配程序、排錯程序等輔助軟件編程活動的工具。60年代末提出軟件工程的概念后,支持軟件開發、維護、管理等過程的各種活動的工具也應運而生。例如,支持需求分析活動的需求分析工具、支持維護過程的維護工具和理解工具、支持管理過程中進度管理活動的PERT工具、支持軟件過程的質量保證工具等。軟件工具的發展80年代中期提出了軟件過程的新概念,人們開始研制過程建模的工具、過程評價工具。如今,軟件工具重視用戶界面的設計,不斷地采用新理論和新技術,正由單個工具向多個工具集成的方向發展,且注重工具間的平滑過渡和互操作性。軟件工具的分類軟件工具的種類繁多,很難有一種統一的分類方法,通常從不同的觀點來進行分類。由于大多數軟件工具僅支持軟件生存周期過程中的某些特定的活動,所以通常可以按軟件過程的活動來進行分類。如:支持軟件開發過程的工具:主要有需求分析工具、設計工具(通常還可以分為概要設計工具和詳細設計工具)、編碼工具、排錯工具、測試工具等。(2)支持軟件維護過程的工具:主要有版本控制工具、文檔分析工具、信息庫開發工具、逆向工程工具、再工程工具等。(3)支持軟件管理過程和支持過程的工具:主要有項目管理工具、配置管理工具、軟件評價工具等。常用軟件工具介紹支持軟件開發過程的工具主要有:需求分析工具設計工具編碼工具排錯工具測試工具常用軟件工具介紹需求分析工具需求分析工具的按所采用的系統開發方法,可以分為兩類:(1)結構化圖形工具箱這類工具需要通過數據流程圖DFD進行功能分析。包括DFD圖形工具,實體-關系圖(E-R)圖形工具,Jackson圖形工具,Warnier/Orr圖形工具等等。(2)面向對象模型化工具及分析工具這類工具需要通過對象建立構造系統的抽象模型,一般包括圖形工具、對象瀏覽器及類庫管理系統。常用軟件工具介紹有代表性的商品化工具有:RationalRose,由RationalCorporation開發。PowerDesigner,由Sybase開發。Visio,由Microsoft開發。ArgoUML,開源工具。ControlCenter,由TogetherSoft開發。EnterpriseArchitect,由SparxSystems開發。ObjectTechnologyWorkbench(OTW),由OTWSoftware開發。SystemArchitect,由PopkinSoftware開發。UMLStudio,由PragsoftCorporation開發。VisualUML,由VisualObjectModelers開發。常用軟件工具介紹2.設計工具設計工具通常可分為概要設計工具和詳細設計工具。(1)概要設計工具概要設計工具用以輔助設計人員設計目標軟件的體系結構、控制結構和數據結構。體系結構通常用模塊結構圖來描述,它指明軟件系統的模塊組成及其調用關系,模塊的接口定義等。模塊的數據結構通常用實體-關系圖來描述。常用軟件工具介紹有代表性的商品化工具有:RationalRose:由Rational開發,是基于UML的設計工具,它支持體系結構設計中的所有方面。Adalon:由Synthis公司開發,是用于設計和構建專門基于Web構件體系結構的特定設計工具。Objectif:由microTOOLGmbH開發,是一個基于UML的設計工具,它可以導致服從基于構件的軟件工程的各種體系結構(如,Coldfusion、J2EE和Fusebox等)。常用軟件工具介紹2.設計工具設計工具通常可分為概要設計工具和詳細設計工具。(2)詳細設計工具詳細設計工具用以輔助設計人員設計模塊的算法和內部實現細節。詳細設計規范的圖形描述方法通常有輸入-處理-輸出(input-process-output,IPO)圖、問題分析圖(problemanalysisdiagram,PAD)、盒圖(也稱NS圖)、流程圖(flowchart,FC)等。詳細設計規范的語言描述方法通常有程序設計語言(programdesignlanguage,PDL)、結構化語言等。詳細設計規范的表格描述方法通常有判定表和判定樹。常用軟件工具介紹3.編碼工具與調試工具輔助程序員進行編碼活動的工具有編碼工具和排錯工具。編碼工具輔助程序員用某種程序設計語言編制源程序,并對源程序進行翻譯,最終轉換成可執行的代碼。排錯工具用來輔助程序員尋找源程序中錯誤的性質和原因,并確定其出錯的位置。常用軟件工具介紹4.測試工具測試工具分為:單元測試工具組裝測試工具系統測試工具常用軟件工具介紹4.測試工具程序單元測試工具早期的程序單元測試工具有三類:程序靜態分析工具、動態分析工具和自動測試支持工具。目前最流行的單元測試工具是xUnit系列框架,根據語言不同分為JUnit(java),CppUnit(C++),DUnit
(Delphi
),NUnit(.net),PhpUnit(Php
)等等。常用軟件工具介紹4.測試工具(2)組裝測試工具組裝測試也稱為集成測試或聯合測試,在單元測試的基礎上,將所有模塊按照設計要求組裝成為子系統或系統,進行組裝測試。實踐表明,一些模塊雖然能夠單獨地工作,但并不能保證連接起來也能正常地工作。程序在某些局部反映不出來的問題,在全局上很可能暴露出來,影響功能的實現。常用軟件工具介紹有代表性的組裝測試工具有:WinRunner,由Mercury
Interactive公司開發,是一種企業級的功能測試工具,用于檢測應用程序是否能夠達到預期的功能及正常運行。IBM
Rational
Robot
是業界最頂尖的功能測試工具。Borland
SilkTest
2006屬于軟件功能測試工具,是Borland公司所提出軟件質量管理解決方案的套件之一。TestDirector
是業界第一個基于Web的測試管理系統,它可以在公司內部或外部進行全球范圍內測試的管理。常用軟件工具介紹4.測試工具(3)系統測試工具系統測試是對整個基于計算機的系統進行一系列不同考驗的測試。除了功能測試之外,負載測試、性能測試、可靠性測試和其他一些測試一般都是在系統測試期間進行的。常用軟件工具介紹有代表性的系統測試工具有:LoadRunner
是一種預測系統行為和性能的負載測試工具。通過以模擬上千萬用戶實施并發負載及實時性能監測的方式來確認和查找問題,LoadRunner
能夠對整個企業架構進行測試。OTF(ObjectTestingFramework),由MCG軟件公司開發,為Smalltalk對象的測試提供管理框架。QADirector,由CompuwareCorp.,為管理測試過程的各個階段提供簡單的控制。TestWorks,由SoftwareResearch,Inc.開發,包含一個完整的測試工具集,包括測試管理與測試報告。2.5UML建模工具Ra
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025專賣店、超市、商場員工聘用合同范本
- 庫房出租合同模板二零二五年
- 土地流轉居間合同書二零二五年
- 買房蓋房租房合同樣本
- 二零二五勞動合同勞動合同簽訂原則
- 系統培訓方案模板
- 買期房抵押合同樣本
- 居間廠房轉讓合同二零二五年
- 二零二五代簽合同授權的委托書
- 投資收益分配股權轉讓定金協議二零二五年
- 金屬非金屬地下礦山監測監控系統建設規范
- 2024年蘇州市軌道交通集團有限公司招聘筆試參考題庫附帶答案詳解
- 新概念英語第2冊課文(完整版)
- 水培吊蘭的養殖方法要領
- 動物的遷徙行為與地球生態系統
- 【小學心理健康教育分析國內外文獻綜述4100字】
- 校園金話筒大賽(臨沂賽區)策劃書
- 正確使用文丘里面罩
- 破碎錘施工方案
- 2023年10月自考00161財務報表分析(一)試題及答案含評分標準
- 大學物理第8章-機械振動
評論
0/150
提交評論