上海交通大學 軟件工程 普通話 簡體中文 DVD 只於電腦播放 軟件工程是分析、設計、實現、與維護軟件系統的一組規範,它指導著軟件開發人員以工程化的手段規範地開發高質量的軟件。 今天,計算機軟件在世界上的應用越來越普及,影響著我們工作和生活的方方面面。然而,軟件的開發卻常常以失敗而告終。在這門課中,我們將集中從構建和維護軟件系統的實踐的角度來講授軟件工程的整個知識體系。 本門課的內容將基於國際軟件工程知識體系(SWEBOK),參考軟件工程方面卓有建樹的軟件工程師和計算機專家的著作和論文,並引入軟件工程發展的最新成果、前沿技術、最佳實踐、文檔模板和軟件工具。本門課將採用“案例-原理-實踐”的教學方法,以及多媒體和雙語教學手段。 軟件工程概述 軟件工程是一門將理論和知識應用於實踐的工程,它藉鑑了傳統工程的原則和方法,以求高效地開發高質量軟件。除了工程,軟件工程還綜合應用了計算機科學、數學和管理科學。計算機科學和數學用於構造模型與算法,工程科學用於製定規範、分析與設計、評估成本及確定權衡,管理科學用於計劃、資源、質量和成本的管理。 軟件工程這一概念,主要是針對20世紀60年代“軟件危機”而提出的。它首次出現在1968年NATO(北大西洋公約組織)會議上。自這一概念提出以來,圍繞軟件項目,開展了有關開發模型、方法以及支持工具的研究。其主要成果有:提出了瀑布模型,開發了一些結構化程序設計語言(例如PASCAL語言,Ada語言)、結構化方法等。並且,圍繞項目管理提出了費用估算、文檔複審等方法和工具。綜觀60年代末至80年代初,其主要特徵是,前期著重研究系統實現技術,後期開始強調開發管理和軟件質量。 70年代初,自“軟件工廠”這一概念提出以來,主要圍繞軟件過程以及軟件復用,開展了有關軟件生產技術和軟件生產管理的研究與實踐。其主要成果有:提出了應用廣泛的面向對象語言以及相關的面向對象方法,大力開展了計算機輔助軟件工程(CASE)的研究與實踐。尤其是近幾年來,針對軟件復用及軟件生產,軟件構件技術以及軟件質量控制技術、質量保證技術得到了廣泛的應用。軟件工程所涉及的要素可概括如下: 根據這一框架,可以看出:軟件工程涉及了軟件工程的目標、軟件工程原則和軟件工程活動。 軟件工程的主要目標是:生產具有正確性、可用性以及開銷合宜的產品。正確性意指軟件產品達到預期功能的程度。可用性指軟件基本結構、實現及文檔為用戶可用的程度。開銷合宜性是指軟件開發、運行的整個開銷滿足用戶要求的程度。這些目標的實現不論在理論上還是在實踐中均存在很多問題有待解決,它們形成了對過程、過程模型及工程方法選取的約束。 軟件工程活動是“開發一個最終滿足需求且達到工程目標的軟件產品所需要的步驟”。主要包括需求、設計、實現、確認以及支持等活動。需求活動包括問題分析和需求分析。設計活動一般包括概要設計和詳細設計。概要設計建立整個軟件體系結構,包括子系統、模塊以及相關層次的說明、每一模塊接口定義。詳細設計產生程序員可用的模塊說明,包括每一模塊中數據結構說明及加工描述。實現活動把設計模型轉換為可執行的程序代碼。確認活動貫穿於整個開發過程,實現完成後的確認,保證最終產品滿足用戶的要求。支持活動包括修改和完善。伴隨以上活動,還有管理過程、支持過程、培訓過程等。 ...