《軟件工程學演示模板實例》由會員分享,可在線閱讀,更多相關(guān)《軟件工程學演示模板實例(20頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、Slide Title,Articles and prepositions are not caps in titles,Unless,of course,the title starts with one,Proper names always have leading caps,Acronyms are always all caps,Fifth level,Capitalize the first word of all bullet items,This applies to subbullets too,Rose,Apex,and Ada,not ROSE,APEX,and ADA,
2、*,第,8,章 軟件工程,XX,XXX,中心,XXXX,大學,根本要求,1了解軟件工程的根本概念、根本原那么,2理解軟件工程的主要定義,3理解軟件的概念及軟件的特征,4了解軟件生產(chǎn)的歷史、軟件危機及工程失敗的原因,5了解軟件開發(fā)活動,6了解軟件的生命周期概念,7理解軟件過程及模型,8了解面向?qū)ο蟮姆治雠c設(shè)計軟件建模的概念及過程,9了解標準建模語言UML的歷史沿革及特點,10初步掌握UML主要建模元素,11初步掌握UML建立小型系統(tǒng)的主要步驟和方法,12簡單掌握建模工具ROSE,內(nèi)容及安排,授課(課內(nèi)4學時,課外4學時),81軟件工程概述(0.5學時),811軟件及軟件的特征,812軟件生產(chǎn)的歷
3、史,813軟件危機,815工程失敗的原因,816軟件工程的主要定義,82 軟件開發(fā)活動(1學時),821軟件的生命周期,822軟件開發(fā)活動,823軟件過程及模型,83 面向?qū)ο蟮姆治雠c設(shè)計,831標準建模語言UML(1學時含實驗介紹),832用UML建立學籍管理系統(tǒng)舉例(1學時含實驗介紹),84建模工具ROSE介紹(自學),實驗(課內(nèi)4學時,課外4學時),Rose的軟件界面(自學),實驗-1 UML建模元素的創(chuàng)立和組織(1學時),實驗-2 學籍管理系統(tǒng)建摸(3學時),8,1,軟件工程概述,8,1,1,軟件及軟件的特征,軟件:計算機程序及說明程序的各種文檔,即軟件是指令、數(shù)據(jù)結(jié)構(gòu)和文檔的集合。程
4、序是計算任務的處理對象和處理規(guī)那么的描述。軟件是一個信息變換器,它對信息進行產(chǎn)生、管理、獲取、修改、顯示和傳遞等處理。被處理的信息可以是簡單的比特也可以是復雜的多媒體。,軟件應具備6個特征:,1 是一種邏輯產(chǎn)品,與物質(zhì)產(chǎn)品有很大的區(qū)別。,2 軟件產(chǎn)品的生產(chǎn)主要是研制,生產(chǎn)本錢主要在開發(fā)和研制,開發(fā)研制完成后,通過復制就產(chǎn)生了大量軟件產(chǎn)品。,3 軟件產(chǎn)品不會用壞,不存在磨損、消耗。但軟件是有生命周期的。,4 生產(chǎn)主要是腦力勞動,還未完全擺脫手工開發(fā)方式。,5 開發(fā)軟件的費用不斷增加,致使生產(chǎn)本錢相當昂貴,6 軟件還必須具備可維護性Maintainability、獨立性Dependability和
5、效率性Efficiency和可用性Usability四個屬性。,8,1,2,軟件生產(chǎn)的歷史,8,1,3,軟件危機,軟件開發(fā)技術(shù)的進步未能滿足開展的要求。在軟件開發(fā)中遇到的問題找不到解決的方法,問題積累起來,形成鋒利的矛盾,導致了軟件危機。,軟件危機的表現(xiàn):對軟件開發(fā)本錢和進度的估計常常很不準確,經(jīng)費預算經(jīng)常突破,完成時間一再拖延;開發(fā)的軟件不能滿足用戶要求,用戶對“已完成的軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生;開發(fā)的軟件可維護性差;開發(fā)的軟件可靠性差。,軟件危機產(chǎn)生原因為:軟件規(guī)模越來越大,結(jié)構(gòu)越來越復雜;軟件開發(fā)管理困難而復雜;軟件開發(fā)費用不斷增加;軟件開發(fā)技術(shù)落后;生產(chǎn)方式落后,仍采用手工方式;開
6、發(fā)工具落后,生產(chǎn)率提高緩慢。,歸納起來軟件危機的核心原因是軟件系統(tǒng)的復雜度遠大于硬件,計算機工業(yè)中硬件產(chǎn)品制造已經(jīng)標準化,工程化,產(chǎn)業(yè)化,但軟件生產(chǎn)離此目標還很遠。,假設(shè)一個人一年可以開發(fā)出一個一萬行的程序,該軟件是否集中4000人的力量一年就可以完成呢?絕對做不到!因為代碼長度增加了4000倍,程序復雜程度的增加遠遠超過4000倍。,815工程失敗的原因,因素,Factors,所占百分比,%,1.Incomplete Requirements,不完整的需求,13.1%,2.Lack of User Involvement,缺乏用戶參與,12.4%,3.Lack of Resources,缺乏
7、資源,10.6%,4.Unrealistic Expectations,不實際的期望,9.9%,5.Lack of Executive Support,缺乏執(zhí)行的支持,9.3%,6.Changing Requirements&Specifications,需求和規(guī)格的變化,8.7%,7.Lack of Planning,缺乏計劃,8.1%,8.Do not Need It Any Longer,不再需要,7.5%,9.Lack of IT Management,缺乏,IT,管理,6.2%,10.Technology Illiteracy,技術(shù)落后,(技術(shù)盲區(qū)),4.3%,11.Others,其
8、他,9.9%,Standish Group 1995,8,1,6,軟件工程的主要定義,軟件工程根本思想:用科學的知識和技術(shù)原理來定義、開發(fā)、維護軟件;用工程科學的觀點進行費用估算,制定進度,制定方案和方案;用管理科學的方法和原理進行生產(chǎn)的管理;用數(shù)學的方法建立軟件開發(fā)中的各種模型和算法。,軟件工程目標:付出較低開發(fā)本錢;到達要求的功能;取得較好的性能;開發(fā)的軟件易于移植;只需較低的維護費用;能按時完成開發(fā)任務,及時交付使用;開發(fā)的軟件可靠性高。,軟件工程內(nèi)容:研究內(nèi)容包括開發(fā)技術(shù)和開發(fā)管理兩個方面。開發(fā)技術(shù)主要研究軟件開發(fā)方法,開發(fā)過程,開發(fā)工具和環(huán)境。開發(fā)管理主要研究軟件管理學,軟件經(jīng)濟學,
9、軟件心理學。,軟件工程需要解決的問題:軟件的費用,可靠性,可維護性,軟件生產(chǎn)率和軟件的重用。,軟件工程規(guī)定了獲取,供給,開發(fā),操作和維護軟件時,要實施的過程、活動和任務。目的是為各種人員提供一個公共的框架,以便用相同的語言進行交流。軟件工程包括:獲取過程,供給過程,開發(fā)過程,操作過程,維護過程,管理過程,支持過程。,軟件開發(fā)方法:使用早已定義好的技術(shù)集及符號表示習慣來組織軟件生產(chǎn)的過程。軟件開發(fā)方法是克服軟件危機的重要方面之一,對軟件工程及軟件產(chǎn)業(yè)的開展起了不可估量的作用。,軟件工程工具和方法,本活動目的是給軟件開發(fā)組織提供軟件開發(fā)環(huán)境過程和工具軟件。開發(fā)隊伍需要它們的支持。程序(軟件)的開發(fā)
10、、運行都是在支持軟件的根底上作出的。這些支持軟件的總和我們稱之為軟件開發(fā)環(huán)境(Environment),早期的環(huán)境只有最必要的軟件工具:,語言的編譯器、連接器、加載和運行工具、排錯(debugging)工具,終端顯示和編輯工具。我們稱最小環(huán)境工具集。,70年代中期,軟件工程師迫于軟件危機的壓力,提出了計算機輔助軟件工程(CASE)的設(shè)想,開發(fā)出一系列工具盡量使軟件過程的各項活動自動化、半自動化。工具日益增多,單點式使用工具很不方便,使用者要逐個將工具調(diào)入,使用后其生成的產(chǎn)物需要逐個保管,一個工具要用到另一工具的輸出,其格式不對就無法用,消除或修改一個名字,那么各工具產(chǎn)物中所有相同的名字都要逐個
11、修改。這就在客觀上產(chǎn)生了對于集成的CASE工具的需求。,軟件工程工具,信息工程工具,過程模型和管理工具,工程方案工具,風險分析工具,工程管理工具,需求追蹤工具,度量和管理工具,文檔工具,系統(tǒng)軟件工具,質(zhì)量保證工具,數(shù)據(jù)庫管理工具,軟件質(zhì)量,軟件質(zhì)量保證的SQA活動,貫穿于軟件過程始終。開發(fā)單位成立SQA小組負責全面質(zhì)量管理。在開發(fā)工程方案時就要做出SQA方案。對于SQA組的工作不外乎以下幾方面:,各種測試 測試軟件是否滿足規(guī)格說明的要求。,各種評審 為多種人員參與的討論會,以規(guī)格說明或各種標準,標準為準評價各項軟件工作。,各種審計 審計(Audit),以職能人員為主審,審查軟件過程產(chǎn)物是否符合
12、標準或規(guī)格說明書。,報告和記錄 所有測試、評審、審計都要詳細記錄并寫出報告,報告和記錄均要整理、歸檔。,以上活動均應在軟件質(zhì)量保證方案中列出。,軟件過程模型,定義:,描述軟件開發(fā)過程中各種活動如何執(zhí)行的模型。對軟件開發(fā)提供強有力的支持,為開發(fā)過程中的活動提供統(tǒng)一的政策保證,為參與開發(fā)的人員提供幫助和指導,是軟件生命周期模型化技術(shù)的根底,也是建立軟件開發(fā)環(huán)境的核心。,A software development process defines Who is doing What,When and How in building a software product,作用:,是確立了軟件開發(fā)中各階
13、段的次序限制,活動準那么,所要遵守的規(guī)定和限制,便于各種活動的協(xié)調(diào),人員之間的有效通信,有利于活動重用和活動管理。,準那么:,模型能表示各種活動的實際工作方式,能隨情況變化而演化,能表示各種活動間同步和制約關(guān)系,能表示活動的動態(tài)特性。容易為開發(fā)人員理解,能適應不同軟件工程,具有較強靈活性,能支持軟件開發(fā)環(huán)境的建立。,模型舉例,-RUP,軟件工程領(lǐng)域在20世紀末取得最重要的的成果之一就是統(tǒng)一建模語言(UML:Unified Modeling Language),目前UML已得到了廣泛的應用,這是面向?qū)ο蠹夹g(shù)和軟件工程的新進展,The Unified Modeling Language(UML)i
14、s a language for specifying,visualizing,constructing,and documenting the artifacts of a software-intensive system,IBM Rational公司為了配合UML提出了統(tǒng)一過程模型Rational Unified Process RUP。,RUP說明如何應用軟件工程的最正確方案,以及如何使用工具來實現(xiàn)軟件工程流程的自動化。,注意:選用RUP這樣一個具體的過程模型作為教學的案例,RUP,用二維結(jié)構(gòu)或沿著兩個坐標軸來表達。,橫軸代表了制訂開發(fā)過程時的時間,表達了過程的動態(tài)結(jié)構(gòu),周期cycle
15、、階段(phase)、迭代(iteration)和里程碑(milestone),縱軸表現(xiàn)了過程的靜態(tài)結(jié)構(gòu),活動(activity)、制品(artifact)、角色(worker)和工作流(workflow),Major Workflows Produce Models,Analysis&Design,ImplementationModel,TestModel,realized by,implemented by,verified by,Requirements,Implementation,Test,Use-CaseModel,DesignModel,BusinessModeling,Busi
16、ness,Use-Case Model,automated by,Business Object Model,8,3,面向?qū)ο蟮姆治雠c設(shè)計,分析與設(shè)計,軟件開發(fā)活動中軟件需求和軟件設(shè)計是軟件開發(fā)活動中最重要的兩個活動,并且與某一具體開發(fā)方法結(jié)合的最為緊密,軟件需求和軟件設(shè)計簡稱為分析與設(shè)計,.,分析與設(shè)計有時也叫軟件建模,其方法也叫建模方法,建模方法采用的符號體系叫建模語言。,無論從學科角度還是從工程實踐角度分析與設(shè)計涉及的問題是最具挑戰(zhàn)性和革命性的。一旦分析與設(shè)計的方法發(fā)生改變會改變軟件工程的歷史。正是由于面向?qū)ο蠹夹g(shù)在分析和設(shè)計階段提出了新的不同于結(jié)構(gòu)化的方法,使軟件工程從結(jié)構(gòu)化方法時代進入了面向?qū)ο蠓椒〞r代。,面向?qū)ο蟮姆治雠c設(shè)計,面向?qū)ο筌浖_發(fā)方法的核心是面向?qū)ο蟮姆治雠c設(shè)計,本節(jié)針對面向?qū)ο蠓治雠c設(shè)計方法,重點介紹UML方法。采用一個例子對UML方法進行描述,最后介紹一個UML的CASE工具ROSE,在實驗指導書的幫助下學生要掌握ROSE的使用,并對一個簡單問題進行建模,以掌握面向?qū)ο蟮母舅枷牒蚒ML的主要方法。,面向?qū)ο蟮姆治雠c設(shè)計(OOAOOD)方法的開展(自學),