版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第1章概述
1.1軟件1.2軟件工程1.3軟件生命周期1.4軟件工程的目標1.5軟件工程的開發(fā)原則1.6軟件工程方法學(xué)1.7計算機輔助軟件工程1.8軟件工程與其他相關(guān)學(xué)科的關(guān)系1.9軟件工程職業(yè)道德規(guī)范1.10軟件工程發(fā)展趨勢1.11實戰(zhàn)訓(xùn)練 1.1軟件
1.1.1軟件的特點及分類
軟件的定義是隨著計算機技術(shù)的發(fā)展而逐步完善的。在20世紀50年代,人們認為軟件就等于程序;60年代人們認識到軟件的開發(fā)文檔在軟件中的作用,提出軟件等于程序加文檔,但這里的文檔僅是指軟件開發(fā)過程中所涉及的分析、設(shè)計、實現(xiàn)、測試、維護等方面的文檔,不包括管理文檔;到了70年代人們又給軟件的定義中加入了數(shù)據(jù)。因此,軟件是計算機系統(tǒng)中與硬件相互依存的一部分,它包括:●在運行中能提供所希望的功能與性能的程序;
●使程序能夠正確運行的數(shù)據(jù)及其結(jié)構(gòu);
●描述軟件研制過程和方法的文檔。
1.軟件的特點
從廣義來說,軟件與硬件一樣,也是產(chǎn)品,但兩者之間是有差別的,了解并理解這種差別,對理解軟件工程是非常重要的。軟件的特點包括以下幾點:
(1)軟件角色的雙重性。軟件作為一種產(chǎn)品具有雙重性:一方面它是一個產(chǎn)品,利用它來表現(xiàn)計算機硬件的計算潛能,無論它是在主機中還是駐留在設(shè)備(如手機)中,軟件就是一個信息轉(zhuǎn)換器,可以產(chǎn)生、管理、獲取、修改、顯示或傳送信息;另一方面它又是產(chǎn)品交付使用的載體,它可以控制計算機(如操作系統(tǒng)),可以實現(xiàn)計算機之間的通信,又可以創(chuàng)建其他程序與控制。
(2)軟件是被開發(fā)或設(shè)計出來的,而不是傳統(tǒng)意義上所說的被制造出來的。一般意義上的產(chǎn)品,包括硬件產(chǎn)品,總要經(jīng)過分析、設(shè)計、制造、測試等過程,也就是說要經(jīng)過一個從無形的設(shè)想到一個有形的產(chǎn)品的過程。但軟件僅僅是一個邏輯上的產(chǎn)品而不是有形的系統(tǒng)元件,軟件是通過人的智力勞動設(shè)計開發(fā)出來的,而不是制造出來的。而且軟件一旦被開發(fā)出來,就可以進行大量的復(fù)制,因此其研制成本要遠遠大于生產(chǎn)成本。這也意味著軟件的開發(fā)不能像制造其他產(chǎn)品那樣進行管理。
(3)軟件不會“磨損”,但會退化。一般情況下,有形的硬件產(chǎn)品在使用過程中總會有磨損。在使用初期,磨損往往比較嚴重(這實際上是磨合),而經(jīng)過了一段不長時間的磨合后,將進入相對的穩(wěn)定期。隨著時間的流逝,硬件的磨損再次趨于嚴重,這也意味著硬件的壽命快要到了。硬件的磨損與時間之間的關(guān)系可以用圖1.1所示的“浴缸曲線”來表示。軟件并不是一種有形的產(chǎn)品,因此也就不存在所謂的“磨損”問題。理想情況下,軟件的故障曲線應(yīng)該是圖1.2中所示的理想曲線。在軟件的運行初期,未知的錯誤使得程序有較高的故障率,當修正了這些錯誤而且未引入新的錯誤時,軟件將進入一種比較理想的平穩(wěn)運行期。這說明軟件是不會“磨損”的。但在實際情況中,軟件盡管不會“磨損”,但會退化,如圖1.2中的實際曲線那樣。這是因為軟件在其生命周期中會經(jīng)歷多次修改,每次修改都會引入新的錯誤,而對這些錯誤又要進行新的修改,使得軟件的故障曲線呈現(xiàn)一種鋸齒形,導(dǎo)致最后的故障率慢慢升高,即軟件產(chǎn)生了退化,而這種退化緣于修改。圖1.1硬件故障率曲線圖1.2軟件故障率曲線
(4)絕大多數(shù)軟件都是定制的且是手工編寫的。在硬件制造業(yè),構(gòu)件的復(fù)用是非常自然的。理想情況下,軟件構(gòu)件應(yīng)該能夠被復(fù)用于不同的程序。但由于軟件本身的特殊性,軟件構(gòu)件復(fù)用才剛剛起步。盡管今天的面向?qū)ο蠹夹g(shù)、構(gòu)件技術(shù)已經(jīng)使軟件的復(fù)用逐漸成為流行,但這種復(fù)用還不能做到像硬件產(chǎn)品那樣拿來即用,還需要進行必要的定制(構(gòu)件之間的組合、接口的設(shè)計、功能的修改與擴充等),而且軟件開發(fā)中構(gòu)件的使用比例也是有限的。整個軟件產(chǎn)品的設(shè)計基本上還依賴于人們的智力與手工勞動。
(5)開發(fā)過程的復(fù)雜與昂貴的費用?,F(xiàn)代軟件的體系結(jié)構(gòu)越來越復(fù)雜,規(guī)模越來越龐大,所涉及的學(xué)科也越來越多,導(dǎo)致了軟件的開發(fā)過程也異常復(fù)雜。靠一個人單槍匹馬開發(fā)一套軟件的時代已經(jīng)一去不復(fù)返了,而是需要一個分工明確、層次合理、組織嚴密的團隊才能完成。這樣,軟件的開發(fā)成本也會越來越昂貴。
2.軟件的分類
軟件的應(yīng)用非常廣泛,幾乎滲透到各行各業(yè)。因此要給出一個科學(xué)的、統(tǒng)一的、嚴格的計算機軟件分類標準是不現(xiàn)實也是不可能的,但可以從不同的角度對軟件進行適當?shù)姆诸悺3S玫能浖诸惙椒暗湫蛻?yīng)用如表1.1所示。1.1.2軟件的發(fā)展
自20世紀40年代出現(xiàn)了世界上第一臺計算機以后,就有了程序的概念,可以認為它是軟件的前身。經(jīng)過了幾十年的發(fā)展,人們對軟件有了更深刻的認識。在這幾十年中,計算機軟件經(jīng)歷了程序設(shè)計、程序系統(tǒng)和軟件工程三個發(fā)展時期。
表1.2列出了三個發(fā)展時期主要特征的對比,由此可以看出幾十年來軟件最根本的變化。1.1.3軟件危機及其表現(xiàn)
所謂軟件危機,即指在軟件開發(fā)與維護過程中遇到的一系列嚴重問題。
軟件危機主要表現(xiàn)在以下方面:
(1)軟件開發(fā)進度難以預(yù)測;
(2)軟件開發(fā)成本難以控制;
(3)用戶對軟件產(chǎn)品的功能要求難以滿足;
(4)軟件產(chǎn)品的質(zhì)量無法保證,系統(tǒng)中的錯誤難以消除;
(5)軟件產(chǎn)品難以維護;
(6)軟件缺少適當?shù)奈臋n資料;
(7)軟件開發(fā)的速度難以滿足社會需求的增長。1.1.4軟件危機產(chǎn)生的主要原因
隨著社會對計算機應(yīng)用需求的增長,軟件系統(tǒng)的規(guī)模越來越龐大,開發(fā)難度和成本越來越高,軟件需求量劇增,軟件質(zhì)量沒有可靠的保證,軟件開發(fā)的生產(chǎn)率低。這些因素構(gòu)成了軟件生產(chǎn)的惡性循環(huán)。軟件生產(chǎn)的復(fù)雜性和高成本,使大型軟件的生產(chǎn)出現(xiàn)了很大的困難,由此出現(xiàn)了“軟件危機”,其具體表現(xiàn)如下:
(1)開發(fā)人員和用戶之間的矛盾。用戶在開發(fā)初期,由于各種原因往往不能準確地提出需求描述;開發(fā)人員在還沒有準確、完整地了解用戶的實際需求后就急于編程。
(2)大型軟件項目需要組織一定的人力共同完成,多數(shù)管理人員缺乏開發(fā)大型軟件系統(tǒng)的經(jīng)驗;多數(shù)軟件開發(fā)人員缺乏協(xié)同方面的經(jīng)驗;軟件項目開發(fā)人員不能有效地、獨立自主地處理大型軟件的全部關(guān)系和各個分支,因此容易產(chǎn)生疏漏和錯誤。
(3)缺乏有力的方法學(xué)和工具方面的支持,過分依靠程序設(shè)計人員的技巧和創(chuàng)造性。重編程,輕需求分析;重開發(fā),輕維護;重程序,輕文檔。這樣做的后果就是在軟件系統(tǒng)中“埋藏”了許多故障隱患,直接危害著系統(tǒng)的可靠性和穩(wěn)定性。1.1.5解決軟件危機的途徑
分析了造成軟件危機的原因后,人們開始探索用工程的方法進行軟件生產(chǎn)的可能性,即用軟件工程的概念、原理、技術(shù)和方法進行軟件的開發(fā)、管理、維護和更新。于是,計算機科學(xué)的一個新領(lǐng)域——“軟件工程”誕生了。 1.2軟件工程
1.2.1軟件工程的概念
通俗地說,軟件工程即借用傳統(tǒng)工程設(shè)計的基本思想,采用工程化的概念、原理、技術(shù)和方法來開發(fā)與維護軟件,突出軟件生產(chǎn)的科學(xué)方法,把經(jīng)過時間考驗而證明正確的管理技術(shù)與當前能夠得到的最好的技術(shù)和方法結(jié)合起來,降低開發(fā)成本,縮短研制周期,提高軟件的可靠性和生產(chǎn)效率。軟件工程是指導(dǎo)計算機軟件開發(fā)和維護的工程學(xué)科。經(jīng)過40多年的發(fā)展,軟件的工程化生產(chǎn)已成為軟件產(chǎn)業(yè)。軟件已成為產(chǎn)品,它涉及產(chǎn)值、市場、版權(quán)和法律保護等方面的問題。
軟件工程是一門交叉學(xué)科,需要用管理學(xué)的原理和方法來進行軟件生產(chǎn)管理,用工程學(xué)的觀點來進行費用估算,制定進度和實施方案,用數(shù)學(xué)方法來建立軟件可靠性模型并分析各種算法。1.2.2軟件工程的三要素
軟件工程以關(guān)注軟件質(zhì)量為目標,由方法、工具和過程三個要素構(gòu)成,如圖1.3所示。
軟件工程方法為軟件開發(fā)提供了“如何做”的技術(shù),涉及軟件工程的多個方面,如項目計劃與估算、軟件系統(tǒng)需求分析、數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)總體結(jié)構(gòu)的設(shè)計、算法過程的設(shè)計、編碼、測試以及維護等。
軟件工程工具為軟件工程方法提供了自動的或半自動的軟件支撐環(huán)境。目前,已經(jīng)推出了許多軟件工程工具,這些軟件工程工具集成起來,建立起了稱之為計算機輔助軟件工程(ComputerAidedSoftwareEngineering,CASE)的軟件開發(fā)支撐系統(tǒng)。CASE將各種軟件工程工具、開發(fā)機器和一個存放開發(fā)過程信息的工程數(shù)據(jù)庫組合起來,形成一個軟件工程
環(huán)境。圖1.3軟件工程三要素軟件工程過程將軟件工程的方法和工具綜合起來,以達到合理、及時地進行計算機軟件開發(fā)的目的。過程定義了方法使用的順序、要求交付的文檔資料、為保證質(zhì)量和協(xié)調(diào)變化所需要的管理及軟件開發(fā)各個階段完成的里程碑。
1.3軟件生命周期
軟件產(chǎn)品從形成概念開始,經(jīng)過開發(fā)、使用和維護,直到最后退役的全過程稱為軟件的生命周期。軟件的生命周期可以根據(jù)軟件所處的狀態(tài)、特征以及軟件開發(fā)活動的目的、任務(wù)劃分為若干個時期,而每一個時期又進一步劃分為若干個階段。我國國家標準《計算機軟件開發(fā)規(guī)范》(GB8566—88)把軟件生命周期劃分為可行性研究與計劃、需求分析、概要設(shè)計、詳細設(shè)計、實現(xiàn)、組裝測試、確認測試、使用與維護八個階段。通常,人們把可行性研究與計劃、需求分析兩個階段稱為軟件定義時期,把概要設(shè)計、詳細設(shè)計、實現(xiàn)、組裝測試和確認測試等五個階段稱為軟件開發(fā)時期,而把使用與維護階段稱為軟件運行與維護時期。軟件生命周期各個時期及階段的關(guān)系如圖1.4所示。圖1.4軟件生命周期各個時期及階段的關(guān)系軟件生命周期各階段的主要工作步驟、任務(wù)和階段性成果如下。
1.軟件定義時期
在軟件生命周期中,軟件定義時期又可分為可行性研究與計劃和需求分析兩個階段。
(1)可行性研究與計劃階段。
①問題定義:通過調(diào)研,提出要解決的問題、工程目標和規(guī)模,形成用戶的初步需求報告并得到用戶的確認。
②可行性論證:根據(jù)用戶確認的初步用戶需求報告和現(xiàn)實環(huán)境條件,從技術(shù)、經(jīng)濟和社會等方面研究并論證軟件系統(tǒng)的可行性,對方案進行選擇并形成可行性分析報告。
③制定初步的項目開發(fā)計劃:包括選用資源、定義任務(wù)、風(fēng)險分析、成本估算、成本效益分析及工程進度安排等。
(2)需求分析階段。
①需求調(diào)查:對軟件的需求及其使用環(huán)境進行詳細調(diào)查,掌握用戶的要求和環(huán)境所能提供的條件。
②功能、性能與環(huán)境約束分析:根據(jù)掌握的情況,對軟件系統(tǒng)的功能(即回答系統(tǒng)必須做什么)、性能(包括軟件的安全性、可靠性、可維護性、精度、錯誤處理、適應(yīng)性及用戶培訓(xùn)等)和環(huán)境約束(指待開發(fā)的軟件系統(tǒng)必須滿足運行環(huán)境方面的要求)進行分析研究,與用戶取得一致的認識。③編制軟件需求規(guī)格說明:把軟件系統(tǒng)的功能需求、性能需求、接口需求、設(shè)計需求、基本結(jié)構(gòu)、開發(fā)標準及驗收原則等寫成軟件需求規(guī)格說明,并得到用戶的確認。
④制定軟件系統(tǒng)的確認測試準則和用戶手冊概要:根據(jù)確認的軟件開發(fā)標準及驗收原則制定具體的軟件確認測試準則和用戶手冊概要或提綱。
2.軟件開發(fā)時期
(1)概要設(shè)計階段。
①建立軟件系統(tǒng)的總體結(jié)構(gòu):根據(jù)軟件需求規(guī)格說明,對軟件系統(tǒng)的總體功能進行模塊分解,形成系統(tǒng)的功能結(jié)構(gòu)圖。
②定義功能模塊的接口:定義模塊的功能和模塊之間的關(guān)系,給出各模塊接口界面的定義。
③設(shè)計全局數(shù)據(jù)庫和數(shù)據(jù)結(jié)構(gòu):從應(yīng)用問題的領(lǐng)域出發(fā),定義基本數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)的屬性,設(shè)計全局數(shù)據(jù)庫的邏輯結(jié)構(gòu)。
④規(guī)定設(shè)計約束:定義軟件系統(tǒng)的邊界,并給出系統(tǒng)設(shè)計的約束說明。
⑤編制概要設(shè)計文檔:包括概要設(shè)計說明書、數(shù)據(jù)庫或數(shù)據(jù)結(jié)構(gòu)說明書和組裝測試計劃等文件。
(2)詳細設(shè)計階段。
①模塊詳細設(shè)計:包括模塊的詳細功能、算法、數(shù)據(jù)結(jié)構(gòu)和模塊間的接口信息等設(shè)計,擬定模塊測試方案。
②編制模塊的詳細規(guī)格說明:把模塊詳細設(shè)計的結(jié)果匯總,形成模塊詳細規(guī)格說明書。
(3)實現(xiàn)階段。
①編碼:根據(jù)模塊詳細規(guī)格說明書,將詳細設(shè)計轉(zhuǎn)化為程序代碼。
②單元測試:對模塊程序進行測試,驗證模塊功能及接口與詳細設(shè)計文檔的一致性,并形成單元測試報告。
(4)組裝測試階段。
①模塊程序組裝與測試:根據(jù)概要設(shè)計中各功能模塊的說明及制定的組裝測試計劃,對經(jīng)過單元測試的模塊逐步進行組裝和測試。
②編制組裝測試報告:將通過組裝測試的軟件按概要設(shè)計的要求,生成可運行的系統(tǒng)源程序并編寫組裝測試報告。
(5)確認測試階段。
①軟件系統(tǒng)測試:根據(jù)軟件需求規(guī)格說明定義的全部功能和性能要求及軟件確認測試準則,對軟件系統(tǒng)進行總測試。
②編制確認測試文檔:向用戶提供以確認測試報告為主的有關(guān)文檔,包括系統(tǒng)操作手冊、源程序清單和項目開發(fā)總結(jié)報告等。
③軟件評審:由專家、用戶、軟件開發(fā)人員組成的軟件評審小組對軟件確認報告、測試結(jié)果和軟件進行評審,并將得到確認的軟件產(chǎn)品交付用戶使用。
3.軟件運行與維護時期
(1)軟件的使用階段:將軟件安裝在用戶確定的運行環(huán)境中使用。
(2)軟件的維護階段:對軟件產(chǎn)品進行修改或根據(jù)軟件需求變化作出響應(yīng),并對所有的維護寫出維護報告。
(3)軟件的退役階段:軟件一旦完成了使命,或者一個新的軟件生命周期即將開始,就要終止對原軟件產(chǎn)品的支持,停止使用該軟件。 1.4軟件工程的目標
軟件工程研究的對象是大型軟件系統(tǒng)的開發(fā)過程,它研究的內(nèi)容是生產(chǎn)流程、各生產(chǎn)步驟的目的、任務(wù)、方法、技術(shù)、工具、文檔和產(chǎn)品規(guī)格。
軟件工程的基本目標是生產(chǎn)具有正確性、可用性及開銷合宜(合算性)的產(chǎn)品。正確性意指軟件產(chǎn)品達到預(yù)期功能的程度;可用性意指軟件基本結(jié)構(gòu)、實現(xiàn)及文檔達到用戶可用的程度;開銷合宜意指軟件開發(fā)、運行的整個開銷滿足用戶的需求。軟件工程的其他目標是:在給定成本和進度的前提下,開發(fā)出具有適用性、有效性、可修改性、可靠性、可理解性、可維護性、可重用性、可移植性、可追蹤性、可互操作性和滿足用戶需求的產(chǎn)品。追求這些目標有助于提高軟件產(chǎn)品的質(zhì)量和開發(fā)效率,減少維護的困難。
(1)適用性:軟件在不同的系統(tǒng)約束條件下,使用戶需求得到滿足的難易程度。
(2)有效性:軟件系統(tǒng)能最有效地利用計算機的時間和空間資源。各種軟件無不把系統(tǒng)的時/空開銷作為衡量軟件質(zhì)量的一項重要技術(shù)指標。在很多場合,在追求時間有效性和空間有效性時會發(fā)生矛盾,這時不得不犧牲時間有效性來換取空間有效性,或犧牲空間有效性以換取時間有效性。時/空折中是經(jīng)常采用的技巧。
(3)可修改性:允許對系統(tǒng)進行修改而不增加原系統(tǒng)的復(fù)雜性。
(4)可靠性:能防止因概念、設(shè)計和結(jié)構(gòu)等方面的不完善而造成軟件系統(tǒng)失效,具有挽回因操作不當而造成軟件系統(tǒng)失效的能力。
(5)可理解性:系統(tǒng)具有清晰的結(jié)構(gòu),能直接反映問題的所在。可理解性有助于控制軟件的復(fù)雜性,并支持軟件的維護、移植或重用。
(6)可維護性:軟件交付使用后,能夠?qū)λM行修改,以改正潛在的錯誤,還能夠改進性能和其他屬性,使軟件產(chǎn)品能適應(yīng)環(huán)境的變化等。軟件維護費用在軟件開發(fā)費用中占有很大的比重??删S護性是軟件工程中一項十分重要的目標。
(7)可重用性:把概念或功能相對獨立的一個或一組相關(guān)模塊定義為一個軟部件,使之可組裝在系統(tǒng)的任何位置,從而降低開發(fā)工作量。
(8)可移植性:軟件從一個計算機系統(tǒng)或環(huán)境搬到另一個計算機系統(tǒng)或環(huán)境的能力。
(9)可追蹤性:根據(jù)軟件需求對軟件設(shè)計、程序進行正向追蹤的能力,或根據(jù)軟件設(shè)計、程序?qū)浖枨蟮哪嫦蜃粉櫟哪芰Α?/p>
(10)可互操作性:多個軟件元素相互通信并協(xié)同完成任務(wù)的能力。 1.5軟件工程的開發(fā)原則
軟件工程的目標給軟件開發(fā)提出了明確的要求。為了達到這些要求,在軟件開發(fā)過程中必須遵循下列軟件工程的原則:抽象、信息隱藏、模塊化、局部化、一致性、完整性和可驗證性。
(1)抽象(Abstraction):抽取事物最基本的特性和行為,忽略其非基本的細節(jié),以控制軟件開發(fā)過程的復(fù)雜性,有利于軟件的可理解性和開發(fā)過程的管理。
(2)信息隱藏(InformationHiding):將模塊中的軟件設(shè)計內(nèi)容和實現(xiàn)決策封裝起來,在系統(tǒng)的結(jié)構(gòu)分析與設(shè)計中把模塊看成是一個“黑箱”,模塊內(nèi)部的實現(xiàn)細節(jié)被隱藏,而外部只提供功能和接口的有關(guān)說明,使軟件開發(fā)人員能夠?qū)⒆⒁饬性诟邔哟蔚某橄笊稀?/p>
(3)模塊化(Modularity):將大的、復(fù)雜的程序,分成一個個邏輯上相對獨立、功能相對簡單的小程序,只要定義好這些小程序的接口和設(shè)計關(guān)系,就可以將復(fù)雜的程序分解為若干簡單的程序來處理,有助于信息隱藏和抽象,有助于降低軟件系統(tǒng)的復(fù)雜性。
(4)局部化(Localization):在物理模塊內(nèi)集中邏輯上相互關(guān)聯(lián)的計算資源,從物理和邏輯兩個方面保證系統(tǒng)中模塊內(nèi)部的高內(nèi)聚性和模塊之間的低耦合性,有助于模塊的獨立性。
(5)一致性(Consistency):整個軟件系統(tǒng)(包括程序和文檔)使用一致的概念、符號和術(shù)語,一致的程序內(nèi)部接口和硬、軟件接口,一致的系統(tǒng)規(guī)格說明與形式化公理系統(tǒng),一致的系統(tǒng)界面、編碼風(fēng)格和數(shù)據(jù)組織形式等。一致性原則支持系統(tǒng)的正確性和可靠性。
(6)完整性(Completeness):軟件系統(tǒng)不丟失任何重要成分,系統(tǒng)具有服從需求的完整功能和實現(xiàn)功能所需的數(shù)據(jù)。
(7)可驗證性(Verifiability):大型軟件在功能分解和實施中,遵循系統(tǒng)容易檢查、測試、評審的原則,以保證軟件系統(tǒng)的正確性和可用性。 1.6軟件工程方法學(xué)
1.傳統(tǒng)方法學(xué)
傳統(tǒng)方法學(xué)也稱為生命周期方法學(xué)。它采用結(jié)構(gòu)化的分析、設(shè)計和實現(xiàn)完成軟件開發(fā)的各項任務(wù),并使用適當?shù)能浖ぞ呋蜍浖こ汰h(huán)境支持結(jié)構(gòu)化技術(shù)的運用。這種方法學(xué)將軟件周期的全過程依次劃分為若干階段,并按順序完成每個階段的任務(wù)。這樣每個階段相對獨立,比較簡單,便于不同人員協(xié)同工作,降低了開發(fā)維護的難度。同時,由于上一個階段做完后才開始下一個階段,每個階段都能集中良好的技術(shù)和管理,使得整個過程都以有條不紊的方式進行。傳統(tǒng)方法學(xué)操作簡單,成功率高,是目前使用的最廣泛的方法學(xué)。
2.面向?qū)ο蠓椒▽W(xué)
在軟件的規(guī)模龐大或?qū)浖男枨竽:惹闆r下,選擇面向?qū)ο蠓椒▽W(xué)可以達到很好的效果。面向?qū)ο蠓椒▽W(xué)的主要特點是引入了類和對象的概念,盡量模擬人類的思維習(xí)慣,使軟件開發(fā)與維護盡可能接近人類認識世界和解決問題的過程和方法。 1.7計算機輔助軟件工程
計算機輔助軟件工程(ComputerAidedSoftwareEngineering,CASE)是一組工具和方法的集合,用于輔助軟件開發(fā)、維護、管理過程中的各項活動,促進軟件過程的工程化和自動化,實現(xiàn)高效率和高質(zhì)量的軟件開發(fā)。今天,CASE
工具已經(jīng)由支持單一任務(wù)的單個工具向支持整個開發(fā)過程的集成化軟件工程環(huán)境的方向發(fā)展,同時注重用戶界面的設(shè)計,不斷采用新理論和新技術(shù),成為軟件工程領(lǐng)域的一個重要分支。
目前,市場上有許多商業(yè)化的CASE工具,它們在一定程度上促進了軟件過程的工程化。表1.3中列舉了一些有代表性的CASE產(chǎn)品。
1.8軟件工程與其他相關(guān)學(xué)科的關(guān)系
軟件工程是一門交叉性的工程學(xué)科,如圖1.5所示。它將計算機科學(xué)、數(shù)學(xué)、工程學(xué)和管理學(xué)等基本原理應(yīng)用于軟件開發(fā)的工程實踐中,并借鑒傳統(tǒng)工程的原則和方法,以系統(tǒng)的、可控的、有效的方式生產(chǎn)高質(zhì)量的軟件產(chǎn)品。
軟件工程以計算機科學(xué)和數(shù)學(xué)為基礎(chǔ),將這些學(xué)科的基本原理應(yīng)用于構(gòu)造軟件的模型與算法,力求提出更系統(tǒng)化和更形式化的軟件開發(fā)方法,并采用適當?shù)姆椒炞C即將開發(fā)的軟件。圖1.5軟件工程與其他相關(guān)學(xué)科的關(guān)系然而,正確的軟件開發(fā)實踐不僅僅需要計算學(xué)科的基本原理,更重要的是將工程化的原則和方法應(yīng)用于軟件的分析與評價、規(guī)格說明、設(shè)計、實現(xiàn)和演化等過程。軟件工程運用工程科學(xué)的基本原理,結(jié)合特定領(lǐng)域的基礎(chǔ)知識和相關(guān)的專業(yè)知識,通過成本評估與權(quán)衡,提出合理的問題解決方案,在軟件開發(fā)實踐的基礎(chǔ)上制定標準與規(guī)范,重用設(shè)計和設(shè)計制品。事實證明,成功的軟件開發(fā)往往離不開規(guī)范化的開發(fā)管理。軟件工程將管理科學(xué)應(yīng)用于軟件開發(fā)的計劃、資源、質(zhì)量、成本等管理,協(xié)調(diào)和控制整個過程與項目的進展,組織和建設(shè)開發(fā)團隊,實施風(fēng)險分析和變更管理,最終實現(xiàn)軟件開發(fā)的目標。
需要強調(diào)的是,由于軟件自身的特殊性,軟件工程與傳統(tǒng)工程存在著明顯的區(qū)別,它更強調(diào)抽象、建模、信息的組織與表示以及變更的管理,另外還包括了軟件開發(fā)過程的質(zhì)量控制活動,尤其重視持續(xù)的演變(即“維護”)。1.9軟件工程職業(yè)道德規(guī)范
職業(yè)道德是所有從業(yè)人員應(yīng)當具備的最基本的道德素養(yǎng),也是在其職業(yè)活動中應(yīng)當遵循的最基本的行為準則。
IEEE-CS和ACM聯(lián)合制定了《軟件工程職業(yè)道德和職業(yè)行為準則》,包括有關(guān)專業(yè)軟件工程師行為和決斷的8項原則,要求軟件工程人員應(yīng)履行其承諾,使軟件的需求分析、規(guī)格說明、設(shè)計、開發(fā)、測試和維護成為一項對社會有益和受人尊敬的職業(yè)。軟件工程師應(yīng)當遵循的8項原則是:
(1)公眾:軟件工程人員應(yīng)始終與公眾利益保持一致;
(2)客戶和雇主:在與公眾利益保持一致的原則下,軟件工程人員應(yīng)滿足客戶和
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 青少年犯罪的特點
- 2026年及未來5年市場數(shù)據(jù)中國動力煤行業(yè)發(fā)展前景預(yù)測及投資方向研究報告
- 2026年及未來5年市場數(shù)據(jù)中國濃度檢測行業(yè)發(fā)展監(jiān)測及投資戰(zhàn)略規(guī)劃建議報告
- 老年慢性疼痛的社區(qū)非藥物干預(yù)學(xué)科建設(shè)
- 女兵考試題及答案
- 2026年經(jīng)濟學(xué)考研必考知識點宏觀經(jīng)濟模擬題集
- 課件防火墻技術(shù)
- 2026年度黃山市屯溪區(qū)事業(yè)單位統(tǒng)一公開招聘工作人員40名備考考試題庫及答案解析
- 吃藥安全課件中班
- 2026江蘇南京市秦淮區(qū)朝天宮街道食品安全執(zhí)法輔助人員招聘1人備考題庫(含答案詳解)
- 消防廉潔自律課件大綱
- 統(tǒng)編版九年級上冊語文期末復(fù)習(xí):全冊重點考點手冊
- 2025年11月15日江西省市直遴選筆試真題及解析(B卷)
- (2025)新課標義務(wù)教育數(shù)學(xué)(2022年版)課程標準試題庫(附含答案)
- 金太陽陜西省2028屆高一上學(xué)期10月月考物理(26-55A)(含答案)
- 小學(xué)生科普小知識:靜電
- 2025年安全生產(chǎn)知識教育培訓(xùn)考試試題及標準答案
- 重慶市康德2025屆高三上學(xué)期第一次診斷檢測-數(shù)學(xué)試卷(含答案)
- 品牌管理指南的建模指南
- 導(dǎo)樂用具使用課件
- “師生機”協(xié)同育人模式的實踐探索與效果評估
評論
0/150
提交評論