第-2-章-軟件工具和面向對象軟件工程課件_第1頁
第-2-章-軟件工具和面向對象軟件工程課件_第2頁
第-2-章-軟件工具和面向對象軟件工程課件_第3頁
第-2-章-軟件工具和面向對象軟件工程課件_第4頁
第-2-章-軟件工具和面向對象軟件工程課件_第5頁
已閱讀5頁,還剩33頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

2.1傳統軟件工程的困境及解決2.2經典的軟件工程與建模工具

2.3自動化的測試工具Panorama第2章軟件工具和面向對象工程2.1傳統軟件工程的困境及解決2.1.1傳統軟件工程面臨的困境1.在分析方面

開發者不熟悉業務對用戶需求了解不透過早離開用戶,閉門造車功能模型與信息模型聯系不緊難以適應面向對象的編程在設計方面軟件開發技術發展滯后軟件系統龐大復雜。

在測試和運行方面文檔資料不規范測試花費大軟件難以適應新的環境和需求軟件管理不足,文檔不能及時更新軟件開發工具是指支持軟件生存期中策一階段(如需求分析、設計、編碼、測試或運行維護等)的任務實現而使用的計算機程序

目前,軟件開發工具種類繁多,按功能可將軟件開發工具分為如下幾類。(1)業務系統規劃工具通過將企業的策略性信息需求模型化,這類工具提供一個可導出特定信息系統的“元模型”,這樣可使業務信息遠行于企業的各個部門。2.1.2軟件工具(2)項目管理工具借助這類工具,項目管理者可以有效地估算軟件項目所需的工作量、成本和研制周期等,可以定義一個功能分解結構,并制定可行的項目開發計劃;基于需求跟蹤項目的開發情況;可采集度量數據,以此評價軟件開發效率和產品質量。由此可見,這類工具又可詳細分為項目計劃工具、需求跟蹤工具及度量和管理工具等。(3)支持工具這類工具用于支持軟件工程過程,具體包括文檔編制工具、系統軟件工具、質量保證工具、數據庫管理工具和軟件配置管理工具等。(4)分析和設計工具

這類工具是用于建立待開發系統的模型,并評價模型的質量,通過對模型進行一致性和有效性檢查,保證分析與設計的完整性。它除包括支持某種開發方法的工具外,還包括基于規則體系的分折與設計機,這種分析與設計機是一種期望產品,它可使工具適用于各種分析和設計方法。

(5)編程工具

這類工具包括用于支持大多數傳統編程語言的編譯器、編輯器和調試器等,從工具輸出來看,4GL也屬于這一類。

(6)測試與分析工具常用的測試與分析工具包括靜態分析工具和動態測試。 前者是在不執行任何測試用例的前提下分析源程序的內部結構,后者則通過執行測試用例對被測程度進行覆蓋測試,支持語句、分支和邏輯路徑覆蓋.以發現程序的結構和邏輯錯誤 (7)原型工具

作為除瀑布式開發模式以外的另一主要開發模式是原型開發模式,固其運用的靈活性和用戶需求反應的快捷性愈來愈受到重視,特別是隨著軟件構件重用研究的深入,更增強了這種開發模式的實用價值。但原型的構造離不開經驗信息,所以支持原型開發模式的原型工具的發展日趨專用化,諸如用于用戶界面設計的原型工具可利用圖形包快速構造出應用系統的界面,供用戶評價,以確定最終產品的界面形式。

(8)維護工具

用于協助維護活動的完成,包括當運行發現問題時,定位到相應的軟件開發基線;軟件配置不完備時由源程序到分析與設計模型的逆轉換工具等。由上可見,軟件開發工具種類繁多,各類工具又因支持不同方法相應用的不同領域而明顯具有不容性。這些工具如何協調高效地支持整個軟件開發過程,必須引入完善的集成機制,來使多個工具有效地結合而形成功能強大的軟件開發環境。2.1.3面向對象的軟件工程 面向對象方法學的出發點和基本原則,是盡可能模擬人類習慣的思維方式,使開發軟件的方法與過程盡可能接近人類認識世界解決問題的方法與過程,也就是使描述問題的問題空間(也稱為問題域)與實現解法的解空間(也稱為求解域)在結構上盡可能一致。 客觀世界的問題都是由客觀世界中的實體及實體相互間的關系構成的。我們把客觀世界中的實體抽象為問題域中的對象。

2.1.4面向對象技術面向對象分析(OOA)面向對象設計(OOD)面向對象程序設計(OOP)面向對象測試(OOT)2.2經典的軟件工程與建模工具

PlayCASE建模工具(以下簡稱PlayCASE)反映了軟件工程的最新進展,適合各種規模軟件系統的開發。它繼承并發揮了經典的結構化方法、信息工程方法和面向對象方法的優點,創造性地集成了美國軍方的IDEF(IntegrationDEFinition)系列軟件開發規范,提供了面向對象的集成化的IDEF方法——I2DEF方法(IntegratedIDEF),包括結構建模、動態建模和功能建模的手段

PlayCASE創造性地把業務調查、需求定義、總體設計、詳細設計及程序生成等軟件開發過程結合為一體,適合生命周期法、原型法及其混合形式,極大地提高了軟件系統開發的效率和質量,滿足了各方面需要。

PlayCASE以循序漸進的方式推進軟件的開發過程,徹底解決了各個開發階段“雞犬之聲相聞,老死不相往來”的問題,每個階段的分析設計文檔都可在后續工作中全部直接利用,達到不斷完善的目的。PlayCASE簡介幻燈片PlayCASE的工作界面2.3自動化的測試工具Panorama2.3.1Panorama發展歷史

Panorama的第一代原型系統是“SoftwareMaintenanceSolution”(軟件維護解決方案)”,第二代產品稱為“Hindsight”(后景),第三代產品稱為Panorama(全景),現在是Panorama++。Panorama的客戶遍布美國、日本、英國、法國、德國等十多個國家,在SunMicrosystems、Canon、Toshiba、Sony、SiemensAG、Nikon等100多家公司中得到實際應用并廣受好評。Panorama的主要特點集成化自動化綜合性友好界面高效率獨立方法學2.3.2Panorama系統特點2.3.2Panorama領先的技術Panorama的領先技術開發技術分析技術流程圖化表達技術測試分析技術質量保證技術文檔自動生成技術2.3.3Panorama工具系列和功能2.3.3.1Panorama/OO-Browse(教材19頁)

Panorama/OO-Browse瀏覽器是一個獨立軟件設計和再生成工具包,被集成到Panorama

軟件工程環境中: 1.Givesyoutheoverviewofthefunctionandclassorganizationofanentiresystem. 2.Providesyouamulti-levelunderstandingofyoursystemfromtopleveltosub-systemlevel,allowsyoutodynamicallynavigatethroughittounderstanditsdetailedstructure.

3.Reducescostlycodingandtestingerrors.Whenyoucodefollowingthebottom-upcodingorder,criticalmodulescanbecodedandtestedfirst.Thenwhenyouwriteamodulecall,thecalledmoduleshouldalreadyhavebeencodedandcanbeviewed;whenyouperformunit/systemtesting,youdonotneedtodesignstubmodulestoreplaceuncoded/untestedmodules. 4.Enablesyoutoeasilymodifyamodulewithouthavingtomemorizewhatfileunderwhatdirectorycontainsthemodule. 5.Showsyouthedetailedmodulediagramsofyoursystem.Diagrammedcodefacilitatesreadingandunderstanding. 6.Pinpointstherelatedmodulesquicklyanddynamicallytomakeyoursystemeasytounderstand,inspect,test,andmaintain.Whenyoumodifyamodule,youcaneasilydeterminewhatothermodulesmaybeaffected. 7.Allowsyoutoquicklyidentifyproblemssuchastheruntimebottle-neck,unmaintainablecode,andthelesstestedmodulesbyofferingyouavisualoverviewoftherelatedinformation; 8.Helpsyoutodocumentyoursystemdevelopmentprogress;providesyouwithaframeworkfordiscussingthesystemwithyourteammembers. 9.Facilitatesyoursoftwaredevelopmenttasks.Youcanactivatemostfunctionsbyasimplemouseclick;easilycustomizetheformatofJ-Chart;andefficientlyzoominonthepartsyouareinterestedinusingViewFinder.2.3.3.2Panorama/OO-Diagrammer(教材20頁)

Panorama/OO-Diagrammer是使用ISA的動態圖表表示法技術開發的。它直接地從用戶的原始代碼生成J-Diagram圖,J-Flow圖和ActionPlusDiagrams圖 1.Assistsyouinunderstandingyourprogramlogic--adynamicpictureisworththousandsofwordsinrepresentingalargesystem.WithPanorama/OO-Test,testcoverageresultscanbeshownintheJ-Diagramgenerated.Inparticular,unexecutedelementscanbehighlightedtohelpyoufindthemquicklyanddesignthecorrespondingtestcaseeasily. 2.Givesyouadetailedviewofyourprogramcontrolflowtohelpyouidentifycomplexcode,performlogicdebugging,andplanandreviewtesting. 3.OffersyouanenhancedversionoftheActionDiagramforcodeunderstanding. 4.Enablesyoutoobtainquicklyafullunderstandingofyourprogramfromsystem-leveldirectlytothemodule-level.Noneedtosearchforthecorrectlogicdiagramormatchupahigh-leveldiagramwiththerightlow-leveldiagrambyhand. 5.Simplifiestestcasedesigningforexecutingtheunexecutedpaths. 6.Providesyouwithadeepunderstandingoftheclassstructureforcodereusabilityandmaintainability. 7.Enablesyoutocommentonthediagrammedcodewithon-linemarkersforlaterreferencing,andtoefficientlyeditthecodewhileviewingthediagram.

8.Facilitatescodeinspectionandwalk-through.Forexample,youcanclickontheactivenumberassociatedwithafunctioncallstatementtodirectlyviewthecalledfunction.Itiseasytowalk-throughaevencomplexprogram. 9.Helpsyoutodocumentyoursourcecode.Converteasilyfromonetypeofdiagramtoanother.Usehardcopiesofdiagramstodocumentyourdevelopmentprogress.2.3.3.3Panorama/OO-Analyzer

Panorama/OO分析儀也是集成在Panorama中的一個獨立工具。它提供多數全面分析能力,自動生成包括系統/類/函數/數據/復雜/性能/測試覆蓋面等,并提供超過100個的分析報告。 1.Enablesyoutodocumentproductivity,programreadabilityandrequiredre-engineeringeffortforasoftwaresystem. 2.Bringsyouadeeperunderstandingofclassesinyourobject-orientedsoftwaresystems. 3.Helpsyoutounderstandtherelationshipsbetweenconventionalfunctions:estimatethedegreeoffunctioncouplingandcohesion,identifyotherfunctionsthatmayneedmodificationwhenonefunctionismodified,andpinpointpotentialproblemsidentifiedbyunusedfunctionsinthesystem. 4.Makesspecialfunctionsaseasytounderstandasconventionalfunctions.Inparticular,confusionswithoverloadingfunctionscanbeavoided. 5.Exploresthebehaviorofglobalandstaticvariables,helpsyoufindpotentialproblemsandreducethere-engineeringeffortrequiredindatamodification. 6.Givesyouanevaluationofthestructureofyourprogram,helpsyoufindpotentialproblemsidentifiedbyunusedlabels. 7.Offersyouawaytomeasureandimproveprogrammaintainabilityandtestability,helpsyouperformbettertestplanning. 8.Pinpointstheperformancebottlenecksforyoutohelpyouimprovetheoverallperformanceofyoursoftwaresystems. 9.Assistsyouinmeasuringthereliabilityofyoursoftwaresystemsandtheefficiencyofyourstructuraltesting,givesyougreatflexibilitytomeetyoursoftwaretestingneedsfromlowcosttohighquality. 10.Automatesyoursystemsdocumentationbothon-andoff-line,freesyoufromsearchingfortherequiredinformationbyhandandmakesyoursystemseasytomaintain.2.3.3.4Panorama/OO-Test

Panorama/OO-test是最強的測試覆蓋分析和測試用例最小化工具包。它解決二個“50%”的問題:50%軟件成本被花費在測試上;在運用功能測試的進行“充分測試”中,僅50%代碼被測試過。 1.Simplifiesyourtestplanningandtestcasedesign.Understandingthecontrolflowofafunctionallowsyoutocreatetherighttestcasesformorethoroughtesting.Complexityanalysishelpsyoutoplanthetestingprocessbyidentifyingcomplicatedcodethatmaytakemoretestingeffort. 2.Givesyoumoretestingflexibility. 3.Providesthemostcomprehensivecoverageanalysiscapabilitytomeetyourdifferenttestingneeds--fromhighqualitytolowcost. 4.Helpsyoutotraceprogramexecutionandfindpotentiallogicproblems. 5.Pinpointsthesourcelocationsoffatalrun-timeerrors. 6.Reducesyourtimeinunitre-testing.OO-Testidentifiesclearlywhatcodecanbetestedbyeachtestcase,andwhattestcasescanbeusedtotesteachclass/function/segment.Soafteramodule-levelmodification,youonlyneedtore-runthecorrespondingtestcases. 7.Bringsyougreatsavingsinsystem-levelre-testing.Panorama/OO-Testautomaticallyselectsaminimalsubsetoftestcasesfromyourentiretestcasesetandguaranteesthesameleveloftestcoverageresult.Ithelpsyoutogreatlyreducethetimeandcostofsystem-levelsoftwarere-testing. 8.Allowsyoutoviewalltherelevanttestresultseasilyandlocateproblemsquickly.Thetestcoveragedataareshowninavarietyofeasy-to-seeformatsforquickoverviewordetaileduntestedsegmentlocating.Panorama/OO-Testalsoprovidesmorethan40differentreportstodocumentyoursystems. 9.Makesyourtestingtaskseasier.Panorama/OO-Testallowsyoutospecifyaprojectwithonlyamakefile.Youcanselecteitherthegraphicuserinterfaceorthecommandline.2.3.3.5Panorama/OO-SQA 運用傳統基于過程的質量測量方法是不可能精確地測量一個面向對象的系統的質量的。Panorama/OO-SQA是最強有力的面向對象的質量管理工具。 1.Assistsyouinestablishingpracticalandmeasurablesoftwarequalitystandardsforyourcompanyorprojectteam. 2.Helpsyoutopreciselymeasureproductivityandsystematicallyestimatethecodereadabilityandtherequiredre-engineeringeffortforasoftwaresystem. 3.Offersyouawaytopreciselymeasureandimprovetheprogrammaintainabilityandtestability,facilitatesyourtestplanning. 4.Providesyoumultiplewaysofmeasuringthereliabilityofyousoftwaresystemsandtheefficiencyofyourstructuraltesting,givesyougreatflexibilitytomeetyoursoftwaretestingneedsfromlowcosttohighqualityusingvarious

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論