版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1內(nèi)容提要1.1 軟件軟件的本質(zhì) 軟件神話 61.2 軟件工程 軟件工程 軟件過(guò)程和軟件工程實(shí)踐 網(wǎng)絡(luò)環(huán)境帶來(lái)的影響 1.3 軟件設(shè)計(jì) 軟件工程中的設(shè)計(jì) 設(shè)計(jì)過(guò)程和設(shè)計(jì)質(zhì)量軟件設(shè)計(jì)原則1.4 軟件體系結(jié)構(gòu)什么是軟件體系結(jié)構(gòu)軟件體系結(jié)構(gòu)的內(nèi)容設(shè)計(jì)階段的軟件體系結(jié)構(gòu)1.5 小結(jié)
21.1 軟件軟件的本質(zhì)計(jì)算機(jī)軟件,是由專業(yè)人員開發(fā)并長(zhǎng)期維護(hù)的軟件產(chǎn)品。軟件科學(xué)成為了今天商業(yè)、科學(xué)、工程必需的技術(shù),促進(jìn)了新科技的創(chuàng)新和發(fā)展但是,無(wú)論國(guó)外、國(guó)內(nèi),軟件危機(jī)的達(dá)摩克利斯之劍,一直高懸在軟件從業(yè)者頭頂,至今揮之不去。軟件與信息轉(zhuǎn)換軟件不是有形的物理產(chǎn)品,而是人類思維的產(chǎn)物,軟件不是被制造出來(lái),而是思考出來(lái)的。
4軟件的特性軟件是設(shè)計(jì)開發(fā)的,而不是傳統(tǒng)意義上生產(chǎn)制造的軟件不會(huì)磨損!隨著基于構(gòu)件的構(gòu)造模式發(fā)展,大多數(shù)軟件需要根據(jù)實(shí)際的顧客需求定制硬件和軟件的失效曲線軟件,不會(huì)受引起硬件磨損的環(huán)境問(wèn)題的影響。6計(jì)算機(jī)軟件分類系統(tǒng)軟件應(yīng)用軟件嵌入式軟件科學(xué)和工程計(jì)算軟件產(chǎn)品線軟件人工智能軟件網(wǎng)絡(luò)化軟件計(jì)算機(jī)軟件分為七個(gè)大類,軟件工程師正面臨著持續(xù)挑戰(zhàn)。7新的挑戰(zhàn)開放計(jì)算網(wǎng)絡(luò)資源開源軟件所有這些新的挑戰(zhàn),毫無(wú)疑問(wèn),將對(duì)商務(wù)人員、軟件工程師、最終用戶產(chǎn)生無(wú)法預(yù)測(cè)的結(jié)果。軟件專案都有特定的進(jìn)度與時(shí)間表投資人:想知道項(xiàng)目是否能夠在給定的資源和進(jìn)度約束下完成。面向軟件體系結(jié)構(gòu)的需求工程,從需求到軟件體系結(jié)構(gòu)的轉(zhuǎn)換隨著技術(shù)和用戶需求的不斷變化,軟件開發(fā)人員必須時(shí)刻調(diào)整自己的開發(fā)以適應(yīng)當(dāng)前的需求。性能:產(chǎn)品達(dá)到怎樣的性能?典型的利益相關(guān)人及其關(guān)注點(diǎn)包括:能在較為抽象的級(jí)別上描述整個(gè)軟件系統(tǒng)的結(jié)構(gòu),成為大規(guī)模、復(fù)雜軟件系統(tǒng)設(shè)計(jì)中必不可少的步驟。可構(gòu)建性:如何將軟件構(gòu)建為一組組件,并能夠獨(dú)立實(shí)現(xiàn)和驗(yàn)證這些組件?哪些組件應(yīng)該復(fù)用其它產(chǎn)品,哪些應(yīng)該從外部供應(yīng)商處獲得?計(jì)劃復(fù)用:復(fù)用既省時(shí)又省力。在面向?qū)ο蟮脑O(shè)計(jì)系統(tǒng)中,從一個(gè)公共的模版中產(chǎn)生快速的、相近的實(shí)現(xiàn)與之并發(fā)運(yùn)行、可能會(huì)與之并發(fā)運(yùn)行;能在較為抽象的級(jí)別上描述整個(gè)軟件系統(tǒng)的結(jié)構(gòu),成為大規(guī)模、復(fù)雜軟件系統(tǒng)設(shè)計(jì)中必不可少的步驟。形成上述圖樣或模式的藝術(shù)。構(gòu)建:包括手寫的、自動(dòng)生成的編碼和測(cè)試,以發(fā)現(xiàn)編碼中的錯(cuò)誤。建模:無(wú)論是庭園設(shè)計(jì)家、橋梁建造者、航空工程師、木匠還是建筑師,每天的工作都離不開模型。自頂向下分解、逐步求精的開發(fā);用層次結(jié)構(gòu)描述軟件單元間的相互關(guān)系;包括軟件工程在內(nèi)的任何工程方法,必須構(gòu)建在質(zhì)量的基礎(chǔ)之上。基于系統(tǒng),以中央處理器為核心;軟件的演變和認(rèn)識(shí)過(guò)程9程序設(shè)計(jì)語(yǔ)言的發(fā)展有三個(gè)層面以標(biāo)準(zhǔn)C語(yǔ)言簇為典型代表的面向過(guò)程的軟件設(shè)計(jì)方法以JAVA語(yǔ)言簇為典型代表的面向?qū)ο蟮能浖O(shè)計(jì)方法以XML語(yǔ)言為典型代表的面向構(gòu)件的軟件設(shè)計(jì)方法人月神話《人月神話》的內(nèi)容,源于作者布魯克斯在IBM公司SYSTEM/360家族(最長(zhǎng)壽的計(jì)算機(jī)體系結(jié)構(gòu)之一)和OS/360中的項(xiàng)目管理經(jīng)驗(yàn)。對(duì)軟件設(shè)計(jì)有一個(gè)全面的理解。建筑師的角色和溝通依據(jù)軟件生命周期中軟件體系結(jié)構(gòu)的研究與應(yīng)用資源分配、項(xiàng)目結(jié)構(gòu)化和規(guī)劃;(4)軟件體系結(jié)構(gòu)形式化支持的研究。JohnBackus,DanBricklin,蒂姆·伯納斯-李林納斯·托瓦茲,理查德·馬修·斯托曼基于軟件體系結(jié)構(gòu)的應(yīng)用部署所有這些新的挑戰(zhàn),毫無(wú)疑問(wèn),將對(duì)商務(wù)人員、軟件工程師、最終用戶產(chǎn)生無(wú)法預(yù)測(cè)的結(jié)果。軟件體系結(jié)構(gòu)的描述,設(shè)計(jì)方法,以及設(shè)計(jì)經(jīng)驗(yàn)的記錄和重用傳統(tǒng)的與互聯(lián)網(wǎng)時(shí)代的軟件工程觀比較建模:無(wú)論是庭園設(shè)計(jì)家、橋梁建造者、航空工程師、木匠還是建筑師,每天的工作都離不開模型。以標(biāo)準(zhǔn)C語(yǔ)言簇為典型代表的面向過(guò)程的軟件設(shè)計(jì)方法可變性:軟件可能需要哪些改變?哪些改變不太可能發(fā)生,不需要特別容易進(jìn)行這些改變?這類研究產(chǎn)生了針對(duì)一類特殊軟件的體系結(jié)構(gòu)框架,比如,航空電子控制系統(tǒng)、移動(dòng)機(jī)器人、用戶界面。20世紀(jì)50年代的類似硬件工程80年代的軟件生產(chǎn)率和可擴(kuò)展性產(chǎn)品化:如果產(chǎn)品以幾種變體的形式存在,如何開發(fā)一個(gè)產(chǎn)品線,并利用這些變體的共性?產(chǎn)品線中的產(chǎn)品以怎樣的步驟開發(fā)?在創(chuàng)建一條軟件產(chǎn)品線時(shí),要進(jìn)行哪些投資?性能:產(chǎn)品達(dá)到怎樣的性能?至于如何知道M的附近位置?如何將軟件劃分成模塊?性能:產(chǎn)品達(dá)到怎樣的性能?包括軟件工程在內(nèi)的任何工程方法,必須構(gòu)建在質(zhì)量的基礎(chǔ)之上。重視在不同時(shí)間段、不同軟件規(guī)模上的軟件間的相互關(guān)系和協(xié)同;111.2 軟件工程軟件工程美國(guó)電氣與電子工程師協(xié)會(huì)(IEEE)給出的:軟件工程是:(1)將系統(tǒng)化的、規(guī)范的、可量化的方法應(yīng)用于軟件的開發(fā)、運(yùn)行和維護(hù),即將工程化方法應(yīng)用于軟件。(2)在(1)中所述方法的研究。軟件工程層次圖包括軟件工程在內(nèi)的任何工程方法,必須構(gòu)建在質(zhì)量的基礎(chǔ)之上。質(zhì)量關(guān)注點(diǎn)(qualityfocus)過(guò)程(process)方法(method)工具(tool)軟件工程是一種層次化的技術(shù)!軟件工程與計(jì)算機(jī)科學(xué)的差別軟件工程計(jì)算機(jī)科學(xué)目標(biāo)在時(shí)間、資源、人員這3個(gè)主要限制條件下構(gòu)建滿足用戶需求的軟件系統(tǒng)探索正確的計(jì)算和建模方法,從而改進(jìn)計(jì)算方法本身產(chǎn)品軟件(比如辦公包和編譯器)算法(比如希爾排序法)和抽象的問(wèn)題(比如哲學(xué)家進(jìn)餐問(wèn)題)進(jìn)度與時(shí)間表軟件專案都有特定的進(jìn)度與時(shí)間表研究專案一般不具有設(shè)置的進(jìn)度與時(shí)間表關(guān)注點(diǎn)軟件工程關(guān)注如何為用戶實(shí)現(xiàn)價(jià)值軟件理論關(guān)注的是軟件本身運(yùn)行的原理,比如時(shí)間復(fù)雜度,空間復(fù)雜度,和算法的正確性變化程度隨著技術(shù)和用戶需求的不斷變化,軟件開發(fā)人員必須時(shí)刻調(diào)整自己的開發(fā)以適應(yīng)當(dāng)前的需求。同時(shí)軟件工程本身也處于不斷的發(fā)展中對(duì)于某一種特定問(wèn)題的正確解決方法將永遠(yuǎn)不會(huì)改變需要的其他知識(shí)相關(guān)領(lǐng)域的知識(shí)數(shù)學(xué)著名的探索者和教育家BarryBoehm,DavidParnas,布魯克斯EdsgerDijkstra,高德納,RobertTarjan,PeterSlater,艾倫·圖靈,姚期智著名的實(shí)踐者JohnBackus,DanBricklin,蒂姆·伯納斯-李林納斯·托瓦茲,理查德·馬修·斯托曼無(wú)14軟件過(guò)程和軟件工程實(shí)踐一個(gè)通用的軟件工程過(guò)程框架,通常包含5個(gè)活動(dòng):溝通:在技術(shù)工作開始之前,和客戶的溝通、協(xié)作極其重要目的是理解利益相關(guān)者的項(xiàng)目目標(biāo),并收集需求,以定義軟件特性、功能。策劃:軟件項(xiàng)目好比是一個(gè)復(fù)雜的旅程,策劃活動(dòng),就是創(chuàng)建一個(gè)使任何復(fù)雜的旅程都變得簡(jiǎn)單的地圖,以指導(dǎo)團(tuán)隊(duì)的項(xiàng)目旅程,該地圖稱為軟件。建模:無(wú)論是庭園設(shè)計(jì)家、橋梁建造者、航空工程師、木匠還是建筑師,每天的工作都離不開模型。他們會(huì)畫一張草圖,來(lái)輔助理解整個(gè)項(xiàng)目大的構(gòu)想,包括體系結(jié)構(gòu)、不同的構(gòu)件如何結(jié)合,以及其它特征。構(gòu)建:包括手寫的、自動(dòng)生成的編碼和測(cè)試,以發(fā)現(xiàn)編碼中的錯(cuò)誤。部署:軟件以全部、部分增量的形式交付給用戶,用戶對(duì)其進(jìn)行評(píng)測(cè),并給出反饋意見(jiàn)。157條簡(jiǎn)單的原則存在價(jià)值:軟件系統(tǒng)因能給用戶提供價(jià)值,而具有存在價(jià)值。所有的決定,都應(yīng)基于該思想。保持簡(jiǎn)潔:軟件設(shè)計(jì)并不是隨意的過(guò)程,軟件設(shè)計(jì)中需要考慮很多因素。所有的設(shè)計(jì),都應(yīng)該盡可能簡(jiǎn)潔,保持愿景:清晰的愿景,是軟件項(xiàng)目成功的基礎(chǔ)。沒(méi)有愿景,項(xiàng)目將會(huì)有多種設(shè)計(jì)思想而永遠(yuǎn)不能結(jié)束。如果缺乏一致性,關(guān)注使用者:有產(chǎn)業(yè)實(shí)力的軟件系統(tǒng),不是在真空中開發(fā)、使用的。通常,軟件系統(tǒng)必定是由開發(fā)者以外的人員使用、維護(hù)和編制文檔,等等,這就必須要讓別人理解你的系統(tǒng)。因此,在需求說(shuō)明、設(shè)計(jì)和實(shí)現(xiàn)過(guò)程時(shí)面向未來(lái):生命期持久的系統(tǒng),具有更高的價(jià)值。在現(xiàn)在的計(jì)算環(huán)境中,需求規(guī)格說(shuō)明隨時(shí)會(huì)變計(jì)劃復(fù)用:復(fù)用既省時(shí)又省力。軟件系統(tǒng)開發(fā)過(guò)程中,高水平的復(fù)用,是一個(gè)很難實(shí)現(xiàn)的目標(biāo)。面向?qū)ο蠹夹g(shù)會(huì)給代碼和設(shè)計(jì)復(fù)用帶來(lái)好處認(rèn)真思考:這最后一條規(guī)則,可能最容易忽略。行動(dòng)之前,清晰定位、完整思考,通常能產(chǎn)生更好的結(jié)果。仔細(xì)思考,可以提高做好事情的可能性10個(gè)重要的軟件工程思想17網(wǎng)絡(luò)環(huán)境帶來(lái)的影響美國(guó)南加州大學(xué)的巴里·貝姆(BarryBoehm)教授,總結(jié)了國(guó)際上軟件工程的發(fā)展歷程:20世紀(jì)50年代的類似硬件工程60年代的軟件手工生產(chǎn)、70年代的形式化方法和瀑布模型80年代的軟件生產(chǎn)率和可擴(kuò)展性90年代的軟件并發(fā)和順序進(jìn)程21世紀(jì)初的軟件敏捷性和價(jià)值18軟件工程在40年發(fā)展歷程中關(guān)注域轉(zhuǎn)向需求40年來(lái),軟件工程的發(fā)展都是以系統(tǒng)為中心的,基于圖靈計(jì)算模式,圖靈計(jì)算時(shí)代,計(jì)算機(jī)軟件是與計(jì)算機(jī)系統(tǒng)操作有關(guān)的程序、規(guī)程、規(guī)則及如何與之有關(guān)的數(shù)據(jù)結(jié)構(gòu)和文檔,即:軟件=程序+數(shù)據(jù)結(jié)構(gòu)+文檔隨著一個(gè)劃時(shí)代的轉(zhuǎn)變,人們開始推崇“軟件即服務(wù)”的思想。那么,計(jì)算機(jī)軟件是與滿足需求的信息及與之有關(guān)的服務(wù)工具,即:軟件=滿足需求的信息+服務(wù)工具Google的成功,就是一個(gè)現(xiàn)實(shí)的例子。傳統(tǒng)的與互聯(lián)網(wǎng)時(shí)代的軟件工程觀比較傳統(tǒng)軟件工程觀互聯(lián)網(wǎng)時(shí)代軟件工程觀基礎(chǔ)理論基于系統(tǒng),以中央處理器為核心;基于圖靈計(jì)算理論和馮·諾依曼結(jié)構(gòu)?;诰W(wǎng)絡(luò),節(jié)點(diǎn)是圖靈機(jī)或智能體等主體對(duì)象,主體間相互作用;網(wǎng)絡(luò)化軟件具有小世界、無(wú)標(biāo)度和高集聚的特性,研究網(wǎng)絡(luò)動(dòng)力學(xué)行為。研究方法操作系統(tǒng)屏蔽硬件的異構(gòu)性,中間件屏蔽操作系統(tǒng)的異構(gòu)性;用層次結(jié)構(gòu)描述軟件單元間的相互關(guān)系;自頂向下分解、逐步求精的開發(fā);軟件生命周期、軟件評(píng)測(cè)和軟件成熟度。網(wǎng)絡(luò)成為一個(gè)虛擬資源環(huán)境;重視在不同時(shí)間段、不同軟件規(guī)模上的軟件間的相互關(guān)系和協(xié)同;軟件按偏好依附生長(zhǎng),逐步演化。工程方法軟件業(yè)是制造業(yè);面向系統(tǒng)的結(jié)構(gòu);要求用戶提供確定的需求、明確的系統(tǒng)邊界。軟件即服務(wù),軟件業(yè)是服務(wù)業(yè);面向服務(wù)的架構(gòu);用戶主導(dǎo),隨需即取,規(guī)模定制,敏捷開發(fā)。201.3 軟件設(shè)計(jì)朗曼字典里,對(duì)“設(shè)計(jì)”的解釋包括:描述某個(gè)事物如何被制造出來(lái)的圖樣或模式。形成上述圖樣或模式的藝術(shù)。對(duì)人造產(chǎn)品中組成部分的一種安排,將對(duì)產(chǎn)品在實(shí)踐中的可用性具有影響。人的頭腦中的一種規(guī)則,等等。由上述定義可見(jiàn),設(shè)計(jì)是一種“圖樣、模式或規(guī)劃”,其目標(biāo),就是要描述一個(gè)產(chǎn)品如何被制造出來(lái)。因此,軟件設(shè)計(jì)可以被看作是“對(duì)軟件將如何開發(fā)出來(lái)的一種描述”。如果把設(shè)計(jì)當(dāng)作一個(gè)動(dòng)詞,那么軟件設(shè)計(jì)就是“得到這種描述的活動(dòng)或過(guò)程”。21軟件工程中的設(shè)計(jì)分析模型數(shù)據(jù)/類設(shè)計(jì)體系結(jié)構(gòu)設(shè)計(jì)接口設(shè)計(jì)構(gòu)件級(jí)設(shè)計(jì)對(duì)軟件需求進(jìn)行分析和建模開始后,軟件設(shè)計(jì)是建?;顒?dòng)的最后一個(gè)軟件工程活動(dòng),接著便要進(jìn)入構(gòu)造階段,并生成代碼和測(cè)試。
自頂向下分解、逐步求精的開發(fā);面向軟件體系結(jié)構(gòu)的需求工程,從需求到軟件體系結(jié)構(gòu)的轉(zhuǎn)換面向?qū)ο蠹夹g(shù)會(huì)給代碼和設(shè)計(jì)復(fù)用帶來(lái)好處20世紀(jì)50年代的類似硬件工程可變性:軟件可能需要哪些改變?哪些改變不太可能發(fā)生,不需要特別容易進(jìn)行這些改變?思維的產(chǎn)物,軟件不是被制造出來(lái),而沒(méi)有愿景,項(xiàng)目將會(huì)有多種設(shè)計(jì)思想而永遠(yuǎn)不能結(jié)束。傳統(tǒng)的與互聯(lián)網(wǎng)時(shí)代的軟件工程觀比較軟件過(guò)程和軟件工程實(shí)踐計(jì)算機(jī)軟件分為七個(gè)大類,軟件工程師正面臨著持續(xù)挑戰(zhàn)。建筑師準(zhǔn)備建筑最初的草圖,展示外觀和內(nèi)部布局,與客戶討論這些草圖,直至所有相關(guān)方都達(dá)成一致意見(jiàn),認(rèn)為展示的就是想要的。最后,介紹了軟件體系結(jié)構(gòu)的概念、軟件體系結(jié)構(gòu)的內(nèi)容和設(shè)計(jì)階段的軟件體系結(jié)構(gòu)。40年來(lái),軟件工程的發(fā)展都是以系統(tǒng)為中心的,基于圖靈計(jì)算模式,圖靈計(jì)算時(shí)代,計(jì)算機(jī)軟件是與計(jì)算機(jī)系統(tǒng)操作有關(guān)的程序、規(guī)程、規(guī)則及如何與之有關(guān)的數(shù)據(jù)結(jié)構(gòu)和文檔,即:建筑風(fēng)格,建筑物,組織機(jī)構(gòu)、結(jié)構(gòu)的一種樣式、規(guī)矩或風(fēng)格。容量:多少用戶并發(fā)使用該系統(tǒng)?該系統(tǒng)為用戶保存多少數(shù)據(jù)?80年代的軟件生產(chǎn)率和可擴(kuò)展性建筑的藝術(shù)或科學(xué),特別是在考慮美感和實(shí)用因素的情況下,設(shè)計(jì)人類使用的大型建筑物所需的技巧和實(shí)際。技術(shù)支持人員:關(guān)注幫助平臺(tái)電話呼入的數(shù)目和復(fù)雜性。建模:無(wú)論是庭園設(shè)計(jì)家、橋梁建造者、航空工程師、木匠還是建筑師,每天的工作都離不開模型。軟件生命周期、軟件評(píng)測(cè)和軟件成熟度。軟件過(guò)程和軟件工程實(shí)踐那么,計(jì)算機(jī)軟件是與滿足需求的信息及與之有關(guān)的服務(wù)工具,即:22設(shè)計(jì)過(guò)程和設(shè)計(jì)質(zhì)量在整個(gè)設(shè)計(jì)過(guò)程中,要使用一系列正式技術(shù)評(píng)審或設(shè)計(jì)走查,來(lái)評(píng)估設(shè)計(jì)演化的質(zhì)量。標(biāo)準(zhǔn)如下:設(shè)計(jì)必須實(shí)現(xiàn)所有分析模型中的明確需求,而且滿足客戶期望的所有隱性需求。對(duì)于生成代碼的人、進(jìn)行測(cè)試的人、維護(hù)軟件的人,設(shè)計(jì)必須是可讀的、可理解的指南。設(shè)計(jì)必須提供軟件的全貌,并從實(shí)現(xiàn)的角度說(shuō)明數(shù)據(jù)域、功能域、行為域。23軟件設(shè)計(jì)原則抽象體系結(jié)構(gòu)模式模塊化信息隱蔽功能獨(dú)立求精重構(gòu)設(shè)計(jì)類模塊化和軟件成本模塊化時(shí),位置需要保持在M附近,來(lái)避免過(guò)少、過(guò)多的模塊化。至于如何知道M的附近位置?如何將軟件劃分成模塊?則需要理解后面的設(shè)計(jì)概念。251.4 軟件體系結(jié)構(gòu)什么是軟件體系結(jié)構(gòu)牛津字典中,“體系結(jié)構(gòu)”一詞定義為:建筑的藝術(shù)或科學(xué),特別是在考慮美感和實(shí)用因素的情況下,設(shè)計(jì)人類使用的大型建筑物所需的技巧和實(shí)際。建筑風(fēng)格,建筑物,組織機(jī)構(gòu)、結(jié)構(gòu)的一種樣式、規(guī)矩或風(fēng)格??▋?nèi)基梅隆大學(xué)的軟件工程研究所在網(wǎng)站上公開征集軟件體系結(jié)構(gòu)的定義,至今已有百余種。其中,較有影響力的定義包括:軟件系統(tǒng)的結(jié)構(gòu),包含軟件元素、軟件元素外部可見(jiàn)的屬性以及這些軟件元素之間的關(guān)系;軟件系統(tǒng)的基本組織,包含構(gòu)件、構(gòu)件之間、構(gòu)件與環(huán)境之間的關(guān)系,以及相關(guān)的設(shè)計(jì)與演化原則等。狗窩、房子和高樓開發(fā)一個(gè)具有一定規(guī)模和復(fù)雜性的軟件系統(tǒng)和編寫一個(gè)簡(jiǎn)單的程序,是不一樣的,借用《設(shè)計(jì)模式》的作者G.Booch的比喻,其中的區(qū)別如同建造一座大廈和搭建一個(gè)狗窩的差別。房子的建模建筑師準(zhǔn)備建筑最初的草圖,展示外觀和內(nèi)部布局,與客戶討論這些草圖,直至所有相關(guān)方都達(dá)成一致意見(jiàn),認(rèn)為展示的就是想要的。建筑師的角色和溝通依據(jù)建筑師也充當(dāng)建造者和客戶之間的協(xié)調(diào)人!體系結(jié)構(gòu)的需要:溫切斯特神秘屋這個(gè)大廈沒(méi)有制作過(guò)建筑藍(lán)圖!軟件體系結(jié)構(gòu)的發(fā)展史2001年到2012年間的重要方法、語(yǔ)言、論文、數(shù)據(jù)和會(huì)議31軟件生命周期中軟件體系結(jié)構(gòu)的研究與應(yīng)用需求面向軟件體系結(jié)構(gòu)的需求工程,從需求到軟件體系結(jié)構(gòu)的轉(zhuǎn)換設(shè)計(jì)軟件體系結(jié)構(gòu)的描述,設(shè)計(jì)方法,以及設(shè)計(jì)經(jīng)驗(yàn)的記錄和重用實(shí)踐支持軟件體系結(jié)構(gòu)的開發(fā)過(guò)程,從設(shè)計(jì)模型到系統(tǒng)實(shí)現(xiàn)的轉(zhuǎn)換;基于軟件體系結(jié)構(gòu)的測(cè)試部署基于軟件體系結(jié)構(gòu)的應(yīng)用部署開發(fā)后動(dòng)態(tài)軟件體系結(jié)構(gòu),軟件體系結(jié)構(gòu)恢復(fù)和重建整個(gè)軟件生命周期中,各階段軟件體系結(jié)構(gòu)的研究熱點(diǎn)32軟件體系結(jié)構(gòu)的內(nèi)容下面將當(dāng)前軟件體系結(jié)構(gòu)分為4個(gè)研究領(lǐng)域:(1)通過(guò)提供一種新的體系結(jié)構(gòu)描述語(yǔ)言(ArchitecturalDescriptionLanguage,ADL)解決體系結(jié)構(gòu)描述問(wèn)題。這種語(yǔ)言的目標(biāo),是給實(shí)踐者提供設(shè)計(jì)體系結(jié)構(gòu)更好的方法,以便設(shè)計(jì)人員相互交流,并可以使用支持體系結(jié)構(gòu)描述語(yǔ)言的工具來(lái)分析案例。(2)體系結(jié)構(gòu)領(lǐng)域知識(shí)的總結(jié)性研究。這一領(lǐng)域關(guān)心的,是工程師通過(guò)軟件實(shí)踐,總結(jié)各種體系結(jié)構(gòu)原則和模式的分類和闡釋。(3)針對(duì)特定領(lǐng)域的框架的研究。這類研究產(chǎn)生了針對(duì)一類特殊軟件的體系結(jié)構(gòu)框架,比如,航空電子控制系統(tǒng)、移動(dòng)機(jī)器人、用戶界面。這類研究一旦成功,這樣的框架便可以被毫不費(fèi)力實(shí)例化來(lái)生產(chǎn)這一領(lǐng)域新的產(chǎn)品。(4)軟件體系結(jié)構(gòu)形式化支持的研究。隨著新的符號(hào)的產(chǎn)生,以及人們對(duì)體系結(jié)構(gòu)設(shè)計(jì)實(shí)踐的理解逐步深入,需要用一種嚴(yán)格的形式化方法刻畫軟件體系結(jié)構(gòu)及其相關(guān)性質(zhì)。33創(chuàng)建軟件體系結(jié)構(gòu)典型的利益相關(guān)人及其關(guān)注點(diǎn)包括:投資人:想知道項(xiàng)目是否能夠在給定的資源和進(jìn)度約束下完成。架構(gòu)師、開發(fā)人員、測(cè)試人員:首先考慮的是,最初的構(gòu)建和以后的維護(hù)與演進(jìn)。項(xiàng)目經(jīng)理:需要組織團(tuán)隊(duì),制定迭代計(jì)劃。市場(chǎng)人員:想通過(guò)品質(zhì)特點(diǎn)實(shí)現(xiàn)與競(jìng)爭(zhēng)者的差異化。用戶:包括最終用戶、系統(tǒng)管理員,以及安裝、部署、準(zhǔn)備、配置人員。技術(shù)支持人員:關(guān)注幫助平臺(tái)電話呼入的數(shù)目和復(fù)雜性。首先對(duì)軟件工程進(jìn)行介紹,包括軟件的本質(zhì)、軟件危機(jī)的出現(xiàn)、軟件神話,然后對(duì)層次化的軟件工程以及網(wǎng)絡(luò)環(huán)境帶來(lái)的影響進(jìn)行了描述。容量:多少用戶并發(fā)使用該系統(tǒng)?該系統(tǒng)為用戶保存多少數(shù)據(jù)?軟件設(shè)計(jì)、軟件體系結(jié)構(gòu)與軟件工程密切相關(guān),它們是軟件工程和軟件開發(fā)過(guò)程的重要組成部分。在面向?qū)ο蟮脑O(shè)計(jì)系統(tǒng)中,從一個(gè)公共的模版中產(chǎn)生快速的、相近的實(shí)現(xiàn)產(chǎn)品化:如果產(chǎn)品以幾種變體的形式存在,如何開發(fā)一個(gè)產(chǎn)品線,并利用這些變體的共性?產(chǎn)品線中的產(chǎn)品以怎樣的步驟開發(fā)?在創(chuàng)建一條軟件產(chǎn)品線時(shí),要進(jìn)行哪些投資?20世紀(jì)50年代的類似硬件工程由此,可以看到軟件設(shè)計(jì)在軟件生存周期和各種軟件開發(fā)過(guò)程模型中所處的位置。性能:產(chǎn)品達(dá)到怎樣的性能?隨著技術(shù)和用戶需求的不斷變化,軟件開發(fā)人員必須時(shí)刻調(diào)整自己的開發(fā)以適應(yīng)當(dāng)前的需求。容量:多少用戶并發(fā)使用該系統(tǒng)?該系統(tǒng)為用戶保存多少數(shù)據(jù)?目的是理解利益相關(guān)者的項(xiàng)目目標(biāo),并收集需求,以定義軟件特性、功能。對(duì)軟件設(shè)計(jì)有一個(gè)全面的理解。和OS/360中的項(xiàng)目管理經(jīng)驗(yàn)。下面將當(dāng)前軟件體系結(jié)構(gòu)分為4個(gè)研究領(lǐng)域:20世紀(jì)50年代的類似硬件工程10個(gè)重要的軟件工程思想軟件系統(tǒng)的基本組織,包含構(gòu)件、構(gòu)件之間、構(gòu)件與環(huán)境之間的關(guān)系,以及相關(guān)的設(shè)計(jì)與演化原則等。可構(gòu)建性:如何將軟件構(gòu)建為一組組件,并能夠獨(dú)立實(shí)現(xiàn)和驗(yàn)證這些組件?哪些組件應(yīng)該復(fù)用其它產(chǎn)品,哪些應(yīng)該從外部供應(yīng)商處獲得?集成FR和NFR的方法,將FR和NFR視為同等重要的設(shè)計(jì)輸入,在體系結(jié)構(gòu)設(shè)計(jì)過(guò)程中,同時(shí)兼顧FR和NFR,并將其轉(zhuǎn)化成相應(yīng)體系結(jié)構(gòu)的建模元素具體系統(tǒng),會(huì)有其它關(guān)鍵的關(guān)注點(diǎn)。在整個(gè)設(shè)計(jì)過(guò)程中,要使用一系列正式技術(shù)評(píng)審或設(shè)計(jì)走查,來(lái)評(píng)估設(shè)計(jì)演化的質(zhì)量。他們會(huì)畫一張草圖,來(lái)輔助理解整個(gè)項(xiàng)目大的構(gòu)想,包括體系結(jié)構(gòu)、不同的構(gòu)件如何結(jié)合,以及其它特征。34創(chuàng)建軟件體系結(jié)構(gòu)具體系統(tǒng),會(huì)有其它關(guān)鍵的關(guān)注點(diǎn)。功能性:產(chǎn)品向用戶提供哪些功能?可變性:軟件可能需要哪些改變?哪些改變不太可能發(fā)生,不需要特別容易進(jìn)行這些改變?性能:產(chǎn)品達(dá)到怎樣的性能?容量:多少用戶并發(fā)使用該系統(tǒng)?該系統(tǒng)為用戶保存多少數(shù)據(jù)?生態(tài)系統(tǒng):在部署的生態(tài)環(huán)境中,該系統(tǒng)與其他系統(tǒng)進(jìn)行哪些交互?模塊化:如何將編寫軟件的任務(wù)分解為工作指派(模塊),特別是這些模塊可以獨(dú)立地開發(fā),并能夠準(zhǔn)確、容易地滿足彼此的需要?可構(gòu)建性:如何將軟件構(gòu)建為一組組件,并能夠獨(dú)立實(shí)現(xiàn)和驗(yàn)證這些組件?哪些組件應(yīng)該復(fù)用其它產(chǎn)品,哪些應(yīng)該從外部供應(yīng)商處獲得?產(chǎn)品化:如果產(chǎn)品以幾種變體的形式存在,如何開發(fā)一個(gè)產(chǎn)品線,并利用這些變體的共性?產(chǎn)品線中的產(chǎn)品以怎樣的步驟開發(fā)?在創(chuàng)建一條軟件產(chǎn)品線時(shí),要進(jìn)行哪些投資?安全性:產(chǎn)品是否需要用戶認(rèn)證,或者必須限制對(duì)數(shù)據(jù)的訪問(wèn)?數(shù)據(jù)的安全性如何得到保證?如何抵擋“拒絕服務(wù)”攻擊或其他攻擊?35設(shè)計(jì)階段的軟件體系結(jié)構(gòu)根據(jù)在設(shè)計(jì)過(guò)程中,對(duì)FR和NFR考慮的階段不同,可以將軟件體系結(jié)構(gòu)設(shè)計(jì)方法分為3類:FR驅(qū)動(dòng)的軟件體系結(jié)構(gòu)設(shè)計(jì),根據(jù)FR得到初步的體系結(jié)構(gòu)設(shè)計(jì)模型,然后,通過(guò)一定的手段,精化設(shè)計(jì)結(jié)果以逐步達(dá)到NFR的目標(biāo),典型的方法,包括評(píng)估與轉(zhuǎn)化、自頂向下組裝)等。NFR驅(qū)動(dòng)的軟件體系結(jié)構(gòu)設(shè)計(jì)將NFR作為首要考慮因素,將NFR直接映射成為體系結(jié)構(gòu)的建模元素,典型的,包括屬性驅(qū)動(dòng)的設(shè)計(jì)ADD等。集成FR和NFR的方法,將FR和NFR視為同等重要的設(shè)計(jì)輸入,在體系結(jié)構(gòu)設(shè)計(jì)過(guò)程中,同時(shí)兼顧FR和NFR,并將其轉(zhuǎn)化成相應(yīng)體系結(jié)構(gòu)的建模元素這類方法,往往與面向Aspect的方法相結(jié)合,典型的,包括UseCase和目標(biāo)驅(qū)動(dòng)、形式化設(shè)計(jì)分析框架FDAF、Aspect構(gòu)件等。體系結(jié)構(gòu)的復(fù)用圣索菲亞大教堂,是拜占庭建筑之美的代表。1100年后,ChristopherWren使用了同樣的設(shè)計(jì),來(lái)建造圣保羅大教堂的穹頂,并成為倫敦的地標(biāo)性建筑。系統(tǒng)的構(gòu)架結(jié)構(gòu)軟件結(jié)構(gòu)關(guān)系適用于分解是一個(gè)子模塊;與之共享秘密資源分配、項(xiàng)目結(jié)構(gòu)化和規(guī)劃;信息隱藏、封裝;配置控制使用要求正確出現(xiàn)設(shè)計(jì)子集;設(shè)計(jì)擴(kuò)展分層要求正確的出現(xiàn)、使用服務(wù)、提供抽象增量式開發(fā);在“虛擬機(jī)”可移植性上實(shí)現(xiàn)系統(tǒng)類是一個(gè)實(shí)例;共享訪問(wèn)方法在面向?qū)ο蟮脑O(shè)計(jì)系統(tǒng)中,從一個(gè)公共的模版中產(chǎn)生快速的、相近的實(shí)現(xiàn)客戶機(jī)-服務(wù)器與之通信;依賴于分布式操作;關(guān)注點(diǎn)的分離;性能分析;負(fù)載平衡進(jìn)程與之并發(fā)運(yùn)行、可能會(huì)與之并發(fā)運(yùn)行;排除;優(yōu)先于等調(diào)度分析;性能分析并發(fā)在相同的邏輯線程上運(yùn)行確定存在自資源爭(zhēng)用,線程可以交叉、連接、被創(chuàng)建或被殺死的位置共享數(shù)據(jù)產(chǎn)生數(shù)據(jù);使用數(shù)據(jù)性能;數(shù)據(jù)完整性;可修改性部署分配給;移植到性能、可用性、安全性分析實(shí)現(xiàn)存儲(chǔ)到配置控制、集成、測(cè)試活動(dòng)工作分配分配到項(xiàng)目管理、最佳利用專業(yè)技術(shù)、管理通用性381.5 小結(jié)軟件設(shè)計(jì)、軟件體系結(jié)構(gòu)與軟件工程密切相關(guān),它們是軟件工程和軟件開發(fā)過(guò)程的重要組成部分。首先對(duì)軟件工程進(jìn)行介紹,包括軟件的本質(zhì)、軟件危機(jī)的出現(xiàn)、軟件神話,然后對(duì)層次化的軟件工程以及網(wǎng)絡(luò)環(huán)境帶來(lái)的影響進(jìn)行了描述。由此,可以看到軟件設(shè)計(jì)在軟件生存周期和各種軟件開發(fā)過(guò)程模型中所處的位置。然后,對(duì)設(shè)計(jì)過(guò)程、設(shè)計(jì)質(zhì)量、軟件設(shè)計(jì)原則進(jìn)行了介紹對(duì)軟件設(shè)計(jì)有一個(gè)全面的理解。最后,介紹了軟件體系結(jié)構(gòu)的概念、軟件體系結(jié)構(gòu)的內(nèi)容和設(shè)計(jì)階段的軟件體系結(jié)構(gòu)。軟件體系結(jié)構(gòu)設(shè)計(jì)作為軟件設(shè)計(jì)過(guò)程中的活動(dòng)之一能在較為抽象的級(jí)別上描述整個(gè)軟件系統(tǒng)的結(jié)構(gòu),成為大規(guī)模、復(fù)雜軟件系統(tǒng)設(shè)計(jì)中必不可少的步驟。39內(nèi)容提要1.1 軟件軟件的本質(zhì) 軟件神話 61.2 軟件工程 軟件工程 軟件過(guò)程和軟件工程實(shí)踐 網(wǎng)絡(luò)環(huán)境帶來(lái)的影響 1.3 軟件設(shè)計(jì) 軟件工程中的設(shè)計(jì) 設(shè)計(jì)過(guò)程和設(shè)計(jì)質(zhì)量軟件設(shè)計(jì)原則1.4 軟件體系結(jié)構(gòu)什么是軟件體系結(jié)構(gòu)軟件體系結(jié)構(gòu)的內(nèi)容設(shè)計(jì)階段的軟件體系結(jié)構(gòu)1.5 小結(jié)
軟件與信息轉(zhuǎn)換軟件不是有形的物理產(chǎn)品,而是人類思維的產(chǎn)物,軟件不是被制造出來(lái),而是思考出來(lái)的。
投資人:想知道項(xiàng)目是否能夠在給定的資源和進(jìn)度約束下完成。在面向?qū)ο蟮脑O(shè)計(jì)系統(tǒng)中,從一個(gè)公共的模版中產(chǎn)生快速的、相近的實(shí)現(xiàn)項(xiàng)目經(jīng)理:需要組織團(tuán)隊(duì),制定迭代計(jì)劃。研究專案一般不具有設(shè)置的進(jìn)度與時(shí)間表圣索菲亞大教堂,是拜占庭建筑之美的代表。首先對(duì)軟件工程進(jìn)行介紹,包括軟件的本質(zhì)、軟件危機(jī)的出現(xiàn)、軟件神話,然后對(duì)層次化的軟件工程以及網(wǎng)絡(luò)環(huán)境帶來(lái)的影響進(jìn)行了描述。軟件生命周期、軟件評(píng)測(cè)和軟件成熟度。對(duì)軟件需求進(jìn)行分析和建模開始后,軟件設(shè)計(jì)是建?;顒?dòng)的最后一個(gè)軟件工程活動(dòng),接著便要進(jìn)入構(gòu)造階段,并生成代碼和測(cè)試。配置控制、集成、測(cè)試活動(dòng)策劃:軟件項(xiàng)目好比是一個(gè)復(fù)雜的旅程,策劃活動(dòng),就是創(chuàng)建一個(gè)使任何復(fù)雜的旅程都變得簡(jiǎn)單的地圖,以指導(dǎo)團(tuán)隊(duì)的項(xiàng)目旅程,該地圖稱為軟件。安全性:產(chǎn)品是否需要用戶認(rèn)證,或者必須限制對(duì)數(shù)據(jù)的訪問(wèn)?數(shù)據(jù)的安全性如何得到保證?如何抵擋“拒絕服務(wù)”攻擊或其他攻擊?對(duì)軟件設(shè)計(jì)有一個(gè)全面的理解。自頂向下分解、逐步求精的開發(fā);20世紀(jì)50年代的類似硬件工程在現(xiàn)在的計(jì)算環(huán)境中,需求規(guī)格說(shuō)明隨時(shí)會(huì)變軟件體系結(jié)構(gòu)的描述,設(shè)計(jì)方法,以及設(shè)計(jì)經(jīng)驗(yàn)的記錄和重用那么,計(jì)算機(jī)軟件是與滿足需求的信息及與之有關(guān)的服務(wù)工具,即:90年代的軟件并發(fā)和順序進(jìn)程軟件體系結(jié)構(gòu)的描述,設(shè)計(jì)方法,以及設(shè)計(jì)經(jīng)驗(yàn)的記錄和重用軟件過(guò)程和軟件工程實(shí)踐具體系統(tǒng),會(huì)有其它關(guān)鍵的關(guān)注點(diǎn)。模塊化:如何將編寫軟件的任務(wù)分解為工作指派(模塊),特別是這些模塊可以獨(dú)立地開發(fā),并能夠準(zhǔn)確、容易地滿足彼此的需要?41軟件過(guò)程和軟件工程實(shí)踐一個(gè)通用的軟件工程過(guò)程框架,通常包含5個(gè)活動(dòng):溝通:在技術(shù)工作開始之前,和客戶的溝通、協(xié)作極其重要目的是理解利益相關(guān)者的項(xiàng)目目標(biāo),并收集需求,以定義軟件特性、功能。策劃:軟件項(xiàng)目好比是一個(gè)復(fù)雜的旅程,策劃活動(dòng),就是創(chuàng)建一個(gè)使任何復(fù)雜的旅程都變得簡(jiǎn)單的地圖,以指導(dǎo)團(tuán)隊(duì)的項(xiàng)目旅程,該地圖稱為軟件。建模:無(wú)論是庭園設(shè)計(jì)家、橋梁建造者、航空工程師、木匠還是建筑師,每天的工作都離不開模型。他們會(huì)畫一張草圖,來(lái)輔助理解整個(gè)項(xiàng)目大的構(gòu)想,包括體系結(jié)構(gòu)、不同的構(gòu)件如何結(jié)合,以及其它特征。構(gòu)建:包括手寫的、自動(dòng)生成的編碼和測(cè)試,以發(fā)現(xiàn)編碼中的錯(cuò)誤。部署:軟件以全部、部分增量的形式交付給用戶,用戶對(duì)其進(jìn)行評(píng)測(cè),并給出反饋意見(jiàn)。42軟件工程中的設(shè)計(jì)分析模型數(shù)據(jù)/類設(shè)計(jì)體系結(jié)構(gòu)設(shè)計(jì)接口設(shè)計(jì)構(gòu)件級(jí)設(shè)計(jì)對(duì)軟件需求進(jìn)行分析和建模開始后,軟件設(shè)計(jì)是建模活動(dòng)的最后一個(gè)軟件工程活動(dòng),接著便要進(jìn)入構(gòu)造階段,并生成代碼和測(cè)試。
43軟件生命周期中軟件體系結(jié)構(gòu)的研究與應(yīng)用需求面向軟件體系結(jié)構(gòu)的需求工程,從需求到軟件體系結(jié)構(gòu)的轉(zhuǎn)換設(shè)計(jì)軟件體系結(jié)構(gòu)的描述,設(shè)計(jì)方法,以及設(shè)計(jì)經(jīng)驗(yàn)的記錄和重用實(shí)踐支持軟件體系結(jié)構(gòu)的開發(fā)過(guò)程,從設(shè)計(jì)模型到系統(tǒng)實(shí)現(xiàn)的轉(zhuǎn)換;基于軟件體系結(jié)構(gòu)的測(cè)試部署基于軟件體系結(jié)構(gòu)的應(yīng)用部署開發(fā)后動(dòng)態(tài)軟件體系結(jié)構(gòu),軟件體系結(jié)構(gòu)恢復(fù)和重建整個(gè)軟件生命周期中,各階段軟件體系結(jié)構(gòu)的研究熱點(diǎn)面向?qū)ο蠹夹g(shù)會(huì)給代碼和設(shè)計(jì)復(fù)用帶來(lái)好處面向軟件體系結(jié)構(gòu)的需求工程,從需求到軟件體系結(jié)構(gòu)的轉(zhuǎn)換建筑師準(zhǔn)備建筑最初的草圖,展示外觀和內(nèi)部布局,與客戶討論這些草圖,直至所有相關(guān)方都達(dá)成一致意見(jiàn),認(rèn)為展示的就是想要的。軟件過(guò)程和軟件工程實(shí)踐軟件工程是:(1)將系統(tǒng)化的、規(guī)范的、可量化的方法應(yīng)用于軟件的開發(fā)、運(yùn)行和維護(hù),即將工程化方法應(yīng)用于軟件。面向軟件體系結(jié)構(gòu)的需求工程,從需求到軟件體系結(jié)構(gòu)的轉(zhuǎn)換計(jì)算機(jī)軟件分為七個(gè)大類,軟件工程師正面臨著持續(xù)挑戰(zhàn)。軟件體系結(jié)構(gòu)的描述,設(shè)計(jì)方法,以及設(shè)計(jì)經(jīng)驗(yàn)的記錄和重用體系結(jié)構(gòu)的需要:溫切斯特神秘屋軟件系統(tǒng)的結(jié)構(gòu),包含軟件元素、軟件元素外部可見(jiàn)的屬性以及這些軟件元素之間的關(guān)系;技術(shù)支持人員:關(guān)注幫助平臺(tái)電話呼入的數(shù)目和復(fù)雜性。軟件過(guò)程和軟件工程實(shí)踐目的是理解利益相關(guān)者的項(xiàng)目目標(biāo),并收集需求,以定義軟件特性、功能。構(gòu)建:包括手寫的、自動(dòng)生成的編碼和測(cè)試,以發(fā)現(xiàn)編碼中的錯(cuò)誤。(2)在(1)中所述方法的研究。部署:軟件以全部、部分增量的形式交付給用戶,用戶對(duì)其進(jìn)行評(píng)測(cè),并給出反饋意見(jiàn)。基于系統(tǒng),以中央處理器為核心;可變性:軟件可能需要哪些改變?哪些改變不太可能發(fā)生,不需要特別容易進(jìn)行這些改變?性能:產(chǎn)品達(dá)到怎樣的性能?支持軟件體系結(jié)構(gòu)的開發(fā)過(guò)程,從設(shè)計(jì)模型到系統(tǒng)實(shí)現(xiàn)的轉(zhuǎn)換;傳統(tǒng)的與互聯(lián)網(wǎng)時(shí)代的軟件工程觀比較作者布魯克斯在IBM公司架構(gòu)師、開發(fā)人員、測(cè)試人員:首先考慮的是,最初的構(gòu)建和以后的維護(hù)與演進(jìn)。軟件設(shè)計(jì)、軟件體系結(jié)構(gòu)與軟件工程密切相關(guān),它們是軟件工程和軟件開發(fā)過(guò)程的重要組成部分。安全性:產(chǎn)品是否需要用戶認(rèn)證,或者必須限制對(duì)數(shù)據(jù)的訪問(wèn)?數(shù)據(jù)的安全性如何得到保證?如何抵擋“拒絕服務(wù)”攻擊或其他攻擊?計(jì)算機(jī)軟件分為七個(gè)大類,軟件工程師正面臨著持續(xù)挑戰(zhàn)。包括軟件工程在內(nèi)的任何工程方法,必須構(gòu)建在質(zhì)量的基礎(chǔ)之上。80年代的軟件生產(chǎn)率和可擴(kuò)展性軟件專案都有特定的進(jìn)度與時(shí)間表基于軟件體系結(jié)構(gòu)的應(yīng)用部署部署:軟件以全部、部分增量的形式交付給用戶,用戶對(duì)其進(jìn)行評(píng)測(cè),并給出反饋意見(jiàn)。(4)軟件體系結(jié)構(gòu)形式化支持的研究。這類研究產(chǎn)生了針對(duì)一類特殊軟件的體系結(jié)構(gòu)框架,比如,航空電子控制系統(tǒng)、移動(dòng)機(jī)器人、用戶界面。自頂向下分解、逐步求精的開發(fā);(2)體系結(jié)構(gòu)領(lǐng)域知識(shí)的總結(jié)性研究。(1)通過(guò)提供一種新的體系結(jié)構(gòu)描述語(yǔ)言(ArchitecturalDescriptionLanguage,ADL)解決體系結(jié)構(gòu)描述問(wèn)題。部署:軟件以全部、部分增量的形式交付給用戶,用戶對(duì)其進(jìn)行評(píng)測(cè),并給出反饋意見(jiàn)。仔細(xì)思考,可以提高做好事情的可能性這一領(lǐng)域關(guān)心的,是工程師通過(guò)軟件實(shí)踐,總結(jié)各種體系結(jié)構(gòu)原則和模式的分類和闡釋。動(dòng)態(tài)軟件體系結(jié)構(gòu),軟件體系結(jié)構(gòu)恢復(fù)和重建傳統(tǒng)的與互聯(lián)網(wǎng)時(shí)代的軟件工程觀比較建筑的藝術(shù)或科學(xué),特別是在考慮美感和實(shí)用因素的情況下,設(shè)計(jì)人類使用的大型建筑物所需的技巧和實(shí)際。軟件不是有形的物理產(chǎn)品,而是人類軟件工程是:(1)將系統(tǒng)化的、規(guī)范的、可量化的方法應(yīng)用于軟件的開發(fā)、運(yùn)行和維護(hù),即將工程化方法應(yīng)用于軟件。20世紀(jì)50年代的類似硬件工程基于軟件體系結(jié)構(gòu)的應(yīng)用部署然后,對(duì)設(shè)計(jì)過(guò)程、設(shè)計(jì)質(zhì)量、軟件設(shè)計(jì)原則進(jìn)行了介紹溝通:在技術(shù)工作開始之前,和客戶的溝通、協(xié)作極其重要要求用戶提供確定的需求、明確的系統(tǒng)邊界。以標(biāo)準(zhǔn)C語(yǔ)言簇為典型代表的面向過(guò)程的軟件設(shè)計(jì)方法軟件按偏好依附生長(zhǎng),逐步演化。軟件體系結(jié)構(gòu)的描述,設(shè)計(jì)方法,以及設(shè)計(jì)經(jīng)驗(yàn)的記錄和重用20世紀(jì)50年代的類似硬件工程80年代的軟件生產(chǎn)率和可擴(kuò)展性性能:產(chǎn)品達(dá)到怎樣的性能?能在較為抽象的級(jí)別上描述整個(gè)軟件系統(tǒng)的結(jié)構(gòu),成為大規(guī)模、復(fù)雜軟件系統(tǒng)設(shè)計(jì)中必不可少的步驟。以標(biāo)準(zhǔn)C語(yǔ)言簇為典型代表的面向過(guò)程的軟件設(shè)計(jì)方法集成FR和NFR的方法,將FR和NFR視為同等重要的設(shè)計(jì)輸入
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 酒店實(shí)習(xí)報(bào)告(15篇)
- 干部保健門診護(hù)士年終總結(jié)
- 超市采購(gòu)年終個(gè)人工作總結(jié)
- 公司員工因家庭原因辭職報(bào)告10篇
- DB45T 2646-2023 食用林產(chǎn)品產(chǎn)地環(huán)境質(zhì)量監(jiān)測(cè)與評(píng)價(jià)技術(shù)規(guī)范
- DB45T 2638-2023 精播用普通玉米雜交種子加工技術(shù)規(guī)范
- 三年級(jí)下冊(cè)數(shù)學(xué)工作總結(jié)
- 課外活動(dòng)計(jì)劃
- 2024年版房地產(chǎn)三方合作開發(fā)合同樣本版B版
- DB45T 2600-2022 木薯汁加工技術(shù)規(guī)程
- (優(yōu)選)離散元法及其應(yīng)用課件
- [重慶]金佛山景區(qū)蘭花村深度旅游策劃方案
- 數(shù)學(xué)建模案例分析--線性代數(shù)建模案例(20例)
- 市場(chǎng)營(yíng)銷之4P策略(課堂PPT)
- 中藥材生產(chǎn)管理質(zhì)量管理文件目錄
- 框架柱+剪力墻工程施工鋼筋綁扎安裝施工過(guò)程
- 蘇州預(yù)防性試驗(yàn)、交接試驗(yàn)費(fèi)用標(biāo)準(zhǔn)
- 最新【SD高達(dá)G世紀(jì)-超越世界】各強(qiáng)力機(jī)體開發(fā)路線
- 泡沫混凝土安全技術(shù)交底
- 完整MAM-KY02S螺桿空壓機(jī)控制器MODBUSⅡ通信協(xié)議說(shuō)明
- 《納米材料工程》教學(xué)大綱要點(diǎn)
評(píng)論
0/150
提交評(píng)論