《高等院校計(jì)算機(jī)課程案例教程系列:系統(tǒng)分析與設(shè)計(jì)方法及實(shí)踐》分別從傳統(tǒng)的結(jié)構(gòu)化開發(fā)范型和面向?qū)ο箝_發(fā)范型兩個(gè)方面,把軟件分析與設(shè)計(jì)的概念和理論知識融入實(shí)踐當(dāng)中,通過豐富的案例分析與設(shè)計(jì),深入地介紹系統(tǒng)分析與設(shè)計(jì)中各個(gè)階段的技術(shù)、方法與典型工具的使用!陡叩仍盒S(jì)算機(jī)課程案例教程系列:系統(tǒng)分析與設(shè)計(jì)方法及實(shí)踐》前三部分為軟件分析與設(shè)計(jì)基礎(chǔ)、結(jié)構(gòu)化分析與設(shè)計(jì)、面向?qū)ο蠓治雠c設(shè)計(jì),最后一部分介紹了軟件繪圖工具ⅥSl0、面向?qū)ο蠼9ぞ逺ose、數(shù)據(jù)建模工具PowerDesigner 3個(gè)流行的軟件工程工具。
《高等院校計(jì)算機(jī)課程案例教程系列:系統(tǒng)分析與設(shè)計(jì)方法及實(shí)踐》適合作為高等院校軟件工程和軟件開發(fā)課程的教材,既適用于計(jì)算機(jī)專業(yè)的學(xué)生,也適用于其他非計(jì)算機(jī)專業(yè)的學(xué)生以及從事軟件開發(fā)、應(yīng)用及管理的技術(shù)人員,同時(shí)也適合專業(yè)軟件開發(fā)人員參考。
《高等院校計(jì)算機(jī)課程案例教程系列:系統(tǒng)分析與設(shè)計(jì)方法及實(shí)踐》結(jié)合作者多年的軟件工程教學(xué)和項(xiàng)目開發(fā)經(jīng)驗(yàn),通過6個(gè)案例和3個(gè)工具軟件,為開發(fā)計(jì)算機(jī)軟件提供了一套軟件分析與設(shè)計(jì)的方法,著重講述了結(jié)構(gòu)化軟件分析與設(shè)計(jì)方法、面向?qū)ο筌浖治雠c設(shè)計(jì)方法和軟件分析與設(shè)計(jì)工具3個(gè)方面的內(nèi)容,從不同的角度和范型介紹軟件開發(fā)過程中所涉及的原理、方法與技術(shù)! 陡叩仍盒S(jì)算機(jī)課程案例教程系列:系統(tǒng)分析與設(shè)計(jì)方法及實(shí)踐》特點(diǎn): ·將結(jié)構(gòu)化軟件分析與設(shè)計(jì)和面向?qū)ο筌浖治雠c設(shè)計(jì)分開講述,有利于學(xué)生理解軟件開發(fā)的不同范型的特點(diǎn)和適用情況! ぐ咐芯孔⒅胤治雠c思考實(shí)現(xiàn)過程,通過案例分析讓學(xué)生理解軟件分析與設(shè)計(jì)的思想和原理! ねㄟ^3個(gè)工具軟件Visio、Rose和PowerDesigner介紹如何應(yīng)用這些工具快速、準(zhǔn)確地開發(fā)系統(tǒng)! げ捎糜山Y(jié)構(gòu)化到面向?qū)ο笤俚焦ぞ叩穆肪,便于學(xué)生逐步接受軟件開發(fā)的思想和本質(zhì)。
軟件分析與設(shè)計(jì)是軟件系統(tǒng)開發(fā)的重要組成部分,它包含了一系列原理、方法和實(shí)踐,指導(dǎo)人們進(jìn)行正確的軟件開發(fā)。軟件開發(fā)強(qiáng)調(diào)從工程化的原理出發(fā),按照標(biāo)準(zhǔn)化規(guī)程和軟件開發(fā)實(shí)踐來引導(dǎo)軟件開發(fā)人員進(jìn)行軟件開發(fā),并進(jìn)行過程改進(jìn),促進(jìn)軟件企業(yè)向標(biāo)準(zhǔn)化和成熟化發(fā)展。軟件分析與設(shè)計(jì)是一門理論與實(shí)踐相結(jié)合的課程,注重通過實(shí)踐來理解理論、原理與方法。為此,本書結(jié)合作者多年的軟件工程教學(xué)和項(xiàng)目開發(fā)經(jīng)驗(yàn),通過6個(gè)案例和3個(gè)工具軟件,從不同的角度和范型循序漸進(jìn)地介紹軟件開發(fā)過程中所涉及的原理、方法與技術(shù)。
全書分為4部分:
第一部分:軟件分析與設(shè)計(jì)基礎(chǔ)。這一部分共安排了3章內(nèi)容,初步介紹軟件工程的基本概念、軟件過程生命周期及其模型,以及本教材的案例與要求。
第二部分:結(jié)構(gòu)化分析與設(shè)計(jì)。這一部分共安排了5章內(nèi)容,介紹結(jié)構(gòu)化分析與設(shè)計(jì)的基本概念、分析與設(shè)計(jì)過程、分析與設(shè)計(jì)模型,以及相關(guān)技術(shù)與方法,包括需求分析、結(jié)構(gòu)化分析方法、結(jié)構(gòu)化設(shè)計(jì)概念、結(jié)構(gòu)化概要設(shè)計(jì)和結(jié)構(gòu)化詳細(xì)設(shè)計(jì)的內(nèi)容。本部分用案例進(jìn)一步深化結(jié)構(gòu)化分析與設(shè)計(jì)的原理、方法及過程。
第三部分:面向?qū)ο蠓治雠c設(shè)計(jì)。這一部分共安排了5章內(nèi)容,介紹面向?qū)ο蠓治雠c設(shè)計(jì)的基本概念、用例分析模型與設(shè)計(jì)過程、面向?qū)ο蠓治雠c設(shè)計(jì)模型,以及相關(guān)技術(shù)與方法,包括用例需求分析、面向?qū)ο蠓治龇椒ā⒚嫦驅(qū)ο笤O(shè)計(jì)、統(tǒng)一開發(fā)過程和高要求的系統(tǒng)分析與設(shè)計(jì)等內(nèi)容。
第四部分:軟件分析與設(shè)計(jì)工具。這一部分共安排了3章內(nèi)容,介紹軟件分析與設(shè)計(jì)中常見的建模工具的使用和案例開發(fā)模型,包括結(jié)構(gòu)化分析工具Visio、面向?qū)ο蠓治雠c設(shè)計(jì)工具Rose和面向數(shù)據(jù)分析與設(shè)計(jì)工具PowerDesigner。
……
前言
教學(xué)建議
第一部分 軟件分析與設(shè)計(jì)基礎(chǔ)
第1章 軟件分析與設(shè)計(jì)概述
1.1 什么是軟件
1.1.1 軟件定義與特性
1.1.2 軟件的演化
1.1.3 軟件危機(jī)
1.1.4 軟件危機(jī)的解決途徑
1 2 什么是軟件分析與設(shè)計(jì)
1.2.1 基本原理
1.2.2 基本原則
1.3 軟件系統(tǒng)開發(fā)范型
1.3.1 結(jié)構(gòu)化開發(fā)范型
1.3.2 面向?qū)ο箝_發(fā)范型
1.4 軟件生產(chǎn)活動(dòng)
1.5小結(jié)
習(xí)題
第2章 軟件分析與設(shè)計(jì)過程及其模型
2.1 軟件生命周期
2.2 敏捷軟件開發(fā)
2.2.1 敏捷方法與開發(fā)原則
2.2.2 極限編程及其模型
2.3 結(jié)對編程方法
2.3.1 什么是結(jié)對編程
2.3.2 結(jié)對編程分析
2.3.3 分布式結(jié)對編程
2.4 軟件過程模型
2.4.1 傳統(tǒng)軟件過程模型
2.4.2 面向?qū)ο筮^程模型
2.5 能力成熟度模型cMM
2.5.1 什么是能力成熟度模型
2.5.2 CMM的5級模型
2.6 小結(jié)
習(xí)題
第3章 案例研究
3.1 案例研究中涵蓋的內(nèi)容
3.2 案例l:POS機(jī)系統(tǒng)
3.3 案例2:ATM系統(tǒng)
3.4 案例3:圖書館系統(tǒng)
3.5 案例4:電子商務(wù)系統(tǒng),
3.6 案例5:胰島素輸送系統(tǒng)
3.7 案例6:分布式結(jié)對編程系統(tǒng)
3.8小結(jié)
習(xí)題
第二部分 結(jié)構(gòu)化分析與設(shè)計(jì)
第4章 需求分析
4.1 軟件系統(tǒng)需求
4.2 需求分析過程
4.3 需求分析技術(shù)
4.3.1 會(huì)談技術(shù)
4.3.2 問卷調(diào)查技術(shù)
4.3.3 場景分析技術(shù)
4.3.4 用例分析技術(shù)
4.4小結(jié)
習(xí)題
第5章 結(jié)構(gòu)化分析方法
5.1 結(jié)構(gòu)化分析
5.2 結(jié)構(gòu)化分析模型
5.3 數(shù)據(jù)實(shí)體建模方法
5.4 數(shù)據(jù)流建模方法
5.4.1 數(shù)據(jù)流建模
5.4.2 圖書館系統(tǒng)案例分析
5.5 狀態(tài)轉(zhuǎn)換建模方法
5.6小結(jié)
習(xí)題
第6章 結(jié)構(gòu)化設(shè)計(jì)基礎(chǔ)
6.1 軟件設(shè)計(jì)過程
6.1.1 概要設(shè)計(jì)
6.1.2詳細(xì)設(shè)計(jì)
6.2 模塊化設(shè)計(jì)原理
6.2.1 分解
6.2.2抽象
6.2.3 信息隱蔽
6.2.4逐步求精
6.2.5 模塊獨(dú)立性
6.3 模塊獨(dú)立性度量
6.3.1 內(nèi)聚性
6.3.2耦合性
6.4 軟件組成結(jié)構(gòu)
6.4.1 軟件結(jié)構(gòu)圖
6.4.2 結(jié)構(gòu)優(yōu)化
6.5 軟件體系結(jié)構(gòu)
6.5.1 系統(tǒng)構(gòu)成模型
6.5.2 系統(tǒng)控制模式
6.6小結(jié)
習(xí)題
第7章 結(jié)構(gòu)化概要設(shè)計(jì)方法
7.1 數(shù)據(jù)流模型
7.1.1 變換型數(shù)據(jù)流
7.1.2 事務(wù)型數(shù)據(jù)流
7.1.3 混合型數(shù)據(jù)流
7.2 面向數(shù)據(jù)流的設(shè)計(jì)方法
7.2.1 設(shè)計(jì)過程
7.2.2 變換流設(shè)計(jì)
7.2.3 事務(wù)流設(shè)計(jì)
7.2.4 混合流設(shè)計(jì)
7.3 面向數(shù)據(jù)的設(shè)計(jì)方法
7.3.1 數(shù)據(jù)結(jié)構(gòu)的表示
7.3.2 面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)過程
7.3.3 信用卡記賬系統(tǒng)案例分析
7.4 圖書館系統(tǒng)概要設(shè)計(jì)
7.4.1 問題定義和數(shù)據(jù)流描述
7.4.2 系統(tǒng)結(jié)構(gòu)圖
7.5小結(jié)
習(xí)題
第8章 結(jié)構(gòu)化詳細(xì)設(shè)計(jì)
8.1 結(jié)構(gòu)化詳細(xì)設(shè)計(jì)的結(jié)構(gòu)和優(yōu)點(diǎn)
8.2 結(jié)構(gòu)化詳細(xì)設(shè)計(jì)工具
8.2.1 程序流程圖
8.2.2 N-S盒圖
8.2.3 PAD
8.2.4 HIPO圖
8.2.5 判定表與判定樹
8.2.6 過程描述語言
8.3 人機(jī)交互界面設(shè)計(jì)
8.3.1 交互界面分析
8.3.2 交互界面設(shè)計(jì)步驟
8.3.3 交互界面設(shè)計(jì)指南
8.3.4 CAD系統(tǒng)繪圖操作案例分析
8.4 數(shù)據(jù)庫設(shè)計(jì)
8.5 編碼實(shí)現(xiàn)
8.5.1 編碼語言
8.5.2 編碼風(fēng)格
8.6小結(jié)
習(xí)題
第三部分 面向?qū)ο蠓治雠c設(shè)計(jì)
第9章 面向?qū)ο蠡A(chǔ)
9.1 面向?qū)ο蟾拍?br>9.2 面向?qū)ο竽P?br>9.3 統(tǒng)一建模語言UML
9.3.1 UML的組成
9.3.2 UML模型
9.4 UML與面向?qū)ο蠓椒▽W(xué)的關(guān)系
9.5 小結(jié)
習(xí)題
第10章 面向?qū)ο蠓治?br>10.1 用例驅(qū)動(dòng)分析
10.2 領(lǐng)域與業(yè)務(wù)建模
10.2.1 識別業(yè)務(wù)類或分析類
10.2.2 開發(fā)業(yè)務(wù)類圖與交互圖
10.2.3 識別屬性和操作
10.2.4 開發(fā)協(xié)作圖
10.3 系統(tǒng)行為建模
10.3.1 建立系統(tǒng)順序圖
10.3.2 建立操作契約
10.3.3 開發(fā)UML順序圖
10.4 建立系統(tǒng)狀態(tài)模型
……
第四部分 軟件分析與設(shè)計(jì)工具
參考文獻(xiàn)
軟件設(shè)計(jì)過程中設(shè)計(jì)者創(chuàng)造性的技能、以往的經(jīng)驗(yàn)、對軟件的特殊感覺,以及對質(zhì)量的全部責(zé)任是設(shè)計(jì)成功的關(guān)鍵因素。因此,制定軟件設(shè)計(jì)的基本原則提供給軟件工程師,能夠?yàn)樵O(shè)計(jì)過程起到很好的導(dǎo)航作用。
正確應(yīng)用下述一些設(shè)計(jì)原則,軟件工程師創(chuàng)建的設(shè)計(jì)就會(huì)展現(xiàn)出外部和內(nèi)部的高質(zhì)量因素,而內(nèi)部的質(zhì)量因素又能產(chǎn)生技術(shù)角度上的高質(zhì)量設(shè)計(jì)。
1)設(shè)計(jì)過程不應(yīng)該受“隧道視野”的限制。設(shè)計(jì)者應(yīng)考慮替代的手段,根據(jù)要求,判斷完成工作的資源。
2)設(shè)計(jì)對于分析模型應(yīng)該是可跟蹤的。因?yàn)樵O(shè)計(jì)模型的單獨(dú)一個(gè)元素經(jīng)常會(huì)跟蹤到多個(gè)需求上,所以對設(shè)計(jì)模型如何滿足需求進(jìn)行跟蹤是必要的。
3)設(shè)計(jì)不應(yīng)該從頭做起。設(shè)計(jì)者應(yīng)該盡可能使用可復(fù)用的設(shè)計(jì)構(gòu)件,因?yàn)闀r(shí)間短暫,而且資源有限,設(shè)計(jì)時(shí)間應(yīng)該投入表示真正的新思想和集成那些已有的模式上去。
4)設(shè)計(jì)應(yīng)該縮短軟件和現(xiàn)實(shí)問題的“智力距離”,也就是說,軟件設(shè)計(jì)的結(jié)構(gòu)應(yīng)該盡可能模擬問題域的結(jié)構(gòu)。
5)設(shè)計(jì)應(yīng)該表現(xiàn)出一致性和集成性。在設(shè)計(jì)工作開始之前,就應(yīng)該定義風(fēng)格和格式的規(guī)則。如果注意定義了設(shè)計(jì)構(gòu)件之間的接口,那么設(shè)計(jì)是可集成的。
6)設(shè)計(jì)應(yīng)該能夠適應(yīng)修改。
7)設(shè)計(jì)不是編碼(當(dāng)然,編碼也不是設(shè)計(jì))。
8)在創(chuàng)建設(shè)計(jì)時(shí),就應(yīng)該考慮能夠評估其質(zhì)量。
9)應(yīng)該復(fù)審每一步設(shè)計(jì),以減少語義性錯(cuò)誤。
概要設(shè)計(jì)階段的主要任務(wù)是把系統(tǒng)的功能需求分配給軟件結(jié)構(gòu),形成軟件的系統(tǒng)結(jié)構(gòu)圖。在軟件理論和工程的實(shí)踐中,人們已經(jīng)在采用各種表達(dá)軟件構(gòu)成的描述形式,形成了軟件設(shè)計(jì)結(jié)構(gòu)表達(dá)的一些規(guī)范。
結(jié)構(gòu)化程序設(shè)計(jì)在數(shù)據(jù)類型和結(jié)構(gòu)化控制描述的支持下,主程序和子過程是主要的程序設(shè)計(jì)思想。在這樣的思想下,系統(tǒng)的結(jié)構(gòu)被映射為主程序和一系列具有調(diào)用關(guān)系的子過程的集合。這在程序設(shè)計(jì)語言中,直接與主程序和過程/函數(shù)的概念對應(yīng)。更復(fù)雜的系統(tǒng)設(shè)計(jì)包含了更多的關(guān)于模塊、程序的概念。模塊可以看成是具有獨(dú)立主程序和子過程結(jié)構(gòu)的功能塊。
……