軟體工程精要概述1-概述
拒絕囉裡八嗦的廢話,坑爹不是時間,是青春.
1. 軟體工程定義:
軟體工程是1968年北大西洋公約組織的工作會議上首先提出“軟體工程”的概念,要用工程化的思想來開發軟體.用科學知識和技術原理來定義、開發、維護軟體的一 門科學
1.1軟體工程的性質:
軟體工程是一門綜合性的交叉學科,涉及電腦科學、工程科學、管理科學、數學等領域
電腦科學中的研究成果均可用於軟體工程,但電腦科學著重於原理和理論,而軟體工程著重於如何建造一個軟體系統
軟體工程要用工程科學中的觀點來進行費用估算、制定進度、制定計劃和方案
軟體工程要用管理科學的方法和原理進行軟體的生產和管理
軟禁工程要用數學的方法建立軟體開發中各個種模型和各種演算法
1.2軟體工程目標:
目的是成功的建造一個大型軟體系統
所謂成功,是要達到
付出較低的開發成本
達到要求的軟體功能
取得較好的軟體效能
開發的軟體易於移植
需要較低的維護費用
能按時完成開發任務,及時交付使用
開發的軟體可靠性高
1.3軟體工程內容
主要是軟體開發技術和軟體管理兩個方面
軟體開發技術中主要研究軟體開發方法、軟體開發過程、軟體開發工具和環境
軟體開發管理中主要研究軟體管理學、軟體經濟學、軟體心理學
關於軟體生存週期模型、方法和工具.
2: 軟體生存週期各種模型
描述軟體開發過程中各種活動如何執行的模型
1. 瀑布模型
將軟體生存週期各個活動規定為依線性順序連線的若干階段的模型
包括所有的軟體生存週期環節,規定了由前至後、相互銜接的固定次序
缺點:
理想的線性開發模式,缺乏靈活性
開發過程中使用者看不到軟體是什麼樣子,造成開發方向錯誤
2. 增量模型
一種非整體開發的模型,軟體在該模型中是“逐漸”開發出來的,開發一部分展示一部分,可以及早發現問題。或者開發一個“原型”軟體,完成部分主要功能再逐步完善
具有較大的靈活性,適合於軟體需求不明確、設計方案有一定風險的軟體專案
缺點:
對於複雜的大型軟體,開發一個原型往往達不到要求
3. 螺旋模型
將瀑布模型與增量模型結合起來,加入了兩種模型均忽略了的風險分析
開發過程分為幾個螺旋週期,每個螺旋週期大致和瀑布模型相符合
每個週期內分四個工作不:制定計劃、風險分析、開發實施、使用者評估
適合於大型軟體的開發
缺點:
需要有相當豐富的風險評估經驗和專門知識,使得應用受到一定限制
4. 噴泉模型
一種以使用者需求為動力,以物件作為驅動的模型,適合於面向物件的開發方法
克服了瀑布模型不支援軟體重用和多想開發活動整合的侷限性
是開發過程具有迭代性和無間隙性
5. 基於知識的模型
又稱只能模型,它把瀑布模型和專家系統結合在一起
還處於研究實驗階段,還未達到實用階段
6. 變換模型
適合於形式化開發的模型
3: 軟體開發方法
使用早已定義好的技術集和符號表示習慣來組織軟體生產的過程
1. 結構化方法
由結構化分析,結構化設計、結構化程式設計構成,是一種面向資料流的開發方法。簡單實用,應用較廣,技術成熟
2. Jackson方法
面向資料結構的開發方法
3. 維也納開發方法(VDM)
一種形式化的開發方法,軟體需求用嚴格的形式語言描述,然後把描述模型逐步變換成目標系統
4. 面向物件的開發方法
90年代主流
基本出發點是儘可能按照人類認識世界的方法和思維方式來分析和解決問題
包括面向物件分析、面向物件設計、面向物件實現
1997年推出統一建模語言UML,是面向物件的標準建模語言
4: 軟體開發工具
1. 軟體工具的重要性
為了支援軟體人員開發和維護活動而使用的軟體
專案估算工具、需求分析工具、編碼工具、測試工具、維護工具等
2. 工具箱
將各種軟體工具簡單組合起來就構成工具箱
工具箱的工具介面不同意,工具內部無聯絡,工具切換由人工操作
3. 軟體開發環境
工具系統的整體化及整合化,使之形成完整的軟體開發環境
使軟體工具支援整個生存週期
4. 計算機輔助軟體工程
新的軟體工具目的是實現軟體生存週期各個環節的自動化,主要用於軟體的分析和設計,使用這些工具開發人員可以以對話的方式建立各種軟體系統
計算機輔助軟體工程可以簡單的定義為軟體開發的自動化,CASE結構化方法可以用於瀑布模型、增量模型、螺旋模型進行開發.Jackson方法可以用於瀑布模型、增量模型 維也納方法只能用於變換模型進行開發.