南京師范大學(xué)軟件工程方法與實(shí)踐_第1頁
南京師范大學(xué)軟件工程方法與實(shí)踐_第2頁
南京師范大學(xué)軟件工程方法與實(shí)踐_第3頁
南京師范大學(xué)軟件工程方法與實(shí)踐_第4頁
南京師范大學(xué)軟件工程方法與實(shí)踐_第5頁
已閱讀5頁,還剩84頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

軟件工程-方法與實(shí)踐竇萬峰計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院南京師范大學(xué)2009年8月第一部分:軟件工程與過程什么是軟件工程?什么是工程化思想?什么是軟件過程?有哪些過程模型?如何建立過程模型?什么是統(tǒng)一過程?什么是敏捷過程?有哪些模型?什么是軟件工程實(shí)踐?注:本部分的實(shí)驗(yàn)課參照實(shí)驗(yàn)教材實(shí)驗(yàn)1和實(shí)驗(yàn)2進(jìn)行第1章概述(主要內(nèi)容)軟件工程的基本概念軟件工程化思想軟件工程兩大范型軟件工程思想與基本原理軟件工程基本活動(dòng)軟件工程定義B.W.Boehm的定義:運(yùn)用現(xiàn)代科學(xué)技術(shù)知識(shí)來設(shè)計(jì)并構(gòu)造計(jì)算機(jī)程序及為開發(fā)、運(yùn)行和維護(hù)這些程序所必須的相關(guān)文件資料。FritzBauer的定義:軟件工程是為了經(jīng)濟(jì)地獲得能夠在實(shí)際機(jī)器上有效運(yùn)行的可靠軟件而建立和使用的一系列完善的工程化原則。1983年美國《IEEE軟件工程標(biāo)準(zhǔn)術(shù)語》的定義為:軟件工程是開發(fā)、運(yùn)行、維護(hù)和修復(fù)軟件的系統(tǒng)方法,其中“軟件”的定義為:計(jì)算機(jī)程序、方法、規(guī)則、相關(guān)的文檔資料以及在計(jì)事機(jī)上運(yùn)行時(shí)所必需的數(shù)據(jù)。什么是軟件?三要素:程序文檔數(shù)據(jù)特性:復(fù)雜性一致性不會(huì)磨損和“老化”易變性移植性成本高軟件演化第一代:程序設(shè)計(jì)階段。1946年到60年代初,其主要特征是程序生產(chǎn)方式為個(gè)體手工方式。第二代:程序系統(tǒng)階段。60年代初到70年代初,軟件工程學(xué)科誕生。軟件的開發(fā)方式由個(gè)體生產(chǎn)發(fā)展到了小組生產(chǎn),軟件的開發(fā)與維護(hù)費(fèi)用以驚人的速度增加,維護(hù)困難,導(dǎo)致軟件危機(jī)。第三代:傳統(tǒng)軟件工程階段。20世紀(jì)70年代中期至80年代中期,軟件工程師把工程化的思想加入到軟件的開發(fā)過程中,用工程化的原則、方法和標(biāo)準(zhǔn)來開發(fā)和維護(hù)軟件。第四代:面向?qū)ο箅A段。20世紀(jì)80年代中期至今,面向?qū)ο蟮姆椒▽W(xué)受到了人們的重視,促進(jìn)了軟件業(yè)的飛速發(fā)展,軟件產(chǎn)業(yè)在世界經(jīng)濟(jì)中已經(jīng)占有舉足輕重的地位。軟件危機(jī)兩個(gè)方面的問題:如何開發(fā)如何維護(hù)表現(xiàn):軟件的規(guī)模大復(fù)雜度增加軟件的需求量增大價(jià)格昂貴供需差增大開發(fā)速度慢質(zhì)量難以保證軟件危機(jī)解決途徑重視需求分析,明確與確切表達(dá)需求重視與客戶溝通與交流統(tǒng)一的、公認(rèn)的方法論和規(guī)范指導(dǎo)重視設(shè)計(jì)和實(shí)現(xiàn)過程的資料充分的檢測(cè)工作軟件工程化思想把軟件看作是一個(gè)工程產(chǎn)品兩個(gè)方面:軟件開發(fā)技術(shù)軟件工程管理原因:缺乏軟件過程控制能力能力成熟模型(CapabilityMaturityModel)軟件工程兩大范型傳統(tǒng)的結(jié)構(gòu)化范型特征:結(jié)構(gòu)化技術(shù)要么面向行為,要么面向數(shù)據(jù)構(gòu)成結(jié)構(gòu)化范型的技術(shù)包括:結(jié)構(gòu)化分析結(jié)構(gòu)化設(shè)計(jì)結(jié)構(gòu)化編程結(jié)構(gòu)化測(cè)試結(jié)構(gòu)化維護(hù)軟件工程兩大大范型面向?qū)ο蠓缎托吞卣鳎簩?duì)象象視作一個(gè)融融合了數(shù)據(jù)及及在其上操作作的行為的、、統(tǒng)一的軟件件組件。技術(shù)包括:面向?qū)ο蠓治鑫雒嫦驅(qū)ο笤O(shè)計(jì)計(jì)面向?qū)ο缶幊坛堂嫦驅(qū)ο鬁y(cè)試試面向?qū)ο缶S護(hù)護(hù)優(yōu)勢(shì):對(duì)象的概念符符合業(yè)務(wù)或領(lǐng)領(lǐng)域的客觀實(shí)實(shí)際維護(hù)容易軟件工程基本本原理分階段的軟件件生存周期堅(jiān)持進(jìn)行階段段評(píng)審實(shí)行嚴(yán)格的產(chǎn)產(chǎn)品控制采用現(xiàn)代程序序設(shè)計(jì)技術(shù)明確職責(zé)開發(fā)小組的人人員應(yīng)少而精精不斷改進(jìn)開發(fā)發(fā)過程軟件工程思想想推遲實(shí)現(xiàn)的觀觀點(diǎn)逐步求精的觀觀點(diǎn)分解與抽象的的觀點(diǎn)信息隱蔽觀點(diǎn)點(diǎn)質(zhì)量保證觀點(diǎn)點(diǎn)軟件工程基本本活動(dòng)開發(fā)活動(dòng)軟件生命周期期模型項(xiàng)目管理活動(dòng)動(dòng)項(xiàng)目的范圍((要做的內(nèi)容容)進(jìn)度(要花費(fèi)費(fèi)的時(shí)間)成本(要耗費(fèi)費(fèi)的資源)過程改進(jìn)活動(dòng)動(dòng)關(guān)注質(zhì)量軟件開發(fā)的最最佳實(shí)踐過程定義和改改進(jìn)小結(jié)軟件工程的是是主旨以工程程化的思想進(jìn)進(jìn)行軟件開發(fā)發(fā),以生產(chǎn)高高質(zhì)量和高效效率的軟件。。軟件工程化思思想的核心是是,把軟件看看作是一個(gè)工工程產(chǎn)品。軟件工程方法法學(xué)分別是傳傳統(tǒng)結(jié)構(gòu)化范范型和面向?qū)?duì)象范型。軟件工程活動(dòng)動(dòng)包括開發(fā)活活動(dòng)、管理活活動(dòng)和過程改改進(jìn)活動(dòng)。第2章軟件件過程(內(nèi)容容提要)什么是軟件過過程?什么軟件生命命周期?能力成熟度模模型敏捷過程軟件過程實(shí)踐踐軟件過程定義:軟件過程是為為了開發(fā)出軟軟件產(chǎn)品,或或者是為了完完成軟件工程程項(xiàng)目而需要要完成的有關(guān)關(guān)軟件工程的的活動(dòng)通常使用生命命周期模型簡簡潔地描述軟軟件過程層次:軟件工程是一一門建立在以以質(zhì)量焦點(diǎn)為為基礎(chǔ),分過過程、方法和和工具三個(gè)研研究層次的綜綜合技術(shù)過程方法與工工具工具

方法

過程

質(zhì)量焦點(diǎn)軟件過程框架架定義:框架是實(shí)現(xiàn)整整個(gè)軟件開發(fā)發(fā)活動(dòng)的基礎(chǔ)礎(chǔ),并且那些些與過程有關(guān)關(guān)的角色、職職責(zé)的定義以以及實(shí)現(xiàn)也都都離不開框架架的支持兩個(gè)方面組織及管理框框架技術(shù)及工具框框架軟件過程模型型把軟件生命周周期中各項(xiàng)開開發(fā)活動(dòng)的流流程用一個(gè)合合理的框架——開發(fā)模型來來規(guī)范描述,,這就是軟件件過程模型。。軟件生命周期期模型軟件生命周期期劃分為定義、、開發(fā)和運(yùn)行行三個(gè)階段細(xì)分為六個(gè)階階段:問題的定義及及規(guī)劃需求分析軟件設(shè)計(jì)程序編碼軟件測(cè)試運(yùn)行維護(hù)能力成熟度模模型集成CMM(CapabilityMaturityModel)是是指“能力成成熟度模型””CMM是由美美國卡內(nèi)基--梅隆大學(xué)的的軟件工程研研究所(SEI)開發(fā)的的軟件成熟度度模型。思想:管理軟軟件過程的方方法不當(dāng)引起起的問題,導(dǎo)導(dǎo)致新軟件技技術(shù)的運(yùn)用并并不會(huì)自動(dòng)提提高軟件的生生產(chǎn)率和質(zhì)量量。CMM為軟件件企業(yè)的過程程能力提供了了一個(gè)階梯式式的改進(jìn)框架架,它基于過過去所有軟件件工程過程改改進(jìn)的成果,,吸取了以往往軟件工程的的經(jīng)驗(yàn)教訓(xùn),,提供了一個(gè)個(gè)基于過程改改進(jìn)的框架。。能力成熟度模模型集成(CMMI--CapabilityMaturityModelIntegration)是是CMM模型型的最新版本本。CMM概述為企業(yè)的發(fā)展展規(guī)定過程成成熟級(jí)別,分分為5級(jí)(Version1.0):初始級(jí)(Initial):一般企企業(yè)皆具有可重復(fù)級(jí)(Repeatable)):成功經(jīng)驗(yàn)驗(yàn)可以重復(fù)定義級(jí)(Defined):一套完完整的企業(yè)過過程,人員自自覺遵守(培培訓(xùn))管理級(jí)(Managed):過程&產(chǎn)品可度量量和控制優(yōu)化級(jí)(Optimizing)::過程持續(xù)改改進(jìn)從無序到有序序、從特殊到到一般、從定定性管理到定定量管理、最最終達(dá)到動(dòng)態(tài)態(tài)優(yōu)化CMM概述((續(xù))2.Repeatable1.Initial3.Defined4.ManagedDisciplinedProcessStandard,ConsistentProcessPredictableProcessContinuouslyImprovingProcessUnpredictableandpoorlycontrolledCanrepeatpreviouslymasteredtasksProcesscharacterized,fairlywellunderstoodProcessmeasuredandcontrolledFocusonprocessimprovement5.OptimizingProjectManagementIntegratedEngineeringProcessProductandProcessQualityManagingChangeDisorderDisciplinedPredictableImmatureMatureCMM的概念念模型關(guān)鍵過程域KPA:代表表一組相關(guān)的的工作(活動(dòng)動(dòng))。每個(gè)KPA都有一一個(gè)確定的目目標(biāo),完成該該目標(biāo)即認(rèn)為為過程能力的的提高。一般特性CF(CommonFeatures):進(jìn)一一步細(xì)分KPA的工作。。五個(gè)特性::承諾(commitment)準(zhǔn)備(ability))執(zhí)行(activity)度量分析(measurement&analysis)驗(yàn)證(verifyingimplementation)CMM的五個(gè)個(gè)級(jí)別Level1:初始級(jí)級(jí)過程無序且不不可見OutInCMM的五個(gè)個(gè)級(jí)別Level2:可重復(fù)復(fù)級(jí)Milestone可見見,按計(jì)劃開開發(fā)CMM的五個(gè)個(gè)級(jí)別Level2的6個(gè)KPA:側(cè)重重于管理需求管理(RequirementsManagement)軟件項(xiàng)目計(jì)劃劃(SoftwareProjectPlanning))軟件項(xiàng)目的跟跟蹤和監(jiān)控((SoftwareProjectTackingandOversight)軟件子合同管管理(SoftwareSubcontractManagement)軟件質(zhì)量保證證(SoftwareQualityAssurance)軟件配置管理理(SoftwareConfigurationManagement)CMM的五個(gè)個(gè)級(jí)別Level3:定義級(jí)級(jí)每個(gè)階段的內(nèi)內(nèi)部活動(dòng)可見見標(biāo)準(zhǔn)過程和項(xiàng)項(xiàng)目定義過程程裁剪CMM的五個(gè)個(gè)級(jí)別Level3的7個(gè)KPA:工程程過程+企業(yè)業(yè)理念機(jī)構(gòu)過程關(guān)注注(OrganizationProcessFocus)機(jī)構(gòu)過程定義義(OrganizationProcessDefinition)培訓(xùn)計(jì)劃(TrainingProgram)集成軟件管理理(IntegratedSoftwareManagement)-過程程裁剪和定義義軟件產(chǎn)品工程程(SoftwareProductEngineering))-過程執(zhí)行行組間協(xié)調(diào)(IntergroupCoordination)對(duì)等審查(PeerReviews)CMM的五個(gè)個(gè)級(jí)別Level4管理級(jí)級(jí)過程可度量,,預(yù)測(cè)值與結(jié)結(jié)果之間的偏偏差可控CMM的五個(gè)個(gè)級(jí)別Level4的2個(gè)KPA:預(yù)測(cè)測(cè)+量化管理理定量過程管理理(QuantitativeProcessManagement)-過過程度量軟件質(zhì)量管理理(SoftwareQualityManagement)--產(chǎn)品度量CMM的五個(gè)個(gè)級(jí)別Level5優(yōu)化級(jí)級(jí)過程動(dòng)態(tài)調(diào)整整、新技術(shù)的的采用CMM的五個(gè)個(gè)級(jí)別Level5的3個(gè)KPA:動(dòng)態(tài)態(tài)優(yōu)化缺陷預(yù)防(DefectPrevention)技術(shù)改變管理理(TechnologyChangeManagement))過程改變管理理(ProcessChangeManagement)能力成熟度模模型集成CMMI--CapabilityMaturityModelIntegration是CMM模型的最最新版本。CMMI有兩兩種表示方法法:和軟件CMM一樣的階段段式表現(xiàn)方法法連續(xù)式的表現(xiàn)現(xiàn)方法過程管理項(xiàng)目管理工程支持CMMI的的目標(biāo)標(biāo)是質(zhì)質(zhì)量、、時(shí)間間表和和最低低的成成本敏捷過過程敏捷不不是一一個(gè)過過程,,是一一類過過程的的統(tǒng)稱稱。敏捷方方法的的兩大大主要要特征征:對(duì)“適適應(yīng)性性”的的強(qiáng)調(diào)調(diào)對(duì)“人人”的的關(guān)注注做法::引入迭迭代式式的開開發(fā)手手段將整個(gè)個(gè)軟件件生命命周期期分解解為若若干個(gè)個(gè)小的的迭代代周期期獲取切切實(shí)有有效的的客戶戶反饋饋提出12條條基本本原則則極限編編程極限編編程((eXtremeProgramming,,XP)是是一種種軟件件工程程方法法學(xué),,是敏敏捷開開發(fā)中中最富富有成成效的的方法法學(xué)之之一由KentBeck在1996年年提出出具有強(qiáng)強(qiáng)溝通通、簡簡化設(shè)設(shè)計(jì)、、迅速速反饋饋等特特點(diǎn)適合于于規(guī)模模小、、進(jìn)度度緊、、需求求不穩(wěn)穩(wěn)定、、開發(fā)發(fā)小項(xiàng)項(xiàng)目的的小團(tuán)團(tuán)隊(duì)。。極限編編程特點(diǎn)::XP模模型是是“輕輕量型型”或或“靈靈活””的軟軟件過過程模模型與面向向?qū)ο笙笳Z言言結(jié)合合的開開發(fā)方方案“專家家協(xié)作作”的的開發(fā)發(fā)方式式,解解決難難點(diǎn)問問題核心有有四個(gè)個(gè)要點(diǎn)點(diǎn):交流簡單反饋勇氣結(jié)對(duì)編編程結(jié)對(duì)編編程(Pair-Programming)是是XP中中非常常重要要的實(shí)實(shí)踐之之一。。定義::兩個(gè)個(gè)人坐坐在同同一臺(tái)臺(tái)計(jì)算算機(jī)前前面,,使用用相同同的鍵鍵盤和和鼠標(biāo)標(biāo)來開開發(fā)同同樣的的一個(gè)個(gè)模塊塊,一一個(gè)稱稱為駕駕駛者者(Driver),負(fù)負(fù)責(zé)代代碼的的鍵入入,另另外一一個(gè)稱稱為領(lǐng)領(lǐng)航員員(Navigator),,負(fù)責(zé)責(zé)監(jiān)看看與決決策,,包括括低級(jí)級(jí)錯(cuò)誤誤和方方向性性的錯(cuò)錯(cuò)誤。。當(dāng)出出現(xiàn)的的一個(gè)個(gè)問題題對(duì)其其中一一個(gè)人人來說說,難難以解解決,,而恰恰好是是另外外一個(gè)個(gè)人的的強(qiáng)項(xiàng)項(xiàng)的時(shí)時(shí)候,,那么么角色色就會(huì)會(huì)發(fā)生生轉(zhuǎn)換換。結(jié)對(duì)編編程優(yōu)勢(shì)::可以減減少風(fēng)風(fēng)險(xiǎn)可以使使團(tuán)隊(duì)隊(duì)生產(chǎn)產(chǎn)效率率更高高是知識(shí)識(shí)傳播播的最最好途途徑可以打打造出出最佳佳的合合作團(tuán)團(tuán)隊(duì)。??梢陨筛玫牡拇a碼三個(gè)方方面的的應(yīng)用用:教育學(xué)學(xué)結(jié)對(duì)對(duì)學(xué)習(xí)習(xí)工業(yè)界界結(jié)對(duì)對(duì)開發(fā)發(fā)與編編程分布式式結(jié)對(duì)對(duì)編程程環(huán)境境結(jié)對(duì)編編程研研究教育學(xué)學(xué)研究究結(jié)對(duì)編編程學(xué)學(xué)習(xí)效效果研研究結(jié)對(duì)雙雙方的的相容容性研研究結(jié)對(duì)編編程過過程研研究軟件工業(yè)界界結(jié)對(duì)編程實(shí)實(shí)踐方式社會(huì)動(dòng)力學(xué)學(xué)研究個(gè)人編程能能力的增強(qiáng)強(qiáng)分布式結(jié)對(duì)對(duì)編程結(jié)對(duì)編程開開發(fā)環(huán)境研研究開發(fā)結(jié)對(duì)編編程工具的的需求適合開展分分布式結(jié)對(duì)對(duì)編程的工工具研究自適應(yīng)軟件件開發(fā)自適應(yīng)軟件件開發(fā)(AdaptiveSoftwareDevelopment)由JimHighsmith提提出著眼于人員員協(xié)作和團(tuán)團(tuán)隊(duì)自我組組織,類似似于收集人人們創(chuàng)意的的容器生命周期三三個(gè)階段包包括:思考:啟動(dòng)動(dòng)項(xiàng)目并完完成自適應(yīng)應(yīng)循環(huán)計(jì)劃劃協(xié)作:溝通通與信任學(xué)習(xí):改進(jìn)進(jìn)真正的理理解水平,,通過焦點(diǎn)點(diǎn)組、正式式技術(shù)評(píng)審審和事后剖剖析方式進(jìn)進(jìn)行學(xué)習(xí)動(dòng)態(tài)系統(tǒng)開開發(fā)動(dòng)態(tài)系統(tǒng)開開發(fā)(DynamicSystemDevelopmentMethod))是一種使使用增量原原型開發(fā)模模式完全滿滿足對(duì)時(shí)間間約束的系系統(tǒng)構(gòu)建和和維護(hù)的敏敏捷軟件開開發(fā)方法。。借用Pareto(佩瑞多)原則:即即如果交付付整個(gè)應(yīng)用用系統(tǒng)需用用100%時(shí)間,那那么80%的應(yīng)用系系統(tǒng)可以用用20%的的時(shí)間交付付建議使用迭迭代軟件過過程動(dòng)態(tài)系統(tǒng)開開發(fā)生命周周期的敏捷捷過程模型型:可行性研究究業(yè)務(wù)研究功能模型迭迭代設(shè)計(jì)和構(gòu)建建迭代實(shí)現(xiàn)特征驅(qū)動(dòng)開開發(fā)特征驅(qū)動(dòng)開開發(fā)(Feature-Drivendevelopment)把軟件件開發(fā)項(xiàng)目目作為一個(gè)個(gè)系統(tǒng),即即生產(chǎn)軟件件的系統(tǒng)定義六種關(guān)關(guān)鍵項(xiàng)目角角色:項(xiàng)目經(jīng)理,負(fù)責(zé)報(bào)告告進(jìn)度情況況、管理預(yù)預(yù)算、籌措措人員,以以及管理設(shè)設(shè)備、辦公公場地和資資源等主設(shè)計(jì)師,負(fù)責(zé)系統(tǒng)統(tǒng)的整體設(shè)設(shè)計(jì)開發(fā)經(jīng)理,負(fù)責(zé)領(lǐng)導(dǎo)導(dǎo)日常開發(fā)發(fā)活動(dòng),解解決主程序序員們自己己無法解決決的日常的的資源沖突突問題。主程序員,參與高層層的需求分分析和設(shè)計(jì)計(jì)活動(dòng),領(lǐng)領(lǐng)導(dǎo)3-6人開發(fā)小小組負(fù)責(zé)新新軟件特征征的底層分分析、設(shè)計(jì)計(jì)和開發(fā)工工具。類的所有者者,是主程序序員領(lǐng)導(dǎo)的的開發(fā)小組組的成員,,對(duì)新軟件件系統(tǒng)所需需要的特征征進(jìn)行設(shè)計(jì)計(jì)、編碼、、測(cè)試和編編寫文檔。。領(lǐng)域?qū)<?,是客戶、、用戶、業(yè)業(yè)主、業(yè)務(wù)務(wù)分析專家家或者所有有這些的混混合。軟件工程實(shí)踐踐軟件工程實(shí)踐踐的精髓是理理解問題、計(jì)計(jì)劃解決方案案、實(shí)施計(jì)劃劃和檢查結(jié)果果的精確度等等方面通用的框架活活動(dòng)包括:溝通計(jì)劃建模部署普適性活動(dòng)軟件工程實(shí)踐踐核心原則:存在價(jià)值保持簡潔維護(hù)視圖生產(chǎn)者要讓消消費(fèi)者理解面向未來計(jì)劃復(fù)用認(rèn)真思考軟件工程實(shí)踐踐溝通實(shí)踐:包包括決定項(xiàng)目目涉及人的信信息和溝通需需求計(jì)劃實(shí)踐:是是軟件開發(fā)過過程的準(zhǔn)備階階段,包括定定義問題、可可行性分析、、制定計(jì)劃建立模型實(shí)踐踐:創(chuàng)建分析析模型和設(shè)計(jì)計(jì)模型小結(jié)軟件工程是一一種層次化技技術(shù),包括過過程、技術(shù)和和工具。軟件過程是為為了獲得高質(zhì)質(zhì)量軟件所需需要完成的一一系列任務(wù)的的框架,它規(guī)規(guī)定了完成各各項(xiàng)任務(wù)的工工作步驟。軟件過程框架架定義了若干干個(gè)小的框架架活動(dòng),為完完整的軟件開開發(fā)過程建立立了基礎(chǔ)。軟軟件過程框架架的通用過程程框架活動(dòng)包包括溝通、計(jì)計(jì)劃、建模、、構(gòu)建和部署署。能力成熟度模模型(CMM)是改進(jìn)軟軟件過程的有有效策略。它它的基本思想想是通過改進(jìn)進(jìn)對(duì)軟件過程程的管理來提提高軟件生產(chǎn)產(chǎn)率和軟件質(zhì)質(zhì)量。敏捷方法是一一組敏捷實(shí)踐踐技術(shù)的總稱稱,包括極限限編程、自適適應(yīng)軟件開發(fā)發(fā)、動(dòng)態(tài)系統(tǒng)統(tǒng)開發(fā)和特征征驅(qū)動(dòng)開發(fā)等等等。軟件工程實(shí)踐踐包括概念、、原則、方法法和在整個(gè)軟軟件開發(fā)過程程中所使用的的工具。軟件工程實(shí)踐踐的通用框架架活動(dòng)包括溝溝通實(shí)踐、計(jì)計(jì)劃實(shí)踐、建建模實(shí)踐、構(gòu)構(gòu)造實(shí)踐和部部署實(shí)踐。第3章軟軟件過程模型型(內(nèi)容提要要)瀑布模型增量模型螺旋模型協(xié)同開發(fā)模型型面向?qū)ο竽P托兔嫦蚍矫娴能涇浖_發(fā)瀑布模型瀑布模型提供供了軟件開發(fā)發(fā)的基本框架架。瀑布模型將軟軟件生命周期期劃分為軟件件計(jì)劃、需求求分析和定義義、軟件設(shè)計(jì)計(jì)、軟件實(shí)現(xiàn)現(xiàn)、軟件測(cè)試試、軟件運(yùn)行行和維護(hù)這6個(gè)階段,規(guī)規(guī)定了它們自自上而下、相相互銜接的固固定次序,如如同瀑布流水水逐級(jí)下落而而得名它是一個(gè)軟件件開發(fā)架構(gòu),,開發(fā)過程是是通過一系列列階段順序展展開的。每個(gè)階段都會(huì)會(huì)產(chǎn)生循環(huán)反反饋各個(gè)階段產(chǎn)生生的文檔是維維護(hù)軟件產(chǎn)品品時(shí)必不可少少的,沒有文文檔的軟件幾幾乎是不可能能維護(hù)的。瀑布模型示意意圖系統(tǒng)需求軟件需求需求分析設(shè)計(jì)編碼維護(hù)測(cè)試瀑布模型特點(diǎn)點(diǎn)順序性和依賴賴性推遲實(shí)現(xiàn)質(zhì)量保證的觀觀點(diǎn)是一種線性模模型強(qiáng)調(diào)文檔的作作用增量模型增量模型(IncrementalModel)也稱為為漸增模型,,是在項(xiàng)目的的開發(fā)過程中中以一系列的的增量方式開開發(fā)系統(tǒng)。軟件被作為一一系列的增量量構(gòu)件來設(shè)計(jì)計(jì)、實(shí)現(xiàn)、集集成和測(cè)試,,每一個(gè)構(gòu)件件是由多種相相互作用的模模塊所形成的的提供特定功功能的代碼片片段構(gòu)成.增量方式包括括:增量開發(fā):以以一定的時(shí)間間間隔開發(fā)部部分工作軟件件增量提交:以以一定的時(shí)間間間隔增量方方式向用戶提提交工作軟件件及相應(yīng)文檔檔增量模型融合合了線性順序序模型的基本本成份和原型型實(shí)現(xiàn)模型的的迭代特征。。增量模型分為漸增模型型和原型模型型漸增模型是瀑瀑布模型的變變種,有兩類類漸增模型::增量構(gòu)造模型型:它在瀑布布模型基礎(chǔ)上上,對(duì)一些階階段進(jìn)行整體體開發(fā),對(duì)另另一些階段進(jìn)進(jìn)行增量開發(fā)發(fā)。前面的開開發(fā)階段按瀑瀑布模型進(jìn)行行整體開發(fā),,后面的開發(fā)發(fā)階段按增量量方式開發(fā)。。演化提交模型型:它在瀑布布模型的基礎(chǔ)礎(chǔ)上,所有階階段都進(jìn)行增增量開發(fā),也也就是說不僅僅是增量開發(fā)發(fā),也是增量量提交。增量構(gòu)造模型型需求分析設(shè)計(jì)編碼1測(cè)試1測(cè)試2編碼2編碼3測(cè)試3螺旋模型螺旋模型(SpiralModel)是結(jié)合合了瀑布模型型和快速原型型模型的迭代代開發(fā)模型強(qiáng)調(diào)了其他模模型均忽略了了的風(fēng)險(xiǎn)分析析:風(fēng)險(xiǎn)識(shí)別風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)控制特別適合于大大型復(fù)雜的系系統(tǒng)每一個(gè)周期都都包括需求定定義、風(fēng)險(xiǎn)分分析、工程實(shí)實(shí)現(xiàn)和評(píng)審螺旋模型示意意圖螺旋模型活動(dòng)動(dòng)四個(gè)象限分別別代表了以下下活動(dòng):制定計(jì)劃:確確定軟件目標(biāo)標(biāo),選定實(shí)施施方案,確定定項(xiàng)目開發(fā)的的限制條件;;風(fēng)險(xiǎn)分析:分分析評(píng)估所選選方案,考慮慮如何識(shí)別和和消除風(fēng)險(xiǎn);;實(shí)施工程:實(shí)實(shí)施軟件開發(fā)發(fā)和驗(yàn)證;客戶評(píng)估:評(píng)評(píng)價(jià)開發(fā)工作作,提出修正正建議,制定定下一步計(jì)劃劃。螺旋模型是風(fēng)風(fēng)險(xiǎn)驅(qū)動(dòng)的模模型協(xié)同開發(fā)模型型協(xié)同開發(fā)模型型(CollaborativeDevelopmentModel,簡簡稱CDM)),有時(shí)也叫叫做協(xié)同工程程,可以表示示為一系列框框架活動(dòng)、軟軟件工程動(dòng)作作和任務(wù)以及及相應(yīng)的狀態(tài)態(tài)。在某一特定時(shí)時(shí)間,建?;罨顒?dòng)可能處于于任何一種狀狀態(tài)。協(xié)同開發(fā)模型型定義了一系系列事件,這這些事件將觸觸發(fā)軟件工程程活動(dòng)、動(dòng)作作或任務(wù)的狀狀態(tài)轉(zhuǎn)換。協(xié)同開發(fā)模型型空狀態(tài)開發(fā)狀態(tài)等待變更狀態(tài)評(píng)審狀態(tài)修改狀態(tài)建立基線狀態(tài)結(jié)束狀態(tài)建?;顒?dòng)面向?qū)ο筮^程程模型面向?qū)ο笫且灰环N的程序設(shè)設(shè)計(jì)方法,或或者說它是一一種程序設(shè)計(jì)計(jì)范型?;舅枷胧鞘故褂脤?duì)象,類類,繼承,封封裝,消息等等基本概念來來進(jìn)行程序設(shè)設(shè)計(jì)。面向?qū)ο蟮囊兀撼橄螅簭?qiáng)調(diào)實(shí)實(shí)體的本質(zhì)、、內(nèi)在的屬性性,忽略一些些無關(guān)緊要的的屬性。類實(shí)實(shí)現(xiàn)了對(duì)象的的數(shù)據(jù)(即狀狀態(tài))和行為為的抽象,是是對(duì)象的共性性的抽象。封裝性:指所所有軟件部件件內(nèi)部都有明明確的范圍以以及清楚的外外部邊界。共享性:面向?qū)ο蟮奶靥卣鳎簩?duì)象惟惟一性;分類類性;繼承性性;多態(tài)性((多形性)。。統(tǒng)一過程模型型統(tǒng)一過程(UnifiedProcess,,UP)是是風(fēng)險(xiǎn)驅(qū)動(dòng)的的、基于用例例技術(shù)的、以以架構(gòu)為中心心的、迭代的的、可配置的的軟件開發(fā)流流程。統(tǒng)一過程是以以用例驅(qū)動(dòng)的的,以架構(gòu)為為中心,迭代代和增量的過過程。統(tǒng)一過程是一一個(gè)軟件開發(fā)發(fā)過程,是一一個(gè)通用的過過程框架:初始細(xì)化構(gòu)造移交統(tǒng)一過程的四四個(gè)階段統(tǒng)一過程五個(gè)個(gè)核心工作流流需求(RequirementsCapture):致致力于開發(fā)正正確的系統(tǒng)分析(Analysis):更精確確地理解需求求設(shè)計(jì)(Design)::深入理解與與非功能性需需求和約束相相聯(lián)系的問題題實(shí)現(xiàn)(Implementation):實(shí)現(xiàn)現(xiàn)系統(tǒng)與集成成測(cè)試(Test):驗(yàn)證證實(shí)現(xiàn)的結(jié)構(gòu)構(gòu)核心工作流統(tǒng)一過程準(zhǔn)則則準(zhǔn)則迭代的開發(fā)軟軟件需求管理基于構(gòu)件的體體系結(jié)構(gòu)可視化軟件建建模驗(yàn)證軟件質(zhì)量量控制軟件的變變更統(tǒng)一過程主要要的優(yōu)點(diǎn)是提提高了團(tuán)隊(duì)生生產(chǎn)力構(gòu)件集成模型型構(gòu)件集成模型型是基于構(gòu)件件的開發(fā)模型型構(gòu)件集成模型型:整個(gè)系統(tǒng)模塊塊化復(fù)用構(gòu)件庫中中的軟件構(gòu)件件構(gòu)件集成模型型是演化形的的,開發(fā)過程程是迭代的5個(gè)階段:軟件的需求分分析和定義體系結(jié)構(gòu)設(shè)計(jì)計(jì)構(gòu)件庫建立應(yīng)用軟件構(gòu)建建測(cè)試和發(fā)布構(gòu)件集成模型型需求分析和定義體系結(jié)構(gòu)設(shè)計(jì)構(gòu)件庫建立測(cè)試和發(fā)布應(yīng)用軟件構(gòu)建1:N面向方面的軟軟件開發(fā)面向方面的軟軟件開發(fā)(Aspect-OrientedSoftwareDevelopment,簡稱AOSP)是一一系列新興技技術(shù),用以尋尋找軟件系統(tǒng)統(tǒng)中新的模塊塊化特性。強(qiáng)調(diào)獨(dú)立描述述關(guān)注點(diǎn)方面需求(AspectualRequirement)定義了那那些對(duì)整個(gè)軟軟件體系結(jié)構(gòu)構(gòu)產(chǎn)生影響的的橫切關(guān)注點(diǎn)點(diǎn):對(duì)等關(guān)注點(diǎn),,這種關(guān)注點(diǎn)點(diǎn)是相互獨(dú)立立的,沒有任任何一個(gè)對(duì)等等關(guān)注點(diǎn)比另另一個(gè)更重要要。如ATM的取款、、轉(zhuǎn)帳和存款款等擴(kuò)展(extension),是在在基礎(chǔ)組件((base))之上定義的的組件,它用用來表示附加加的服務(wù)或功功能。如在圖圖書館系統(tǒng)中中,當(dāng)還書時(shí)時(shí)發(fā)現(xiàn)該書已已經(jīng)超期,那那么系統(tǒng)就要要計(jì)算罰金。。計(jì)算罰金功功能就是還書書的擴(kuò)展。對(duì)等關(guān)注點(diǎn)對(duì)等關(guān)注點(diǎn)((分離限制))擴(kuò)展對(duì)等關(guān)注點(diǎn)((分離限制))問題:纏繞(tangling),各個(gè)組組件包含滿足足不同關(guān)注點(diǎn)點(diǎn)的實(shí)現(xiàn)(也也就是編碼))分散(Scattering),某某個(gè)特定關(guān)注注點(diǎn)的實(shí)現(xiàn)是是分散在多個(gè)個(gè)組件中。分離擴(kuò)展是一一種使復(fù)雜問問題易于理解解的技術(shù)。關(guān)注點(diǎn)分離技技術(shù)關(guān)注點(diǎn)分離技技術(shù)(ConcernSeparationTechnique)對(duì)關(guān)注點(diǎn)點(diǎn)進(jìn)行建模和和結(jié)構(gòu)化。用例技術(shù)關(guān)注點(diǎn)合成機(jī)機(jī)制關(guān)注點(diǎn)合成機(jī)機(jī)制(ConcernCompositionMechanism)將關(guān)注注點(diǎn)合成發(fā)生在編譯時(shí)時(shí)、編譯后,,甚至是運(yùn)行行時(shí)擴(kuò)展相互分離離擴(kuò)展相互分離離Jacobson早在1986發(fā)表表的論文““支持易于變變化的實(shí)時(shí)系系統(tǒng)的語言””術(shù)語:表示原原有程序、擴(kuò)擴(kuò)展基礎(chǔ)的術(shù)術(shù)語existion;;表示添加到到existion的新新功能的術(shù)語語extensions。擴(kuò)展在編譯或運(yùn)行行階段,而非非編碼階段,,往existion中中插入extensions(擴(kuò)展展)原有系統(tǒng)的源源代碼甚至二二進(jìn)制代碼都都與任何擴(kuò)展展之間保持了了清晰性和無無關(guān)性優(yōu)點(diǎn):擴(kuò)展更為簡單單系統(tǒng)將更易于于理解序列變化器小結(jié)軟件開發(fā)模型型是指軟件開開發(fā)全部過程程、活動(dòng)和任任務(wù)的結(jié)構(gòu)框框架,能清晰晰、直觀地表表達(dá)軟件開發(fā)發(fā)全過程,明明確規(guī)定了要要完成的主要要活動(dòng)和任務(wù)務(wù),用來作為為軟件項(xiàng)目工工作的基礎(chǔ)。。瀑布模型是一一種線性模型型,文檔驅(qū)動(dòng)動(dòng)的模型。增量提交模型型采用一系列列的增量方式式開發(fā)系統(tǒng)。。螺旋模型結(jié)合合瀑布模型和和快速原型,,是一種風(fēng)險(xiǎn)險(xiǎn)驅(qū)動(dòng)的開發(fā)發(fā)模型協(xié)同開發(fā)模型型是一種時(shí)間間驅(qū)動(dòng)的活動(dòng)動(dòng)網(wǎng)絡(luò)模型。。統(tǒng)一過程模型型是以用例驅(qū)驅(qū)動(dòng)的,以架架構(gòu)為中心,,迭代和增量量的過程。構(gòu)件集成模型型利用模塊化化方法將整個(gè)個(gè)系統(tǒng)模塊化化,復(fù)用構(gòu)件件庫中的軟件件構(gòu)件,通過過組合手段提提高應(yīng)用軟件件系統(tǒng)過程的的效率和質(zhì)量量。面向方面的軟軟件開發(fā)是一一系列新興技技術(shù),用以尋尋找軟件系統(tǒng)統(tǒng)中新的模塊塊化特性,允允許對(duì)軟件系系統(tǒng)中多種關(guān)關(guān)注點(diǎn)進(jìn)行獨(dú)獨(dú)立描述,同同時(shí)又能自動(dòng)動(dòng)統(tǒng)一組合到到工作系統(tǒng)之之中。第4章案案例研究出卷系統(tǒng)短信系統(tǒng)POS機(jī)系統(tǒng)統(tǒng)ATM機(jī)系統(tǒng)統(tǒng)圖書館系統(tǒng)出卷系統(tǒng)系統(tǒng)支持人工工輔助和自動(dòng)動(dòng)出卷。系統(tǒng)應(yīng)能夠進(jìn)進(jìn)行題庫管理理系統(tǒng)能夠進(jìn)行行試卷管理,,應(yīng)完成試卷卷修改、刪除除和打印等。。試卷能夠按按照給定的樣樣式進(jìn)行輸入入。系統(tǒng)應(yīng)能支持持不同的科目目。系統(tǒng)能夠在所所有流行的技技術(shù)環(huán)境下運(yùn)運(yùn)行,優(yōu)好的的圖形界面。。系統(tǒng)應(yīng)該具有有很好的可擴(kuò)擴(kuò)展性。試題不允許重重復(fù)出現(xiàn),至至少三次不能能重復(fù)。試卷符合要求求的96%以以上即可結(jié)束束,允許教師師調(diào)整。應(yīng)能進(jìn)行試卷卷分析。短信系統(tǒng)短信發(fā)送:客客戶選擇一個(gè)個(gè)或多個(gè)目標(biāo)標(biāo)人員、編輯輯內(nèi)容、立即即或定時(shí)發(fā)送送通知信息。。短信人工應(yīng)答答:用戶察看看收到的短信信內(nèi)容,并確確定回復(fù)內(nèi)容容回復(fù)詢問者者。短信自動(dòng)應(yīng)答答:根據(jù)短信信詢問內(nèi)容,,并依據(jù)規(guī)則則自動(dòng)回復(fù)詢?cè)儐栒?。短信接收:接接收外部短信信。短信確認(rèn):確確認(rèn)接收方是是否接收。客戶資料維護(hù)護(hù):添加、刪刪除和更新用用戶。短信息維護(hù)::預(yù)設(shè)短消息息內(nèi)容接口要求:支支持移動(dòng)終端端通過串口通通信;支持與與移動(dòng)網(wǎng)關(guān)通通信。POS機(jī)系系統(tǒng)收銀員可以以記錄銷售售商品信息息,系統(tǒng)計(jì)計(jì)算總價(jià)。。收銀員能夠夠通過系統(tǒng)統(tǒng)處理支持持,包括現(xiàn)現(xiàn)金支付、、信用卡支支付和支票票支付。經(jīng)理還能處處理顧客退退貨。系統(tǒng)要求具具有一定的的容錯(cuò)性,,即如果遠(yuǎn)遠(yuǎn)程服務(wù)((如庫存系系統(tǒng))暫時(shí)時(shí)中斷,系系統(tǒng)必須仍仍然能夠獲獲取銷售信信息并且至至少能夠處處理現(xiàn)金付付款。POS機(jī)必必須支持日日益增多的的各種的客客戶終端和和接口,比比如多種形形式的用戶戶圖形界面面、觸摸屏屏輸入裝置置、無線PDA等。。系統(tǒng)需要一一種機(jī)制提提供靈活的的處理不同同客戶獨(dú)特特的業(yè)務(wù)邏邏輯規(guī)則和和定制能力力。ATM機(jī)系系統(tǒng)ATM機(jī)處處理銀行儲(chǔ)儲(chǔ)戶的各種種操作,并并與分行計(jì)計(jì)算機(jī)通信信;各分理處的的計(jì)算機(jī)保保存各自的的帳戶,負(fù)負(fù)責(zé)錄入帳帳戶和事務(wù)務(wù)數(shù)據(jù);分行計(jì)算機(jī)機(jī)與撥款分分理處結(jié)帳帳;

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論