版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
軟件工程專業(yè)
主講:陳梅1復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程內(nèi)容摘要一、計算機軟件二、軟件工程2復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程內(nèi)容摘要一、計算機軟件軟件的發(fā)展軟件的特點軟件的分類軟件語言3復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程計算機軟件計算機軟件指計算機系統(tǒng)中的程序及其文檔程序是計算任務(wù)的處理對象和處理規(guī)則的描述任務(wù):以計算機為處理工具的任務(wù)都是計算任務(wù)處理對象:數(shù)據(jù)(如數(shù)據(jù)、文字、圖形、圖像、聲音等,它們只是表示,而無含義)或信息(數(shù)據(jù)及有關(guān)的含義)處理規(guī)則一般指處理的動作和步驟。程序必須裝入計算機內(nèi)才能工作文檔是為了便于了解程序所需的闡明性資料,文檔一般是給人看的,不一定裝入計算機4復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程內(nèi)容摘要計算機軟件軟件的發(fā)展軟件的特點軟件的分類軟件語言5復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程軟件的發(fā)展
1946-1956年從計算機問世到實用的高級程序語言出現(xiàn)前存儲容量比較小,運算速度比較慢采用個體工作方式,用低級語言編寫程序應(yīng)用領(lǐng)域主要是以數(shù)值數(shù)據(jù)處理為主的科學(xué)計算,其特點是輸入、輸出量較小衡量程序質(zhì)量的標(biāo)準(zhǔn)主要是功效,即運行時間省、占用內(nèi)存小主要研究內(nèi)容是科學(xué)計算程序、服務(wù)性程序和程序庫,研究對象是順序程序6復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程1956-1968年
從實用的高級程序語言出現(xiàn)到軟件工程出現(xiàn)前存儲器容量大,外圍設(shè)備得到迅速發(fā)展,出現(xiàn)了高級程序設(shè)計語言應(yīng)用領(lǐng)域包括數(shù)據(jù)處理(非數(shù)值數(shù)據(jù)),其特點是計算量不大,但輸入、輸出量卻較大高速主機與低速外圍設(shè)備的矛盾突出,出現(xiàn)了操作系統(tǒng)、并發(fā)程序、數(shù)據(jù)庫及其管理系統(tǒng)20世紀(jì)60年代初提出了軟件一詞,開始認(rèn)識到文檔的重要性研究高級程序設(shè)計語言、編譯程序、操作系統(tǒng)、支持編程的工具及各種應(yīng)用軟件工作方式逐步從個體方式轉(zhuǎn)向合作方式出現(xiàn)軟件危機7復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程軟件危機許多軟件項目不能滿足客戶的要求許多軟件項目超出預(yù)算和時間安排8復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程
IBM公司的OS/360,共約100萬條指令,花費了5000個人年;經(jīng)費達數(shù)億美圓,而結(jié)果卻令人沮喪,錯誤多達2000個以上,系統(tǒng)根本無法正常運行。OS/360系統(tǒng)的負(fù)責(zé)人Brooks這樣描述開發(fā)過程的困難和混亂:“…像巨獸在泥潭中作垂死掙扎,掙扎得越猛,泥漿就沾得越多,最后沒有一個野獸能夠逃脫淹沒在泥潭中的命運。…”
1963年美國飛往火星的火箭爆炸,造成1000萬美元的損失。原因是FORTRAN程序:
DO5I=1,3
誤寫為:DO5I=1.
3
1967年蘇聯(lián)“聯(lián)盟一號”載人宇宙飛船在返航時,由于軟件忽略一個小數(shù)點,在進入大氣層時因打不開降落傘而燒毀。軟件危機9復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程軟件危機的表現(xiàn)對軟件開發(fā)成本和進度的估計常常很不正確用戶對“已完成的”軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生軟件產(chǎn)品的質(zhì)量往往靠不住軟件常常是不可維護的軟件通常沒有適當(dāng)?shù)奈臋n資料軟件成本在計算機系統(tǒng)總成本中所占的比例逐年上升軟件開發(fā)生產(chǎn)率提高的速度遠(yuǎn)遠(yuǎn)跟不上計算機應(yīng)用迅速普及深入的趨勢10復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程軟件危機的原因軟件是邏輯產(chǎn)品,開發(fā)進度、成本難以估計缺乏或不完整、不一致的文檔給維護帶來困難用戶對軟件需求的描述往往不夠精確,有遺漏,有二義軟件開發(fā)人員對需求的理解與用戶的本來愿望有差異大型軟件項目需多人協(xié)同完成,缺乏管理經(jīng)驗開發(fā)人員不能有效地、獨立自主地處理大型軟件的全部關(guān)系缺乏有力的方法學(xué)和工具的支持軟件項目的特殊性和人類智力的局限性11復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程克服軟件危機的途徑消除錯誤的概念和做法推廣使用成功的開發(fā)技術(shù)和方法使用軟件工具和軟件工程支持環(huán)境加強軟件管理12復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程1968年-至今從軟件工程出現(xiàn)到現(xiàn)在硬件向巨型機和微型機二個方向發(fā)展,出現(xiàn)了計算機網(wǎng)絡(luò),軟件方面提出了軟件工程,出現(xiàn)了“計算機輔助軟件工程”(CASE)計算機的應(yīng)用領(lǐng)域滲透到各個業(yè)務(wù)領(lǐng)域,出現(xiàn)了嵌入式應(yīng)用,其特點是受制于它所嵌入的宿主系統(tǒng)開發(fā)方式逐步由個體合作方式轉(zhuǎn)向工程方式軟件工程方面的研究主要包括軟件開發(fā)模型、軟件開發(fā)方法及技術(shù)、軟件工具與環(huán)境、軟件過程、軟件自動化系統(tǒng)等軟件方面研究以智能化、自動化、集成化、并行化、以及自然化為標(biāo)志的軟件開發(fā)新技術(shù)13復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程內(nèi)容摘要計算機軟件軟件的發(fā)展軟件的特點軟件的分類軟件語言14復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程軟件的特點軟件是一種邏輯實體,而不是有形的系統(tǒng)元件,其開發(fā)成本和進度難以準(zhǔn)確地估算軟件是被開發(fā)的或被設(shè)計的,它沒有明顯的制造過程,一旦開發(fā)成功,只需復(fù)制即可,但其維護的工作量大軟件的使用沒有硬件那樣的機械磨損和老化問題15復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程其它特點:軟件的開發(fā)和運行常受到計算機硬件的限制,對計算機硬件有著不同程度的依賴性軟件的開發(fā)至今尚未完全實現(xiàn)自動化軟件成本相當(dāng)昂貴相當(dāng)多的軟件工作涉及到社會因素16復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程內(nèi)容摘要計算機軟件軟件的發(fā)展軟件的特點軟件的分類軟件語言17復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程軟件的分類系統(tǒng)軟件:屬于計算機系統(tǒng)中最靠近硬件的一層,其它軟件一般都通過系統(tǒng)軟件發(fā)揮作用,它與具體的應(yīng)用領(lǐng)域無關(guān)。如操作系統(tǒng)、編譯程序等。支持軟件:支持軟件的開發(fā)和維護的軟件。如數(shù)據(jù)庫管理系統(tǒng)、網(wǎng)絡(luò)軟件、軟件開發(fā)環(huán)境等。應(yīng)用軟件:特定應(yīng)用領(lǐng)域?qū)S玫能浖?。如實時軟件、嵌入式軟件、科學(xué)和工程計算軟件、事務(wù)處理軟件、人工智能軟件等。18復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程按軟件工作方式劃分:實時處理軟件分時軟件交互式軟件批處理軟件按軟件服務(wù)對象的范圍劃分:項目軟件產(chǎn)品軟件
19復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程按使用的頻度進行劃分:
一次使用頻繁使用按軟件失效的影響進行劃分:
高可靠性軟件一般可靠性軟件20復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程內(nèi)容摘要計算機軟件軟件的發(fā)展軟件的特點軟件的分類軟件語言21復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程軟件語言
軟件語言是用于書寫計算機軟件的語言。它主要包括:
需求定義語言功能性語言設(shè)計性語言實現(xiàn)性語言(即程序設(shè)計語言)文檔語言22復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程需求定義語言需求定義語言用來書寫軟件需求定義。軟件需求定義是軟件功能需求和非功能需求的定義性描述。軟件功能需求刻畫軟件“做什么”,軟件非功能需求刻畫諸如功能性限制、設(shè)計限制、環(huán)境描述、數(shù)據(jù)與通信規(guī)程及項目管理等。典型的需求定義語言有PSL語言(ProblemStatementLanguage問題陳述語言)23復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程功能性語言功能性語言用來書寫軟件功能規(guī)約:
軟件功能規(guī)約是軟件功能的嚴(yán)格而完整的陳述。通常它只刻畫軟件系統(tǒng)“做什么”的外部功能,而不涉及系統(tǒng)“如何做”的內(nèi)部算法。典型的功能性語言有廣譜語言、Z語言。24復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程設(shè)計性語言設(shè)計性語言用來書寫軟件設(shè)計規(guī)約:
軟件設(shè)計規(guī)約是軟件設(shè)計的嚴(yán)格而完整的陳述。一方面,它是軟件功能歸約的算法性細(xì)化,刻畫軟件“如何做”的內(nèi)部算法,另一方面,它是軟件實現(xiàn)的依據(jù)。典型的設(shè)計性語言有PDL語言(ProgramDesignLanguage)25復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程實現(xiàn)性語言實現(xiàn)性語言用來書寫計算機程序?qū)崿F(xiàn)性語言也稱編程語言或程序設(shè)計語言
程序設(shè)計語言可按語言的級別、對使用者的要求、應(yīng)用范圍、使用方式、成分性質(zhì)等多種角度進行分類26復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程按語言級別分:低級語言和高級語言
低級語言是與特定計算機體系結(jié)構(gòu)密切相關(guān)的程序設(shè)計語言,如機器語言、匯編語言。其特點是與機器有關(guān),功效高,但使用復(fù)雜,開發(fā)費時,難維護。
高級語言是不反映特定計算機體系結(jié)構(gòu)的程序設(shè)計語言,它的表示方法比低級語言更接近于待解問題的表示方法。其特點是在一定程度上與具體機器無關(guān),易學(xué)、易用、易維護。但高級語言程序經(jīng)編譯后產(chǎn)生的目標(biāo)程序的功效往往較低。27復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程按用戶要求分:過程式語言和非過程式語言
過程式語言(procedurallanguage)是通過指明一列可執(zhí)行的運算及運算次序來描述計算過程的程序設(shè)計語言。如FORTRAN、COBOL、C等。
非過程式語言(nonprocedurallanguage)是不顯式指明處理過程細(xì)節(jié)的程序設(shè)計語言。在這種語言中盡量引進各種抽象度較高的非過程性描述手段,以期做到在程序中增加“做什么”的描述成分,減少“如何做”的細(xì)節(jié)描述。如第四代語言(4GL)、函數(shù)式語言、邏輯式語言。28復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程也可稱:命令式語言和申述式語言
命令式語言(imperativelanguage)即過程式語言。
申述式語言(declarativelanguage)是著重描述要處理什么,而非描述如何處理的語言。申述式語言程序是關(guān)于問題解的約束陳述,這些約束迫使含于實現(xiàn)中的算法處理機制生成一個解或一組解。如函數(shù)式語言、邏輯式語言。29復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程
函數(shù)式語言(functionalprogramminglanguage)中函數(shù)是構(gòu)造程序的基本成分,它提供一些設(shè)施用于構(gòu)造更為復(fù)雜的函數(shù)。程序人員根據(jù)提出的問題去定義求解函數(shù)(即主程序),其中可能包含一些輔助函數(shù)。如Lisp語言。
邏輯式語言(logicprogramminglanguage)的基本運算單位是謂詞。謂詞定義了變元間的邏輯關(guān)系。例如,Prolog語言的基本形式是Horn子句,其程序圍繞著某一主題的事實、規(guī)則和詢問三類語句組成。這三類語句分別用來陳述事實、定義規(guī)則和提出問題。30復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程
按應(yīng)用范圍分:通用語言和專用語言
通用語言指目標(biāo)非單一的語言,如FORTRAN、COBOL、C等。
專用語言指目標(biāo)單一的語言,如自動數(shù)控程序APT。31復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程
按使用方式分:交互式語言和非交互式語言
交互式語言指具有反映人機交互作用的語言,如BASIC。
非交互式語言指不反映人機交互作用的語言,如FORTRAN、COBOL。32復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程
按成分性質(zhì)分:順序語言、并發(fā)語言、分布語言
順序語言指只含順序成分的語言,如FORTRAN、C。
并發(fā)語言指含有并發(fā)成分的語言,如Modula、Ada、并發(fā)Pascal。
分布語言指考慮到分布計算要求的語言,如Modula。33復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程文檔語言
文檔語言用來書寫軟件文檔。
計算機軟件文檔是計算機開發(fā)、維護和使用過程的檔案資料和對軟件本身的闡述性資料。通常用自然語言或半形式化語言書寫。34復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程隨著計算機應(yīng)用的深入,對計算機軟件需求量越來越大,對軟件的功能性、易使用性、可靠性等要求也越來越高。為了在有限的資金、資源和時間條件下開發(fā)滿足客戶要求的高質(zhì)量軟件,就需要研究與軟件開發(fā)和管理有關(guān)的模型、方法、技術(shù)、過程、工具和環(huán)境等。
軟件工程學(xué)科研究的主要內(nèi)容。
返回35復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程內(nèi)容摘要二、軟件工程
1.軟件工程定義
2.軟件工程框架
3.軟件生存周期
36復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程內(nèi)容摘要軟件工程
1.軟件工程定義
2.軟件工程框架
3.軟件生存周期
37復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程軟件工程定義1968年NATO(北大西洋公約組織)會議上首次提出FritzBauer:
“軟件工程是為了經(jīng)濟地獲得可靠的和能在實際機器上高效運行的軟件而建立和使用的好的工程原則”38復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程軟件工程定義IEEE(美國電氣和電子工程師協(xié)會)
在軟件術(shù)語匯編中:
軟件工程是:(1)將系統(tǒng)化的、規(guī)范的、可度量的方法應(yīng)用于軟件的開發(fā)、運行和維護的過程,即將工程化應(yīng)用于軟件中;(2)研究(1)中所述的方法。計算機科學(xué)技術(shù)百科全書:軟件工程是應(yīng)用計算機科學(xué)、數(shù)學(xué)及管理科學(xué)等原理,以工程化的原則和方法制作軟件的工程。39復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程內(nèi)容摘要軟件工程
1.軟件工程定義
2.軟件工程框架
3.軟件生存周期
40復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程軟件工程的框架軟件工程的框架可以概括為(楊芙清院士,《計算機科學(xué)技術(shù)百科全書》
目標(biāo)過程原則
41復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程軟件工程的框架
目標(biāo):
生產(chǎn)具有正確性、可用性以及價格合宜的產(chǎn)品
正確性反映軟件產(chǎn)品實現(xiàn)相應(yīng)功能規(guī)約的程度;
可用性反映軟件的基本結(jié)構(gòu)、實現(xiàn)及其文檔為用戶可用的程度;
價格合宜反映軟件開發(fā)與運行的總代價滿足用戶要求的程度。42復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程過程(Process):
生產(chǎn)一個最終滿足需求且達到工程目標(biāo)的軟件產(chǎn)品所需要的步驟軟件工程過程包括:開發(fā)過程、運作過程、維護過程、管理過程、支持過程、獲取過程、供應(yīng)過程、剪裁過程等。43復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程原則:選取適宜的開發(fā)模型采用合適的設(shè)計方法提供高質(zhì)量的工程支持重視軟件工程的管理44復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程內(nèi)容摘要軟件工程
1.軟件工程定義
2.軟件工程框架
3.軟件生存周期
45復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程軟件生存周期
(softwarelifecycle)軟件有一個孕育、誕生、成長、成熟、衰亡的生存過程。這個過程即為計算機軟件的生存周期軟件生存周期大體可分為如下幾個活動:計算機系統(tǒng)工程、需求分析、設(shè)計、編碼、測試、運行和維護。46復(fù)旦大學(xué)計算機科學(xué)與工程系軟件工程課程計算機系統(tǒng)工程計算機系統(tǒng)包括計算機硬件、軟件、使用計算機系統(tǒng)的人、數(shù)據(jù)庫、文檔、規(guī)程等系統(tǒng)元素。計算機系統(tǒng)工程的任務(wù):確定待開發(fā)軟件的總體要求和范圍,以及它與其它計算機系統(tǒng)元素之間的關(guān)系。進行成本估算,做出進度安排進行可行性分析,即從經(jīng)濟、技術(shù)、法律等方面分析待開發(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度安置住房產(chǎn)權(quán)分割買賣合同3篇
- 2025年度智能電網(wǎng)建設(shè)與運營承包合同含新能源并網(wǎng)與電力調(diào)度4篇
- 2025年度特種貨車承包運營合同4篇
- 2025年度?;奋囕v物流運輸合同4篇
- 2025年度幼兒園教室窗簾安全性與環(huán)保性檢測合同4篇
- 2025年度智能化城市景觀承包設(shè)計工程合同4篇
- 2024試讀生權(quán)益保障合同:學(xué)生試用條款明細(xì)版B版
- 2025年度智能充電樁設(shè)備集成采購合同4篇
- 2025年度二零二五年度竹林資源承包與生態(tài)旅游開發(fā)合同3篇
- 2025年度儲藏室租賃與貨物出入庫管理服務(wù)協(xié)議3篇
- 2019級水電站動力設(shè)備專業(yè)三年制人才培養(yǎng)方案
- 室內(nèi)裝飾裝修施工組織設(shè)計方案
- 洗浴中心活動方案
- 送電線路工程施工流程及組織措施
- 肝素誘導(dǎo)的血小板減少癥培訓(xùn)課件
- 韓國文化特征課件
- 抖音認(rèn)證承諾函
- 清潔劑知識培訓(xùn)課件
- 新技術(shù)知識及軍事應(yīng)用教案
- 高等數(shù)學(xué)(第二版)
- 肺炎喘嗽的中醫(yī)護理常規(guī)
評論
0/150
提交評論