版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
計算機科學(xué)與技術(shù)學(xué)院
軟件工程研究室王宇穎
wangyy@
軟件工程SoftwareEngineering軟件開發(fā)既是一門科學(xué),又是一門工程,也是一門藝術(shù)
授課對象:軟件工程專業(yè)
授課學(xué)時:
40學(xué)時,課程設(shè)計2周先修課程:高級語言程序設(shè)計、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)庫技術(shù)等
后繼課程:面向?qū)ο蟮能浖_發(fā)技術(shù)系統(tǒng)分析與設(shè)計軟件質(zhì)量保證與測試等。
軟件工程的教學(xué)目的
本課程的教學(xué)目的是培養(yǎng)學(xué)生的基本軟件工程素質(zhì),重視軟件項目開發(fā)的階段和過程,初步具備對軟件項目的需求分析和設(shè)計的能力,為學(xué)習(xí)后續(xù)課程奠定基礎(chǔ),為今后從事規(guī)范化軟件開發(fā)奠定基礎(chǔ),為培養(yǎng)優(yōu)秀的軟件工程人才奠定基礎(chǔ)。軟件工程知識是從事軟件行業(yè)職業(yè)的基礎(chǔ)軟件程序員系統(tǒng)分析員軟件設(shè)計員系統(tǒng)架構(gòu)師軟件集成師測試工程師實施工程師首席技術(shù)官軟件質(zhì)量經(jīng)理軟件項目經(jīng)理系統(tǒng)管理員數(shù)據(jù)庫管理員軟件售前人員軟件營銷人員本課程的主要內(nèi)容和知識結(jié)構(gòu)
第1章軟件工程的思想第2章軟件開發(fā)過程模型第3章軟件開發(fā)過管理第4章軟件需求分析
(軟件開發(fā)關(guān)鍵的一步)第5章軟件設(shè)計-實現(xiàn)的前提第6章實現(xiàn)-初始結(jié)果第8章軟件維護-延長軟件壽命第7章軟件測試和質(zhì)量保證-得到可交付的結(jié)果軟件工程教材叢書需求分析系列設(shè)計系列實現(xiàn)系列測試與度量系列項目管理系列質(zhì)量管理系列面向?qū)ο蠹夹g(shù)系列建模語言系列可用性與復(fù)用系列前沿論題系列軟件工程軟件工程方法與技術(shù)軟件項目管理軟件過程系列
史濟民等,軟件工程-原理、方法與應(yīng)用,
高等教育出板社ISBN7-04-011561-12007.08.第8次印刷.
孫家廣,軟件工程-理論、方法與實踐,
高等教育出板社,
2006年5月參考書
SoftwareEngineeringAPractitioner’sApproachAuthor:Rogers.Pressman(軟件工程實踐者的研究方法機械工業(yè)出版社)課程的基本要求
了解軟件工程的思想、范圍、基本要素、規(guī)范,軟件開發(fā)方法和工具。
掌握軟件開發(fā)的過程和初步建模
學(xué)會運用所學(xué)知識進行初步的軟件項目開發(fā)。8考試要求
平時成績:占總成績的20%完成一個小型軟件系統(tǒng)的分析、設(shè)計文檔,階段性成果占總成績的20%考試成績:占總成績的60%財富可以通過辛勤勞動獲取,也可能由于喜中彩票大獎獲得。知識卻必須是通過一點一滴努力學(xué)習(xí)逐漸積累而獲得的。珍惜每一天,每一節(jié)課,每一分鐘。聽課復(fù)習(xí)閱讀討論練習(xí),從知到會實踐,從會到通知識—方法—能力如何學(xué)習(xí)軟件工程
學(xué)習(xí)讀書
知識課程
你們的收獲不會僅僅局限在本課程之內(nèi)……課堂教學(xué)復(fù)習(xí)作業(yè)參考資料實踐滲透總結(jié)屬于自己的“最佳實踐”多動手、多實踐,方可成為合格的軟件工程師;實踐越多、參與的項目越大,積累經(jīng)驗越多;首先遵循他人提出的“最佳實踐”,進而創(chuàng)造自己的“最佳實踐”。從“程序員”成長為“軟件工程師”程序員軟件工程師軟件工程課程(課堂)+課程設(shè)計(實踐)+課后孜孜不倦的練習(xí)、實踐、總結(jié)、歸納(…越多越好)實踐作業(yè)1)分析和設(shè)計下列問題之一,并寫出文檔.3)自定題目,如:教學(xué)管理軟件教學(xué)網(wǎng)站網(wǎng)上售書,網(wǎng)上購物超市管理食堂管理工寓管理
題目要有創(chuàng)新性。
2)課程階段性報告
學(xué)生體會
從他的歷史發(fā)展中我明白了很多道理,從他的前景中我感到了振奮和鼓舞,感謝軟件工程又給了我很多問題去思考,很多方法去實踐,更多的命題要在生活和實踐中慢慢領(lǐng)悟。
任何事物都有它美的一面,軟件的美是博大精深的,有待我們?nèi)ゼ毤汅w味,而這種美又是由我們賦予的.
希望認(rèn)真溝通實踐創(chuàng)新14第1章
軟件工程的思想SoftwareEngineering軟件工程研究室15內(nèi)容:
1.1軟件
1.2軟件工程的概念
1.3軟件工程的作用
1.4軟件工程的發(fā)展
1.5軟件工程三要素
1.6軟件開發(fā)的基本策略1.7軟件工程的目標(biāo)
161.1軟件
20世紀(jì)五十年代
軟件=程序面向過程的程序=算法+數(shù)據(jù)結(jié)構(gòu)
20世紀(jì)六十年代
軟件=程序+文檔
20世紀(jì)七十年代
軟件=程序+文檔+數(shù)據(jù)
面向?qū)ο蟮某绦?對象+消息面向構(gòu)件的程序=構(gòu)件+構(gòu)架
1.1.1軟件的定義軟件比程序更復(fù)雜軟件必須能夠模擬現(xiàn)實世界,才能解決現(xiàn)實世界的問題?,F(xiàn)實世界是復(fù)雜的,軟件是復(fù)雜的。17軟件是是被開發(fā)或設(shè)計的,而不是被制造的人的作用不同,構(gòu)建方法不同,質(zhì)量問題不同,成本構(gòu)成不同。故障率時間初期故障率磨損實際理想故障率時間修改軟件故障曲線硬件故障曲線圖1-1硬件、軟件故障圖1.1.2軟件的特征軟件是產(chǎn)品交付使用的載體。軟件不會磨損,軟件需求變化快,維護軟件困難。18*系統(tǒng)軟件:和硬件交互多,數(shù)據(jù)結(jié)構(gòu)復(fù)雜*應(yīng)用軟件*商業(yè)軟件*工程和科學(xué)計算軟件*嵌入式軟件*個人計算機軟件*人工智能軟件*基于web軟件*工具包軟件*開源軟件
*遺留軟件1.1.3軟件的分類191.2軟件工程P.Wegner和B.Boehm認(rèn)為:
科學(xué)知識在設(shè)計和構(gòu)造計算機程序,以及開發(fā)、運作和維護這些程序所需求的有關(guān)文檔編制中的實際應(yīng)用。F.L.Bauer認(rèn)為:
為了經(jīng)濟地獲得軟件,這個軟件是可靠的并且能在實際的計算機上工作,所需要的健全的工作原理(方法)的確立和使用。IEEE(電氣和電子工程師協(xié)會83)指出:軟件工程是開發(fā)、運行、維護和修復(fù)軟件的系統(tǒng)化方法。IEEE(93)指出:
軟件工程是將系統(tǒng)化的、規(guī)范的、可度量的方法應(yīng)用于軟件的開發(fā)、運行和維護的過程,即將工程化的方法應(yīng)用于軟件開發(fā)中。201.3軟件工程的作用軟件開發(fā)失敗的例子1962年6月,美國飛向金星的第1個空間探測器(水手1號)飛行中偏移了航線,失敗了。
原因:飛艙中的導(dǎo)航程序中的一個語句的語義錯。世界上精心設(shè)計的并花費巨額投資的美國阿波羅8號太空飛船登月飛行計劃的軟件的錯誤,使存儲器一部分信息丟失;阿波羅14號的飛行10天中,出現(xiàn)18個軟件錯誤。原因:軟件的可靠性問題。1963~1966年IBM開發(fā)OS/360操作系統(tǒng),投資幾千萬美元,工作量5000多人年,拖延幾年才交付使用,而且每年要發(fā)現(xiàn)近100個錯誤。原因:計劃上的問題,無法控制進度。21美國肯尼迪發(fā)射的一枚“阿脫拉斯火箭,當(dāng)飛地面幾十英里高空時,翻轉(zhuǎn).地面控制中心被迫下令炸毀,結(jié)果損失1850萬美元。原因:飛行計劃程序漏掉一個“連”接字符。由此可看出:軟件需求量不斷增大,復(fù)雜度越來越高,軟件可靠性無保障軟件維護費用不斷上升軟件進度無法預(yù)測成本增長無法控制程序人員無限度地增加程序功能。22上述原因?qū)е铝?0年代末的“軟件危機1968年北大西洋公約組織(NATO)的計算機科學(xué)家在聯(lián)邦德國的幕尼黑召開的一次計算機軟件國際會議上,對軟件開發(fā)的方法、技術(shù)進行了廣泛的討論,首次提出了“軟件工程”的概念。軟件工程的作用:解決60年代出現(xiàn)的軟件危機。解決軟件當(dāng)前面臨的問題。
軟件開發(fā)周期長,成本高,找錯誤難,度量困難,軟件可靠性、重用性、維護性存在問題。告訴人們怎樣去開發(fā)軟件、管理軟件?,F(xiàn)代軟件開發(fā)對人才的要求。
提高軟件產(chǎn)品的質(zhì)量,降低軟件開發(fā)的成本。
231.4軟件工程的發(fā)展傳統(tǒng)的軟件工程時代過程軟件工程時代對象軟件工程時代構(gòu)件軟件工程時代(構(gòu)件技術(shù),中間件技術(shù),集成技術(shù))自動化的流水線裝配軟件工程的發(fā)展方向
分布式、大規(guī)模的軟件開發(fā)
遍在計算移動計算網(wǎng)絡(luò)資源開源軟件
軟件的網(wǎng)絡(luò)化,服務(wù)化,全球化的發(fā)展。24為屏蔽計算機硬件的異構(gòu)性,發(fā)展了操作系統(tǒng).NET/COMWebServicesJ2EE/EJBUNIXWindowsLinuxC/C++語言Java語言為屏蔽操作系統(tǒng)和編程語言的異構(gòu)性,發(fā)展了支撐軟件和中間件為了屏蔽中間件之間的異構(gòu)性,出現(xiàn)了Web技術(shù)。Fortran語言為了禰補應(yīng)用軟件與現(xiàn)實計算環(huán)境之間的距離
網(wǎng)絡(luò)層
綜觀軟件技術(shù)的發(fā)展圖1-2應(yīng)用系統(tǒng)操作系統(tǒng)支撐軟件
中間件251.5軟件工程三個要素
工具
Softwareengineeringlayers圖1-3軟件工程三個要素方法(步驟、原則)
過程(任務(wù)(活動))質(zhì)量焦點工具26
提供完成系統(tǒng)開發(fā)每一步的詳細指導(dǎo),包括具體的模型、工具和技術(shù)(的使用說明)。
1.5.1系統(tǒng)的開發(fā)方法(SystemDevelopmentMethodology)結(jié)構(gòu)化方法:
使用結(jié)構(gòu)化分析,結(jié)構(gòu)化設(shè)計,結(jié)構(gòu)化編程技術(shù)的系統(tǒng)開發(fā)方法。
面向?qū)ο蠓椒ǎ菏褂妹嫦驅(qū)ο蟮姆治?,面向?qū)ο蟮脑O(shè)計,面向?qū)ο蟮木幊碳夹g(shù)的系統(tǒng)開發(fā)方法。27系統(tǒng)開發(fā)中使用的一些工具
項目管理應(yīng)用程序制圖/圖形應(yīng)用程序字處理器應(yīng)用程序集成開發(fā)環(huán)境(IDE)數(shù)據(jù)庫管理應(yīng)用程序反向工程工具代碼生成工具
1.5.2工具(Tool)
為軟件開發(fā)方法或開發(fā)過程提供自動或半自動支持。
CASE(Computer-AidedSoftwareEngineering)工具28
(1)
MicrosoftVisio(2)VisibleAnalyst()(3)OracleDesigner()(4)RationalRose()(5)Togethersoft()29DFDonCASEToolVisualAnalyst
Figure1-4顯示DFD的可視化工具30RationalRoseShowingOODiagramsFigure1-5顯示交互圖的ROSE工具31TogetherJShowingClassDiagramandSynchronizedJavaCodeFigure1-6顯示類圖和JAVA源代碼的往返工程工具32過程:定義了活動的時間、人員、工作內(nèi)容
和達到預(yù)期目標(biāo)的途徑.
如一個通用過程框架(建模活動
(分析任務(wù)(獲取、分析建立DFD圖…文檔),設(shè)計任務(wù)(結(jié)構(gòu)、數(shù)據(jù)、接口…設(shè)計文檔)))
1.5.3軟件過程331.6軟件開發(fā)的基本策略“軟件復(fù)用”、“分而治之”、“優(yōu)化—折中”。
1.6.1軟件復(fù)用(Reuse)
構(gòu)造新的軟件系統(tǒng),使用已有的軟構(gòu)件,即組裝(或加以合理修改)成新的系統(tǒng)。
據(jù)統(tǒng)計,世上已有1000億多行程序,無數(shù)功能被重寫了成千上萬次,真是浪費!
在一個新系統(tǒng)中,大部分的內(nèi)容是成熟的,只有部分內(nèi)容是創(chuàng)新的。復(fù)用已有的功能模塊,既可以提高開發(fā)效率,也可以改善新開發(fā)過程中帶來的質(zhì)量問題。將復(fù)雜問題分解為若干可獨立的簡單子問題,并分別獨立求解,以降低復(fù)雜性;將各子問題的解綜合起來,形成最初復(fù)雜問題的解。1.6.2分而治之(DivideandConquer)Figure1-7顯示模塊的分解與組裝分治的好處:開發(fā)工作可并行進行獨立部分小,易于理解一個部分出了問題,易替換,影響范圍小。局限:只了解自己工作部分,不能深入了解全部內(nèi)容。35
優(yōu)化就是精簡,去掉繁鎖。
例如:
#在算法設(shè)計時要考慮空間和時間的折中;
#低成本和高可靠性的折中;
#安全性和速度的折中。1.6.3優(yōu)化——折中
軟件中的折中(Trade-off):不同的需求之間往往存在矛盾與沖突,需要通過折中來作出的合理的取舍,找到使雙方均滿意的點。折中策略:
是通過協(xié)調(diào)各個質(zhì)量因素,實現(xiàn)整體質(zhì)量的最優(yōu)。
36軟件折中的重要原則:
不能使某一方損失關(guān)鍵的職能,更不可以象“舍魚而取熊掌”那樣拋棄一方。用“優(yōu)化——折中”的策略解決“魚和熊掌不可兼得”的難題。
問題提出:假設(shè)魚每千克10元,熊掌每千克一萬元。有個人只有20元錢,非得要吃上一公斤美妙的“熊掌燒魚”,怎么辦?
解決方案:
用9元9角9分錢買999克魚肉,用10元錢買1克熊掌肉,可做一道“熊掌戲魚”菜。剩下的那一分錢還可建立獎勵基金。例舉你在學(xué)習(xí)和生活中使用折中思想的例子
37
軟件工程的目標(biāo)是提高軟件的質(zhì)量與生產(chǎn)率,降低軟件開發(fā)和維護成本,最終實現(xiàn)軟件的工業(yè)化生產(chǎn)。
質(zhì)量是軟件需求方最關(guān)心的問題,用戶即使不圖物美價廉,也要求個貨真價實.
1.7軟件工程的目標(biāo)38本章小結(jié)
軟件工程的概念軟件工程三要素(方法、工具、過程)軟件開發(fā)的基本策略軟件工程的目標(biāo)軟件工程的思想是:
提高軟件產(chǎn)品的質(zhì)量,降低軟件開發(fā)和維護的成本;
系統(tǒng)化的、規(guī)范化的進行軟件開發(fā)和科學(xué)化的管理軟件。在軟件開發(fā)中遵循模型化、模塊化、抽象的思維、復(fù)用的思想、優(yōu)化—折中的思想。
39觀念之一:實踐者并不能依賴于書籍,這是因為:現(xiàn)實的工作中,由于條件千差萬別,即使是相當(dāng)成熟的軟件工程規(guī)范,常常也無法套用。正確認(rèn)識軟件工程的觀念軟件技術(shù)日新月異,沒有哪一種軟件標(biāo)準(zhǔn)能長盛不衰。祖?zhèn)髅胤皆谀承╊I(lǐng)域很吃香,而在軟件領(lǐng)域則意味著落后。觀念之二:我們擁有最好的開發(fā)工具、最好的計算機,一定能做出優(yōu)秀的軟件。
客觀情況:良好的開發(fā)環(huán)境只是產(chǎn)出成果的必要條件,而不是充分條件。如果擁有好環(huán)境的是一群庸人,難保他們不干出南轅北轍的事情。40觀念之三:
如果我們落后于計劃,可以增加更多的程序員來解決。觀念之四:需求分析很困難,軟件修改越早代價越少,修改越晚代價越大,就跟治病一樣道理??陀^情況:軟件開發(fā)不同于傳統(tǒng)的農(nóng)業(yè)生產(chǎn),人多不見得力量大。如果給落后于計劃的項目增添新手,可能會更加延誤項目。41
爭議之一:如果軟件運行較慢,是換一臺更快的計算機,還是設(shè)計一種更快的算法?一些有爭議的觀念
如果開發(fā)軟件的目的是為了學(xué)習(xí)或是研究,那么應(yīng)該設(shè)計一種更快的算法。
如果該軟件已經(jīng)用于商業(yè),則需謹(jǐn)慎考慮:若換一臺更快的計算機能解決問題,則是最快的解決方案。42類似的爭議還有:是買現(xiàn)成的程序,還是徹底自己開發(fā)?技術(shù)人員和商業(yè)人士常常會有不同的選擇。
改進算法雖然可以從根本上提高軟件的運行速度,但可能引入錯誤以及延誤進程。技術(shù)狂毫無疑問會選后擇者,因為他們覺得放棄任何可以優(yōu)化的機會就等于犯罪。爭議之二:
有最好的軟件工程方法,最好的編程語言嗎?觀點:開發(fā)人員應(yīng)該根據(jù)客觀條件,選擇自己熟悉的方法和語言,才能保證合格的質(zhì)量與生產(chǎn)率。
程序設(shè)計是自由與快樂的事情,不要自尋煩惱。43
觀點:就軟件開發(fā)而言,技巧的優(yōu)點在于能另辟蹊徑地解決一問題,缺點是技巧并不為人熟知。若在程序中用太多的技巧,可能會留下隱患,別人也難以理解程序。鑒于一個局部的優(yōu)點對整個系統(tǒng)而言是微不足道的,而一個錯誤則可能是致命的。編程時是否應(yīng)該多使用技巧?爭議之三:建議用自然的方式編程,少用技巧。
《狼三則》的故事告訴我們“失敗的技
溫馨提示
- 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年度智慧社區(qū)場地租賃及社區(qū)服務(wù)合作協(xié)議4篇
- 2025版紀(jì)念品墓地銷售合同4篇
- 二零二五年度電子商務(wù)解決方案定制合同2篇
- 二零二五年度綠色能源項目租賃代理合同3篇
- 個人向公司租用倉儲空間協(xié)議(2024版)3篇
- 基于2025年度產(chǎn)品研發(fā)的實驗室共建合同2篇
- 二零二五年度班主任新手教師教學(xué)輔導(dǎo)與職業(yè)發(fā)展協(xié)議3篇
- 2025年度臨時建筑設(shè)施租賃合同書(2025年度)4篇
- 2025年度戶外廣告位場地借用及廣告發(fā)布合同2篇
- 雨傘安全課程設(shè)計
- GB/T 12914-2008紙和紙板抗張強度的測定
- GB/T 1185-2006光學(xué)零件表面疵病
- ps6000自動化系統(tǒng)用戶操作及問題處理培訓(xùn)
- 家庭教養(yǎng)方式問卷(含評分標(biāo)準(zhǔn))
- 城市軌道交通安全管理課件(完整版)
- 線纜包覆擠塑模設(shè)計和原理
- TSG ZF001-2006 安全閥安全技術(shù)監(jiān)察規(guī)程
- 部編版二年級語文下冊《蜘蛛開店》
- 鍋爐升降平臺管理
- 200m3╱h凈化水處理站設(shè)計方案
- 個體化健康教育記錄表格模板1
評論
0/150
提交評論