




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、軟件工程課程內容:1、傳統(tǒng)的軟件工程方法2、面向對象的開發(fā)方法(UML)關于課程課程的主要特點及教學安排1.研究內容廣泛,發(fā)展迅速。2.實踐性強。注意取材,內容反映最新發(fā)展。 A.采用理論教學與案例教學相結合。 B.以綜合性的設計型實驗及課程設計帶動課程的學習。在教師指導下,組成開發(fā)小組。成員協(xié)同工作,完成一個實際課題的開發(fā)。1、軟件工程導論(第五版) 張海藩 清華大學出版社,2008.22、Software Engineering 6th Edition ,Ian Summerville3、Software Engineering:Theory and Practice (third edi
2、tion),美,Shari Lawrence Pfleeger ,加Joanne M.Atlee4、軟件工程-實踐者的研究方法 Roger S. Pressman 著,梅宏譯,機械工業(yè)出版社,20035、面向對象與傳統(tǒng)軟件工程-統(tǒng)一過程的理論與實踐(美)Stephen R.Schach 著,韓松,鄧迎春譯,機械工業(yè)出 版社,20066、 / 軟件工程專家網(wǎng)7、 / UML軟件工程組織教材及主要參考書: “軟件工程”課程 與其它軟件專業(yè)課的區(qū)別(1) 立足于系統(tǒng)的整體。(2) 講授系統(tǒng)分析、系統(tǒng)設計、測試及維護的理論和方法。(3) 構筑一個軟件系統(tǒng),實踐軟件開發(fā)過程。 “軟件工程”課程教學與實踐
3、的目標 轉變對軟件開發(fā)的認識: 上升 程序 系統(tǒng) 轉變思維定式: 上升 程序員 系統(tǒng)工程師 (系統(tǒng)分析員) 工程化訓練考核方式出勤率(10%)+ 實驗成績(30)+期末考試成績(60%)第一章 軟件工程概述1、軟件與軟件危機2、軟件工程3、軟件過程1、軟件與軟件危機軟件及其特性軟件危機及其原因軟件軟件是由計算機程序的發(fā)展而形成的一種概念。程序是按既定算法,用某種計算機語言所規(guī)定的指令或語句編寫的一系列指令或語句的集合。軟件是程序再加上程序實現(xiàn)和維護程序時所必須的文檔的總稱。軟件被普遍接受的軟件的定義是:軟件(software)是計算機系統(tǒng)中與硬件(hardware)相互依存的另一部分,它包括程
4、序(program)、相關數(shù)據(jù)(data)及其說明文檔(document)。其中程序是按照事先設計的功能和性能要求執(zhí)行的指令序列;數(shù)據(jù)是使程序能正常處理信息的數(shù)據(jù)結構;文檔是與程序開發(fā)維護和使用有關的各種圖文資料。 軟件根據(jù)國際標準化組織的定義,軟件是“與計算機系統(tǒng)操作有關的程序、方法、規(guī)則、相關的文檔資料以及在計算機上運行程序時所必需的數(shù)據(jù)。軟件的特性軟件是一種生產(chǎn)出來的產(chǎn)品,即軟件產(chǎn)品。軟件產(chǎn)品在市場上流通,賣給一個或多個客戶就成為軟件商品。軟件產(chǎn)品是一種不同于物質性產(chǎn)品的邏輯性產(chǎn)品。它除具有一般產(chǎn)品的諸多屬性外,還具有自己特有的屬性。軟件的特性軟件是一種邏輯實體,具有抽象性。這個特點使它
5、與其它工程對象有著明顯的差異。人們可以把它記錄在紙上、內存、和磁盤、光盤上,但卻無法看到軟件本身的形態(tài),必須通過觀察、分析、思考、判斷,才能了解它的功能、性能等特性。軟件沒有明顯的制造過程。一旦研制開發(fā)成功,就可以大量拷貝同一內容的副本。所以對軟件的質量控制,必須著重在軟件開發(fā)方面下工夫。軟件的特性軟件在使用過程中,沒有磨損、老化的問題。軟件在生存周期后期不會因為磨損而老化,但會為了適應硬件、環(huán)境以及需求的變化而進行修改,而這些修改有不可避免的引入錯誤,導致軟件失效率升高,從而使得軟件退化。當修改的成本變得難以接受時,軟件就被拋棄。軟件對硬件和環(huán)境有著不同程度的依賴性。這導致了軟件移植的問題。
6、軟件的開發(fā)至今尚未完全擺脫手工作坊式的開發(fā)方式,生產(chǎn)效率低。軟件的特性軟件是復雜的,而且以后會更加復雜。軟件是人類有史以來生產(chǎn)的復雜度最高的工業(yè)產(chǎn)品。軟件涉及人類社會的各行各業(yè)、方方面面,軟件開發(fā)常常涉及其它領域的專門知識,這對軟件工程師提出了很高的要求。軟件的成本相當昂貴。軟件開發(fā)需要投入大量、高強度的腦力勞動,成本非常高,風險也大。現(xiàn)在軟件的開銷已大大超過了硬件的開銷。軟件工作牽涉到很多社會因素。許多軟件的開發(fā)和運行涉及機構、體制和管理方式等問題,還會涉及到人們的觀念和心理。這些人的因素,常常成為軟件開發(fā)的困難所在,直接影響到項目的成敗。軟件危機軟件危機指的是在計算機軟件的開發(fā)和維護過程中
7、所遇到的一系列嚴重問題。概括來說,軟件危機包含兩方面問題:一、如何開發(fā)軟件,以滿足不斷增長,日趨復雜的需求;二、如何維護數(shù)量不斷膨脹的軟件產(chǎn)品。 軟件危機的表現(xiàn)(1)對軟件開發(fā)成本和進度的估計常常不準確,軟件生產(chǎn)進度無法控制。開發(fā)成本超出預算,實際進度比預定計劃一再拖延的現(xiàn)象并不罕見。軟件危機的表現(xiàn)(2)軟件需求定義不準確,易偏離用戶需求。用戶對“已完成”系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生。軟件危機的表現(xiàn)(3)軟件產(chǎn)品的質量往往靠不住。Bug一大堆,Patch一個接一個。軟件危機的表現(xiàn)(4)軟件的可維護程度非常之低。很多程序的錯誤是很難改正的,不能根據(jù)用戶的需求變化在原有程序中增加新的功能。軟件危機的表
8、現(xiàn)(5)軟件通常沒有適當?shù)奈臋n資料。管理人員可以使用這些文檔作為管理和評價軟件開發(fā)工程的進展情況;軟件開發(fā)人員可以利用他們作為信息交換工具;對于軟件維護人員文檔更是必不可少。軟件危機的表現(xiàn)(6)軟件的成本不斷提高。隨著技術的進步硬件成本不斷降低,而軟件成本隨著人力資源成本的增高、軟件規(guī)模的增大而不斷上漲。在美國1985年的軟件成本已經(jīng)占到計算機系統(tǒng)總成本的90。軟件危機的表現(xiàn)(7)軟件開發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和人們需求的增長。 軟件危機的原因(1)軟件本身的特點引起(2)軟件開發(fā)與維護的方法不正確 引起軟件危機的消除(1)正確認識計算機軟件(2)軟件開發(fā)是組織良好、管理嚴密、人員相互配
9、合、共同完成的工程項目。(3)推廣在實踐中總結出來的開發(fā)軟件的成功技術和方法,探索更加有效的技術和方法。(4)開發(fā)和使用更好的軟件工具軟件的質量正確性:滿足需求??煽啃裕涸谝?guī)定的條件和規(guī)定的時間內,計算機程序完成規(guī)定功能的概率。有不同的可靠模型。健壯性:程序在需求規(guī)范沒有預見的情況下(如遇到不正確的輸入數(shù)據(jù)或者硬件故障)也能合理的運行??捎眯? 程序在給定的時間點,完成規(guī)定功能的概率??沈炞C性:可以容易的驗證軟件系統(tǒng)的性質,如可以驗證性能等。軟件質量可維護性:維護人員理解、改正、改動或改進軟件得難易程度??芍赜眯裕嚎梢栽诓煌牧6燃墑e上實現(xiàn)重用,包括從整個應用程序到單獨的子程序,但軟件組件級別
10、上的重用比整個產(chǎn)品的實現(xiàn)重用更加合適。2、軟件工程軟件工程的定義和本質特征軟件工程的基本原理軟件生命周期軟件工程方法學軟件工程概括的說,軟件工程是指導計算機軟件開發(fā)和維護的一門工程學科。采用工程的概念、原理、技術和方法來開發(fā)和維護軟件,把經(jīng)過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來,以經(jīng)濟的開發(fā)出高質量的軟件并有效的維護它,這就是軟件工程。軟件工程軟件工程有兩個典型的定義。 1968,NATO:軟件工程就是為了經(jīng)濟的獲得可靠的且能在實際機器上有效地運行的軟件,而建立和使用完善的工程原理。1993,IEEE:軟件工程是:(1)把系統(tǒng)的、規(guī)范的、可度量的途徑應用于軟件開發(fā)
11、、運行和維護過程,也就是把工程應用于軟件;(2)研究(1)中提出的方法。軟件工程的本質特點軟件工程關注于大型程序的構造軟件工程的中心課題是控制復雜性軟件經(jīng)常變化開發(fā)軟件的效率非常重要和諧合作是開發(fā)軟件的關鍵軟件必須有效支持用戶在軟件工程領域中是具有一種文化背景的人替另外一種文化背景的人創(chuàng)造產(chǎn)品Boehm軟件工程的基本原理用分階段的生命周期計劃嚴格管理 堅持進行階段評審 實行嚴格的產(chǎn)品控制 采納現(xiàn)代程序設計技術結果應能清楚地審查開發(fā)小組的人員應少而精 承認不斷改進軟件工程實踐的必要性 軟件生命周期問題定義可行性研究需求分析總體設計詳細設計編碼和單元測試綜合測試軟件維護軟件工程方法學工具方法過程質
12、量焦點Software engineering layers軟件工程三個要素:方法、工具、過程軟件工程方法學三個要素:方法、工具和過程。方法:完成軟件開發(fā)的各項任務的技術方法。工具:為運用方法而提供的自動或者半自動的軟件工程支撐環(huán)境。過程:是為了獲得高質量的軟件所需要完成的一系列任務的框架,它規(guī)定了完成各項任務的工作步驟。軟件工程方法學傳統(tǒng)方法學(生命周期方法學或者結構化范型)采用結構化技術完成軟件開發(fā)的各項任務,并使用適當?shù)能浖ぞ呋蜍浖こ汰h(huán)境來支持結構化技術的運用。傳統(tǒng)軟件工程方法特點自頂向下,逐步求精,把系統(tǒng)進行從大到小的功能分解把軟件生命周期劃分為若干個階段,每階段任務相對獨立,比較
13、簡單,便于協(xié)作開發(fā)生命周期的每個階段都采用科學的管理技術和良好的開發(fā)技術,階段結束后進行技術和管理評審,評審的主要標準是文檔,提高可維護性和軟件開發(fā)質量。解決問題的切入點是問題中各種事物之間相互作用的過程,將相互作用抽象為邏輯模型。是面向過程的開發(fā)方法,把變量和函數(shù)按照功能模塊進行分類和打包。軟件工程方法學面向對象方法學具有四個特點:(1)把對象看成是融合了數(shù)據(jù)及在數(shù)據(jù)上的操作的統(tǒng)一的軟件構件。(2)把所有對象都劃分成類。(3)按照父類和子類的關系,形成類等級。(4)對象間通過消息通信。兩種方法學的區(qū)別一、切入點不同結構化開發(fā)方法:注重的是系統(tǒng)功能,自頂向下,從大到小的功能分解。往往系統(tǒng)需求變
14、化最大就是功能,一段較長的時間內,商業(yè)的流程可能已經(jīng)發(fā)生了很大的變化,這樣基于功能和過程的方法顯然難以維護的,代碼重用率可想而知。其觀察事物的方法不是本體客體本身,而是對本體客體相互作用過程抽象,轉化成邏輯模型。 兩種方法學的區(qū)別OO方法:其切入點是客觀世界的主體和客體,通過封裝實現(xiàn)了信息交流的安全。抽象和繼承使得事物得以完整表述(靜態(tài)和動態(tài)的)和容易修改新的變化。聚合,關聯(lián)反映事物間的相互作用和關系,通過關聯(lián)類管理,這樣把事物和事物間的關系分開減少了復雜度,便于維護,大大提高了代碼重用率 二、開發(fā)過程不同傳統(tǒng):開發(fā)過程強調自頂向下順序完成軟件開發(fā)的各階段任務。OO: 開發(fā)過程是一個主動地多次
15、迭代的演化過程,面向對象方法在概念和表示方法上的一致性,保證了各項開發(fā)活動之間的平滑過渡。兩種方法學的區(qū)別三、軟件重用不同傳統(tǒng):雖然過程和函數(shù)也能重用,但重用級別不高,也不太理想。OO: 對象、類、繼承等很大程度提高軟件產(chǎn)品的可重用性。兩種方法學的區(qū)別4、軟件過程軟件過程軟件過程模型軟件過程軟件過程定義一:軟件過程是為了獲得高質量軟件所需要完成的一系列任務的框架,它規(guī)定了各項任務的工作步驟。定義二:一系列用于軟件產(chǎn)品開發(fā)和維護的活動、方法、慣例的集合。如:項目計劃、設計文檔、代碼、測試案例和用戶手冊等。 軟件過程定義了軟件開發(fā)中運用的方法的順序、應該交付的文檔、為保證軟件質量和協(xié)調軟件變化所需
16、要采取的管理措施,以及標志軟件開發(fā)各個階段任務完成的里程碑。軟件過程模型瀑布模型快速原型模型增量模型螺旋模型噴泉模型RUP統(tǒng)一過程敏捷過程微軟過程瀑布模型瀑布模型規(guī)定了生存期各項軟件活動,包括需求分析、設計、編碼、測試、維護。并且規(guī)定它們自上而下、相互銜接的固定次序。瀑布模型的特點1. 階段間具有順序性和依賴性這個特點有兩重含義: 必須等前一階段的工作完成之后,才能開始后一階段的工作; 前一階段的輸出文檔就是后一階段的輸入文檔。2. 推遲實現(xiàn)的觀點瀑布模型在編碼之前設置了系統(tǒng)分析和系統(tǒng)設計的各個階段,分析與設計階段的基本任務規(guī)定,在這兩個階段主要考慮目標系統(tǒng)的邏輯模型,不涉及軟件的物理模型,清
17、楚地區(qū)分邏輯設計和物理設計,盡可能推遲程序的物理實現(xiàn),是按照瀑布模型開發(fā)軟件的一條重要的指導思想。3. 質量保證的觀點在瀑布模型的每個階段都應堅持兩個重要做法:(1) 每個階段都必須完成規(guī)定的文檔,沒有交出合格的文檔就是沒有完成該階段的任務。(2) 每個階段結束前都要對所完成的文檔進行評審,以便盡早發(fā)現(xiàn)問題,改正錯誤。瀑布模型理想的瀑布模型傳統(tǒng)瀑布模型的缺點a.依賴于早期進行的唯一一次需求調查,不能適應需求的變化;b.由于是單一流程,開發(fā)中的經(jīng)驗教訓不能反饋應用于本產(chǎn)品的過程;c.風險往往遲至后期的開發(fā)階段才顯露,因而失去及早糾正的機會。實際的瀑布模型實際瀑布模型實際瀑布模型優(yōu)缺點優(yōu)點:可強迫
18、開發(fā)人員采用規(guī)范的方法;嚴格規(guī)定了每個階段必須提交的文檔;要求每個階段交出的產(chǎn)品都必須經(jīng)過質量保證小組的仔細驗證。缺點:瀑布模型完全依賴于書面文檔,是一種文檔驅動的模型,很可能導致最終開發(fā)出的軟件產(chǎn)品不能真正滿足用戶的需要。為此,提出了快速模型原型,它的優(yōu)點是有助于保證用戶的真實需要得到滿足??焖僭湍P退^快速原型模型就是快速建立起來的可以在計算機上運行的程序,它所完成的功能往往是最終產(chǎn)品所能完成的功能的一個子集,快速原型的第一步是快速建立一個原型,交給用戶使用,根據(jù)修改意見進行修改,直到用戶認為這個原型能做他們需要的工作,開發(fā)人員就可以書寫規(guī)格說明文檔,根據(jù)這份文檔開發(fā)出的軟件可以滿足用戶
19、的真實需求??焖僭湍P筒粠Х答伃h(huán),軟件產(chǎn)品的開發(fā)基本上是線性順序開發(fā)的??焖僭湍P涂焖僭湍P驮隽磕P鸵卜Q為漸增模型,使用該模型開發(fā)軟件時,把軟件產(chǎn)品看為一系列的增量構件來設計、編碼、集成和測試。每個構件由多個相互作用的模塊構成,并且能夠完成特定的功能。使用增量模型時,必須在開始實現(xiàn)各個構件之前就全部完成需求分析、規(guī)格說明和概要設計的工作。第一個增量構件往往實現(xiàn)軟件的基本需求,提供最核心的功能。增量模型分批的逐步向用戶提交產(chǎn)品。風險更大的增量模型,先做全部的需求分析,逐個做規(guī)格說明,但是冒著無法把構件集成到一起的風險。增量模型增量模型增量模型優(yōu)缺點優(yōu)點:能在較短時間內向用戶提交可完成部分工
20、作的產(chǎn)品;逐步增加產(chǎn)品功能可以使用戶有較充裕的時間學習新產(chǎn)品,從而減少一個全新的軟件可能給客戶組織帶來的沖擊。缺點:軟件體系結構是開放的,這一點做到有很大難度,但也是軟件系統(tǒng)的發(fā)展趨勢;開發(fā)人員必須能夠協(xié)調好構件之間的關系,否則開發(fā)出來的產(chǎn)品可能令人不滿意。 一旦確定了用戶需求之后,就著手擬定第一個構件的規(guī)格說明文檔,完成后規(guī)格說明組將轉向第二個構件的規(guī)格說明,與此同時設計組開始設計第一個構件用這種方式開發(fā)軟件,不同的構件將并行地構建,因此有可能加快工程進度。但是,使用這種方法將冒構件無法集成到一起的風險,除非密切地監(jiān)控整個開發(fā)過程,否則整個工程可能毀于一旦。風險更大的增量模型風險更大的增量模
21、型螺旋模型 瀑布模型與快速原型模型相結合,并加入兩者所忽略的風險分析所建立的一種軟件開發(fā)模型。該模型于1998年由美國TRW公司(B.W.Boehm)提出。軟件項目風險的大小作為指引軟件過程的一個重要因素,引入這一概念有可能使得螺旋模型被看作一種元模型,因為它能包容任何一個開發(fā)過程模型。螺旋模型螺旋模型的基本思想是,使用原型及其他方法盡量降低風險。理解這種模型的一個簡便方法,是把它看成在每個階段之間都增加了風險分析過程的快速原型模型。完整的螺旋模型螺旋模型優(yōu)缺點優(yōu)點: 對可選方案和約束條件的強調有利于重用已有軟件,也有助于把軟件質量作為一個目標;減少了過多測試或者過少測試帶來的風險;維護是模型的另一個周期,維護和開發(fā)之間沒有本質區(qū)別。缺點: 引入非常嚴格的風險識別,風險分析,和風險控制,這對風險管理的技能水平提出了很高的要求。除非軟件開發(fā)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030中國牛蛙養(yǎng)殖行業(yè)市場發(fā)展分析及發(fā)展前景策略與投資報告
- 2025至2030中國牙科3D打印行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 農(nóng)村養(yǎng)殖業(yè)疫病防控及技術支持合同
- 遠程醫(yī)療支持危重病人搶救管理制度及診治流程
- 綠色能源項目投資合同投資清潔能源項目
- 漁業(yè)資源合理利用與農(nóng)民合作合同
- 2023-2029年中國指揮調度通信系統(tǒng)行業(yè)市場發(fā)展現(xiàn)狀及投資規(guī)劃建議報告
- 2022-2027年中國樓宇智能化行業(yè)運行態(tài)勢及未來發(fā)展趨勢預測報告
- 2025年中國珠寶首飾行業(yè)發(fā)展趨勢預測及投資規(guī)劃研究報告
- 2025年中國多用途汽車漆行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 2023年鎮(zhèn)江丹陽市民政局系統(tǒng)事業(yè)單位招聘筆試模擬試題及答案
- 幼兒園消防安全組織機構圖
- 英語社團活動課件
- 第三方檢測市場部管理制度提成方案
- 學前兒童發(fā)展心理學-情感
- GB∕T 16762-2020 一般用途鋼絲繩吊索特性和技術條件
- 電網(wǎng)施工作業(yè)票模板
- 安徽省小學學生學籍表
- 精選天津市初中地理會考試卷及答案
- 非車險銷售人員基礎培訓系列第一講走進非車險世界
- 比選申請文件模板
評論
0/150
提交評論