第1講 軟件工程課程介紹_第1頁
第1講 軟件工程課程介紹_第2頁
第1講 軟件工程課程介紹_第3頁
第1講 軟件工程課程介紹_第4頁
第1講 軟件工程課程介紹_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

SoftwareEngineering

軟件工程蒲蔚CollegeofComputerScienceandSoftwareEngineering四川大學計算機(軟件學院)

E-Mail:puwei@CellPhone1講軟件工程課程介紹主要內(nèi)容1.1課程學習目的1.2第一個事實:軟件的重要性和軟件危機催生了軟件工程1.2.1軟件1.2.2軟件危機1.2.3軟件工程1.3再談課程目標1.4課程內(nèi)容與課程安排1.5課程信息1.6補充1.7習題與思考題WhydoIneedtolearnsoftwareengineering?1.1課程學習目的development=Programming?場景:做一個軟件(developsoftware)需求分析人員過程技術設計人員架構師項目經(jīng)理測試人員高管市場人員人……開發(fā),需求分析,設計……項目管理測試,單元測試、集成測試、系統(tǒng)測試……過程管理配置管理……質量管理怎么做開發(fā)(/建模),怎么做需求分析,怎么做設計……怎么實施項目管理怎么做測試,單元測試、集成測試、系統(tǒng)測試……怎么進行配置管理……怎么進行質量管理質量保證人員配置管理人員1.1課程學習目的Development≠programming.Onepurposeofthiscourseistoconvinceyouthatallofthecontentofthiscoursearetrue,andonceyouareconvinced,giveyouabasicknowledgesothatyoucanapplyityourself.Inanotherword,youwilllearnhowtothinkandtosolveproblem.

軟件的重要性和軟件危機

催生了軟件工程1.2“軟件工程”告知的第一個事實1.2.1軟件計算機軟件計算機軟件=程序+數(shù)據(jù)結構+文檔1.2.1軟件計算機系統(tǒng)適當?shù)亟M織在一起的一系列系統(tǒng)元素的集合,這些系統(tǒng)元素互相配合、相互協(xié)作,通過對信息的處理而完成預先定義的目標。計算機系統(tǒng)元素計算機軟件:程序+數(shù)據(jù)結構+文檔計算機硬件:提供計算能力的設備+外設人員:硬、軟件的用戶和操作者數(shù)據(jù)庫:大型的有組織的數(shù)據(jù)集合文檔:系統(tǒng)的描述信息過程:一系列的步驟1.2.1軟件計算機軟件的雙重作用作為一個產(chǎn)品,軟件扮演著信息交換的角色。作為產(chǎn)品生產(chǎn)的載體,軟件提供了計算機控制(操作系統(tǒng))、信息通信(網(wǎng)絡)以及應用程序開發(fā)和控制(軟件工具和環(huán)境)的基礎平臺。1.2.1軟件計算機軟件的特征軟件是設計開發(fā)的,而不是傳統(tǒng)意義上生產(chǎn)制造的。軟件不會“磨損”。雖然整個工業(yè)向著基于構件的構造模式發(fā)展,然而大多數(shù)軟件仍是根據(jù)實際的顧客需求定制的。1.2.1軟件軟件應用領域P5以及應全部或部分具備的屬性系統(tǒng)軟件應用軟件工程/科學軟件嵌入式軟件產(chǎn)品線軟件Web應用軟件(屬性)人工智能軟件開放計算網(wǎng)絡資源開源軟件新的挑戰(zhàn):“開放計算”、“網(wǎng)絡資源”和“開源軟件”網(wǎng)絡密集性并發(fā)性無法預知的負載量性能數(shù)據(jù)驅動可用性內(nèi)容敏感性持續(xù)演化即時性美觀性安全性1.2.2軟件危機軟件生產(chǎn)發(fā)展程序設計時代(1946~1956)程序系統(tǒng)時代(1956~1968)軟件工程時代(1968至今):軟件工程的發(fā)展大致可以劃分為兩個階段60年代末~80年代初80年代初~現(xiàn)在狀況軟件系統(tǒng)的規(guī)模、復雜性以及在關鍵領域的廣泛應用,促進了軟件開發(fā)過程采納工程化的方法進行管理。“軟件工廠”的概念已經(jīng)提出。研究開發(fā)模型、支持工具、開發(fā)方法。軟件生產(chǎn)技術,特別是軟件復用技術和軟件生產(chǎn)管理的研究和實踐。成果瀑布模型、結構化語言(pascal等)、結構化方法、各種管理方法(如費用估算、文檔復審)。提出了具有廣泛應用前景的面向對象方法和相關的編程語言。事件前期主要研究系統(tǒng)實現(xiàn)技術;后期則開始強調(diào)管理和軟件質量。軟件過程改進。在工業(yè)實踐中建立起一種量化的評估程序,判定軟件組織成熟的程度。關注的焦點軟件項目軟件過程1.2.2軟件危機軟件危機軟件危機是指在計算機軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題。1.2.2軟件危機軟件危機的具體表現(xiàn)對開發(fā)成本和開發(fā)進度難以進行準確地估計用戶對軟件產(chǎn)品不滿意軟件產(chǎn)品的質量難以保證軟件產(chǎn)品維護非常困難軟件產(chǎn)品沒有適當?shù)奈臋n資料軟件成本在計算機系統(tǒng)總成本中所占的比例逐年上升軟件開發(fā)效率的提高遠遠跟不上計算機應用快速普及的趨勢下一頁用戶對軟件產(chǎn)品不滿意返回1.2.2軟件危機軟件危機的成因硬件生產(chǎn)效率的快速提高軟件產(chǎn)品的規(guī)模越來越大軟件產(chǎn)品開發(fā)的復雜度越來越高用戶需求不明確軟件開發(fā)技術落后軟件產(chǎn)品生產(chǎn)效率較低整個軟件開發(fā)過程缺乏正確的理論指導1.2.3軟件工程克服軟件危機人們面臨的不光是技術問題,更重要的是管理問題。管理不善必然導致失敗。要提高軟件開發(fā)效率,提高軟件產(chǎn)品質量,必須采用工程化的開發(fā)方法與工業(yè)化的生產(chǎn)技術。在技術上,應該采用基于重用的軟件生產(chǎn)技術;在管理上,應該采用多維的工程管理模式。1.2.3軟件工程軟件工程概括地說,軟件工程是指導計算機軟件開發(fā)和維護的工程學科。采用工程的概念、原理、技術和方法來開發(fā)與維護軟件,把經(jīng)過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來,以經(jīng)濟地開發(fā)出高質量的軟件并有效地維護它,這就是軟件工程。1.2.3軟件工程軟件工程層次圖工具質量關注點過程方法圖軟件工程層次圖1.2.3軟件工程軟件工程:過程開發(fā)要遵循一系列的可預測的步驟,也要靈活。軟件工程過程方法:過程框架過程模式指導過程的原則1.2.3軟件工程軟件工程:方法實踐的精髓:要構建能夠適應現(xiàn)代挑戰(zhàn)的軟件產(chǎn)品,需要在軟件工程實踐的框架之下,遵循如下的原則理解問題(溝通和分析)計劃解決方案(建模和軟件設計)實施計劃(代碼生成)檢查結果的正確性(測試與質量保證)一般原則:指導實踐的原則:指導每個框架活動的原則溝通原則:策劃原則:建模原則:構造原則:部署原則:原則的層次體現(xiàn)具體的建模方法(技術)和建模表示法1.2.3軟件工程軟件工程:方法需求模型到設計模型的轉化:需求模型的每個元素都提供了創(chuàng)建4種設計模型(元素)所必須的信息,這4種設計模型(元素)是完整的設計規(guī)格說明所必須的。軟件設計過程的信息流如圖所示,由基于場景的(需求模型)元素、基于類的元素、面向流的元素和行為元素所表示的需求模型是設計任務的輸入。使用軟件工程學科提供的設計方法和設計表示法,將得到數(shù)據(jù)或類的設計、體系接口設計、接口設計和構件設計。需求模型到設計模型的轉化基于場景的元素用例文本用例圖活動圖基于類的元素類圖分析包CRC模型協(xié)作圖面向流的元素數(shù)據(jù)流圖控制流圖處理敘述行為元素狀態(tài)圖順序圖構件級設計接口設計體系結構設計數(shù)據(jù)/類設計需求模型設計模型1.2.3軟件工程軟件工程層次圖工具質量關注點過程方法圖軟件工程層次圖1.3再談課程目標希望:正確理解軟件開發(fā)的真實情況,不要“神話”不要理解不透的概念,要技術應用的執(zhí)行力(以此去促進概念的理解)會依據(jù)項目團隊和要開發(fā)的產(chǎn)品特點,遵循過程實踐的指導原則選用調(diào)整過程模型。建模技術應用,比方說,會用UML進行用例建模、體系結構建模等等。做做游戲:場景1:假設你是一個項目經(jīng)理,想在你接到一個軟件開發(fā)項目,你首先需要思考的問題是什么?你如何在《軟件工程》中尋求解決的靈感?場景2:假設你拿到了書面的對用戶需求的文字陳述,你如何建立需求模型?你如何在《軟件工程》中尋求解決的技術?1.4課程內(nèi)容和課程安排序名稱時間安排第1講軟件工程課程介紹4課時;9月2日;第1周第2講軟件過程4課時;9月9日;第2周第3講面向對象概念和UML知識點講解4課時;9月16日;第3周第4講面向數(shù)據(jù)流的結構化分析和設計知識點講解4課時;9月23日,第4周第5講需求工程8課時;9月30日,10月7日;第5周,第6周4課時,10月14日,按大綱要求:Lab1UMLmodelingofsystem;第7周4課時,10月21日,按大綱要求:期中測驗;第8周第6講設計工程8課時;10月28日,11月4日;第9周,第10周4課時,11月11日,按大綱要求:Lab2GUIDesign;第11周第7講評審和測試4課時,11月18日,第12周4課時,11月25日,按大綱要求:Lab3SoftwareTesting;第13周第8講Web介紹4課時,12月2日,第14周4課時,12月9日,按大綱要求:Lab4Webapplication;第15周4課時,12月16日,按大綱要求:FinalCourseReview,第16周下一節(jié)1.4.1第1講:軟件工程課程介紹Introduction:Softwareengineeringanditsplaceasanengineeringdiscipline.Introducethesoftwareengineeringandthebackground,thereferredknowledge.Introducethedevelopmentprocessesofthesoftwareindustry,analyzethereasonstobringoutthesoftwarecrisis,andintroducethebasicconceptsofsoftwareengineeringandthepurposetouseit.TextBook:Chap.14課時;9月2日;第1周返回1.4.2第2講:軟件過程ProcessModels:Introducethethreelayersofsoftwareengineering:Process,MethodsandTools,introducetheCommonProcessFrameworkandthetasksofeachphase,analyzethesignificationandcharacteristicsoftheprocessmodels,includingtheLinearSequentialModel、PrototypingModel、RADModel、IncrementalModel、SpiralModel、AgileModel,etc.TextBook:Chap.2,34課時;9月9日;第2周返回1.4.3第3講:面向對象概念和UML知識點講解從本講開始,我們進入“建模”內(nèi)容的講解。講解從建模的3W+1H開始.而本講立足“面向對象開發(fā)的觀點”,來了解“一門面向對象建模技術”的建模語言:UML(UnifiedModelingLanguage,統(tǒng)一建模語言)TextBook:Part24課時;9月16日;第3周返回1.4.4第4講:面向數(shù)據(jù)流的結構化分析和設計知識點講解本講基于“結構化開發(fā)的觀點”,介紹面向數(shù)據(jù)流的建模方法和表示法。TextBook:Part24課時;9月23日,第4周返回1.4.5第5講:需求工程RequirementsEngineering:Introducethemethodsanddisciplinestoacquireandanalyzetherequirements.Presentstherequirementsengineeringtasks:Inception,Elicitation,Elaboration,Negotiation,Specification,Validationandrequirementmanagement.Moreover,weprovidetheprocesstoinitiatetherequirementsengineering.TextBook:Chap.5BuildingtheAnalysisModeling:IntroducethemethodsofStructuralAnalysisModeling,aswellasthedesignmethodsanddisciplinesofthedatamodeling,suchasERD、DFD,etc;IntroducetheconceptsofDataDictionary,themethodstodoBehavioralModeling.TextBook:Chap.6,78課時;9月30日,10月7日;第5周,第6周返回1.4.6(1)第6講:設計工程DesignConceptsandPrinciplesIntroducetheconceptsofthedesignprocess,suchasDataDesign、ArchitecturalDesign、InterfaceDesign、Component-LevelDesign,analyzetherelationshipbetweenthesoftwaredesignanditsquality,thenintroducethePrinciplesofAbstraction、Refinement、Modularity、Cohesion、Couplinginthedesignprocess.TextBook:Chap.8ArchitecturalDesign:IntroducetheSoftwareArchitecture,analyzetheDataDesignintheArchitecturalDesign,introducethevarioussystemstructures,aswellasthemethodstomaptheanalysismodeltosystemstructures.TextBook:Chap.9Component-levelDesign:Introducethecomponentfromobject-oriented,conventionalandprocess-relatedviews;Discusshowtodesigntheclass-basedcomponents,conductthecomponent-leveldesignanddesigntheconventionalcomponents.TextBook:Chap.10(Chap.10大綱未要求)UserInterfaceDesign:IntroducetheprocessandPrinciplesoftheuserinterfacedesign;analyzetheimportantproblemsinthisdesign,aswellasthedesignguideandestimationmethods.TextBook:Chap.118課時;10月28日,11月4日;第9周,第10周1.4.6(2)第6講:設計工程學習金字塔聽講閱讀視聽演示討論實踐教授給別人主動學習被動學習學習內(nèi)容平均留存率5%10%20%30%50%75%90%1.4.6(3)第6講:設計工程所以,做出如下安排:將23種設計模式分配給23位同學們來講解,預計6課時,第11周,第12周。模式名講解人模式名講解人創(chuàng)建型模式FactoryMethodPatternAbstractFactoryPatternBuilderPatternPrototypePatternSingletonPattern結構型模式AdapterPatternDecoratorPatternBridgePatternFacadePatternCompositePatternFlyweightPatternProxyPattern行為型模式ChainofResponsibilityPatternStatePatternCommandPatternStrategyPatternInterpreterPatternTemplateMethodPatternMediatorPatternVisitorPatternMementoPatternIteratorPatternObserverPattern返回1.4.7第7講:評審和測試SoftwareTestingStrategiesandTechniquesIntroducetheimportance,thepurposeandtheprinciplesofsoftwaretesting,thefactorwhichaffectsthetestability,thevariouskindsoftesting,andthewaystodesignthetestingcase.Introducethedifferencebetweenverificationandvalidation,thesoftwaretestingstructure,thewaystoperformthetesting,andtheintegrationtesting.IntroducethestrategiesofAlpha、Beta、System、Configuration、Compatibility、ForeignLanguagetesting.TextBook:Chap.17,18,194課時,11月18日,第12周返回1.4.8第8講:Web介紹IntroductiontoWebEngineering:Introducethewebengineeringanditslayers:Process,methods,toolsandtechnology;Discusshowtoinitiate,analysis,designandtestforthewebapplications.TextBook:Chap.13,204課時,12月2日,第14周返回1.5課程信息課程名稱:軟件工程導論(IntroductiontoSoftwareEngineering)課程性質:專業(yè)必修課程理論:16周,48學時實驗:16學時,4個實驗學分:4開設學期:大學二年級秋季學期開設對象:本科先行課程:C語言程序設計,面向對象程序設計導論工具和環(huán)境:Project2007,RationalRose/MSVisio2003,MSOffice2003,VC++/Eclipses,Junit/Boundscheck,CVS,etc.教材:《SoftwareEngineering--APractitioner‘sApproach》

(《軟件工程——實踐者的研究方法(第7版)》)評分規(guī)則:Midterm(10%),Finalexam(40%),ClassParticipation(10%),Assignments(20%),Labs(20%)1.6補充關于“意外效應法則”1.6補充關于“通用軟件工程過

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論