久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

軟件工程總結(jié)

時間:2019-05-12 13:23:26下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《軟件工程總結(jié)》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《軟件工程總結(jié)》。

第一篇:軟件工程總結(jié)

第一章軟件與軟件工程的概念

軟件的概念:軟件是計算機(jī)系統(tǒng)中與硬件相互依存的另一部分,軟件包括程序,數(shù)據(jù),及其相關(guān)文檔的完整集合。程序是按事先設(shè)計的功能和性能要求執(zhí)行的指令序列。數(shù)據(jù)是使程序能夠正確地處理信息的數(shù)據(jù)結(jié)構(gòu)。文檔是與程序開發(fā),維護(hù)和使用有關(guān)的圖文資料。

程序的最小單位是函數(shù)及子程序,程序與數(shù)據(jù)是分離的,在面向?qū)ο蟪绦蛟O(shè)計時代,程序的最小單位是類,在類中封裝了相關(guān)的數(shù)據(jù)及指令代碼。

軟件的特性,判斷正誤:1.軟件是無形的、不可見的邏輯實體,因此,軟件是無法描述的。(錯)

2、軟件的開發(fā)特性是指軟件需要大量手工勞動,難以自動化生產(chǎn)。(對)

3、有缺陷的軟件就是廢品。(錯)

4、軟件的生產(chǎn)指的是軟件的復(fù)制。(錯)

5、由于軟件的開發(fā)充滿人的個性特點,因此管理并不決定軟件開發(fā)的成敗(錯)。

6、軟件的開發(fā)環(huán)境往往就是軟件的運(yùn)行環(huán)境,或者與其兼容。(對)

7、合格的軟件產(chǎn)品不需要維護(hù),軟件需要維護(hù)說明其質(zhì)量不合格。(錯)

8、軟件可以不斷改進(jìn),因此軟件不需要廢棄。(錯)

軟件的分類:1,系統(tǒng)軟件:能與計算機(jī)硬件緊密配合在一起,使計算機(jī)系統(tǒng)各個部件,相關(guān)的軟件和數(shù)據(jù)協(xié)調(diào),高效的工作的軟件。2,應(yīng)用軟件,是在系統(tǒng)軟件的支持下,在特定區(qū)域內(nèi)開發(fā),為特定目的服務(wù)的一類軟件。3,支撐軟件,也叫工具軟件,是協(xié)助用戶開發(fā)軟件的工具性軟件。4,可復(fù)用軟件,最初實現(xiàn)的典型的可復(fù)用軟件是各種標(biāo)準(zhǔn)函數(shù)庫,通常是由計算機(jī)廠商提供的系統(tǒng)軟件的一部分。

IEEE給出的定義:軟件工程是開發(fā),運(yùn)行,維護(hù)和修復(fù)軟件的系統(tǒng)方法。軟件的定義:計算機(jī)程序,方法,規(guī)則,相關(guān)的文檔資料一集在計算機(jī)上運(yùn)行時所必需的數(shù)據(jù)。

軟件危機(jī)的典型表現(xiàn)

1、成本太高,預(yù)算不準(zhǔn)

2、超過預(yù)計時間

3、軟件質(zhì)量標(biāo)準(zhǔn)不明確

4、生產(chǎn)率低

5、缺乏文檔資料,難以維護(hù)。原因:1,缺乏軟件開發(fā)的經(jīng)驗和有關(guān)軟件開發(fā)數(shù)據(jù)的積累,使得開發(fā)工作的計劃很難制定。2.軟件人員與用戶的交流存在障礙,除了知識背景的差異,缺少合適的交流方法及需求描述工具。3,軟件開發(fā)過程不規(guī)范,缺少方法和規(guī)范的指導(dǎo)。4,隨著軟件規(guī)模的增大,其復(fù)雜性往往會呈指數(shù)級升高。5,缺少有效的軟件評測手段,提交用戶的軟件質(zhì)量差。

軟件危機(jī)發(fā)生的主要原因有:

1、遇到了無法解決的高難度技術(shù)問題(不是)

2、無法招聘到足夠的編程高手(不是)

3、軟件人員與用戶互相不理解(是)

4、計劃和管理不科學(xué)、落實不力(是)

5、軟件質(zhì)量標(biāo)準(zhǔn)不明確(是)

軟件的質(zhì)量特性包括(選擇)問題1:

1、功能性

2、可靠性

3、使用性

4、經(jīng)濟(jì)性(不包括)

軟件的質(zhì)量特性包括(選擇)問題2:

1、效率

2、可維護(hù)性

3、可移植性

4、經(jīng)濟(jì)性(不包括)

軟件工程的目標(biāo)是運(yùn)用先進(jìn)的軟件開發(fā)技術(shù)和管理方法來提高軟件的質(zhì)量和生產(chǎn)率,也就是要以較短的周期,較低的成本生產(chǎn)出高質(zhì)量的軟件產(chǎn)品,并最終實現(xiàn)軟件的工業(yè)化生產(chǎn)。軟件生存期:軟件的孕育,誕生,成長,成熟,衰亡的生存過程。軟件生存期由軟件定義,軟件開發(fā)和運(yùn)行維護(hù)三個時期組成,每個時期又可劃分為若干個階段。

2、軟件定義時期的任務(wù)主要任務(wù)是解決“做什么”的問題,確定工程的總目標(biāo)和可行性;實現(xiàn)工程目標(biāo)的策略及系統(tǒng)功能;估計需要的資源和成本;制訂工程進(jìn)度表。通常又分為3個階段:問題定義,可行性研究,需求分析。

3、軟件開發(fā)時期的任務(wù)和包含階段主要任務(wù)是解決“如何做”的問題,設(shè)計和實現(xiàn)定義的軟件。由概要設(shè)計、詳細(xì)設(shè)計、編碼和測試4個階段組成。

4、軟件運(yùn)行維護(hù)時期的主要任務(wù)是使軟件持久地滿足用戶的需要,通常有4類維護(hù)活動:改正性維護(hù);適應(yīng)性維護(hù);完善性維護(hù);預(yù)防性維護(hù)。開發(fā)過程中的典型文檔:軟件需求規(guī)格說明書。項目計劃。軟件測試計劃。軟件設(shè)計說明書。用戶手冊。軟件工程各個階段的基本任務(wù)

1、問題定義與可行性研究:解決什么問題?能否解決問題?是否值得做?”

2、需求分析:做什么

3、軟件設(shè)計:如何實現(xiàn)

4、程序編碼和單元測試:實現(xiàn)設(shè)計

5、集成和系統(tǒng)測試:組裝連接測試、功能驗證測試

6、軟件運(yùn)行和維護(hù):修改 第二章軟件工程方法與工具

軟件工具:是指能支持軟件生存周期中某一階段(如系統(tǒng)定義,需求分析,設(shè)計,編碼,測試,維護(hù)等)的需要而使用的軟件工具。

需求分析工具

1、結(jié)構(gòu)化圖形工具箱。通過數(shù)據(jù)流程圖DFD進(jìn)行功能分析。包括DFD圖形工具,實體-關(guān)系圖(E-R)圖形工具,Jackson圖形工具,Warnier圖形工具,Visio綜合工具,2、面向?qū)ο蠊ぞ撸琑ational Rose,PowerDesigner,Visio 設(shè)計工具(1)概要設(shè)計工具:設(shè)計目標(biāo)軟件的體系結(jié)構(gòu)、控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)。軟件的體系結(jié)構(gòu)通常用模塊結(jié)構(gòu)圖來描述。模塊的數(shù)據(jù)結(jié)構(gòu)通常用實體-關(guān)系圖來描述。Visio。Rational Rose 詳細(xì)設(shè)計工具。設(shè)計模塊的算法和內(nèi)部實現(xiàn)細(xì)節(jié)。詳細(xì)設(shè)計描述方法有輸入-處理-輸出(IPO)圖。問題分析圖(PAD)。盒圖(NS圖)。流程圖(FC)。程序設(shè)計語言(PDL)。結(jié)構(gòu)化語言。判定表。判定樹

第三章軟件需求獲取與結(jié)構(gòu)化分析方法 需求獲取的主要任務(wù)是與用戶溝通,了解系統(tǒng)或產(chǎn)品的目標(biāo)是什么,客戶或用戶想要實現(xiàn)什么,系統(tǒng)和產(chǎn)品如何滿足業(yè)務(wù)的要求,最終系統(tǒng)或產(chǎn)品如何用于日常工作。獲取并理解用戶的需求是軟件工程師所面對的最困難的任務(wù)之一。

需求分析的困難體現(xiàn):系統(tǒng)的目標(biāo)或范圍問題;需求不準(zhǔn)確性問題;需求的易變問題

需求獲取的任務(wù):發(fā)現(xiàn)和分析問題,并分析問題的原因,結(jié)果關(guān)系。與用戶進(jìn)行各種方式的交流,并使用調(diào)查研究方法收集信息。按照三個成分即數(shù)據(jù),過程和接口觀察問題的不同側(cè)面。將獲取的需求文檔化,形式有用例,決策表,決策樹等。需求獲取的原則:深入淺出,以流程為主線。

獲取具體的需求的途徑1,與用戶交流。2,現(xiàn)有產(chǎn)品或競爭產(chǎn)品的描述文檔。3,系統(tǒng)需求規(guī)格說明。4,當(dāng)前系統(tǒng)的問題報告和改進(jìn)要求。5,市場調(diào)查和用戶問卷調(diào)查。6,觀察用戶如何工作。

關(guān)于需求獲取問題的認(rèn)識辨析:

1、沒有與用戶交流就不可能獲取系統(tǒng)需求。(不能獲取準(zhǔn)確、全面的系統(tǒng)需求)

2、沒有經(jīng)過與用戶交流而獲取的需求都是不真實的需求。(一些需求從用戶以外的途徑獲取)

3、系統(tǒng)開發(fā)必須獨立完成,參考類似系統(tǒng)及技術(shù)文檔屬于抄襲行為,應(yīng)予避免。(系統(tǒng)開發(fā)包含研究行為,應(yīng)了解對手產(chǎn)品,取長補(bǔ)短)

4、系統(tǒng)開發(fā)包含改進(jìn)當(dāng)前系統(tǒng)的缺陷和不足。(對)

5、需求調(diào)查時,用戶所說的需求未必是真實、準(zhǔn)確的需求,因此需求分析需要依賴用戶,但是不能過分迷信用戶。(對,需求描述是困難的)

6、觀察用戶如何工作也是一種需求調(diào)查行為。(對)

軟件需求分析階段的任務(wù):需求獲取,需求分析,需求定義,需求驗證。完整性,正確性,合理性,可行性,充分性。

結(jié)構(gòu)化分析方法:是一種建模技術(shù)。核心是數(shù)據(jù)字典。

功能模型用數(shù)據(jù)流圖(DFD)來描述使用實體—關(guān)系圖(ER圖)建立數(shù)據(jù)模型。使用狀態(tài)轉(zhuǎn)換圖(簡稱狀態(tài)圖)建立系統(tǒng)行為模型。數(shù)據(jù)字典。加工規(guī)格說明。需求建模的依據(jù)是需求描述

數(shù)據(jù)建模,ER圖,需要認(rèn)真看。

第四章結(jié)構(gòu)化設(shè)計方法

結(jié)構(gòu)化設(shè)計方法是在模塊化,自頂向下逐步細(xì)化及結(jié)構(gòu)化程序設(shè)計技術(shù)基礎(chǔ)上發(fā)展起來的,結(jié)構(gòu)化設(shè)計方法可分為兩類:一類是根據(jù)系統(tǒng)的數(shù)據(jù)流進(jìn)行設(shè)計,稱為面向數(shù)據(jù)流的設(shè)計,或稱過程驅(qū)動設(shè)計,另一類是根據(jù)系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計,稱為面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計,或稱數(shù)據(jù)驅(qū)動的設(shè)計。

軟件的體系結(jié)構(gòu)設(shè)計,模塊化設(shè)計都是分而治之策略的具體表現(xiàn)。模塊化是將整體軟件劃分為獨立命名且可獨立訪問的模塊,不同的模塊通常具有不用的功能或指責(zé),每個模塊可獨立開發(fā),測試,最后組裝成完整的軟件。模塊是構(gòu)成軟件的基本構(gòu)件。模塊并不是越小越好,當(dāng)模塊數(shù)目增加時,每個模塊的規(guī)模將減小,開發(fā)單個模塊的成本確實減少了,但是隨著模塊數(shù)目增加,模塊之間關(guān)系的復(fù)雜程度也會增加,設(shè)計模塊間接口所需要的工作量也將增加。

模塊的獨立性是指軟件系統(tǒng)中每個模塊只涉及軟件要求的具體的子功能,而與軟件系統(tǒng)中其他模塊的接口是簡單的,若一個模塊只具有單一的功能且與其他模塊沒有太多的聯(lián)系,那么稱此模塊有獨立性。

自頂向下,逐步細(xì)化:抽象是指忽視一個主題中與當(dāng)前目標(biāo)無關(guān)的方面,以便更充分地注意與當(dāng)前目標(biāo)有關(guān)的方面,當(dāng)我們進(jìn)行軟件設(shè)計時,設(shè)計開始時應(yīng)盡量提高軟件的抽象層次,按抽象級別從高到低進(jìn)行軟件設(shè)計,將軟件的體系結(jié)構(gòu)按自頂向下方式,對各個層次的過程細(xì)節(jié)和數(shù)據(jù)細(xì)節(jié)逐層細(xì)化,直到用程序設(shè)計語言的語句能夠?qū)崿F(xiàn)為止,從而最后確定整個系統(tǒng)的體系結(jié)構(gòu),這就是自頂向下逐步細(xì)化過程。

復(fù)用是指同一事物不做修改或稍加修改就可以多次重復(fù)使用,將服用的思想用于軟件開發(fā),稱為軟件復(fù)用。1是盡量使用已有的構(gòu)件。2是如果確實需要創(chuàng)建新的構(gòu)件,則在設(shè)計時應(yīng)該考慮將來的可重復(fù)使用性。軟件設(shè)計的階段與任務(wù):從工程管理的角度,可以將軟件設(shè)計分為概要設(shè)計階段和詳細(xì)設(shè)計階段。從技術(shù)的角度,傳統(tǒng)的結(jié)構(gòu)化方法將軟件設(shè)計劃分為體系結(jié)構(gòu)設(shè)計、數(shù)據(jù)設(shè)計、接口設(shè)計和過程設(shè)計4部分;概要設(shè)計包括體系結(jié)構(gòu)設(shè)計、數(shù)據(jù)設(shè)計、接口設(shè)計。詳細(xì)設(shè)計即過程設(shè)計,對結(jié)構(gòu)表示進(jìn)行細(xì)化,得到軟件詳細(xì)的數(shù)據(jù)結(jié)構(gòu)和算法。

軟件設(shè)計各項設(shè)計工作的依據(jù):體系結(jié)構(gòu)設(shè)計,定義軟件模塊及其之間的關(guān)系,依賴于數(shù)據(jù)流圖。數(shù)據(jù)設(shè)計,依賴于ER圖。接口設(shè)計,依賴于頂層數(shù)據(jù)流圖。過程設(shè)計:依賴于加工規(guī)格說明、狀態(tài)圖

基于數(shù)據(jù)流方法的設(shè)計過程:1.復(fù)查并精化數(shù)據(jù)流圖。2.確定數(shù)據(jù)流圖中數(shù)據(jù)流的類型,典型的數(shù)據(jù)流類型有變換型數(shù)據(jù)流和事務(wù)型數(shù)據(jù)流。3.導(dǎo)出初始的軟件結(jié)構(gòu)圖。4.逐級分解。5.精化軟件結(jié)構(gòu)。6.導(dǎo)出接口描述和全局?jǐn)?shù)據(jù)結(jié)構(gòu)。

軟件模塊結(jié)構(gòu)的改進(jìn)方法:1,模塊功能的完善化。2,消除重復(fù)功能,改善軟件結(jié)構(gòu)。3,模塊的作用范圍應(yīng)在控制范圍之內(nèi)。4,盡可能減少高扇出結(jié)構(gòu),隨著深度增大扇入。5,避免或減少使用病態(tài)連接。6,模塊的大小要適中。接口設(shè)計的依據(jù)是數(shù)據(jù)流圖中的自動化系統(tǒng)邊界。

自頂向下,逐步細(xì)化的設(shè)計過程主要包括兩個方面:一是將復(fù)雜問題的解法分析和細(xì)化成由若干個模塊組成的層次結(jié)構(gòu),二是將每個模塊的功能逐步分解細(xì)化為一系列的處理。第五章編碼

編碼容易出現(xiàn)的風(fēng)格不足

1、變量或函數(shù)名字缺乏具體含義

2、變量或函數(shù)名字與其用途不符

3、變量或函數(shù)未加上必要的注釋

4、函數(shù)未說明其功能、參數(shù)的意義

5、引用的符號未加以解釋和說明

6、對循環(huán)等重要的程序語句未注釋

7、對用到的重要庫函數(shù)沒有解釋說明

8、對結(jié)構(gòu)體等復(fù)雜數(shù)據(jù)結(jié)構(gòu)的組成成分沒有解釋說明

9、缺乏必要的提示語句 第六章軟件測試方法

軟件測試是在軟件投入生產(chǎn)性運(yùn)行之前,對軟件需求分析,設(shè)計規(guī)格說明和編碼的最終復(fù)審,是軟件質(zhì)量控制的關(guān)鍵步驟。軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。

第二篇:軟件工程總結(jié)

軟件工程課程總結(jié)

摘要:

計算機(jī)是20世紀(jì)最重大的科學(xué)技巧成就之一,使當(dāng)代社會的經(jīng)濟(jì)、軍事、科研、教育、服務(wù)等方面在概念和技巧上發(fā)生了性的變化,對人類社會的進(jìn)步已經(jīng)并還將產(chǎn)生極為深刻的影響。目前,計算機(jī)是世界各發(fā)達(dá)國度劇烈競爭的科學(xué)技巧領(lǐng)域之一。

電子計算機(jī)早期功效主要是計算,后來已遠(yuǎn)遠(yuǎn)超越單純計算的功效,還可模擬、思維、進(jìn)行自適應(yīng)反饋處理等等,把它叫做“電腦”更為合實際。由于電子計算機(jī)功效的飛躍性發(fā)展,應(yīng)用于生產(chǎn)和生活的各個方面,直接和顯著地提高了生產(chǎn)、工作和生活的效率、節(jié)奏和水平,在軟科學(xué)研究和應(yīng)用中它也起著關(guān)鍵作用,因此它已被公認(rèn)是現(xiàn)代技巧的神經(jīng)中樞,是未來信息社會的心臟和錄魂。計算機(jī)學(xué)科分為四個領(lǐng)域,分別是計算機(jī)科學(xué),計算機(jī)工程,軟件工程和信息系統(tǒng)。

正文:

軟件工程是研究和應(yīng)用如何以系統(tǒng)性的、規(guī)范化的、可定量的過程化方法去開發(fā)和維護(hù)軟件,以及如何把經(jīng)過時間考驗而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來的學(xué)科。包括項目管理,分析,設(shè)計,程序的編寫,測試和質(zhì)量控制。它涉及到程序設(shè)計語言、數(shù)據(jù)庫、軟件開發(fā)工具、系統(tǒng)開發(fā)平臺、標(biāo)準(zhǔn)、設(shè)計模式等方面。

學(xué)了《軟件工程》這門課程和一些有關(guān)資料后,感覺一些東西都曾經(jīng)接觸過,但在實際工作中有些理論要完全遵循可能還有些障礙,軟件工程只是提供了理論上的一些結(jié)論,但對項目的具體可操作性的規(guī)范的制定方面卻做的很少,《軟件工程》發(fā)展了幾十年,光是開發(fā)模型就達(dá)到了10多種,對不同的項目采用合適的開發(fā)模式,有些項目在不同的開發(fā)階段可能還要轉(zhuǎn)換開發(fā)模式,把它們靈活的應(yīng)用到實際中還是很困難的。

軟件技術(shù)是信息技術(shù)產(chǎn)業(yè)的核心之一,軟件技術(shù)的發(fā)展是與信息技術(shù)產(chǎn)業(yè)的發(fā)展互相促進(jìn)的。當(dāng)今世界,信息技術(shù)正處于新一輪重大技術(shù)突破的前夜。預(yù)計今后 20~30 年是信息科學(xué)技術(shù)的變革突破期,可能導(dǎo)致 21 世紀(jì)下半葉一場新的信息技術(shù)革命。近年來,從 IT 界到一些國家首腦,都高度關(guān)注以物聯(lián)網(wǎng)為標(biāo)志的新一輪信息技術(shù)的發(fā)展態(tài)勢,認(rèn)為這是繼 20 世紀(jì) 80 年代 PC 機(jī)、90 年代互聯(lián)網(wǎng)、移動通信網(wǎng)之后,將引發(fā) IT 業(yè)突破性發(fā)展的第三次 IT 產(chǎn)業(yè)化浪潮。每一次重大的技術(shù)變革都會引起企業(yè)間、產(chǎn)業(yè)間甚至國家間競爭格局的重大變化,也促進(jìn)了軟件技術(shù)與軟件產(chǎn)業(yè)的重大變革與發(fā)展。

近年來,信息技術(shù)、軟件技術(shù)、軟件系統(tǒng)與軟件產(chǎn)業(yè)的發(fā)展備受關(guān)注,已有不少論述、分析與判斷。近10 年內(nèi)網(wǎng)絡(luò)技術(shù)經(jīng)歷寬帶化、移動化和三網(wǎng)融合將走向基于 Ipv6 的下一代互聯(lián)網(wǎng),2010 年 1 月,國家 863 計劃信息技術(shù)領(lǐng)域辦公室和國家 863 計劃信息技術(shù)領(lǐng)域?qū)<医M,在上海舉辦“信息-物理融合系統(tǒng) CPS發(fā)展戰(zhàn)略論壇”,提出“信息-物理融合系統(tǒng) CPS 是一個綜合計算、網(wǎng)絡(luò)和物理環(huán)境的多維復(fù)雜系統(tǒng),是信息和物理世界的深度的融合交互,可實現(xiàn)大型工程系統(tǒng)的實時感知、動態(tài)控制和信息服務(wù),使系統(tǒng)更加可靠、高效與實時協(xié)同,使得人類物理現(xiàn)實和虛擬邏輯逐步融合,具有重要而廣泛的應(yīng)用前景。業(yè)界關(guān)于軟件工程的代表性觀點創(chuàng)立與使用健全的工程原則,以便經(jīng)濟(jì)地獲得可靠且高效率的軟件。應(yīng)用系統(tǒng)化,遵從原則,可被計量的方法來發(fā)展、操作及維護(hù)軟件;也就是把工程應(yīng)用到軟件上。與開發(fā)、管理及更新軟件產(chǎn)品有關(guān)的理論、方法及工具。一種知識或?qū)W科,目標(biāo)是生產(chǎn)品質(zhì)良好、準(zhǔn)時交貨、符合預(yù)算,滿足用戶所需的軟件。實際應(yīng)用科學(xué)知識在設(shè)計、建構(gòu)電腦程序,與相伴而來所產(chǎn)生的文件,以及后續(xù)的操作和維護(hù)上。

6使用與系統(tǒng)化生產(chǎn)和維護(hù)軟件產(chǎn)品有關(guān)之技術(shù)與管理的知識,使軟件開發(fā)與修改可在有限的時間與費用下進(jìn)行。

7建造由工程師團(tuán)隊所開發(fā)之大型軟件系統(tǒng)有關(guān)的知識學(xué)科。對軟件分析、設(shè)計、實施及維護(hù)的一種系統(tǒng)化方法。系統(tǒng)化地應(yīng)用工具和技術(shù)于開發(fā)以計算機(jī)為主的應(yīng)用。

10軟件工程是關(guān)于設(shè)計和開發(fā)優(yōu)質(zhì)軟件。

《軟件工程》是一門綜合性和實踐性很強(qiáng)的核心課程,它屬于是一門交叉學(xué)科,包含有:軟件開發(fā)技術(shù)(軟件開發(fā)方法學(xué)、軟件開發(fā)過程、軟件工具和軟件工程環(huán)境)、軟件工程管理(軟件管理學(xué)、軟件經(jīng)濟(jì)學(xué)、軟件心理學(xué))。主要內(nèi)容包括軟件工程概述、可行性分析、需求分析、概要設(shè)計、詳細(xì)設(shè)計、面向?qū)ο蠓治雠c設(shè)計、編碼、軟件測試、項目計劃與管理。

本課程是面向準(zhǔn)備從事軟件開發(fā)的畢業(yè)生而開設(shè)的一門專業(yè)課程。針對計算機(jī)教學(xué)中軟件工程這一薄弱環(huán)結(jié),結(jié)合目前軟件開發(fā)商對人才的要求,對計算機(jī)專業(yè)的畢業(yè)生進(jìn)行軟件工程強(qiáng)化培訓(xùn),目的是使畢業(yè)生能夠了解和掌握軟件工程的基本理論和方法,并在實際軟件開發(fā)中運(yùn)用這些方法。

我理解,軟件工程是按照工程學(xué)的管理方式,有組織、有計劃的,在一定的質(zhì)量基礎(chǔ)、時間限度和成本范圍內(nèi),實現(xiàn)功能明確的軟件系統(tǒng)。而且,軟件工程在企業(yè)范圍內(nèi)運(yùn)行,一定需要企業(yè)資源的支持,要與企業(yè)的經(jīng)營、決策、管理體系聯(lián)系在一起,才能夠被踏踏實實的落實下來。

軟件工程項目是一個需要一步一步的計算,分析思考而來的,需要不斷思考,研究不斷進(jìn)步,軟件業(yè)作為一個服務(wù)業(yè),要想得到發(fā)展,首先必須形成一個對軟件服務(wù)有迫切需要的市場。其次,這個市場中的消費者必須具備足夠的購買力。軟件的消費群體簡單一點,可以分為個體消費和企業(yè)消費。中國的企業(yè)群體,數(shù)量龐大,但是質(zhì)量不高。上規(guī)模的企業(yè)極少。國內(nèi)目前能夠形成比較大規(guī)模的獨立市場的,肯定是小規(guī)模的軟件系統(tǒng)。

隨著信息化時代的到來其地位越來越受到人們的重視,軟件工程從一個學(xué)科,或是某一個研究方向來說,人員僅僅是過程,方法的執(zhí)行者,所以人員素質(zhì)往往被忽略,軟件工程是一門實踐性很強(qiáng)的學(xué)科,所以在實際的軟件研究過程中,人員的素質(zhì)占有很重要的地位。要有出色的軟件問世,研發(fā)人員的素質(zhì)至關(guān)重要!

作為軟件工程的學(xué)習(xí)者應(yīng)該不斷創(chuàng)新,不斷嘗試、實踐,不斷研究和學(xué)習(xí),中國的軟件工程技術(shù)依舊滯后于國外一些軟件工程技術(shù),作為新一代的學(xué)習(xí)者應(yīng)該擔(dān)當(dāng)起振興起中國軟件事業(yè),使中國科技得到高速發(fā)展!

現(xiàn)在已經(jīng)是信息化時代,信息化潮流不斷涌現(xiàn),想要掌握主動權(quán)就是掌握信息化的發(fā)展方向,這就需要我們不斷學(xué)習(xí),時間,研究,學(xué)習(xí)國外的先進(jìn)技術(shù),轉(zhuǎn)變自己的技術(shù),然后融合,創(chuàng)新。

軟件技術(shù)不是一成不變的,是隨著社會的進(jìn)步的不斷進(jìn)步,不需要不斷的創(chuàng)新,不斷的改善的,需要我們不斷的學(xué)習(xí),不斷的研究,不斷進(jìn)步。

第三篇:軟件工程總結(jié)

1.Software is a product and can be manufactured using the same technologies used for other engineering artifacts Answer: b 2.WebApps are a mixture of print publishing and software development, making their development outside the realm of software engineering practice.Answer: b 3.Software engineering umbrella activities are only applied during the initial phases of software development projects.Answer: b 4.Planning ahead for software reuse reduces the cost and increases the value of the systems into which they are incorporated.Answer: a 5.The essence of software engineering practice might be described as understand the problem, plan a solution, carry out the plan, and examine the result for accuracy.Answer: a 6.In agile process models the only deliverable work product is the working program.Answer: b 7.A most software development projects are initiated to try to meet some business need.Answer: a 8.In general software only succeeds if its behavior is consistent with the objectives of its designers.Answer: b 9.Software processes can be constructed out of pre-existing software patterns to best meet the needs of a software project.Answer: a 10.Process technology tools allow software organizations to compress schedules by skipping unimportant activities.Answer: b 11.It is generally accepted that one cannot have weak software processes and create high quality end products.Answer: a 1.Requirements engineering is a generic process that does not vary from one software project to another.Answer: a 2.A stakeholder is anyone who will purchase the completed software system under development.Answer: b 3.It is relatively common for different customers to propose conflicting requirements, each arguing that his or her version is the right one.Answer: a 4.Developers and customers create use-cases to help the software team understand how different classes of end-users will use functions.Answer: a 5.Use-case actors are always people, never system devices.Answer: b 6.Analysis patterns facilitate the transformation of the analysis model into a design model by suggesting reliable solutions to common problems.Answer: a 7.In win-win negotiation, the customer’s needs are met even though the developer’s need may not be.Answer: b 8.In requirements validation the requirements model is reviewed to ensure its technical feasibility.Answer: b

1.Object-oriented domain analysis is concerned with the identification and specification of reusable capabilities within an application domain.Answer: a 2.In structured analysis models focus on the structure of the classes defined for a system along with their interactions.Answer: b 3.Creation and refinement of use cases if an important part of scenario-based modeling.Answer: a 4.It is important to consider alternative actor interactions when creating a preliminary use case.Answer: b 5.Brainstorming is one technique that may be used to derive a complete set of use case exceptions.Answer: a 6.In many cases there is no need to create a graphical representation of a usage scenario.Answer: a 7.One or more attributes of a data object must be defined as a key to allow the location of an instance of the data object.Answer: a 8.Attributes are chosen for an object by examining the problem statement and identifying the entities that appear to be related.Answer: b 9.An analysis package involves the categorization of analysis model elements into useful groupings.Answer: a 10.The data flow diagram must be augmented by min-spec that can serve as a guide the design of the software component that will implement the process.Answer: a 11.The UML sequence diagram show the order in which system events are processed.Answer: b 12.Analysis patterns are discovered, they are not explicitly created.Answer: a 13.It is not possible to justify the time required for WebApp requirements analysis.Answer: b 14.UML activity diagrams can be used to represent the user observable functionality delivered by the WebApp as well as the operations contained in each analysis class.Answer: a 15.Configuration analysis focuses on the architecture of the user’s web browsing environment.Answer: b 16.Content objects are extracted from use cases by examining the scenario description for direct or indirect content references.Answer: a 1.With thorough testing it is possible to remove all defects from a program prior to delivery to the customer.Answer: b 2.Program flow graphs are identical to program flowcharts.Answer: b 3.The cyclomatic complexity of a program can be computed directly from a PDL representation of an algorithm without drawing a program flow graph.Answer: a 4.Graph-based testing methods can only be used for object-oriented systems Answer: b 5.Equivalence testing divides the input domain into classes of data from which test cases can be derived to reduce the total number of test cases that must be developed.Answer: a 6.Boundary value analysis can only be used to do white-box testing.Answer: b 7.Orthogonal array testing enables the test designer to maximize the coverage of the test cases devised for relatively small input domains.Answer: a 8.Client/server architectures cannot be properly tested because network load is highly variable.Answer: b 1.The best representation of system architecture is an operational software prototype.Answer: b 2.The architectural representations can be an enabler for communication among project stakeholders.Answer: a 3.An architectural description is often documented using an architecture template.Answer: b 4.An architectural genre will often dictate the architectural approach that may used for the structure to be built.Answer: a 5.Before an architectural pattern can be chosen for use in a specific system it must have a code implementation to facilitate its reuse.Answer: b 6.Once selected, archetypes always need to be refined further as architectural design proceeds.Answer: a 7.Quantitative methods for assessing the quality of proposed architectural designs are readily available.Answer: b

Chapter 10 Self-Check Quiz

1.In the most general sense a component is a modular building block for computer software.a.True b.False

Answer: a(Section 10.1)

2.In the context of object-oriented software engineering a component contains

a.attributes and operations b.instances of each class c.roles for each actor(device or user)d.set of collaborating classes

Answer: d(Section 10.1.1)

3.In traditional software engineering modules must serve in which of the following roles?

a.Control component b.Infrastructure component c.Problem domain component d.All of the above

Answer: d(Section 10.1.2)

4.Software engineers always need to cerate components from scratch in order to meet customer expectations fully.a.True b.False

Answer: b(Section 10.1.3)

5.Which of the following is not one of the four principles used to guide component-level design?

a.Dependency Inversion Principle b.Interface Segregation Principle c.Open-Closed Principle d.Parsimonious Complexity Principle

Answer: d(Section 10.2.1)

6.The use of stereotypes can help identify the nature of components at the detailed design level.a.True b.False

Answer: a(Section 10.2.2)

7.Classes and components that exhibit functional, layer, or communicational cohesion are relatively easy to implement, test, and maintain.a.True b.False

Answer: a(Section 10.2.3)

8.Software coupling is a sign of poor architectural design and can always be avoided in every system.a.True b.False

Answer: b(Section 10.2.4)

9.WebApp content design at the component level focuses on content objects and the manner in which they interact.a.True b.False

Answer: b(Section 10.4.1)

10.A WebApp functional architecture describes the key functional components and how they interact with each other.a.True b.False

Answer: a(Section 10.4.2)

11.Which of these is a graphical notation for depicting procedural detail?

a.box diagram b.decision table c.ER diagram d.flowchart

Answer: d(Section 10.5.1)

12.A decision table should be used

a.to document all conditional statements b.to guide the development of the project management plan c.only when building an expert system d.when a complex set of conditions and actions appears in a component

Answer: d(Section 10.5.2)

13.A program design language(PDL)is often a

a.combination of programming constructs and narrative text b.legitimate programming language in its own right c.machine readable software development language d.useful way to represent software architecture

Answer: a(Section 10.5.3)

14.In component-based software engineering, the development team examines the requirements to see which are amenable to composition, rather than construction, before beginning detailed design tasks.a.True b.False

Answer: a(Section 10.6)

15.Which of the following is not one of the major activities of domain engineering?

a.analysis b.construction c.dissemination d.validation

Answer: d(Section 10.6.1)

16.Which of the following factors would not be considered during component qualification?

a.application programming interface(API)b.development and integration tools required c.exception handling d.testing equipment required

Answer: d(Section 10.6.2)

17.Which is the following is a technique used for component wrapping?

a.black-box wrapping b.clear-box wrapping c.gray-box wrapping d.white-box wrapping

Answer: b(Section 10.6.2)

18.Which of the following is not one of the issues that form a basis for design for reuse?

a.object-oriented programming b.program templates c.standard data d.standard interface protocols

Answer: a(Section 10.6.3)

19.In a reuse environment, library queries are often characterized using the ________ element of the 3C Model.a.concept b.content c.context d.all of the above

Answer: c(Section 10.6.4)

1.The importance of software design can be summarized in a single word a.b.c.d.Answer: d(Section 8.1)

2.Which of the following is not a characteristic common to all design methods?

a.configuration management b.functional component representation c.quality assessment guidelines d.refinement heuristics

Answer: a(Section 8.2.2)

3.Which of the following can be used to represent the architectural design of a piece of software?

a.Dynamic models b.Functional models c.Structural models d.All of the above

Answer: d(Section 8.3.2)

4.Design patterns are not applicable to the design of object-oriented software?

a.True b.False

Answer: b(Section 8.3.3)

5.Since modularity is an important design goal it is not possible to have too many modules in a proposed design.a.True b.False

Answer: b(Section 8.3.5)

6.Information hiding makes program maintenance easier by hiding data and procedure from unaffected parts of the program.accuracy complexity efficiency quality

a.True b.False

Answer: a(Section 8.3.6)

7.Cohesion is a qualitative indication of the degree to which a module

a.can be written more compactly.b.focuses on just one thing.c.is able to complete its function in a timely manner.d.is connected to other modules and the outside world.Answer: b(Section 8.3.7)

8.Coupling is a qualitative indication of the degree to which a module

a.can be written more compactly.b.focuses on just one thing.c.is able to complete its function in a timely manner.d.is connected to other modules and the outside world.Answer: d(Section 8.3.7)

9.When using structured design methodologies the process of stepwise refinement is unnecessary.a.True b.False

Answer: b(Section 8.3.8)

10.Software designs are refactored to allow the creation of software that is easier to integrate, easier to test, and easier to maintain.a.True b.False

Answer: a(Section 8.3.10)

11.Which of the following is not one of the five design class types

a.Business domain classes b.Entity classes c.Process classes d.User interface classes

Answer: b(Section 8.3.13)

12.Which design model elements are used to depict a model of information represented from the user’s view?

a.Architectural design elements b.Component-level design elements c.Data design elements d.Interface design elements

Answer: c(Section 8.4.1)

13.Which design is equivalent to the floor plan of a house?

a.Architectural design b.Component-level design c.Data design d.Interface design

Answer: a(Section 8.4.2)

14.Which design model is equivalent to the detailed drawings of the access points and external utilities for a house?

a.Architectural design b.Component-level design c.Data design d.Interface design

Answer: d(Section 8.4.3)

15.Which design model is equivalent to a set of detailed drawings for each room in a house?

a.Architectural design b.Component-level design c.Data design d.Interface design

Answer: b(Section 8.4.4)

16.The deployment design elements specify the build order for the software components.a.True b.False

Answer: b(Section 8.4.5)

第四篇:軟件工程總結(jié)

一、軟件工程概述

1.軟件特點

軟件:計算機(jī)程序(人們?yōu)榱藢崿F(xiàn)特定的功能而編制的一組指令集),軟件文檔,以及計算機(jī)程序運(yùn)行時所需要的數(shù)據(jù)。

軟件是計算機(jī)系統(tǒng)中的邏輯成分,具有無形性,可復(fù)用性。

2.軟件分類(1)按功能劃分:系統(tǒng)軟件、支撐軟件、應(yīng)用軟件。(2)按工作方式劃分:實時處理軟件、分時處理軟件、交互式軟件、批處理軟件。(3)按規(guī)模劃分:微型軟件、小型軟件、中型軟件、大型軟件。(4)按服務(wù)對象劃分:通用軟件、定制軟件。3.軟件發(fā)展階段(1)程序設(shè)計時代(20世紀(jì)50年代)。(2)程序系統(tǒng)時代(20世紀(jì)60年代)。(3)軟件工程時代(20世紀(jì)70年代起)。4.軟件危機(jī)

(1)危機(jī)現(xiàn)象:軟件開發(fā)成本與進(jìn)度估計不準(zhǔn)確,軟件產(chǎn)品與用戶要求不一致,軟件產(chǎn)品質(zhì)量可靠性差,軟件文檔不完整不一致,軟件產(chǎn)品可維護(hù)性差,軟件生產(chǎn)率低。

(2)危機(jī)原因:科學(xué)的工程化思想組織和指導(dǎo),完善的質(zhì)量保證體系,軟件文檔的不重視,軟件的不可見性,系統(tǒng)規(guī)模龐大,生產(chǎn)工程化程度低,對用戶需求關(guān)心不 夠,對維護(hù)不夠重視,開發(fā)工具自動化程度低。5.軟件工程

軟件工程:運(yùn)用現(xiàn)代科學(xué)技術(shù)知識來設(shè)計并構(gòu)造計算機(jī)程序及為開發(fā)、運(yùn)行和維護(hù)這些程序所必須的相關(guān)文件資料。軟件工程是一門關(guān)于軟件開發(fā)與維護(hù)的工程學(xué)科,它涉及軟件生產(chǎn)的各個方面,能夠為經(jīng)濟(jì)、高效地開發(fā)高質(zhì)量的軟件產(chǎn)品提供最有效的支持。

軟件工程的目標(biāo):控制成本,滿足需求,提高質(zhì)量,提高可靠性,是產(chǎn)品易于維護(hù),移植,升級和使用,控制開發(fā)周期。

(1)工程方法:結(jié)構(gòu)化方法、JSD方法、面向?qū)ο蠓椒ā#?)軟件工具:具有自動化特征的軟件開發(fā)集成支撐環(huán)境。(3)工程過程:在軟件工具支持下的一系列工程活動,基本活動是軟件定義、軟件開發(fā)、軟件驗證、軟件維護(hù)。(4)工程管理:項目規(guī)劃,項目資源調(diào)配,軟件產(chǎn)品控制。(5)工程原則:分階段生命周期計劃,階段評審制度,嚴(yán)格的產(chǎn)品控制,采用先進(jìn)的技術(shù),成果能清楚地審查,開發(fā)隊伍精練,不斷改進(jìn)工程實踐。(6)工程目標(biāo):開發(fā)成本較低,軟件功能能滿足用戶需求,軟件性能較好,軟件可靠性高,軟件易于使用、維護(hù)與移植,能按時完成開發(fā)任務(wù)并及時交付使用。(7)工程文化:包括工程價值、工程思想和工程行為三個方面的內(nèi)容。

二、軟件工程過程模型 1.軟件生命周期 如同任何事物都有一個發(fā)生、發(fā)展、成熟直至衰亡的全過程一樣,軟件系統(tǒng)或軟件產(chǎn)品也有一個定義、開發(fā)、運(yùn)行維護(hù)直至被淘汰這樣的全過程,我們把軟件將要經(jīng)歷的這個全過程稱為軟件的生命周期。它包含:軟件定義、軟件開發(fā)、軟件運(yùn)行維護(hù)三個時期,并可以細(xì)分為可行性研究、項目計劃、需求分析、概要設(shè)計、詳細(xì)設(shè)計、編碼實現(xiàn)與單元測試、系統(tǒng) 2 集成測試、系統(tǒng)確認(rèn)驗證、系統(tǒng)運(yùn)行與維護(hù)等幾個階段。

軟件定義期 軟件定義是軟件項目的早期階段,主要由軟件系統(tǒng)分析人員和用戶合作,針對有待開發(fā)的軟件系統(tǒng)進(jìn)行分析、規(guī)劃和規(guī)格描述,確定軟件是什么,為今后的軟件開發(fā)做準(zhǔn)備。這個時期往往需要分階段地進(jìn)行以下幾項工作。1.軟件任務(wù)立項 軟件項目往往開始于任務(wù)立項,并需要以“軟件任務(wù)立項報告”的形式針對項目的名稱、性質(zhì)、目標(biāo)、意義和規(guī)模等作出回答,以此獲得對準(zhǔn)備著手開發(fā)的軟件系統(tǒng)的最高層描述。2.項目可行性分析 在軟件任務(wù)立項報告被批準(zhǔn)以后,接著需要進(jìn)行項目可行性分析。可行性分析是針對準(zhǔn)備進(jìn)行的軟件項目進(jìn)行的可行性風(fēng)險評估。因此,需要對準(zhǔn)備開發(fā)的軟件系統(tǒng)提出高層模型,并根據(jù)高層模型的特征,從技術(shù)可行性、經(jīng)濟(jì)可行性和操作可行性這三個方面,以“可行性研究報告”的形式,對項目作出是否值得往下進(jìn)行的回答,由此決定項 目是否繼續(xù)進(jìn)行下去。3.制定項目計劃 在確定項目可以進(jìn)行以后,接著需要針對項目的開展,從人員、組織、進(jìn)度、資金、設(shè)備等多個方面進(jìn)行合理的規(guī)劃,并以“項目開發(fā)計劃書”的形式提交書面報告。4.軟件需求分析 軟件需求分析是軟件規(guī)格描述的具體化與細(xì)節(jié)化,是軟件定義時期需要達(dá)到的目標(biāo)。需求分析要求以用戶需求為基本依據(jù),從功能、性能、數(shù)據(jù)、操作等多個方面,對軟件系統(tǒng)給出完整、準(zhǔn)確、具體的描述,用于確定軟件規(guī)格。其結(jié)果將以“軟件需求規(guī)格說明書”的形式提交。在軟件項目進(jìn)行過程中,需求分析是從軟件定義到軟件開發(fā)的最關(guān)鍵步驟,其結(jié)論不僅是今后軟件開發(fā)的基本依據(jù),同時也是今后用戶對軟件產(chǎn)品進(jìn)行驗收的基本依據(jù)。軟件開發(fā)期 在對軟件規(guī)格完成定義以后,接著可以按照“軟件需求規(guī)格說明書”的要求對軟件實施開發(fā),并由此制作出軟件產(chǎn)品。這個時期需要分階段地完成以下幾項工作。1.軟件概要設(shè)計 概要設(shè)計是針對軟件系統(tǒng)的結(jié)構(gòu)設(shè)計,用于從總體上對軟件的構(gòu)造、接口、全局?jǐn)?shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)環(huán)境等給出設(shè)計說明,并以“概要設(shè)計說明書”的形式提交書面報告,其結(jié)果將成為詳細(xì)設(shè)計與系統(tǒng)集成的基本依據(jù)。模塊是概要設(shè)計時構(gòu)造軟件的基本元素,因此,概要設(shè)計中軟件也就主要體現(xiàn)在模塊的構(gòu)成與模塊接口這兩個方面上。結(jié)構(gòu)化設(shè)計中的函數(shù)、過程,面向?qū)ο笤O(shè)計中的類、對象,它們都是模塊。概要設(shè)計時并不需要說明模塊的內(nèi)部細(xì)節(jié),但是需要進(jìn)行全部的有關(guān)它們構(gòu)造的定義,包括功能特征、數(shù)據(jù)特征和接口等。在進(jìn)行概要設(shè)計時,模塊的獨立性是一個有關(guān)質(zhì)量的重要技術(shù)性指標(biāo),可以使用模塊的內(nèi)聚、耦合這兩個定性參數(shù)對模塊獨立性進(jìn)行度量。2.軟件詳細(xì)設(shè)計 設(shè)計工作的第二步是詳細(xì)設(shè)計,它以概要設(shè)計為依據(jù),用于確定軟件結(jié)構(gòu)中每個模塊的內(nèi)部細(xì)節(jié),為編寫程序提供最直接的依據(jù)。詳細(xì)設(shè)計需要從實現(xiàn)每個模塊功能的程序算法和模塊內(nèi)部的局部數(shù)據(jù)結(jié)構(gòu)等細(xì)節(jié)內(nèi)容 3 上給出設(shè)計說明,并以“詳細(xì)設(shè)計說明書”的形式提交書面報告。3.編碼和單元測試 編碼是對軟件的實現(xiàn),一般由程序員完成,并以獲得源程序基本模塊為目標(biāo)。編碼必須按照“詳細(xì)設(shè)計說明書”的要求逐個模塊地實現(xiàn)。在基于軟件工程的軟件開發(fā)過程中,編碼往往只是一項語言轉(zhuǎn)譯工作,即把詳細(xì)設(shè)計中的算法描述語言轉(zhuǎn)譯成某種適當(dāng)?shù)母呒壋绦蛟O(shè)計語言或匯編語言。為了方便程序調(diào)試,針對基本模塊的單元測試也往往和編碼結(jié)合在一起進(jìn)行。單元測試也以“詳細(xì)設(shè)計說明書”為依據(jù),用于檢驗每個基本模塊在功能、算法與數(shù)據(jù)結(jié)構(gòu)上是否符合設(shè)計要求。4.系統(tǒng)集成測試 所謂系統(tǒng)集成也就是根據(jù)概要設(shè)計中的軟件結(jié)構(gòu),把經(jīng)過測試的模塊,按照某種選定的集成策略,例如漸增集成策略,將系統(tǒng)組裝起來。在組裝過程中,需要對整個系統(tǒng)進(jìn)行集成測試,以確保系統(tǒng)在技術(shù)上符合設(shè)計要求,在應(yīng)用上滿足需求規(guī)格要求。5.系統(tǒng)確認(rèn)驗證 在完成對系統(tǒng)的集成之后,接著還要對系統(tǒng)進(jìn)行確認(rèn)驗證。系統(tǒng)確認(rèn)驗證需要以用戶為主體,以需求規(guī)格說明書中對軟件的定義為依據(jù),由此對軟件的各項規(guī)格進(jìn)行逐項地確認(rèn),以確保已經(jīng)完成的軟件系統(tǒng)與需求規(guī)格的一致性。為了方便用戶在系統(tǒng)確認(rèn)期間能夠積極參入,也為了系統(tǒng)在以后的運(yùn)行過程中能夠被用戶正確使用,這個時期往往還需要以一定的方式對用戶進(jìn)行必要的培訓(xùn)。在完成對軟件的驗收之后,軟件系統(tǒng)可以交付用戶使用,并需要以“項目開發(fā)總結(jié)報告”的書面形式對項目進(jìn)行總結(jié)。

軟件運(yùn)行與維護(hù)期 軟件系統(tǒng)的運(yùn)行是一個比較長久的過程,跟軟件開發(fā)機(jī)構(gòu)有關(guān)的主要任務(wù)是對系統(tǒng)進(jìn)行經(jīng)常性的有效維護(hù)。軟件的維護(hù)過程,也就是修正軟件錯誤,完善軟件功能,由此使軟件不斷進(jìn)化升級的過程,以使系統(tǒng)更加持久地滿足用戶的需要。因此,對軟件的維護(hù)也可以看成為對軟件的再一次開發(fā)。在這個時期,對軟件的維護(hù)主要涉及三個方面的任務(wù),即改正性維護(hù)、適應(yīng)性維護(hù)和完善性維護(hù)。2.瀑布模型 瀑布模型誕生于20世紀(jì)70年代,是最經(jīng)典的并獲得最廣泛應(yīng)用的軟件過程模型。瀑布模型中的“瀑布”是對這個模型的形象表達(dá),即山頂傾瀉下來的水,自頂向下、逐層細(xì)化。(1)特點:線性化模型、階段具有里程碑特征、基于文檔的驅(qū)動、階段評審機(jī)制。(2)作用:為軟件項目按規(guī)程管理提供了便利,為其他過程模型的推出提供了一個良好的 拓展平臺。(3)局限性:主要適合于需求明確且無大的需求變更的軟件開發(fā),但不適合分析初期需求 模糊的項目。3.原型模型(1)快速原型方法:是原型模型在軟件分析、設(shè)計階段的應(yīng)用,用來解決用戶對軟件系統(tǒng)在需求上的模糊認(rèn)識,或用來試探某種設(shè)計是否能夠獲得預(yù)期結(jié)果。(2)原型進(jìn)化模型:針對有待開發(fā)的軟件系統(tǒng),先開發(fā)一個原型給用戶使用,然后根據(jù)用 戶的使用意見,對原型不斷修改,使它逐步接近,并最終到達(dá)開發(fā)目標(biāo)。

第五篇:軟件工程總結(jié)

軟件工程的定義:軟件工程是將系統(tǒng)化的,規(guī)范化的,可度量的方法應(yīng)用于軟件的開發(fā),運(yùn)行和維護(hù)過程,即將工程化應(yīng)用于軟件中的方法的研究。

軟件工程的定義2:開發(fā)運(yùn)行,維護(hù)和修復(fù)軟件的工程方法。

軟檢策略思想:軟件復(fù)用,分而治之,優(yōu)化折中。

軟件的生命周期:軟件生命周期是指一個計算機(jī)軟件從功能確定,設(shè)計,到開發(fā)成功投入使用,并在使用中不斷地修改,增補(bǔ)和完善,直到停止該軟件使用的全過程。

它包括制定計劃(可行性與計劃研究),需求分析,設(shè)計,程序編碼(實現(xiàn)),測試及運(yùn)行維護(hù)6個階段。

軟件開發(fā)模型:瀑布模型,快速原始模型,增量模型,螺旋模型,噴泉模型,組件復(fù)用模型。

軟件開發(fā)過程:(1)定義;(2)開發(fā);(3)驗證;(4)維護(hù)。

軟件開發(fā)的基本方法:傳統(tǒng)的結(jié)構(gòu)化方法,面向?qū)ο蟮姆椒ā?/p>

可行性研究的主要任務(wù):

可行性研究的主要任務(wù)不是具體解決系統(tǒng)中的問題,而是以最小的代價在盡可能短的時間內(nèi)確定問題是否值得解決,是否能夠解決。

可行性研究主要包括以下幾個方面:1,技術(shù)可行性(風(fēng)險分析,資源分析和技術(shù)分析);2,經(jīng)濟(jì)可行性(成本-效益分析);3,社會可行性(社會可行性是指開發(fā)后的系統(tǒng)能否得到社會的認(rèn)可)

系統(tǒng)模型:物理(框圖),邏輯(流程圖);

系統(tǒng)流程圖在可行性分析階段使用。

成本—效益分析:

成本—效益分析的目的是從經(jīng)濟(jì)角度來評價開發(fā)一個新的軟件項目是否可行。

系統(tǒng)的成本包括系統(tǒng)的開發(fā)陳本與運(yùn)營成本。

系統(tǒng)成本包括:(1)硬件成本;(2)系統(tǒng)軟件成本;(3)軟件開發(fā)成本;(4)施工成本;(5)用戶培訓(xùn)費用;(6)不可預(yù)見費用。

系統(tǒng)的運(yùn)營成本是指發(fā)生在軟件生命周期內(nèi)維持系統(tǒng)運(yùn)行的費用,以每年的花費量計算。

它包括:(1)人員費用;(2)網(wǎng)路使用費用;(3)維修費用;(4)消耗品費用。

需求分析的任務(wù)是理解和表達(dá)用戶的需求,描述軟件的功能和性能,確定軟件設(shè)計的限制和軟件同其他系統(tǒng)元素的借口細(xì)節(jié),定義軟件的其他有效性需求。

數(shù)據(jù)流圖在需求分析階段

ER模型包含“實體”,“聯(lián)系”和“屬性”三個階段。

在ER圖中用矩形方框代表實體

在ER圖中用菱形方框代表聯(lián)系。

在ER圖中用橢圓或圓角矩形表示屬性。

層次框圖是用樹形結(jié)構(gòu)的一系列多層次的矩形框描述數(shù)據(jù)的層次結(jié)構(gòu)。

軟件設(shè)計的原則:模塊化,抽象化,信息隱蔽,模塊獨立。

模塊化是指解決一個復(fù)雜問退時自頂向下逐層把軟件系統(tǒng)劃分為若干模型的過程。

抽象化是指認(rèn)識復(fù)雜現(xiàn)象過程中使用的思維工具,即抽出事物本質(zhì)的,共同的特性而暫不考慮它的細(xì)節(jié),不考慮其它因素。

抽象化和逐步求精,模塊化的概念是一致的。

模塊獨立性的概念是模塊化,抽象化和信息隱蔽的直接產(chǎn)物。

模塊獨立性可用兩個定性標(biāo)準(zhǔn)來度量:內(nèi)聚性和耦合性

內(nèi)聚性:又稱塊內(nèi)聯(lián)系,是指模塊的功能強(qiáng)度的度量,即一個模塊內(nèi)部各個元素彼此結(jié)合的緊密程度的度量。

耦合性:又稱塊間聯(lián)系,是指軟件系統(tǒng)結(jié)構(gòu)中各模塊間相互聯(lián)系緊密程度的一種度量。

偶然內(nèi)聚:這種模塊內(nèi)各部分之間沒有有意義的關(guān)系或者關(guān)系很松散。

邏輯內(nèi)聚:這種模塊把幾種相關(guān)的功能組合在一起,每次被調(diào)用時,根據(jù)傳送給模塊的控制型參數(shù)來確定應(yīng)執(zhí)行的功能。

時間內(nèi)聚:這種模塊大多為多功能模塊,但要求模塊的各個功能必須在同一時間段執(zhí)行。

工程內(nèi)聚:使用流程圖作為工具設(shè)計程序的時候,通過流程圖來確定模塊劃分,把流程圖中的某一部分劃出組成模塊,就是過程內(nèi)聚模塊。

通信內(nèi)聚:一個模塊內(nèi)各功能部分都使用了相同的輸入數(shù)據(jù),或產(chǎn)生了相同的輸出數(shù)據(jù)。

順序內(nèi)聚:一個模塊中各個部分都是完成一項具體的功能而協(xié)同工作,緊密聯(lián)系,不可分割的。

內(nèi)容耦合:如果一個模塊直接訪問另一個模塊內(nèi)的內(nèi)部數(shù)據(jù),或一個模塊不能通過正常入口轉(zhuǎn)到另一個模塊內(nèi)部,或兩個模塊有一部分程序代碼重疊(在匯編語言程序中可能出現(xiàn)),或者一個模塊有多個入口,則兩個模塊之間就發(fā)生了內(nèi)容耦合。它是最高程度的耦合,應(yīng)該避免。

公共耦合:如果一組模塊都訪問同一個公共數(shù)據(jù)環(huán)境,則它們之間的耦合稱為公共耦合。

外部耦合:一組模塊都訪問同一全局簡單變量而不是同一全局?jǐn)?shù)據(jù)結(jié)構(gòu),而且不是通過參數(shù)表傳遞該全局變量的信息,則稱之為外部耦合。

控制耦合:如果一個模塊把控制信息傳遞給另一個模塊,對其功能進(jìn)行控制,這種耦合稱為控制耦合。

標(biāo)記耦合:如果一組模塊通過參數(shù)表傳遞記錄信息,這組模塊就是標(biāo)記耦合。事實上這組模塊共享了某一數(shù)據(jù)結(jié)構(gòu)的子結(jié)構(gòu),而不是簡單變量。

數(shù)據(jù)耦合:如果一個模塊訪問另一個模塊彼此之間通過數(shù)據(jù)參數(shù)(不是控制參數(shù),公共數(shù)據(jù)結(jié)構(gòu)或外部變量)來交換輸入,輸出信息,這種耦合稱為數(shù)據(jù)耦合。

非直接耦合:如果兩個模塊之間沒有直接關(guān)系,它們之間的聯(lián)系完全是通過主模塊的控制和調(diào)用來實現(xiàn)的,這就是非直接耦合。

數(shù)據(jù)流圖的類型:變換型,事務(wù)型,混合型。

SD方法以數(shù)據(jù)流圖為基礎(chǔ)設(shè)計系統(tǒng)的模塊結(jié)構(gòu)。

事務(wù)型中間是有事務(wù)中心的!由它來進(jìn)行處理的!

程序設(shè)計語言的分類:

機(jī)器語言——第一代語言

匯編語言——第二代語言

高級語言——第三代語言

4GL——第四代語言

變換型數(shù)據(jù)流圖是線形結(jié)構(gòu)的,由輸入,變換(或稱主加工)和輸出三部分組成。

程序的效率:程序執(zhí)行速度的快慢和程序占用存儲空間的大小。

效率要求實際上就是性能要求對效率追求應(yīng)取決于再需求分析階段確定的效率方面的要求;

程序的效率包括以下三個方面:程序運(yùn)行時間;存儲器效率;輸入/輸出的效率。

公式計算:V(G)=m-n+p

V(G)有向圖G的環(huán)數(shù);

m有向圖G的有向弧數(shù);

n有向圖G的節(jié)點數(shù);

p=1;

軟件測試的目標(biāo):為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。

軟件測試的常用方法:

黑盒法:已知該程序應(yīng)具備的功能而通過檢測來檢驗的它的每一項功能是否能正常使用此方法為黑盒測試。

白盒法:已知程序的內(nèi)部結(jié)構(gòu)和工作過程,通過檢測可檢驗產(chǎn)品內(nèi)部動作是否符合規(guī)格說明書的規(guī)定,為白盒測試。

用白盒法設(shè)計測試用例最常用的是邏輯覆蓋法:包括語句覆蓋,判定覆蓋,條件覆蓋,判定/條件覆蓋,條件組合覆蓋,路徑覆蓋。

軟件測試分為4個步驟進(jìn)行:單元測試,集成測試,確認(rèn)測試,系統(tǒng)測試。

軟件可維護(hù)性的因素:可理解性,可測試性,可修改性。

下載軟件工程總結(jié)word格式文檔
下載軟件工程總結(jié).doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

    軟件工程期末考試總結(jié)

    一、 1、1968年“軟件工程”誕生。 2、軟件定義:軟件是程序、數(shù)據(jù) 相關(guān)文檔的完整結(jié)合。其中,程序是能夠完成預(yù)訂功能和性能的可執(zhí)行的指令序列;數(shù)據(jù)是使程序能夠適當(dāng)?shù)奶幚硇?.....

    軟件工程知識點總結(jié)

    軟件工程知識點總結(jié) 軟件工程知識點總結(jié) 1.軟件危機(jī):指在計算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。 2.軟件危機(jī)產(chǎn)生的原因:1.軟件本身的復(fù)雜性、難衡量的特點;2.......

    軟件工程實習(xí)總結(jié)

    一.實習(xí)題目c/s模式下的網(wǎng)絡(luò)游戲平臺(類似于聯(lián)眾)二.題目要求a.平臺上至少能夠提供兩種游戲(僅供兩人參加)供用戶選擇。b. 服務(wù)器端實現(xiàn)用戶賬號、密碼的管理,監(jiān)控用戶上下線狀態(tài)......

    軟件工程考點總結(jié)[精選合集]

    第一章 1.軟件是程序和所使程序正確運(yùn)行所需的相關(guān)文檔和配置信息.軟件工程是一門工程學(xué)科,涉及軟件生產(chǎn)的各個方面.軟件過程是指制作軟件產(chǎn)品的一組活動及其結(jié)果。 2.軟件過......

    軟件工程知識點總結(jié)

    軟件工程是把系統(tǒng)的、有序的、可量化的方法應(yīng)用到軟件的開發(fā)、運(yùn)營和維護(hù)上的過程。是一門指導(dǎo)軟件系統(tǒng)開發(fā)的工程學(xué)科,它以計算機(jī)理論及其他學(xué)科為指導(dǎo),采用工程化的概念、原......

    軟件工程知識點總結(jié)

    第二章軟件生命周期和過程模型 2.1軟件生命周期是什么?分為哪幾個階段?每個階段干什么? 2.2.1瀑布模型 1、軟件生命周期是指軟件產(chǎn)品從考慮其概念開始到交付使用,直至最終退役為......

    軟件工程學(xué)習(xí)總結(jié)

    軟件工程學(xué)習(xí)總結(jié)通過一個學(xué)期系統(tǒng)的學(xué)習(xí)軟件工程這門課,結(jié)合與小組成員一起開發(fā)設(shè)備管理系統(tǒng)的經(jīng)驗,讓我對軟件的開發(fā)有了更深的了解,學(xué)習(xí)到每一個軟件的開發(fā)都不僅僅是寫代碼......

    軟件工程實習(xí)總結(jié)

    軟件實習(xí)總結(jié)本次實習(xí)我在小組內(nèi)主要負(fù)責(zé)注冊管理模塊部分功能的編寫以及與其相關(guān)的文檔的編寫。本次實習(xí)與以往的實習(xí)最大的不同點在于對文檔編寫的規(guī)范要求。這也是本次實......

主站蜘蛛池模板: 狠狠色婷婷久久一区二区| 日韩 亚洲 制服 欧美 综合| 热思思99re久久精品国产首页| 亚洲综合无码一区二区三区| 在线播放国产一区二区三区| 免费无码又黄又爽又刺激| 欧美牲交a欧美牲交aⅴ免费真| 极品少妇被啪到呻吟喷水| 在线观看黄片| 久久无码国产日本欧美| 亚洲最大av无码网站| 国产成人美女视频网站| 午夜精品久久久久久久99老熟妇| 2022精品久久久久久中文字幕| 国产真实的和子乱拍在线观看| 日本久久久久久久做爰片日本| 无码日韩精品国产av| 亚洲欧洲精品成人久久曰| 亚洲中文字幕无码乱线| 日日摸日日碰人妻无码老牲| 无套内谢的新婚少妇国语播放| 伊人伊成久久人综合网| 国产人妖xxxx做受视频| 国产精品无码a∨精品影院app| 18禁无码永久免费无限制网站| 麻豆精品导航| 初尝黑人巨砲波多野结衣| 欧亚激情偷乱人伦小说专区| 东京热大乱系列无码| 亚洲精品久久久久久久不卡四虎| 波多野结av衣东京热无码专区| 日本大乳高潮视频在线观看| 99re6这里有精品热视频| 99久久精品费精品国产一区二| 无码高潮爽到爆的喷水视频app| √天堂中文官网8在线| 午夜精品久久久久久久久久久久| 少妇高潮惨叫喷水在线观看| 四虎影视永久在线观看| 亚洲精品国产一区二区| 夜夜爽夜夜叫夜夜高潮|