1. 程式人生 > >【軟體工程導論】 第一章 軟體工程學概述

【軟體工程導論】 第一章 軟體工程學概述

引言:文章是按照markdown格式寫的,可直接複製到markdown上進行檢視

#第一章 軟體工程學概述#
------------------
###1.1 軟體危機###

    軟體危機的介紹:軟體危機是指在計算機開發和維護過程中所遇到的一系列嚴重的問題
    
    主要包含以下兩個問題:
            1.如何開發軟體,以滿足對軟體日益增長的需求
            2.如何維護數量不斷膨脹的已有軟體
    
    軟體危機的典型表現:
            1.對軟體開發成本和進度的估計常常不準確
            2.使用者對“已完成的”軟體系統不滿意的現象經常發生
            3.軟體產品的質量往往靠不住
            4.軟體常常是不可維護的
            5.軟體通常沒有適當的文件資料
            6.軟體成本在計算機系統總成本中所佔的比例逐年上升
            7.軟體開發生產的速率,跟不上計算機應用迅速普及深入的趨勢

    產生軟體危機的原因
        一方面與軟體本身的特點有關,另一方面也與軟體開發與維護的方法不正確。

    消除軟體危機的途徑
        1.對計算機軟體有一個正確的認識。必須充分認識到軟體開發不是某種個體勞動的神祕技巧,而應該是一種組織良好,管理嚴格,各類人員協同配合,共同完成的工程專案。
        
        2.應該推廣使用在實踐中總結出來的開發軟體的成功的技術和方法,並且研究探索更好更有效的技術和方法,儘快消除在計算機系統早期發展階段行程的一些錯誤概念和做法。
        
        3.應該開發和使用更好的軟體工具。
        
        4.綜上,既要有技術措施,又要有必要的組織管理措施。

###1.2 軟體工程###
    

    軟體工程的介紹:軟體工程是指導計算機軟體開發和維護的一門工程學科。
    
    軟體工程的出現原因:軟體工程是為了解決軟體危機而出現的

    軟體工程的本質特性

        (1)軟體工程關注於大型程式的構造

        (2)軟體工程的中心課題是控制複雜性

        (3)軟體經常變化
    
        (4)開發軟體的效率非常重要
    
        (5)和諧地合作是開發軟體的關鍵
    
        (6)軟體必須有效地支援它的使用者
        
        (7)軟體工程領域中通常由具有一種文化背景的人代替具有另一種文化背景的人創造產品。

     軟體工程的基本原理

        1.用分階段的生命週期計劃嚴格管理
        
        2.堅持進行階段評審
        
        3.實行嚴格的產品控制
        
        4.採用現代程式技術
        
        5.結果應能清楚地審查
        
        6.開發小組人員應該少而精
        
        7.承認不斷改進軟體工程實踐的必要性

    
        二、軟體工程三要素
        軟體工程是以提高軟體質量和生產率為目標,由過程,方法,工具,三個要素組成。

      




        1、軟體工程方法:解決軟體開發“如何做”的問題。
        2、軟體工程過程:管理和控制產品質量的關鍵。
        3、軟體工程工具:提供軟體支撐環境,輔助軟體開發過程的完成。
        4、軟體工程中的質量是最重要的,它是軟體工程的目標。

        軟體工程方法學
        1.傳統方法學
        
            傳統方法學也稱為生命週期方法學或結構化範型。它採用結構化技術(結構化分析,結構化設計,結構化實現)來完成軟體開發的各項任務,並使用適當的軟體工具或軟體工程環境來支援結構化技術的運用。

        2.面向物件方法學
        
            面向物件方法把資料和行為看成是同等重要的,它是一種以資料為主線,把資料和對資料操作緊密地結合起來的方法。
        
            它的出發點和基本原則是儘量模擬人類習慣的思維方式,使開發軟體的方法與過程儘可能接近人類認識世界,解決問題的方法與過程,從而使描述問題的問題控制元件與實現問題的解控制元件在結構上儘可能的一致。

###1.3軟體生命週期###
    

    軟體生命週期的概念:
        
        軟體生命週期由軟體定義,軟體開發和執行維護(也稱執行維護)3個時期組成,每個時期又進一步劃分為若干個階段。

    每個時期的任務

        1.軟體定義時期的任務:確定軟體開發工程必須完成的總目標;確定工程的可行性;匯出實現工程目標應該採用的策略以及系統必須完成的功能;估計完成該項工程需要的資源和成本,並且制定工程進度表。

        2.開發時期的任務:具體設計和實現在前一個時期定義的軟體。

        3.維護時期的任務:使軟體持久地滿足使用者的需要。

###1.4軟體過程###

        1.軟體過程的定義
        
            軟體過程描述為了開發出客戶需要的軟體,什麼人,在什麼時候,做什麼事以及怎樣做這些事以實現某一個特定的具體目標。
        
        2.生命週期模型
        
            生命週期模型簡潔地描述軟體過程。生命週期軟體模型規定了把生命週期劃分成那些階段以及各個階段的執行順序。
        
        3.常見的生命週期模型
        
        (1)瀑布模型 (2)快速還原模型(3)增量模型 (4)快速增量模型 (4)螺旋模型 (5)噴泉模型 
        
        4.Rational統一過程
        
            Rational統一過程是由Rational軟體公司推出的一種完整而且完美的軟體開發過程。
        
        5.敏捷過程與極限程式設計
        
            敏捷過程主要是為了使軟體開發團隊具有高效工作和快速響應變化的能力。
        
            極限程式設計是把好的開發實踐運用到極致。
        
        6.微軟過程
        
            微軟過程是微軟公司自己獨特的軟體開發過程。
        
        7.常見三種週期模型的優點
                    
            瀑布模型的優點:
        
                1.可強迫開發人員採用規範的方法(例如:結構化技術)
        
                2.嚴格地規定了每個階段必須提交的文件;
                
                3.要求每個階段交出的所有產品都必須經過質量保證小組的仔細驗證
        
            快速原形模型的優點:
                
                1.有助於保證使用者的真實需要得到滿足

            增量模型的優點:
                
                1.能在較短的時間內向使用者提交可完成部分工作的產品
                
                2.逐步增加產品功能可以使使用者有較充裕的時間學習和適應新產品,從而減少
                一個全新的軟體可能給客戶組織帶來的衝擊。
                
                3.軟體的可維護性明顯好於封閉結構的軟體