建議學(xué)習(xí)時(shí)長:60分鐘
學(xué)習(xí)方式:了解
學(xué)習(xí)目標(biāo)
- 了解軟件生產(chǎn)的各個(gè)周期燕刻。
- 了解軟件生產(chǎn)中常用的工具。
詳細(xì)介紹
什么是軟件工程
軟件工程是一門研究用工程化方法構(gòu)建和維護(hù)有效的、實(shí)用的和高質(zhì)量的軟件的學(xué)科忌怎。它涉及程序設(shè)計(jì)語言籍滴、數(shù)據(jù)庫孽惰、軟件開發(fā)工具勋功、系統(tǒng)平臺(tái)狂鞋、標(biāo)準(zhǔn)、設(shè)計(jì)模式等方面骚揍。
軟件的生命周期
軟件的生命周期以結(jié)構(gòu)化的方法具體分成了六個(gè)階段:
- 問題的定義及規(guī)劃:開發(fā)方調(diào)研用戶需求及用戶環(huán)境信不,開發(fā)方和需求方論證項(xiàng)目的技術(shù)抽活、經(jīng)濟(jì)锰什、市場等可行性并制定項(xiàng)目初步計(jì)劃。
- 需求分析:開發(fā)方確定系統(tǒng)的運(yùn)行環(huán)境卵牍、建立邏輯模型糊昙、確定系統(tǒng)的功能和性能要求释牺。
- 軟件設(shè)計(jì):
1). 概要設(shè)計(jì):建立系統(tǒng)總體結(jié)構(gòu)、劃分功能模塊没咙、定義各個(gè)功能模塊的接口祭刚,制定測(cè)試計(jì)劃。
2). 詳細(xì)設(shè)計(jì):設(shè)計(jì)各個(gè)模塊的具體實(shí)現(xiàn)算法暗甥,確定各個(gè)模塊間的詳細(xì)接口撤防,制定測(cè)試方案棒口。 - 程序編碼:編寫程序源代碼、進(jìn)行模塊測(cè)試和調(diào)試无牵,編寫用戶手冊(cè)合敦。
- 軟件測(cè)試:集成測(cè)試、編寫測(cè)試報(bào)告
- 運(yùn)行維護(hù):日常的運(yùn)維工作及后續(xù)的維護(hù)升級(jí)保檐。
一般而言夜只,軟件系統(tǒng)的生命周期在10年左右扔亥。過了10年后谈为,不是說軟件系統(tǒng)就不能用了,而是可能會(huì)付出更大的成本去維護(hù)粘茄。也就是說超過投入產(chǎn)出比柒瓣。并且投入之后還不一定能滿足現(xiàn)有業(yè)務(wù)的需求吠架。一般這個(gè)時(shí)候傍药,會(huì)用新技術(shù)去架構(gòu)之前的軟件系統(tǒng),重新開發(fā)褪秀。
軟件的開發(fā)模型
-
瀑布式開發(fā)流程
瀑布式開發(fā)流程(Waterfall Model)
瀑布式開發(fā)流程(Winston Royce 1970)是最早得到廣泛承認(rèn)的開發(fā)流程媒吗。這是一個(gè)線性的模式闸英,只有完成了前一個(gè)步驟才能開始下一個(gè)步驟甫何。比如說辙喂,在開始設(shè)計(jì)之前巍耗,必須先完成需求分析。如果有信息未被覆蓋或者發(fā)現(xiàn)了問題炬太,那么就得返回上一個(gè)階段并進(jìn)行適當(dāng)?shù)男薷摹?/p>
-
螺旋式開發(fā)流程
螺旋式開發(fā)流程
使用螺旋式開發(fā)流程,我們能夠在早期就提供出產(chǎn)品的原型進(jìn)行評(píng)估可缚。然而,它之所以引入“迭代”的思想其實(shí)是因?yàn)樾枰页鲰?xiàng)目開發(fā)存在的風(fēng)險(xiǎn)并加以控制知给。風(fēng)險(xiǎn)分析需要有經(jīng)驗(yàn)的專業(yè)人士才能得出正確的結(jié)果炼鞠,如果未能夠及時(shí)標(biāo)識(shí)風(fēng)險(xiǎn)轰胁,勢(shì)必造成重大損失赃阀。
此外,這種階段式迭代的流程仍然存在周期較長观游、開發(fā)成本較高的問題懂缕。因此它更多適用于大型軟件項(xiàng)目搪柑。 -
迭代式開發(fā)
迭代式開發(fā)
迭代式開發(fā)弱睦,摒棄了傳統(tǒng)的需求分析渊额,設(shè)計(jì)旬迹,編碼舱权,測(cè)試的流程宴倍,而是將整個(gè)生命周期變成若干個(gè)沖刺(Sprint)階段,而每一個(gè)階段都是由以上若干或者全部傳統(tǒng)的流程組成俗他,在每一個(gè)階段中兆衅,都會(huì)包含下面四個(gè)階段:初始階段羡亩,細(xì)化階段畏铆,構(gòu)建階段,交付階段吉殃。在初始階段中辞居,確認(rèn)本次沖刺的范圍楷怒,邊界,系統(tǒng)選擇的架構(gòu)瓦灶,計(jì)劃鸠删,以及所需要的資源等信息。在細(xì)化階段中贼陶,對(duì)問題進(jìn)行建域刃泡,創(chuàng)建開發(fā)案例,創(chuàng)建模板以及準(zhǔn)備工具等碉怔。在構(gòu)建階段的主要任務(wù)就是完成構(gòu)建的開發(fā)并且進(jìn)行測(cè)試捅僵,將完成的構(gòu)建集成為產(chǎn)品,并且測(cè)試所有的功能(CI)上荡。在交付階段叁征,主要是完成本次沖刺,將軟件產(chǎn)品交付給相關(guān)的干系人啤呼。
-
敏捷式開發(fā)
敏捷式開發(fā)
敏捷式開發(fā)以用戶的需求進(jìn)化為核心惕蹄,采用迭代、循序漸進(jìn)的方法進(jìn)行軟件開發(fā)。在敏捷式開發(fā)中鸥滨,軟件項(xiàng)目在構(gòu)建初期被切分成多個(gè)子項(xiàng)目老速,各個(gè)子項(xiàng)目的成果都經(jīng)過測(cè)試,具備可視、可集成和可運(yùn)行使用的特征箭窜。換言之婆咸,就是把一個(gè)大項(xiàng)目分為多個(gè)相互聯(lián)系,但也可獨(dú)立運(yùn)行的小項(xiàng)目憨闰,并分別完成,在此過程中軟件一直處于可使用狀態(tài)训裆。
軟件工程中常用工具
-
WBS
WBS
工作分解結(jié)構(gòu)(Work Breakdown Structure变姨,簡稱WBS)跟因數(shù)分解是一個(gè)原理渔呵,就是把一個(gè)項(xiàng)目,按一定的原則分解,項(xiàng)目分解成任務(wù)双饥,任務(wù)再分解成一項(xiàng)項(xiàng)工作阀趴,再把一項(xiàng)項(xiàng)工作分配到每個(gè)人的日筹鄙#活動(dòng)中攻柠,直到分解不下去為止微驶。
即:項(xiàng)目→任務(wù)→工作→日常活動(dòng)
WBS總是處于計(jì)劃過程的中心凶杖,也是制定進(jìn)度計(jì)劃、資源需求解虱、成本預(yù)算艰匙、風(fēng)險(xiǎn)管理計(jì)劃和采購計(jì)劃等的重要基礎(chǔ)。WBS同時(shí)也是控制項(xiàng)目變更的重要基礎(chǔ)。項(xiàng)目范圍是由WBS定義的窃这,所以WBS也是一個(gè)項(xiàng)目的綜合工具。 -
DFD
DFD
數(shù)據(jù)流圖(Data Flow Diagram)簡稱DFD,它從數(shù)據(jù)傳遞和加工角度,以圖形方式來表達(dá)系統(tǒng)的邏輯功能、數(shù)據(jù)在系統(tǒng)內(nèi)部的邏輯流向和邏輯變換過程,是結(jié)構(gòu)化系統(tǒng)分析方法的主要表達(dá)工具及用于表示軟件模型的一種圖示方法岂丘。
-
甘特圖
甘特圖
甘特圖(Gantt chart)又稱為橫道圖扔茅、條狀圖(Bar chart)玖瘸。其通過條狀圖來顯示項(xiàng)目蔑匣,進(jìn)度趴久,和其他時(shí)間相關(guān)的系統(tǒng)進(jìn)展的內(nèi)在關(guān)系隨著時(shí)間進(jìn)展的情況座硕。一般情況下蜘拉,WBS會(huì)結(jié)合甘特圖,這樣可以更有效的管理項(xiàng)目的各個(gè)task的進(jìn)度。
-
時(shí)序圖
時(shí)序圖
時(shí)序圖(Sequence Diagram)是顯示對(duì)象之間交互的圖脑溢,這些對(duì)象是按時(shí)間順序排列的社牲。順序圖中顯示的是參與交互的對(duì)象及其對(duì)象之間消息交互的順序。時(shí)序圖中包括的建模元素主要有:對(duì)象(Actor)、生命線(Lifeline)温圆、控制焦點(diǎn)(Focus of control)、消息(Message)等等。
總結(jié)
希望大家通過這篇文章诽偷,大概知道一下有這么一個(gè)工具或者模型眠冈。以便在他人提及這些名詞時(shí)能有一個(gè)概念。同時(shí)也為各位想走軟件管理者的學(xué)員做一個(gè)入門介紹。