軟件工程(2012版)-緒論1_第1頁
軟件工程(2012版)-緒論1_第2頁
軟件工程(2012版)-緒論1_第3頁
軟件工程(2012版)-緒論1_第4頁
軟件工程(2012版)-緒論1_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、軟件工程哈爾濱工業(yè)大學(xué)(威海)計算機(jī)科學(xué)與技術(shù)學(xué)院孟凡超Email:Tele考教材軟件工程-原理、方法與應(yīng)用(第3版).史濟(jì)民等,高等教育出版社。軟件工程. 張海藩. 人民郵電出版社。Software Engineering: Theory and Practice(軟件工程). Shari Lawrence等,人民郵電出版社。UML2 and the Unified Process Practical Object-Oriented Analysis and Design(UML2.0和統(tǒng)一過程).Jim Arlow.機(jī)械工業(yè)出版社。課程情況課程編號:T104021

2、0-0.上課時間表:周1第一大節(jié)(N118)、周3第一大節(jié)(G203)、周5第一大節(jié)(N114).考試情況平時成績30分(作業(yè)20分,出勤10分)期末考試成績70分上課要求提前5分鐘到教室課堂上應(yīng)關(guān)閉手機(jī)1. 緒論2. 軟件生存周期與軟件過程3. 結(jié)構(gòu)化分析與設(shè)計4. 面向?qū)ο笈cUML5. 需求工程與需求分析6. 面向?qū)ο蠓治?. 面向?qū)ο笤O(shè)計8. 編碼與測試9. 軟件維護(hù)10. 軟件復(fù)用11. 軟件工程管理主要內(nèi)容本章主要內(nèi)容軟件和軟件危機(jī)軟件工程學(xué)的范疇軟件工程的發(fā)展軟件工程的應(yīng)用緒論常用軟件緒論軟件=程序+文檔可執(zhí)行部分不可執(zhí)行部分文檔1文檔2文檔3程序軟件:軟件是能夠完成預(yù)定義功能和性

3、能的計算機(jī)程序,包括使程序正常執(zhí)行所需的數(shù)據(jù),以及有關(guān)描述程序操作和使用的文檔。簡而言之,可以表述為:軟件=程序+文檔。緒論程序程序是為了解決某個特定問題而用程序設(shè)計語言(C/C+/Java/HTML/JSP/SQL)描述的適合計算機(jī)處理的語句序列。程序需要經(jīng)過編輯、編譯、鏈接等過程才能成為在計算機(jī)上執(zhí)行的機(jī)器語言序列。程序執(zhí)行一般需要一定的輸入數(shù)據(jù),同時也會輸出運行結(jié)果。緒論源程序編輯程序編譯程序連接程序目標(biāo)程序庫程序可執(zhí)行代碼文檔文檔:軟件開發(fā)活動的記錄,主要供人們閱讀,既可用于專業(yè)人員和用戶之間的通信和交流,也可以用于軟件開發(fā)過程的管理和運行階段的維護(hù)。文檔類型:需求分析文檔、軟件設(shè)計文

4、檔、軟件測試文檔、用戶使用說明書等。編寫文檔的目的促進(jìn)對軟件的開發(fā)、管理和維護(hù);便于各種人員(用戶、開發(fā)人員)的交流。緒論軟件的特征軟件開發(fā)不同于硬件設(shè)計軟件開發(fā)更依賴人員素質(zhì)、智力、組織、合作和管理開發(fā)成本、進(jìn)度很難估算軟件生產(chǎn)不同于硬件制造軟件生產(chǎn)只需復(fù)制軟件維護(hù)不同于硬件維修不會老化維護(hù)困難和復(fù)雜緒論軟件的類型系統(tǒng)軟件:計算機(jī)系統(tǒng)軟件是計算機(jī)管理自身資源(如CPU、內(nèi)存、外存、外設(shè)等),提高計算機(jī)使用效率并為計算機(jī)用戶提供各種服務(wù)的基礎(chǔ)軟件。例如,操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)等。實時軟件:監(jiān)測、分析和控制現(xiàn)實世界發(fā)生的事件,能以足夠快的速度對輸入信息進(jìn)行處理,并在規(guī)定的時間內(nèi)作出反應(yīng)的軟件。

5、例如,各種設(shè)備運行監(jiān)控軟件等。緒論嵌入式軟件:嵌入式計算機(jī)系統(tǒng)將計算機(jī)嵌入在某一系統(tǒng)之中,使之成為該系統(tǒng)的重要組成部分,控制該系統(tǒng)的運行,進(jìn)而實現(xiàn)某一特定的物理過程。用于嵌入計算機(jī)系統(tǒng)的軟件稱為嵌入式軟件。例如,航空航天系統(tǒng)、指揮系統(tǒng)、汽車控制系統(tǒng)等??茖W(xué)和工程計算軟件:它們以數(shù)值算法為基礎(chǔ),對數(shù)值量進(jìn)行處理和計算,主要用于科學(xué)和工程計算。例如,數(shù)值天氣預(yù)報、導(dǎo)彈計算、石油勘探、計算輔助設(shè)計(CAD)等。事務(wù)處理軟件:用于處理事務(wù)信息,特別是商務(wù)信息的計算機(jī)軟件。事務(wù)信息處理是軟件最大的應(yīng)用領(lǐng)域。例如,企業(yè)資源計劃系統(tǒng)(ERP)、物流管理系統(tǒng)等。緒論人工智能軟件:支持計算機(jī)系統(tǒng)產(chǎn)生人類某些智能

6、的軟件。它們求解復(fù)雜問題不是用傳統(tǒng)的計算或分析方法,而是采用諸如基于規(guī)則的演繹推理技術(shù)和算法。應(yīng)用領(lǐng)域有專家系統(tǒng)、模式識別、自然語言理解、人工神經(jīng)網(wǎng)絡(luò)、程序驗證、自動程序設(shè)計、機(jī)器人學(xué)等。CASE工具軟件:CASE工具軟件一般為支撐軟件生存周期中不同活動而研制,包括項目管理工具、需求分析工具、編程環(huán)境(編輯器、編譯器、鏈接器和測試器于一體)、軟件測試工具等。其它軟件緒論緒論軟件概念的演變= 軟件軟件是一種產(chǎn)品setup計算機(jī)就是軟件CADERPGameEmailOACRM軟件即服務(wù)(SaaS)緒論云計算DNS服務(wù)器網(wǎng)站服務(wù)器Internet用戶云計算的變革計算存儲網(wǎng)絡(luò)軟件服務(wù)各種聯(lián)網(wǎng)設(shè)備云計算

7、中的云云計算是一種新型的計算模型,把IT資源、數(shù)據(jù)、應(yīng)用作為服務(wù)通過互聯(lián)網(wǎng)提供給用戶。云計算也是一種基礎(chǔ)架構(gòu)管理的方法論,大量的計算資源組成IT資源池,用戶動態(tài)創(chuàng)建高速虛擬化的資源提供用戶使用。緒論云架構(gòu)的基本層次基礎(chǔ)設(shè)施層基礎(chǔ)設(shè)施即服務(wù)(Infrastructure as a Service, IaaS)平臺層平臺即服務(wù)(Platform as a Service, PaaS)應(yīng)用層軟件即服務(wù)(Software as a Service, SaaS)公有云混合云私有云軟件危機(jī)什么是軟件危機(jī)軟件危機(jī)的表現(xiàn)軟件危機(jī)的根源軟件危機(jī)的解決途徑緒論軟件危機(jī)軟件危機(jī)是指在計算機(jī)軟件的開發(fā)和維護(hù)過程中所遇

8、到的一系列嚴(yán)重問題。兩個主要問題如何開發(fā)軟件,以滿足對軟件的日益增長的需求。如何維護(hù)數(shù)量不斷膨脹的已有軟件。緒論軟件危機(jī)的表現(xiàn)軟件成本高IBM 360 OS, 5000多人年,耗時4年(19631966),花費2億多美元。美國空軍:1955年軟件占總費用(計算機(jī)系統(tǒng))的18%,70年60%,85年達(dá)到85。美國全球軍事指揮控制系統(tǒng),硬件1億美元,軟件高達(dá)7.2億美元。緒論軟件質(zhì)量得不到保證軟件應(yīng)用面的擴(kuò)大:科學(xué)計算、軍事、航空航天、工業(yè)控制、企業(yè)管理、辦公、家庭。軟件越來越多的應(yīng)用于安全猶關(guān)(safety critical)的系統(tǒng),對軟件質(zhì)量提出更高的要求。80年代歐洲亞麗安娜火箭的發(fā)射失敗,

9、原因是軟件錯誤。美國阿托拉斯火箭的發(fā)射失敗,原因是軟件故障。英國1986年開發(fā)的辦公室信息系統(tǒng)Folios經(jīng)4年,因性能達(dá)不到要求,1989年取消。日本第5代機(jī)因為軟件問題在投入50億美元后于1993年下馬。緒論軟件進(jìn)度難以控制項目延期比比皆是由于進(jìn)度問題而取消的軟件項目較常見只有一小部分的項目能夠按期完成軟件維護(hù)非常困難軟件維護(hù)的多樣性軟件維護(hù)的復(fù)雜性軟件維護(hù)的副作用緒論軟件成本占系統(tǒng)總成本的比例逐年上升軟件、硬件成本變化趨勢 緒論軟件危機(jī)的根源與軟件本身的特點有關(guān)。軟件不同于硬件,它是計算機(jī)系統(tǒng)的邏輯部件而不是物理部件。在寫出程序代碼并在計算機(jī)運行之前,軟件開發(fā)過程的進(jìn)展情況較難衡量,軟件

10、開發(fā)的質(zhì)量也較難評價。因此,管理和控制軟件開發(fā)過程相當(dāng)困難。軟件不易于維護(hù)。軟件維護(hù)通常意味著改正或修改原來的設(shè)計,客觀上使軟件較難維護(hù)。軟件不同于一般程序,它的規(guī)模大,不易于維護(hù)。在軟件開發(fā)過程中,或多或少地采用了錯誤的方法和技術(shù)。對用戶需求沒有完整準(zhǔn)確的認(rèn)識,就匆忙著手編寫程序。緒論軟件危機(jī)的解決途徑技術(shù)措施:使用更好的軟件開發(fā)方法和開發(fā)工具。組織管理措施:軟件開發(fā)不是某種個體勞動的神秘技巧,而應(yīng)該是一種組織良好、管理嚴(yán)密、各類人員協(xié)同配合、共同完成的工程項目。緒論本章主要內(nèi)容軟件和軟件危機(jī)軟件工程學(xué)的范疇軟件工程的發(fā)展軟件工程的應(yīng)用緒論緒論“軟件工程”首次提出: 1968年,北大西洋公約

11、組織在原西德召開計算機(jī)科學(xué)會議,首次提出了“軟件工程”的概念。提出背景:解決軟件危機(jī)。軟件工程學(xué)軟件工程學(xué)軟件開發(fā)技術(shù)軟件工程管理軟件開發(fā)方法學(xué)軟件工具軟件工程環(huán)境軟件管理學(xué)軟件經(jīng)濟(jì)學(xué)軟件度量學(xué)緒論軟件開發(fā)方法學(xué)結(jié)構(gòu)化程序開發(fā) 面向?qū)ο箝_發(fā) 分布式對象/系統(tǒng)基于構(gòu)件的開發(fā)面向服務(wù)的開發(fā)19701980199020002010軟件開發(fā)方法學(xué)演化緒論軟件工具作用:提高軟件開發(fā)效率,促進(jìn)軟件生產(chǎn)的自動化。編碼階段工具:編輯程序、編譯程序、連接程序以及集成開發(fā)環(huán)境等。源程序編輯程序工具編譯程序工具連接程序工具目標(biāo)程序庫程序可執(zhí)行代碼編碼階段主要軟件工具緒論運行階段工具:應(yīng)用服務(wù)器、各種中間件、數(shù)據(jù)庫管

12、理系統(tǒng)、操作系統(tǒng)等。緒論軟件工程環(huán)境軟件開發(fā)方法學(xué)與軟件工具相結(jié)合,再加上配套的軟、硬件支持就形成軟件工程環(huán)境。例如,UNIX環(huán)境、Windows環(huán)境等。軟件工程管理軟件工程管理的目的是為了按照進(jìn)度及預(yù)算完成軟件計劃,實現(xiàn)預(yù)期的經(jīng)濟(jì)和社會效益。軟件工程管理包括:成本估算、進(jìn)度安排、人員組織、質(zhì)量保證等內(nèi)容,另外還涉及到管理學(xué)、度量學(xué)和經(jīng)濟(jì)學(xué)等多個學(xué)科的知識。本章主要內(nèi)容軟件和軟件危機(jī)軟件工程學(xué)的范疇軟件工程的發(fā)展軟件工程的應(yīng)用緒論緒論軟件編程范型范型:又稱為科學(xué)基質(zhì),代表科學(xué)共同體成員所共有的信念、價值、技術(shù)手段的總稱。簡單地說,范型是某一學(xué)科在一定時期內(nèi)展開研究活動共有的基礎(chǔ)和準(zhǔn)則。編程范型

13、:是指導(dǎo)和制約編程活動的范型,通常在編程語言中體現(xiàn)。目前主要的編程范型有:過程式編程范型面向?qū)ο缶幊谭缎突跇?gòu)件的編程范型面向服務(wù)的編程范型緒論過程式編程范型:過程式編程范型遵循“程序=數(shù)據(jù)結(jié)構(gòu)+算法”的思路,把程序理解成一組被動的數(shù)據(jù)和一組能動的過程所構(gòu)成。典型過程式編程語言包括COBOL、Fortran、Pascal和C等。內(nèi)存(程序和數(shù)據(jù)) 控制器 運算器 I/O 地址數(shù)據(jù)CPUVon Neumann式計算機(jī)體系結(jié)構(gòu)命令式編程范型是對Von Neumann式計算機(jī)的順序執(zhí)行機(jī)制的直接抽象。緒論面向?qū)ο缶幊谭缎停褐赣梅庋b了數(shù)據(jù)和對數(shù)據(jù)操作的對象以及對象之間的消息傳遞描述計算的編程范型。Ja

14、va、C#等是典型的面向?qū)ο缶幊谭缎驼Z言。面向?qū)ο缶幊谭缎偷氖疽鈭D數(shù)據(jù)操作對象數(shù)據(jù)數(shù)據(jù)消息對象對象“對象+消息”的機(jī)制取代了“數(shù)據(jù)結(jié)構(gòu)+算法”的思路,因而較好地解決了解空間與問題空間的一致性。緒論例. 銀行儲蓄處理事務(wù)。數(shù)據(jù):帳戶余額;操作:存款、取款、利息結(jié)算。帳戶余額存款取款利息結(jié)算過程式編程范型帳戶余額存款取款利息結(jié)算“銀行帳戶”對象面向?qū)ο缶幊谭缎途w論基于構(gòu)件的編程范型:指以構(gòu)件的創(chuàng)建,構(gòu)件的管理以及復(fù)用已有的構(gòu)件組裝形成應(yīng)用為基本活動的編程范型。目前主要的構(gòu)件開發(fā)技術(shù)有:COM/DOCM、CORBA、EJB、Spring、OSGi等。數(shù)據(jù)對象數(shù)據(jù)數(shù)據(jù)消息對象一個封裝了多個對象的構(gòu)件構(gòu)

15、件的接口構(gòu)件:模塊化的、可部署、可替換的軟件系統(tǒng)組成部分,它封裝了內(nèi)部的具體實現(xiàn)并對外提供一組接口。緒論面向服務(wù)的編程范型:指以服務(wù)的創(chuàng)建、服務(wù)的管理以及復(fù)用已有的服務(wù)組裝形成應(yīng)用為基本活動的編程范型。 目前面向服務(wù)開發(fā)的技術(shù)有Web Service、SCA等。服務(wù)1服務(wù)2服務(wù)3服務(wù)4服務(wù)(Service):是自治、開放、自描述、與實現(xiàn)無關(guān)的網(wǎng)絡(luò)構(gòu)件。異構(gòu)系統(tǒng)的功能被封裝為服務(wù)以方便復(fù)用應(yīng)用1(J2EE)應(yīng)用2(.Net)應(yīng)用3(Legacy)服務(wù)層應(yīng)用層緒論LINIXUNIXWindows Fortran Java Application 屏蔽計算機(jī)硬件的異構(gòu)性發(fā)展了操作系統(tǒng).Net/COM

16、J2EE/EJBWeb service屏蔽不同中間件之間的異構(gòu)性發(fā)展了Web服務(wù) Architecture framework design pattern Support software middleware C/C+ 屏蔽應(yīng)用軟件和開發(fā)平臺之間的差異產(chǎn)生了體系結(jié)構(gòu)/框架/設(shè)計模式屏蔽操作系統(tǒng)之間和編程語言之間的異構(gòu)性出現(xiàn)了支撐軟件和中間件軟件工程技術(shù)發(fā)展途徑緒論 4代軟件工程從編程范型到軟件開發(fā)過程程序編碼與軟件開發(fā)過程是內(nèi)涵不同的兩個概念,二者既有聯(lián)系,也有區(qū)別:編寫程序僅是軟件開發(fā)過程的一部分內(nèi)容。軟件開發(fā)過程通常包括:需求分析、軟件設(shè)計、軟件開發(fā)(編寫程序)、軟件測試等多個階段。編

17、寫程序是建立在編程范型的基礎(chǔ)之上的,有什么樣的編程范型,一般對應(yīng)有什么樣的軟件開發(fā)過程。緒論軟件工程分代傳統(tǒng)軟件工程:以結(jié)構(gòu)化程序設(shè)計為基礎(chǔ),其開發(fā)過程一般包括:結(jié)構(gòu)化分析結(jié)構(gòu)化設(shè)計面向過程的編碼軟件測試。面向?qū)ο筌浖こ蹋阂悦嫦驅(qū)ο蟪绦蛟O(shè)計為基礎(chǔ),其開發(fā)過程一般包括:面向需求建模面向?qū)ο蠓治雒嫦驅(qū)ο笤O(shè)計面向?qū)ο蟮木幋a與測試?;跇?gòu)件的軟件工程:以軟件復(fù)用為目標(biāo),其開發(fā)過程一般包括兩個階段:領(lǐng)域工程和應(yīng)用工程,連接兩個階段的紐帶是可復(fù)用構(gòu)件庫。面向服務(wù)的軟件工程、云計算環(huán)境下軟件工程、本章主要內(nèi)容軟件和軟件危機(jī)軟件工程學(xué)的范疇軟件工程的發(fā)展軟件工程的應(yīng)用緒論緒論在各種規(guī)模軟件開發(fā)中的應(yīng)用分類程

18、序規(guī)模子程序數(shù)開發(fā)時間開發(fā)人數(shù)極小500行以下10-201-4周1人小1K-2K行25-501-6月1人中5K-50K行250-10001-2年2-5人大50K-100K行2-3年5-20人甚大1M行4-5年100-1000人極大1M-10M行5-10年2000-5000人軟件規(guī)模分類表緒論極小程序個人軟件,由個人開發(fā)和使用。一般不需要正式的分析和詳細(xì)的設(shè)計文檔,也不必制定完整的測試計劃。小程序與其它外部程序沒有什么聯(lián)系,開發(fā)者通常一人,無需或很少需要和用戶或其他開發(fā)人員打交道。例如,求解數(shù)值問題的科學(xué)計算程序,生成報表或完成數(shù)據(jù)操作所用的小型商業(yè)應(yīng)用程序,大學(xué)生的課程設(shè)計程序等。貫徹軟件工程

19、中的技術(shù)標(biāo)準(zhǔn)和表示方法,按標(biāo)準(zhǔn)編寫文檔,并系統(tǒng)地進(jìn)行復(fù)審,但并不是非常嚴(yán)格。緒論中規(guī)模程序與其它程序有少量聯(lián)系,開發(fā)人員與用戶間或開發(fā)人員之間存在一定聯(lián)系。例如,匯編程序、小型MIS系統(tǒng)、倉庫系統(tǒng)以及用于過程控制的應(yīng)用程序等。在開發(fā)過程中如果能夠系統(tǒng)地應(yīng)用軟件工程的原理,對改進(jìn)軟件質(zhì)量、提高開發(fā)人員效率和滿足用戶需求有很大幫助。大型程序與其它程序或軟件系統(tǒng)有種種聯(lián)系,開發(fā)人員一般由幾個開發(fā)小組組成,在組與組間、組內(nèi)不同成員間、開發(fā)人員同管理人員及用戶之間,都存在著大量通信,在長期的開發(fā)過程中,存在人員的變動問題。嚴(yán)格按照軟件工程的方法開發(fā)。緒論甚大型程序大型數(shù)據(jù)庫系統(tǒng)軍事部門指揮與控制系統(tǒng)操作系統(tǒng)極大型程序空中交通管制系統(tǒng)洲際導(dǎo)彈防御系統(tǒng)大型軍事指揮控制系統(tǒng)緒論軟件工程發(fā)展趨勢趨勢一:開放計算開放計算融合了開放標(biāo)準(zhǔn)、開放架構(gòu)和開源軟件三個方面。通過堅持“開放標(biāo)準(zhǔn)”,不同企業(yè)開發(fā)和使用的軟件可以互聯(lián)互通,不同的軟件工程工具能夠更好地集成,不同國界和不同文化能夠更好地協(xié)作交流?!伴_放架構(gòu)” 的典型代表就是面向服務(wù)體系結(jié)構(gòu)SOA,它通過一組開放的架構(gòu)標(biāo)準(zhǔn)和技術(shù), 有效地解決了商業(yè)模式的創(chuàng)新對汀靈活性要求的增加和現(xiàn)有IT 環(huá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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論