二級公共基礎(chǔ)知識:軟件工程概述

字號:

軟件工程(Software Engineering,簡稱為SE)是一門研究用工程化方法構(gòu)建和維護有效的、實用的和高質(zhì)量的軟件的學(xué)科。它涉及到程序設(shè)計語言,數(shù)據(jù)庫,軟件開發(fā)工具,系統(tǒng)平臺,標(biāo)準,設(shè)計模式等方面。
     在現(xiàn)代社會中,軟件應(yīng)用于多個方面。典型的軟件比如有電子郵件,嵌入式系統(tǒng),人機界面,辦公套件,操作系統(tǒng),編譯器,數(shù)據(jù)庫,游戲等。同時,各個行業(yè)幾乎都有計算機軟件的應(yīng)用,比如工業(yè),農(nóng)業(yè),銀行,航空,政府部門等。這些應(yīng)用促進了經(jīng)濟和社會的發(fā)展,使得人們的工作更加高效,同時提高了生活質(zhì)量。
     軟件工程師是對應(yīng)用軟件創(chuàng)造軟件的人們的統(tǒng)稱,軟件工程師按照所處的領(lǐng)域不同可以分為系統(tǒng)分析員,軟件設(shè)計師,系統(tǒng)架構(gòu)師,程序員,測試員等等。人們也常常用程序員來泛指各種軟件工程師。
     軟件工程(SoftWare Engineering)的框架可概括為:目標(biāo)、過程和原則。
     (1)軟件工程目標(biāo):生產(chǎn)具有正確性、可用性以及開銷合宜的產(chǎn)品。正確性指軟件產(chǎn)品達到預(yù)期功能的程度。可用性指軟件基本結(jié)構(gòu)、實現(xiàn)及文檔為用戶可用的程度。開銷合宜是指軟件開發(fā)、運行的整個開銷滿足用戶要求的程度。這些目標(biāo)的實現(xiàn)不論在理論上還是在實踐中均存在很多待解決的問題,它們形成了對過程、過程模型及工程方法選取的約束。
     (2)軟件工程過程:生產(chǎn)一個終能滿足需求且達到工程目標(biāo)的軟件產(chǎn)品所需要的步驟。軟件工程過程主要包括開發(fā)過程、運作過程、維護過程。它們覆蓋了需求、設(shè)計、實現(xiàn)、確認以及維護等活動。需求活動包括問題分析和需求分析。問題分析獲取需求定義,又稱軟件需求規(guī)約。需求分析生成功能規(guī)約。設(shè)計活動一般包括概要設(shè)計和詳細設(shè)計。概要設(shè)計建立整個軟件系統(tǒng)結(jié)構(gòu),包括子系統(tǒng)、模塊以及相關(guān)層次的說明、每一模塊的接口定義。詳細設(shè)計產(chǎn)生程序員可用的模塊說明,包括每一模塊中數(shù)據(jù)結(jié)構(gòu)說明及加工描述。實現(xiàn)活動把設(shè)計結(jié)果轉(zhuǎn)換為可執(zhí)行的程序代碼。確認活動貫穿于整個開發(fā)過程,實現(xiàn)完成后的確認,保證終產(chǎn)品滿足用戶的要求。維護活動包括使用過程中的擴充、修改與完善。伴隨以上過程,還有管理過程、支持過程、培訓(xùn)過程等。
     (3)軟件工程的原則是指圍繞工程設(shè)計、工程支持以及工程管理在軟件開發(fā)過程中必須遵循的原則。
    一、軟件工程概述
     概念:應(yīng)需而生
    軟件工程是一類工程。工程是將理論和知識應(yīng)用于實踐的科學(xué)。就軟件工程而言,它借鑒了傳統(tǒng)工程的原則和方法,以求高效地開發(fā)高質(zhì)量軟件。其中應(yīng)用了計算機科學(xué)、數(shù)學(xué)和管理科學(xué)。計算機科學(xué)和數(shù)學(xué)用于構(gòu)造模型與算法,工程科學(xué)用于制定規(guī)范、設(shè)計范型、評估成本及確定權(quán)衡,管理科學(xué)用于計劃、資源、質(zhì)量和成本的管理。
     軟件工程這一概念,主要是針對20世紀60年代“軟件危機”而提出的。它首次出現(xiàn)在1968年NATO(北大西洋公約組織)會議上。自這一概念提出以來,圍繞軟件項目,開展了有關(guān)開發(fā)模型、方法以及支持工具的研究。其主要成果有:提出了瀑布模型,開發(fā)了一些結(jié)構(gòu)化程序設(shè)計語言(例如PASCAL語言,Ada語言)、結(jié)構(gòu)化方法等。并且圍繞項目管理提出了費用估算、文檔復(fù)審等方法和工具。綜觀60年代末至80年代初,其主要特征是,前期著重研究系統(tǒng)實現(xiàn)技術(shù),后期開始強調(diào)開發(fā)管理和軟件質(zhì)量。
     70年代初,自“軟件工廠”這一概念提出以來,主要圍繞軟件過程以及軟件復(fù)用,開展了有關(guān)軟件生產(chǎn)技術(shù)和軟件生產(chǎn)管理的研究與實踐。其主要成果有:提出了應(yīng)用廣泛的面向?qū)ο笳Z言以及相關(guān)的面向?qū)ο蠓椒ǎ罅﹂_展了計算機輔助軟件工程的研究與實踐。尤其是近幾年來,針對軟件復(fù)用及軟件生產(chǎn),軟件構(gòu)件技術(shù)以及軟件質(zhì)量控制技術(shù)、質(zhì)量保證技術(shù)得到了廣泛的應(yīng)用。目前各個軟件企業(yè)都十分重視資質(zhì)認證,并想通過這些工作進行企業(yè)管理和技術(shù)的提升。軟件工程所涉及的要素可概括如下:
     根據(jù)這一框架,可以看出:軟件工程涉及了軟件工程的目標(biāo)、軟件工程原則和軟件工程活動。
     目標(biāo):我的眼里只有“產(chǎn)品”
     軟件工程的主要目標(biāo)是:生產(chǎn)具有正確性、可用性以及開銷合宜的產(chǎn)品。正確性意指軟件產(chǎn)品達到預(yù)期功能的程度??捎眯灾杠浖窘Y(jié)構(gòu)、實現(xiàn)及文檔為用戶可用的程度。開銷合宜性是指軟件開發(fā)、運行的整個開銷滿足用戶要求的程度。這些目標(biāo)的實現(xiàn)不論在理論上還是在實踐中均存在很多問題有待解決,它們形成了對過程、過程模型及工程方法選取的約束。
     軟件工程活動是“生產(chǎn)一個終滿足需求且達到工程目標(biāo)的軟件產(chǎn)品所需要的步驟”。主要包括需求、設(shè)計、實現(xiàn)、確認以及支持等活動。需求活動包括問題分析和需求分析。問題分析獲取需求定義,又稱軟件需求規(guī)約。需求分析生成功能規(guī)約。設(shè)計活動一般包括概要設(shè)計和詳細設(shè)計。概要設(shè)計建立整個軟件體系結(jié)構(gòu),包括子系統(tǒng)、模塊以及相關(guān)層次的說明、每一模塊接口定義。詳細設(shè)計產(chǎn)生程序員可用的模塊說明,包括每一模塊中數(shù)據(jù)結(jié)構(gòu)說明及加工描述。實現(xiàn)活動把設(shè)計結(jié)果轉(zhuǎn)換為可執(zhí)行的程序代碼。確認活動貫穿于整個開發(fā)過程,實現(xiàn)完成后的確認,保證終產(chǎn)品滿足用戶的要求。支持活動包括修改和完善。伴隨以上活動,還有管理過程、支持過程、培訓(xùn)過程等。