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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

SoftwareEngineering

軟件工程蒲蔚CollegeofComputerScienceandSoftwareEngineering四川大學(xué)計(jì)算機(jī)(軟件學(xué)院)

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

軟件的重要性和軟件危機(jī)

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

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

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論