版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
軟件工程第1章軟件與軟件工程緒
論計算機科學(xué)是什么?
1、是科學(xué)?是工程學(xué)科?還是一門技術(shù)?…….2、學(xué)科的智力本質(zhì)是什么?
3、它將持續(xù)興旺下去還是衰落下去?
4、計算機科學(xué)和工程的核心課程是否反映了這個領(lǐng)域?
5、怎樣把理論和實驗集成在計算課程中?
6、各核心課程培養(yǎng)計算方面的能力嗎?
7、......第1章軟件與軟件工程計算機科學(xué)的三個學(xué)科形態(tài)第1章軟件與軟件工程對計算機科學(xué)的學(xué)科形態(tài)的認識與爭論
(1)認識
¤
理論是數(shù)學(xué)科學(xué)的根本。應(yīng)用數(shù)學(xué)家們都認為:科學(xué)的進展都是基于純數(shù)學(xué)的。
¤
抽象(模型化)是自然科學(xué)的根本。科學(xué)家相信:科學(xué)進展的過程基本上都是形成假設(shè),然后用模型化過程求證。
¤
設(shè)計是工程的根本。工程師們認為:工程進展都是提出問題,然后通過設(shè)計去構(gòu)造系統(tǒng),以解決問題。第1章軟件與軟件工程對計算機科學(xué)的學(xué)科形態(tài)的認識與爭論
(2)爭論
¤
基于一個假定:三個過程的某一個是最基本的。
¤
計算的三個形態(tài)密切相連
抽象和設(shè)計階段出現(xiàn)了理論;理論和設(shè)計階段需要模型化;理論和抽象階段始終離不開設(shè)計。
¤
計算的三個形態(tài)有所不同
第1章軟件與軟件工程爭論的結(jié)論
計算處于應(yīng)用數(shù)學(xué)、科學(xué)和工程三者的主要過程的交叉路口。這三個過程在本學(xué)科是同等重要和基本的。它是理論、抽象和設(shè)計三者唯一的交匯點。第1章軟件與軟件工程程序設(shè)計的作用
(1)"計算科學(xué)=程序設(shè)計"是錯誤的。(2)計算領(lǐng)域的許多活動并不是程序設(shè)計,硬件設(shè)計、體系結(jié)構(gòu)、操作系統(tǒng)結(jié)構(gòu)、數(shù)據(jù)庫應(yīng)用等。(3)程序設(shè)計是本學(xué)科標準的實踐活動的一部分,每一個計算工作者必須有程序設(shè)計的能力。但這并不意味著本學(xué)科就建筑在程序設(shè)計的基礎(chǔ)上,也不意味著導(dǎo)引性課程必須是程序設(shè)計方面的課程。(4)程序設(shè)計語言是涉足本領(lǐng)域特色的工具。
建議:程序設(shè)計作為核心課程的一部分,并把程序設(shè)計語言作為涉足計算學(xué)科重要特色的有用媒介。
第1章軟件與軟件工程計算機科學(xué)的原有定義(1)1967年Newell、Perlis和Simon主張:計算科學(xué)是研究計算機及圍繞它的主要現(xiàn)象的科學(xué),而且說明反對這個定義就無異于表明其他科學(xué)都不是科學(xué)。
(2)計算科學(xué)資格審查部:計算機科學(xué)是關(guān)于計算機和計算的知識總體。
它由理論、實驗和設(shè)計三部分,并且包括理解計算專職、程序和系統(tǒng)的理論,為概念的發(fā)展和測試所進行的實驗,設(shè)計方法論、算法和實現(xiàn)工具以及嚴整這些實現(xiàn)滿足要求的分析方法。
(3)計算機科學(xué)是研究知識表達機器實現(xiàn)的科學(xué)。
(4)Abelson和Sussman:計算機革命是思維方法和思維表達方法的革命。第1章軟件與軟件工程計算機科學(xué)簡短定義
(1)計算學(xué)科是對描述和變換信息的算法過程的系統(tǒng)研究,
包括它的理論、分析、設(shè)計、有效性、實現(xiàn)和應(yīng)用。(2)全部計算科學(xué)的基本問題是"什么能(有效地)自動進行?"。第1章軟件與軟件工程計算機科學(xué)劃分的分支領(lǐng)域第1章軟件與軟件工程計算科學(xué)的學(xué)科能力的培養(yǎng)(1)面向?qū)W科的思維能力
發(fā)現(xiàn)本領(lǐng)域新的特性的能力,這些特性導(dǎo)致新的活動方式和新的工具,以便這些特性能被其他人所利用。
(2)使用工具的能力
使用本領(lǐng)域的工具有效地進行其他領(lǐng)域時間活動的能力。建議:
把面向?qū)W科的思維能力作為計算專業(yè)課程設(shè)置的主要目的。
同時,計算專業(yè)工作者必須充分熟悉工具,以便與其他學(xué)科的人們有效地合作,進行那些學(xué)科的設(shè)計活動。第1章軟件與軟件工程學(xué)科淵源
(1)本學(xué)科和算法理論、數(shù)理邏輯和存儲程序式電子計算機的發(fā)明一起,形成于40年代初。
(2)計算的淵源可以深入擴展到數(shù)學(xué)和工程。數(shù)學(xué)把分析分到這一領(lǐng)域,而工程把設(shè)計分到這一領(lǐng)域。
(3)本學(xué)科包括它自己的理論、實驗方法和工程。這與許多其他的自然科學(xué)不同。許多其他的自然科學(xué)和運用其成果的工程學(xué)科是分開的(例如化學(xué)和化學(xué)工程原理)、計算機科學(xué)與工程卻是不可分的,因為本學(xué)科的科學(xué)與工程形態(tài)從根本上是相互滲透的。第1章軟件與軟件工程與數(shù)學(xué)的關(guān)系
計算作為數(shù)學(xué)的主要對象已有幾千年了。
自然現(xiàn)象的許多模型被用來導(dǎo)出方程,它的解就導(dǎo)致那些自然現(xiàn)象的預(yù)言。例如軌道的彈道計算、天氣預(yù)報和流體的流動等。解這些方程的許多方法已經(jīng)給出。例如線性方程組的解法、微分方程的解法和求函數(shù)的積分。
幾乎在這同時,機械系統(tǒng)設(shè)計中所需要的計算成為工程主要關(guān)注的對象。例如計算靜態(tài)物體壓力的算法、計算運動物體慣量的算法和測量比我們直覺要大得多或小得多的距離的方法。第1章軟件與軟件工程發(fā)展方向(1)新一代計算機體系結(jié)構(gòu)。該方向包括神經(jīng)元計算、計算機設(shè)計與制造、網(wǎng)絡(luò)與通信技術(shù)、大容量存儲設(shè)備的研究、容錯模型內(nèi)容等;
(2)并行與分布式軟件開發(fā)方法學(xué)研究。該方向包括數(shù)理邏輯、計算理論、形式語義學(xué)、高級語言與程序設(shè)計理論、系統(tǒng)軟件設(shè)計、軟件工程、容錯理論等內(nèi)容;
(3)人工智能理論及其應(yīng)用。該方向包括數(shù)理邏輯、高等邏輯、算法理論、知識工程、神經(jīng)元計算、人工智能高能語言與人工智能程序設(shè)計等內(nèi)容;
(4)計算機應(yīng)用的關(guān)鍵技術(shù)。主要將圍繞計算可視化與虛擬現(xiàn)實,計算幾何,科學(xué)計算這幾個重點方向開展有工作,并帶動數(shù)據(jù)庫技術(shù)、計算機圖形學(xué)、自然語言處理與機器翻譯、模式識別與圖解處理等方向發(fā)展。在這一綜合方向上研究內(nèi)容將幾乎覆蓋所有的計算科學(xué)應(yīng)用技術(shù)方向內(nèi)容。第1章軟件與軟件工程軟件方法學(xué)和工程-基本問題
本領(lǐng)域研究滿足技術(shù)要求、安全、可靠、可信的程序和大型軟件系統(tǒng)的設(shè)計?;締栴}包括:
1.在程序和程序設(shè)計系統(tǒng)的開發(fā)背后的原理是什么?
2.怎樣去證明程序或系統(tǒng)滿足它的技術(shù)要求?
3.怎樣去給定技術(shù)要求,使不遺漏重要的情況,而且可以分析它的安全性?
4.怎樣使軟件系統(tǒng)通過不同階段不斷改進?
5.怎樣使軟件設(shè)計得易理解和易修改?第1章軟件與軟件工程軟件方法學(xué)和工程–理論軟件方法學(xué)和工具練域理論的主要部分是:
(l)程序驗證和證明。
(2)時態(tài)邏輯。
(3)可靠性理論。
(4)謂詞演算、公理語義學(xué)、和認知心理學(xué)等支撐領(lǐng)域。第1章軟件與軟件工程軟件方法學(xué)和工程-抽象軟件方法學(xué)和工具抽象的主要部分是:
(1)定義技術(shù)要求的方法。如調(diào)詞變換器、程序設(shè)計演算、抽象數(shù)據(jù)類型和弗洛依德一霍爾(Floyd-Hoare)公理化符號。
(2)方法學(xué),如逐步提煉、模塊化設(shè)計、模塊、分離編譯、信息隱藏(informationbiding)、數(shù)據(jù)流和抽象層次。
(3)程序開發(fā)自動化的方法。例如,文本編輯程序,面向語法的編輯程序和屏幕編輯程序。
(4)可信計算的方法學(xué);例如,容錯,安全性,可靠性,恢復(fù),N版本程序設(shè)計,多方式冗余,和檢查點插入。
(5)軟件工具和程序設(shè)計環(huán)境。
(6)程序和系統(tǒng)的測度和評估。
(7)軟件系統(tǒng)到特定機器結(jié)構(gòu)的匹配問題域。
(8)軟件研制的生命周期模型。第1章軟件與軟件工程軟件方法學(xué)和工程–設(shè)計軟件方法學(xué)和工具領(lǐng)域設(shè)計和實驗的主要內(nèi)容是:
(1)技術(shù)要求描述語言(如PSL2,IMAJO)、構(gòu)造管理系統(tǒng)(如在AdaAPSE)和修改控制系統(tǒng)(如RCS,SCCS)。
(2)指向語法的編輯器、行編輯器、屏幕編輯器和字處理系統(tǒng)。
(3)在軟件開發(fā)實踐中倡導(dǎo)和使用的特定方法,如HDM,及Dijkstra,Jackson,Mills或Yourdon等人倡導(dǎo)的方法。
(4)測試的過程和實踐(例如,遍歷、手模擬、模塊間接口的檢查、測試集的程序通路列舉和事件跟蹤),質(zhì)量保證和計劃管理。
(5)程序開發(fā)和查錯,剖面分析,文本格式化和數(shù)據(jù)庫操作的軟件工具。
(6)像國防部那樣的安全計算系統(tǒng)的標準級和驗證過程的技術(shù)要求。
(7)用戶接口的設(shè)計。
(8)設(shè)計非常大的、可靠的、容錯的和可信的系統(tǒng)的方法。第1章軟件與軟件工程學(xué)習“軟件工程”的目的和意義學(xué)會如何在現(xiàn)代IT企業(yè)的環(huán)境中做一個成功者;學(xué)會如何做世界級的、高質(zhì)量的研究;學(xué)會如何創(chuàng)建大規(guī)模的軟件產(chǎn)品。
——微軟全球資深副總裁原微軟亞洲研究院院長首席科學(xué)家張亞勤
第1章軟件與軟件工程一、全球軟件產(chǎn)業(yè)的現(xiàn)狀、趨勢與挑戰(zhàn)TheChallengesandOpportunitiesoftheGlobalSoftwareIndustry.軟件產(chǎn)業(yè)的網(wǎng)絡(luò)化趨勢軟件產(chǎn)業(yè)的服務(wù)化趨勢軟件產(chǎn)業(yè)的全球化趨勢智能網(wǎng)絡(luò)(IntelligentWeb)·從靜態(tài)網(wǎng)到動態(tài)網(wǎng)·從被動方式到主動方式·從呈現(xiàn)信息和瀏覽的窗口到智能生成的平臺·從HTML到XML第1章軟件與軟件工程一、全球軟件產(chǎn)業(yè)的現(xiàn)狀、趨勢與挑戰(zhàn)TheChallengesandOpportunitiesoftheGlobalSoftwareIndustry.軟件產(chǎn)業(yè)的網(wǎng)絡(luò)化趨勢軟件產(chǎn)業(yè)的服務(wù)化趨勢軟件產(chǎn)業(yè)的全球化趨勢
相對目前“打包式”軟件,為用戶提供智能化的“服務(wù)式”軟件。第1章軟件與軟件工程一、全球軟件產(chǎn)業(yè)的現(xiàn)狀、趨勢與挑戰(zhàn)TheChallengesandOpportunitiesoftheGlobalSoftwareIndustry.軟件產(chǎn)業(yè)的網(wǎng)絡(luò)化趨勢軟件產(chǎn)業(yè)的服務(wù)化趨勢軟件產(chǎn)業(yè)的全球化趨勢·強調(diào)開放性、交互性·支持主流的開放式標準·人才的全球化對中國軟件企業(yè)有什么啟示和挑戰(zhàn)?第1章軟件與軟件工程TalentBeyondTechnology_WhatKindofTalentWeNeedforModernSoftwareDevelopment扎實的基礎(chǔ)創(chuàng)新、獨立的工作能力主人翁精神和團隊精神勾通與協(xié)調(diào)能力成就感強、有激情自覺地干好工作契而不舍,從錯誤中學(xué)習二、現(xiàn)代軟件開發(fā)對人才的要求第1章軟件與軟件工程在微軟流傳著這樣一個故事
有一次比爾.蓋茨和上帝談話,上帝對他說:“地球明天就要毀滅了!由于你是如此的成功,因此我特許你從地球上帶一樣?xùn)|西到天堂!你想帶什么?”比爾.蓋茨回答:“請允許我從微軟選300個最優(yōu)秀的人,我要把他們帶到天堂!”
盡管微軟的windows,Exchang,SQL,Office等都非常重要,但如果沒有象你們這些人才,微軟也將一無所有。你們對我們公司和微軟來說是處于第一位的。第1章軟件與軟件工程
我國復(fù)合型軟件人才匱乏,培養(yǎng)適應(yīng)迅速變化的市場需求的復(fù)合型軟件人才已是迫在眉睫。三、信息化建設(shè)中對復(fù)合型軟件人才的需求
復(fù)合型軟件人才—具備不同專業(yè)背景、有市場觀念的開發(fā)管理、工程管理和軟件經(jīng)營等復(fù)合型軟件人才;第1章軟件與軟件工程四、軟件開發(fā)中的錯誤觀點2.軟件需求分析很困難,不管三七二十一先把軟件做了再說,反正軟件是靈活的,隨時可以修改。1.只要掌握了1-2門程序設(shè)計語言,進行軟件開發(fā)就沒有問題??傊e誤認為:軟件就是程序,開發(fā)軟件就是編寫程序。3.只要有最好的開發(fā)工具、最好的計算機,一定能做出優(yōu)秀的軟件。
第1章軟件與軟件工程本課程學(xué)習的主要內(nèi)容1.傳統(tǒng)的軟件工程方法2.面向?qū)ο蟮慕<夹g(shù)—UML統(tǒng)一建模語言3.軟件項目管理及CMM4.軟件復(fù)用及構(gòu)件工程
本課程以傳統(tǒng)的軟件工程技術(shù)為基礎(chǔ),主要討論如何應(yīng)用軟件工程的最新技術(shù)—UML統(tǒng)一建模語言進行軟件開發(fā),提高軟件開發(fā)的水平和技術(shù)。第1章軟件與軟件工程課程特點與安排1.課程特點:
實踐性強、發(fā)展迅速2.課程安排(建議):課堂教學(xué)(64學(xué)時)—授課、案例分析、討論
3.關(guān)于考試(建議)
:
筆試:分,平時:分第1章軟件與軟件工程作者:齊治昌、寧洪出版社:高等教育出版社ISBN:9787040146288面向21世紀課程教材、國家精品課程配套教材1.軟件工程(第2版)
教材及主要參考書第1章軟件與軟件工程教材及主要參考書作者:許家珆主編白忠建,彭德中,吳磊編寫出版社:電子工業(yè)出版社2.軟件工程—方法與實踐第1章軟件與軟件工程教材及主要參考書3.軟件工程SoftwareEngineering,6thEdition作者:(英)IanSommerville出版社:機械工業(yè)出版社(影印版)
本書是英國著名軟件工程學(xué)家IanSommerville系統(tǒng)介紹軟件工程理論的力作,以要求極高的一類系統(tǒng)為實例,精辟透徹地闡述了軟件工程的內(nèi)涵。第1章軟件與軟件工程參考網(wǎng)站http://
軟件工程網(wǎng)
卡內(nèi)基梅大學(xué)軟件工程研究所
對象技術(shù)和構(gòu)件技術(shù)鏈接Rational公司http://OMG(ObjectManagementGroup)http://
軟件工程網(wǎng)
卡內(nèi)基梅大學(xué)軟件工程研究所
對象技術(shù)和構(gòu)件技術(shù)鏈接Rational公司第1章軟件與軟件工程第一章1軟件與軟件工程第1章軟件與軟件工程1.1軟件軟件的概念;軟件的特點;軟件的分類;軟件的發(fā)展;軟件危機。第1章軟件與軟件工程軟件的概念軟件是計算機系統(tǒng)的重要組成部分;軟件是邏輯產(chǎn)品,需要計算機硬件和系統(tǒng)軟件的支撐;軟件是計算機控制系統(tǒng)的指揮中樞;軟件是信息轉(zhuǎn)換器,它能對信息進行加工、處理或變換;軟件是工具,在人們的生活、工作、休閑,在社會的經(jīng)濟、軍事、政治、文化、科學(xué)技術(shù)、教育中發(fā)揮具大作用;第1章軟件與軟件工程計算機世界的軟件
軟件是能夠完成預(yù)定功能和性能,并對相應(yīng)數(shù)據(jù)進行加工的程序和描述程序及其操作的文檔。
軟件=程序+數(shù)據(jù)+文檔程序=算法+數(shù)據(jù)結(jié)構(gòu)第1章軟件與軟件工程軟件的特點軟件是被開發(fā)或設(shè)計的,而不是傳統(tǒng)意義上被制造的軟件不會”磨損”軟件產(chǎn)業(yè)逐步走向基于構(gòu)件的組裝,但還是定制的第1章軟件與軟件工程
軟件的描述
軟件由程序、數(shù)據(jù)、文檔組成。數(shù)據(jù)
用程序設(shè)計語言要求的數(shù)據(jù)結(jié)構(gòu)表示文檔
規(guī)范準確清晰簡潔無歧義自然語言結(jié)構(gòu)化英語圖表
第1章軟件與軟件工程程序設(shè)計語言面向機器匯編語言、機器語言等面向過程Fortran,Pascal,C等面向?qū)ο驝++,Java等面向問題結(jié)構(gòu)化查詢語言SQL等第1章軟件與軟件工程軟件分類系統(tǒng)軟件實時軟件商務(wù)軟件工程和科學(xué)計算軟件嵌入式軟件人工智能軟件個人計算機軟件第1章軟件與軟件工程軟件的發(fā)展軟件發(fā)展的四個階段1950---1965
沒有系統(tǒng)的軟件開發(fā)方法和管理機制、自定義軟件、批處理、有限分布。1965---1975
產(chǎn)生人機交互的新概念、新技術(shù)軟件產(chǎn)品、多用戶、實時、數(shù)據(jù)庫。1973---1988
微處理器的出現(xiàn)并廣泛應(yīng)用 分布式系統(tǒng)、嵌入智能、低成本硬件、消費者的影響。1986---2000
廣域和局域網(wǎng)絡(luò)迅速普及 強大的桌面系統(tǒng)、面向?qū)ο蠹夹g(shù)、專家系統(tǒng)、人工智能、神經(jīng)網(wǎng)絡(luò)、并行計算、網(wǎng)絡(luò)計算機。第1章軟件與軟件工程2軟件發(fā)展存在的問題軟件開發(fā)能力不能滿足人們的需要。社會對軟件的依賴程度加大,人們普遍關(guān)注軟件的安全和可靠性建造高可靠性、高質(zhì)量軟件的任務(wù)任重道遠。若干年前開發(fā)的應(yīng)用軟件經(jīng)過幾十次修改已無人認識它的內(nèi)部結(jié)構(gòu),己經(jīng)不可維護。由于經(jīng)濟原因,嵌入式系統(tǒng)存在許多怪現(xiàn)象,企業(yè)不愿意投入資源再生產(chǎn),而采取打補丁+時髦界面的方法。第1章軟件與軟件工程軟件危機的表現(xiàn)軟件產(chǎn)業(yè)的發(fā)展長期滯后,與硬件發(fā)展不協(xié)調(diào)。軟件開發(fā)成本過高軟件質(zhì)量得不到保證軟件開發(fā)效率低難以控制開發(fā)進度,工作量估計困難
軟件不能滿足社會發(fā)展的需求,成為社會、經(jīng)濟發(fā)展的制約因素軟件危機第1章軟件與軟件工程2.軟件危機原因軟件的規(guī)模加大、復(fù)雜性提高、性能增強軟件是邏輯產(chǎn)品,尚未完全認識其本質(zhì)和特點缺乏有效的、系統(tǒng)的開發(fā)、維護大型軟件項目的技術(shù)手段和管理方法用戶對軟件需求的描述和軟件開發(fā)人員對需求的理解往往存在差異,用戶經(jīng)常要求修改需求,開發(fā)人員很難適應(yīng)軟件開發(fā)的技術(shù)人員和管理人員缺乏軟件工程化的素質(zhì)和要求,對工程化的開銷認識不足第1章軟件與軟件工程1.2軟件工程的產(chǎn)生和發(fā)展
軟件工程(SoftwareEngineering)是在克服60年代末所出現(xiàn)的“軟件危機”的過程中逐漸形成與發(fā)展的。
隨著互聯(lián)網(wǎng)平臺和環(huán)境的迅速發(fā)展,對軟件工程的發(fā)展產(chǎn)生了變革性的巨大影響,網(wǎng)格計算、普適計算、中間件、網(wǎng)構(gòu)軟件等一批新技術(shù)和理念,從網(wǎng)絡(luò)資源共享與管理,人機交互及軟件服務(wù)等各方面提出了軟件技術(shù)的新課題。
第1章軟件與軟件工程軟件工程的發(fā)展已經(jīng)歷了四個重要階段:4.第四代軟件工程
—
構(gòu)件工程3.第三代軟件工程
—
過程工程2.第二代軟件工程
—
對象工程1.第一代軟件工程
—
傳統(tǒng)的軟件工程第1章軟件與軟件工程軟件工程的發(fā)展已經(jīng)歷了四個重要階段:1.第一代軟件工程
—
傳統(tǒng)的軟件工程2.第二代軟件工程
—
對象工程3.第三代軟件工程
—
過程工程4.第四代軟件工程
—
構(gòu)件工程
60年代末到70年代為了克服“軟件危機”
(Softwarecrisis)提出“軟件工程”的名詞,將軟件開發(fā)納入工程化的軌道,基本形成軟件工程的概念、框架、技術(shù)和方法。稱為傳統(tǒng)的軟件工程。第1章軟件與軟件工程軟件工程的發(fā)展已經(jīng)歷了四個重要階段:1、第一代軟件工程
—
傳統(tǒng)的軟件工程2、第二代軟件工程
—
對象工程3、第三代軟件工程
—
過程工程4、第四代軟件工程
—
構(gòu)件工程
80年代中到90年代,面向?qū)ο蟮姆椒ㄅc技術(shù)得到發(fā)展,研究的重點轉(zhuǎn)移到面向?qū)ο蟮姆治雠c設(shè)計,演化為一種完整的軟件開發(fā)方法和系統(tǒng)的技術(shù)體系,稱為對象工程。第1章軟件與軟件工程軟件工程的發(fā)展已經(jīng)歷了四個重要階段:1、第一代軟件工程
—
傳統(tǒng)的軟件工程2、第二代軟件工程
—
對象工程3、第三代軟件工程
—
過程工程4、第四代軟件工程
—
構(gòu)件工程
80年代中開始,人們在軟件開發(fā)的實踐過程中認識到:提高軟件生產(chǎn)率,保證軟件質(zhì)量的關(guān)鍵是“軟件過程”,是軟件開發(fā)和維護中的管理和支持能力,逐步形成軟件過程工程。第1章軟件與軟件工程軟件工程的發(fā)展已經(jīng)歷了四個重要階段:1、第一代軟件工程
—
傳統(tǒng)的軟件工程2、第二代軟件工程
—
對象工程3、第三代軟件工程
—
過程工程4、第四代軟件工程
—
構(gòu)件工程
90起年代,基于構(gòu)件(Component)的開發(fā)方法取得重要進展,軟件系統(tǒng)的開發(fā)可通過使用現(xiàn)成的可復(fù)用構(gòu)件組裝完成,而無需從頭開始構(gòu)造,以此達到提高效率和質(zhì)量,降低成本的目的。稱為構(gòu)件工程。第1章軟件與軟件工程第1章軟件與軟件工程
軟件工程是一門新興的邊緣學(xué)科,涉及的學(xué)科多,研究的范圍廣,研究的主要內(nèi)容有以下幾方面:}
軟件開發(fā)技術(shù)軟件開發(fā)方法、技術(shù)軟件開發(fā)工具及環(huán)境軟件管理技術(shù)軟件規(guī)范(國際規(guī)范)}
軟件管理技術(shù)第1章軟件與軟件工程1.3軟件工程過程與軟件生存期
為了克服軟件危機,人們從其他產(chǎn)業(yè)的工業(yè)化生產(chǎn)得到啟示,于是在68年北大西洋公約的軟件可靠性會議(NATO)上,首次提出了“軟件工程”的概念。提出了在軟件生產(chǎn)中采用工程化的方法,采用一系列科學(xué)的、現(xiàn)代化的方法技術(shù)來開發(fā)軟件。這種工程化的思想貫穿到軟件開發(fā)和維護的全過程。第1章軟件與軟件工程是指在軟件工具的支持下,所進行的一系列軟件開發(fā)和進化的活動。通常包括以下四類基本過程:1、軟件規(guī)格說明:規(guī)定軟件的功能及其運行環(huán)境。2、軟件開發(fā):產(chǎn)生滿足規(guī)格說明的軟件。3、軟件確認:確認軟件能夠完成客戶提出的要求。4、軟件演進:為滿足客戶的變更要求,軟件必須在使用的過程中演進。軟件工程過程
(Softwareengineeringprocess)第1章軟件與軟件工程軟件工程過程
(Softwareengineeringprocess)規(guī)程與方法工具和設(shè)備有技能經(jīng)過培訓(xùn)的開發(fā)人員過程第1章軟件與軟件工程軟件工程三要素軟件工程過程方法工具軟件工程釆用層次化的方法,每個層次都包括過程、方法、工具三要素。第1章軟件與軟件工程問題定義編碼需求分析軟件設(shè)計可行性研究運行與維護測試開發(fā)時期運行時期計劃時期(目標與范圍說明書)(可行性論證論告)(維護報告)(測試報告)(程序)(設(shè)計文檔)(需求說明書)軟件生命周期(SDLD)—瀑布模型瀑布模型第1章軟件與軟件工程1.4軟件開發(fā)模型
軟件開發(fā)模型是描述軟件開發(fā)過程中各種活動如何執(zhí)行的模型。因此又稱為軟件過程模型。
軟件過程模型是對軟件開發(fā)實際過程的抽象和簡化。
目前典型的軟件開發(fā)模型有:
瀑布模型、增量模型、螺旋模型、噴泉模型、變換模型和基于知識的模型等。不同的開發(fā)方法有不同的軟件過程模型。第1章軟件與軟件工程軟件過程模型軟件過程模型是軟件開發(fā)全過程、軟件開發(fā)活動以及它們之間關(guān)系的結(jié)構(gòu)框架軟件項目的管理提供里程碑和進度表為軟件開發(fā)提供原則和方法第1章軟件與軟件工程以軟件需求完全確定為前提的瀑布模型在軟件開發(fā)初期只能提供基本需求所采用的漸進式開發(fā)模型如原型模型、螺旋模型、增量模型、并發(fā)開發(fā)模型
以形式化開發(fā)方法為基礎(chǔ)的變換模型基于構(gòu)件的開發(fā)過程敏捷開發(fā)過程---統(tǒng)一軟件開發(fā)過程RUP五類軟件開發(fā)過程模型第1章軟件與軟件工程瀑布模型問題定義編碼需求分析軟件設(shè)計可行性研究運行與維護測試開發(fā)時期運行時期計劃時期(目標與范圍說明書)(可行性論證論告)(維護報告)(測試報告)(程序)(設(shè)計文檔)(需求說明書)瀑布模型第1章軟件與軟件工程瀑布模型主要思想
軟件開發(fā)過程與軟件生命周期是一致的相鄰二階段之間存在因果關(guān)系需對階段性產(chǎn)品進行評審第1章軟件與軟件工程瀑布模型的優(yōu)點軟件生命周期模型,使軟件開發(fā)過程可以在分析、設(shè)計、編碼、測試和維護的框架下進行;軟件開發(fā)過程具有系統(tǒng)性、可控性,克服了軟件開發(fā)的隨意性。第1章軟件與軟件工程瀑布模型的缺點項目開始階段用戶很難精確的提出產(chǎn)品需求,由于技術(shù)進步,用戶對系統(tǒng)深入的理解,修改需求十分普遍。項目開發(fā)晚期才能得到程序的運行版本,這時修改軟件需求和開發(fā)中的錯誤代價很大。采用線性模型組織項目開發(fā)經(jīng)常發(fā)生開發(fā)小組人員“堵塞狀態(tài)”,特別是項目的開始和結(jié)束。第1章軟件與軟件工程增量模型(incrementalmodel)增量模型是一種非整體開發(fā)的模型。是一種進化式的開發(fā)過程。根據(jù)增量的方式和形式的不同,分為:基于瀑布模型的漸增模型基于原型的快速原型模型該模型具有較大的靈活性,適合于軟件需求不明確、設(shè)計方案有一定風險的軟件項目。增量模型和瀑布模型之間的本質(zhì)區(qū)別是什么?第1章軟件與軟件工程增量模型特點增量小而可用的軟件特點在前面增量的基礎(chǔ)上開發(fā)后面的增量每個增量的開發(fā)可用瀑布或快速原型模型迭代的思路第1章軟件與軟件工程
為了描述軟件開發(fā)過程中可能的回溯,尤其是維護階段往往要經(jīng)歷上述各個階段。采用循環(huán)模型描述。需求分析設(shè)計編碼測試運行評價計劃循環(huán)模型循環(huán)模型第1章軟件與軟件工程
速成原型的工作模型是一個循環(huán)的模型。
1.快速分析快速確定軟件系統(tǒng)的基本要求,確定原型所要體現(xiàn)的特征(界面,總體結(jié)構(gòu),功能,性能)
2.構(gòu)造原型考慮主要特征,快速構(gòu)造一個可運行的系統(tǒng)。有三類原型:用戶界面原型,功能原型,性能原型。
3.運行和評價原型
4.修改與改進原型的工作模型運行評價構(gòu)造快速分析修改第1章軟件與軟件工程
智能模型(intelligentmodel)獲取需求需求分析具體描述優(yōu)化程序調(diào)整驗證維護知識庫專家系統(tǒng)程序
也稱為基于知識的軟件開發(fā)模型,是知識工程與軟件工程相結(jié)合的軟件開發(fā)模型。智能模型第1章軟件與軟件工程1.5軟件開發(fā)方法
軟件開發(fā)的目標是要在規(guī)定的投資和時間內(nèi),開發(fā)出符合用戶的需求,高質(zhì)量的軟件,為此需要有成功的開發(fā)方法。軟件開發(fā)方法可分為兩大類:面向過程的開發(fā)方法面向?qū)ο蟮拈_發(fā)方法第1章軟件與軟件工程結(jié)構(gòu)化開發(fā)方法(StructuredDevelopingMethod)是現(xiàn)有的軟件開發(fā)方法中最成熟,應(yīng)用最廣泛的方法,主要特點是快速,自然和方便。結(jié)構(gòu)化方法總的指導(dǎo)思想自頂向下、逐步求精。它的基本原則是功能的分解與抽象。一、結(jié)構(gòu)化開發(fā)方法的組成結(jié)構(gòu)化程序設(shè)計方法SP法(StructuredProgram)結(jié)構(gòu)化設(shè)計方法SD法(StructuredDesign)結(jié)構(gòu)化分析方法SA法(StructuredAnalysis)
SA,SD,SP法相互銜接,形成了一整套開發(fā)方法。結(jié)構(gòu)化方法及瀑布模型第1章軟件與軟件工程什么是原型化方法(PrototypingMethod)原型化方法及其工作模型
原型——是軟件的一個早期可運行的版本,它反映了最終系統(tǒng)的部分重要特性。原型化方法的基本思想是花費少量代價建立一個可運行的系統(tǒng),使用戶及早獲得學(xué)習的機會。原型化方法又稱速成原型法(RapidPrototyping)。第1章軟件與軟件工程原型化方法及其工作模型
1、廢棄(throwaway)型
RSP法(RapidSpecificPrototyping)快速建立需求規(guī)格原型。
2、追加(addon)型
RCP法(RapidCyclicPrototyping)快速建立漸進原型法。采用循環(huán)漸進的開發(fā)方式,對系統(tǒng)模型作連續(xù)精化。第1章軟件與軟件工程構(gòu)造原型運行/評價原型原型完成否要細部說明否嚴格說明細部效果滿意否整理原型提供文檔修正改進原型YYNN快速分析,確定初步規(guī)格說明YN細化的快速原型模型圖2細化的快速原型模型快速分析或修改評價構(gòu)造運行第1章軟件與軟件工程原型模型的優(yōu)點原型模型支持軟件需求開發(fā),幫助用戶和開發(fā)人員理解需求,是軟件需求工程的關(guān)鍵。它產(chǎn)生的正式需求文擋,是軟件開發(fā)的基礎(chǔ)。如果開發(fā)的原型是可運行的,它的若干高質(zhì)量的程序片段和開發(fā)工具可用于工作程序的開發(fā)。原型的開發(fā)和評審是系統(tǒng)分析員和用戶/客戶共同參予的迭代過程,每個迭代循環(huán)都是線性過程。第1章軟件與軟件工程
對大型軟件,需要多個原型描述系統(tǒng)的生存期,螺旋模型將瀑布模型與原型化模型結(jié)合起來,并加入了風險分析。螺旋模型螺旋模型
螺旋模型將開發(fā)過程分為幾個螺旋周期,每個螺旋周期可分為4個工作步驟:第一,確定目標、方案和限制條件;第二,評估方案、標識風險和解決風險;第三,開發(fā)確認產(chǎn)品;第四,計劃下一周期工作。第1章軟件與軟件工程螺旋模型的使用軟件工程項目從螺旋中心開始啟動,沿順時針方向前進。第一圈產(chǎn)生產(chǎn)品規(guī)格說明;第二圈產(chǎn)生一個用于開發(fā)的原型;第三圈產(chǎn)生軟件產(chǎn)品的初始版本;第四圈產(chǎn)生軟件產(chǎn)品比較完善的新版本
……。第1章軟件與軟件工程螺旋模型的優(yōu)點符合人們認識現(xiàn)實世界和軟件開發(fā)的客覌規(guī)律;支持軟件整個生命周期;保持瀑布模型的系統(tǒng)性、階段性;利用原型評估降低開發(fā)風險;開發(fā)者和用戶共同參與軟件開發(fā),盡早發(fā)現(xiàn)軟件中的錯誤;不斷推出和完善軟件版本,有助于需求變化,獲取用戶需求,加強對需求的理解。第1章軟件與軟件工程
面向?qū)ο蠓椒ǎ∣OSD(Object-OrientedSoftwareDevelopment)是80年代推出的一種全新的軟件開發(fā)方法。非常實用而強有力,被譽為90年代軟件的核心技術(shù)之一。面向?qū)ο蠓椒捌涔ぷ髂P?/p>
其基本思想是:對問題領(lǐng)域進行自然的分割,以更接近人類通常思維的方式建立問題領(lǐng)域的模型,以便對客觀的信息實體進行結(jié)構(gòu)和行為的模擬,從而使設(shè)計的軟件更直接地表現(xiàn)問題的求解過程。面向?qū)ο蟮拈_發(fā)方法以對象作為最基本的元素,是分析和解決問題的核心。
第1章軟件與軟件工程面向?qū)ο箝_發(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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年全球及中國低軌互聯(lián)網(wǎng)星座行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國碳封存解決方案行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球高速木屑制粒機行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球家用吊扇燈行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國非動力重力滾筒輸送機行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國超聲波封訂機行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球PTC熱敏電阻燒結(jié)爐行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球纖維蛋白密封劑行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球全向堆高AGV行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球天花板安裝防護罩行業(yè)調(diào)研及趨勢分析報告
- (完整版)牧場物語精靈驛站詳細攻略
- 鉗工考試題及參考答案
- 醫(yī)藥高等數(shù)學(xué)知到章節(jié)答案智慧樹2023年浙江中醫(yī)藥大學(xué)
- 第4章操作臂的雅可比
- 人教版初中英語八年級下冊 單詞默寫表 漢譯英
- 學(xué)校網(wǎng)絡(luò)信息安全管理辦法
- 中國古代文學(xué)史 馬工程課件(下)21第九編晚清文學(xué) 緒論
- 2023年鐵嶺衛(wèi)生職業(yè)學(xué)院高職單招(語文)試題庫含答案解析
- 外科學(xué)-第三章-水、電解質(zhì)代謝紊亂和酸堿平衡失調(diào)課件
- 人事測評理論與方法-課件
- 最新卷宗的整理、裝訂(全)課件
評論
0/150
提交評論