關(guān)于我們
書(shū)單推薦
新書(shū)推薦
|
軟件工程
本書(shū)采用“教學(xué)做”一體化模式編寫,合理地組織學(xué)習(xí)單元,并將每個(gè)單元分解為核心知識(shí)、能力目標(biāo)、任務(wù)驅(qū)動(dòng)、實(shí)踐環(huán)節(jié)4個(gè)模塊。全書(shū)共10章,第1章是軟件工程基本概念,第2~7章順序介紹了軟件生命周期各階段任務(wù)、過(guò)程、結(jié)構(gòu)化方法和工具,第8章講述了面向?qū)ο蠓椒▽W(xué),第9章介紹了軟件項(xiàng)目管理,第10章給出了經(jīng)典的軟件工程實(shí)驗(yàn)以及一個(gè)綜合實(shí)例。書(shū)中實(shí)例側(cè)重實(shí)用性和啟發(fā)性,通俗易懂,使讀者能夠快速掌握軟件工程的基礎(chǔ)知識(shí)與項(xiàng)目管理技能,為適應(yīng)實(shí)戰(zhàn)應(yīng)用打下堅(jiān)實(shí)的基礎(chǔ)。
本書(shū)適合作為高等院!败浖こ獭闭n程的教材或教學(xué)參考書(shū),也適合作為有一定經(jīng)驗(yàn)的軟件工作人員的參考用書(shū)。
前言
本書(shū)按照“教學(xué)做”一體化模式精編了軟件工程的核心內(nèi)容,以核心知識(shí)、能力目標(biāo)、任務(wù)驅(qū)動(dòng)和實(shí)踐環(huán)節(jié)為模塊組織本書(shū)的體系結(jié)構(gòu)。核心知識(shí)體現(xiàn)最重要和實(shí)用的知識(shí),是教師需要重點(diǎn)講解的內(nèi)容;能力目標(biāo)提出學(xué)習(xí)核心知識(shí)后應(yīng)具備的能力;任務(wù)驅(qū)動(dòng)給出了教師和學(xué)生共同來(lái)完成的任務(wù);實(shí)踐環(huán)節(jié)給出了需要學(xué)生獨(dú)立完成的實(shí)踐活動(dòng)。 全書(shū)共10章。第1章概括地介紹了軟件工程基本概念,包括軟件、軟件危機(jī)、軟件工程、軟件生命周期與常用模型。第2~7章按軟件生命周期的順序講解了各階段的任務(wù)、過(guò)程、方法和工具。其中,第2章重點(diǎn)講述了如何使用系統(tǒng)流程圖和數(shù)據(jù)流圖分別描繪系統(tǒng)的物理模型和邏輯模型;第3章是需求分析與建模的有關(guān)知識(shí),包括需求分析過(guò)程、需求獲取方法、結(jié)構(gòu)化分析建模工具以及軟件需求規(guī)格說(shuō)明書(shū)的內(nèi)容框架;第4章和第5章是有關(guān)軟件設(shè)計(jì)的知識(shí),詳細(xì)地介紹了軟件設(shè)計(jì)的原理、工具、方法和文檔,包括模塊化設(shè)計(jì)原理、軟件結(jié)構(gòu)及描繪它的圖形工具、面向數(shù)據(jù)流的設(shè)計(jì)方法、面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法以及設(shè)計(jì)文檔的內(nèi)容框架;第6章是關(guān)于系統(tǒng)實(shí)現(xiàn)的知識(shí),重點(diǎn)講述了系統(tǒng)實(shí)現(xiàn)的原理、技術(shù)和方法,包括編碼、單元測(cè)試、集成測(cè)試、白盒測(cè)試、黑盒測(cè)試以及JUnit單元測(cè)試工具;第7章是有關(guān)軟件維護(hù)的知識(shí),包括維護(hù)策略與方法。第8章系統(tǒng)地講解了面向?qū)ο蠓椒▽W(xué)的有關(guān)知識(shí),包括面向?qū)ο蟮幕靖拍睢⒚嫦驅(qū)ο蠓治鼋5脑砼c方法、面向?qū)ο蟪绦虻脑O(shè)計(jì)模式以及設(shè)計(jì)模式的應(yīng)用。第9章講述了軟件項(xiàng)目管理的概念、原理、方法與技術(shù),包括成本管理、進(jìn)度管理、配置管理、風(fēng)險(xiǎn)管理、過(guò)程管理以及管理工具M(jìn)icrosoftProject的應(yīng)用。第10章由實(shí)驗(yàn)和綜合實(shí)例組成,其目的是訓(xùn)練學(xué)生綜合運(yùn)用知識(shí)的能力,鞏固本書(shū)前9章所學(xué)知識(shí),提高工程實(shí)踐與管理的能力。 本書(shū)特別注重引導(dǎo)學(xué)生參與課堂教學(xué)活動(dòng),適合高等院校相關(guān)專業(yè)作為“教學(xué)做”一體化的教材,也可以供軟件工程愛(ài)好者、從業(yè)者自學(xué)使用。 為了便于教學(xué),本書(shū)配有教學(xué)課件和實(shí)踐環(huán)節(jié)與課后習(xí)題參考答案,讀者可從清華大學(xué)出版社網(wǎng)站免費(fèi)下載。 由于編者水平有限,書(shū)中難免存在錯(cuò)誤和疏漏之處,敬請(qǐng)廣大讀者給予批評(píng)指正。 編者 2017年5月
第1章軟件工程基本概念
1.1軟件危機(jī)與軟件工程 1.1.1核心知識(shí) 1.1.2能力目標(biāo) 1.1.3任務(wù)驅(qū)動(dòng) 1.1.4實(shí)踐環(huán)節(jié) 1.2軟件生命周期 1.2.1核心知識(shí) 1.2.2能力目標(biāo) 1.2.3任務(wù)驅(qū)動(dòng) 1.2.4實(shí)踐環(huán)節(jié) 1.3常用的軟件開(kāi)發(fā)模型 1.3.1核心知識(shí) 1.3.2能力目標(biāo) 1.3.3任務(wù)驅(qū)動(dòng) 1.3.4實(shí)踐環(huán)節(jié) 1.4小結(jié) 習(xí)題1 第2章可行性研究 2.1可行性研究概述 2.1.1核心知識(shí) 2.1.2能力目標(biāo) 2.1.3任務(wù)驅(qū)動(dòng) 2.1.4實(shí)踐環(huán)節(jié) 2.2可行性研究報(bào)告 2.2.1核心知識(shí) 2.2.2能力目標(biāo) 2.2.3任務(wù)驅(qū)動(dòng) 2.2.4實(shí)踐環(huán)節(jié) 2.3系統(tǒng)流程圖 2.3.1核心知識(shí) 2.3.2能力目標(biāo) 2.3.3任務(wù)驅(qū)動(dòng) 2.3.4實(shí)踐環(huán)節(jié) 2.4數(shù)據(jù)流圖及數(shù)據(jù)字典 2.4.1核心知識(shí) 2.4.2能力目標(biāo) 2.4.3任務(wù)驅(qū)動(dòng) 2.4.4實(shí)踐環(huán)節(jié) 2.5成本/效益分析 2.5.1核心知識(shí) 2.5.2能力目標(biāo) 2.5.3任務(wù)驅(qū)動(dòng) 2.5.4實(shí)踐環(huán)節(jié) 2.6小結(jié) 習(xí)題2 〖2〗〖4〗 軟件工程 目錄〖3〗 第3章需求分析 3.1需求分析概述 3.1.1核心知識(shí) 3.1.2能力目標(biāo) 3.1.3任務(wù)驅(qū)動(dòng) 3.1.4實(shí)踐環(huán)節(jié) 3.2需求獲取方法 3.2.1核心知識(shí) 3.2.2能力目標(biāo) 3.2.3任務(wù)驅(qū)動(dòng) 3.2.4實(shí)踐環(huán)節(jié) 3.3需求分析與建模 3.3.1核心知識(shí) 3.3.2能力目標(biāo) 3.3.3任務(wù)驅(qū)動(dòng) 3.3.4實(shí)踐環(huán)節(jié) 3.4軟件需求規(guī)格說(shuō)明 3.4.1核心知識(shí) 3.4.2能力目標(biāo) 3.4.3任務(wù)驅(qū)動(dòng) 3.4.4實(shí)踐環(huán)節(jié) 3.5需求驗(yàn)證與管理 3.5.1核心知識(shí) 3.5.2能力目標(biāo) 3.5.3任務(wù)驅(qū)動(dòng) 3.5.4實(shí)踐環(huán)節(jié) 3.6案例分析——圖書(shū)管理系統(tǒng)需求分析 3.7小結(jié) 習(xí)題3 第4章概要設(shè)計(jì) 4.1設(shè)計(jì)概述 4.1.1核心知識(shí) 4.1.2能力目標(biāo) 4.1.3任務(wù)驅(qū)動(dòng) 4.1.4實(shí)踐環(huán)節(jié) 4.2設(shè)計(jì)原理 4.2.1核心知識(shí) 4.2.2能力目標(biāo) 4.2.3任務(wù)驅(qū)動(dòng) 4.2.4實(shí)踐環(huán)節(jié) 4.3設(shè)計(jì)工具 4.3.1核心知識(shí) 4.3.2能力目標(biāo) 4.3.3任務(wù)驅(qū)動(dòng) 4.3.4實(shí)踐環(huán)節(jié) 4.4設(shè)計(jì)方法 4.4.1核心知識(shí) 4.4.2能力目標(biāo) 4.4.3任務(wù)驅(qū)動(dòng) 4.4.4實(shí)踐環(huán)節(jié) 4.5設(shè)計(jì)文檔 4.5.1核心知識(shí) 4.5.2能力目標(biāo) 4.5.3任務(wù)驅(qū)動(dòng) 4.5.4實(shí)踐環(huán)節(jié) 4.6案例分析——圖書(shū)管理系統(tǒng)概要設(shè)計(jì) 4.7小結(jié) 習(xí)題4 第5章詳細(xì)設(shè)計(jì) 5.1設(shè)計(jì)概述 5.1.1核心知識(shí) 5.1.2能力目標(biāo) 5.1.3任務(wù)驅(qū)動(dòng) 5.1.4實(shí)踐環(huán)節(jié) 5.2設(shè)計(jì)工具 5.2.1核心知識(shí) 5.2.2能力目標(biāo) 5.2.3任務(wù)驅(qū)動(dòng) 5.2.4實(shí)踐環(huán)節(jié) 5.3設(shè)計(jì)方法 5.3.1核心知識(shí) 5.3.2能力目標(biāo) 5.3.3任務(wù)驅(qū)動(dòng) 5.3.4實(shí)踐環(huán)節(jié) 5.4設(shè)計(jì)文檔 5.4.1核心知識(shí) 5.4.2能力目標(biāo) 5.4.3任務(wù)驅(qū)動(dòng) 5.4.4實(shí)踐環(huán)節(jié) 5.5McCabe方法 5.5.1核心知識(shí) 5.5.2能力目標(biāo) 5.5.3任務(wù)驅(qū)動(dòng) 5.5.4實(shí)踐環(huán)節(jié) 5.6案例分析——圖書(shū)管理系統(tǒng)詳細(xì)設(shè)計(jì) 5.7小結(jié) 習(xí)題5 第6章編碼與測(cè)試 6.1編碼 6.1.1核心知識(shí) 6.1.2能力目標(biāo) 6.1.3任務(wù)驅(qū)動(dòng) 6.1.4實(shí)踐環(huán)節(jié) 6.2測(cè)試概述 6.2.1核心知識(shí) 6.2.2能力目標(biāo) 6.2.3任務(wù)驅(qū)動(dòng) 6.2.4實(shí)踐環(huán)節(jié) 6.3單元測(cè)試 6.3.1核心知識(shí) 6.3.2能力目標(biāo) 6.3.3任務(wù)驅(qū)動(dòng) 6.3.4實(shí)踐環(huán)節(jié) 6.4集成測(cè)試 6.4.1核心知識(shí) 6.4.2能力目標(biāo) 6.4.3任務(wù)驅(qū)動(dòng) 6.4.4實(shí)踐環(huán)節(jié) 6.5白盒測(cè)試技術(shù) 6.5.1核心知識(shí) 6.5.2能力目標(biāo) 6.5.3任務(wù)驅(qū)動(dòng) 6.5.4實(shí)踐環(huán)節(jié) 6.6黑盒測(cè)試技術(shù) 6.6.1核心知識(shí) 6.6.2能力目標(biāo) 6.6.3任務(wù)驅(qū)動(dòng) 6.6.4實(shí)踐環(huán)節(jié) 6.7JUnit單元測(cè)試 6.7.1核心知識(shí) 6.7.2能力目標(biāo) 6.7.3任務(wù)驅(qū)動(dòng) 6.7.4實(shí)踐環(huán)節(jié) 6.8案例分析——圖書(shū)管理系統(tǒng)測(cè)試 6.9小結(jié) 習(xí)題6 第7章維護(hù) 7.1維護(hù)概述 7.1.1核心知識(shí) 7.1.2能力目標(biāo) 7.1.3任務(wù)驅(qū)動(dòng) 7.1.4實(shí)踐環(huán)節(jié) 7.2維護(hù)實(shí)施過(guò)程 7.2.1核心知識(shí) 7.2.2能力目標(biāo) 7.2.3任務(wù)驅(qū)動(dòng) 7.2.4實(shí)踐環(huán)節(jié) 7.3軟件的可維護(hù)性 7.3.1核心知識(shí) 7.3.2能力目標(biāo) 7.3.3任務(wù)驅(qū)動(dòng) 7.3.4實(shí)踐環(huán)節(jié) 7.4小結(jié) 習(xí)題7 第8章面向?qū)ο蠓椒▽W(xué) 8.1面向?qū)ο蠓椒ǜ攀?br /> 8.1.1核心知識(shí) 8.1.2能力目標(biāo) 8.1.3任務(wù)驅(qū)動(dòng) 8.1.4實(shí)踐環(huán)節(jié) 8.2面向?qū)ο蠓治鼋?br /> 8.2.1核心知識(shí) 8.2.2能力目標(biāo) 8.2.3任務(wù)驅(qū)動(dòng) 8.2.4實(shí)踐環(huán)節(jié) 8.3建立對(duì)象模型 8.3.1核心知識(shí) 8.3.2能力目標(biāo) 8.3.3任務(wù)驅(qū)動(dòng) 8.3.4實(shí)踐環(huán)節(jié) 8.4建立動(dòng)態(tài)模型 8.4.1核心知識(shí) 8.4.2能力目標(biāo) 8.4.3任務(wù)驅(qū)動(dòng) 8.4.4實(shí)踐環(huán)節(jié) 8.5建立功能模型 8.5.1核心知識(shí) 8.5.2能力目標(biāo) 8.5.3任務(wù)驅(qū)動(dòng) 8.5.4實(shí)踐環(huán)節(jié) 8.6設(shè)計(jì)模式簡(jiǎn)介 8.6.1核心知識(shí) 8.6.2能力目標(biāo) 8.6.3任務(wù)驅(qū)動(dòng) 8.6.4實(shí)踐環(huán)節(jié) 8.7面向?qū)ο蟮某绦蛟O(shè)計(jì)與實(shí)現(xiàn) 8.7.1核心知識(shí) 8.7.2能力目標(biāo) 8.7.3任務(wù)驅(qū)動(dòng) 8.7.4實(shí)踐環(huán)節(jié) 8.8案例分析——圖書(shū)管理系統(tǒng)分析與設(shè)計(jì) 8.8.1圖書(shū)管理系統(tǒng)分析 8.8.2圖書(shū)管理系統(tǒng)設(shè)計(jì) 8.9小結(jié) 習(xí)題8 第9章軟件項(xiàng)目管理 9.1軟件項(xiàng)目管理概述 9.1.1核心知識(shí) 9.1.2能力目標(biāo) 9.1.3任務(wù)驅(qū)動(dòng) 9.1.4實(shí)踐環(huán)節(jié) 9.2軟件項(xiàng)目成本管理 9.2.1核心知識(shí) 9.2.2能力目標(biāo) 9.2.3任務(wù)驅(qū)動(dòng) 9.2.4實(shí)踐環(huán)節(jié) 9.3軟件項(xiàng)目進(jìn)度管理 9.3.1核心知識(shí) 9.3.2能力目標(biāo) 9.3.3任務(wù)驅(qū)動(dòng) 9.3.4實(shí)踐環(huán)節(jié) 9.4軟件項(xiàng)目配置管理 9.4.1核心知識(shí) 9.4.2能力目標(biāo) 9.4.3任務(wù)驅(qū)動(dòng) 9.4.4實(shí)踐環(huán)節(jié) 9.5軟件項(xiàng)目風(fēng)險(xiǎn)管理 9.5.1核心知識(shí) 9.5.2能力目標(biāo) 9.5.3任務(wù)驅(qū)動(dòng) 9.5.4實(shí)踐環(huán)節(jié) 9.6CMM與CMMI 9.6.1核心知識(shí) 9.6.2能力目標(biāo) 9.6.3任務(wù)驅(qū)動(dòng) 9.6.4實(shí)踐環(huán)節(jié) 9.7項(xiàng)目管理工具M(jìn)icrosoftProject及使用 9.7.1核心知識(shí) 9.7.2能力目標(biāo) 9.7.3任務(wù)驅(qū)動(dòng) 9.7.4實(shí)踐環(huán)節(jié) 9.8小結(jié) 習(xí)題9 第10章軟件工程實(shí)驗(yàn) 10.1結(jié)構(gòu)化分析實(shí)驗(yàn) 10.1.1實(shí)驗(yàn)?zāi)康?br /> 10.1.2實(shí)驗(yàn)環(huán)境 10.1.3實(shí)驗(yàn)內(nèi)容 10.1.4實(shí)驗(yàn)成果 10.2數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)實(shí)驗(yàn) 10.2.1實(shí)驗(yàn)?zāi)康?br /> 10.2.2實(shí)驗(yàn)環(huán)境 10.2.3實(shí)驗(yàn)內(nèi)容 10.2.4實(shí)驗(yàn)成果 10.3結(jié)構(gòu)化設(shè)計(jì)實(shí)驗(yàn) 10.3.1實(shí)驗(yàn)?zāi)康?br /> 10.3.2實(shí)驗(yàn)環(huán)境 10.3.3實(shí)驗(yàn)內(nèi)容 10.3.4實(shí)驗(yàn)成果 10.4軟件測(cè)試實(shí)驗(yàn) 10.4.1實(shí)驗(yàn)?zāi)康?br /> 10.4.2實(shí)驗(yàn)環(huán)境 10.4.3實(shí)驗(yàn)內(nèi)容 10.4.4實(shí)驗(yàn)成果 10.5軟件項(xiàng)目管理實(shí)驗(yàn) 10.5.1實(shí)驗(yàn)?zāi)康?br /> 10.5.2實(shí)驗(yàn)環(huán)境 10.5.3實(shí)驗(yàn)內(nèi)容 10.5.4實(shí)驗(yàn)成果 10.6綜合實(shí)例——網(wǎng)上書(shū)店系統(tǒng) 10.6.1問(wèn)題定義 10.6.2系統(tǒng)需求分析 10.6.3軟件設(shè)計(jì) 10.6.4系統(tǒng)測(cè)試 參考文獻(xiàn)
第1章
軟件工程基本概念 (1)軟件危機(jī)與軟件工程。 (2)軟件生命周期。 (3)軟件工程的常用模型。 隨著計(jì)算機(jī)科學(xué)技術(shù)的迅速發(fā)展,如何更有效地開(kāi)發(fā)軟件產(chǎn)品越來(lái)越受到人們的重視。同時(shí),由于軟件復(fù)雜程度的不斷增加,開(kāi)發(fā)和維護(hù)的一系列嚴(yán)重問(wèn)題(軟件危機(jī))隨之產(chǎn)生。軟件工程正是致力于解決軟件危機(jī),研究如何更有效地開(kāi)發(fā)和維護(hù)計(jì)算機(jī)軟件的一門新興學(xué)科。 本章將介紹軟件工程的基本概念,包括軟件、軟件危機(jī)、軟件工程、軟件生命周期與常用模型等。 1.1軟件危機(jī)與軟件工程 1.1.1核心知識(shí) 1.計(jì)算機(jī)軟件的發(fā)展 隨著計(jì)算機(jī)硬件性能的極大提高和計(jì)算機(jī)體系結(jié)構(gòu)的不斷更新,計(jì)算機(jī)軟件系統(tǒng)更加成熟和更為復(fù)雜,從而促使計(jì)算機(jī)軟件的角色發(fā)生了巨大的變化,其發(fā)展歷史大致可以分為如下四個(gè)階段。 第一階段是20世紀(jì)50年代初期至60年代初期的十余年,是計(jì)算機(jī)系統(tǒng)開(kāi)發(fā)的初期階段。計(jì)算機(jī)軟件實(shí)際上就是規(guī)模較小的程序,程序的編寫者和使用者往往是同一個(gè)(或同一組)人。由于程序規(guī)模小,程序編寫起來(lái)比較容易,也沒(méi)有什么系統(tǒng)化的方法,對(duì)軟件的開(kāi)發(fā)過(guò)程更沒(méi)有進(jìn)行任何管理。這種個(gè)體化的軟件開(kāi)發(fā)環(huán)境使得軟件設(shè)計(jì)往往只是在人們頭腦中隱含進(jìn)行的一個(gè)模糊過(guò)程,除了程序清單之外,沒(méi)有其他文檔資料。 第二階段跨越了從20世紀(jì)60年代中期到70年代末期的十余年,多用戶系統(tǒng)引入了人機(jī)交互的新概念,實(shí)時(shí)系統(tǒng)能夠從多個(gè)源收集、分析和轉(zhuǎn)換數(shù)據(jù),從而使進(jìn)程的控制和輸出的產(chǎn)生以毫秒而不是分鐘來(lái)運(yùn)行,在線存儲(chǔ)的發(fā)展產(chǎn)生了第一代數(shù)據(jù)庫(kù)管理系統(tǒng)。 第三階段是20世紀(jì)70年代中期至80年代末期,分布式系統(tǒng)極大地提高了計(jì)算機(jī)系統(tǒng)的復(fù)雜性,網(wǎng)絡(luò)的發(fā)展對(duì)軟件開(kāi)發(fā)提出了更高的要求,特別是微處理器的出現(xiàn)和廣泛應(yīng)用,孕育了一系列智能產(chǎn)品。硬件的發(fā)展速度已經(jīng)超過(guò)了人們對(duì)軟件的需求速度,使硬件價(jià)格下降,軟件的價(jià)格急劇上升,導(dǎo)致了軟件危機(jī)的加劇,致使更多的科學(xué)家著手研究軟件工程學(xué)的科學(xué)理論、方法和時(shí)限等一系列問(wèn)題。軟件開(kāi)發(fā)技術(shù)的度量問(wèn)題受到重視,最著名的有軟件工作量估計(jì)COCOMO模型、軟件過(guò)程改進(jìn)模型CMM等。 第四階段是從20世紀(jì)80年代末期開(kāi)始的。這個(gè)階段軟件體系結(jié)構(gòu)從集中式的主機(jī)模式轉(zhuǎn)變?yōu)榉植际降目蛻魴C(jī)/服務(wù)器模式(C/S)或?yàn)g覽器/服務(wù)器模式(B/S),專家系統(tǒng)和人工智能軟件從實(shí)驗(yàn)室走出來(lái)進(jìn)入了實(shí)際應(yīng)用,完善的系統(tǒng)軟件、豐富的系統(tǒng)開(kāi)發(fā)工具和商品化的應(yīng)用程序的大量出現(xiàn),以及通信技術(shù)和計(jì)算機(jī)網(wǎng)絡(luò)的飛速發(fā)展,使計(jì)算機(jī)進(jìn)入了一個(gè)大發(fā)展的階段。 2.計(jì)算機(jī)軟件的定義及特點(diǎn) 軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的一部分,包括程序、數(shù)據(jù)及其說(shuō)明文檔。其中程序是能夠完成特定功能的指令序列;數(shù)據(jù)是程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu);文檔是與程序設(shè)計(jì)、開(kāi)發(fā)及維護(hù)有關(guān)的各種圖文資料。 軟件同傳統(tǒng)的工業(yè)產(chǎn)品相比,具有以下特點(diǎn)。 (1)軟件是一種邏輯產(chǎn)品。軟件產(chǎn)品是看不見(jiàn)、摸不著的,因而具有無(wú)形性。它是腦力勞動(dòng)的結(jié)晶,是以程序和文檔的形式出現(xiàn)的,保存在計(jì)算機(jī)存儲(chǔ)器和光盤介質(zhì)上,通過(guò)計(jì)算機(jī)的執(zhí)行才能體現(xiàn)其功能和作用。 (2)軟件產(chǎn)品的生產(chǎn)主要是研發(fā),軟件產(chǎn)品的成本主要體現(xiàn)在軟件研發(fā)所需要的人力上。軟件一旦研發(fā)成功,通過(guò)復(fù)制就能產(chǎn)生大量軟件產(chǎn)品。 (3)軟件在使用過(guò)程中,沒(méi)有磨損、老化的問(wèn)題。但在使用過(guò)程中為了適應(yīng)硬件環(huán)境以及需求的變化需要進(jìn)行修改。當(dāng)修改的成本變得難以接受時(shí),軟件就被拋棄。 (4)軟件的開(kāi)發(fā)主要是腦力勞動(dòng)。 (5)軟件會(huì)越來(lái)越復(fù)雜。軟件涉及人類社會(huì)的各行各業(yè)、方方面面,軟件開(kāi)發(fā)常常涉及其他領(lǐng)域的專門知識(shí),這對(duì)軟件工程師提出了很高的要求。 (6)軟件的成本相當(dāng)昂貴。軟件研發(fā)需要投入大量、高強(qiáng)度的腦力勞動(dòng),成本非常高,風(fēng)險(xiǎn)也很大。 (7)軟件工作牽涉很多社會(huì)因素。軟件的開(kāi)發(fā)和運(yùn)行涉及機(jī)構(gòu)、體制和管理方式等問(wèn)題,還會(huì)涉及人們的觀念和心理等因素。 3.軟件危機(jī)與軟件工程 20世紀(jì)60年代中期,大容量、高速度計(jì)算機(jī)的出現(xiàn),使計(jì)算機(jī)的應(yīng)用范圍迅速擴(kuò)大,軟件開(kāi)發(fā)急劇增長(zhǎng)。軟件系統(tǒng)的規(guī)模越來(lái)越大,復(fù)雜程度越來(lái)越高,軟件可靠性問(wèn)題也越來(lái)越突出。原來(lái)的個(gè)人設(shè)計(jì)、個(gè)人使用的方式不再能滿足要求,迫切需要改變軟件生產(chǎn)方式,提高軟件生產(chǎn)率,致使軟件危機(jī)爆發(fā)。事實(shí)上,軟件危機(jī)幾乎從計(jì)算機(jī)誕生的那一天起就出現(xiàn)了,只不過(guò)到了1968年,北大西洋公約組織的計(jì)算機(jī)科學(xué)家在聯(lián)邦德國(guó)召開(kāi)的國(guó)際學(xué)術(shù)會(huì)議上才第一次提出了“軟件危機(jī)”這個(gè)名詞。 軟件危機(jī)是指在計(jì)算機(jī)軟件的開(kāi)發(fā)和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重問(wèn)題。這類問(wèn)題絕不僅僅是“不能正常運(yùn)行的軟件”才具有的,幾乎所有軟件都不同程度地存在這類問(wèn)題。概括來(lái)說(shuō),軟件危機(jī)包含兩方面問(wèn)題:如何開(kāi)發(fā)軟件,以滿足對(duì)軟件日益增長(zhǎng)的需求;如何維護(hù)數(shù)量不斷膨脹的已有軟件產(chǎn)品。 具體地說(shuō),軟件危機(jī)主要有下列典型表現(xiàn)。 (1)軟件開(kāi)發(fā)進(jìn)度難以預(yù)測(cè),軟件開(kāi)發(fā)成本難以控制。開(kāi)發(fā)成本超出預(yù)算,實(shí)際進(jìn)度比預(yù)訂計(jì)劃一再拖延。 (2)用戶對(duì)產(chǎn)品功能難以滿足。 (3)軟件產(chǎn)品質(zhì)量無(wú)法保證。 (4)軟件產(chǎn)品難以維護(hù)。 (5)軟件缺少適當(dāng)?shù)奈臋n資料。 (6)軟件的成本不斷提高。 (7)軟件開(kāi)發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和人們需求的增長(zhǎng)。 之所以出現(xiàn)軟件危機(jī),其主要原因一方面是與軟件本身的特點(diǎn)有關(guān);另一方面是與軟件開(kāi)發(fā)和維護(hù)的方法不正確。 為了消除軟件危機(jī),既要有技術(shù)措施,又要有組織管理措施。軟件工程正是從技術(shù)和管理兩方面研究如何更有效地開(kāi)發(fā)和維護(hù)計(jì)算機(jī)軟件的一門新興學(xué)科。 1968年秋季,第一屆NATO(北約)會(huì)議上第一次提出了軟件工程這個(gè)概念。概括地說(shuō),軟件工程是一門指導(dǎo)計(jì)算機(jī)軟件開(kāi)發(fā)和維護(hù)的學(xué)科。它采用工程的概念、原理、技術(shù)和方法來(lái)開(kāi)發(fā)與維護(hù)軟件,把先進(jìn)的、正確的管理理念和當(dāng)前最好的技術(shù)結(jié)合起來(lái),以最小經(jīng)濟(jì)代價(jià)開(kāi)發(fā)出高質(zhì)量的軟件并維護(hù)它。 ……
你還可能感興趣
我要評(píng)論
|