




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
軟件工程第一章軟件工程基本概念動(dòng)物王國再過兩個(gè)月要舉行才藝大比拼,小猴只會(huì)爬樹,所以它想:要是能學(xué)點(diǎn)特別的本領(lǐng),就能天下無敵,冠軍一定非我莫屬??墒?,學(xué)什么呢?小猴左思右想。突然,它看見小兔在寫作文,寫得特別認(rèn)真,特別投入。他想:“如果我和小兔學(xué)習(xí)寫作文,一定會(huì)成為偉大的大作家?!庇谑?,小猴拿起筆和作文本,開始專心致志地寫作文??墒?,小猴絞盡腦汁,腦細(xì)胞都快炸了,還沒寫到五行。便自言自語道:“不學(xué)啦,不學(xué)啦,我的手都快酸死了!”接著,它聽見了清脆的喇叭聲,就順著聲音走過來。它看見是小熊在吹喇叭。它心想:“要是我跟小熊學(xué)作文吹喇叭,我一定能吹出美妙、有旋律的曲子?!毙『锎抵抵?,一直吹到腮幫生疼,口干舌燥,它很不耐煩,就不學(xué)啦。小猴正想去玩,走著走著,小鹿像陣風(fēng)一樣的速度跑過去,小猴迫不及待地想和小鹿一起學(xué)習(xí)??墒?,跑得還沒一百米,它就筋疲力盡、滿頭大汗,小猴根本沒耐心學(xué)。到了開始比賽的時(shí)候,動(dòng)物們八仙過海,各顯神通。小兔得了寫作文比賽第一名,小熊得了吹喇叭比賽第一名,小鹿得了長跑而小猴垂頭喪氣比賽第一名。地看著其它動(dòng)物在臺(tái)上領(lǐng)獎(jiǎng)。它明白了做事不能半途而廢,一定要堅(jiān)持到底!俗話說:“吃得苦中苦,方為人上人!”軟件工程第一章軟件工程基本概念軟件工程第一章軟件工程基本概念動(dòng)物王國再過兩個(gè)月要舉行才藝大比拼,小猴只會(huì)爬樹,所以它想:要是能學(xué)點(diǎn)特別的本領(lǐng),就能天下無敵,冠軍一定非我莫屬??墒?,學(xué)什么呢?小猴左思右想。突然,它看見小兔在寫作文,寫得特別認(rèn)真,特別投入。他想:“如果我和小兔學(xué)習(xí)寫作文,一定會(huì)成為偉大的大作家。”于是,小猴拿起筆和作文本,開始專心致志地寫作文。可是,小猴絞盡腦汁,腦細(xì)胞都快炸了,還沒寫到五行。便自言自語道:“不學(xué)啦,不學(xué)啦,我的手都快酸死了!”接著,它聽見了清脆的喇叭聲,就順著聲音走過來。它看見是小熊在吹喇叭。它心想:“要是我跟小熊學(xué)作文吹喇叭,我一定能吹出美妙、有旋律的曲子。”小猴吹著吹著,一直吹到腮幫生疼,口干舌燥,它很不耐煩,就不學(xué)啦。小猴正想去玩,走著走著,小鹿像陣風(fēng)一樣的速度跑過去,小猴迫不及待地想和小鹿一起學(xué)習(xí)??墒牵艿眠€沒一百米,它就筋疲力盡、滿頭大汗,小猴根本沒耐心學(xué)。到了開始比賽的時(shí)候,動(dòng)物們八仙過海,各顯神通。小兔得了寫作文比賽第一名,小熊得了吹喇叭比賽第一名,小鹿得了長跑而小猴垂頭喪氣比賽第一名。地看著其它動(dòng)物在臺(tái)上領(lǐng)獎(jiǎng)。它明白了做事不能半途而廢,一定要堅(jiān)持到底!俗話說:“吃得苦中苦,方為人上人!”教學(xué)資源網(wǎng)站:
1、umlchina/
2、21swe/3、rational/
4、seforum
5、/
6、csai/教學(xué)資源網(wǎng)站:
1、umlchina/
2、21swe/3、rational/
4、seforum
5、/
6、csai/引言學(xué)一門課前的3個(gè)思考什么是…(what)?為什么學(xué)(why)?怎樣學(xué)(how)?1.軟件工程的概念(什么是?)
1.1.
概念
l
軟件工程:(1)將系統(tǒng)化、規(guī)范化、可度量的方法應(yīng)用于軟件的開發(fā)、運(yùn)行和維護(hù)的過程,即將工程化應(yīng)用于軟件中。(2)對(duì)(1)中所述方法的研究。-——IEEE[IEE93]l軟件工程:是指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的工程學(xué)科。采用工程的概念、原理、技術(shù)和方法來開發(fā)與維護(hù)軟件,把經(jīng)過實(shí)踐考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來,這就是軟件工程。1.2.概念理解工程化、管理、技術(shù)。融合了多個(gè)學(xué)科的知識(shí)。人:軟件工程項(xiàng)目中最重要、也是最活躍的資源因素。組織的原則和模式、角色定義和分工、人員的配備、績效的評(píng)定等等。
“SoSo”主義“精細(xì)管理”;“粗放管理”;“信任管理”;
軟件工程中的管理模式也大抵超不出以上三種或其組合。
英文中有個(gè)詞叫“So-So”[平常的,不好不壞的],福建方言中有個(gè)詞發(fā)音類似“Shǎo
Shào”的詞,意思都是“馬馬虎虎”,即“tiger-tiger-h(huán)orse-h(huán)orse”。中國人有四種:新加坡人、香港人、臺(tái)灣人、大陸人,大陸人大都喜歡“馬馬虎虎”,或者說許多時(shí)候都只能馬馬虎虎、難得糊涂,或者說大都是“SoSo”主義者。
軟件工程卻希望做到像上文所述第一種的“精細(xì)管理”,這時(shí)就會(huì)與大陸人的“SoSo”主義沖突,故大陸軟件公司搞軟件工程成功很困難。2.軟件工程的重要性(為什么學(xué)?)2.1.[歷史角度]發(fā)展的必然——軟件危機(jī)l
六十年代以來,隨著計(jì)算機(jī)應(yīng)用需求的驅(qū)動(dòng),系統(tǒng)軟件和應(yīng)用軟件有很大的發(fā)展,如操作系統(tǒng),編譯系統(tǒng)和大型應(yīng)用軟件等。由于軟件生產(chǎn)的復(fù)雜性和高成本,使大型軟件的生產(chǎn)出現(xiàn)了很大的困難,即出現(xiàn)軟件危機(jī)。l
軟件工程正是為克服軟件危機(jī)而提出的一種概念,并在實(shí)踐中不斷地探索它的原理,技術(shù)和方法。在此過程中,人們研究和借鑒了工程學(xué)的某些原理和方法,并形成了一門新的學(xué)科─軟件工程學(xué)。2.3.[個(gè)人角度]專業(yè)人員必備的個(gè)人素質(zhì)
l程序員是一個(gè)吃青春飯的行當(dāng),也是英雄出少年的行當(dāng),就象運(yùn)動(dòng)員一樣。一個(gè)程序員,10年以后很少再只寫代碼。軟件工程是你從程序員到高級(jí)程序員、系統(tǒng)分析員,或項(xiàng)目經(jīng)理、部門經(jīng)理、CTO一步步邁進(jìn)必備的知識(shí),積累起來的經(jīng)驗(yàn)也是你超越年輕人坐在更高職位的資本。
l軟件行業(yè)分工越來越細(xì)、一個(gè)團(tuán)隊(duì)內(nèi)也有各種角色。軟件工程的知識(shí)可以使你結(jié)合自己的特點(diǎn)準(zhǔn)確定位自己的發(fā)展方向。3.軟件工程的內(nèi)容結(jié)構(gòu)(怎樣學(xué)?)
3.1.三個(gè)層次l過程:做什么模型、流程、標(biāo)準(zhǔn)——對(duì)應(yīng)管理要素。關(guān)鍵過程域KPA,定義了方法使用的順序、要求交付的文檔資料、為保證質(zhì)量和協(xié)調(diào)變更所需要的管理、里程碑、項(xiàng)目管理、人員組織等。l方法:如何做往往采用某種特殊的語言或圖形表達(dá)方法及一套質(zhì)量保證標(biāo)準(zhǔn)——對(duì)應(yīng)技術(shù)要素。項(xiàng)目計(jì)劃與估算、需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、測(cè)試及維護(hù)的具體做法和基本原則。
l工具:對(duì)方法的支撐,自動(dòng)或半自動(dòng)的軟件開發(fā)支撐環(huán)境。CASE。
又可分為:l
開發(fā)技術(shù):側(cè)重方法,程序員—〉系統(tǒng)分析員,本科側(cè)重l
開發(fā)管理:側(cè)重過程,項(xiàng)目經(jīng)理—〉CTO,
工程碩士、實(shí)踐學(xué)習(xí)方法企業(yè)學(xué)習(xí)與校園學(xué)習(xí)的差別企業(yè)更多講授的是經(jīng)驗(yàn),學(xué)校更多關(guān)注理論軟件工程是一門什么樣的課程以實(shí)踐經(jīng)驗(yàn)為基礎(chǔ),以理論為工作指導(dǎo)如何開發(fā)軟件,如何做好一個(gè)程序員如何管理開發(fā)軟件,如何做好一個(gè)軟件開發(fā)主管軟件工程包含:結(jié)構(gòu)化軟件工程??浦攸c(diǎn)面向?qū)ο筌浖こ瘫究浦攸c(diǎn)軟件工程管理學(xué)研究生重點(diǎn)個(gè)人軟件工程(PSP)工作組軟件工程(TSP)學(xué)習(xí)方法強(qiáng)記、實(shí)踐、體會(huì)(討論)、再學(xué)習(xí)(1)立足于系統(tǒng)的整體。(2)講授系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、測(cè)試及維護(hù)的理論和方法。(3)構(gòu)筑一個(gè)軟件系統(tǒng),實(shí)踐軟件開發(fā)全過程。
“軟件工程”課程與其它軟件專業(yè)課的區(qū)別“軟件工程”課程教學(xué)與實(shí)踐的目標(biāo)
轉(zhuǎn)變對(duì)軟件的認(rèn)識(shí):上升程序系統(tǒng)轉(zhuǎn)變思維定式:上升程序員系統(tǒng)工程師
(系統(tǒng)分析員)
工程化訓(xùn)練03/8/29:18歲美國青年杰弗里·李·帕森被FBI正式逮捕?!皼_擊波”電腦蠕蟲自8月11日下午在因特網(wǎng)上開始傳播以來,已在全球范圍內(nèi)感染了大約50萬臺(tái)電腦,造成大批電腦癱瘓和網(wǎng)絡(luò)連接速度減慢。新華社/路透Software’simpactonoursocietyandculturecontinuestobeprofound……負(fù)面影響:未來的游戲產(chǎn)業(yè)主要還是以電視游戲(TVgame)、電腦游戲(PCgame,包括網(wǎng)絡(luò)游戲)與手機(jī)游戲(Phonegame)三大方向?yàn)橹?。其中?guī)模最大的會(huì)是電視游戲產(chǎn)業(yè),產(chǎn)值可能超過200億美金;位居第二的是手機(jī)游戲產(chǎn)業(yè),產(chǎn)值可能高達(dá)97億美金;電腦游戲(包括網(wǎng)絡(luò)游戲)將產(chǎn)生53億美金的產(chǎn)值。
(英國JuniperResearch公司最新調(diào)查)對(duì)產(chǎn)業(yè)的影響·:
單位:億元$
1994—832019--1292019--1802019--3642019—8502000—6002019—5872019--528對(duì)個(gè)人的影響·:HowaboutsoftwareindustryinChina?
中印軟件業(yè)出口值比較(億$)
印度中國
2019392.52000624201977.87.220199515201996.5?印度軟件業(yè) 全球軟件外包市場(chǎng)規(guī)模已達(dá)到1000億美元。全球軟件外包的發(fā)包市場(chǎng)主要集中在北美、西歐和日本等國家,其中美國占40%,日本占10%。美國市場(chǎng)被印度壟斷,印度軟件業(yè)80%的收入依賴軟件外包業(yè)務(wù),印度已經(jīng)成為軟件外包的第一大國中國海關(guān)的統(tǒng)計(jì),2019年中國外包及軟件出口業(yè)務(wù)總額約為10億美元,只相當(dāng)于全球外包總量的1%,大約相當(dāng)于印度10多年前的水平,且60%以上的業(yè)務(wù)來自日本。
現(xiàn)在軟件公司年收入增長率為25%-45%,而在互聯(lián)網(wǎng)鼎盛時(shí)期則到達(dá)了100%。納斯達(dá)克上市的印度人創(chuàng)辦的軟件公司至少有25家.印度其他現(xiàn)狀印度全國四車道的高等級(jí)公路只有500公里(01)2000年印度國內(nèi)計(jì)算機(jī)的社會(huì)擁有量為500萬臺(tái),僅為我國同期的1/5;目前印度個(gè)人電腦擁有量為350-400萬臺(tái),每千人約擁有3臺(tái)計(jì)算機(jī)。(02)印度有15%的人口不會(huì)讀和寫
印度每年培養(yǎng)1萬多名計(jì)算機(jī)專業(yè)畢業(yè)生,中國每年計(jì)算機(jī)專業(yè)畢業(yè)的高校生達(dá)3.5萬人以上,從人才儲(chǔ)備上看,中國比印度更具有人才優(yōu)勢(shì)(01)國內(nèi)現(xiàn)有軟件從業(yè)人員近60萬人,其中專業(yè)人才約有34萬人,其中高級(jí)人才4萬人,中級(jí)人才20萬人,初級(jí)人才10萬人。人才結(jié)構(gòu)呈兩頭小中間大的橄欖型結(jié)構(gòu),既缺乏一大批能從事基礎(chǔ)性工作的“軟件藍(lán)領(lǐng)”,更缺乏既懂技術(shù)又懂管理的軟件高級(jí)人才,即“軟件金領(lǐng)”。根據(jù)國際經(jīng)驗(yàn),合理的軟件人才市場(chǎng)應(yīng)該是軟件藍(lán)領(lǐng)、軟件工程師、軟件架構(gòu)與分析師并存的金字塔形狀人才基數(shù)由大到小形成梯次,他們之間的比例應(yīng)該是7∶4∶1。按照合理的人才結(jié)構(gòu)比例進(jìn)行測(cè)算,到2005年,我國需要軟件高級(jí)人才6萬人,中級(jí)軟件人才28萬人,初級(jí)軟件人才46萬人。教育部關(guān)于緊缺人才的報(bào)告
印度大的軟件公司,其軟件項(xiàng)目按合同完成率高達(dá)96%以上(而全球平均16%),對(duì)時(shí)間、質(zhì)量、成本的控制能力非常強(qiáng)。除去大學(xué)計(jì)算機(jī)教育,印度的7萬家私人計(jì)算機(jī)培訓(xùn)學(xué)校,每年可培訓(xùn)100萬人;印度還積極與跨國公司合作培養(yǎng)人才,3年半以前印度獲得微軟認(rèn)證工程師的技術(shù)人員一共只有2000名,而現(xiàn)在每年通過培訓(xùn)獲得微軟認(rèn)證的印度工程師就有10萬之眾。(01)人才質(zhì)量勝于數(shù)量處在十字路口的中國軟件產(chǎn)業(yè)
主權(quán)大國必須建立基于自主技術(shù)的、完整的軟件產(chǎn)業(yè)體系。軟件本國提供率:中國1/3左右,美國97%“印度模式”還是“中國模式”軟件人才結(jié)構(gòu)不合理,缺乏中高級(jí)軟件人才,軟件人員缺乏軟件工程化的概念。第一章軟件工程基本概念1.1軟件什么是軟件?軟件一般認(rèn)為由兩部分組成:文檔:描述程序研制過程、方法及使用的文檔程序:在運(yùn)行時(shí),能提供所希望的功能和性能的指令集。軟件的特點(diǎn)--軟件是一種邏輯實(shí)體,而不是具體的物理實(shí)體,具有高度的抽象性;--軟件是一個(gè)邏輯上復(fù)雜而規(guī)模上龐大的系統(tǒng),涉及技術(shù)、管理等多方面的問題;--軟件的生產(chǎn)方式與硬件明顯不同;產(chǎn)品的質(zhì)量控制在設(shè)計(jì)和制造階段的不同;--產(chǎn)品的生產(chǎn)方式不同;設(shè)計(jì)和制造階段的資金和人力投入、技術(shù)復(fù)雜度不同;--軟件的運(yùn)行和維護(hù)階段,沒有傳統(tǒng)意義上的機(jī)械磨損、老化問題。--軟件與硬件有關(guān),對(duì)軟件有可移植性的要求。--軟件工作涉及許多社會(huì)因素。1.2軟件危機(jī)什么是軟件危機(jī)軟件危機(jī)是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。主要是兩個(gè)問題:1.如何開發(fā)軟件滿足對(duì)軟件的日益增長的需求。2.如何維護(hù)數(shù)量不斷膨脹的已有軟件1.2軟件危機(jī)1.2.2軟件危機(jī)的主要表現(xiàn)1.對(duì)軟件開發(fā)成本和進(jìn)度的估計(jì)常常很不準(zhǔn)確。軟件開發(fā)很難按預(yù)定計(jì)劃實(shí)現(xiàn),投入了資金,能否出結(jié)果,出怎樣的結(jié)果,事先難以預(yù)料。2.用戶對(duì)“已完成”的軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生。3.軟件產(chǎn)品的質(zhì)量往往不可靠。軟件可靠性和質(zhì)量保證的定量概念剛剛出現(xiàn)不久。
1962年6月,美國飛向金星的第一個(gè)空間探測(cè)號(hào)(水手1號(hào)),因其飛艙中的計(jì)算機(jī)導(dǎo)航程序之一的一個(gè)語句的語義出錯(cuò),總是偏離航線無法取得成功。1965年~1970年,美國范登堡基地因程序有錯(cuò)誤造成發(fā)射火箭多次失敗。
2019年,美國曾對(duì)全國范圍內(nèi)的8000個(gè)軟件項(xiàng)目進(jìn)行跟蹤調(diào)查,結(jié)果表明:有1/3的項(xiàng)目沒能完成;在完成的項(xiàng)目中,有1/2沒有成功實(shí)施;失敗原因與需求過程有關(guān)的占了45%。我們國家的問題更加嚴(yán)重。Case1:美國IBM公司在1963年至1966年開發(fā)的IBM360機(jī)的操作系統(tǒng)。這一項(xiàng)目花了5000人一年的工作量,最多時(shí)有1000人投入開發(fā)工作,寫出了近100萬行源程序。......據(jù)統(tǒng)計(jì),這個(gè)操作系統(tǒng)每次發(fā)行的新版本都是從前一版本中找出1000個(gè)程序錯(cuò)誤而修正的結(jié)果。......這個(gè)項(xiàng)目的負(fù)責(zé)人F.D.Brooks事后總結(jié)了他在組織開發(fā)過程中的沉痛教訓(xùn)時(shí)說:“......正像一只逃亡的野獸落到泥潭中做垂死的掙扎,越是掙扎,陷得越深,最后無法逃脫滅頂?shù)臑?zāi)難。......程序設(shè)計(jì)工作正像這樣一個(gè)泥潭,......一批批程序員被迫在泥潭中拼命掙扎,......誰也沒有料到問題竟會(huì)陷入這樣的困境......”。IBM360操作系統(tǒng)的歷史教訓(xùn)成為軟件開發(fā)項(xiàng)目的典型事例為人們所記取。4.軟件常常是不可維護(hù)的。通常軟件維護(hù)的費(fèi)用占總費(fèi)用的55%-70%。錯(cuò)誤具有累積和放大效應(yīng)。在后期發(fā)現(xiàn)的錯(cuò)誤改正的成本和難度將是巨大的(比早期進(jìn)行修正所付出的代價(jià)高2-3個(gè)數(shù)量級(jí)),甚至是不可能改正的。改正一個(gè)問題需付出的代價(jià)需求分析結(jié)構(gòu)設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼集成測(cè)試系統(tǒng)測(cè)試現(xiàn)場(chǎng)改正一個(gè)問題的估計(jì)費(fèi)用改正一個(gè)問題估計(jì)的工作量20200200010005.02.50.050.5(美元)(人天)5.軟件通常沒有適當(dāng)?shù)奈臋n資料,給軟件開發(fā)和維護(hù)帶來極大困難。文檔的作用: 管理人員:評(píng)價(jià)軟件開發(fā)進(jìn)度。 開發(fā)人員:通訊工具。 維護(hù)人員:維護(hù)的依據(jù)。6.軟件成本在計(jì)算機(jī)系統(tǒng)總成本中所占的比例逐年上升。(見下頁圖)7.軟件開發(fā)生產(chǎn)率提高的速度遠(yuǎn)遠(yuǎn)跟不上計(jì)算機(jī)應(yīng)用迅速普及深入的趨勢(shì)。1.2軟件危機(jī)產(chǎn)生軟件危機(jī)的原因1.與軟件本身的特點(diǎn)有關(guān)軟件不同于硬件,它是計(jì)算機(jī)系統(tǒng)的邏輯部件而不是物理部件。在寫出程序代碼并在計(jì)算機(jī)運(yùn)行之前,軟件開發(fā)過程的進(jìn)展情況較難衡量,軟件開發(fā)的質(zhì)量也較難評(píng)價(jià)。因此,管理和控制軟件開發(fā)過程相當(dāng)困難。2.項(xiàng)目沒有被很好地理解;計(jì)劃不周,最終導(dǎo)致進(jìn)度拖延。Myth:Ifwegetbehindschedule,wecanaddmoreprogrammersandcatchup.Reality:Softwaredevelopmentisnotamechanisticprocesslikemanufacturing.InthewordsofBrooks,“addingpeopletoalatesoftwareprojectmakesitlater.”3.沒有充分的文檔資料(documentation)
Myth:Theonlydeliverableforasuccessfulprojectistheworkingprogram.Reality:Aworkingprogramisonlyonepartofasoftwareconfigurationthatincludesprograms,documents,anddata.Documentationformsthefoundationforsuccessfuldevelopmentand,moreimportant,providesguidanceforthesoftwaremaintenancetask.4.軟件可靠性(reliability)缺少度量的標(biāo)準(zhǔn),
質(zhì)量無法保證。如何保證軟件產(chǎn)品的質(zhì)量,
是非常復(fù)雜困難的問題,特別對(duì)于規(guī)模龐大
的軟件。5.軟件難以維護(hù)(maintainability)
不易升級(jí)(evolvability)
Myth:Oncewewritetheprogramandgetittowork,ourjobisdone.Reality:Someoneoncesaidthat“thesooneryoubegin‘writingcode’,thelongerit’lltakeyoutogetdone.”Industrydataindicatethatbetween60and80percentofalleffortexpendedonaprogramwillbeexpendedafteritisdeliveredtothecustomerforthefirsttime.1.2軟件危機(jī)解決軟件危機(jī)的途徑1.技術(shù)措施使用更好的軟件開發(fā)方法和開發(fā)工具2.組織管理措施軟件開發(fā)不是某種個(gè)體勞動(dòng)的神秘技巧,而應(yīng)該是一種組織良好、管理嚴(yán)密、各類人員協(xié)同配合、共同完成的工程項(xiàng)目。1.3軟件工程一、什么是軟件工程軟件工程是指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的工程學(xué)科。它采用工程的概念、原理、技術(shù)和方法來開發(fā)與維護(hù)軟件,把經(jīng)過時(shí)間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來。軟件工程是一門涉及軟件計(jì)劃、需求分析、設(shè)計(jì)、編碼、測(cè)試和維護(hù)的原理、方法及工具的研究和應(yīng)用的學(xué)科。1.3軟件工程二、軟件工程的基本原理1968年在聯(lián)邦德國召開的國際會(huì)議上正式“軟件工程”術(shù)語。目前有100多條關(guān)于軟件工程的準(zhǔn)則,其中最出名的是著名軟件工程專家B.W.Boehm在1983年提出的7條基本原理。1.3軟件工程1.用分階段的生命周期計(jì)劃嚴(yán)格管理經(jīng)統(tǒng)計(jì)表明,不成功的軟件項(xiàng)目中有一半左右是由于計(jì)劃不周造成的。Boehm認(rèn)為,在軟件的整個(gè)生命周期中應(yīng)制定并嚴(yán)格執(zhí)行六類計(jì)劃:項(xiàng)目概要計(jì)劃、里程碑計(jì)劃、項(xiàng)目控制計(jì)劃、產(chǎn)品控制計(jì)劃、驗(yàn)證計(jì)劃、運(yùn)行維護(hù)計(jì)劃。1.3軟件工程2.堅(jiān)持進(jìn)行階段評(píng)審大部分錯(cuò)誤是在編碼之前造成的錯(cuò)誤發(fā)現(xiàn)與改正得越晚,所需付出的代價(jià)越高。因此,在每個(gè)階段都進(jìn)行嚴(yán)格的評(píng)審,以便盡早發(fā)現(xiàn)在軟件開發(fā)過程的錯(cuò)誤1.3軟件工程3.實(shí)行嚴(yán)格的產(chǎn)品控制在軟件開發(fā)過程中不要隨意改變需求,因?yàn)楦淖兡稠?xiàng)需求往往需要付出較高的代價(jià),但在實(shí)踐中用戶往往會(huì)提出需求變更,因此需要采取科學(xué)的產(chǎn)品控制技術(shù)。目前主要實(shí)行基準(zhǔn)配置管理:基準(zhǔn)配置是指經(jīng)過階段評(píng)審后的軟件配置成分,如各個(gè)階段產(chǎn)生的文檔或程序代碼。對(duì)涉及基準(zhǔn)配置的修改,必須經(jīng)過嚴(yán)格的評(píng)審,通過后才能實(shí)施修改。1.3軟件工程4.采用現(xiàn)代程序設(shè)計(jì)技術(shù)實(shí)踐表明:采用先進(jìn)的技術(shù)既可提高軟件開發(fā)的效率,又可提高軟件維護(hù)的效率。80年代及之前:結(jié)構(gòu)化分析、設(shè)計(jì)技術(shù)90年代:面向?qū)ο蠓治觥⒃O(shè)計(jì)技術(shù)1.3軟件工程5.結(jié)果應(yīng)能清楚地審查軟件產(chǎn)品是看不見、摸不著的邏輯產(chǎn)品,開發(fā)過程難以評(píng)價(jià)和管理。根據(jù)軟件開發(fā)項(xiàng)目的總目標(biāo)及完成期限,規(guī)定開發(fā)組織的責(zé)任和產(chǎn)品標(biāo)準(zhǔn),使所得的結(jié)果能夠清楚地審查1.3軟件工程6.開發(fā)小組的人員應(yīng)該少而精開發(fā)小組人員的素質(zhì)和數(shù)量是影響軟件產(chǎn)品質(zhì)量和開發(fā)效率的重要因素。開發(fā)小組人員數(shù)目的增加,使相互交流復(fù)雜、費(fèi)用增加。1.3軟件工程7.承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性遵循前6條基本原理,就能夠按照當(dāng)代軟件工程基本原理實(shí)現(xiàn)軟件的工程化生產(chǎn),但不能保證趕上時(shí)代前進(jìn)的步伐。積極主動(dòng)采納新的軟件技術(shù),且不斷總結(jié)經(jīng)驗(yàn)。1.3軟件工程三、軟件工程方法學(xué)軟件工程的傳統(tǒng)方法是“生命周期法”,強(qiáng)調(diào)“結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計(jì)”。1.“生命周期法”的起源人類解決復(fù)雜問題時(shí)普遍采用的一個(gè)策略是“各個(gè)擊破”,也就是對(duì)問題進(jìn)行分解,然后再分別解決各個(gè)子問題的策略。軟件工程采用的“生命周期法”,就是從時(shí)間角度對(duì)軟件開發(fā)和維護(hù)的復(fù)雜問題進(jìn)行分解,把軟件生存的漫長周期依次劃分為若干個(gè)階段,每個(gè)階段有相對(duì)獨(dú)立的任務(wù),然后再逐步完成每個(gè)階段的任務(wù)。1.3軟件工程2.生命周期劃分的原則各階段的任務(wù)彼此間盡可能相對(duì)獨(dú)立,同一個(gè)階段各項(xiàng)任務(wù)的性質(zhì)盡可能相同,從而降低每個(gè)階段任務(wù)的復(fù)雜性,簡化不同階段之間的聯(lián)系,有利于軟件開發(fā)過程的組織管理。3.生命周期的劃分軟件生命周期一般分為:軟件定義(問題定義、可行性研究、需求分析)、軟件開發(fā)(總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和單元測(cè)試、綜合測(cè)試)、軟件維護(hù)等三個(gè)時(shí)期。生命周期法各階段的工作小結(jié)生命周期法各階段的工作小結(jié)1.3軟件工程4.“生命周期法”的特點(diǎn)階段具有順序性和依賴性推遲實(shí)現(xiàn)的觀點(diǎn)質(zhì)量保證的觀點(diǎn)每個(gè)階段都必須完成規(guī)定的文檔每個(gè)階段結(jié)束前都要對(duì)所完成的文檔進(jìn)行評(píng)審,以便盡早發(fā)現(xiàn)問題,改正錯(cuò)誤。1.4軟件開發(fā)過程模型一、瀑布模型1.4軟件開發(fā)過程模型瀑布模型的特征階段間具有順序性和依賴性。推遲實(shí)現(xiàn)的觀點(diǎn)。質(zhì)量保證的觀點(diǎn)。1.4軟件開發(fā)過程模型軟件維護(hù)往往經(jīng)歷軟件生存期的各個(gè)階段,從而構(gòu)成生存期循環(huán)。1.4軟件開發(fā)過程模型具有維護(hù)循環(huán)的軟件生存期的瀑布模型1.4軟件開發(fā)過程模型瀑布模型的缺點(diǎn):從認(rèn)識(shí)論角度看,人的認(rèn)識(shí)是一個(gè)多次反復(fù)循環(huán)的過程,不可能一次完成。但瀑布模型中劃分的幾個(gè)階段,沒有反映出這種認(rèn)識(shí)過程的反復(fù)性。瀑布模型是由文檔驅(qū)動(dòng)的。二、原型模型1.基本思想在獲取一組基本的需求定義后,利用高級(jí)軟件工具的可開發(fā)環(huán)境,快速地建立一個(gè)目標(biāo)系統(tǒng)的最初版本,并把它交給用戶試用、補(bǔ)充和修改,再進(jìn)行新的版本開發(fā)。反復(fù)進(jìn)行這個(gè)過程,直到得出系統(tǒng)的“精確解”,即用戶滿意為止。經(jīng)過這樣一個(gè)反復(fù)補(bǔ)充和修改的過程,應(yīng)用系統(tǒng)的“最初版本”就逐步演變?yōu)橄到y(tǒng)的“最終版本”。1.4軟件開發(fā)過程模型原型:一個(gè)具體的可執(zhí)行模型,它實(shí)現(xiàn)了系統(tǒng)的若干功能。原型法:不斷地運(yùn)行系統(tǒng)“原型”來進(jìn)行啟發(fā)、揭示和判斷的系統(tǒng)開發(fā)方法。1.4軟件開發(fā)過程模型2.原型模型1.4軟件開發(fā)過程模型在“需求分析”、“原型設(shè)計(jì)”兩個(gè)階段中,開發(fā)者和用戶一起為想象中的系統(tǒng)的某些主要部分定義需求和規(guī)格說明,該原型可用來幫助分析和設(shè)計(jì)工作,而不是一個(gè)軟件產(chǎn)品。在這期間,用戶和開發(fā)者都不要為程序算法或設(shè)計(jì)技巧等枝節(jié)問題分心,主要是確定開發(fā)者是否理解了用戶的意思,同時(shí)試驗(yàn)實(shí)現(xiàn)它們的若干方法。
1.4軟件開發(fā)過程模型3.原型特征軟件原型是以最少的費(fèi)用、最短的時(shí)間開發(fā)出的、可以反映最后軟件的主要特征的系統(tǒng)。它具有以下特征:(1)它是一個(gè)可實(shí)際運(yùn)行的系統(tǒng)。1.4軟件開發(fā)過程模型(2)它沒有固定的生存期一種極端是扔掉原型;另一種極端是最終產(chǎn)品的一部分即增量原型1.4軟件開發(fā)過程模型(3)從需求分析到最終產(chǎn)品都可作原型,即可為不同目標(biāo)作原型。(4)它必須快速、廉價(jià)。(5)它是迭代過程的集成部分,即每次經(jīng)用戶評(píng)價(jià)后修改、運(yùn)行,不斷重復(fù)雙方認(rèn)可。1.4軟件開發(fā)過程模型4.原型法的評(píng)價(jià)優(yōu)點(diǎn)1.原型法可處理模糊需求,開發(fā)者和用戶可充分通信。2.原型系統(tǒng)可作為培訓(xùn)環(huán)境,有利于用戶培訓(xùn)和開發(fā)同步,開發(fā)過程也是學(xué)習(xí)過程。3.原型給用戶以機(jī)會(huì)更改心中原先設(shè)想的、不盡合理的最終系統(tǒng)。4.原型可低風(fēng)險(xiǎn)開發(fā)柔性較大的計(jì)算機(jī)系統(tǒng)。5.原型增加使系統(tǒng)更易維護(hù)、對(duì)用戶更友好的機(jī)會(huì)。6.原型使總的開發(fā)費(fèi)用降低,時(shí)間縮短。1.4軟件開發(fā)過程模型缺點(diǎn)1.“模型效應(yīng)”或“管中窺豹”。對(duì)于開發(fā)者不熟悉的領(lǐng)域把次要部分當(dāng)作主要框架,做出不切題的原型。2.原型迭代不收斂于開發(fā)者預(yù)先的目標(biāo)。3.原型過快收斂于需求集合,而忽略了一些基本點(diǎn)。4.資源規(guī)劃和管理較為困難,隨時(shí)更新文檔也帶來麻煩。5.長期在原型環(huán)境上開發(fā),只注意得到滿意的原型,容易“遺忘”用戶環(huán)境和原型環(huán)境的差異。三、螺旋模型螺旋模型的基本思想:使用原型及其它方法來盡量減低風(fēng)險(xiǎn)??梢岳斫獬稍诿總€(gè)階段之前都增加了風(fēng)險(xiǎn)分析過程的快速原型模型。螺旋模型分析在螺旋模型結(jié)構(gòu)中,維護(hù)只是螺旋模型的另一個(gè)周期,在維護(hù)和開發(fā)之間本質(zhì)上并沒有區(qū)別,從而解決了做太多測(cè)試或未作足夠測(cè)試所帶來的風(fēng)險(xiǎn)。適用條件內(nèi)部的大規(guī)模軟件的開發(fā)。一般只適用于大規(guī)模軟件的開發(fā)1.5小結(jié)軟件工程的基本概念軟件開發(fā)方法軟件開發(fā)過程模型1.下列活動(dòng)不屬于軟件開發(fā)階段的是().A.需求分析B.概要設(shè)計(jì)C.詳細(xì)設(shè)計(jì)D.測(cè)試2.以下對(duì)軟件開發(fā)基本原理的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 派出所安全教育
- 太原旅游職業(yè)學(xué)院《制藥過程安全與環(huán)境評(píng)價(jià)》2023-2024學(xué)年第二學(xué)期期末試卷
- 廈門演藝職業(yè)學(xué)院《管理學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 信陽藝術(shù)職業(yè)學(xué)院《合唱合唱指揮》2023-2024學(xué)年第二學(xué)期期末試卷
- 四川鐵道職業(yè)學(xué)院《內(nèi)科護(hù)理學(xué)2》2023-2024學(xué)年第二學(xué)期期末試卷
- 防邪教安全教育班會(huì)
- 河北省臨西縣實(shí)驗(yàn)中學(xué)2025年下學(xué)期高三期末教學(xué)質(zhì)量檢測(cè)試題化學(xué)試題試卷含解析
- 河南科技職業(yè)大學(xué)《醫(yī)學(xué)病原學(xué)與免疫學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年四川省攀枝花市重點(diǎn)中學(xué)高三下學(xué)期第一次質(zhì)量檢查語文試題含解析
- 江西工商職業(yè)技術(shù)學(xué)院《面源污染與環(huán)境保護(hù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024-2025學(xué)年北京市東城區(qū)五下數(shù)學(xué)期末檢測(cè)試題含答案
- 2025年河南女子職業(yè)學(xué)院單招職業(yè)技能測(cè)試題庫參考答案
- 農(nóng)網(wǎng)配電營業(yè)工(臺(tái)區(qū)經(jīng)理)技師考試題庫
- 2025年度家暴離婚協(xié)議書范本制作與使用
- 2025年山西晉城市城區(qū)城市建設(shè)投資經(jīng)營有限公司招聘筆試參考題庫附帶答案詳解
- GB/T 44980-2024凍蝦滑
- 人工智能賦能學(xué)校教育的創(chuàng)新與突破
- 紀(jì)檢業(yè)務(wù)知識(shí)培訓(xùn)課件
- 護(hù)理教學(xué)計(jì)劃及設(shè)想?yún)R報(bào)課件
- 寧夏銀川市興慶區(qū)一中2025屆高三第一次模擬考試英語試卷含解析
- 2025深圳勞動(dòng)合同下載
評(píng)論
0/150
提交評(píng)論