《軟件工程概要》由會(huì)員分享,可在線閱讀,更多相關(guān)《軟件工程概要(47頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),*,軟件工程概要,數(shù)據(jù)庫(kù)原理課程,補(bǔ)充知識(shí),背景,軟件危機(jī),軟件開發(fā)周期大大超過規(guī)定日期,軟件開發(fā)成本嚴(yán)重超標(biāo),軟件質(zhì)量難于保證,軟件的發(fā)展大體上經(jīng)歷了三個(gè)階段:,程序設(shè)計(jì),階段、,軟件,階段、,軟件工程,階段。,程序設(shè)計(jì)時(shí)代,名稱,程序,生產(chǎn)方式,個(gè)人,質(zhì)量,取決于個(gè)人水平,設(shè)計(jì)對(duì)象,以硬件為中心,開發(fā)工具,無,維護(hù),無,設(shè)計(jì)方法,無,以技巧為主,軟件時(shí)代,軟件,項(xiàng)目組,取決于小集團(tuán)水平,硬件,/,軟件為中心,無系統(tǒng)工具,工具為個(gè)人,所有,由開發(fā)者進(jìn)行維護(hù),在設(shè),計(jì)中不重視維護(hù)設(shè)計(jì)問題,自頂向下,有質(zhì)量保證問
2、題和持續(xù)性,問題,軟件工程時(shí)代,軟件產(chǎn)品,軟件組織,軟件生產(chǎn)管理,以軟件為中心,軟件生成器,設(shè)計(jì)與制作過程中均考慮維,護(hù)問題,維護(hù)成本占很大比,重,結(jié)構(gòu)化設(shè)計(jì)、原型設(shè)計(jì),從程序設(shè)計(jì)到軟件工程時(shí)代,軟件工程的定義,IEEE,【IEE93】,定義:“將系統(tǒng)化的、規(guī)范的、可度量的方法應(yīng)用于,軟件的開發(fā)、運(yùn)行和維護(hù),的過程,即將工程化應(yīng)用于軟件中?!?軟件工程是應(yīng)用計(jì)算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理開發(fā)軟件的工程。它借鑒傳統(tǒng)工程的原則、方法,,以提高質(zhì)量,降低成本,為目的。,兩種軟件工程方法,傳統(tǒng)軟件工程,軟件分析 總體設(shè)計(jì) 詳細(xì)設(shè)計(jì) 面向過程的編碼 測(cè)試,面向?qū)ο筌浖こ?軟件分析與對(duì)象抽取 對(duì)象詳細(xì)
3、設(shè)計(jì) 面向?qū)ο蟮木幋a 測(cè)試,結(jié)構(gòu)化分析模型的組成結(jié)構(gòu),數(shù)據(jù)流圖,(,DFD,),E-R,圖,狀態(tài),變,遷圖,(,STD,圖),加,工,說,明,控制說明,數(shù),據(jù),對(duì),象,說,明,數(shù)據(jù)字典,(,DD,),面向?qū)ο蠓?析模型的組成結(jié)構(gòu),對(duì)象-關(guān),系模型,類/對(duì)象,模型,對(duì)象-行為模型,使用實(shí)例,(Use Case),操作、,屬性、,協(xié)作者,對(duì)象模型,動(dòng)態(tài)模型,功能模型,傳統(tǒng)軟件工程中的瀑布模型,可行性研究與計(jì)劃,需求分析,總體|詳細(xì)設(shè)計(jì),編碼,運(yùn)行維護(hù),測(cè)試,定義,階段,開,發(fā),階,段,維護(hù)階段,1.問題定義,關(guān)鍵問題:,“要解決的問題是什么?”,主要結(jié)果:提出關(guān)于問題的性質(zhì)、工程目標(biāo)和規(guī)模的書面報(bào)
4、告。,內(nèi)容及步驟,(一)系統(tǒng)任務(wù)的提出,(二)初步調(diào)查,(三)系統(tǒng)目標(biāo)的確定,2 可行性研究,可行性、可行性研究的含義,可行性的含義包括可能性、必要性。,可行性分析的對(duì)象是,系統(tǒng)目標(biāo),。評(píng)價(jià)總體方案(系統(tǒng)目標(biāo))的可能性、必要性。,可行性研究目的:,用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定,問題是否能夠解決,是否有必要去解決,。,可行性,研,研究的,內(nèi),內(nèi)容,1.技,術(shù),術(shù)上的,可,可行性,2.經(jīng),濟(jì),濟(jì)上的,可,可行性,3.操,作,作可行,性,性,4.時(shí),間,間可行,性,性,5.組,織,織與管,理,理上可,行,行性,6.社,會(huì),會(huì)、政,策,策允許,的,的可行,性,性,3.,需,需求分,析,析的任,務(wù)
5、,務(wù),準(zhǔn)確地定義未來系,統(tǒng),統(tǒng)的目,標(biāo),標(biāo),確,定,定為了,滿,滿足用,戶,戶的需,求,求系統(tǒng),必,必須做,什,什么。,用,規(guī),規(guī)范的,形,形式準(zhǔn),確,確地表,達(dá),達(dá)用戶,的,的需求。,基本任,務(wù),務(wù):準(zhǔn),確,確地回,答,答“系統(tǒng)必,須,須做什,么,么?”,需求分,析,析的具,體,體任務(wù),1.確,定,定對(duì)系,統(tǒng),統(tǒng)的綜,合,合需求,:,(1),系,系統(tǒng)功,能,能要求(2),系,系統(tǒng)性,能,能要求(3),運(yùn),運(yùn)行要,求,求(4)將來,可,可能提,出,出的要,求,求,2.分析系,統(tǒng),統(tǒng)的數(shù)據(jù)要,求,求,:,采用建立“,概,概念模型”,的,的方法,并,輔,輔助圖形工,具,具,如:層,次,次方框圖、W
6、arnier圖等。,3.導(dǎo)出系,統(tǒng),統(tǒng)的邏輯模,型,型,:,數(shù)據(jù)流程圖,、,、數(shù)據(jù)字典,、,、主要算法,4.修正系,統(tǒng),統(tǒng)開發(fā)計(jì)劃,5.開發(fā)原,型,型系統(tǒng),4.總體,設(shè),設(shè)計(jì)的過程,設(shè)想供選擇,的,的方案,選取合理的,方,方案,推薦最佳方,案,案,功能分解,設(shè)計(jì)軟件結(jié),構(gòu),構(gòu),數(shù)據(jù)庫(kù)設(shè)計(jì),制定測(cè)試計(jì),劃,劃,書寫文檔,審查和復(fù)審,5.詳細(xì),設(shè),設(shè)計(jì)的基本,任,任務(wù),回答的關(guān)鍵,問,問題:“怎樣具體,地,地實(shí)現(xiàn)這個(gè),系,系統(tǒng)”,主要任務(wù)是,設(shè),設(shè)計(jì)出程序,的,的“藍(lán)圖”,,,,供程序員,日,日后根據(jù)這,個(gè),個(gè)藍(lán)圖編寫,出,出實(shí)際的程,序,序代碼。,注意:設(shè)計(jì),程,程序的藍(lán)圖,,,,不是具體,地,
7、地編寫程序,。,。,設(shè)計(jì)程序主,要,要采用結(jié)構(gòu),化,化的程序設(shè),計(jì),計(jì)方法。,詳細(xì)設(shè)計(jì),主要任務(wù):編寫詳細(xì)設(shè),計(jì),計(jì)說明書,為此,設(shè)計(jì),人,人員應(yīng):,(1)確定,每,每個(gè)模塊的,算,算法,用工,具,具表達(dá)算法,的,的過程,寫,出,出模塊的詳,細(xì),細(xì)過程性描,述,述。,(2)確定,每,每一模塊的,數(shù),數(shù)據(jù)結(jié)構(gòu)。,(3)確定,模,模塊接口細(xì),節(jié),節(jié)。,詳細(xì)設(shè)計(jì)是,編,編碼的先導(dǎo),。,。,詳細(xì)設(shè)計(jì)具,體,體任務(wù),確定模塊如,何,何實(shí)現(xiàn),編寫詳細(xì)設(shè),計(jì),計(jì)說明書,制定單元測(cè),試,試計(jì)劃,詳細(xì)設(shè)計(jì)評(píng),審,審,6.編碼,程序?qū)懽黠L(fēng),格,格,程序設(shè)計(jì)方,法,法論,自頂向下的,程,程序設(shè)計(jì)方,法,法,自底向上
8、的,程,程序設(shè)計(jì)方,法,法,程序設(shè)計(jì)自,動(dòng),動(dòng)化,程序設(shè)計(jì)工,具,具,7.測(cè)試,軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò),誤,誤而執(zhí)行程,序,序的過程。,軟件測(cè)試是,根,根據(jù)軟件開,發(fā),發(fā)階段的規(guī),格,格說明和程,序,序的內(nèi)部結(jié),構(gòu),構(gòu)而精心設(shè),計(jì),計(jì)一批測(cè)試,用,用例(即輸,入,入的數(shù)據(jù)及,其,其預(yù)期的輸,出,出結(jié)果),,并,并利用這些,用,用例去運(yùn)行,程,程序,以發(fā),現(xiàn),現(xiàn)程序錯(cuò)誤,的,的過程。,軟件測(cè)試的,目,目的,測(cè)試是程序,的,的執(zhí)行過程,,,,目的在于,發(fā),發(fā)現(xiàn)錯(cuò)誤;,一個(gè)好的測(cè),試,試用例在于能發(fā)現(xiàn)至今,未,未發(fā)現(xiàn)的錯(cuò),誤,誤;,一個(gè)成功的,測(cè),測(cè)試是發(fā)現(xiàn)了至今,未,未發(fā)現(xiàn)的錯(cuò),誤,誤的測(cè)試。,測(cè)試
9、設(shè)計(jì)中,需,需要考慮的,22,種測(cè)試類型,黑盒測(cè)試,白盒測(cè)試,單元測(cè)試,累計(jì)綜合測(cè),試,試,集成測(cè)試,功能測(cè)試,系統(tǒng)測(cè)試,端到端測(cè)試,健全測(cè)試,衰竭測(cè)試,接受測(cè)試,負(fù)載測(cè)試,強(qiáng)迫測(cè)試,性能測(cè)試,可用性測(cè)試,安裝/卸載,測(cè),測(cè)試,恢復(fù)測(cè)試,兼容測(cè)試,安全測(cè)試,比較測(cè)試,Alpha,測(cè),測(cè)試,Beta測(cè),試,試,8.運(yùn)行,維,維護(hù),本質(zhì)上是修,改,改和壓縮了,的,的軟件定義,和,和開發(fā)過程,分析,設(shè)計(jì),編碼,測(cè)試,驗(yàn)收,配置,復(fù)審,可靠性,可移植性,可用性,可理解性,可修改性,可測(cè)試性,可理解性,可修改性,可移植性,效率,可靠性,效率,完整性,一致性,可理解性,幾種典型的,開,開發(fā)方法:,模塊化方
10、法,(,(,modular method,),結(jié)構(gòu)化方法,面向數(shù)據(jù)結(jié),構(gòu),構(gòu)方法,面向?qū)ο蠓?法,法,軟件開發(fā)方,法,法,結(jié)構(gòu)程序設(shè),計(jì),計(jì),結(jié)構(gòu)程序設(shè),計(jì),計(jì)是一種設(shè),計(jì),計(jì)程序的技,術(shù),術(shù),它采用自頂向下逐,步,步求精的設(shè)計(jì)方法,和,和單入口單出,口,口的控制結(jié)構(gòu),。,。,逐步求精的,含,含義,總體設(shè)計(jì)階,段,段逐步求精,的,的含義,把一個(gè)復(fù)雜,問,問題的解法,分,分解和細(xì)化,成,成一個(gè)由許,多,多模塊組成,的,的層次結(jié)構(gòu),的,的軟件系統(tǒng),。,。,詳細(xì)設(shè)計(jì)階,段,段逐步求精,的,的含義,把一個(gè)模塊,的,的功能逐步,分,分解細(xì)化為,一,一系列具體,的,的處理步驟,或,或某種高級(jí),語,語言的語
11、句,。,。,結(jié)構(gòu)程序設(shè),計(jì),計(jì)優(yōu)越性,自頂向下逐,步,步求精的方,法,法符合人類,解,解決復(fù)雜問,題,題的普遍規(guī),律,律,因此可,以,以顯著提高,軟,軟件開發(fā)工,程,程的成功率,和,和生產(chǎn)率。,用先全局后,局,局部、先整,體,體后細(xì)節(jié)、,先,先抽象后具,體,體的逐步求,精,精過程開發(fā),出,出的程序有,清,清晰的層次,結(jié),結(jié)構(gòu),因此,容,容易閱讀和,理,理解。,不使用GOTO語句,,,,僅使用單,入,入口單出口,的,的控制結(jié)構(gòu),,,,使得程序,的,的靜態(tài)結(jié)構(gòu),和,和它的動(dòng)態(tài),執(zhí),執(zhí)行情況比,較,較一致,易,于,于閱讀和理,解,解。,傳統(tǒng)方法學(xué),的,的缺點(diǎn),瀑布模型的,缺,缺點(diǎn):僵化,瀑布模型要,
12、求,求:生命周,期,期各階段間,遵,遵守嚴(yán)格的,順,順序。,實(shí)際情況是,:,:軟件開發(fā),往,往往在反復(fù),實(shí),實(shí)踐中完成,。,。,瀑布模型要,求,求:預(yù)先定,義,義并“凍結(jié),”,”軟件需求,。,。,實(shí)際情況是,:,:某些系統(tǒng),的,的需求的一,個(gè),個(gè)逐漸明確,的,的過程,且,預(yù),預(yù)先定義的,需,需求到軟件,完,完成時(shí)可能,已,已經(jīng)過時(shí)。,結(jié)構(gòu)化技術(shù),的,的缺點(diǎn)(SA-SD-SP),本質(zhì)上是功,能,能分解,以,實(shí),實(shí)現(xiàn)功能的,過,過程為中心,。,。,而用戶的需,求,求變化主要,是,是針對(duì)功能,的,的。這就使,基,基于過程的,設(shè),設(shè)計(jì)不易被,理,理解;且功,能,能變化往往,引,引起結(jié)構(gòu)變,化,化較大,
13、穩(wěn),定,定性不好。,系統(tǒng)有明確,的,的邊界定義,,且系統(tǒng)結(jié),構(gòu),構(gòu)依賴于系,統(tǒng),統(tǒng)邊界的定,義,義,這樣的,系,系統(tǒng)不易擴(kuò),充,充和修改。,數(shù)據(jù)與操作,分,分開處理,,可能造成,軟,軟構(gòu)件對(duì)具,體,體應(yīng)用環(huán)境,的,的依賴,可,重,重用性(reusability)較差.,軟件工程的,新,新途徑之一,:,:快速原型,法,法,適用于用戶,驅(qū),驅(qū)動(dòng)的系統(tǒng),(,(即需求模,糊,糊或隨時(shí)間,變,變化的系統(tǒng),),),建造/修改,原型,用戶測(cè)試,運(yùn)行原型,聽取用,戶意見,傳統(tǒng)方法和,面,面向?qū)ο蠓?法,法的比較,傳統(tǒng)方法,系統(tǒng)是過程的集合,過程與數(shù)據(jù)實(shí)體交互,過程接受輸入并產(chǎn)生輸出,面向?qū)ο蠓椒?系統(tǒng)是交互對(duì)
14、象的集合,對(duì)象與人或其它對(duì)象交互,對(duì)象發(fā)送與響應(yīng)消息,傳統(tǒng)方法數(shù),據(jù),據(jù)與過程是,分,分離的,過程1,輸入,輸出,過程2,過程3,數(shù)據(jù)實(shí)體,屬于該對(duì)象,的數(shù)據(jù),對(duì)象,處理數(shù)據(jù)的,方,方法,消息,消息,對(duì)象把數(shù)據(jù),和,和處理數(shù)據(jù),的,的方法封狀,成,成一個(gè)單元,為什么對(duì)面,向,向?qū)ο蠓椒?感,感興趣?,面向?qū)ο蠓?法,法的主要優(yōu),點(diǎn),點(diǎn):,自然性:追求軟件系,統(tǒng),統(tǒng)對(duì)現(xiàn)實(shí)系,統(tǒng),統(tǒng)的直接模,擬,擬,盡量實(shí),現(xiàn),現(xiàn)將現(xiàn)實(shí)世,界,界中的事物,直,直接映射到,軟,軟件系統(tǒng)的,解,解空間中。,軟件復(fù)用,:,可復(fù)用性(,可,可重用性),可擴(kuò)展性,可管理,性,面向?qū)ο蠓?析,析,面向?qū)ο蠓?析,析的關(guān)鍵:,
15、識(shí)別出問題,域,域內(nèi)的對(duì)象,,,,并分析它,們,們相互間的,關(guān),關(guān)系,最終,建,建立起問題,域,域的簡(jiǎn)潔、,精,精確、可理,解,解的正確模,型,型。,面向?qū)ο蠓?法,法最基本的,原,原則:,按照人們習(xí),慣,慣的思維方,式,式,用,面向,對(duì)象觀點(diǎn)建,立,立問題域的,模,模型,開發(fā),出,出盡可能自,然,然地表現(xiàn)求,解,解方法的軟,件,件。,面向?qū)ο蠼?模,模,用面向?qū)ο?方,方法開發(fā)軟,件,件,通常需,要,要建立三種,形,形式的模型,:,:,對(duì)象模型:描述系統(tǒng),數(shù),數(shù)據(jù)結(jié)構(gòu),動(dòng)態(tài)模型:描述系統(tǒng),控,控制結(jié)構(gòu),功能模型:描述系統(tǒng),功,功能,一些具體工,具,具介紹,A Room hierarchy b
16、ased on aninterior designersperspective,Room,Room with lights,Room with windows,Garage,Basement,Kitchen,Bathroom,Room with,Furniture,Living,Room,Family,Room,Bed,Room,Dining,Room,層次方框圖,數(shù)據(jù)流程圖DFD,是結(jié)構(gòu)化系,統(tǒng),統(tǒng)分析的主,要,要工具,它,表,表示了系統(tǒng),內(nèi),內(nèi)部信息的,流,流向,并表,示,示了系統(tǒng)的,邏,邏輯處理的,功,功能,數(shù)據(jù)流程圖,的,的特性,(1)抽象性:具體的組,織,織機(jī)構(gòu)、工,作,作場(chǎng)所、物,質(zhì),質(zhì)流等等都,去,去掉,僅剩,下,下信息和數(shù),據(jù),據(jù)存儲(chǔ)、流,動(dòng),動(dòng)、使用以,及,及加工的情,況,況。,(2)概括性:它把系統(tǒng),對(duì),對(duì)各種業(yè)務(wù),的,的處理過程,聯(lián),聯(lián)系起來考,慮,慮,形成一,個(gè),個(gè)總體,具,有,有概括性。,(3)數(shù)據(jù),流,流程圖描述,的,的主體是抽象出來,的,的數(shù)據(jù)。,(4)數(shù)據(jù),流,流程圖具有層次性,一個(gè)系統(tǒng),將,將有許多層,次,次的流程圖,。,。,數(shù)據(jù)流程圖,的,的用途,系