【正文】
準(zhǔn)時交貨、符合預(yù)算,滿足用戶所需的軟件。對軟件分析、設(shè)計、實施及維護的一種系統(tǒng)化方法。主要內(nèi)容包括軟件工程概述、可行性分析、需求分析、概要設(shè)計、詳細設(shè)計、面向?qū)ο蠓治雠c設(shè)計、編碼、軟件測試、項目計劃與管理。而且,軟件工程在企業(yè)范圍內(nèi)運行,一定需要企業(yè)資源的支持,要與企業(yè)的經(jīng)營、決策、管理體系聯(lián)系在一起,才能夠被踏踏實實的落實下來。中國的企業(yè)群體,數(shù)量龐大,但是質(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í)國外的先進技術(shù),轉(zhuǎn)變自己的技術(shù),然后融合,創(chuàng)新。數(shù)據(jù)是使程序能夠正確地處理信息的數(shù)據(jù)結(jié)構(gòu)。(錯)軟件的開發(fā)特性是指軟件需要大量手工勞動,難以自動化生產(chǎn)。軟件的開發(fā)環(huán)境往往就是軟件的運行環(huán)境,或者與其兼容。2,應(yīng)用軟件,是在系統(tǒng)軟件的支持下,在特定區(qū)域內(nèi)開發(fā),為特定目的服務(wù)的一類軟件。軟件的定義:計算機程序,方法,規(guī)則,相關(guān)的文檔資料一集在計算機上運行時所必需的數(shù)據(jù)。3,軟件開發(fā)過程不規(guī)范,缺少方法和規(guī)范的指導(dǎo)。軟件生存期:軟件的孕育,誕生,成長,成熟,衰亡的生存過程。軟件開發(fā)時期的任務(wù)和包含階段主要任務(wù)是解決“如何做”的問題,設(shè)計和實現(xiàn)定義的軟件。項目計劃。軟件工程各個階段的基本任務(wù)問題定義與可行性研究:解決什么問題?能否解決問題?是否值得做?”需求分析:做什么軟件設(shè)計:如何實現(xiàn)程序編碼和單元測試:實現(xiàn)設(shè)計集成和系統(tǒng)測試:組裝連接測試、功能驗證測試軟件運行和維護:修改 第二章軟件工程方法與工具軟件工具:是指能支持軟件生存周期中某一階段(如系統(tǒng)定義,需求分析,設(shè)計,編碼,測試,維護等)的需要而使用的軟件工具。軟件的體系結(jié)構(gòu)通常用模塊結(jié)構(gòu)圖來描述。設(shè)計模塊的算法和內(nèi)部實現(xiàn)細節(jié)。流程圖(FC)。判定樹第三章軟件需求獲取與結(jié)構(gòu)化分析方法 需求獲取的主要任務(wù)是與用戶溝通,了解系統(tǒng)或產(chǎn)品的目標(biāo)是什么,客戶或用戶想要實現(xiàn)什么,系統(tǒng)和產(chǎn)品如何滿足業(yè)務(wù)的要求,最終系統(tǒng)或產(chǎn)品如何用于日常工作。按照三個成分即數(shù)據(jù),過程和接口觀察問題的不同側(cè)面。2,現(xiàn)有產(chǎn)品或競爭產(chǎn)品的描述文檔。6,觀察用戶如何工作。(系統(tǒng)開發(fā)包含研究行為,應(yīng)了解對手產(chǎn)品,取長補短)系統(tǒng)開發(fā)包含改進當(dāng)前系統(tǒng)的缺陷和不足。完整性,正確性,合理性,可行性,充分性。使用狀態(tài)轉(zhuǎn)換圖(簡稱狀態(tài)圖)建立系統(tǒng)行為模型。第四章結(jié)構(gòu)化設(shè)計方法結(jié)構(gòu)化設(shè)計方法是在模塊化,自頂向下逐步細化及結(jié)構(gòu)化程序設(shè)計技術(shù)基礎(chǔ)上發(fā)展起來的,結(jié)構(gòu)化設(shè)計方法可分為兩類:一類是根據(jù)系統(tǒng)的數(shù)據(jù)流進行設(shè)計,稱為面向數(shù)據(jù)流的設(shè)計,或稱過程驅(qū)動設(shè)計,另一類是根據(jù)系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)進行設(shè)計,稱為面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計,或稱數(shù)據(jù)驅(qū)動的設(shè)計。模塊并不是越小越好,當(dāng)模塊數(shù)目增加時,每個模塊的規(guī)模將減小,開發(fā)單個模塊的成本確實減少了,但是隨著模塊數(shù)目增加,模塊之間關(guān)系的復(fù)雜程度也會增加,設(shè)計模塊間接口所需要的工作量也將增加。1是盡量使用已有的構(gòu)件。詳細設(shè)計即過程設(shè)計,對結(jié)構(gòu)表示進行細化,得到軟件詳細的數(shù)據(jù)結(jié)構(gòu)和算法。過程設(shè)計:依賴于加工規(guī)格說明、狀態(tài)圖基于數(shù)據(jù)流方法的設(shè)計過程:。4,盡可能減少高扇出結(jié)構(gòu),隨著深度增大扇入。自頂向下,逐步細化的設(shè)計過程主要包括兩個方面:一是將復(fù)雜問題的解法分析和細化成由若干個模塊組成的層次結(jié)構(gòu),二是將每個模塊的功能逐步分解細化為一系列的處理。軟件工程的定義2:開發(fā)運行,維護和修復(fù)軟件的工程方法。軟件開發(fā)模型:瀑布模型,快速原始模型,增量模型,螺旋模型,噴泉模型,組件復(fù)用模型??尚行匝芯恐饕ㄒ韵聨讉€方面:1,技術(shù)可行性(風(fēng)險分析,資源分析和技術(shù)分析);2,經(jīng)濟可行性(成本效益分析);3,社會可行性(社會可行性是指開發(fā)后的系統(tǒng)能否得到社會的認可)系統(tǒng)模型:物理(框圖),邏輯(流程圖);系統(tǒng)流程圖在可行性分析階段使用。系統(tǒng)的運營成本是指發(fā)生在軟件生命周期內(nèi)維持系統(tǒng)運行的費用,以每年的花費量計算。在ER圖中用矩形方框代表實體在ER圖中用菱形方框代表聯(lián)系。模塊化是指解決一個復(fù)雜問退時自頂向下逐層把軟件系統(tǒng)劃分為若干模型的過程。模塊獨立性可用兩個定性標(biāo)準(zhǔn)來度量:內(nèi)聚性和耦合性內(nèi)聚性:又稱塊內(nèi)聯(lián)系,是指模塊的功能強度的度量,即一個模塊內(nèi)部各個元素彼此結(jié)合的緊密程度的度量。時間內(nèi)聚:這種模塊大多為多功能模塊,但要求模塊的各個功能必須在同一時間段執(zhí)行。內(nèi)容耦合:如果一個模塊直接訪問另一個模塊內(nèi)的內(nèi)部數(shù)據(jù),或一個模塊不能通過正常入口轉(zhuǎn)到另一個模塊內(nèi)部,或兩個模塊有一部分程序代碼重疊(在匯編語言程序中可能出現(xiàn)),或者一個模塊有多個入口,則兩個模塊之間就發(fā)生了內(nèi)容耦合??刂岂詈希喝绻粋€模塊把控制信息傳遞給另一個模塊,對其功能進行控制,這種耦合稱為控制耦合。非直接耦合:如果兩個模塊之間沒有直接關(guān)系,它們之間的聯(lián)系完全是通過主模塊的控制和調(diào)用來實現(xiàn)的,這就是非直接耦合。程序的效率:程序執(zhí)行速度的快慢和程序占用存儲空間的大小。白盒法:已知程序的內(nèi)部結(jié)構(gòu)和工作過程,通過檢測可檢驗產(chǎn)品內(nèi)部動作是否符合規(guī)格說明書的規(guī)定,為白盒測試。軟件測試分為4個步驟進行:單元測試,集成測試,確認測試,系統(tǒng)測試。公式計算:V(G)=mn+pV(G)有向圖G的環(huán)數(shù);m有向圖G的有向弧數(shù);n有向圖G的節(jié)點數(shù);p=1;軟件測試的目標(biāo):為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。SD方法以數(shù)據(jù)流圖為基礎(chǔ)設(shè)計系統(tǒng)的模塊結(jié)構(gòu)。事實上這組模塊共享了某一數(shù)據(jù)結(jié)構(gòu)的子結(jié)構(gòu),而不是簡單變量。公共耦合:如果一組模塊都訪問同一個公共數(shù)據(jù)環(huán)境,則它們之間的耦合稱為公共耦合。通信內(nèi)聚:一個模塊內(nèi)各功能部分都使用了相同的輸入數(shù)據(jù),或產(chǎn)生了相同的輸出數(shù)據(jù)。偶然內(nèi)聚:這種模塊內(nèi)各部分之間沒有有意義的關(guān)系或者關(guān)系很松散。抽象化和逐步求精,模塊化的概念是一致的。層次框圖是用樹形結(jié)構(gòu)的一系列多層次的矩形框描述數(shù)據(jù)的層次結(jié)構(gòu)。需求分析的任務(wù)是理解和表達用戶的需求,描述軟件的功能和性能,確定軟件設(shè)計的限制和軟件同其他系統(tǒng)元素的借口細節(jié),定義軟件的其他有效性需求。系統(tǒng)的成本包括系統(tǒng)的開發(fā)陳本與運營成本。軟件開發(fā)的基本方法:傳統(tǒng)的結(jié)構(gòu)化方法,面向?qū)ο蟮姆椒?。軟件的生命周期:軟件生命周期是指一個計算機軟件從功能確定,設(shè)計,到開發(fā)成功投入使用,并在使用中不斷地修改,增補和完善,直到停止該軟件使用的全過程。軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。6,模塊的大小要適中。2,消除重復(fù)功能,改善軟件結(jié)構(gòu)。數(shù)據(jù)設(shè)計,依賴于ER圖。軟件設(shè)計的階段與任務(wù):從工程管理的角度,可以將軟件設(shè)計分為概要設(shè)計階段和詳細設(shè)計階段。自頂向下,逐步細化:抽象是指忽視一個主題中與當(dāng)前目標(biāo)無關(guān)的方面,以便更充分地注意與當(dāng)前目標(biāo)有關(guān)的方面,當(dāng)我們進行軟件設(shè)計時,設(shè)計開始時應(yīng)盡量提高軟件的抽象層次,按抽象級別從高到低進行軟件設(shè)計,將軟件的體系結(jié)構(gòu)按自頂向下方式,對各個層次的過程細節(jié)和數(shù)據(jù)細節(jié)逐層細化,直到用程序設(shè)計語言的語句能夠?qū)崿F(xiàn)為止,從而最后確定整個系統(tǒng)的體系結(jié)構(gòu),這就是自頂向下逐步細化過程。模塊化是將整體軟件劃分為獨立命名且可獨立訪問的模塊,不同的模塊通常具有不用的功能或指責(zé),每個模塊可獨立開發(fā),測試,最后組裝成完整的軟件。加工規(guī)格說明。核心是數(shù)據(jù)字典。(對,需求描述是困難的)觀察用戶如何工作也是一種需求調(diào)查行為。(不能獲取準(zhǔn)確、全面的系統(tǒng)需求)沒有經(jīng)過與用戶交流而獲取的需求都是不真實的需求。4,當(dāng)前系統(tǒng)的問題報告和改進要求。需求獲取的原則:深入淺出,以流程為主線。需求分析的困難體現(xiàn):系統(tǒng)的目標(biāo)或范圍問題;需求不準(zhǔn)確性問題;需求的易變問題需求獲取的任務(wù):發(fā)現(xiàn)和分析問題,并分析問題的原因,結(jié)果關(guān)系。結(jié)構(gòu)化語言。問題分析圖(PAD)。Visio。通過數(shù)據(jù)流程圖DFD進行功能分析。軟件設(shè)計說明書。軟件運行維護時期的主要任務(wù)是使軟件持久地滿足用戶的需要,通常有4類維護活動:改正性維護;適應(yīng)性維護;完善性維護;預(yù)防性維護。軟件定義時期的任務(wù)主要任務(wù)是解決“做什么”的問題,確定工程的總目標(biāo)和可行性;實現(xiàn)工程目標(biāo)的策略及系統(tǒng)功能;估計需要的資源和成本;制訂工程進度表。5,缺少有效的軟件評測手段,提交用戶的軟件質(zhì)量差。原因:1,缺乏軟件開發(fā)的經(jīng)驗和有關(guān)軟件開發(fā)數(shù)據(jù)的積累,使得開發(fā)工作的計劃很難制定。4,可復(fù)用軟件,最初實現(xiàn)的典型的可復(fù)用軟件是各種標(biāo)準(zhǔn)函數(shù)庫,通常是由計算機廠商提供的系統(tǒng)軟件的一部分。(錯)軟件可以不斷改進,因此軟件不需要廢棄。(錯)軟件的生產(chǎn)指的是軟件的復(fù)制。程序的最小單位是函數(shù)及子程序,程序與數(shù)據(jù)是分離的,在面向?qū)ο蟪绦蛟O(shè)計時代,程序的最小單位是類,在類中封裝了相關(guān)的數(shù)據(jù)及指令代碼。第三篇:軟件工程總結(jié) is a product and can be manufactured using the same technologies used for other engineering artifacts Answer: b are a mixture of print publishing and software development, making their development outside the realm of software engineering : b engineering umbrella activities are only applied during the initial phases of software development : b ahead for software reuse reduces the cost and increases the value of the systems into which they are : a essence of software engineering practice might be described as understand the problem, plan a solution, carry out the plan, and examine the result for : a agile process models the only deliverable work product is the working : b most software development projects are initiated to try to meet some business : a general soft