《軟件工程與項目案例教程》從實用、夠用的角度出發,以圖書館管理系統為主線,采用項目導向、任務驅動案例教學方式,詳細地講述了軟件工程的基本原理、概念、技術和方法。《軟件工程與項目案例教程》分為基礎理論篇、分析與設計篇、維護與管理篇共3篇、10個項目。
基礎理論篇講述了軟件工程概念、軟件的定義、軟件危機、軟件的生命周期、開發模型及UML.的概念模型、UML,的靜態建模機制及動態建模機制。同時,還介紹了兩種常見的建模工具IBM. Rational Rose及Microsoft Office Visio的使用方法。
分析與設計篇講述了項目市場調研、軟件項目需求分析、軟件項目總體設計、軟件項目詳細設計。以圖書館管理系統為案例,以面向對象設計方法為重點,運用UMI_.建模語言,詳細描述了市場調研、需求分析、總體設計及詳細設計的建模過程。
維護與管理篇講述了軟件項目實現、軟件測試、軟件維護及軟件項目管理。同時,還介紹了Microsoft Project的使用方法。
《軟件工程與項目案例教程》語言簡練,通俗易懂,采用項目案例教學方法,注重培養學生動手能力,并且每個項目后都附有實驗實訓和習題,供學生及時消化對應任務內容之用。《軟件工程與項目案例教程》可作為高職高專院校、成人教育學院軟件工程的教材,也可以作為軟件開發設計人員的參考材料。
本書的編寫以任務驅動案例教學為核心,以項目開發為主線。我們在研究分析了國內、外先進職業教育的培訓模式、教學方法和教材特色的基礎上,消化吸收了優秀教材的編寫經驗和成果,本書以培養計算機應用技術人才為目標,以企業對人才的需要為依據,把軟件工程和項目管理的思想完全融入教材中,將基本技能培養和主流技術相結合。書中每個項目編寫重點突出、主輔分明、結構合理、銜接緊湊。本書側重培養學生的實戰操作能力,將學、思、練相結合,旨在通過項目案例實踐,增強學生的職業能力,使知識從書本中釋放并轉化為專業技能。本書特點本書以“圖書館管理系統”項目為主線,將“圖書館管理系統”項目分成不同的任務。每個任務既相對完整獨立又有一定連續性,教學活動的過程是完成每一個任務的過程。完成了“圖書館管理系統”的項目調研、需求、分析、設計的過程,也就完成了本課程學習的過程。選擇“圖書館管理系統”項目,是因為項目涉及的業務領域和工作任務是學生熟悉的、感興趣的,很容易激發學習熱情,同時很快就能上手。“圖書館管理系統”項目所分解的子任務涉及本課程幾乎所有知識點,隨著項目逐步展開,學生將以子任務為動力,積極參與項目調研、需求分析、項目設計等過程。經過前后幾次迭代,完成“圖書館管理系統”項目,學生也就完成了對本課程知識的學習到應用的全過程。
本書編寫側重面向對象的分析與設計思想描述。對面向過程的分析與設計只做少量描述。這是與已經出版的同類書籍(兩者并重)的區別,這樣很適宜學生學習與掌握本課程內容。山東經貿職業學院的學生試用本書取得較好的效果。
本書與國內、外同類教材相比有以下優點。
(1)以項目調研、需求、分析、設計、開發為主線,拋棄原有教材以章節為線索的編排模式。
(2)以任務驅動案例教學為核心,拋棄先講理論后講實例的傳統模式。
(3)先有項目講解,后有實驗實訓,達到跟我學、學中做的效果。
(4)本書以一個完整項目(圖書館管理系統)為主線,用軟件工程的思想進行分析、設計,學習完項目(圖書館管理系統)過程,也就完成了對本書的知識點學習的過程。
第1篇 基礎理論篇
項目1 軟件工程概述
任務1.1 軟件工程
1.1.1 軟件的定義及其特點
1.1.2 軟件危機
1.1.3 軟件工程的概念和原則
任務1.2 軟件生命周期與軟件開發模型
1.2.1 軟件生命周期
1.2.2 軟件開發模型
任務1.3 建模工具
小結
實驗實訓
習題
項目2 統一建模語言(UML)
任務2.1 UML的概述
2.1.1 UML的概念
2.1.2 UML的發展過程
2.1.3 UML的主要內容
任務2.2 UML的概念模型
2.2.1 UML有三個基本的構造塊(事物、關系、圖)
2.2.2 UML的規則
2.2.3 UML中的公共機制
任務2.3 UML的靜態建模機制
2.3.1 用例圖
2.3.2 類圖
2.3.3 對象圖
2,3.4 包
2.3.5 使用類圖的幾個建議
任務2.4 UML的動態建模機制
2.4.1 對象之間的交互
2.4.2 狀態圖
2.4.3 交互圖
2.4.4 活動圖
2.4.5 4種圖的運用
小結
實驗實訓
實訓一 Microsoft Office Visio2003的基礎操作
實訓二 Rational Rose的基礎操作
實訓三 學生管理系統練習
習題
第2篇 分析與設計篇
項目3項目市場調研
任務3.1 系統的研發背景
3.1.1 圖書館管理系統的提出
3.1.2 國內、外研發現狀
任務3.2 軟件開發計劃
3.2.1 問題定義
3.2.2 可行性分析
3.2.3 可行性分析報告
3.2.4 系統的開發計劃
小結
實驗實訓
習題
項目4 軟件項目需求分析
任務4.1 調查系統的需求
4.1.1 功能需求和技術需求
4.1.2 系統相關者
4.1.3 建立系統需求原型
任務4.2 模型
4.2.1 模型的作用及類型
4.2.2 邏輯模型和物理模型
任務4.3 事件
4.3.1 事件的概念和類型
4.3.2 事件定義
4.3.3 圖書館管理系統中的事件
任務4.4 事物
4.4.1 事物的概念和類型
4.4.2 事物之間的關系
4.4.3 事物的屬性
4.4.4 數據實體和對象
任務4.5 實體-聯系圖
任務4.6 類圖
4.6.1 用面向對象的方法分析事物
4.6.2 類圖的符號
4.6.3 建模的目標
4.6.4 需求分析規格說明書編寫提綱
小結
實驗實訓
實訓一 使用Visio2003繪制流程圖
實訓二 學生管理系統練習
習題
項目5 軟件項目總體設計
任務5.1 總體設計的基本內容
5.1.1 軟件設計定義
5.1.2 總體設計的目標與步驟
5.1.3總體設計的基本任務
5.1.4 總體設計的準則
任務5.2 結構化的軟件設計
5.2.1 結構化設計的基本概念
5.2.2 結構化的設計方法
5.2.3 運行環境設計
任務5.3 面向對象的軟件設計
5.3.1 面向對象的設計方法
5.3.2 系統行為——圖書館管理系統的用例圖
5.3.3 對象交互——圖書館管理系統的交互圖
5.3.4 對象行為——圖書館管理系統的狀態圖
小結
實驗實訓
實訓一 使用Rational Rose繪制圖書館管理系統的用例圖
實訓二 使用Rational Rose繪制圖書館管理系統的順序圖
實訓三 使用Rational Rose繪制圖書館管理系統的狀態圖
實訓四 學生管理系統練習
習題
項目6 軟件項目詳細設計
任務6.1 系統詳細設計的基本內容
6.1.1 詳細設計概述
6.1.2 詳細設計的基本任務
6.1.3 詳細設計方法
任務6.2 圖書館管理系統的詳細設計
6.2.1 系統包圖
6.2.2 類的類型以及類之間的關系
6.2.3 圖書館管理系統的類圖
6.2.4 設計類圖的開發
任務6.3 用戶界面設計
6.3.1 用戶界面設計應具有的特點
6.3.2 用戶界面設計的基本類型和基本原則
6.3.3 圖書館管理系統的界面設計
小結
實驗實訓
實訓一 使用Rational Rose繪制圖書館管理系統的類圖
實訓二 學生管理系統練習
習題
第3篇 維護與管理篇
項目7 軟件項目實現
任務7.1 結構化程序設計
7.1.1 結構化程序設計的原則
7.1.2 結構化程序的基本結構與特點
7.1.3 結構化程序設計原則和方法
任務7.2 面向對象程序設計
7.2.1 數據抽象和封裝
7.2.2 繼承
7.2.3 多態
任務7.3 程序設計語言
7.3.1 程序設計語言
7.3.2 程序設計語言分類
任務7.4 程序復雜度
7.4.1 時間復雜度
7.4.2 空間復雜度
小結
實驗實訓Ⅵ
習題
項目8 軟件測試
任務8.1 軟件測試基礎
8.1.1 什么是軟件測試
8.1.2 軟件測試的目的和原則
8.1.3 程序錯誤分類
任務8.2 軟件測試方法
8.2.1 黑盒測試和白盒測試
8.2.2 軟件測試步驟
任務8.3 面向對象軟件測試
8.3.1 面向對象軟件測試的定義
8.3.2 測試計劃
8.3.3 面向對象的測試
……
項目9 軟件維護
項目10 軟件項目管理
1.軟件的定義
軟件是與計算機系統中硬件相互依存的部分,它是包括程序、數據及相關文檔的完整集合。其中,程序是按事先設計好的功能和性能要求執行的指令序列;數據是程序所處理信息的數據結構;文檔是與程序開發、維護和使用的各種圖文資料。
2.軟件的特點
為了全面、正確地理解計算機系統及軟件,必須了解軟件的以下特點。1)抽象性軟件是一種邏輯實體,而不是具體的物理實體。這種抽象性是軟件與硬件的根本區別。軟件一般寄生在紙、內存儲器、磁帶、磁盤或光盤等載體上,我們無法觀察到它的具體形態,而必須通過對它的分析來了解它的功能和特征。
2)無明顯的制造過程
軟件的生產與其他的硬件的生產不同,它無明顯的制造過程。在硬件的制造過程中,必須對第一個制造環節進行質量控制,以保證整個硬件的質量,并且每一個硬件都幾乎付出與樣品同樣的生產資料成本。軟件是將人類的知識和技術轉化成產品,軟件產品的開發成本幾乎全部用在樣品的開發設計上,其制造過程則非常簡單,人們可以用很低的成本進行軟件產品的復制,因此也產生了軟件產品的保護問題。軟件產品保護這個問題已引起國際上的普遍重視,為保護軟件開發者的根本利益,除國家在法律上采取有力的措施之外,開發者在技術上也采取了各種措施,防止對軟件產品的隨意復制。
3)無磨損、老化的問題
在軟件的運行和使用期間,沒有像硬件那樣的磨損、老化問題。任何機械、電子設備在運行和使用過程中,其失效率大致遵循u形曲線(浴盆曲線),如圖1-l所示。軟件的情況則與此不同,它不存在磨損和老化問題,然而它卻存在退化的問題,設計人員必須不斷地修改軟件。軟件失效率曲線如圖1.2所示。
4)對硬件系統的依懶性
軟件的開發和運行往往受到計算機系統的限制,對計算機有著不同程度的依賴性,為了減少這種依賴性,在軟件開發中提出了軟件的可移植問題。