出版時間:2001-3 出版社:東北大學出版社 作者:王家華 頁數(shù):305
前言
軟件工程是在20世紀60年代創(chuàng)立的一門工程學,目的在于解決“軟件危機”或者稱為“軟件困境”的問題。經(jīng)過數(shù)十年的努力,人們總結了大量的經(jīng)驗和發(fā)現(xiàn)了許多規(guī)律,提出了軟件開發(fā)及其管理的方法和技術。這些成為軟件工程的主要內容?! ¤b于軟件工程是一種特殊的工程,它不像機械工程、建筑工程那樣具有明顯的可測性和可計算性,因此長期以來在軟件工程的可測性和可計算性及抽象理論方面的研究所取得的進展很少,從而導致了軟件工程的有關資料中可計算性和形式化的內容較少,一般主要是技術性的。
內容概要
本書是根據(jù)編者多年來從事軟件工程研究與教學實驗,在參閱了大量國外最新資料的基礎上編寫而成的,包括了傳統(tǒng)的結構分析方法和正在以展的面向對象的開發(fā)方法學,涵蓋了從可行性論證直到軟件維護各階段的內容,主要有:可行性論證技術;半形式化和形式化規(guī)范技術;軟件項目質量、配置管理及軟件項目的特征量;模塊化原理;系統(tǒng)結構優(yōu)化設計;輸入/出接口優(yōu)化設計;結構程序設計;測試案例設計;面向對象原理;面向對象的建模;OO系統(tǒng)設計與測試;以及某些開發(fā)階段特征量的概念、計算機和應用。本書可作為本科生、研究生軟件工程課的教材。
書籍目錄
1 軟件工程引論 1.1 軟件困境 1.2 軟件工程 1.3 某些廣泛使用的過程模型 1.4 小結 練習題一2 軟件工程管理技術 2.1 軟件特征量 2.2 軟件規(guī)模估計 2.3 軟件工作量的估計 2.4 軟件項目的調度 2.5 人員組織 2.6 軟件質量管理 2.7 軟件配置管理 2.8 小結 練習題二3 可行性研究 3.1 可行性研究的基礎 3.2 可行性研究的任務 3.3 成本/效益分析 3.4 可行性研究的步驟 3.5 小結 練習題三4 需求分析和規(guī)范 4.1 用戶需求分析的任務 4.2 需求規(guī)范 4.3 數(shù)據(jù)流程圖 4.4 數(shù)據(jù)字典 4.5 判定表與判定樹 4.6 有限狀態(tài)機 4.7 Petri 網(wǎng) 4.8 形式化規(guī)范技術 4.9 用戶需求規(guī)范的評審 4.10 小結 練習題四5 總體設計 5.1 總體設計的概念與原則 5.2 模塊化原理 5.3 總體設計中的特征量 5.4 圖形工具 5.5 軟件結構的設計方法 5.6 程序結構的優(yōu)化設計 5.7 大型軟件系統(tǒng)設計中的可集成問題 5.8 小結 練習題五6 詳細設計 6.1 數(shù)據(jù)設計 6.2 人-機接口的設計 6.3 模塊邏輯的設計 6.4 表示程序邏輯的工具 6.5 結構程序設計 6.6 詳細設計的特征量 6.7 小結 練習題六7 程序設計 7.1 程序設計語言 7.2 程序設計風格 7.3 反缺陷程序設計 7.4 小結 練習題七8 測試 8.1 白盒測試 8.2 墨盒測試 8.3 單元測試 8.4 集成測試 8.5 調度 8.6 集成測試的特征量 8.7 小結 練習題八9 面向對象方法學引論10 面向對象的系統(tǒng)分析11 面向對象的系統(tǒng)設計12 面向對象系統(tǒng)的測試參考文獻
章節(jié)摘錄
1.1.1 軟件的特征 研究軟件的特征,有助于理解軟件生產(chǎn)的困難,進而去克服它們?! 。?)復雜性?! ∫粋€軟件產(chǎn)品是和計算機系統(tǒng)聯(lián)系在一起的。人們賦予計算機系統(tǒng)的期望與功能不同于任何其他產(chǎn)品。除了計算機系統(tǒng)以外的任何產(chǎn)品,不過是人們手和腳功能的延伸。例如。一個普通機床,人們利用它將金屬材料加工成機器零件。某種意義上說,機床是人們手的功能的延伸,相當于使人的手變得更有力,更鋒利,能夠將堅硬的金屬材料加工成需要形狀和尺寸的產(chǎn)品。一個汽車的功能即使再復雜,性能再優(yōu)越,它不過是人腿功能的延伸和人類負重能力的加強。但是計算機不同,人類希望它能夠加強和解放人類的最高級器官——大腦的功能。人們使用計算機監(jiān)視生產(chǎn)過程,根據(jù)生產(chǎn)情況發(fā)出調度指令,生產(chǎn)出高質量的產(chǎn)品。實踐證明:在這方面計算機做得甚至比人類自身更好。計算機用于事務管理,例如財務管理,可以快速存取大量的數(shù)據(jù),更快更準確地計算,將財會人員從繁重的腦力勞動中解放出來。計算機能用于科學計算,求解復雜的超越方程。這類方程靠人類的大腦和手是無法精確求解的。在這方面計算機是人類大腦的延伸。計算機代替人腦的應用例子不勝枚舉。一個普通計算機只是一個通用的計算裝置,它只能快速執(zhí)行其指令集合的指令。而這些應用功能的實現(xiàn)是由這些指令構造的計算機程序去操縱有關的數(shù)據(jù)實現(xiàn)的,即由計算機軟件實現(xiàn)。軟件要實現(xiàn)的功能是人類大腦的部分功能或某部分功能的加強。因此從本質上決定了和其他產(chǎn)品相比,軟件是一種更為復雜的產(chǎn)品。(2)難以描述性。這個特性指的是某些軟件算法的難以描述的特性??茖W家和工程師在解決問題時??偸遣捎贸橄蟮哪P兔枋霈F(xiàn)實世界,使用數(shù)學公式準確地表達客觀規(guī)律。例如航天專家們使用運動學定律描述飛行體的運動;化學家應用化學方程描述化學反應。當計算機應用于這些領域時,軟件能夠采用這些抽象模型來表達其算法,軟件算法具有同樣的可描述性。但是當計算機應用于其他領域時,例如建立一個企業(yè)的應用系統(tǒng),計算機軟件的算法將是復雜的,很難用一個或一組公式準確地表示它。它往往需要自然語言結合數(shù)學公式以及其他表示方法,如邏輯公式等來表示。由于自然語言中存在著二義性,因此用自然語言所表達的算法是很難準確的。另一方面是因為解決這些領域中問題的算法是由領域專家直接或間接提供的。由于人們對客觀世界的認識具有不完全性,甚至存在著某些錯誤認識,因此依賴于領域專家知識的計算機軟件很難準確地反映客觀世界的規(guī)律?! 。?)不可見性?! ≡谏钪校覀兯佑|到的產(chǎn)品其外形幾乎都是可見的。例如一個房屋、一輛汽車,它們的外觀是可見的。即使對于設計中的產(chǎn)品,其外形的優(yōu)劣亦可通過三維模型或者實物造型來觀察和判斷。對于軟件產(chǎn)品則是不同的。首先,由于它由一些計算機程序和其操作的數(shù)據(jù)以及相應的文檔構成,它可能存儲在紙介質上,或者磁介質上。我們能觀察到的只是介質的形體,而不是軟件的形狀。如果我們把程序運行中顯示給用戶的接口定義為軟件的外形的話,那么我們只能通過運行程序才可以觀察到其外形。因此,對于設計中的軟件則是無法觀察其外形的。正是由于這種不可見性造成了開發(fā)者和客戶之間通訊的困難。
圖書封面
評論、評分、閱讀與下載