九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

軟件技術(shù)基礎(chǔ)知識之軟件工程課件

上傳人:冬**** 文檔編號:253201757 上傳時(shí)間:2024-12-01 格式:PPT 頁數(shù):169 大小:689.93KB
收藏 版權(quán)申訴 舉報(bào) 下載
軟件技術(shù)基礎(chǔ)知識之軟件工程課件_第1頁
第1頁 / 共169頁
軟件技術(shù)基礎(chǔ)知識之軟件工程課件_第2頁
第2頁 / 共169頁
軟件技術(shù)基礎(chǔ)知識之軟件工程課件_第3頁
第3頁 / 共169頁

下載文檔到電腦,查找使用更方便

20 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《軟件技術(shù)基礎(chǔ)知識之軟件工程課件》由會員分享,可在線閱讀,更多相關(guān)《軟件技術(shù)基礎(chǔ)知識之軟件工程課件(169頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。

1、,,,,,,,,,,,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,,,*,軟件技術(shù)基礎(chǔ),--,軟件工程,計(jì)算機(jī)軟件基礎(chǔ)之一,,,軟件技術(shù)基礎(chǔ)--軟件工程計(jì)算機(jī)軟件基礎(chǔ)之一,1,第三部分 軟件工程,目的與要求,講課內(nèi)容與學(xué)時(shí),參考資料,,,第三部分 軟件工程目的與要求,2,目的與要求,學(xué)習(xí)、掌握和了解軟件工程的概念,掌握軟件工程的方法和軟件開發(fā)的過程,初步了解對軟件開發(fā)質(zhì)量的監(jiān)控和管理,,,目的與要求學(xué)習(xí)、掌握和了解軟件工程的概念,3,講課內(nèi)容與學(xué)時(shí),軟件工程的基本概念(2),軟件開發(fā)方法與工作模型(2),結(jié)構(gòu)化開發(fā)方法概述(2),小結(jié)與習(xí)題(2)

2、,,,講課內(nèi)容與學(xué)時(shí)軟件工程的基本概念(2),4,教科書、參考書,孫淑霞、肖陽春等編,,2000,,《,軟件技術(shù)基礎(chǔ),》,,成都理工大學(xué),黃迪明編,,1998,,,《,軟件技術(shù)基礎(chǔ),》,,電子科技大學(xué)出版社,鄭人杰,軟件工程與軟件工程管理,講座,國際標(biāo)準(zhǔn),ISO 8631<,信息處理,--,程序構(gòu)造及其表示法的約定,>,國家標(biāo)準(zhǔn),GB8566-88<,軟件開發(fā)規(guī)范,>,CMM,軟件成熟度模型,,,教科書、參考書孫淑霞、肖陽春等編,2000 《軟件技術(shù)基礎(chǔ)》,5,第三部分 軟件工程,軟件工程的基本概念,軟件開發(fā)方法與工作模型,結(jié)構(gòu)化開發(fā)方法概述,習(xí)題,,,,第三部分 軟件工程軟件工程的基本概

3、念,6,1 軟件工程的基本概念,1.1,軟件工程學(xué)的形成和發(fā)展,1.2,軟件工程學(xué)研究的內(nèi)容,1.3,軟件與軟件生命周期,1.4,軟件工程基本原則,,,,1 軟件工程的基本概念1.1 軟件工程學(xué)的形成和發(fā)展,7,1.1 軟件工程學(xué)的形成和發(fā)展,軟件工程學(xué)是在克服,60,年代末所出現(xiàn)的“軟件危機(jī)”(,software crisis,)的過程中逐漸形成與發(fā)展起來的,而所謂“軟件危機(jī)”是在軟件的規(guī)模越來越大,復(fù)雜度不斷增加,軟件需求量不斷增大的情況下出現(xiàn)的,由于軟件開發(fā)過程是一種高密度的腦力勞動,軟件開發(fā)的模式及技術(shù)不能適應(yīng)軟件發(fā)展的需要,所以“軟件危機(jī)”便產(chǎn)生了,,,1.1 軟件工程學(xué)的

4、形成和發(fā)展軟件工程學(xué)是在克服60年代末,8,軟件工程的發(fā)展,計(jì)算機(jī)軟件發(fā)展至今經(jīng)歷了三個(gè)不同的發(fā)展時(shí)期:,程序設(shè)計(jì)時(shí)期(,20,世紀(jì),50,年代,——60,年代),軟件時(shí)期(,20,世紀(jì),60,年代中期,——70,年代),軟件工程時(shí)期(,20,世紀(jì),70,年代,——,現(xiàn)在),,,軟件工程的發(fā)展計(jì)算機(jī)軟件發(fā)展至今經(jīng)歷了三個(gè)不同的發(fā)展時(shí)期:,9,發(fā)展,程序設(shè)計(jì)語言,(Programming),機(jī)器語言,匯編語言,ALGOL60,FORTRAN,COBOL,BASIC,軟件,(Software) 1960,程序,文檔,數(shù)據(jù),軟件危機(jī)引出軟件工程,(Software Engineering),軟

5、件開發(fā)工程化,1968 NATO,軟件開發(fā)階段與瀑布模型,軟件工程標(biāo)準(zhǔn),,,發(fā)展程序設(shè)計(jì)語言 (Programming),10,焦點(diǎn),目標(biāo),少資源、高效益,在人力投入、開發(fā)期、成本、質(zhì)量諸方面求得最佳,風(fēng)險(xiǎn),需求:不明與變更,人員流動,軟件知識產(chǎn)權(quán)保護(hù),不存在絕對無缺陷的軟件產(chǎn)品,,,焦點(diǎn)目標(biāo),11,成功的標(biāo)志,如期完成,預(yù)算內(nèi)完成,達(dá)到質(zhì)量要求(需求和希望),,,成功的標(biāo)志如期完成,12,軟件業(yè)與制造業(yè)的差異,,,,,,,,,,,|,?,設(shè)計(jì),?,||,?,,生產(chǎn),?,||,運(yùn) 輸,||,倉 儲,| |,功能度,…..,制造業(yè),,大量,,,,,|,?,設(shè)計(jì)(開發(fā)),?,||,?,,生產(chǎn),

6、?,||,運(yùn)輸,||,倉儲,||,功能度,…..,軟件業(yè),,,,,,大量,,,軟件業(yè)與制造業(yè)的差異 |?設(shè)計(jì)?||? 生產(chǎn),13,軟件的特點(diǎn),軟件是一種邏輯實(shí)體,具有抽象性,這個(gè)特點(diǎn)使它與其他工程對象有著明顯的差異,人們可以把它記錄在紙上、內(nèi)存和磁盤、光盤上,但卻無法看到軟件本身的形態(tài),必須通過觀察、分析、思考、判斷,才能了解它的功能、性能等特性,軟件沒有明顯的制造過程,一旦研制開發(fā)成功,就可以大量拷貝同一內(nèi)容的副本,所以對軟件的質(zhì)量控制,必須著重在軟件開發(fā)方面下工夫,軟件在使用過程中,沒有磨損、老化的問題,軟件在生存周期后期不會因?yàn)槟p而老化,但會為了適應(yīng)硬件、環(huán)境以及需求的變化而

7、進(jìn)行修改,而這些修改又不可避免地引入錯(cuò)誤,導(dǎo)致軟件失效率升高,從而使得軟件退化,當(dāng)修改的成本變得難以接受時(shí),軟件就被拋棄,軟件對硬件和環(huán)境有著不同程度的依賴性,這導(dǎo)致了軟件移植的問題,,,軟件的特點(diǎn)軟件是一種邏輯實(shí)體,具有抽象性,14,軟件的特點(diǎn) (cont.),軟件的開發(fā)至今尚未完全擺脫手工作坊式的開發(fā)方式,生產(chǎn)效率低,軟件是復(fù)雜的,而且以后會更加復(fù)雜,軟件是人類有史以來生產(chǎn)的復(fù)雜度最高的工業(yè)產(chǎn)品,軟件涉及人類社會的各行各業(yè)、方方面面,軟件開發(fā)常常涉及其他領(lǐng)域的專門知識,這對軟件工程師提出了很高的要求,軟件的成本相當(dāng)昂貴,軟件開發(fā)需要投入大量、高強(qiáng)度的腦力勞動,成本非常高,風(fēng)險(xiǎn)也大,現(xiàn)在軟件

8、的開銷已大大超過了硬件的開銷,軟件工作牽涉到很多社會因素,許多軟件的開發(fā)和運(yùn)行涉及機(jī)構(gòu)、體制和管理方式等問題,還會涉及到人們的觀念和心理,這些人的因素,常常成為軟件開發(fā)的困難所在,直接影響到項(xiàng)目的成敗,,,軟件的特點(diǎn) (cont.)軟件的開發(fā)至今尚未完全擺脫手工作坊,15,軟件危機(jī) (software crisis),軟件危機(jī)是指計(jì)算機(jī)軟件開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題,軟件的數(shù)量急劇膨脹,軟件需求日趨復(fù)雜,維護(hù)的難度越來越大,開發(fā)成本令人吃驚地高,而失敗的軟件開發(fā)項(xiàng)目卻屢見不鮮,它主要包含兩個(gè)方面的問題:,如何開發(fā)軟件,以滿足不斷增長,日趨復(fù)雜的需求,——,軟件產(chǎn)品質(zhì)量低劣,甚至開發(fā)

9、過程就夭折,如何維護(hù)數(shù)量不斷膨脹的軟件產(chǎn)品,——,軟件生產(chǎn)率低,不能滿足需要,,,軟件危機(jī) (software crisis)軟件危機(jī)是指計(jì)算,16,軟件危機(jī)的表現(xiàn),對軟件開發(fā)成本和進(jìn)度的估計(jì)常常不準(zhǔn)確,開發(fā)成本超出預(yù)算,實(shí)際進(jìn)度比預(yù)定計(jì)劃一再拖延的現(xiàn)象并不罕見,用戶對“已完成”系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生,軟件產(chǎn)品的質(zhì)量往往靠不住,,Bug,一大堆,,Patch,一個(gè)接一個(gè),軟件的可維護(hù)程度非常之低,軟件通常沒有適當(dāng)?shù)奈臋n資料,軟件的成本不斷提高,軟件開發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和人們需求的增長,,,軟件危機(jī)的表現(xiàn)對軟件開發(fā)成本和進(jìn)度的估計(jì)常常不準(zhǔn)確,開發(fā)成本,17,產(chǎn)生軟件危機(jī)的原因,由于

10、軟件本身的特點(diǎn),管理和控制軟件開發(fā)過程相當(dāng)困難,而且軟件維護(hù)較難,軟件是一種高智力活動,由復(fù)雜的邏輯、復(fù)雜的運(yùn)算和復(fù)雜的關(guān)聯(lián)等構(gòu)成,由于對軟件開發(fā)與軟件維護(hù)的不正確方法,產(chǎn)生了軟件危機(jī),軟件規(guī)模越來越大,功能越來越強(qiáng),導(dǎo)致軟件結(jié)構(gòu)非常復(fù)雜,忽視軟件開發(fā)前期的需求分析,開發(fā)過程沒有統(tǒng)一的、規(guī)范的方法論的指導(dǎo),文檔資料不齊全,忽視人與人的交流,忽視測試階段的工作,提交用戶的軟件質(zhì)量差,輕視軟件的維護(hù);等等,,,產(chǎn)生軟件危機(jī)的原因由于軟件本身的特點(diǎn),管理和控制軟件開發(fā)過程,18,對軟件看法的轉(zhuǎn)變,早期那些被認(rèn)為是優(yōu)秀的程序常常很難被別人看懂,通篇充滿了程序技巧,現(xiàn)在人們普遍認(rèn)為優(yōu)秀的程序除了功能正確

11、,性能優(yōu)良之外,還應(yīng)該容易看懂、容易使用、容易修改和擴(kuò)充,,,對軟件看法的轉(zhuǎn)變早期那些被認(rèn)為是優(yōu)秀的程序常常很難被別人看懂,19,軟件的定義,軟件,(software),是計(jì)算機(jī)系統(tǒng)中與硬件,(hardware),相互依存的另一部分,它包括:,程序,(program)——,是按照事先設(shè)計(jì)的功能和性能要求執(zhí)行的指令序列,相關(guān)數(shù)據(jù),(data)——,是程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu),說明文檔,(document)——,是與程序開發(fā)維護(hù)和使用有關(guān)的各種圖文資料,,,軟件的定義軟件(software)是計(jì)算機(jī)系統(tǒng)中與硬件(ha,20,軟件工程,(software engineering),提出,1968

12、,年秋季,,NATO,(北約)的科技委員會召集了近,50,名一流的編程人員、計(jì)算機(jī)科學(xué)家和工業(yè)界巨頭,討論和制定擺脫“軟件危機(jī)”的對策。在那次會議上第一次提出了軟件工程這個(gè)概念。,軟件工程的定義,軟件工程是一門研究如何用系統(tǒng)化、規(guī)范化、數(shù)量化等工程原則和方法去進(jìn)行軟件的開發(fā)和維護(hù)的學(xué)科。,,,軟件工程(software engineering)提出,21,1 軟件工程的基本概念,1.1,軟件工程學(xué)的形成和發(fā)展,1.2,軟件工程學(xué)研究的內(nèi)容,1.3,軟件與軟件生命周期,1.4,軟件工程基本原則,,,,1 軟件工程的基本概念1.1 軟件工程學(xué)的形成和發(fā)展,22,1.2 軟件工程學(xué)研究的內(nèi)容

13、,“軟件工程”是軟件工程人員尋求解決出現(xiàn)的軟件危機(jī)而產(chǎn)生的,它的核心思想是,采用工程化的原理與方法對軟件進(jìn)行計(jì)劃、開發(fā)和維護(hù),,,1.2 軟件工程學(xué)研究的內(nèi)容“軟件工程”是軟件工程人員尋求,23,,,質(zhì)量,成本,,,效率,工具,方法,過程,,產(chǎn)品需求,產(chǎn)品,,,資源,,,,管理 ?。?!,高效率、低成本地,開發(fā)高質(zhì)量的軟件!,軟件工程面對的挑戰(zhàn),,,質(zhì)量成本效率工具方法過程產(chǎn)品需求產(chǎn)品資源管理 ?。?!高效率、,24,軟件工程兩個(gè)方面的內(nèi)容,軟件開發(fā)技術(shù),軟件開發(fā)方法學(xué),軟件工具,軟件工程環(huán)境,軟件項(xiàng)目管理,軟件度量,項(xiàng)目估算,進(jìn)度控制,人員組織,配置管理,項(xiàng)目計(jì)劃等,,,軟件工程兩個(gè)方面的內(nèi)容

14、軟件開發(fā)技術(shù)軟件項(xiàng)目管理,25,1 軟件工程的基本概念,1.1,軟件工程學(xué)的形成和發(fā)展,1.2,軟件工程學(xué)研究的內(nèi)容,1.3,軟件與軟件生命周期,1.4,軟件工程基本原則,,,,1 軟件工程的基本概念1.1 軟件工程學(xué)的形成和發(fā)展,26,1.3 軟件與軟件生命周期,關(guān)于軟件,要糾正那種認(rèn)為“軟件就是程序,開發(fā)軟件就是編寫程序”的錯(cuò)誤觀念,軟件應(yīng)是“程序以及開發(fā)、使用和維護(hù)程序所需的所有文檔”。具體來說是由:,應(yīng)用程序:面向用戶,為解決各種特定問題編寫的程序,系統(tǒng)程序:面向硬件,為應(yīng)用程序服務(wù)的程序,面向用戶的文檔:如何使用和維護(hù)應(yīng)用程序的資料,面向開發(fā)者的文檔:記載了應(yīng)用程序的設(shè)計(jì)和開

15、發(fā)過程,以便進(jìn)一步開發(fā)和修改,,,1.3 軟件與軟件生命周期關(guān)于軟件,27,1.3 軟件與軟件生命周期,軟件生命周期(,SLC,),軟件生命周期是指從軟件開發(fā)到報(bào)廢的全過程,也稱軟件生存期,軟件生命周期的描述模型,瀑布模型(經(jīng)典),快速原型模型,軟件生命周期的三個(gè)時(shí)期,定義時(shí)期,開發(fā)時(shí)期,維護(hù)時(shí)期,,,1.3 軟件與軟件生命周期軟件生命周期(SLC),28,瀑布模型,問題定義,可行性研究,需求分析,設(shè) 計(jì),編 程,測 試,運(yùn)行與維護(hù),目標(biāo)與范圍說明書,可行性論證報(bào)告,需求說明書,設(shè)計(jì)文檔,程序,測試報(bào)告,維護(hù)報(bào)告,計(jì)劃時(shí)期,開發(fā)時(shí)期,運(yùn)行時(shí)期,,,瀑布模型問題定義可行性研究需求分析

16、設(shè) 計(jì)編 程測 試運(yùn),29,快速原型模型,需求分析,原型開發(fā),原型評定,目標(biāo)系統(tǒng)設(shè)計(jì),目標(biāo)系統(tǒng)實(shí)現(xiàn),用戶意見,,,快速原型模型需求分析原型開發(fā)原型評定目標(biāo)系統(tǒng)設(shè)計(jì)目標(biāo)系統(tǒng)實(shí)現(xiàn),30,軟件開發(fā)流程,,,,,,用 戶,初始需求,交付的軟件,,運(yùn)行,維護(hù),分析定義,需求規(guī)格說明,設(shè)計(jì),設(shè)計(jì)文檔,實(shí)現(xiàn),測試,源程序,,,軟件開發(fā)流程用 戶初始需求交付的軟件運(yùn)行分析定義需求規(guī)格說,31,軟件生命周期——定義期,定義期,要為被開發(fā)的軟件規(guī)定“做什么”,開發(fā)人員要確定,軟件將處理什么信息,軟件的功能,軟件的性能,建立什么樣的接口,要考慮什么設(shè)計(jì)限制,軟件開發(fā)成功的確認(rèn)標(biāo)準(zhǔn),,,軟件生命周期——定義

17、期定義期,32,軟件生命周期——定義期,定義期包括三個(gè)階段的工作,系統(tǒng)分析,把軟件要完成的工作與整個(gè)計(jì)算機(jī)系統(tǒng)的其他部分,如硬件,操作人員及數(shù)據(jù)庫等應(yīng)完成的工作區(qū)分開來,軟件項(xiàng)目計(jì)劃,確定軟件開發(fā)總目標(biāo),進(jìn)行風(fēng)險(xiǎn)分析,資源分配,成本估計(jì),規(guī)定工作任務(wù)和進(jìn)度安排,需求分析,更明確地確定軟件做什么,給出所開發(fā)軟件的功能,性能,用戶接口,對數(shù)據(jù)流進(jìn)行分析,給出功能說明,寫出用戶手冊初稿,,,軟件生命周期——定義期定義期包括三個(gè)階段的工作,33,軟件生命周期——開發(fā)期,開發(fā)期,著重解決所開發(fā)軟件“怎么做”的問題,開發(fā)期要進(jìn)行,設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu),設(shè)計(jì)軟件總體結(jié)構(gòu),實(shí)現(xiàn)軟件的過程細(xì)節(jié),將設(shè)計(jì)轉(zhuǎn)換成程序語言,進(jìn)

18、行測試,,,軟件生命周期——開發(fā)期開發(fā)期,34,軟件生命周期——開發(fā)期,開發(fā)期含有以下三個(gè)階段,軟件設(shè)計(jì),把已經(jīng)確定的軟件需求轉(zhuǎn)換成特定形式的設(shè)計(jì)表示,使其得以實(shí)現(xiàn),程序編制,用某個(gè)編程語言表達(dá)軟件設(shè)計(jì)時(shí)確定的處理過程算法,軟件測試,對已編制的程序進(jìn)行測試,以找出其中功能上、邏輯上和實(shí)現(xiàn)中的錯(cuò)誤,,,軟件生命周期——開發(fā)期開發(fā)期含有以下三個(gè)階段,35,軟件生命周期——維護(hù)期,運(yùn)行維護(hù)期,著重解決因多種原因軟件要做的變更,軟件投入使用后,要對軟件作變更的理由,開發(fā)期中存在的問題,當(dāng)時(shí)未能發(fā)現(xiàn)和及時(shí)解決,適應(yīng)變更了的軟件運(yùn)行環(huán)境,軟件需進(jìn)一步完善,用戶需求較小的變化,,,軟件生命周期——維護(hù)期運(yùn)行

19、維護(hù)期,36,軟件生存周期,軟件生存期的三個(gè)時(shí)期有時(shí)也籠統(tǒng)地稱為軟件開發(fā),為更清楚地表達(dá)生存期內(nèi)各個(gè)階段的工作和各階段間的關(guān)系,可為生存期設(shè)計(jì)不同的范型,或稱模型。如:,瀑布模型,螺旋模型,噴泉模型,,,軟件生存周期軟件生存期的三個(gè)時(shí)期有時(shí)也籠統(tǒng)地稱為軟件開發(fā),37,軟件生存周期方法學(xué),軟件工程采用的生存周期方法學(xué)就是,從時(shí)間角度對軟件開發(fā)和維護(hù)的復(fù)雜問題進(jìn)行分解,將軟件的生存周期分為若干階段,需求定義,軟件設(shè)計(jì),編程,測試,運(yùn)行維護(hù)等,每個(gè)階段有相對獨(dú)立的任務(wù),便于分工協(xié)作,使軟件開發(fā)過程按有秩序能管理的方式組織起來,從而降低軟件開發(fā)的難度,,,軟件生存周期方法學(xué)軟件工程采用的生存周期方法學(xué)

20、就是,38,軟件生命周期的花費(fèi)比例,,,軟件生命周期的花費(fèi)比例,39,1 軟件工程的基本概念,1.1,軟件工程學(xué)的形成和發(fā)展,1.2,軟件工程學(xué)研究的內(nèi)容,1.3,軟件與軟件生命周期,1.4,軟件工程基本原則,,,,1 軟件工程的基本概念1.1 軟件工程學(xué)的形成和發(fā)展,40,1.4 軟件工程基本原則,通用性和指導(dǎo)性,軟件工程實(shí)踐總結(jié)出的基本現(xiàn)象,穩(wěn)定性,不會時(shí)時(shí)改變,不依賴于采用的技術(shù)、方法和工具,概括性,針對軟件工程和軟件產(chǎn)品特性的抽象描述,基礎(chǔ)性,理解和采用它需有具體的方法和技術(shù)做補(bǔ)充,,,1.4 軟件工程基本原則通用性和指導(dǎo)性,41,軟件工程的原則,,,,,,原則,方法與技術(shù),

21、方法學(xué),工具,,Principle,Method & Technique,體現(xiàn)原則的途徑和步驟,Methodology,方法和技術(shù)的組合,支持整個(gè)軟件工程過程,Tools,支持方法、技術(shù)和方法學(xué)的軟件,,,,軟件工程的原則原則方法與技術(shù)方法學(xué)工具PrincipleMe,42,一般性原則,嚴(yán)格性與形式化,復(fù)雜性和分解,模塊化,抽象性和細(xì)化,變更預(yù)見性,通用性與復(fù)用性,遞增式,,,一般性原則嚴(yán)格性與形式化,43,軟件質(zhì)量管理原則,產(chǎn)品質(zhì)量以滿足用戶需求為最高準(zhǔn)則,質(zhì)量第一,以人為本,質(zhì)量與生產(chǎn)率,質(zhì)量成本,密切與用戶的聯(lián)系,盡早排除缺陷,實(shí)施過程質(zhì)量控制,,,軟件質(zhì)量管理原則產(chǎn)品質(zhì)量以滿足用戶需求

22、為最高準(zhǔn)則,44,文檔編制原則,在文檔標(biāo)準(zhǔn)基礎(chǔ)上剪裁,注意讀者對象,便于使用和查找,使用術(shù)語、概念不應(yīng)有矛盾,描述的精確性,無多義性,專職人員與開發(fā)人員結(jié)合,獨(dú)立性,,,文檔編制原則在文檔標(biāo)準(zhǔn)基礎(chǔ)上剪裁,45,需求分析與定義原則,編制需求規(guī)格說明以前,必須十分明確要解決的問題,即應(yīng)先明確需求,真正弄清需求,還應(yīng)包括為什么這樣定義,需求不清必將導(dǎo)致預(yù)算不準(zhǔn),總結(jié)產(chǎn)生錯(cuò)誤的原因:,需求變更,遺漏重要需求,與用戶交流不暢,需求分析不充分,需求規(guī)格說明質(zhì)量低劣,發(fā)現(xiàn)需求規(guī)格說明中有問題,應(yīng)立即著手解決,不可將其帶入后續(xù)開發(fā)階段,需求規(guī)格說明中不應(yīng)含有待確定的部分,進(jìn)行需求分析時(shí)不做設(shè)計(jì),不應(yīng)將需求分析

23、做什么與如何做混淆,,,需求分析與定義原則編制需求規(guī)格說明以前,必須十分明確要解決的,46,設(shè)計(jì)原則,重視需求向設(shè)計(jì)轉(zhuǎn)化工作,必要時(shí)比較多個(gè)設(shè)計(jì)方案,設(shè)計(jì)應(yīng)能和需求對應(yīng),保證每項(xiàng)需求均在設(shè)計(jì)中得到體現(xiàn),設(shè)計(jì)文檔是設(shè)計(jì)的成果,頭腦中的設(shè)想不是設(shè)計(jì),盡可能復(fù)用一切可復(fù)用的部分,設(shè)計(jì)應(yīng)易于變更、易于維護(hù)、易于排錯(cuò),優(yōu)秀的設(shè)計(jì)出自優(yōu)秀人才之手,,,設(shè)計(jì)原則重視需求向設(shè)計(jì)轉(zhuǎn)化工作,必要時(shí)比較多個(gè)設(shè)計(jì)方案,47,編碼原則,簡明清晰,盡可能少用、甚至不用全局變量,程序執(zhí)行速度不應(yīng)優(yōu)先于正確性的考慮,命名易記,充分注釋,命名唯一,可追溯,注意常見的規(guī)律是:編碼錯(cuò)誤通常相對集中,,,編碼原則簡明清晰,48,管理

24、原則,大型復(fù)雜項(xiàng)目管理重于技術(shù),人員不在多,而在精,計(jì)劃指標(biāo)應(yīng)切合實(shí)際,不作不切實(shí)際的計(jì)劃,注意收集、積累數(shù)據(jù),不求一次估算能十分精確,但求不斷調(diào)整,大型項(xiàng)目重視風(fēng)險(xiǎn)分析,項(xiàng)目進(jìn)展快需分析原因,不可盲目樂觀,項(xiàng)目完成以后,總結(jié)分析有益于積累經(jīng)驗(yàn),,,管理原則大型復(fù)雜項(xiàng)目管理重于技術(shù),49,軟件過程改進(jìn),質(zhì)量依賴于過程,過程需要管理,軟件過程,包括哪些過程,如何改進(jìn),能力成熟度水平:,CMM,五級,軟件過程改進(jìn)(,SPI,),,,軟件過程改進(jìn)質(zhì)量依賴于過程,50,不成熟過程的特征,隨意的,非強(qiáng)制性的,主要依賴于實(shí)踐者,產(chǎn)品的功能、質(zhì)量和進(jìn)度常有沖突,引入新技術(shù)時(shí)的風(fēng)險(xiǎn),質(zhì)量難以預(yù)測,,,不成熟過

25、程的特征隨意的,51,成熟過程的特征,工作按計(jì)劃有序地進(jìn)行,過程、規(guī)程、文檔規(guī)范,有定義、文檔化,易理解、易使用、可裁減,可持續(xù)改進(jìn),管理的可見性,產(chǎn)品和過程可度量、可預(yù)測,新技術(shù)可以及時(shí)得到有效應(yīng)用,,,成熟過程的特征工作按計(jì)劃有序地進(jìn)行,52,CMU/SEI,,5,級,-,優(yōu)化層,* 過程更改管理,* 技術(shù)更改管理,* 錯(cuò)誤預(yù)防,,4,級,-,管理層,* 質(zhì)量管理,* 過程量化管理,,3,級,-,定義層,*,同級評審,組間協(xié)作,* 軟件產(chǎn)品工程,* 軟件集成管理,培訓(xùn)計(jì)劃,* 軟件過程定義,* 軟件過程要點(diǎn),,2,級,-,可重復(fù)層,軟件配置管理,軟件質(zhì)量保證,軟件子合同管理,* 軟件項(xiàng)目追

26、蹤與監(jiān)控,軟件項(xiàng)目計(jì)劃,需求管理,,1,級,-,初始層,軟件過程成熟度模型的關(guān)鍵子過程域,能力成熟度模型,,,CMU/SEI5級-優(yōu)化層4級-管理層3級-定義層2級-可重,53,第三部分 軟件工程,軟件工程的基本概念,軟件開發(fā)方法與工作模型,結(jié)構(gòu)化開發(fā)方法概述,習(xí)題,,,,,第三部分 軟件工程軟件工程的基本概念,54,2 軟件開發(fā)方法與工作模型,2.1,結(jié)構(gòu)化開發(fā)方法,2.2,原型化方法,2.3,面向?qū)ο蟮拈_發(fā)方法,,,,2 軟件開發(fā)方法與工作模型2.1 結(jié)構(gòu)化開發(fā)方法,55,2.1 結(jié)構(gòu)化開發(fā)方法,結(jié)構(gòu)化方法是現(xiàn)有軟件開發(fā)方法中最成熟,應(yīng)用最廣泛的方法,結(jié)構(gòu)化開發(fā)方法的主要特點(diǎn)是

27、快速,自然和方便,結(jié)構(gòu)化程序設(shè)計(jì)的概念首先是從編寫程序中使用轉(zhuǎn)向(,GOTO,)語句引起的,GOTO,語句的過多使用使得程序結(jié)構(gòu)混亂,容易出錯(cuò),且出錯(cuò)后不易發(fā)現(xiàn)和更正,,,2.1 結(jié)構(gòu)化開發(fā)方法結(jié)構(gòu)化方法是現(xiàn)有軟件開發(fā)方法中最成熟,56,結(jié)構(gòu)化開發(fā)方法,結(jié)構(gòu)化開發(fā)方法的出發(fā)點(diǎn),為了保證程序設(shè)計(jì)的質(zhì)量,使設(shè)計(jì)程序具有易讀性、易理解性、通用性好,執(zhí)行時(shí)具有較高的效率,結(jié)構(gòu)化開發(fā)方法的基本要求,在詳細(xì)設(shè)計(jì)階段所有的模塊只用三種基本控制結(jié)構(gòu),單入口、單出口和順序,選擇,循環(huán),在設(shè)計(jì)過程中采用自頂向下逐步求精的設(shè)計(jì)方法,,,結(jié)構(gòu)化開發(fā)方法結(jié)構(gòu)化開發(fā)方法的出發(fā)點(diǎn),57,結(jié)構(gòu)化開發(fā)方法,結(jié)構(gòu)化開發(fā)方法的組

28、成,70,年代初 結(jié)構(gòu)化程序設(shè)計(jì)方法,SP,法,70,年代中 結(jié)構(gòu)化設(shè)計(jì)方法,SD,法,70,年代末 結(jié)構(gòu)化程序分析方法,SA,法,SA,,,SD,,,SP,法相互銜接,形成了一整套開發(fā)方法,若將,SA,,,SD,法結(jié)合起來,又稱為結(jié)構(gòu)化分析與設(shè)計(jì)技術(shù)(,SADT,技術(shù)),,,結(jié)構(gòu)化開發(fā)方法結(jié)構(gòu)化開發(fā)方法的組成,58,結(jié)構(gòu)化方法的工作模型,瀑布模型(,Waterfall Model,)是結(jié)構(gòu)化方法的工作模型,但從,80,年代開始,逐漸發(fā)現(xiàn)其不足:,軟件開發(fā)過程是一個(gè)充滿回朔過程,而瀑布模型將其分割為獨(dú)立的幾個(gè)階段, 不能從本質(zhì)上反映軟件開發(fā)過程本身的規(guī)律,過分強(qiáng)調(diào)復(fù)審,并不能完全避免較為頻繁的

29、變動,盡管如此,瀑布模型仍然是開發(fā)軟件產(chǎn)品的一個(gè)行之有效的工程模型,,,結(jié)構(gòu)化方法的工作模型瀑布模型(Waterfall Model,59,2 軟件開發(fā)方法與工作模型,2.1,結(jié)構(gòu)化開發(fā)方法,2.2,原型化方法,2.3,面向?qū)ο蟮拈_發(fā)方法,,,,2 軟件開發(fā)方法與工作模型2.1 結(jié)構(gòu)化開發(fā)方法,60,2.2 原型化方法,原型是軟件開發(fā)過程中軟件的一個(gè)早期可運(yùn)行的版本,它反映了最終系統(tǒng)的部分重要特征,原型化方法的基本思想是花費(fèi)少量代價(jià)建立一個(gè)可運(yùn)行的系統(tǒng),使用戶及早獲得學(xué)習(xí)的機(jī)會,原型化方法又稱速成原型法(,Rapid Prototyping,),強(qiáng)調(diào)的是軟件開發(fā)人員與用戶的不斷交互,通

30、過原型的演進(jìn)不斷適應(yīng)用戶任務(wù)改變的需求,將維護(hù)和修改階段的工作盡早進(jìn)行,使用戶驗(yàn)收提前,從而使軟件產(chǎn)品更加適用,,,2.2 原型化方法原型是軟件開發(fā)過程中軟件的一個(gè)早期可運(yùn)行,61,原型化方法分類,原型化方法按運(yùn)用原型的目的和方式的不同分為:,快速建立漸進(jìn)原型(,RSP,法,,Rapid Sequential Prototyping,),該法建立的原型反映了系統(tǒng)的某些特征,讓用戶學(xué)習(xí),有利于獲得更加精確的需求說明書,后階段的工作仍按照瀑布模型開發(fā),快速建立需求規(guī)格原型(,RCP,法,,Rapid Cyclic Prototyping,),該法采用循環(huán)漸進(jìn)的開發(fā)方式,對系統(tǒng)模型作連續(xù)精化,將系

31、統(tǒng)需要具備的性質(zhì)逐步添加上去,直至所有性質(zhì)全部滿足,此時(shí)的原型模型也就是最終的產(chǎn)品,速成原型適合于開發(fā)“探索型”,“實(shí)驗(yàn)型”與“進(jìn)化型”一類的軟件系統(tǒng),速成原型的工作模型是一個(gè)循環(huán)的模型,,,原型化方法分類原型化方法按運(yùn)用原型的目的和方式的不同分為:,62,循環(huán)的速成原型工作模型,速成原型循環(huán)方式步驟:,快速分析,快速確定軟件系統(tǒng)的基本要求,確定原型所要體現(xiàn)的特征(界面,總體結(jié)構(gòu),功能,性能),構(gòu)造原型,在快速分析的基礎(chǔ)上根據(jù)基本規(guī)定說明,忽略細(xì)節(jié),只考慮主要特征,快速構(gòu)造一個(gè)可運(yùn)行的系統(tǒng),它有三類原型:用戶界面原型,功能原型,性能原型,運(yùn)行和評價(jià)原型,用戶試用原型并與開發(fā)者之間頻繁交流,發(fā)現(xiàn)

32、問題,目的是驗(yàn)證原型的正確性,修正與改進(jìn),對原型進(jìn)行修改,增刪,,快速分析或修改,運(yùn)行,構(gòu)造,評價(jià),原型,,,循環(huán)的速成原型工作模型速成原型循環(huán)方式步驟:快速分析或修改運(yùn),63,循環(huán)的速成原型工作模型,細(xì)化的速成原型工作模型,快速分析,確定初步規(guī)格說明,構(gòu)造原型,運(yùn)行,/,評價(jià)原型,原型完成否,要細(xì)部說明否,效果滿意否,嚴(yán)格說明細(xì)部,整理原型提供文檔,修正改進(jìn)原型,N,N,Y,Y,Y,N,,,循環(huán)的速成原型工作模型細(xì)化的速成原型工作模型快速分析,確定初,64,2 軟件開發(fā)方法與工作模型,2.1,結(jié)構(gòu)化開發(fā)方法,2.2,原型化方法,2.3,面向?qū)ο蟮拈_發(fā)方法,,,,2 軟件開發(fā)方法與工作模型

33、2.1 結(jié)構(gòu)化開發(fā)方法,65,2.3 面向?qū)ο蟮拈_發(fā)方法,面向過程的開發(fā)方法,面向數(shù)據(jù)流設(shè)計(jì),面向數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì),面向?qū)ο蟮拈_發(fā)方法(,OOSD,),面向?qū)ο蟮姆治觯?OOA,),面向?qū)ο蟮脑O(shè)計(jì)(,OOD,),面向?qū)ο蟮某绦蛟O(shè)計(jì)(,OOP,),,,2.3 面向?qū)ο蟮拈_發(fā)方法面向過程的開發(fā)方法,66,面向過程的開發(fā)方法,早期的高級語言都是面向過程的,程序設(shè)計(jì)者必然要專注于:,程序?qū)?shù)據(jù)的處理過程,——,面向數(shù)據(jù)流設(shè)計(jì),數(shù)據(jù)結(jié)構(gòu),——,面向數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì),因此,由軟件解決的問題通常用軟件系統(tǒng)的,數(shù)據(jù)流圖,或,數(shù)據(jù)結(jié)構(gòu),來表示,,,面向過程的開發(fā)方法早期的高級語言都是面向過程的,67,面向過程的開

34、發(fā)方法,數(shù)據(jù)流圖,描述軟件系統(tǒng)的數(shù)據(jù)從輸入到輸出的流程,適用于幾乎所有順序處理的軟件,數(shù)據(jù)結(jié)構(gòu),描述軟件系統(tǒng)的輸入輸出數(shù)據(jù)結(jié)構(gòu),適用于數(shù)據(jù)處理,尤其輸入與輸出數(shù)據(jù)結(jié)構(gòu)相似的軟件系統(tǒng),,,面向過程的開發(fā)方法數(shù)據(jù)流圖,68,面向?qū)ο蟮拈_發(fā)方法(OOSD),面向?qū)ο蟮拈_發(fā)方法(,OOSD,,,Object-Oriented Software Development,),根據(jù)穩(wěn)定的對象建立系統(tǒng)模型,可很好地適應(yīng)需要的變化,具有良好的可維護(hù)性、可擴(kuò)充性和可重用性,是軟件工程領(lǐng)域的一個(gè)研究重點(diǎn),被譽(yù)為,90,年代軟件的核心技術(shù)之一,,,面向?qū)ο蟮拈_發(fā)方法(OOSD)面向?qū)ο蟮拈_發(fā)方法(OOSD,,69,面

35、向?qū)ο蟮拈_發(fā)方法,——,基本思想,對問題領(lǐng)域進(jìn)行自然的分割,以便接近人類通常思維的方式,建立問題領(lǐng)域的模型,以便對客觀的信息實(shí)體進(jìn)行結(jié)構(gòu)和行為的模擬,從而使設(shè)計(jì)的軟件更直接地表現(xiàn)問題的求解過程,以對象作為最基本的元素分析和解決問題的核心,,,面向?qū)ο蟮拈_發(fā)方法——基本思想對問題領(lǐng)域進(jìn)行自然的分割,以便,70,面向?qū)ο蟮拈_發(fā)方法,——,組成,面向?qū)ο蟮拈_發(fā)方法的組成,面向?qū)ο蟮姆治觯?OOA,,,Object-Oriented Analysis,),面向?qū)ο蟮脑O(shè)計(jì)(,OOD,,,Object-Oriented,,Design,),面向?qū)ο蟮某绦蛟O(shè)計(jì)(,OOP,,,Object-Oriented,

36、,Programming,),OOP,是,OOSD,的基礎(chǔ),OOA,和,OOD,是應(yīng)用,OOP,的基礎(chǔ),,,面向?qū)ο蟮拈_發(fā)方法——組成面向?qū)ο蟮拈_發(fā)方法的組成,71,面向?qū)ο蟮姆治?(OOA),OOA,分析階段將系統(tǒng)水平劃分為五個(gè)層次,主體,類和對象,結(jié)構(gòu),屬性,方法,OOA,的任務(wù)就是通過分析問題域,建立系統(tǒng)的概念模型,,,面向?qū)ο蟮姆治?(OOA)OOA分析階段將系統(tǒng)水平劃分為五個(gè),72,面向?qū)ο蟮姆治?(OOA),OOA,提供了三種模型:,信息模型,——,定義構(gòu)成系統(tǒng)的類和對象,它們的屬性與操作,狀態(tài)模型,——,描述系統(tǒng)的控制結(jié)構(gòu),即描述任何時(shí)刻對象的聯(lián)系以及聯(lián)系的變化,或稱為時(shí)序,常用

37、狀態(tài)圖和事件追蹤圖來描述,處理模型,——,描述系統(tǒng)內(nèi)部數(shù)據(jù)的傳送和處理方法,面向?qū)ο蟮姆治觯?OOA,)和設(shè)計(jì)(,OOD,)就是把面向?qū)ο蟮姆椒☉?yīng)用到軟件工程的分析和設(shè)計(jì)階段,從而建立更加適應(yīng)當(dāng)今龐大、復(fù)雜且易變的系統(tǒng)的模型,,,面向?qū)ο蟮姆治?(OOA)OOA提供了三種模型:,73,面向?qū)ο蟮脑O(shè)計(jì) (OOD),在,OOA,建立的五個(gè)水平層次(主體、類和對象、結(jié)構(gòu)、屬性、方法)基礎(chǔ)上,將系統(tǒng)結(jié)構(gòu)在縱向上劃分為:,問題部件,人機(jī)交互部件,任務(wù)管理部件,數(shù)據(jù)管理部件,,,面向?qū)ο蟮脑O(shè)計(jì) (OOD)在OOA建立的五個(gè)水平層次(主體、,74,面向?qū)ο蟮脑O(shè)計(jì) (OOD),OOD,法分為,概要設(shè)計(jì),細(xì)化對

38、象行為,添加新對象,認(rèn)定類,組類庫,確定外部接口,主要數(shù)據(jù)結(jié)構(gòu),詳細(xì)設(shè)計(jì),加細(xì)對象描述,,,面向?qū)ο蟮脑O(shè)計(jì) (OOD)OOD法分為,75,面向?qū)ο蟮某绦蛟O(shè)計(jì) (OOP),使用面向?qū)ο蟮某绦蛟O(shè)計(jì)語言進(jìn)行程序設(shè)計(jì),如:,C++,,,Delphi,,,Ada,,,SmallTalk,,,Java,面向?qū)ο蟮亩x:,面向?qū)ο?=,對象,+,類,+,繼承,+,消息,如果一個(gè)軟件系統(tǒng)是按照這樣四個(gè)概念設(shè)計(jì)和實(shí)現(xiàn)的,則可以認(rèn)為這個(gè)軟件系統(tǒng)是面向?qū)ο蟮?,,面向?qū)ο蟮某绦蛟O(shè)計(jì) (OOP)使用面向?qū)ο蟮某绦蛟O(shè)計(jì)語言進(jìn)行,76,面向?qū)ο蟮某绦蛟O(shè)計(jì) (OOP),,OOP,具有三個(gè)重要特征:,封裝,封裝是將數(shù)據(jù)和對這

39、些數(shù)據(jù)進(jìn)行處理所需的各種操作連接在一個(gè)根下的技術(shù),繼承,繼承是引用已經(jīng)定義的各種類,并將它們擴(kuò)充以滿足新的功能的一種技術(shù),多態(tài)性,多態(tài)性實(shí)質(zhì)上就是同一個(gè)名字可以用于多種目的,,,面向?qū)ο蟮某绦蛟O(shè)計(jì) (OOP) OOP具有三個(gè)重要特征:,77,面向過程與面向?qū)ο?傳統(tǒng)的面向過程(函數(shù))的編程方法,代碼和數(shù)據(jù)是分開的,函數(shù)是最重要的,一個(gè)程序中的所有代碼都應(yīng)圍繞這些函數(shù)來設(shè)計(jì),面向?qū)ο缶幊谭椒?必須將代碼與數(shù)據(jù)構(gòu)造在一個(gè)程序塊中,并且統(tǒng)一來管理,對象是最重要的,程序是圍繞這些對象來設(shè)計(jì)的,函數(shù)是第二位的,用對象調(diào)用函數(shù),而不是簡單地將對象(數(shù)據(jù))傳遞給函數(shù),,,面向過程與面向?qū)ο髠鹘y(tǒng)的面向過程(函

40、數(shù))的編程方法面向?qū)ο缶?78,面向?qū)ο蟮幕靖拍?對象(Object),類(Class),繼承(Inheritance),消息(Message),軟件IC(Integrate Circuit),,,面向?qū)ο蟮幕靖拍顚ο螅∣bject),79,面向?qū)ο蟮幕靖拍?對象(,Object,),是對客觀存在的事物的描述,可以是事、物,或概念,對象是將一組數(shù)據(jù)和使用該數(shù)據(jù)的一組基本操作或過程封裝在一起的實(shí)體,用戶不必知道對象行為的實(shí)現(xiàn)細(xì)節(jié),只需根據(jù)對象提供的外部特征接口訪問對象,對象的動作取決于發(fā)送給該對象的消息,消息通知對象要求完成某個(gè)功能。即,對象之間的通訊是以“做什么”的消息發(fā)送為契機(jī)的,并認(rèn)

41、為接受消息的對象知道如何去做,消息激活對象的相應(yīng)功能,“面向?qū)ο蟆钡幕舅枷刖褪前岩獦?gòu)造的系統(tǒng)表示為對象的集合,,,面向?qū)ο蟮幕靖拍顚ο螅∣bject),80,面向?qū)ο蟮幕靖拍?類(,Class,),是一組具有相同數(shù)據(jù)結(jié)構(gòu)和相同操作的對象的集合,在一個(gè)類中,每個(gè)對象都是類的實(shí)例,它們都可以使用類中提供的函數(shù),類相當(dāng)于,C,語言中的結(jié)構(gòu),或者說它是一種行為抽象數(shù)據(jù)類型,現(xiàn)實(shí)世界詞匯中的每一個(gè)名詞都表示一類對象,具有一組屬性或行為特征,例如,一個(gè)好吃的蘋果是蘋果類中的一部分,同樣也是水果類中的一部分,它也存在于食品這一大類中,若不使用類的概念,則每一個(gè)對象都需明確定義其所有的特征,若是使用類的

42、概念,則每一對象就只需定義它在大類中的特殊部分,對于類中共有的特性它可以繼承,,,面向?qū)ο蟮幕靖拍铑悾–lass),81,面向?qū)ο蟮幕靖拍?繼承(,Inheritance,),是使用現(xiàn)存的定義作為基礎(chǔ),建立新定義的技術(shù),繼承性分為:,單重繼承:一個(gè)子類只有一個(gè)父類,多重繼承:一個(gè)子類可有多個(gè)父類,一個(gè)子類可以從它的基類那里繼承所有的數(shù)據(jù)和操作,并擴(kuò)充自己的數(shù)據(jù)和操作,基類抽象出共同特性,子類表達(dá)其差別,現(xiàn)存類定義,父類(基類),新類定義,子類(派生類),繼承,,,,面向?qū)ο蟮幕靖拍罾^承(Inheritance)現(xiàn)存類定義父,82,面向?qū)ο蟮幕靖拍?消息(,Message,),對象之間的

43、聯(lián)系可表示為對象間的消息傳遞,即對象間的通訊機(jī)制,當(dāng)一個(gè)消息發(fā)送給某個(gè)對象時(shí),包含要求接收信息的對象去執(zhí)行某個(gè)功能的消息,從程序設(shè)計(jì)的角度來說消息類似于函數(shù)調(diào)用,消息是開發(fā),Windows,應(yīng)用程序用得最多的一個(gè)概念,我們程序所做的工作就是產(chǎn)生消息、傳遞消息、處理消息,Windows,正是通過消息來管理各種資源,并由此實(shí)現(xiàn)多任務(wù)功能,,,面向?qū)ο蟮幕靖拍钕ⅲ∕essage),83,面向?qū)ο蟮幕靖拍?軟件,IC,(,Integrate Circuit,),由來:,程序常常涉及到頻繁使用功能相同的模塊,盡管這些模塊對具體應(yīng)用的實(shí)現(xiàn)細(xì)節(jié)可能有些不同,如何使用和組合這些模塊,是構(gòu)建可重用模塊需要

44、解決的技術(shù)問題,類和繼承的概念有助于程序員開發(fā)這種共同性,軟件,IC,又稱軟件集成,它的思想是:,用一種集成機(jī)制將已經(jīng)成熟的軟件單元制成一個(gè)相對獨(dú)立的實(shí)體,使它們不加改動或做很少改動就可用于新的軟件系統(tǒng)中,從而減少重復(fù)勞動,提高生產(chǎn)率,“軟件,IC”,是一種可重用模塊,軟件,IC,的特征:,模塊性好,可靠性好,連接簡單,封裝性好,內(nèi)部功能高效實(shí)現(xiàn),具有清晰、簡明的說明,類,——,充當(dāng)了面向?qū)ο笙到y(tǒng)的構(gòu)造單元,,,面向?qū)ο蟮幕靖拍钴浖蘒C(Integrate Circui,84,第三部分 軟件工程,軟件工程的基本概念,軟件開發(fā)方法與工作模型,結(jié)構(gòu)化開發(fā)方法概述,習(xí)題,,,,,,第三部分 軟

45、件工程軟件工程的基本概念,85,3 結(jié)構(gòu)化開發(fā)方法概述,3.1 結(jié)構(gòu)化分析方法,3.2 結(jié)構(gòu)化設(shè)計(jì)方法,3.3 軟件編碼,3.4 軟件測試,3.5 軟件維護(hù),,,,3 結(jié)構(gòu)化開發(fā)方法概述3.1 結(jié)構(gòu)化分析方法,86,3.1 結(jié)構(gòu)化分析方法(SA),結(jié)構(gòu)化分析方法是需求分析中最常用的方法之一,在進(jìn)行需求分析(結(jié)構(gòu)化分析)之前,需要先進(jìn)行:,系統(tǒng)分析,實(shí)施計(jì)劃報(bào)告,,,3.1 結(jié)構(gòu)化分析方法(SA)結(jié)構(gòu)化分析方法是需求分析中最常,87,系統(tǒng)分析,系統(tǒng)分析是制定軟件項(xiàng)目計(jì)劃的第一步,它決定了所開發(fā)軟件的總目標(biāo),其任務(wù)包括:,確定所開發(fā)軟件的總體要求和適用范圍;,描述所開發(fā)軟件與外界接口關(guān)系;,確

46、定所需的硬、軟件支持;,對開發(fā)的進(jìn)度和成本的估計(jì);,分析系統(tǒng)的可行性;,確定所開發(fā)軟件與原有軟件的兼容性關(guān)系或其他關(guān)系;,確定所開發(fā)軟件的性能,預(yù)計(jì)內(nèi)部復(fù)雜性之間的折衷關(guān)系。,,,系統(tǒng)分析系統(tǒng)分析是制定軟件項(xiàng)目計(jì)劃的第一步,它決定了所開發(fā)軟,88,系統(tǒng)分析,在確定以上各項(xiàng)時(shí),常常要設(shè)想多種可能的方案,再根據(jù)需要從中進(jìn)行比較選擇,系統(tǒng)分析中對系統(tǒng)的可行性分析是十分重要的,這是此項(xiàng)目能否進(jìn)行的關(guān)鍵,它包括以下方面:,技術(shù)可行性研究,必須明確現(xiàn)有的條件是否能滿足開發(fā)軟件所需的技術(shù)設(shè)備、用戶的技術(shù)要求,開發(fā)時(shí)間是否合理等,經(jīng)濟(jì)可行性研究,對開發(fā)所需的經(jīng)費(fèi)和軟件所帶來的經(jīng)濟(jì)效益進(jìn)行估計(jì),社會可行性研究,

47、考慮所開發(fā)的軟件項(xiàng)目是否涉及版權(quán)糾紛等法律問題,以及投入運(yùn)行后對生產(chǎn)、管理或經(jīng)營體制帶來什么社會影響,,,系統(tǒng)分析在確定以上各項(xiàng)時(shí),常常要設(shè)想多種可能的方案,再根據(jù)需,89,實(shí)施計(jì)劃報(bào)告,在認(rèn)真做好上述系統(tǒng)分析工作的基礎(chǔ)上,要制定一個(gè)大致的實(shí)施計(jì)劃,也就是編寫一個(gè)實(shí)施計(jì)劃報(bào)告,這個(gè)報(bào)告只是對實(shí)施方案進(jìn)行粗略的描述,主要有四個(gè)方面的內(nèi)容,開發(fā)進(jìn)度,人員投入計(jì)劃,人員組織,資源的利用,,,實(shí)施計(jì)劃報(bào)告在認(rèn)真做好上述系統(tǒng)分析工作的基礎(chǔ)上,要制定一個(gè)大,90,實(shí)施計(jì)劃報(bào)告,一個(gè)實(shí)施計(jì)劃報(bào)告的提要實(shí)例:,軟件開發(fā)項(xiàng)目名稱,任務(wù)概述,負(fù)責(zé)單位(包括:管理機(jī)構(gòu)和任務(wù)的分解),開發(fā)人員組織(包括:組織結(jié)構(gòu)和任

48、務(wù)的分配),人員投入計(jì)劃(包括:總估計(jì)和各階段投入計(jì)劃),其他資源利用(包括:設(shè)備和資料),開發(fā)進(jìn)度(包括:階段的劃分,各階段的評審時(shí)間和提供開發(fā)進(jìn)展報(bào)告時(shí)間),項(xiàng)目完成檢驗(yàn)(包括:檢驗(yàn)機(jī)構(gòu),檢驗(yàn)方式和交付產(chǎn)品的清單),編寫的實(shí)施計(jì)劃報(bào)告只是對開發(fā)項(xiàng)目的初步設(shè)想,但也要反映出實(shí)施方案的主要內(nèi)容,,,實(shí)施計(jì)劃報(bào)告一個(gè)實(shí)施計(jì)劃報(bào)告的提要實(shí)例:,91,實(shí)施計(jì)劃報(bào)告,在軟件開發(fā)項(xiàng)目實(shí)施計(jì)劃得到批準(zhǔn)以后,便可開始工作,這時(shí)不要急于進(jìn)行軟件設(shè)計(jì),而是要弄清楚用戶的需要,需求分析做得不好,用戶和軟件開發(fā)人員未能全面地、精確地理解和表達(dá)這些需求,致使一些隱藏的問題隨著開發(fā)工作的進(jìn)行帶給后面階段,最終將給開發(fā)工

49、作造成不良的影響,,,,,,計(jì)劃,需求分析,設(shè)計(jì),編碼,測試,需求分析中發(fā)生的問題對后期開發(fā)工作造成的影響示意圖,,,實(shí)施計(jì)劃報(bào)告在軟件開發(fā)項(xiàng)目實(shí)施計(jì)劃得到批準(zhǔn)以后,便可開始工作,92,結(jié)構(gòu)化分析方法,需求分析最常用的方法是結(jié)構(gòu)化分析方法(Structured Analysis),它適用于分析大型數(shù)據(jù)處理系統(tǒng),該方法簡明,易于掌握,與設(shè)計(jì)階段的結(jié)構(gòu)化方法相銜接,將取得良好的設(shè)計(jì)效果,,,結(jié)構(gòu)化分析方法需求分析最常用的方法是結(jié)構(gòu)化分析方法(Stru,93,結(jié)構(gòu)化分析方法的基本思想和步驟,結(jié)構(gòu)化分析方法的基本思想是采用“分解”和“抽象”的基本手段,由頂向下逐層分解,具體步驟為:,理解當(dāng)前的現(xiàn)狀環(huán)境

50、,建立當(dāng)前系統(tǒng)的“具體模型”,從當(dāng)前系統(tǒng)的“具體模型”抽象出當(dāng)前系統(tǒng)的“邏輯模型”,分析目標(biāo)系統(tǒng)與當(dāng)前系統(tǒng)在邏輯上的差別,建立目標(biāo)系統(tǒng)的邏輯模型,為了對目標(biāo)系統(tǒng)做完整的描述,還需要考慮人機(jī)界面和其他一些問題,,,結(jié)構(gòu)化分析方法的基本思想和步驟結(jié)構(gòu)化分析方法的基本思想是采用,94,結(jié)構(gòu)化分析方法的描述方法,數(shù)據(jù)流圖(DFD)和分層的數(shù)據(jù)流圖,數(shù)據(jù)詞典(DD, Data Dictionary),加工說明,,,結(jié)構(gòu)化分析方法的描述方法數(shù)據(jù)流圖(DFD)和分層的數(shù)據(jù)流圖,95,(1),數(shù)據(jù)流圖,(DFD, Data Flow Diagram),數(shù)據(jù)流圖以圖形的方式表示系統(tǒng)中的信息變換和傳遞的過程,數(shù)據(jù)

51、流圖的基本符號只有下列四種:,數(shù)據(jù)流,加工,數(shù)據(jù)存儲,數(shù)據(jù)源點(diǎn)及數(shù)據(jù)終點(diǎn),畫,DFD,圖的方法:由外向里,自頂而下,逐層分解,,,,,(1)數(shù)據(jù)流圖(DFD, Data Flow Diagram,96,數(shù)據(jù)流圖的基本符號,數(shù)據(jù)流,數(shù)據(jù)流是具有名字且具有流向的數(shù)據(jù),用標(biāo)有名字的箭頭表示。每條數(shù)據(jù)流表示在這條流水線上有一組由一定成分組成的數(shù)據(jù)流動。,加工,表示對數(shù)據(jù)進(jìn)行的加工或變換。數(shù)據(jù)流圖中以標(biāo)有名字的圓圈代表加工,名字表示加工的含義,指向加工的數(shù)據(jù)流是該加工的輸入數(shù)據(jù),離開加工數(shù)據(jù)流是該加工的輸出數(shù)據(jù)。,數(shù)據(jù)存儲,文件是數(shù)據(jù)存儲形式的統(tǒng)稱,它表示了數(shù)據(jù)流在加工過程中需要存儲或查找的信息。文件以

52、標(biāo)有名字的粗線表示。,數(shù)據(jù)源點(diǎn)及數(shù)據(jù)終點(diǎn),標(biāo)明數(shù)據(jù)處理過程的數(shù)據(jù)來源和數(shù)據(jù)去向,數(shù)據(jù)流圖中已有名的方框表示,它只起到注釋作用,補(bǔ)充說明系統(tǒng)與其他外界環(huán)境的聯(lián)系。,,,數(shù)據(jù)流圖的基本符號數(shù)據(jù)流,97,銀行取款過程的數(shù)據(jù)流圖,,儲戶,,,核查,,登錄,,付款,取款信息,付款信息,取款信息,存折,取款單,無余拒付,帳卡,存折,,,銀行取款過程的數(shù)據(jù)流圖核查登錄付款取款信息付款信息取款信息存,98,分層的數(shù)據(jù)流圖DFD,畫分層,DFD,圖的基本原則,(,注:,DFD,圖不是流程圖,),數(shù)據(jù)守恒與數(shù)據(jù)封閉原則,加工的輸入輸出數(shù)據(jù)流是否匹配,應(yīng)成對出現(xiàn),即每一個(gè)加工既有輸入數(shù)據(jù)流又有輸出數(shù)據(jù)流,加工分解的

53、原則,畫分層,DFD,圖時(shí),各子系統(tǒng)的分解速度應(yīng)大致均勻,保持同步擴(kuò)展,一般情況下,每次每一加工可以分解為,2,~,4,個(gè)加工,至多不超過,7,~,8,個(gè),以免閱讀時(shí)增加理解的困難,在上層時(shí)分解的速度可略快,越到下層功能越具體,分解速度應(yīng)放慢,,,分層的數(shù)據(jù)流圖DFD畫分層DFD圖的基本原則 (注:DFD圖,99,分層的數(shù)據(jù)流圖DFD,畫分層,DFD,圖的基本原則,(cont.),子圖與父圖的“平衡”,在分層圖中,每一層都是它下層的父圖,同時(shí)又是它上層的子圖,父子平衡是父圖與子圖在輸入數(shù)據(jù)與輸出數(shù)據(jù)上應(yīng)保持信息的連續(xù)性,合理使用文件,為了優(yōu)先考慮重要問題,允許將某些細(xì)節(jié)推遲到下層,DFD,圖處

54、理,除出錯(cuò)處理外,對文件的處理也常常推遲,具體地說,上層,DFD,圖往往只畫出少量文件,借以保持畫面整潔,越往下層,畫出的文件越多,,,分層的數(shù)據(jù)流圖DFD畫分層DFD圖的基本原則(cont.),100,(2),數(shù)據(jù)詞典,(DD, Data Dictionary),數(shù)據(jù)詞典是,SA,方法的主要工具之一,它與數(shù)據(jù)流圖共同構(gòu)成系統(tǒng)的邏輯模型,沒有數(shù)據(jù)流圖則數(shù)據(jù)詞典難發(fā)揮作用,沒有數(shù)據(jù)詞典則數(shù)據(jù)流圖就不嚴(yán)格,數(shù)據(jù)詞典對數(shù)據(jù)流圖中出現(xiàn)的所有數(shù)據(jù)元素給出邏輯定義,有了數(shù)據(jù)詞典,使數(shù)據(jù)流程圖上的數(shù)據(jù)流加工和文件得到確切的解釋,,,(2)數(shù)據(jù)詞典(DD, Data Dictionary)數(shù)據(jù),101,數(shù)據(jù)詞

55、典的條目,數(shù)據(jù)詞典中有四種類型的條目,數(shù)據(jù)流(由多少個(gè)數(shù)據(jù)項(xiàng)組成),文件,數(shù)據(jù)項(xiàng)(單項(xiàng)數(shù)據(jù)),加工,,,數(shù)據(jù)詞典的條目數(shù)據(jù)詞典中有四種類型的條目,102,數(shù)據(jù)流條目,數(shù)據(jù)流條目給出某個(gè)數(shù)據(jù)流的定義,它通常是列出該數(shù)據(jù)流的定義,在進(jìn)行數(shù)據(jù)流定義時(shí),可采用如下符號:,“,=”——,表示定義為,“,+”——,表示“與”,“,[|]”——,表示“或”,即選擇括號中的某一項(xiàng),“,{}”——,表示“重復(fù)”,即括號中的項(xiàng)要重復(fù)若干次,重復(fù)次數(shù)的上下限也可以在括號中標(biāo)出,“()”,——,表示“可選”,,,數(shù)據(jù)流條目數(shù)據(jù)流條目給出某個(gè)數(shù)據(jù)流的定義,它通常是列出該數(shù)據(jù),103,文件條目,文件條目給出某個(gè)文件的定義

56、,同數(shù)據(jù)流一樣,文件的定義通常是列出文件記錄的組成數(shù)據(jù)項(xiàng),文件條目還可以指出文件的組織方式,如按單號遞增次序排列等,,,文件條目文件條目給出某個(gè)文件的定義,104,數(shù)據(jù)項(xiàng)條目,數(shù)據(jù)項(xiàng)條目給出某個(gè)數(shù)據(jù)單項(xiàng)的定義,通常是數(shù)據(jù)項(xiàng)的值類型,允許的取值范圍等,,,數(shù)據(jù)項(xiàng)條目數(shù)據(jù)項(xiàng)條目給出某個(gè)數(shù)據(jù)單項(xiàng)的定義,105,加工條目,加工條目又稱小說明,對數(shù)據(jù)流圖中的每一個(gè)不能再分解的基本加工都必須有一個(gè)小說明給出這個(gè)加工的精確描述,,,加工條目加工條目又稱小說明,106,(3)加工說明,結(jié)構(gòu)化語言(簡單,易學(xué),少二義性),判斷樹(描述一般組合條件,較清楚),判斷表(用于較復(fù)雜的組合條件),,,(3)加工說明結(jié)構(gòu)

57、化語言(簡單,易學(xué),少二義性),107,結(jié)構(gòu)化語言 (結(jié)構(gòu)化英語),結(jié)構(gòu)化語言介于自然語言和形式語言之間的一種半形式語言,是描述基本加工條目中的加工說明的常用工具,是自然語言的一個(gè)受某些限制的子集,沒有形式語言那么精確,嚴(yán)格,具有自然語言的簡單,易懂的特點(diǎn),結(jié)構(gòu)化語言一般分為內(nèi),外兩層,外層語法比較具體,外層語法描述操作的控制結(jié)構(gòu),如順序,選擇和循環(huán)等,內(nèi)層語法比較靈活,內(nèi)層語法根據(jù)系統(tǒng)的具體特點(diǎn)以及用戶的接受能力來確定,通常采用有動詞和賓語構(gòu)成的祈使句,,,結(jié)構(gòu)化語言 (結(jié)構(gòu)化英語)結(jié)構(gòu)化語言介于自然語言和形式語言之,108,結(jié)構(gòu)化語言的例子,順序結(jié)構(gòu),,MOVE,單科成績,TO,學(xué)生單科成

58、績表,選擇結(jié)構(gòu),,IF,存貨小于標(biāo)準(zhǔn)點(diǎn),,DO,定貨,,ELSE,(不小于標(biāo)準(zhǔn)點(diǎn)),,SET,標(biāo)志,重復(fù)結(jié)構(gòu),,FOR,每一個(gè)學(xué)員號碼,,PUT,學(xué)員成績,,REPEAT,FROM,消息線,GET,下一個(gè)消息,,WRITE,消息正文,,WRITE,消息頭和長度,,UNTIL,消息頭和長度達(dá)到某種條件,,,結(jié)構(gòu)化語言的例子順序結(jié)構(gòu)重復(fù)結(jié)構(gòu),109,判斷樹 (Decision Tree),判斷樹比判斷表更直觀,用它來描述具有多個(gè)條件的數(shù)據(jù)加工更容易被用戶接受,樹狀的分支表示多種不同的條件,分支的端點(diǎn)表示該分支對應(yīng)的條件要作的處理,新生錄取系統(tǒng),已達(dá)錄取分?jǐn)?shù)線,未達(dá)錄取分?jǐn)?shù)線,體檢合格,——,錄取,

59、體檢不合格,——,轉(zhuǎn)下一志愿學(xué)校,體檢不合格,——,不錄取,體檢合格,——,轉(zhuǎn)下一志愿學(xué)校,例:,,,判斷樹 (Decision Tree)判斷樹比判斷表更直觀新,110,判斷表 (Decision Table),判斷表由四部分組成,左上部分是決定這組條件的對象,右上部分列出各種可能的條件組合,左下部分列出所有的操作,右下部分說明在對應(yīng)的條件組合下,某個(gè)操作是否要執(zhí)行,,,1,2,3,4,條件,成績在錄取分?jǐn)?shù)線上,是,是,否,否,體檢結(jié)果合格,是,否,是,否,操作,錄取,√,,,,轉(zhuǎn)下一志愿學(xué)校,,√,√,,不錄取,,,,√,,,判斷表 (Decision Table)判斷表由四部分組成1,1

60、11,3 結(jié)構(gòu)化開發(fā)方法概述,3.1 結(jié)構(gòu)化分析方法,3.2 結(jié)構(gòu)化設(shè)計(jì)方法,3.3 軟件編碼,3.4 軟件測試,3.5 軟件維護(hù),,,,3 結(jié)構(gòu)化開發(fā)方法概述3.1 結(jié)構(gòu)化分析方法,112,3.2 結(jié)構(gòu)化設(shè)計(jì)方法,軟件設(shè)計(jì)的任務(wù)是,將需求分析階段獲得的需求說明轉(zhuǎn)換為計(jì)算機(jī)中可實(shí)現(xiàn)的系統(tǒng),完成系統(tǒng)的結(jié)構(gòu)設(shè)計(jì),包括數(shù)據(jù)結(jié)構(gòu)和程序結(jié)構(gòu),最后得到軟件設(shè)計(jì)說明書,有代表性的設(shè)計(jì)方法有,結(jié)構(gòu)設(shè)計(jì)方法,——,其設(shè)計(jì)是以數(shù)據(jù)流圖為基礎(chǔ)構(gòu)成模塊結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu)(,JACKSON,)方法,——,其設(shè)計(jì)是以數(shù)據(jù)結(jié)構(gòu)為基礎(chǔ)建立模塊結(jié)構(gòu),PARNAS,方法,——,以信息隱藏為原則建立模塊結(jié)構(gòu),,,3.2 結(jié)構(gòu)化設(shè)計(jì)

61、方法軟件設(shè)計(jì)的任務(wù)是,113,結(jié)構(gòu)化設(shè)計(jì)方法,結(jié)構(gòu)化設(shè)計(jì)就是采用最佳的可能方法設(shè)計(jì)系統(tǒng)的各個(gè)組成部分,以及各成分之間的相互聯(lián)系的技術(shù),結(jié)構(gòu)化設(shè)計(jì)是這樣一個(gè)過程,它決定用哪些方法把哪些部分聯(lián)系起來,才能解決好某個(gè)具有清楚定義的問題,,,結(jié)構(gòu)化設(shè)計(jì)方法結(jié)構(gòu)化設(shè)計(jì)就是采用最佳的可能方法設(shè)計(jì)系統(tǒng)的各個(gè),114,軟件設(shè)計(jì),軟件設(shè)計(jì)是軟件開發(fā)的關(guān)鍵步驟,直接影響軟件質(zhì)量,分為兩個(gè)階段,總體設(shè)計(jì),解決系統(tǒng)的模塊結(jié)構(gòu),分解模塊,確定系統(tǒng)的模塊層次關(guān)系,詳細(xì)設(shè)計(jì),對系統(tǒng)中的每個(gè)模塊的內(nèi)部過程進(jìn)行設(shè)計(jì)和描述,,,軟件設(shè)計(jì)軟件設(shè)計(jì)是軟件開發(fā)的關(guān)鍵步驟,直接影響軟件質(zhì)量,115,(1) 總體設(shè)計(jì),具體任務(wù),劃分模塊,

62、確定模塊功能,確定模塊間的調(diào)用關(guān)系,確定模塊間的界面,設(shè)計(jì)步驟,(,1,)分析系統(tǒng),DFD,圖的類型,將其轉(zhuǎn)換為初始的模塊結(jié)構(gòu)圖(,Structured Chart,,簡稱,SC,圖),(,2,)按照“降低塊間聯(lián)系,提高塊內(nèi)聯(lián)系”的設(shè)計(jì)總則修改、完善系統(tǒng)的模塊圖,寫出模塊的功能說明,,,(1) 總體設(shè)計(jì)具體任務(wù),116,總體設(shè)計(jì)步驟,1——,分析系統(tǒng),DFD,圖,通常可把數(shù)據(jù)流圖分為,轉(zhuǎn)換處理型,——,采用轉(zhuǎn)換分析,事務(wù)處理型,——,采用事務(wù)分析,SD,方法的任務(wù)是,按照,DFD,圖的不同結(jié)構(gòu)類型,分別采用轉(zhuǎn)換分析和事務(wù)分析,從,DFD,圖導(dǎo)出目標(biāo)系統(tǒng)的模塊結(jié)構(gòu),SC,圖,,,總體設(shè)計(jì)步驟1—

63、—分析系統(tǒng)DFD圖通常可把數(shù)據(jù)流圖分為,117,數(shù)據(jù)流圖——轉(zhuǎn)換處理型,轉(zhuǎn)換處理過程和所包含的數(shù)據(jù)流可分為,輸入數(shù)據(jù),——,輸入流,信息由外部數(shù)據(jù)轉(zhuǎn)換為內(nèi)部形式進(jìn)入系統(tǒng),變換數(shù)據(jù),——,轉(zhuǎn)化流,在轉(zhuǎn)換流中,對內(nèi)部形式的信息進(jìn)行一系列加工處理,得到內(nèi)部形式的結(jié)果,輸出數(shù)據(jù),——,輸出流,在輸出流中,信息由內(nèi)部形式的結(jié)果轉(zhuǎn)換為外部形式數(shù)據(jù)流出系統(tǒng),,輸入,加工,,中心,加工,,輸出,加工,輸入信息,內(nèi)部結(jié)果,內(nèi)部數(shù)據(jù),輸出信息,,,數(shù)據(jù)流圖——轉(zhuǎn)換處理型轉(zhuǎn)換處理過程和所包含的數(shù)據(jù)流可分為輸入,118,數(shù)據(jù)流圖——事務(wù)處理型,在事務(wù)處理中,輸入數(shù)據(jù)流,——,事務(wù)流,加工,——,事務(wù)中心,若干平行數(shù)據(jù)

64、流,——,事務(wù)路徑,當(dāng)事務(wù)流中的事務(wù)送到事務(wù)中心后,事務(wù)中心分析每一事務(wù),根據(jù)事務(wù)處理的特點(diǎn)和性質(zhì)選擇一個(gè)事務(wù)路徑繼續(xù)進(jìn)行處理,,接收,,事務(wù),分析,,動作,1,,動作,2,,動作,n,······,接收部分,事務(wù)中心,發(fā)送部分,,,數(shù)據(jù)流圖——事務(wù)處理型在事務(wù)處理中接收事務(wù)動作1動作2動作n,119,轉(zhuǎn)換處理型——轉(zhuǎn)換分析,轉(zhuǎn)換分析是系統(tǒng)結(jié)構(gòu)設(shè)計(jì)的一種策略,使用轉(zhuǎn)換分析技術(shù)可把轉(zhuǎn)換型處理數(shù)據(jù)流圖轉(zhuǎn)換為初始的標(biāo)準(zhǔn)結(jié)構(gòu),根據(jù)軟件結(jié)構(gòu)的度量準(zhǔn)則、模塊化準(zhǔn)則、模塊獨(dú)立性準(zhǔn)則,修改完善軟件結(jié)構(gòu)圖,從而得到結(jié)構(gòu)良好的最終結(jié)構(gòu)圖,轉(zhuǎn)換分析步驟為,確定數(shù)據(jù)流圖的類型,確定輸入流、轉(zhuǎn)換流、輸出流的流界(邊界)

65、,進(jìn)行一級分解,設(shè)計(jì)上層模塊,進(jìn)行二級分解,設(shè)計(jì)中下層模塊,進(jìn)一步細(xì)化,,,轉(zhuǎn)換處理型——轉(zhuǎn)換分析轉(zhuǎn)換分析是系統(tǒng)結(jié)構(gòu)設(shè)計(jì)的一種策略,120,轉(zhuǎn)換處理與事務(wù)處理,通常一個(gè)大型軟件系統(tǒng)是轉(zhuǎn)換處理型結(jié)構(gòu)和事務(wù)型結(jié)構(gòu)的混合結(jié)構(gòu),所以,設(shè)計(jì)者常利用以轉(zhuǎn)換分析為主,事務(wù)分析為輔的方式進(jìn)行軟件結(jié)構(gòu)設(shè)計(jì),當(dāng)數(shù)據(jù)流圖明顯呈現(xiàn)出事務(wù)型特征時(shí),就要用事務(wù)型分析技術(shù),從相應(yīng)的數(shù)據(jù)流程圖導(dǎo)出標(biāo)準(zhǔn)構(gòu)圖,其步驟與轉(zhuǎn)換分析相同,,,轉(zhuǎn)換處理與事務(wù)處理通常一個(gè)大型軟件系統(tǒng)是轉(zhuǎn)換處理型結(jié)構(gòu)和事務(wù),121,總體設(shè)計(jì)步驟,2——,完善系統(tǒng)模塊圖,具體應(yīng)從以下方面改進(jìn):,盡可能建立功能模塊,消除重復(fù)功能,模塊的作用范圍應(yīng)是控制范圍的子

66、集,作用范圍,——,包括模塊本身及其所有下屬模塊,控制范圍,——,是指判斷所涉及到的模塊,模塊的大小恰當(dāng),總行數(shù)在,10,~,100,,最好在,30,~,60,模塊的扇入扇出數(shù)不宜太多(除服務(wù)性模塊外),一個(gè)模塊直接控制下屬模塊的個(gè)數(shù)稱為該模塊的扇出數(shù),一個(gè)模塊的上級模塊個(gè)數(shù)稱為扇入數(shù),扇入高可增加模塊的利用率,扇出低可減少模塊調(diào)用和控制的復(fù)雜度,,,總體設(shè)計(jì)步驟2——完善系統(tǒng)模塊圖具體應(yīng)從以下方面改進(jìn):,122,(2) 詳細(xì)設(shè)計(jì),對系統(tǒng)中的每個(gè)模塊的內(nèi)部過程進(jìn)行設(shè)計(jì)和描述,常用的描述方法有:,流程圖(程序框圖),N-S,圖(方框圖),PAD,圖,PDL,語言,UML,,,(2) 詳細(xì)設(shè)計(jì)對系統(tǒng)中的每個(gè)模塊的內(nèi)部過程進(jìn)行設(shè)計(jì)和描述,123,流程圖 (程序框圖),表達(dá)算法簡明直觀,易于學(xué)習(xí)掌握,是一種常用的詳細(xì)設(shè)計(jì)工具,符號名,使用圖形,意 義,端點(diǎn)符,,表示流程圖的開始或結(jié)束,輸入,/,輸出符,,表示數(shù)據(jù)的輸入,/,輸出,處理符,,表示對數(shù)據(jù)的處理,特定處理符,,表示調(diào)用子程序等,,,,,,,流程圖 (程序框圖)表達(dá)算法簡明直觀,易于學(xué)習(xí)掌握,是一種常,124,流程圖 (程序框圖

展開閱讀全文
溫馨提示:
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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!