版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
高級軟件工程AdvancedSoftwareEngineering最新高級軟件工程全文共296頁,當前為第1頁。2主要內(nèi)容一、軟件工程概述二、軟件需求三、軟件設(shè)計四、檢驗和有效性驗證方法五、軟件進化六、軟件項目管理七、AdvancedTopicsinSoftwareEngineering最新高級軟件工程全文共296頁,當前為第2頁。3一、軟件工程概述軟件工程的基本概念基于計算機的系統(tǒng)工程軟件過程軟件項目管理的基本內(nèi)容最新高級軟件工程全文共296頁,當前為第3頁。41.什么是軟件?Software=program+data+documentCustomsoftwareGenericsoftware,Shrink-wrappedsoftwareEmbeddedsoftwareSafety-criticalsoftwareCOTS(CommercialOff-the-shelf)Iwillcreateasoftwaretoupdatethedatabase.
(somesoftware,apieceofsoftware,asoftwaresystem)最新高級軟件工程全文共296頁,當前為第4頁。5軟件的分類可以按功能、規(guī)模、工作方式、可靠性高低等進行劃分有關(guān)軟件的詞匯CustomsoftwareGenericsoftwareEmbeddedsoftwareSafety-criticalsoftwareCOTS(CommercialOff-the-shelf)Iwillcreateasoftwaretoupdatethedatabase.
(somesoftware,apieceofsoftware,asoftwaresystem)最新高級軟件工程全文共296頁,當前為第5頁。62.什么是軟件工程?1968年秋季,NATO(北約)的科技委員會召集了近50名一流的編程人員、計算機科學家和工業(yè)界巨頭,討論和制定擺脫“軟件危機”的對策。FritzBauer在會議上首次提出“軟件工程”概念。軟件工程是一門研究如何用系統(tǒng)化、規(guī)范化、數(shù)量化等工程原則和方法進行軟件開發(fā)和維護的學科。最新高級軟件工程全文共296頁,當前為第6頁。7FritzBauer:軟件工程是為了經(jīng)濟地獲得可靠的,能在實際的機器上高效運行的軟件而建立和使用的科學的工程原則。IEEE:軟件工程是(1)將系統(tǒng)化的、規(guī)范的、可度量的方法應用于軟件的開發(fā)、運行和維護的過程,即將工程化思想應用于軟件開發(fā)過程中,(2)上述方法的研究。軟件工程的目標:低成本,高質(zhì)量,按時交付最新高級軟件工程全文共296頁,當前為第7頁。8軟件工程的本質(zhì)特性關(guān)注大型程序的構(gòu)造軟件工程的中心課題是控制復雜性軟件需求不斷變化旨在提高軟件開發(fā)的效率團隊合作是軟件工程順利實施的關(guān)鍵軟件必須有效支持它的用戶由一種文化背景的人替另一種文化背景的人創(chuàng)造產(chǎn)品最新高級軟件工程全文共296頁,當前為第8頁。93.軟件工程與計算機科學的區(qū)別計算機科學研究的是構(gòu)成計算機和軟件系統(tǒng)基礎(chǔ)的有關(guān)理論和方法,而軟件工程則研究軟件制作中的實際問題。理論上,所有軟件工程都應該以計算機科學理論作為堅實的基礎(chǔ),但對付實際的、復雜的問題時需要用軟件工程的方法來解決。最新高級軟件工程全文共296頁,當前為第9頁。104.軟件工程與系統(tǒng)工程的區(qū)別系統(tǒng)工程的產(chǎn)生比軟件工程早。基于計算機的系統(tǒng)工程,研究由軟件起主導作用的、有關(guān)負責系統(tǒng)的開發(fā)和進化的方方面面,包括硬件開發(fā)、系統(tǒng)決策、過程設(shè)計、系統(tǒng)實施和軟件過程等。最新高級軟件工程全文共296頁,當前為第10頁。115.什么是軟件過程?軟件過程是指開發(fā)軟件產(chǎn)品的一組活動及其結(jié)果。所有的軟件過程都包含4項基本的活動:軟件描述、軟件開發(fā)、軟件有效性驗證和軟件進化。不同的軟件過程以不同的方式組織這4項活動,活動的結(jié)果會影響活動的進度。不同的機構(gòu)可能用不同的過程來制作同一類產(chǎn)品。最新高級軟件工程全文共296頁,當前為第11頁。12過程定義的作用一個過程定義了為達到確定的目標,需要什么人在什么時間以何種方式做何種工作(Goal,Who,When,How,What)ProcessvsMusicscore對于Customer,User,Developer,Manager,一個廣泛適用的過程使得所有涉眾更好地理解自己所扮演的角色、更清楚地知道自己及他人在什么時間做什么。促使過程的有機結(jié)合和改善,以獲得“最好過程”。可以使公司內(nèi)部的培訓標準化。由于過程的可重復性,利于開發(fā)進度的安排,利于成本估算。最新高級軟件工程全文共296頁,當前為第12頁。136.什么是軟件過程模型?模型與建模軟件過程模型是從一特定的角度對軟件過程的本質(zhì)描述。軟件過程模型包括構(gòu)成軟件過程的各種活動、軟件產(chǎn)品以及所有涉眾(stakeholder)最新高級軟件工程全文共296頁,當前為第13頁。14從不同的角度對軟件過程的描述,就得到不同的過程模型種類。如工作流模型、數(shù)據(jù)流或活動模型、角色/動作模型等。工作流模型:描述軟件過程中各種活動的序列及其輸入、輸出和相互依賴型。其中的活動皆為人的活動。數(shù)據(jù)流或活動模型:把軟件過程描述成一組活動,其中每個活動都完成一定的數(shù)據(jù)轉(zhuǎn)換。該模型中的活動層次低于工作流模型。角色/動作模型:描述參與軟件過程的不同角色及其所負責的活動。最新高級軟件工程全文共296頁,當前為第14頁。15通用模型或范型(Paradigm,Methodology)WaterfallModelTheWaterfallModelWithMaintenanceCircleTheWaterfallModelWithPrototypingTheSpiralModel(瀑布模型+原型模型)TheVModelThePhasedDevelopmentModelTheIncrementalandIterativeModelRUP最新高級軟件工程全文共296頁,當前為第15頁。167.軟件工程的成本及分布軟件成本分布取決于所采用的軟件過程和所開發(fā)的軟件類型。一般的成本分布: 描述:設(shè)計:開發(fā):集成與測試(15:25:20:40)需求極高的軟件系統(tǒng)的集成與測試成本50%軟件進化的成本軟件維護的成本基于WEB的電子商務系統(tǒng)的成本模型最新高級軟件工程全文共296頁,當前為第16頁。178.軟件工程方法結(jié)構(gòu)化分析方法(DeMarco,1978,YourdonE.和ConstantineL.等)JSD方法(Jackson,1983)OO方法(Booch,1994;Rumbaugh等,1991)最新高級軟件工程全文共296頁,當前為第17頁。18UML(UnifiedModelingLanguage)1994,OO思想已經(jīng)貫穿整個軟件生存期,具有影響的OOA&D方法達50余種。UML是一種對軟件密集型系統(tǒng)進行可視化、詳述、構(gòu)造和文檔化的建模語言,主要用于分析和設(shè)計階段的系統(tǒng)建模。最新高級軟件工程全文共296頁,當前為第18頁。19UML2.01994Booch方法RumbaughOMTCoad/YourdonFireSmith方法JacobsonOOSE……1995.10發(fā)布UnifiedMethod0.81996.6發(fā)布UML0.9不包含過程指導Rational聯(lián)合12家公司成立UML組織,形成UML1.0,1997.1提交給OMG1997.11.4,OMG采納UML1.12002發(fā)布UML2.0最新高級軟件工程全文共296頁,當前為第19頁。20統(tǒng)一過程(RUP)RUP的突出特點用況驅(qū)動(系統(tǒng)功能)以構(gòu)架為中心(表現(xiàn)形式)迭代和增量開發(fā)(過程實施)最新高級軟件工程全文共296頁,當前為第20頁。21TendencyforChangewhenUsingOOParadigm(Jacobsonetal.1995)Characteristicofsoftwareproduct/projectProbabilityforchangeObjectsderivedfromtheapplicationLowLong-livedinformationstructuresLowPassiveobject’sattributeMediumSequencesofbehaviorMediumInterfacewiththeoutsideworldHighFunctionalityHigh最新高級軟件工程全文共296頁,當前為第21頁。229.什么是CASE?Computer-AidedSoftwareEngineeringCASE是支持軟件工程實施的一系列工具的集合。低端CASE工具 支持實現(xiàn)和測試的工具高端CASE工具 支持分析和設(shè)計的工具最新高級軟件工程全文共296頁,當前為第22頁。2310.優(yōu)良軟件的屬性功能屬性非功能屬性最新高級軟件工程全文共296頁,當前為第23頁。2411.軟件工程所面臨的主要問題遺留系統(tǒng)的挑戰(zhàn)多樣性的挑戰(zhàn)交付上的挑戰(zhàn)最新高級軟件工程全文共296頁,當前為第24頁。25軟件工程總體面臨的困難與風險復雜性與大量的細節(jié)(火星探測器的失?。┘夹g(shù)的不確定性(技術(shù)的發(fā)展與開發(fā)人員對技術(shù)的理解程度都不同)由于交流障礙而引起的需求不確定性需求是持續(xù)變化的不斷的修改所帶來的錯誤使得軟件退化人為和市場的風險軟件費用、可靠性、生產(chǎn)率、重用問題難以解決最新高級軟件工程全文共296頁,當前為第25頁。2612.職業(yè)和道德上的責任軟件工程是應該具有良好的職業(yè)道德無論是否簽署了保密協(xié)議都嚴格保守雇主或客戶的機密。實事求是地表述自己的工作能力,不接受超出自己能力的工作。應知曉控制專利權(quán)、著作權(quán)等知識產(chǎn)權(quán)使用的法律。避免計算機濫用。ACM,IEEE、英國計算機協(xié)會等組織頒布了職業(yè)行為準則和職業(yè)道德準則(只涉及基本的道德行為)最新高級軟件工程全文共296頁,當前為第26頁。27軟件工程人員應當遵守的原則(IEEE/ACM,1999,節(jié)選)公眾感——軟件工程人員應始終與公眾利益保持一致??蛻艉凸椭鳌浖こ倘藛T應當在與公眾利益保持一致的前提下,滿足客戶和雇主的最大利益。產(chǎn)品——應保證其產(chǎn)品及其附件達到盡可能高的行業(yè)標準。判斷力——軟件工程人員應具有公正和獨立的職業(yè)判斷力。管理——軟件工程管理者和領(lǐng)導者應擁護并倡導合乎道德的適合軟件開發(fā)和維護的管理辦法。職業(yè)感——應弘揚職業(yè)正義感和榮譽感,尊重社會公眾利益。同事——軟件工程人員應公平對待和協(xié)助每位同事。自己——軟件工程人員應畢生學習專業(yè)知識,倡導合乎職業(yè)道德的職業(yè)活動方式。最新高級軟件工程全文共296頁,當前為第27頁。28一、軟件工程概述軟件工程的基本概念基于計算機的系統(tǒng)工程軟件過程軟件項目管理的基本內(nèi)容最新高級軟件工程全文共296頁,當前為第28頁。291.系統(tǒng)總體特性功能特性非功能特性,如可靠性、安全性、保密性等。與系統(tǒng)總體可靠性緊密關(guān)聯(lián)的3個方面:硬件可靠性軟件可靠性(在第16、17章討論)操作可靠性最新高級軟件工程全文共296頁,當前為第29頁。302.系統(tǒng)及其環(huán)境系統(tǒng)都是在一定的環(huán)境中存在的。系統(tǒng)環(huán)境必將影響系統(tǒng)的功能和性能。環(huán)境包含一系列相互作用的其它系統(tǒng),有時,環(huán)境可能被看作是一個獨立的系統(tǒng)。系統(tǒng)工程師一定要了解系統(tǒng)環(huán)境在許多情況下,系統(tǒng)的目的就是要改變環(huán)境。一個系統(tǒng)的功能要受到環(huán)境變化的影響,這種影響可能很難估計。最新高級軟件工程全文共296頁,當前為第30頁。313.系統(tǒng)建模系統(tǒng)建模作為系統(tǒng)需求和設(shè)計活動的一部分,描述組成系統(tǒng)的組件以及組件之間的關(guān)系(系統(tǒng)體系結(jié)構(gòu))系統(tǒng)體系結(jié)構(gòu)通常以方塊圖來描述。一個系統(tǒng)體系結(jié)構(gòu)可以以功能為單位劃分成子系統(tǒng)或功能組件,而不必關(guān)心由硬件還是軟件實現(xiàn)。最新高級軟件工程全文共296頁,當前為第31頁。32功能組件可以分為六類:傳感器組件:收集來自系統(tǒng)環(huán)境的信息。執(zhí)行機構(gòu)組件:引起一些系統(tǒng)環(huán)境的變化。計算組件:給定輸入,執(zhí)行計算并產(chǎn)生輸出。通信組件:實現(xiàn)系統(tǒng)組件之間的彼此通信。調(diào)度組件:協(xié)調(diào)組件間的操作。接口組件:將一個組件中的表示轉(zhuǎn)換成另一個組件中的表示。最新高級軟件工程全文共296頁,當前為第32頁。334.系統(tǒng)工程過程需求定義系統(tǒng)設(shè)計組件開發(fā)系統(tǒng)集成系統(tǒng)安裝系統(tǒng)進化系統(tǒng)退役最新高級軟件工程全文共296頁,當前為第33頁。34系統(tǒng)需求定義注重三種類型的需求: 抽象的功能需求系統(tǒng)特性系統(tǒng)一定不能具有的性質(zhì)系統(tǒng)設(shè)計所包括的活動有:分割需求(通常有多種分割方法,可以產(chǎn)生不同的方案)識別子系統(tǒng)為子系統(tǒng)分配需求(通常由于外購COTS子系統(tǒng)帶來的限制而需要修改需求)描述子系統(tǒng)的功能定義子系統(tǒng)的接口最新高級軟件工程全文共296頁,當前為第34頁。35子系統(tǒng)開發(fā)所常見的問題:通??梢圆⑿虚_發(fā)不同的子系統(tǒng)一些超出子系統(tǒng)范圍的修改經(jīng)常發(fā)生,但是對已經(jīng)實現(xiàn)的硬件工程的修改往往帶來非常昂貴的代價,這時修改往往落在軟件上(軟件的固有柔性,flexible),說明軟件需求的變化更大更頻繁。系統(tǒng)集成最好采取增量式過程,其理由是:子系統(tǒng)的開發(fā)時間通常無法預計增量式集成可以減少錯誤定位的成本(錯誤定位可能引起不同子系統(tǒng)的承包商之間的爭論,解決問題的談判須花費時日)最新高級軟件工程全文共296頁,當前為第35頁。365.系統(tǒng)采購系統(tǒng)獲得的過程包括選擇最好的購買方式和最佳的供貨商。在做出采購決策之前,一些相關(guān)的系統(tǒng)描述和體系結(jié)構(gòu)設(shè)計必須完成,以便確定哪些子系統(tǒng)可以通過直接購買,而不必或避免重新開發(fā)。通常單個機構(gòu)無法完成大型復雜系統(tǒng)所有組件的設(shè)計、制造和測試。此時,客戶必須選擇和確定主承包商和子承包商。最新高級軟件工程全文共296頁,當前為第36頁。37承包商與子承包商模型系統(tǒng)客戶主承包商子承包商2子承包商1子承包商3最新高級軟件工程全文共296頁,當前為第37頁。38一、軟件工程概述軟件工程的基本概念基于計算機的系統(tǒng)工程軟件過程軟件項目管理的基本內(nèi)容最新高級軟件工程全文共296頁,當前為第38頁。391.軟件過程模型一個軟件過程模型是軟件過程的一個抽象表示。一般使用過程模型區(qū)分或解釋不同的軟件開發(fā)方法。在實際的軟件開發(fā)中,很少單獨使用單一的過程模型,4類軟件過程模型生命周期模型(瀑布模型)進化式開發(fā)模型形式化系統(tǒng)開發(fā)模型面向復用的開發(fā)模型最新高級軟件工程全文共296頁,當前為第39頁。瀑布模型瀑布模型(WaterfallModel)軟件生存周期模型(ClassicLifeCycleModel)線性順序模型(LinearSequentialModel)問題定義需求分析概要設(shè)計詳細設(shè)計編碼測試維護最新高級軟件工程全文共296頁,當前為第40頁。41瀑布模型的三個特點階段間具有順序性和依賴性推遲實現(xiàn)的觀點質(zhì)量保證的觀點最新高級軟件工程全文共296頁,當前為第41頁。42瀑布模型的優(yōu)點開發(fā)過程基本上是線性順序的,便于管理基于“明確、完備的需求”,可以獲得好的開發(fā)效果最新高級軟件工程全文共296頁,當前為第42頁。CosttochangeAfterreleaseTheimpactofchangeDefinitionDevelopment1.5~6x
??????1x60~100x最新高級軟件工程全文共296頁,當前為第43頁。計劃需求分析概要設(shè)計詳細設(shè)計編碼測試維護環(huán)計劃需求分析運行評價編碼設(shè)計TheWaterfallModel
WithMaintenanceCircle最新高級軟件工程全文共296頁,當前為第44頁。45進化式開發(fā)模型進化式開發(fā)的思想:基于最初的需求,先開發(fā)一個原型系統(tǒng)給用戶使用,然后,根據(jù)用戶的反饋意見不斷地修改這個系統(tǒng),直到形成最后成熟的軟件產(chǎn)品。所強調(diào)的是,需求可以不斷地被補充和完善。進化式開發(fā)有兩類探索式開發(fā):其目標式與用戶一起工作,共同探索需求,直到最后交付系統(tǒng)。拋棄式原型:開發(fā)原型的目標是理解用戶需求。最新高級軟件工程全文共296頁,當前為第45頁。46從工程學和管理學角度看,進化式開發(fā)有三方面的問題:過程不可見系統(tǒng)結(jié)構(gòu)通常較差快速原型工具和技術(shù)往往與主流的工具和技術(shù)不相容實際使用的過程模型通常是混合模型TheWaterfallModel
WithPrototypingTheVModelThePhasedDevelopmentModelTheIncrementalandIterativeModelTheSpiralModel最新高級軟件工程全文共296頁,當前為第46頁。運行維護需求分析概要設(shè)計詳細設(shè)計編碼單元測試集成測試驗收測試Prototyping系統(tǒng)測試ValidateVerifyTheWaterfallModel
WithPrototyping最新高級軟件工程全文共296頁,當前為第47頁。運行、維護需求分析概要設(shè)計詳細設(shè)計編碼單元集成測試驗收測試系統(tǒng)測試ValidateRequirementsVerifyDesignTheVModel最新高級軟件工程全文共296頁,當前為第48頁。ThePhasedDevelopmentModelBuildRelease2BuildRelease1BuildRelease3UseRelease2UseRelease1UseRelease3TimeProductionsystemDevelopmentsystemDevelopersUsers最新高級軟件工程全文共296頁,當前為第49頁。TheIncrementalandIterativeModelIncrementalDevelopmentIterativeDevelopmentcreateformatcreateeditformatcreateEasyquickMorestylescreatePasteeasyMorestylescreatePasteclumsystylescreate最新高級軟件工程全文共296頁,當前為第50頁。51增量開發(fā)的優(yōu)點能在較短的時間內(nèi)向用戶提交可以完成主要功能的產(chǎn)品逐步增加產(chǎn)品的功能,使用戶有充裕的時間學習和適應新產(chǎn)品,減少一個全新的產(chǎn)品給客戶組織帶來的沖擊最新高級軟件工程全文共296頁,當前為第51頁。TheSpiralModel最新高級軟件工程全文共296頁,當前為第52頁。53螺旋模型的優(yōu)點有利于已有軟件的重用有助于把軟件質(zhì)量作為軟件開發(fā)的一個重要目標減少了過多測試或測試不足所帶來的風險軟件維護與軟件開發(fā)沒有本質(zhì)區(qū)別最新高級軟件工程全文共296頁,當前為第53頁。54形式化系統(tǒng)開發(fā)形式化開發(fā)模型類似于瀑布模型,但是軟件需求描述被精練成一個用數(shù)學符號表達的詳細的精確的形式化描述。需求描述經(jīng)過一系列的變換過程,最終形成可執(zhí)行程序。凈室過程(Cleanroom,最初有IBM開發(fā),增量式形式化開發(fā)和驗證),一個形式化開發(fā)成功應用的例子。最新高級軟件工程全文共296頁,當前為第54頁。OperationalSpecificationModelOperationalSpecification(problem-oriented)
TransformedSpecification(implementation–oriented)
TESTExecuteandReviseSystemRequirements(sometimesinformalorincomplete)DeliveredSystem最新高級軟件工程全文共296頁,當前為第55頁。TransformationalModelTransformnFormalSpecificationproblem-oriented
Transform2TESTComparewithrequirements;UpdateasneededSystemRequirements(sometimesinformalorincomplete)DeliveredSystemTransform1FormalDevelopmentRecordSequenceoftransformationsPlusrationaleforthem最新高級軟件工程全文共296頁,當前為第56頁。57面向復用的開發(fā)面向復用的開發(fā)依賴于可以存取的可復用組件集成這些組件的框架面向復用的開發(fā)過程需求描述組件分析需求修改使用復用的系統(tǒng)設(shè)計開發(fā)和集成系統(tǒng)有效性驗證最新高級軟件工程全文共296頁,當前為第57頁。582.軟件描述可行性研究需求導出和分析需求描述需求有效性驗證最新高級軟件工程全文共296頁,當前為第58頁。593.軟件設(shè)計與實現(xiàn)體系結(jié)構(gòu)設(shè)計子系統(tǒng)的抽象描述(如包圖)接口設(shè)計組件設(shè)計數(shù)據(jù)結(jié)構(gòu)設(shè)計算法設(shè)計最新高級軟件工程全文共296頁,當前為第59頁。604.軟件有效性驗證單元測試功能模塊測試子系統(tǒng)測試系統(tǒng)測試驗收測試(如α測試,β測試)最新高級軟件工程全文共296頁,當前為第60頁。615.軟件進化軟件進化,即軟件在其生命周期內(nèi)不斷地隨著需求的變更而變更的過程。軟件系統(tǒng)的柔性決定了軟件進化的現(xiàn)實避免昂貴的硬件修改軟件進化亦存在一些問題軟件進化可以看作是軟件開發(fā)過程和軟件維護過程的統(tǒng)一。最新高級軟件工程全文共296頁,當前為第61頁。626.自動化的過程支持計算機輔助軟件工程(CASE)有兩個因素限制了CASE工具的使用軟件工程本質(zhì)上是一個富有創(chuàng)造力的設(shè)計活動,已經(jīng)存在的CASE能使一些常規(guī)活動自動化,但嘗試用人工智能技術(shù)代替人的創(chuàng)造性活動遠未成功。軟件過程強調(diào)的是團隊活動以及涉眾者之間的交流,在此,CASE也不能提高更多的支持。最新高級軟件工程全文共296頁,當前為第62頁。63CASE分類(Fuggetta,1993)CASE系統(tǒng)工具工作平臺環(huán)境編輯器編譯器文檔比較器分析和設(shè)計程序設(shè)計測試集成環(huán)境以過程為中心的環(huán)境最新高級軟件工程全文共296頁,當前為第63頁。64CASE工具的功能分類交叉索引系統(tǒng)、程序重構(gòu)系統(tǒng)、反編譯器再工程工具頁面輸出程序、圖像編輯器編寫文檔工具交叉式調(diào)試系統(tǒng),Debug調(diào)試工具測試用例生成器、文件比較器測試工具交叉索引生成器、靜態(tài)分析器、動態(tài)分析器程序分析工具編譯器、解釋器語言處理工具設(shè)計編輯器、數(shù)據(jù)字典、代碼生成器方法支持工具高端語言(UML),GUI生成器原型工具版本管理系統(tǒng)配置管理工具需求跟蹤工具、變更控制系統(tǒng)變更管理工具文本編輯器、圖表編輯器、字處理器編輯工具PERT工具、估算工具、電子表格工具規(guī)劃工具最新高級軟件工程全文共296頁,當前為第64頁。65一、軟件工程概述軟件工程的基本概念基于計算機的系統(tǒng)工程軟件過程軟件項目管理最新高級軟件工程全文共296頁,當前為第65頁。66軟件項目管理要點軟件項目管理是必要的。軟件項目管理與其它的工程管理有明顯的區(qū)別。軟件項目管理者需要承擔多種不同的任務,其中最重要的活動是項目規(guī)劃、估算和進度控制。項目里程碑是一個項目活動可以預期的結(jié)果,到達一個里程碑就要把項目進展報告提交到管理層。為了有效控制項目進度,可以借助于各種各樣的圖表跟蹤、表示項目進度。應識別和評估重大的項目風險,判斷這些風險發(fā)生的可能性和后果。最新高級軟件工程全文共296頁,當前為第66頁。671.管理活動管理活動包括:人員管理軟件成本估算質(zhì)量管理過程改善軟件配置管理最新高級軟件工程全文共296頁,當前為第67頁。682.項目規(guī)劃項目規(guī)劃的實質(zhì)是項目管理者必須預測可能出現(xiàn)的問題,并準備有效的解決辦法。項目規(guī)劃的主要內(nèi)容是制定項目計劃、質(zhì)量計劃、有效性驗證計劃、配置管理計劃、維護計劃、人員培訓計劃等最新高級軟件工程全文共296頁,當前為第68頁。693.項目調(diào)度項目管理者要估算完成各項活動所需的時間和資源,并按照一定的順序把它們嚴密地組織起來。具體活動包括:識別活動(任務)識別活動依賴關(guān)系估算活動的資源為活動分配人員創(chuàng)建項目圖表(條形圖和活動網(wǎng)絡(luò)圖)最新高級軟件工程全文共296頁,當前為第69頁。704.風險管理識別風險并制定計劃,以最大限度地降低風險對項目的影響,這種活動叫做風險管理。(Hall,1998)三類風險產(chǎn)品風險:影響所開發(fā)軟件產(chǎn)品的質(zhì)量和性能的風險。項目風險:影響項目進度或項目資源的風險。業(yè)務風險:影響軟件開發(fā)機構(gòu)或產(chǎn)品購買機構(gòu)的風險。風險管理過程風險識別風險分析風險規(guī)劃風險監(jiān)控最新高級軟件工程全文共296頁,當前為第70頁。71可能出現(xiàn)的軟件風險風險風險類型描述職員跳槽項目有經(jīng)驗的職員最有可能跳槽管理層變更項目不同的管理層考慮和關(guān)注的事情不同硬件缺乏項目如一些硬件沒有按時交付需求變更項目需求變更是不可避免的描述延遲項目,產(chǎn)品需求獲取和描述未按時完成,COTS接口低估了系統(tǒng)規(guī)模項目,產(chǎn)品預算超支CASE性能差產(chǎn)品有些CASE工具很貴技術(shù)變更業(yè)務技術(shù)是不斷發(fā)展的產(chǎn)品競爭業(yè)務任何產(chǎn)品的開發(fā)都需要時間最新高級軟件工程全文共296頁,當前為第71頁。72風險分析風險可能性后果機構(gòu)財務問題,必須削減項目預算小災難性招聘不到符合項目技術(shù)要求的職員大災難性在項目的非常時期,關(guān)鍵職員生病中嚴重要復用的組件有缺陷,限制了項目的功能中嚴重需求變更導致主體設(shè)計要返工中嚴重機構(gòu)調(diào)整,由新的管理層負責大嚴重數(shù)據(jù)庫性能問題中嚴重低估開發(fā)時間大嚴重CASE工具不能被集成大可容忍客戶不了解需求變更對項目造成的影響中可容忍所需培訓跟不上中可容忍低估了缺陷的修補率中可容忍低估了軟件的規(guī)模大可容忍CASE工具產(chǎn)生的代碼效率低中可忽略最新高級軟件工程全文共296頁,當前為第72頁。73風險因素分析類別可能的風險潛在的特征技術(shù)數(shù)據(jù)庫處理速度,復用組件或COTS有缺陷硬件或支持軟件延遲交付,暴露出許多技術(shù)問題人員招聘不到,非常時期關(guān)鍵人員出問題,培訓任務分配不當,士氣低落,團隊不和諧機構(gòu)機構(gòu)調(diào)整,管理層變更,機構(gòu)財務問題管理層內(nèi)部矛盾,缺乏權(quán)威和人格魅力工具CASE工具是否支持整個軟件生命周期不會或不愿使用或抱怨CASE工具需求需求變更,需求理解問題,需求表達問題過多的需求變更請求和客戶抱怨估算低估了軟件規(guī)模、開發(fā)時間、缺陷修補率進度滯后,無法消除暴露的缺陷最新高級軟件工程全文共296頁,當前為第73頁。74風險管理策略風險策略機構(gòu)財務問題擬一份報告,提交給高級管理層,說明對項目的影響度職員招聘問題告訴客戶由此帶來問題和延遲的可能性職員生病重新組織團隊,增強任務分配的彈性和相互之間的溝通缺陷組件購買可靠的組件需求變更評估需求變更所帶來的影響,提高開發(fā)過程的可跟蹤性機構(gòu)調(diào)整擬一份報告,提交給高級管理層,說明對項目的影響度數(shù)據(jù)庫性能問題研究購買高性能數(shù)據(jù)庫的可靠性低估開發(fā)時間對要購買的組件、程序生成器等的有效性進行檢查最新高級軟件工程全文共296頁,當前為第74頁。75高級軟件工程一、軟件工程概述二、軟件需求工程三、軟件設(shè)計四、檢驗和有效性驗證方法五、軟件進化六、軟件項目管理七、AdvancedTopicsinSoftwareEngineering最新高級軟件工程全文共296頁,當前為第75頁。76需求工程軟件需求(第5章)需求工程過程(第6章)需求建模(第7章)軟件原型系統(tǒng)開發(fā)(第8章)形式化描述(第9章)最新高級軟件工程全文共296頁,當前為第76頁。77本章要回答的主要問題什么是用戶需求、系統(tǒng)需求?這些需求應使用不同的方法表示?功能需求和非功能需求之間的不同?描述系統(tǒng)需求的兩種技術(shù)?在需求文檔中如何組織需求內(nèi)容?最新高級軟件工程全文共296頁,當前為第77頁。781.用戶需求、系統(tǒng)需求與軟件設(shè)計描述需求是對系統(tǒng)應該提供的服務和所受約束的描述。由于需求要向不同類型的涉眾(讀者)傳達不同層次的信息,可以將需求分為:用戶需求(目標需求)
用用戶所熟悉的表達形式所給出的需求描述。系統(tǒng)需求(產(chǎn)品需求)詳細地給出系統(tǒng)將提供的服務以及系統(tǒng)所受到的約束,比用戶需求更具體,更形式化。軟件設(shè)計描述(設(shè)計層需求),在系統(tǒng)需求描述的基礎(chǔ)上再加入更加詳細的需求細節(jié)。最新高級軟件工程全文共296頁,當前為第78頁。79用戶需求與系統(tǒng)需求示例用戶需求1.軟件必須提供表達和訪問外部文件的手段,這些外部文件是由其它工具創(chuàng)建的。2.……系統(tǒng)需求1.1為用戶提供定義外部文件類型的工具。1.2每種外部文件類型具有一個相關(guān)聯(lián)的工具。1.3每種外部文件類型在界面上用一種專門的圖標來表示。1.4當用戶選擇一個代表外部文件的圖標時,與該外部文件類型相關(guān)聯(lián)的工具啟動。1.5……2.1……最新高級軟件工程全文共296頁,當前為第79頁。80不同層次的需求示例R1.預算誤差應在5%之內(nèi)R2.產(chǎn)品應支持費用注冊,以及根據(jù) 經(jīng)驗數(shù)據(jù)報價R3.產(chǎn)品應具有記錄、檢索經(jīng)驗數(shù)據(jù) 的功能R4. 系統(tǒng)的屏幕圖像應如附件xx所示目標層需求域?qū)有枨螽a(chǎn)品層需求目標需求最新高級軟件工程全文共296頁,當前為第80頁。81用自然語言描述的用戶需求可能描述不夠清楚(二義性、含糊不清、自相矛盾等)需求混亂(功能需求、非功能需求、系統(tǒng)目標和設(shè)計信息無法清晰地區(qū)分)需求混合(多個不同的需求交織在一起,以一個需求的形式給出)系統(tǒng)需求描述可能包括許多不同的模型,如對象模型、數(shù)據(jù)流模型等最新高級軟件工程全文共296頁,當前為第81頁。82原則上講,系統(tǒng)需求僅僅描述做什么,而不應該描述如何實現(xiàn)。然而,要給出細節(jié)上的需求而不提到任何設(shè)計信息,事實上也是不可能的:通常系統(tǒng)需求依照構(gòu)成系統(tǒng)的各個子系統(tǒng)結(jié)構(gòu)來給出,即由初始的系統(tǒng)體系結(jié)構(gòu)來構(gòu)造需求描述;通常目標系統(tǒng)和現(xiàn)存系統(tǒng)戶操作,這就約束了目標系統(tǒng)的設(shè)計,同時這些約束又構(gòu)成了新系統(tǒng)的需求;某些特別的設(shè)計(如N-版本設(shè)計)是系統(tǒng)的一個外部需求。最新高級軟件工程全文共296頁,當前為第82頁。83系統(tǒng)需求描述工具描述工具說明結(jié)構(gòu)化自然語言依賴于定義標準格式或模板來表達需求PDL語言比一般的計算機高級語言更接近自然語言圖形化工具通過圖形語言(輔之于文本注釋)來定義系統(tǒng)的功能需求。如SADT,基于用例的描述等形式化工具基于有限狀態(tài)機、集合等數(shù)學工具形式化地描述需求。最新高級軟件工程全文共296頁,當前為第83頁。842.功能需求與非功能需求另一種需求層次的劃分領(lǐng)域需求(業(yè)務需求)用戶需求功能需求非功能需求業(yè)務需求(BusinessRequirement)反映了組織機構(gòu)或客戶對系統(tǒng)、產(chǎn)品高層次的目標要求反映目標系統(tǒng)所處領(lǐng)域的特點在項目視圖與范圍文檔中予以說明最新高級軟件工程全文共296頁,當前為第84頁。85用戶需求(UserRequirement)用戶使用產(chǎn)品必須要完成的任務在使用用例文檔或方案腳本說明中予以說明功能需求(Function,BehavioralRequirement)定義了開發(fā)人員必須實現(xiàn)的軟件功能,使得用戶能完成他們的任務,從而滿足了業(yè)務需求對系統(tǒng)應該提供的服務、如何對輸入做出發(fā)應以及系統(tǒng)在特定條件下的行為的描述。涉及與本系統(tǒng)有接口的其他系統(tǒng)的所有事情??赡苄枰鞔_聲明系統(tǒng)不應該做什么。最新高級軟件工程全文共296頁,當前為第85頁。86非功能需求(Non_Requirement)對系統(tǒng)提供的服務或功能給出的約束,包括性能指標、對質(zhì)量屬性(qualityattribute)的描述、外部接口以及設(shè)計與實現(xiàn)的約束(constraint)、時間約束、標準等。非功能需求最好是可以驗證的,但實際上對需求量化通常很難。非功能需求與功能需求有時會發(fā)生沖突。非功能需求之間會發(fā)生沖突。最新高級軟件工程全文共296頁,當前為第86頁。87非功能需求分類目標系統(tǒng)的限制性能實時性、精確度、資源利用率等可靠性有效性、完整性安全/保密性安全性、保密性運行限制使用頻度、運行期限、控制方式、操作要求物理限制系統(tǒng)規(guī)模等限制開發(fā)維護的限制開發(fā)類型實用性開發(fā)、試驗性開發(fā)開發(fā)工作量的估計開發(fā)方法質(zhì)量控制標準、里程碑和評審、驗收標準優(yōu)先性和可修改性可維護性最新高級軟件工程全文共296頁,當前為第87頁。88功能需求非功能需求業(yè)務需求用戶需求質(zhì)量屬性外部接口系統(tǒng)要求約束功能需求項目視圖和范圍文檔使用實例文檔需求規(guī)格說明業(yè)務需求軟件需求各組成部分之間的關(guān)系最新高級軟件工程全文共296頁,當前為第88頁。89功能需求示例(大學圖書館系統(tǒng))1.用戶能從總的數(shù)據(jù)庫中查詢,或者是選擇其中的一個子集并從中查詢。2.系統(tǒng)能夠提供適當?shù)臑g覽器供用戶閱讀館藏文獻。3.每次借閱能夠?qū)粋€唯一的識別符,可拷貝到用戶的常備存儲區(qū)內(nèi)。?功能需求以不同的詳細程度重寫(需求1和3)?含糊的表達,“適當?shù)臑g覽器”最新高級軟件工程全文共296頁,當前為第89頁。90容易忽略的非瑣碎要求(示例)R1:根據(jù)客房類型而不是客房號進行預訂R2:考慮到預訂客房的客戶有可能不入住,可以接受超過空閑客房數(shù)量的預訂R3:授權(quán)的系統(tǒng)管理員可以自己定義電費的分類單價R4:最新高級軟件工程全文共296頁,當前為第90頁。913.軟件需求文檔SRS(SoftwareRequirementspecification)Heninger對軟件需求文檔提出的6點要求:應該只描述系統(tǒng)外部行為應該定義實現(xiàn)上的約束應該是容易變更的應該成為系統(tǒng)維護人員的參考工具應該記錄系統(tǒng)的整個說明周期應該對未料到的事件給出可接受的反應最新高級軟件工程全文共296頁,當前為第91頁。92需求文檔結(jié)構(gòu)(IEEE標準見第78頁)引言:問題定義所確定的目標和范圍術(shù)語:定義文檔中的技術(shù)術(shù)語 數(shù)據(jù)描述:數(shù)據(jù)流圖,數(shù)據(jù)字典等等 功能描述:功能要求文檔(可形式化描述)性能描述:性能要求文檔 質(zhì)量保證:描述交付前需要進行的各種測試和驗收標準其它:運行要求、將來可能的要求附件索引最新高級軟件工程全文共296頁,當前為第92頁。93需求工程軟件需求(第5章)需求工程過程(第6章)需求建模(第7章)軟件原型系統(tǒng)開發(fā)(第8章)形式化描述(第9章)最新高級軟件工程全文共296頁,當前為第93頁。94本章要回答的主要問題需求工程活動及其之間的關(guān)系需求導出和分析的一些技術(shù)需求有效性驗證和需求評審為什么說需求管理是必須的,它如何支持其它的需求工程活動最新高級軟件工程全文共296頁,當前為第94頁。951.基本概念需求工程是對服務和約束的發(fā)現(xiàn)、分析、描述和檢驗的過程。需求工程的4個高層通用過程:可行性研究需求導出和分析需求描述和文檔編寫需求有效性驗證最新高級軟件工程全文共296頁,當前為第95頁。96需求分析的涉眾合同監(jiān)督人員,提出里程碑(Milestones)和約束系統(tǒng)開發(fā)進度的計劃需求者:客戶(Customer)和使用者(User)。開發(fā)者項目管理者,必須理解建立和使用目標系統(tǒng)所可能產(chǎn)生的后果。系統(tǒng)分析員,分析階段活動的主體。設(shè)計員,依據(jù)需求提出可接受的解決方案。測試員,確保軟件系統(tǒng)滿足每一需求。最新高級軟件工程全文共296頁,當前為第96頁。97系統(tǒng)分析員應具有的素質(zhì)綜合能力總體規(guī)劃,抽象和分解,本質(zhì)確認的能力過程能力保證整個過程的善始善終的能力交流能力理解和表達能力技術(shù)水平了解問題域和描述解空間的能力最新高級軟件工程全文共296頁,當前為第97頁。98應該足夠重視需求分析軟件項目中40%—60%的缺陷都是由需求分析階段的過失所致(Daivs1993,Leffingwell1997)對歐洲軟件行業(yè)的大規(guī)模調(diào)查顯示:確定和管理用戶需求是問題最多的兩個環(huán)節(jié)(ESPITI1995)許多軟件問題都源于收集、記錄、協(xié)商和修改產(chǎn)品需求過程中的方式不當信息收集方式不正規(guī)沒有明確提出想要的功能常常存在未經(jīng)溝通的錯誤假設(shè)需求的定義不夠充分未經(jīng)仔細考慮進行需求變更
······最新高級軟件工程全文共296頁,當前為第98頁。992.可行性研究可行性研究的焦點問題包括系統(tǒng)是否符合機構(gòu)的總體目標?系統(tǒng)是否能在現(xiàn)有條件和預算內(nèi)按時完成?目標系統(tǒng)能與已經(jīng)存在的其它系統(tǒng)集成?軟件可行性研究的任務技術(shù)可行性經(jīng)濟可行性社會可行性操作可行性最新高級軟件工程全文共296頁,當前為第99頁。100可行性研究是高層的分析和設(shè)計最新高級軟件工程全文共296頁,當前為第100頁。101可行性研究報告(1)引言(2)可行性研究前提(3)對現(xiàn)有系統(tǒng)的分析(4)所建議系統(tǒng)的技術(shù)可行性分析(5)所建議系統(tǒng)的經(jīng)濟可行性分析(6)社會因素可行性分析(7)其它可供選擇方案(8)結(jié)論意見最新高級軟件工程全文共296頁,當前為第101頁。1023.需求導出和分析通過對現(xiàn)實環(huán)境的研究,獲得系統(tǒng)具體模型。去掉具體模型的非本質(zhì)因素,抽取出當前系統(tǒng)的邏輯模型分析當前系統(tǒng)和目標系統(tǒng)的差別,建立目標系統(tǒng)的邏輯模型。對目標系統(tǒng)進行完善和補充,寫出完整的需求分析。abcd最新高級軟件工程全文共296頁,當前為第102頁。103最新高級軟件工程全文共296頁,當前為第103頁。104學生在學校教材科購買教材的系統(tǒng)的例子
一、 通過對現(xiàn)實環(huán)境的研究,獲得系統(tǒng)具體 物理模型購書發(fā)票購書單書購書證明購書申請學生學生李保管孫出納錢會計趙秘書最新高級軟件工程全文共296頁,當前為第104頁。105學生在學校教材科購買教材的系統(tǒng)的例子
二、 去掉具體模型的非本質(zhì)因素,抽取出當前 系統(tǒng)的邏輯模型發(fā)票購書單書有效單購書單學生學生發(fā)書開領(lǐng)書單開發(fā)票有效性最新高級軟件工程全文共296頁,當前為第105頁。106學生在學校教材科購買教材的系統(tǒng)的例子
三、 分析當前系統(tǒng)和目標系統(tǒng)的差別, 建立目標系統(tǒng)的邏輯模型。發(fā)票購書單書購書單學生學生發(fā)書開領(lǐng)書單審查并開發(fā)票最新高級軟件工程全文共296頁,當前為第106頁。107學生在學校教材科購買教材的系統(tǒng)的例子四、 對目標系統(tǒng)進行完善和補充,寫出完整 的需求說明。五、 對需求說明進行復審,直到確認文檔齊 全并符合用戶的全部需求為止。無效書單發(fā)票購書單購書單學生學生開領(lǐng)書單審查并開發(fā)票最新高級軟件工程全文共296頁,當前為第107頁。108需求階段所要獲取的主要內(nèi)容物理環(huán)境(PhysicalEnvironment)接口(Interfaces)用戶或人的因素(Factors)功能(Functionality)文檔(Documentation)數(shù)據(jù)(Data)資源(Resources)安全性(Security)質(zhì)量保證(QualityAssurance)最新高級軟件工程全文共296頁,當前為第108頁。109設(shè)備的主要用途,在哪里發(fā)揮什么作用?所須設(shè)置的設(shè)備的多少?環(huán)境限制等,如溫度、濕度或磁聲干擾?1)物理環(huán)境描述(PhysicalEnvironment)最新高級軟件工程全文共296頁,當前為第109頁。110來自一個或多個其他系統(tǒng)的輸入?對一個或多個其它系統(tǒng)的輸出?數(shù)據(jù)是否必須預先進行規(guī)定的格式化處理?數(shù)據(jù)是否需要預先存放的介質(zhì)?2)接口描述(InterfaceDescription)最新高級軟件工程全文共296頁,當前為第110頁。111誰使用系統(tǒng)?有幾種類型的用戶?每種類型用戶的技術(shù)水平怎樣?對每型用戶需要什么樣的培訓?用戶理解、使用系統(tǒng)的難易度怎樣?用戶誤用系統(tǒng)的困難程度怎樣?3)用戶和人為因素最新高級軟件工程全文共296頁,當前為第111頁。112系統(tǒng)將做什么?系統(tǒng)將在何時做?有幾種操作方式?系統(tǒng)能在何時、怎樣被改變或增強?對執(zhí)行速度,響應時間或數(shù)據(jù)流量有何限制和約束?4)功能描述(FunctionDescription)最新高級軟件工程全文共296頁,當前為第112頁。1135)文檔(Documents)需要多少文檔?是聯(lián)機文檔還是靜態(tài)文檔或者二者皆可?文檔所面向的對象(讀者)?最新高級軟件工程全文共296頁,當前為第113頁。1146)數(shù)據(jù)(Data)I/O數(shù)據(jù)格式應該是什么樣的?數(shù)據(jù)收或發(fā)的頻度?數(shù)據(jù)的精確度系統(tǒng)流經(jīng)的數(shù)據(jù)流量?數(shù)據(jù)必須在何時予以保存,保存多久?最新高級軟件工程全文共296頁,當前為第114頁。1157)資源描述(ResourceDescription)建立和維護系統(tǒng)都要什么材料、人員或其他資源?開發(fā)者必須具有哪些技術(shù)?系統(tǒng)占用多少物理空間?對開發(fā)規(guī)定了時間表了?對用于開發(fā)或軟硬件上的資金有限制?最新高級軟件工程全文共296頁,當前為第115頁。116對系統(tǒng)或信息的存取必須在我們的控制之下?不同用戶的數(shù)據(jù)之間將如何實現(xiàn)隔離?不同用戶程序之間,以及和操作系統(tǒng)間怎樣隔離?系統(tǒng)如何備份?備份副本必須被存于一個不同的位置?應采取措施防火,防水防盜等安全措施?8)安全描述(Security)最新高級軟件工程全文共296頁,當前為第116頁。117系統(tǒng)必須有效檢測并隔離故障?平均無故障時間規(guī)定為多少?對一次失敗后重啟系統(tǒng)有一個最大時間?系統(tǒng)如何將變化合并到設(shè)計?維護僅僅是糾正錯誤,還是包括改進系統(tǒng)?對資源和響應時間使用什么樣的有效度量?系統(tǒng)移植性、可維護性等要求?如何向別人示范系統(tǒng)的特征?9)質(zhì)量保證(QualityAssurance)最新高級軟件工程全文共296頁,當前為第117頁。118對需求說明書的要求正確性無二義性(需求確實是用戶所需嗎?)完整性(完備性,包括用戶需要的每一功能或性能)一致性(需求之間不能互相矛盾)可檢驗性(非計算機人員可以理解)可實現(xiàn)性(有效性,需求是能夠現(xiàn)實的嗎?硬件系統(tǒng)的支持力度怎樣?)可修改性可跟蹤性注釋最新高級軟件工程全文共296頁,當前為第118頁。1194.需求規(guī)約的驗證(1)驗證是為了確保需求說明準確、完整地表達必要的質(zhì)量特點審查需求文檔以需求為依據(jù)編寫測試用例寫出黑盒功能測試用例編寫用戶手冊要用淺顯易懂的語言描述出所有對用戶可見的功能確定合格的標準最新高級軟件工程全文共296頁,當前為第119頁。120需求規(guī)約的驗證(2)驗證的方法復審和進一步需求分析實現(xiàn)原型系統(tǒng)支持需求分析工具驗證的主要內(nèi)容一致性驗證現(xiàn)實性驗證(需求是現(xiàn)實的嗎?)完整性(完備性)和有效性驗證最新高級軟件工程全文共296頁,當前為第120頁。1215.需求管理需求管理是對需求變更了解和控制的過程。需求管理的任務是“與客戶就軟件需求達成并保持一致”(Paulk1995)持久的需求與易變的需求一個變更管理過程由三個階段問題分析和變更描述變更分析和成本計算變更實現(xiàn)最新高級軟件工程全文共296頁,當前為第121頁。122需求管理活動需求管理活動包括:定義需求基線審查變更請求,評估可能產(chǎn)生的影響以決定是否批準以可控的方式將批準的變更融入項目中保持項目計劃與需求的同步基于對需求變更影響的估計協(xié)商新的需求約定跟蹤每項需求(找到對應的設(shè)計、代碼和測試用例)在項目的開發(fā)過程中始終跟蹤需求的狀態(tài)和變更最新高級軟件工程全文共296頁,當前為第122頁。123需求變更需求開發(fā)與需求管理的分界分析、記錄審閱、協(xié)商需求變更過程基線需求市場營銷客戶管理層需求開發(fā)需求管理市場營銷客戶管理層項目變更項目環(huán)境最新高級軟件工程全文共296頁,當前為第123頁。124對項目需求狀況作出快速評估(1)項目前景(vision)和范圍(scope)未曾明確定義客戶太忙,沒時間與需求分析和開發(fā)人員一起討論需求用戶代理(如開發(fā)經(jīng)理、用戶負責人、營銷人員等)自詡可以代表用戶,其實不能準確說出用戶的要求需求只存在于那些所謂專家的腦子里,沒有被記錄下來客戶堅持所有需求都很重要,不愿排出它們的優(yōu)先次序開發(fā)人員在編碼過程中發(fā)現(xiàn)需求有歧義,缺少足夠的信息,只能去猜測最新高級軟件工程全文共296頁,當前為第124頁。125對項目需求狀況作出快速評估(2)開發(fā)人員與客戶溝通時只關(guān)心用戶界面,忽略了用戶需要用軟件做什么客戶簽字確認了需求卻又一直提出修改要求項目范圍因接受需求變更而擴大,卻沒有相應地增加投入或剪裁功能,進度因而被延誤需求變更的請求被弄丟,開發(fā)人員和客戶都不了解所有變更請求的狀態(tài)開發(fā)人員按照客戶要求實現(xiàn)的功能無人問津需求規(guī)格說明中的要求都實現(xiàn)了客戶卻不滿意最新高級軟件工程全文共296頁,當前為第125頁。126需求工程軟件需求(第5章)需求工程過程(第6章)需求建模(第7章)軟件原型系統(tǒng)開發(fā)(第8章)形式化描述(第9章)最新高級軟件工程全文共296頁,當前為第126頁。127本章要回答的主要問題系統(tǒng)上下文建模的重要性行為建模、數(shù)據(jù)建模和對象建模UML用于不同類型的系統(tǒng)模型CASE工作平臺是如何支持系統(tǒng)建模的最新高級軟件工程全文共296頁,當前為第127頁。1283.系統(tǒng)模型模型是系統(tǒng)的抽象視圖,它忽略了系統(tǒng)中的所有細節(jié)。從不同的角度(外部、行為或結(jié)構(gòu))表達系統(tǒng),形成不同類型的模型:上下文模型、行為模型、結(jié)構(gòu)模型。上下文模型(系統(tǒng)環(huán)境模型)表達系統(tǒng)在整個環(huán)境中與其它系統(tǒng)和過程的位置關(guān)系。如用例圖模型是一種上下文模型。狀態(tài)機模型用來描述系統(tǒng)的行為,以響應內(nèi)部和外部的事件。它是一種行為模型。結(jié)構(gòu)模型包括體系結(jié)構(gòu)模型和數(shù)據(jù)結(jié)構(gòu)模型。最新高級軟件工程全文共296頁,當前為第128頁。129數(shù)據(jù)流模型用來描述數(shù)據(jù)是怎樣一步步在處理序列中流動的,它不僅可以描述系統(tǒng)內(nèi)的處理過程(行為),也能夠有效地描述系統(tǒng)的上下文。E-R模型是一種最廣泛使用的數(shù)據(jù)結(jié)構(gòu)模型。對象建模在一定程度上是結(jié)構(gòu)建模和行為建模的結(jié)合。UML已經(jīng)被OMG認定為對象建模標準。最新高級軟件工程全文共296頁,當前為第129頁。130HowtoExpressRequirementsStaticdescriptionsDynamicdescriptionsObject-orientedspecificationFormalMethods最新高級軟件工程全文共296頁,當前為第130頁。1311)StaticDescriptions數(shù)據(jù)流圖、數(shù)據(jù)字典、加工說明等判定表(DecisionTables)判定樹E-R模型層次方框圖、Warnier圖、IPO圖UML中類圖、包圖最新高級軟件工程全文共296頁,當前為第131頁。132WarnierDiagramsSoftwareproductsSystemApplicationOS(n1)Compiler(n2)SoftwareToolEditor(n3)Testdriver(n4)CADtool(n5)最新高級軟件工程全文共296頁,當前為第132頁。133IPODiagramsOldmasterfilesOtherfilesInputProcessOutputVertifyPrimaryRecordVertifyOrtherRecordUpdaterecordValidPrimaryRecordValidOrtherRecordUpdatedfiles最新高級軟件工程全文共296頁,當前為第133頁。134E-R模型(Entity-Relationship)概念模型(E-R圖)邏輯模型(二維表的定義)物理模型(存儲空間的定義,如定義各個字段的大?。?shù)據(jù)庫的設(shè)計一般應經(jīng)過由概念模型到邏輯模型,再到物理模型的映射過程。最新高級軟件工程全文共296頁,當前為第134頁。135數(shù)據(jù)結(jié)構(gòu)的規(guī)范化1970年,IBM的E.F.Godd提出關(guān)系模型,由二維表表示。按照屬性間的依賴程度區(qū)分關(guān)系規(guī)范化的程度,由范式(NormalForm)來表示。1NF:表中不能有表(每個信息項必須是一個不 可分割的數(shù)據(jù)項)2NF:非主屬性由關(guān)鍵字唯一確定3NF:任何非主屬性間不存在函數(shù)依賴,即非主屬性相互獨立。最新高級軟件工程全文共296頁,當前為第135頁。136DecisionTablesRule1Rule2Rule3Rule4Rule5HighstandardizedexamscoresTFFFFHighgrades—TFFFOutsideactivities——TFFGoodrecommendations———TFSendrejectionletterXXXSendadmissionformsXX最新高級軟件工程全文共296頁,當前為第136頁。1372)DynamicDescriptionsFunctionalDescriptionsandTransitionDiagramsEventTablesPetriNets最新高級軟件工程全文共296頁,當前為第137頁。138FunctionalDescriptionsStateiStatekConditionj最新高級軟件工程全文共296頁,當前為第138頁。139TransitionDiagramsSiSkEventorConditionX狀態(tài)遷移圖是描述系統(tǒng)的狀態(tài)如何響應外部的信號進行推移的一種圖形表示。圓圈“○”表示可得到的系統(tǒng)狀態(tài)箭頭“→”表示從一種狀態(tài)向另一種狀態(tài)的遷移。最新高級軟件工程全文共296頁,當前為第139頁。140t1─中斷事件t2─中斷已處理t3─分配CPUt4─用完CPU時間當有多個申請占用CPU運行的進程時,有關(guān)CPU分配的進程的狀態(tài)遷移最新高級軟件工程全文共296頁,當前為第140頁。141可得到的狀態(tài)=就緒,運行,等待生成的事件=t1,t2,t3,t4
t1─中斷事件,t2─中斷已處理
t3─分配CPU
,t4─用完CPU時間最新高級軟件工程全文共296頁,當前為第141頁。142狀態(tài)遷移圖的優(yōu)點狀態(tài)之間的關(guān)系能夠直觀地捕捉到由于狀態(tài)遷移圖的單純性,能夠機械地分析許多情況,可很容易地建立分析工具最新高級軟件工程全文共296頁,當前為第142頁。143FenceDiagramshowingStateTransitions(Hotelreservations)
(Null)RequestedOnwaitinglistConfirmedUsedCanceledArchive最新高級軟件工程全文共296頁,當前為第143頁。144UseUMLtoRepresentOOOMG(ObjectManagementGroup)haveadoptedUMLastheOOnotationalstandard.UMLcanbeusedtovisualize,specify,ordocumentaproblem.UMLcanbeusedthroughoutthesoftwaredevelopmentprocess.最新高級軟件工程全文共296頁,當前為第144頁。145UML由兩大部分的組成UML語義描述基于UML的精確元模型定義。元模型為UML的所有元素在語法和語義上提供簡單、一致和通用的定義性說明,使開發(fā)者在語義上取得一致,消除了因人而異的表達方法所造成的影響。UML還支持對元模型的擴展定義。最新高級軟件工程全文共296頁,當前為第145頁。146UML表示法定義UML符號,為開發(fā)者或開發(fā)工具使用這些圖形符號和文本語法進行系統(tǒng)建模提供標準。這些圖形符號和文字所表達的是應用級的模型,在語法上它是UML元模型的實例。最新高級軟件工程全文共296頁,當前為第146頁。147UML的具體組成視圖(View)是表達系統(tǒng)的某一方面特征的UML建模元素的子集。視圖由多個圖構(gòu)成,是在某一個抽象層上對系統(tǒng)的抽象表示。圖(Diagram)模型元素集的圖形表示模型元素(ModelElement)代表OO中的類、對象、消息和關(guān)系等概念,是構(gòu)成圖的最基本的常用概念。最新高級軟件工程全文共296頁,當前為第147頁。148通用與擴展機制(GeneralandExtensionMechanism)通用機制用于表示其他信息,比如注釋、模型元素的語義等。擴展機制使UML能夠適應某種特殊的方法,或擴充至一個組織或用戶。最新高級軟件工程全文共296頁,當前為第148頁。149不同視角建模形成系統(tǒng)的不同視圖用例視圖(UseCaseView)強調(diào)從用戶的角度看到的或需要的系統(tǒng)功能。邏輯視圖(LogicalView)展現(xiàn)系統(tǒng)的靜態(tài)或結(jié)構(gòu)組成及特征,故又稱為StructuralModelView和StaticView.最新高級軟件工程全文共296頁,當前為第149頁。150并發(fā)視圖(ConcurrentView)體現(xiàn)系統(tǒng)的動態(tài)或行為特征,故又稱為BehavioralModelView和DynamicView.組件視圖(ComponentView)體現(xiàn)系統(tǒng)的結(jié)構(gòu)或行為特征,故又稱為ImplementationModelView.配置視圖(DeploymentView)體現(xiàn)系統(tǒng)的實現(xiàn)環(huán)境的結(jié)構(gòu)或行為特征,故又稱為EnvironmentModelView和PhysicalView.最新高級軟件工程全文共296頁,當前為第150頁。151UMLdiagramsStaticviewisdepictedwithUsecases(用例圖)Classdiagrams(類圖)Packagediagrams(包圖)Deploymentdiagrams(配置圖)最新高級軟件工程全文共296頁,當前為第151頁。152DynamicviewisdepictedwithStatediagrams(狀態(tài)圖)Activitydiagrams(活動圖)Sequencediagrams(順序圖)
Collaborationdiagrams(合作圖)RestrictionsandformalizationBeexpressedwithOCL(objectconstraintlanguage)最新高級軟件工程全文共296頁,當前為第152頁。153UMLdiagramsUsecasesDiagramStaticDiagramClassdiagramsPackagediagramsBehaviorDiagramStatediagramsActivitydiagrams最新高級軟件工程全文共296頁,當前為第153頁。154UMLdiagramsInteractiveDiagramSequencediagrams
CollaborationdiagramsImplementationDiagramComponentdiagramsDeploymentdiagrams最新高級軟件工程全文共296頁,當前為第154頁。155需求工程需求及需求工程概念(第5章)需求工程過程(第6章)需求建模(第7章)軟件原型系統(tǒng)開發(fā)(第8章)形式化描述(第9章)最新高級軟件工程全文共296頁,當前為第155頁。1564.軟件原型系統(tǒng)開發(fā)最新高級軟件工程全文共296頁,當前為第156頁。157需求工程需求及需求工程概念(第5章)需求工程過程(第6章)需求建模(第7章)軟件原型系統(tǒng)開發(fā)(第8章)形式化描述(第9章)最新高級軟件工程全文共296頁,當前為第157頁。1585.形式化描述最新高級軟件工程全文共296頁,當前為第158頁。159高級軟件工程一、軟件工程概述二、軟件需求三、軟件設(shè)計四、檢驗和有效性驗證方法五、軟件進化六、軟件項目管理七、AdvancedTopicsinSoftwareEngineering最新高級軟件工程全文共296頁,當前為第159頁。160軟件設(shè)計體系結(jié)構(gòu)設(shè)計(第10章)分布式系統(tǒng)體系結(jié)構(gòu)(第11章)面向?qū)ο蟮脑O(shè)計(第12章)實時軟件的設(shè)計(第13章)使用復用的設(shè)計(第14章)用戶界面設(shè)計(第15章)最新高級軟件工程全文共296頁,當前為第160頁。161本章要回答的主要問題軟件體系結(jié)構(gòu)設(shè)計的重要性可能用于系統(tǒng)體系結(jié)構(gòu)的不同模型一系列不同類型的軟件體系結(jié)構(gòu)領(lǐng)域相關(guān)的體系結(jié)構(gòu)怎樣作為產(chǎn)品線體系結(jié)構(gòu)的基礎(chǔ)最新高級軟件工程全文共296頁,當前為第161頁。162軟件體系結(jié)構(gòu)研究的主要內(nèi)容軟件體系結(jié)構(gòu)建模軟件體系結(jié)構(gòu)風格軟件體系結(jié)構(gòu)描述動態(tài)軟件體系結(jié)構(gòu)Web服務體系結(jié)構(gòu)基于體系結(jié)構(gòu)的軟件開發(fā)軟件體系結(jié)構(gòu)的分析與測試軟件體系結(jié)構(gòu)評估軟件產(chǎn)品線體系結(jié)構(gòu)最新高級軟件工程全文共296頁,當前為第162頁。163軟件體系結(jié)構(gòu)的研究背景(1)隨著軟件系統(tǒng)規(guī)模越來越大、越來越復雜,整個系統(tǒng)的結(jié)構(gòu)和規(guī)格說明顯得越來越重要。對于大規(guī)模的復雜軟件系統(tǒng)來說,對總體的系統(tǒng)結(jié)構(gòu)設(shè)計和規(guī)格說明比起對計算的算法和數(shù)據(jù)結(jié)構(gòu)的選擇已經(jīng)變得明顯重要得多。對軟件體系結(jié)構(gòu)的系統(tǒng)、深入的研究將會成為提高軟件生產(chǎn)率和解決軟件維護問題的新的最有希望的途徑。最新高級軟件工程全文共296頁,當前為第163頁。164軟件體系結(jié)構(gòu)的研究背景(2)事實上,軟件總是有體系結(jié)構(gòu)的,不存在沒有體系結(jié)構(gòu)的軟件。軟件體系結(jié)構(gòu)雖脫胎于軟件工程,但其形成同時借鑒了計算機體系結(jié)構(gòu)和網(wǎng)絡(luò)體系結(jié)構(gòu)中很多寶貴的思想和方法,最近幾年軟件體系結(jié)構(gòu)研究已完全獨立于軟件工程的研究,成為計算機科學的一個最新的研究方向和獨立學科分支。系統(tǒng)體系結(jié)構(gòu)影響性能、魯棒性、分布能力、可維護行等非功能需求。反之,系統(tǒng)的結(jié)構(gòu)和風格依賴于系統(tǒng)的非功能需求。最新高級軟件工程全文共296頁,當前為第164頁。165軟件體系結(jié)構(gòu)的研究背景(3)性能,如果性能是關(guān)鍵性需求,那么體系結(jié)構(gòu)的設(shè)計就要定位在少數(shù)幾個子系統(tǒng)上的一些關(guān)鍵性操作上,這可能意味著系統(tǒng)使用較大粒度的組件。保密性,如果保密性是關(guān)鍵性需求,那么體系結(jié)構(gòu)的分層設(shè)計,把重要資源放在內(nèi)層,并且在每層采用嚴格的安全驗證。安全性,如果安全性是關(guān)鍵性需求,那么體系結(jié)構(gòu)的設(shè)計就要將與安全相關(guān)的操作集中子一個或少數(shù)幾個子系統(tǒng)中,以減少安全有效性驗證方面的問題,降低成本,便于系統(tǒng)的保護。最新高級軟件工程全文共296頁,當前為第165
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新生兒復蘇培訓制度
- 教職工績效考核細則制度
- 國際關(guān)系學院雙語教學課程建設(shè)項目申請表
- 罕見藥藥源性疾病的防控策略
- 2026安徽省面向中國農(nóng)業(yè)大學選調(diào)生招錄備考題庫有答案詳解
- 2026上半年海南事業(yè)單位聯(lián)考瓊海市招聘事業(yè)單位工作人員167人備考題庫(1號)及一套參考答案詳解
- 2026年1月廣東廣州市幼兒師范學校附屬幼兒園招聘編外聘用制專任教師2人備考題庫及答案詳解(考點梳理)
- 罕見腫瘤的個體化治療療效預測模型構(gòu)建與個體化治療路徑
- 2026安徽蕪湖臻鑫智鎂科技有限公司招聘2人備考題庫完整參考答案詳解
- 設(shè)備租賃行業(yè)財務制度
- 上腔靜脈綜合征患者的護理專家講座
- 免責協(xié)議告知函
- 食物與情緒-營養(yǎng)對心理健康的影響
- 2023氣管插管意外拔管的不良事件分析及改進措施
- 麻醉藥品、精神藥品月檢查記錄
- 基礎(chǔ)化學(本科)PPT完整全套教學課件
- 蕉嶺縣幅地質(zhì)圖說明書
- 電梯控制系統(tǒng)論文
- (完整word版)人教版初中語文必背古詩詞(完整版)
- 湖北省地質(zhì)勘查坑探工程設(shè)計編寫要求
- GB/T 4310-2016釩
評論
0/150
提交評論