




已閱讀5頁,還剩43頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
哈爾濱工業(yè)大學(xué)計(jì)算機(jī)學(xué)院唐好選Email:tanghx,緒論,先談軟件危機(jī)軟件工程、軟件體系結(jié)構(gòu)、軟件設(shè)計(jì)模式的概念及其相互之間的關(guān)系軟構(gòu)件與面向服務(wù)的思想,主要內(nèi)容,軟件危機(jī),“軟件危機(jī)”于1968年首次提出,“軟件工程”概念也由此產(chǎn)生軟件危機(jī)是指計(jì)算機(jī)軟件開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。(1)能否滿足對軟件日益增長的需求?(2)能否維護(hù)數(shù)量日益增長的現(xiàn)有軟件?云計(jì)算會帶來更加嚴(yán)重的軟件危機(jī),軟件危機(jī)的具體表現(xiàn),(1)對軟件開發(fā)成本和進(jìn)度的估計(jì)常常不準(zhǔn)確(成本估計(jì)不足,拖延工期)(2)用戶對“已完成”的軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生(用戶需求了解不清,閉門造車,導(dǎo)致不符合要求)(3)軟件產(chǎn)品的質(zhì)量往往靠不?。]有嚴(yán)格執(zhí)行質(zhì)保技術(shù))(4)軟件常常不可維護(hù),不能適應(yīng)新環(huán)境,程序錯誤不容易糾正(5)軟件成本占總成本的比例逐年上升(6)軟件開發(fā)速度跟不上計(jì)算機(jī)應(yīng)用普及深入的趨勢,軟件危機(jī)的原因,(1)軟件是邏輯部件:研發(fā)階段難衡量;開發(fā)質(zhì)量較難評價,開發(fā)過程管理和控制較難;運(yùn)行過程才能暴露沒有檢測出來的事故,相當(dāng)于修改設(shè)計(jì),軟件維護(hù)困難(2)軟件規(guī)模龐大,有技術(shù)問題,也有管理方法問題(3)早期開發(fā)的個體化;忽視需求分析;認(rèn)為軟件開發(fā)就是寫程序;輕視維護(hù);對用戶不了解(4)對軟件開發(fā)前期工作忽視,未做好軟件定義時期的工作(5)忽視了軟件維護(hù)階段極端艱巨復(fù)雜的工作,維護(hù)通常占總代價的55%-70%,軟件危機(jī)的原因(另一種解釋),Managementmyths(whenprojectsgoawry)Wealreadyhavebooksandstandards,thatgivetheprogrammersalltheyneedtoknowMypeopletohavestate-of-the-artdevelopmenttools,afterall,webuythealwaysthelatestcomputerhardwareIfwegetbehindschedule,wejustaddstaffandwillbeabletocatchupeasilybuthowmucheffortwillyouspendingettingyournewstaffuptospeed?,CustomermythsAgeneralstatementofobjectivesissufficienttostartprogrammingProjectrequirementscontinuallychange,butchangecaneasilybeaccommodatedsincesoftwareissoflexibleandeasytochange,軟件危機(jī)的原因(另一種解釋),PractitionersmythsOncewewritetheprogramandgetittowork,ourjobisdoneUntilIgettheprogramrunning,IhavenowayofassessingandassuringitsqualityTheonlydeliverableforasuccessfulprojectistheworkingprogram,軟件危機(jī)的原因(另一種解釋),軟件工程不能解決軟件危機(jī),“沒有任何一項(xiàng)技術(shù)或方法可以讓軟件工程的生產(chǎn)力在十年內(nèi)提高十倍”、“復(fù)雜的軟件工程問題無法靠簡單的答案來解決”軟件危機(jī)的本質(zhì)難題軟件體系結(jié)構(gòu)(或連接關(guān)系)越來越復(fù)雜軟件程序代碼數(shù)量越多,隱藏BUG越多,軟件危機(jī)的本質(zhì)難題,FO(Fact-Oriented)方法軟件復(fù)雜度可以通過軟件體系結(jié)構(gòu)來描述,任何體系結(jié)構(gòu)都是可以通過維來構(gòu)建的任何一個復(fù)雜的用戶需求都是可分解的,把不能再分解的構(gòu)成部分叫“對象”任何一個對象必須包含兩個部分,即對象的外部屬性和對象的內(nèi)部屬性對象的連接方式即結(jié)構(gòu),就是用戶需求的體系結(jié)構(gòu),解決軟件危機(jī)的可能,FO方法的組成FOA(Fact-OrientedAnalysis):即面向事實(shí)的分析,把客戶需求當(dāng)成存在的事實(shí)FOD(Frame-OrientedDesign):面向結(jié)構(gòu)的設(shè)計(jì),把分析過程中得到對象的連接形式整理出來,并采用維的方式表述,得到軟件的體系結(jié)構(gòu)FOP(Form-OrientedProgramming):面向形式的編程,對形式部分編寫程序代碼,得到無具體含義的功能模塊。將模塊和配置(描述參數(shù))結(jié)合,可得到一個對象,解決軟件危機(jī)的可能,軟件=功能模塊+表現(xiàn)程序+連接方式(體系結(jié)構(gòu)),思考,你對軟件危機(jī)的表現(xiàn)和原因的見解你身邊軟件項(xiàng)目的完成及評估情況,解決軟件危機(jī)告訴人們?nèi)绾卧O(shè)計(jì)軟件、開發(fā)軟件、管理軟件軟件工程方法/軟件體系結(jié)構(gòu)/軟件設(shè)計(jì)模式的合理應(yīng)用,我們的目標(biāo),提高軟件產(chǎn)品的質(zhì)量!降低軟件開發(fā)的成本!,先談軟件危機(jī)軟件工程、軟件體系結(jié)構(gòu)、軟件設(shè)計(jì)模式的概念及其相互之間的關(guān)系軟構(gòu)件與面向服務(wù)的思想,主要內(nèi)容,軟件工程是將系統(tǒng)化的、規(guī)范的、可度量的方法應(yīng)用于軟件的開發(fā)、運(yùn)行和維護(hù)的過程,即將工程化應(yīng)用于軟件中軟件工程主要強(qiáng)調(diào)軟件開發(fā)過程各個階段的方法論,軟件工程的基本概念,軟件工程的三要素,1.Build-and-FixModel,典型的開發(fā)模型,2.Warer-fallModel,3.RapidPrototypeModel,4.IncrementalModel,5.SpiralModel,6.IntelligentModel,7.HybridModel,軟件工程的局限性,軟件工程充滿了“方法論”的內(nèi)容如何分析、如何設(shè)計(jì)、如何編程、如何測試、如何維護(hù)、軟件模型與軟件系統(tǒng)的質(zhì)量在很大程度上依賴于開發(fā)者本身的經(jīng)驗(yàn)和水平因?yàn)槿狈浖_發(fā)過程的理論層面的刻畫,沒有將大量的方法論總結(jié)并提升為理論,故而只能是“工程”,從工程提升到理論,研究軟件體系結(jié)構(gòu)的目的,彌補(bǔ)軟件開發(fā)領(lǐng)域“工程上有余而理論上不足”的缺陷借助于計(jì)算機(jī)科學(xué)中其他領(lǐng)域的理論研究方法,試圖用模型分析與理論推理的方法解決軟件研發(fā)過程中涉及到的各類功能與非功能性問題將軟件工程上總結(jié)出來的各類方法論提升為模型與理論,進(jìn)而用這些理論來指導(dǎo)軟件的開發(fā),軟件體系結(jié)構(gòu)的產(chǎn)生,隨著軟件系統(tǒng)規(guī)模越來越大、越來越復(fù)雜,對系統(tǒng)整體結(jié)構(gòu)和規(guī)格的說明顯得越來越重要對于大規(guī)模的復(fù)雜軟件系統(tǒng)來說,系統(tǒng)結(jié)構(gòu)的設(shè)計(jì)和規(guī)格說明比算法和數(shù)據(jù)結(jié)構(gòu)的選擇更重要對軟件體系結(jié)構(gòu)的系統(tǒng)、深入的研究將會成為解決軟件危機(jī)最有希望的途徑,軟件體系結(jié)構(gòu)的定義,軟件體系結(jié)構(gòu)(SoftwareArchitecture,SA)提供了一個結(jié)構(gòu)、行為和屬性的高級抽象從較高層次來考慮組成系統(tǒng)的構(gòu)件、構(gòu)件之間的連接,以及由構(gòu)件與構(gòu)件交互形成的拓?fù)浣Y(jié)構(gòu)這些要素應(yīng)該滿足一定限制,遵循一定設(shè)計(jì)規(guī)則,能夠在一定環(huán)境下進(jìn)行演化,軟件體系結(jié)構(gòu)的組成,構(gòu)件:基本軟件構(gòu)造模塊(對象、模式等)連接件:將它們組合起來形成完整的軟件系統(tǒng)物理分布(拓?fù)浣Y(jié)構(gòu))約束性能,程序員說,SA是要決定需要編寫哪些類、使用哪些現(xiàn)成框架程序經(jīng)理說,SA是模塊的劃分和接口的定義分析員說,SA是為業(yè)務(wù)領(lǐng)域?qū)ο蟮年P(guān)系建模配置管理員說,SA是開發(fā)以及編譯后軟件的基本結(jié)構(gòu)數(shù)據(jù)庫工程師說,SA規(guī)定了持久化數(shù)據(jù)的結(jié)構(gòu),其他一切都不過是對數(shù)據(jù)的操作而已部署工程師說,SA規(guī)定了軟件部署到硬件的策略用戶說,SA是決定一個個功能子系統(tǒng)如何劃分,關(guān)于軟件體系結(jié)構(gòu)的看法,軟件體系結(jié)構(gòu)研究要回答的基本問題,軟件的基本構(gòu)造單元是什么?這些構(gòu)造單元之間如何連接?最終形成何種樣式的拓?fù)浣Y(jié)構(gòu)?每個典型應(yīng)用領(lǐng)域(例如CAD、ERP)的典型體系結(jié)構(gòu)是什么樣子?如何進(jìn)行軟件體系結(jié)構(gòu)的設(shè)計(jì)與實(shí)現(xiàn)?如果對已經(jīng)存在的軟件體系結(jié)構(gòu)進(jìn)行修改?使用何種工具來支持軟件體系結(jié)構(gòu)的設(shè)計(jì)?如何對軟件的體系結(jié)構(gòu)進(jìn)行描述,并據(jù)此進(jìn)行分析和驗(yàn)證?,SA在軟件生命周期中的位置,SA在系統(tǒng)開發(fā)的全過程中起中心作用;是設(shè)計(jì)/開發(fā)的起點(diǎn)和依據(jù);是配置、運(yùn)行和維護(hù)的指南,軟件體系結(jié)構(gòu)的演化,無體系結(jié)構(gòu)階段,萌芽階段,初期階段,高級階段,以匯編語言進(jìn)行小規(guī)模程序開發(fā)為特征,以控制流圖和數(shù)據(jù)流圖為特征,出現(xiàn)了從不同側(cè)面描述系統(tǒng)的結(jié)構(gòu)模型,以UML為典型代表,以描述系統(tǒng)的高層抽象結(jié)構(gòu)為中心,不關(guān)心具體建模細(xì)節(jié),以“4+1”模型為標(biāo)志,軟件體系結(jié)構(gòu)的4+1視圖模型,邏輯視圖,過程視圖,開發(fā)視圖,物理視圖,用況視圖,描述系統(tǒng)的功能性需求,描述系統(tǒng)為最終用戶做什么,是設(shè)計(jì)模型的抽象,程序員與實(shí)現(xiàn)有關(guān)的部分.如源代碼、庫、對象的類等.是事物的靜態(tài)視圖,系統(tǒng)工程師系統(tǒng)的拓?fù)浣Y(jié)構(gòu)、交付、安裝、通信.注重事實(shí)和系統(tǒng)必須服從的約束.,描述系統(tǒng)在運(yùn)行時的并發(fā)性-任務(wù)、線程、過程以及它們之間的交互作用,針對系統(tǒng)集成人員,設(shè)計(jì)人員/測試人行為,軟件體系結(jié)構(gòu)的演化,系統(tǒng)=算法+數(shù)據(jù)結(jié)構(gòu)(60年代)系統(tǒng)=子程序+子程序(70年代)系統(tǒng)=對象+對象(80年代)系統(tǒng)=構(gòu)件+連接件(90年代)系統(tǒng)=服務(wù)+服務(wù)總線(21世紀(jì)),軟件體系結(jié)構(gòu)的演化史,功能函數(shù),面向過程的分析和設(shè)計(jì),基于構(gòu)件的軟件開發(fā),面向?qū)ο蟮姆治雠c設(shè)計(jì),面向服務(wù)的計(jì)算面向服務(wù)的體系結(jié)構(gòu),經(jīng)典的軟件體系結(jié)構(gòu)風(fēng)格,體系結(jié)構(gòu)例:Android的分層體系結(jié)構(gòu),引入設(shè)計(jì)模式,裝修設(shè)計(jì)問題:使用軟件方法可以設(shè)計(jì)并展現(xiàn)不同風(fēng)格的布局效果,1、如何使客戶端程序依賴少量的或者單一的對象2、如何保證增加風(fēng)格時(或風(fēng)格變化時)不影響原有代碼?,設(shè)計(jì)模式的概念,設(shè)計(jì)模式是類的聯(lián)合體以及與之相伴的算法,這些算法能夠?qū)崿F(xiàn)共同的設(shè)計(jì)目標(biāo)設(shè)計(jì)模式表達(dá)了一種思想而不僅僅是固定的類聯(lián)合體,相伴的算法表示模式的基本操作,設(shè)計(jì)模式分類,按類型劃分,軟件設(shè)計(jì)模式可劃分為創(chuàng)建型模式:如何創(chuàng)建一個對象,一般是通過子類繼承(或者接口實(shí)現(xiàn))的方式來生成新的類結(jié)構(gòu)型模式:利用現(xiàn)有的類來生成新的類,一般通過類的組合來生成新類行為型模式:類之間的協(xié)作,將一個動作分解到不同的類,強(qiáng)調(diào)類之間的協(xié)作,設(shè)計(jì)模式、體系結(jié)構(gòu)、框架,框架(Framework)是整個或部分系統(tǒng)的可重用設(shè)計(jì),具體表現(xiàn)為一組抽象構(gòu)件及構(gòu)件實(shí)例間交互的方法構(gòu)件是代碼重用,而設(shè)計(jì)模式是設(shè)計(jì)重用,框架介于兩者之間,部分代碼重用,部分設(shè)計(jì)重用設(shè)計(jì)模式比框架更為抽象,設(shè)計(jì)模式在碰到具體問題后才能產(chǎn)生代碼;框架已經(jīng)可以用代碼表示設(shè)計(jì)模式是比框架更小的體系結(jié)構(gòu)元素,框架中可以包含多個設(shè)計(jì)模式,框架(Framework)與結(jié)構(gòu)(Architecture),框架是可實(shí)例化的、部分完成的軟件系統(tǒng)或子系統(tǒng),它為一組系統(tǒng)或子系統(tǒng)定義了統(tǒng)一的體系結(jié)構(gòu),并提供了系統(tǒng)的基本構(gòu)造塊,還為實(shí)現(xiàn)具體功能定義了擴(kuò)展點(diǎn)框架實(shí)現(xiàn)了體系結(jié)構(gòu)級別的復(fù)用,框架(Framework)與模式(Pattern),從應(yīng)用領(lǐng)域上分,框架給出的是整個應(yīng)用的體系結(jié)構(gòu);而設(shè)計(jì)模式則給出了單一設(shè)計(jì)問題的解決方案從內(nèi)容上分,設(shè)計(jì)模式僅是一個單純的設(shè)計(jì),這個設(shè)計(jì)可被不同語言以不同方式來實(shí)現(xiàn);而框架則是設(shè)計(jì)和代碼的混合體設(shè)計(jì)模式比框架更容易移植:框架一旦設(shè)計(jì)成形,以其為基礎(chǔ)進(jìn)行應(yīng)用的開發(fā)就要受制于框架的實(shí)現(xiàn)環(huán)境;而設(shè)計(jì)模式是與語言無關(guān)的,所以可以在更廣泛的異構(gòu)環(huán)境中進(jìn)行應(yīng)用總之,框架是軟件,而設(shè)計(jì)模式是軟件的知識體,設(shè)計(jì)模式的合理利用可以提升框架的設(shè)計(jì)水平,先談軟件危機(jī)軟件工程、軟件體系架構(gòu)、軟件設(shè)計(jì)模式的概念及其相互之間的關(guān)系軟構(gòu)件與面向服務(wù)的思想,主要內(nèi)容,軟構(gòu)件與面向服務(wù)的思想,軟件系統(tǒng)及其開發(fā)方法面臨著如下的變化趨勢重復(fù)軟件越來越多技術(shù)讓位于業(yè)務(wù):實(shí)現(xiàn)技術(shù)變得越來越次要,對業(yè)務(wù)需求的理解變得越來越困難封閉向開放轉(zhuǎn)移:系統(tǒng)規(guī)模變大,復(fù)雜性變高,從組織內(nèi)部轉(zhuǎn)移到企業(yè)之間,乃至全球化環(huán)境中內(nèi)部功能讓位于協(xié)同:開發(fā)一個封閉的功能很容易,難的是多組織之間協(xié)同性功能的開發(fā)按需應(yīng)變:軟件系統(tǒng)越來越要求快速、容易變化傳統(tǒng)的軟件開發(fā)方法/技術(shù)越來越力不從心,軟構(gòu)件與面向服務(wù)的思想,新的要求構(gòu)成軟件的基本組件或體系結(jié)構(gòu)大量復(fù)用,可以縮短軟件開發(fā)周期(軟構(gòu)件技術(shù))服務(wù)無處不在,服務(wù)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 一榀框架結(jié)構(gòu)設(shè)計(jì)畢業(yè)答辯
- 動脈疾病診療指南解讀
- 呼吸機(jī)使用的臨床指征
- 如何讓孩子在群體壓力中成長
- 歷史2024-2025學(xué)年統(tǒng)編版七年級下冊歷史知識點(diǎn) 專題總結(jié)
- 葡萄酒產(chǎn)區(qū)特色品牌國際化研究報告:2025年市場趨勢預(yù)測
- 音樂流媒體行業(yè)用戶付費(fèi)模式與版權(quán)運(yùn)營商業(yè)模式策略報告
- 【高中語文】《紅樓夢》閱讀中“薛寶釵情節(jié)”闡釋與訓(xùn)練++統(tǒng)編版高一語文必修下冊+
- 藝術(shù)市場數(shù)字化交易平臺與藝術(shù)品市場文化產(chǎn)業(yè)發(fā)展趨勢報告
- 金融行業(yè)消費(fèi)升級報告:年輕一代的金融需求與偏好分析
- 醫(yī)院職工代表大會暨工會會員代表大會提案表
- Oxford-3000-牛津核心詞匯
- 散打裁判的基本手勢
- 《延安我把你追尋》課件
- 石材產(chǎn)品質(zhì)量保證書
- 部編版五年級語文下冊作文范文全套
- 兒童意外傷害預(yù)防-ppt課件
- 衰老生物學(xué)ppt課件(PPT 57頁)
- 外研版必修二短語(教師版)
- 企業(yè)部門單位工傷事故報告書
- 河南中考B補(bǔ)全對話練習(xí)補(bǔ)全對話
評論
0/150
提交評論