建議學(xué)習(xí)時長:60分鐘
學(xué)習(xí)方式:了解
學(xué)習(xí)目標
- 了解軟件生產(chǎn)的各個周期。
- 了解軟件生產(chǎn)中常用的工具。
詳細介紹
什么是軟件工程
軟件工程是一門研究用工程化方法構(gòu)建和維護有效的、實用的和高質(zhì)量的軟件的學(xué)科。它涉及程序設(shè)計語言、數(shù)據(jù)庫、軟件開發(fā)工具、系統(tǒng)平臺、標準、設(shè)計模式等方面。
軟件的生命周期
軟件的生命周期以結(jié)構(gòu)化的方法具體分成了六個階段:
- 問題的定義及規(guī)劃:開發(fā)方調(diào)研用戶需求及用戶環(huán)境,開發(fā)方和需求方論證項目的技術(shù)、經(jīng)濟、市場等可行性并制定項目初步計劃。
- 需求分析:開發(fā)方確定系統(tǒng)的運行環(huán)境、建立邏輯模型、確定系統(tǒng)的功能和性能要求。
- 軟件設(shè)計:
1). 概要設(shè)計:建立系統(tǒng)總體結(jié)構(gòu)、劃分功能模塊、定義各個功能模塊的接口,制定測試計劃。
2). 詳細設(shè)計:設(shè)計各個模塊的具體實現(xiàn)算法,確定各個模塊間的詳細接口,制定測試方案。 - 程序編碼:編寫程序源代碼、進行模塊測試和調(diào)試,編寫用戶手冊。
- 軟件測試:集成測試、編寫測試報告
- 運行維護:日常的運維工作及后續(xù)的維護升級。
一般而言,軟件系統(tǒng)的生命周期在10年左右。過了10年后,不是說軟件系統(tǒng)就不能用了,而是可能會付出更大的成本去維護。也就是說超過投入產(chǎn)出比。并且投入之后還不一定能滿足現(xiàn)有業(yè)務(wù)的需求。一般這個時候,會用新技術(shù)去架構(gòu)之前的軟件系統(tǒng),重新開發(fā)。
軟件的開發(fā)模型
-
瀑布式開發(fā)流程
瀑布式開發(fā)流程(Waterfall Model)
瀑布式開發(fā)流程(Winston Royce 1970)是最早得到廣泛承認的開發(fā)流程。這是一個線性的模式,只有完成了前一個步驟才能開始下一個步驟。比如說,在開始設(shè)計之前,必須先完成需求分析。如果有信息未被覆蓋或者發(fā)現(xiàn)了問題,那么就得返回上一個階段并進行適當?shù)男薷摹?/p>
-
螺旋式開發(fā)流程
螺旋式開發(fā)流程
使用螺旋式開發(fā)流程,我們能夠在早期就提供出產(chǎn)品的原型進行評估。然而,它之所以引入“迭代”的思想其實是因為需要找出項目開發(fā)存在的風(fēng)險并加以控制。風(fēng)險分析需要有經(jīng)驗的專業(yè)人士才能得出正確的結(jié)果,如果未能夠及時標識風(fēng)險,勢必造成重大損失。
此外,這種階段式迭代的流程仍然存在周期較長、開發(fā)成本較高的問題。因此它更多適用于大型軟件項目。 -
迭代式開發(fā)
迭代式開發(fā)
迭代式開發(fā),摒棄了傳統(tǒng)的需求分析,設(shè)計,編碼,測試的流程,而是將整個生命周期變成若干個沖刺(Sprint)階段,而每一個階段都是由以上若干或者全部傳統(tǒng)的流程組成,在每一個階段中,都會包含下面四個階段:初始階段,細化階段,構(gòu)建階段,交付階段。在初始階段中,確認本次沖刺的范圍,邊界,系統(tǒng)選擇的架構(gòu),計劃,以及所需要的資源等信息。在細化階段中,對問題進行建域,創(chuàng)建開發(fā)案例,創(chuàng)建模板以及準備工具等。在構(gòu)建階段的主要任務(wù)就是完成構(gòu)建的開發(fā)并且進行測試,將完成的構(gòu)建集成為產(chǎn)品,并且測試所有的功能(CI)。在交付階段,主要是完成本次沖刺,將軟件產(chǎn)品交付給相關(guān)的干系人。
-
敏捷式開發(fā)
敏捷式開發(fā)
敏捷式開發(fā)以用戶的需求進化為核心,采用迭代、循序漸進的方法進行軟件開發(fā)。在敏捷式開發(fā)中,軟件項目在構(gòu)建初期被切分成多個子項目,各個子項目的成果都經(jīng)過測試,具備可視、可集成和可運行使用的特征。換言之,就是把一個大項目分為多個相互聯(lián)系,但也可獨立運行的小項目,并分別完成,在此過程中軟件一直處于可使用狀態(tài)。
軟件工程中常用工具
-
WBS
WBS
工作分解結(jié)構(gòu)(Work Breakdown Structure,簡稱WBS)跟因數(shù)分解是一個原理,就是把一個項目,按一定的原則分解,項目分解成任務(wù),任務(wù)再分解成一項項工作,再把一項項工作分配到每個人的日?;顒又校钡椒纸獠幌氯橹?。
即:項目→任務(wù)→工作→日常活動
WBS總是處于計劃過程的中心,也是制定進度計劃、資源需求、成本預(yù)算、風(fēng)險管理計劃和采購計劃等的重要基礎(chǔ)。WBS同時也是控制項目變更的重要基礎(chǔ)。項目范圍是由WBS定義的,所以WBS也是一個項目的綜合工具。 -
DFD
DFD
數(shù)據(jù)流圖(Data Flow Diagram)簡稱DFD,它從數(shù)據(jù)傳遞和加工角度,以圖形方式來表達系統(tǒng)的邏輯功能、數(shù)據(jù)在系統(tǒng)內(nèi)部的邏輯流向和邏輯變換過程,是結(jié)構(gòu)化系統(tǒng)分析方法的主要表達工具及用于表示軟件模型的一種圖示方法。
-
甘特圖
甘特圖
甘特圖(Gantt chart)又稱為橫道圖、條狀圖(Bar chart)。其通過條狀圖來顯示項目,進度,和其他時間相關(guān)的系統(tǒng)進展的內(nèi)在關(guān)系隨著時間進展的情況。一般情況下,WBS會結(jié)合甘特圖,這樣可以更有效的管理項目的各個task的進度。
-
時序圖
時序圖
時序圖(Sequence Diagram)是顯示對象之間交互的圖,這些對象是按時間順序排列的。順序圖中顯示的是參與交互的對象及其對象之間消息交互的順序。時序圖中包括的建模元素主要有:對象(Actor)、生命線(Lifeline)、控制焦點(Focus of control)、消息(Message)等等。
總結(jié)
希望大家通過這篇文章,大概知道一下有這么一個工具或者模型。以便在他人提及這些名詞時能有一個概念。同時也為各位想走軟件管理者的學(xué)員做一個入門介紹。




