軟件工程第1章-概述_第1頁
軟件工程第1章-概述_第2頁
軟件工程第1章-概述_第3頁
軟件工程第1章-概述_第4頁
軟件工程第1章-概述_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

課程介紹一、教學(xué)方式與考核教學(xué)要求考核方式課程背景內(nèi)容組織先導(dǎo)要求二、成績計算方法(供參考)

1、平時成績+分組完成的項目,約40分。2、期末筆試(閉卷),提交答卷。約60分軟件工程

實用軟件工程(第二版)鄭人杰殷人昆陶永雷清華大學(xué)出版社(1996)

軟件工程-實踐者的研究方法(英文版第四版)RogerS.Pressman

機械工業(yè)出版社參考書目參考書目

FundamentalsofSoftwareEngineeringCarloGhezzi,MehdiJazayeri,DinoMandrioliPrentice-Hall,Inc.(1991)

SoftwareEngineering,TheoryandPracticeShariLawrencePfleeger,Prentice-Hall,Inc.(1998)國家精品課程:-/

國家精品課程:清華大學(xué)課程要求知道軟件開發(fā)的整個過程各個階段的文檔編寫能利用介紹的理論解決一些基本問題軟件工程計劃:按用戶界面分為以下組,要求每組內(nèi)容不同,分別為:①班級通信錄②上課考勤③新聞信息④食堂管理⑤洗衣房管理⑥圖書借閱

學(xué)籍管理

成績管理⑨寢室管理⑩其它的系統(tǒng)(可自選)要求:每組不超過15人,不少于6人;組長負(fù)責(zé):組織、分工、安排進度、上課等組長獎罰:引起過半數(shù)組員不滿,改選組長;帶領(lǐng)全組順利完成任務(wù),總評+5軟件工程內(nèi)容⑴“可行性分析報告”(演講)⑵“需求規(guī)格說明書”(書面或者演講)⑶“總體設(shè)計報告”(演講)⑷推出測試版(現(xiàn)場驗收)⑸推出升級版(現(xiàn)場驗收);⑹推出期末合并版(現(xiàn)場驗收)軟件工程目的體驗軟件工程各階段的主要工作,特別注意吸取教訓(xùn);

學(xué)會與他人合作,培養(yǎng)團隊精神,單干戶將得不到成績。現(xiàn)在開始分組抽簽行動起來!內(nèi)容組織課程介紹和要求(2)軟件和軟件工程(2)可行性分析(4)需求分析(8)軟件總體設(shè)計(6)軟件詳細(xì)設(shè)計(6)編碼分析(6)軟件測試(8)軟件維護(4)開始可行性分析實踐開始需求分析課程實踐課程實踐(軟件設(shè)計)相關(guān)的實踐評議提交軟件設(shè)計結(jié)果考試先導(dǎo)要求程序設(shè)計語言最好有一定的程序開發(fā)經(jīng)驗學(xué)習(xí)要求聽理解知識點和思想無需死記硬背做實踐體會軟件工程的原則、方法和技術(shù),在實踐中提高培養(yǎng)抽象思維能力培養(yǎng)獨立解決問題的能力培養(yǎng)合作精神想閱讀相關(guān)資料第一章軟件危機與軟件工程Late1950’s:§1.軟件危機(SoftwareCrisis)Intheearlydays:

“Software”=“Placeasequenceofinstructionstogethertogetthecomputertodosomethinguseful”.UserComputerComputerbecamecheaperandmorecommonHighlevellanguageswereinventedProgrammerUserComputereasier§1.軟件危機Early1960s:Veryfewlargesoftwareprojectsweredonebysomeexperts.Middletolate1960s:Trulylargesoftwaresystemswereattempted.例:美國IBM公司在1963年至1966年開發(fā)的IBM360機的操作系統(tǒng)。這一項目花了5000人一年的工作量,最多時有1000人投入開發(fā)工作,寫出了近100萬行源程序。......據(jù)統(tǒng)計,這個操作系統(tǒng)每次發(fā)行的新版本都是從前一版本中找出1000個程序錯誤而修正的結(jié)果。......§1.軟件危機這個項目的負(fù)責(zé)人F.D.Brooks事后總結(jié)了他在組織開發(fā)過程中的沉痛教訓(xùn)時說:“......正像一只逃亡的野獸落到泥潭中做垂死的掙扎,越是掙扎,陷得越深,最后無法逃脫滅頂?shù)臑?zāi)難。......程序設(shè)計工作正像這樣一個泥潭,......一批批程序員被迫在泥潭中拼命掙扎,......誰也沒有料到問題竟會陷入這樣的困境......”。IBM360操作系統(tǒng)的歷史教訓(xùn)成為軟件開發(fā)項目的典型事例為人們所記取。SoftwareCrisis!軟件危機(softwarecrisis)的提出軟件危機是指在計算機軟件的開發(fā)和維護過程中所遇到的一系列嚴(yán)重問題。20世紀(jì)60年代末至20世紀(jì)70年代初,"軟件危機"一詞在計算機界廣為流傳。事實上,幾乎從計算機誕生的那一天起,就出現(xiàn)了軟件危機,只不過到了1968年在原西德加密施(Garmish)召開的國際軟件工程會議上才被人們普遍認(rèn)識到。

軟件危機(crisis)的表現(xiàn)20世紀(jì)50年代,軟件成本在整個計算機系統(tǒng)成本中所占的比例為10%-20%。到20世紀(jì)60年代中期,軟件成本在計算機系統(tǒng)中所占的比例已經(jīng)增長到50%左右。而且,該數(shù)字還在不斷地遞增,下面是一組來自美國空軍計算機系統(tǒng)的數(shù)據(jù):1955年,軟件費用約占總費用的18%,1970年達(dá)到60%,1975年達(dá)到72%,1980年達(dá)到80%,1985年達(dá)到85%左右?,F(xiàn)在90%左右

(1)軟件成本日益增長.

軟件的成本相當(dāng)昂貴軟件技術(shù)的發(fā)展落后于需求時間軟件復(fù)雜性軟件需求差距軟件技術(shù)硬、軟件成本比例的變化年份成本%軟件1950197019851995硬件在軟件開發(fā)過程中,用戶需求變化等各種意想不到的情況層出不窮,令軟件開發(fā)過程很難保證按預(yù)定的計劃實現(xiàn),給項目計劃和論證工作帶來了很大的困難。

BROOK曾經(jīng)提出:"在已拖延的軟件項目上,增加人力只會使其更難按期完成"。事實上,軟件系統(tǒng)的結(jié)構(gòu)很復(fù)雜,各部分附加聯(lián)系極大,盲目增加軟件開發(fā)人員并不能成比例地提高軟件開發(fā)能力。相反,隨著人員數(shù)量的增加,人員的組織、協(xié)調(diào)、通信、培訓(xùn)和管理等方面的問題將更為嚴(yán)重。

(2)開發(fā)進度難以控制軟件危機的表現(xiàn)軟件項目即使能按預(yù)定日期完成,結(jié)果卻不盡人意。在"軟件作坊"里,由于缺乏工程化思想的指導(dǎo),程序員幾乎總是習(xí)慣性地以自己的想法去代替用戶對軟件的需求,軟件設(shè)計帶有隨意性,很多功能只是程序員的"一廂情愿"而已,這是造成軟件不能今人滿意的重要因素。(3)軟件質(zhì)量差軟件危機的表現(xiàn)正式投入使用的軟件,總是存在著一定數(shù)量的錯誤,在不同的運行條件下,軟件就會出現(xiàn)故障,因此需要維護。但是,由于在軟件設(shè)計和開發(fā)過程中,沒有嚴(yán)格遵循軟件開發(fā)標(biāo)準(zhǔn),各種隨意性很大,沒有完整的真實反映系統(tǒng)狀況的記錄文檔,給軟件維護造成了巨大的困難。特別是在軟件使用過程中,原來的開發(fā)人員可能因各種原因已經(jīng)離開原來的開發(fā)組織,使得軟件幾乎不可維護。(4)軟件維護困難軟件危機的原因在軟件開發(fā)出來之前,用戶自己也不清楚軟件的具體需求;用戶對軟件需求的描述不精確,可能有遺漏、有二義性、甚至有錯誤;在軟件開發(fā)過程中,用戶還提出修改軟件功能、界面、支撐環(huán)境等方面的要求;軟件開發(fā)人員對用戶需求的理解與用戶本來愿望有差異。

(1)用戶需求不明確軟件危機的原因缺乏有力的方法學(xué)和工具方面的支持。由于軟件不同于大多數(shù)其他工業(yè)產(chǎn)品,其開發(fā)過程是復(fù)雜的邏輯思維過程,其產(chǎn)品極大程度地依賴于開發(fā)人員高度的智力投入。由于過分地依靠程序設(shè)計人員在軟件開發(fā)過程中的技巧和創(chuàng)造性,加劇軟件產(chǎn)品的個性化,也是發(fā)生軟件危機的一個重要原因。(2)缺乏正確的理論指導(dǎo)軟件危機的原因隨著軟件應(yīng)用范圍的增廣,軟件規(guī)模愈來愈大。大型軟件項目需要組織一定的人力共同完成,而多數(shù)管理人員缺乏開發(fā)大型軟件系統(tǒng)的經(jīng)驗,而多數(shù)軟件開發(fā)人員又缺乏管理方面的經(jīng)驗。各類人員的信息交流不及時、不準(zhǔn)確、有時還會產(chǎn)生誤解。軟件項目開發(fā)人員不能有效地、獨立自主地處理大型軟件的全部關(guān)系和各個分支,因此容易產(chǎn)生疏漏和錯誤。(3)軟件規(guī)模越來越大例如:信息時代對計算機提出更高的要求個人計算機時代網(wǎng)絡(luò)計算時代網(wǎng)格計算時代要在信息化的背景下來理解現(xiàn)在和未來的計算機技術(shù)、軟件技術(shù)軟件危機的原因軟件不僅僅是在規(guī)模上快速地發(fā)展擴大,而且其復(fù)雜性也急劇地增加。軟件產(chǎn)品的特殊性和人類智力的局限性,導(dǎo)致人們無力處理復(fù)雜問題"。所謂"復(fù)雜問題"的概念是相對的,一旦人們采用先進的組織形式、開發(fā)方法和工具提高了軟件開發(fā)效率和能力,新的、更大的、更復(fù)雜的問題又?jǐn)[在人們的面前。(4)軟件復(fù)雜度越來越高舉例:杭州市民卡系統(tǒng)總體邏輯結(jié)構(gòu)

VPN公安民政勞社。。。街道一街道二街道三社區(qū)VPN/ISDN/PSTN市民信息交換綜合管理中心中心工作站市民卡

服務(wù)公司工作站商業(yè)應(yīng)用環(huán)境INTERNETWEB呼叫

中心結(jié)算銀行(銀聯(lián)交換如何克服軟件危機人們在認(rèn)真地研究和分析了軟件危機背后的真正原因之后,得出了"人們面臨的不光是技術(shù)問題,更重要的是管理問題。管理不善必然導(dǎo)致失敗。"的結(jié)論,便開始探索用工程的方法進行軟件生產(chǎn)的可能性,即用現(xiàn)代工程的概念、原理、技術(shù)和方法進行計算機軟件的開發(fā)、管理和維護。于是,計算機科學(xué)技術(shù)的一個新領(lǐng)域--軟件工程誕生了。如何克服軟件危機(1)方法。軟件工程方法為軟件開發(fā)提供了"如何做"的技術(shù),是完成軟件工程項目的技術(shù)手段;

(2)工具。軟件工具是人類在開發(fā)軟件的活動中智力和體力的擴展和延伸,為軟件工程方法提供了自動的或半自動的軟件支撐環(huán)境;

(3)過程。軟件工程的過程則是將軟件工程的方法和工具綜合起來以達(dá)到合理、及時地進行計算機軟件開發(fā)的目的。軟件工程是用工程、科學(xué)和數(shù)學(xué)的原則與方法研制、維護計算機軟件的有關(guān)技術(shù)及管理方法。2、計算機軟件的概念計算機系統(tǒng)硬件和軟件硬件和軟件之間的關(guān)系硬件,裸機,基本的計算和存儲能力軟件,利用計算能力來解決實際問題例如,MicrosoftPowerPoint軟件是發(fā)揮計算機優(yōu)勢的關(guān)鍵軟件發(fā)展階段程序設(shè)計階段—50至60年代程序系統(tǒng)階段—60至70年代 軟件工程階段—70年代以后1、隨著計算機技術(shù)的不同發(fā)展階段有不同的認(rèn)識

(1)軟件就是程序(單個程序員)

(2)程序+程序說明書(多個程序員合作)(3)軟件工程學(xué)(形成文檔)+程序

軟件的含義:

(1)計算機程序(instruction)

(2)處理信息的數(shù)據(jù)結(jié)構(gòu)(datastructures)(3)相關(guān)文檔(documents)

軟件是計算機系統(tǒng)中與硬件相互依存的另一部分,它是包括程序,數(shù)據(jù)及其相關(guān)文檔的完整集合。程序是按事先設(shè)計的功能和性能要求執(zhí)行的指令序列數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu)文檔是與程序開發(fā),維護和使用有關(guān)的圖文材料軟件的特點軟件是一種邏輯實體,而不是具體的物理實體。因而它具有抽象性軟件的生產(chǎn)與硬件不同,在它的開發(fā)過程中沒有明顯的制造過程在軟件的運行和使用期間,沒有硬件那樣的機械磨損,老化問題軟件的開發(fā)和運行常受到計算機系統(tǒng)的限制,對計算機系統(tǒng)有著不同程度的依賴性軟件的開發(fā)至今尚未完全擺脫手工藝的開發(fā)方式軟件本身是復(fù)雜的實際問題的復(fù)雜性程序邏輯結(jié)構(gòu)的復(fù)雜性軟件成本相當(dāng)昂貴相當(dāng)多的軟件工作涉及到社會因素軟件的分類按軟件的功能進行劃分:系統(tǒng)軟件操作系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)設(shè)備驅(qū)動程序通信處理程序等

支撐軟件文本編輯程序文件格式化程序磁盤向磁帶向數(shù)據(jù)傳輸?shù)某绦虺绦驇煜到y(tǒng)支持需求分析、設(shè)計、實現(xiàn)、測試和支持管理的軟件

應(yīng)用軟件商業(yè)數(shù)據(jù)處理軟件工程與科學(xué)計算軟件計算機輔助設(shè)計/制造軟件系統(tǒng)仿真軟件智能產(chǎn)品嵌入軟件醫(yī)療、制藥軟件事務(wù)管理、辦公自動化軟件計算機輔助教學(xué)軟件按軟件規(guī)模進行劃分:類別參加人員數(shù)研制期限源程序行數(shù)

微型 1 1~4周0.5k小型1 1~6月1k~2k中型2~5 1~2年5k~50k大型5~20 2~3年50k~100k甚大型100~10004~5年1M(=1000k)極大型2000~50005~10年1M~10M

軟件工程過程軟件規(guī)格說明:規(guī)定軟件的功能及其運行的限制軟件開發(fā):產(chǎn)生滿足規(guī)格說明的軟件軟件確認(rèn):確認(rèn)軟件能夠完成客戶提出的要求軟件演進:為滿足客戶的變更要求,軟件必須在使用的過程中演進軟件工程過程的特性易理解性可見性可支持性可接受性可靠性健壯性可維護性速度軟件生存期lifecycle軟件有一個孕育、誕生、成長、成熟、衰亡的生存過程。這個過程即為計算機軟件的生存期軟件生存期的六個步驟,即制定計劃、需求分析、設(shè)計、程序編碼、測試及運行維護瀑布模型

RETURN制定計劃確定要開發(fā)軟件系統(tǒng)的總目標(biāo)給出功能、性能、可靠性以及接口等方面的要求完成該軟件任務(wù)的可行性研究估計可利用的資源

(硬件,軟件,人力等)、成本、效益、開發(fā)進度制定出完成開發(fā)任務(wù)的實施計劃,連同可行性研究報告,提交管理部門審查需求分析和定義對用戶提出的要求進行分析并給出詳細(xì)的定義編寫軟件需求說明書或系統(tǒng)功能說明書及初步的系統(tǒng)用戶手冊提交管理機構(gòu)評審軟件設(shè)計概要設(shè)計

—把各項需求轉(zhuǎn)換成軟件的體系結(jié)構(gòu)。結(jié)構(gòu)中每一組成部分都是意義明確的模塊,每個模塊都和某些需求相對應(yīng)詳細(xì)設(shè)計

—對每個模塊要完成的工作進行具體的描述,為源程序編寫打下基礎(chǔ)編寫設(shè)計說明書,提交評審。程序編寫把軟件設(shè)計轉(zhuǎn)換成計算機可以接受的程序代碼,即寫成以某一種特定程序設(shè)計語言表示的“源程序清單”寫出的程序應(yīng)當(dāng)是結(jié)構(gòu)良好、清晰易讀的,且與設(shè)計相一致的軟件測試單元測試,查找各模塊在功能和結(jié)構(gòu)上存在的問題并加以糾正組裝測試,將已測試過的模塊按一定順序組裝起來按規(guī)定的各項需求,逐項進行有效性測試,決定已開發(fā)的軟件是否合格,能否交付用戶使用運行/維護改正性維護運行中發(fā)現(xiàn)了軟件中的錯誤需要修正適應(yīng)性維護為了適應(yīng)變化了的軟件工作環(huán)境,需做適當(dāng)變更完善性維護為了增強軟件的功能需做變更軟件生存期模型軟件生存期模型是跨越整個生存期的系統(tǒng)開發(fā)、運作和維護所實施的全部過程、活動和任務(wù)的結(jié)構(gòu)框架瀑布模型演化模型螺旋模型噴泉模型智能模型演化模型由于在項目開發(fā)的初始階段人們對軟件的需求認(rèn)識常常不夠清晰,因而使得開發(fā)項目難于做到一次開

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論