軟件工程介紹

建議學(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)化的方法具體分成了六個階段:

  1. 問題的定義及規(guī)劃:開發(fā)方調(diào)研用戶需求及用戶環(huán)境,開發(fā)方和需求方論證項目的技術(shù)、經(jīng)濟、市場等可行性并制定項目初步計劃。
  2. 需求分析:開發(fā)方確定系統(tǒng)的運行環(huán)境、建立邏輯模型、確定系統(tǒng)的功能和性能要求。
  3. 軟件設(shè)計:
    1). 概要設(shè)計:建立系統(tǒng)總體結(jié)構(gòu)、劃分功能模塊、定義各個功能模塊的接口,制定測試計劃。
    2). 詳細設(shè)計:設(shè)計各個模塊的具體實現(xiàn)算法,確定各個模塊間的詳細接口,制定測試方案。
  4. 程序編碼:編寫程序源代碼、進行模塊測試和調(diào)試,編寫用戶手冊。
  5. 軟件測試:集成測試、編寫測試報告
  6. 運行維護:日常的運維工作及后續(xù)的維護升級。

一般而言,軟件系統(tǒng)的生命周期在10年左右。過了10年后,不是說軟件系統(tǒng)就不能用了,而是可能會付出更大的成本去維護。也就是說超過投入產(chǎn)出比。并且投入之后還不一定能滿足現(xiàn)有業(yè)務(wù)的需求。一般這個時候,會用新技術(shù)去架構(gòu)之前的軟件系統(tǒng),重新開發(fā)。

軟件的開發(fā)模型

  1. 瀑布式開發(fā)流程


    瀑布式開發(fā)流程(Waterfall Model)

    瀑布式開發(fā)流程(Winston Royce 1970)是最早得到廣泛承認的開發(fā)流程。這是一個線性的模式,只有完成了前一個步驟才能開始下一個步驟。比如說,在開始設(shè)計之前,必須先完成需求分析。如果有信息未被覆蓋或者發(fā)現(xiàn)了問題,那么就得返回上一個階段并進行適當?shù)男薷摹?/p>

  2. 螺旋式開發(fā)流程


    螺旋式開發(fā)流程

    使用螺旋式開發(fā)流程,我們能夠在早期就提供出產(chǎn)品的原型進行評估。然而,它之所以引入“迭代”的思想其實是因為需要找出項目開發(fā)存在的風(fēng)險并加以控制。風(fēng)險分析需要有經(jīng)驗的專業(yè)人士才能得出正確的結(jié)果,如果未能夠及時標識風(fēng)險,勢必造成重大損失。
    此外,這種階段式迭代的流程仍然存在周期較長、開發(fā)成本較高的問題。因此它更多適用于大型軟件項目。

  3. 迭代式開發(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)的干系人。

  4. 敏捷式開發(fā)


    敏捷式開發(fā)

    敏捷式開發(fā)以用戶的需求進化為核心,采用迭代、循序漸進的方法進行軟件開發(fā)。在敏捷式開發(fā)中,軟件項目在構(gòu)建初期被切分成多個子項目,各個子項目的成果都經(jīng)過測試,具備可視、可集成和可運行使用的特征。換言之,就是把一個大項目分為多個相互聯(lián)系,但也可獨立運行的小項目,并分別完成,在此過程中軟件一直處于可使用狀態(tài)。

軟件工程中常用工具

  1. WBS


    WBS
    WBS

    工作分解結(jié)構(gòu)(Work Breakdown Structure,簡稱WBS)跟因數(shù)分解是一個原理,就是把一個項目,按一定的原則分解,項目分解成任務(wù),任務(wù)再分解成一項項工作,再把一項項工作分配到每個人的日?;顒又校钡椒纸獠幌氯橹?。
    即:項目→任務(wù)→工作→日常活動
    WBS總是處于計劃過程的中心,也是制定進度計劃、資源需求、成本預(yù)算、風(fēng)險管理計劃和采購計劃等的重要基礎(chǔ)。WBS同時也是控制項目變更的重要基礎(chǔ)。項目范圍是由WBS定義的,所以WBS也是一個項目的綜合工具。

  2. DFD


    DFD

    數(shù)據(jù)流圖(Data Flow Diagram)簡稱DFD,它從數(shù)據(jù)傳遞和加工角度,以圖形方式來表達系統(tǒng)的邏輯功能、數(shù)據(jù)在系統(tǒng)內(nèi)部的邏輯流向和邏輯變換過程,是結(jié)構(gòu)化系統(tǒng)分析方法的主要表達工具及用于表示軟件模型的一種圖示方法。

  3. 甘特圖


    甘特圖
    甘特圖

    甘特圖(Gantt chart)又稱為橫道圖、條狀圖(Bar chart)。其通過條狀圖來顯示項目,進度,和其他時間相關(guān)的系統(tǒng)進展的內(nèi)在關(guān)系隨著時間進展的情況。一般情況下,WBS會結(jié)合甘特圖,這樣可以更有效的管理項目的各個task的進度。

  4. 時序圖


    時序圖

    時序圖(Sequence Diagram)是顯示對象之間交互的圖,這些對象是按時間順序排列的。順序圖中顯示的是參與交互的對象及其對象之間消息交互的順序。時序圖中包括的建模元素主要有:對象(Actor)、生命線(Lifeline)、控制焦點(Focus of control)、消息(Message)等等。

總結(jié)

希望大家通過這篇文章,大概知道一下有這么一個工具或者模型。以便在他人提及這些名詞時能有一個概念。同時也為各位想走軟件管理者的學(xué)員做一個入門介紹。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,355評論 25 708
  • PMP第五版考點匯總沖刺版 第一章引論 P2:《PMI道德與專業(yè)行為規(guī)范》詳細描述從業(yè)者在責(zé)任、尊重、公正、誠實方...
    文小夢閱讀 23,737評論 5 102
  • 1.測試與軟件模型 軟件開發(fā)生命周期模型指的是軟件開發(fā)全過程、活動和任務(wù)的結(jié)構(gòu)性框架。軟件項目的開發(fā)包括:需求、設(shè)...
    宇文臭臭閱讀 6,882評論 5 101
  • 哪有拆不開的快遞 哪有擰不開的礦泉水瓶 哪有那么可愛的你 快遞會拆開的 水瓶會擰開的 那么可愛的你 可...
    你當溫柔閱讀 195評論 0 0
  • 【默默耕耘】2017.0220 day 89 Monday 1.古詩背誦:早發(fā)白帝城,今天開學(xué)了,一切步入正軌,吃...
    ysmalina閱讀 100評論 0 0

友情鏈接更多精彩內(nèi)容