第一章軟體
軟體是計算機程式,規程及運作計算機系統可能需要的文檔和資料。軟體分為通用軟體和定制軟體。
軟體的特性:1.複雜性2.不可見性3.不斷變化4.大多數軟體仍然是定制的,而不是通過已有的構件組裝而成。
軟體于二十世紀50~60年代,70年代,80年代,90年代至今進行發展。
在此過程中遇到一些危機:1.軟體的開發成本和進度難以估計,延遲傳遞甚至取消項目的現象屢見不鮮。2.軟體存在着錯誤多,性能低,不可靠,不安全等品質問題。3.軟體的成本在計算機系統的整個成本中所占的比例越來越大。4.軟體的維護極其困難,而且很難适應不斷變化的使用者需求和使用環境。
軟體工程早在1968年10月,于德國的加爾迷死開會讨論軟體可靠性與軟體危機的問題中被Fritz Bauer首次提出。
其包括軟體工程是工程概念在軟體領域裡的一個特定應用,和軟體工程涉及軟體産品的所有環節。
軟體工程的三要素:工具,方法,過程。
計算機輔助軟體工程CASE是一組工具和方法的集合,具有一定的層次劃分。目前其主要面臨的挑戰有遺留系統的問題,高可信性開發的要求,軟體開發方式的變化。
軟體知識體系(swebok)由軟體的需求,軟體設計,軟體構造,軟體測試,軟體維護,軟體配置管理,軟體工程管理,軟體工程過程,軟體工程工具與方法,和軟體品質組成。
軟體工程人員應秉承一定的職業道德準則,遵紀守法,持有服務客戶,造服社會的觀念,以城實守信作為工程人員職業道德的核心。
(不知不覺600字了。。)
第二章軟體過程
程式員應具有的任務思維與過程思維概述。
軟體過程的定義:是軟體工程人員為了擷取軟體産品而在軟體工具的支援下實施的一系列軟體過程活動。
軟體過程的基本活動有1.問題的提出2.軟體規格說明3.軟體設計4.軟體實作5.軟體确認6.軟體演化。
軟體過程的制品按照不同的階段,書上予以細細的列舉。
軟體工程的模型有瀑布模型、快速原型模型、增量模型、形式化方法模型、和基于元件的開發模型。
微軟公司開發軟體過程的案例,1。其開發管理的原則(5點不再一一列舉)2.微軟公司的軟體過程模型有五個階段(按時間順序進行)規劃階段、設計階段、開發階段、穩定階段、和釋出階段。3.遞進式的軟體開發政策。
第三章軟體項目管理
軟體項目的特征
軟體項目管理的“4p”1.人員2.産品3.過程4.項目。
軟體項目管理活動4點
人員的組織與管理其中組織有民主式組織、主程式員式組織、技術管理式組織。
以微軟為例講解組織的形式如何運用于實際中。
項目溝通管理:項目溝通具有一定的複雜性,并且有六種溝通方式
項目溝通活動:1.規劃項目溝通2.建立基礎設施3.實施階段性評審4.每周組織小組會議。
軟體項目規劃:1.估算項目規模2.軟體項目計劃
軟體風險管理
風險的是識别:(七中不同形式的識别不一一列舉)
面對分先應作出風險分析,規劃與監控。
軟體基本配置的基本概念及配置管理活動。
第四章需求工程
人們對“軟體需求”這個術語缺乏統一的描述,客戶所說的“需求”在開發人員看來是一個較高層次的産品概念,而開發人員所說的“需求”在使用者看來又像是詳細設計。應該說,人們從不同角度和不同的程度反映着各自的需求,形成了不同層次的需求。有業務需求,功能非功能需求,和系統需求。
需求工程過程1.需求的擷取2.需求的分析3.需求的規格說明4.需求驗證(其中包括正确性,無二義性,完整性,可驗證性,一緻性,可跟蹤性等)。需求管理分為需求變更控制,需求文檔的版本控制,需求跟蹤需求管理工具。
需求擷取技術可以通過面談、需求專題讨論會觀察使用者工作流程等方式實作,方法基于原形化方法和用例方法。
案例:小型圖書館資料管理系統
步驟:1.确定參與者2.确定場景3.确定用例4.編寫用例描述。
第五章軟體工程中的形式化方法
形式化方法的基本概念:1.軟體規格說明是對系統對象,對象的操作方法,以及對象行為的描述。2.形式證明與驗證技術包括模型檢測和定理證明。3.程式求精是将自動推理和形式化方法相結合,從抽象的形式規約推演出具體的面向計算機的程式代碼的全過程。
時态邏輯Kripke結構一階段線性時态邏輯漢諾塔操作規劃問題
計算樹邏輯是一種離散、分支時間、命題時态邏輯。
模型檢測
Z語言概述:Z語言為系統建立基于狀态的模型。
其表示大體分為兩類:1.集合、關系及函數2.自由類型和模式
執行個體:1.停車場管理系統為例:初始化,基本定義,狀态定義,全局變量聲明,操作定義。2.以聽圖書管理系統為例:(同1.)
網:基本定義任何系統都可以抽象為兩類元素和事件。petri網
petri網的執行個體——信号燈。(對信号燈原理進行簡單的描述)
第六章面向對象基礎
面向對象方法概述:客觀世界是由對象組成的,任何客觀的事物或實體都是對象,複雜的對象可以有簡單的對象組成;
面向對象技術的發展曆史(簡述初始,發展,成熟三個階段)
面向對象的軟體工程方法:1.面向對象分析2.面向對象設計3.面向對象程式設計4.面向對象測試5.面向對象維護
面向對象基本概念:1.對象從不同角度有不同的含義2.類是具有相同的屬性和服務的一組對相集合,它屬于該類的全部對象提供了統一的抽象描述,其内部屬性和服務兩個主要部分。3.封裝是把對象屬性和服務結合成一個獨立的系統機關,并盡可能隐藏對相内部細節。4.繼承(不再打了)5.消息6.關聯7.聚合8.多态性
軟體模組化概念針對軟體所具有的複雜性,以及人們對複雜問題的了解的局限性,在軟體開發過程中使用共同的模組化語言進行模組化十分重要,特别是特别大的複雜系統。
系統、模型和視圖(簡述了3點)
軟體模組化的重要性(簡述,略)
統一模組化語言uml
1,uml發展史2.uml概念:由視圖、圖、模型元素和公共機制等部分組成。3,uml示例(以圖為例)4.uml的應用
常用的uml圖:類圖、順序圖、狀态圖。(已學過)
第七章面向對象分析
分析的概念:分析類,分析活動
識别分析類通常,一個參與者與一個用例之間的互動或通訊關聯對應一個邊界類。邊界類收集來自參與者的資訊,這些資訊可以被實體類控制類控制使用。
識别控制類
控制類負責協調邊界和實體類,通常在現實世界中沒有對應的事物,他負責接收邊界類的資訊,并将其分給實體類。
識别實體類簡述了識别方法
定義互動行為:順序圖可以講=将用力和分析對象聯系到一起。(繪制順序圖步驟)
建立分析類圖1.定義關系和屬性2.應用分析模式
評分分析模型(檢查正确性的步驟)
第八章面向對象分析
設計的概念
設計活動,設計原則1.子產品化2.耦合度和内聚性3.複合型
軟體體系結構1.倉庫體系結構簡述2.分層體系結構3.mvc體系結構4.客戶機/伺服器體系結構5.管道和過濾體系結構6.案例:minilibrary系統體系結構(圖略)
系統設計1.識别設計元素2.資料儲存政策3.部署子系統4.系統設計評審
詳細設計1.方法模組化(三點)2.屬性模組化3.狀态模組化4.關鍵模組化5.詳細設計評審。
應用設計模式:1.abstract factory模式2.adaptor模式3.bridge模式4.facade模式
使用者界面設計:1.使用者界面設計原則2.web界面的設計3.使用者支援
設計文檔步驟1.引言2.參考文獻等(共6個步驟)
第九章軟體實作
程式設計語言一直在不斷地演化和演變,其從經曆了從機器語言到進階語言的過程。
軟體編碼規範1.檔案命名與組織2.代碼的版式3.分行、對齊與縮進4.命名規則5.聲明6.注釋
軟體編碼案例分析:1.程式注釋問題2.變量命名問題3.記憶體異常問題(4點)4.異常處理問題5.性能問題兩點
軟體代碼審查代碼審查有:1.類2.屬性3.構造函數4.方法頭5.方法體
第十章軟體測試
驗證與确認:1.軟體的錯誤2.驗證與确認3.v&v的活動
軟體測試基礎:1.什麼是軟體測試2.軟體測試的基本原則3.軟體測試與軟體開發各階段的關系4.測試文檔5.軟體測試資訊流6.軟體測試人員。
軟體測試政策:1.單元測試2.內建測試确認測試4.系統測試5.軟體調試。
軟體測試方法:1.靜态測試與動态測試2.黑盒測試與白盒測試3.黑盒測試方法4.白盒子測試方法5.程式的靜态測試
面向對象軟體測試:1.面向對象測試類型2.面向對象測試示例3.gui測試示例軟體測試工具。
第十一章軟體演化
軟體演化的特性1.軟體維護是一個必然的過程2.軟體的不斷修改會導緻軟體退化3.軟體系統的演化特性是在早期的開發階段建立起來4.軟體開發的效率與投入的資源無關5.在軟體系統中添加新的功能不可避免地會産生新的缺陷。
軟體維護的概念:1.改正性維護2.适應性維護3.完善性維護
軟體維護的特點:1.軟體維護受開發過程影響大2.軟體維護困難多3.軟體維護成本高。
軟體維護的過程1.改正性維護2.适應性維護3.完善性維護
軟體再工程:1.對象選擇2.反向過程3.文檔重構4.代碼重構5.資料重構6.正向工程。