




已閱讀5頁,還剩92頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
軟件工程,泉州移動支撐中心 林鑫顯 Email:13959748898139.com 2010年9月,主要內(nèi)容,軟件工程基礎(chǔ)知識 軟件開發(fā)過程 軟件開發(fā)模型 面向?qū)ο蠹夹g(shù) 統(tǒng)一建模語言(UML) 結(jié)構(gòu)化分析方法 軟件文件標(biāo)準(zhǔn)與規(guī)范 結(jié)構(gòu)化設(shè)計方法和工具 過程管理,2,IEEE定義:軟件工程是 (1)將系統(tǒng)的、嚴(yán)格約束的、可量化的方法應(yīng)用于軟件的開發(fā)、運行和維護。即將工程化應(yīng)用于軟件。 (2)在(1)中所述方法的研究。,軟件工程目的:為建造高質(zhì)量的軟件提供一個框架。 軟件工程包含:一個過程、一組方法、一系列工具,什么是軟件工程,主要內(nèi)容,軟件工程基礎(chǔ)知識 軟件開發(fā)過程 軟件開發(fā)模型 面向?qū)ο蠹夹g(shù) 統(tǒng)一建模語言(UML) 結(jié)構(gòu)化分析方法 軟件文件標(biāo)準(zhǔn)與規(guī)范 結(jié)構(gòu)化設(shè)計方法和工具 過程管理,4,可行性分析 需求分析和定義 概要設(shè)計 詳細(xì)設(shè)計 編寫代碼 單元測試 集成測試 系統(tǒng)測試 提交系統(tǒng) 維護,軟件開發(fā)的幾個階段,1.計劃,2.需求分析,3.設(shè)計,4.編碼,5.測試,6.運行與維護,6,軟件開發(fā)過程,1. 需求分析 需求分析是根據(jù)客戶的要求,清楚地了解客戶需求中的產(chǎn)品功能、特性、性能、界面和具體規(guī)格等,然后進(jìn)行分析,確定軟件產(chǎn)品所能達(dá)到的目標(biāo)。軟件產(chǎn)品需求分析是軟件開發(fā)過程的第一個環(huán)節(jié),也是最重要的一個環(huán)節(jié)。如果需求分析做不好,下面的設(shè)計、編程做得再好,客戶(用戶)也不可能對開發(fā)出來的軟件產(chǎn)品感到滿意。軟件產(chǎn)品需求分析的結(jié)果要文檔化,而且這類文檔的描述盡量不要用專業(yè)術(shù)語,從而使用戶能夠完全理解需求分析的結(jié)果,參與對其復(fù)審的過程。,7,軟件開發(fā)過程,2. 設(shè)計 軟件設(shè)計是根據(jù)需求分析的結(jié)果,考慮如何在邏輯、程序上去實現(xiàn)所定義的產(chǎn)品功能、特性等??梢苑譃楦乓O(shè)計和詳細(xì)設(shè)計,也可以分為數(shù)據(jù)結(jié)構(gòu)設(shè)計、軟件體系結(jié)構(gòu)設(shè)計、應(yīng)用接口設(shè)計、模塊設(shè)計、算法設(shè)計、界面設(shè)計等。設(shè)計過程將需求轉(zhuǎn)換成軟件表示,設(shè)計的結(jié)果將作為編碼的框架和依據(jù),以提高編碼的效率和質(zhì)量。 設(shè)計的文檔化體現(xiàn)在產(chǎn)品規(guī)格說明書(functional specification)、技術(shù)設(shè)計文檔(development design document)和軟件配置文檔(software configuration document)。,8,軟件開發(fā)過程,3. 編程 經(jīng)過需求分析、設(shè)計之后,接下來就是用一種或多種具體的編程工具(如VS.Net,JBuild、Eclipse、Delphi等)進(jìn)行編碼,即將設(shè)計轉(zhuǎn)換成計算機可讀的形式。如果設(shè)計做得好、做得仔細(xì),編程就容易了。 4. 測試 任何編程,免不了存在這樣或那樣的錯誤,所以有必要進(jìn)行軟件測試。測試過程集中于軟件的內(nèi)部邏輯保證所有語句都測試到,以及外部功能即引導(dǎo)測試去發(fā)現(xiàn)錯誤,并保證定義好的輸入能夠產(chǎn)生與預(yù)期結(jié)果相同的輸出。測試按不同的過程階段分為單元測試、集成測試、功能測試、系統(tǒng)測試、驗證測試等。,黑盒測試,黑盒測試也稱功能測試,它是通過測試來檢測每個功能是否都能正常使用。在測試中,把程序看作一個不能打開的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,在程序接口進(jìn)行測試,它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息。 黑盒測試著眼于程序外部結(jié)構(gòu),不考慮內(nèi)部邏輯結(jié)構(gòu),主要針對軟件界面和軟件功能進(jìn)行測試。,白盒測試,白盒測試也稱結(jié)構(gòu)測試或邏輯驅(qū)動測試,它是按照程序內(nèi)部的結(jié)構(gòu)測試程序,通過測試來檢測產(chǎn)品內(nèi)部動作是否按照設(shè)計規(guī)格說明書的規(guī)定正常進(jìn)行,檢驗程序中的每條通路是否都能按預(yù)定要求正確工作。 這一方法是把測試對象看作一個打開的盒子,測試人員依據(jù)程序內(nèi)部邏輯結(jié)構(gòu)相關(guān)信息,設(shè)計或選擇測試用例,對程序所有邏輯路徑進(jìn)行測試,通過在不同點檢查程序的狀態(tài),確定實際的狀態(tài)是否與預(yù)期的狀態(tài)一致。,11,軟件開發(fā)過程,5. 維護 從理論上,軟件測試的覆蓋率不可能做到百分之百,所以軟件在交付給用戶之后有可能存在某些問題,而且用戶的需求會發(fā)生變化,特別是開始使用產(chǎn)品之后,對計算機系統(tǒng)有了真正的認(rèn)識和了解,會提出適用性更好的、功能增強的要求。所以,軟件交付之后不可避免地要進(jìn)行修改、升級等。 軟件維護復(fù)雜、周期長,其成本必然很高。通過提高軟件的需求分析、設(shè)計和編程的質(zhì)量,強化軟件測試,可以大幅度降低軟件的維護成本。,主要內(nèi)容,軟件工程基礎(chǔ)知識 軟件開發(fā)過程 軟件開發(fā)模型 面向?qū)ο蠹夹g(shù) 統(tǒng)一建模語言(UML) 結(jié)構(gòu)化分析方法 軟件文件標(biāo)準(zhǔn)與規(guī)范 結(jié)構(gòu)化設(shè)計方法和工具 過程管理,12,13,軟件開發(fā)模型(模式),軟件開發(fā)模式 大棒模式或邊寫邊改模式 瀑布模式 原型模式 V模式 螺旋模式 增量模式和跌代模式 噴泉模型,14,大棒模式或邊寫邊改模式,大棒模式 優(yōu)點是簡單。幾乎無計劃。項目成員精力都花在開發(fā)軟件和編寫代碼上。最終的軟件產(chǎn)品是什么樣不可知。 邊寫邊改模式 在大棒模式的基礎(chǔ)上考慮了產(chǎn)品的要求。項目成員通常只有粗略的想法就進(jìn)行簡單的設(shè)計,然后開始漫長的編碼、測試、修復(fù)。,維護,部署,測試,實現(xiàn),規(guī)范,設(shè)計,分析,需求,軟件開發(fā)瀑布模型,16,使早期的流水線式的軟件開發(fā)轉(zhuǎn)變?yōu)檐浖こ?消除非結(jié)構(gòu)化軟件、降低軟件復(fù)雜度 有一套嚴(yán)格的計劃、步驟、規(guī)格、方法,保證軟件產(chǎn)品達(dá)到預(yù)期的質(zhì)量要求,軟件開發(fā)瀑布模型,瀑布模型的缺點:僵化,瀑布模型要求:各階段要遵守嚴(yán)格的順序。 瀑布模型要求:預(yù)先定義并“凍結(jié)”軟件需求。,實際情況是:軟件開發(fā)往往在反復(fù)實踐中完成。 實際情況是:某些系統(tǒng)的需求的一個逐漸明確的過程,且預(yù)先定義的需求到軟件完成時可能已經(jīng)過時,18,瀑布模型適用于:,需求改變很小的開發(fā)。 作為一個架構(gòu),來學(xué)習(xí)軟件開發(fā)中使用不同的技術(shù):盡管瀑布方法對于實際的開發(fā)來說過于簡單,但仍包含邏輯順序的經(jīng)典階段,適合于學(xué)習(xí)。 是螺旋模型中的一遍過程。 用于開發(fā)人員較少的小項目的快速開發(fā)。,需要接受一個觀點:不可能一次開發(fā)出一個軟件。,19,軟件開發(fā)模式 - 原型模型,在進(jìn)行了基本需求分析之后,快速開發(fā)出產(chǎn)品的原型,然后基于這個原型,同客戶溝通、交流,更好地了解客戶需求,不斷修改這個原型,到了雙方認(rèn)可的程度,再做詳細(xì)地分析、設(shè)計和編程,最終開發(fā)出令客戶滿意的產(chǎn)品。 一般步驟如下: (1) 先定義軟件的總體目標(biāo),根據(jù)已知的需求來規(guī)劃出可實現(xiàn)的區(qū)域。 (2) 然后是“快速設(shè)計”,集中于系統(tǒng)的總體框架、基本功能和直觀的輸入方式和輸出格式等。 (3) 有了原型,使客戶對系統(tǒng)實現(xiàn)哪些具體功能、功能實現(xiàn)到什么程度有更好的理解。開發(fā)者可以邊開發(fā)邊評估,不斷細(xì)化軟件的需求,逐步調(diào)整原型使其滿足客戶的要求。這形成一個迭代的過程。,20,原型模型,原型模型的優(yōu)點: 1.使用戶能夠感受到實際的系統(tǒng),使開發(fā)者能夠快速地構(gòu)造出系統(tǒng)的框架。 2.開發(fā)者能減少開發(fā)中的風(fēng)險和不確定性。 原型模型的缺點: 1.原型是粗糙的,沒考慮軟件總體質(zhì)量和長期的可維護性。 2.開發(fā)者常要在實現(xiàn)上的折衷以使得原型能盡快工作。,21,V模型,V模型。由于其模型構(gòu)圖形似字母“V”,故稱V模型,是屬于線性順序一類的軟件開發(fā)模型。 特點:將測試和分析設(shè)計關(guān)系起來,強調(diào)反饋,不將問題留到下一步。 單元測試所檢測代碼的開發(fā)是否符合詳細(xì)設(shè)計的要求。 集成測試所檢測此前測試過的各組成部分是否能完好地結(jié)合到一起。 系統(tǒng)測試所檢測已集成在一起的產(chǎn)品是否符合系統(tǒng)規(guī)格說明書的要求。而驗收測試則檢測產(chǎn)品是否符合最終用戶的需求。,v-模型,23,螺旋模型,螺旋模型,是一個演化軟件過程模型,它將原型的迭代特征與線性順序模型中控制和系統(tǒng)化方面結(jié)合起來,使得軟件增量版本的快速開發(fā)成為可能。在螺旋模型中,軟件開發(fā)是一系列的增量發(fā)布。,螺旋模型,規(guī)范,分析,設(shè)計,需求,實現(xiàn),測試,部署,維護,在完成了一次循環(huán)后,就增進(jìn)了對問題域和解決方案的理解,還使用戶參與進(jìn)來,這樣用戶就可以更正我們對最終系統(tǒng)中包含的事務(wù)或功能的誤解。在經(jīng)過三四遍的開發(fā)過程,完成系統(tǒng)后,就可以全面測試和部署系統(tǒng)了。,與瀑布相比,問題少: 用戶參與整個生命周期; 每個人都可以看到開發(fā)人員的工作; 可以調(diào)整改動的次數(shù)和每次改動所花的時間; 比較適合于軟件開發(fā)的創(chuàng)新性。,不完美之處: 只是把瀑布開發(fā)過程進(jìn)行了三四次,盡管問題越來越小,但并沒有消失。 不靈活,在經(jīng)典階段要按照有序的方式進(jìn)行。 如果發(fā)現(xiàn)錯誤,必須在下一遍開發(fā)過程中才能更正。,螺旋模型,26,增量模式和跌代模式,軟件開發(fā)分階段可以通過兩種模型來描述,即增量模型和迭代模型。 增量模型 描述軟件產(chǎn)品的不同階段是按產(chǎn)品所具有的功能進(jìn)行劃分,先開發(fā)主要功能或用戶最需要的功能,然后,隨著時間推進(jìn),不斷增加新的輔助功能或次要功能,最終開發(fā)出一個強大的、功能完善的、高質(zhì)量的、穩(wěn)定的產(chǎn)品。 迭代模型 描述軟件產(chǎn)品的不同階段是按產(chǎn)品深度或細(xì)化的程度來劃分。先將產(chǎn)品的整個框架都建立起來,在系統(tǒng)的初期,已經(jīng)具有用戶所需求的全部功能。然后,隨著時間推進(jìn),不斷細(xì)化已有的功能或完善已有功能,這個過程好像是一個迭代的過程。最終的目標(biāo)是一致的,也是為了實現(xiàn)一個強大的、功能完善的、高質(zhì)量的、穩(wěn)定的產(chǎn)品。,增量模式和跌代模式,在首次交付的系統(tǒng)版本(1.0)中,將包含最基本、最重要的功能。在以后的某個時間交付1.1版本,其中包含附加的功能(替代1.0)。之后,在對整體進(jìn)行大的修改,交付2.0版本。這將延續(xù)至系統(tǒng)的生命周期。 能滿足不斷變化的需求,適應(yīng)市場的變化。,時間,發(fā)布,1.0,1.1,2.0,2.1,噴泉模型是一種以用戶需求為動力,以對象為驅(qū)動的模型,主要用于采用面向?qū)ο蠹夹g(shù)的軟件開發(fā)項目。該模型認(rèn)為軟件開發(fā)過程自下而上周期的各階段是相互迭代和無間隙的特性。 軟件的某個部分常常被重復(fù)工作多次,相關(guān)對象在每次迭代中隨之加入漸進(jìn)的軟件成分。無間隙指在各項活動之間無明顯邊界,如分析和設(shè)計活動之間沒有明顯的界限,由于對象概念的引入,表達(dá)分析、設(shè)計、實現(xiàn)等活動只用對象類和關(guān)系,從而可以較為容易地實現(xiàn)活動的迭代和無間隙,使其開發(fā)自然地包括復(fù)用。,噴泉模型,1、噴泉模型的優(yōu)點 噴泉模型不像瀑布模型那樣,需要分析活動結(jié)束后才開始設(shè)計活動,設(shè)計活動結(jié)束后才開始編碼活動。該模型的各個階段沒有明顯的界限,開發(fā)人員可以同步進(jìn)行開發(fā)。其優(yōu)點是可以提高軟件項目開發(fā)效率,節(jié)省開發(fā)時間,適應(yīng)于面向?qū)ο蟮能浖_發(fā)過程。 2、噴泉模型的缺點 由于噴泉模型在各個開發(fā)階段是重疊的,因此在開發(fā)過程中需要大量的開發(fā)人員,因此不利于項目的管理。此外這種模型要求嚴(yán)格管理文檔,使得審核的難度加大,尤其是面對可能隨時加入各種信息、需求與資料的情況。,主要內(nèi)容,軟件工程基礎(chǔ)知識 軟件開發(fā)過程 軟件開發(fā)模型 面向?qū)ο蠹夹g(shù) 統(tǒng)一建模語言(UML) 結(jié)構(gòu)化分析方法 軟件文件標(biāo)準(zhǔn)與規(guī)范 結(jié)構(gòu)化設(shè)計方法和工具 過程管理,30,31,面向?qū)ο蠹夹g(shù)(Object-Oriented Analysis,OOA),面向?qū)ο笫且环N目前主流的軟件工程方法,新的程序設(shè)計范型 基本技術(shù):使用對象、類、繼承、封裝、消息等基本概念進(jìn)行程序設(shè)計和實現(xiàn) 基本思想:盡可能地運用人類的自然思維方式來構(gòu)造軟件系統(tǒng)。現(xiàn)實世界的問題是由客觀實體和實體之間的聯(lián)系構(gòu)成的,對象就是客觀實體的抽象。,32,面向?qū)ο蠹夹g(shù)的基本觀點,客觀世界是由對象組成的。 具有相同類型數(shù)據(jù)和相同操作的對象可以歸并為一類,對象是類的一個實例。類可以產(chǎn)生對象。 類可以派生子類,子類繼承父類的特性。 對象之間通過消息傳遞相互聯(lián)系。 軟件工程學(xué)家認(rèn)為: 面向?qū)ο?對象+類+繼承+通訊,33,面向?qū)ο蟮南到y(tǒng)分析與設(shè)計方法 -面向?qū)ο笾械幕靖拍?對象 (Object )/類(Class) 抽象 (Abstraction) 繼承 (Inheritance) 多態(tài)性(Polymorphism) 封裝 (Encapsulation) 消息 (Message) 關(guān)聯(lián) (Association) 聚集 (Aggregation),34,什么是對象?(Object),一個對象代表了一個現(xiàn)實的或虛構(gòu)的實體 自然實體(有形) 概念實體(無形),化學(xué)過程,生產(chǎn)計劃,對象(對象技術(shù)圍繞對象的概念來建立),對象特征:靜態(tài)特征和動態(tài)特征 對象屬性:描述對象靜態(tài)特征的數(shù)據(jù)項 對象操作:是對象動態(tài)特征的體現(xiàn) 對象之間通過消息通信 一個對象通過向另一個對象 發(fā)送消息激活某一個功能 解決某個問題,面向?qū)ο蟮乃伎挤绞?是面向問題的結(jié)構(gòu)。,36,什么是類?(Class),類是對象的抽象,它給出了屬于該類的全部對象的抽象定義。(從對象產(chǎn)生類) 問題域:類是一組具有相同特性和行為的對象的通用定義 系統(tǒng): 共同的特性通過屬性表現(xiàn)出來 (數(shù)據(jù)) 共同的行為通過操作表現(xiàn)出來 (功能) 類是對象的模板,用它可以產(chǎn)生多個對象,一個具體的對象只是類的一個實例。一個類可以用來聲明多個對象,所有對象都有類的數(shù)據(jù)成員的一個副本,類的成員函數(shù)函數(shù)則被所有對象所共享。 (從類產(chǎn)生對象),37,類和對象的關(guān)系,每一個對象都是某一個類的實例 每一個類在某一時刻都有零個或更多的實例 類是靜態(tài)的; 它們的存在、語義和關(guān)系在程序執(zhí)行前就已經(jīng)定義好了 對象是動態(tài)的; 它們在程序執(zhí)行時可以被建立和刪除,38,抽象( Abstraction ),一個對象是現(xiàn)實世界中一個實體的抽象 一個類是一組對象的抽象 抽象通過注重主要的、與問題有關(guān)的特性,幫助我們處理復(fù)雜系統(tǒng) 關(guān)鍵在于找出重要的、有關(guān)的類,以及每個類中重要、有關(guān)的操作和屬性,39,繼承(Inheritance),子類(特化類、派生類)可以自動擁有父類(基類、泛化類、超類)的屬性和操作。 例如: “洗衣機”、“冰箱”、“電視機” 公共的屬性: 開關(guān)、電線 公共的操作是:開機、關(guān)機 則: “家用電器”類是父類 “洗衣機”、“冰箱”、“電視機”等是子類 繼承可以提高軟件的可重用性。 可以支持多繼承。,“家用電器”,40,多態(tài)性(Polymorphism),在父類中定義的屬性和服務(wù)為其子類繼承后,可以具有不同的數(shù)據(jù)類型或表現(xiàn)出不同的行為。 如: 父類:圖形類求面積 子類:三角形求面積 底*高/2 子類:矩形求面積 長*寬 雖然都是“求面積”操作,但執(zhí)行的是不同的行為動作。 多態(tài)性機制不但為軟件的結(jié)構(gòu)設(shè)計提供了靈活性,減少信息冗余,而且顯著提高了軟件的可復(fù)用性和可擴充性。,41,封裝(Encapsulation),將屬性和操作包裝成一個單元,使得對狀態(tài)的訪問和修改只能通過封裝提供的接口進(jìn)行。 封裝體現(xiàn)了面向?qū)ο蠓椒ǖ摹靶畔⑵帘闻c局部化”的原則。,42,消息(Message),對象間在交互中所傳送的通訊信息。 如:電視機,遙控器對象向電視機對象發(fā)送消息。 在類里面通過生成對象和函數(shù)調(diào)用來完成消息的傳遞。,43,關(guān)聯(lián)(Association),關(guān)聯(lián):對象之間所存在的聯(lián)系。 聯(lián)系:繼承關(guān)系(一般與特殊),聚集和組成關(guān)系(部分與整體)。,44,面向?qū)ο蠓治?問題論域分析 發(fā)現(xiàn)和定義對象和類 識別對象的外部聯(lián)系 建立系統(tǒng)的靜態(tài)結(jié)構(gòu)模型 建立系統(tǒng)的動態(tài)行為模型,45,面向?qū)ο笤O(shè)計,設(shè)計對象與類 設(shè)計系統(tǒng)結(jié)構(gòu) 設(shè)計問題論域子系統(tǒng) 設(shè)計人機交互子系統(tǒng) 設(shè)計數(shù)據(jù)管理子系統(tǒng) 設(shè)計任務(wù)管理子系統(tǒng) 設(shè)計優(yōu)化,提高系統(tǒng)的性能,主要內(nèi)容,軟件工程基礎(chǔ)知識 軟件開發(fā)過程 軟件開發(fā)模型 面向?qū)ο蠹夹g(shù) 統(tǒng)一建模語言(UML) 結(jié)構(gòu)化分析方法 軟件文件標(biāo)準(zhǔn)與規(guī)范 結(jié)構(gòu)化設(shè)計方法和工具 過程管理,46,統(tǒng)一建模語言(UML),UML(Unified Modeling Language)是一種可視化、標(biāo)準(zhǔn)化的建模語言。 UML支持面向?qū)ο蟮募夹g(shù)和方法。 UML獨立于開發(fā)。UML獨立于程序設(shè)計語言。 UML并不是萬能的,它是一種離散的建模語言,對于特定的領(lǐng)域,比如:GUI、VLSI電路設(shè)計或基于規(guī)則的人工智能,用特定的語言和工具可能更合適,48,UML的目標(biāo),最重要目標(biāo):為面向?qū)ο筌浖O(shè)計提供統(tǒng)一的、標(biāo)準(zhǔn)的、可視化的建模語言。 UML的另一個目標(biāo)是:能盡量簡潔地表達(dá)系統(tǒng)的模型。,UML模型的概念和表示法,UML提供3種基本標(biāo)準(zhǔn)模型建筑塊: 事物:模型的元素 結(jié)構(gòu)性事物:對象類、 Use Case(用例)、接口、組件、節(jié)點等 行為性事物: 交互、狀態(tài)機、活動等 成組性事物:包 注釋性事物:注釋 聯(lián)系:模型建筑塊之間的基本聯(lián)系 依賴、關(guān)聯(lián)、聚合、繼承、實現(xiàn) 圖形:模型元素/聯(lián)系 集合的可視化表示 類圖、對象圖、Use Case圖、順序圖、協(xié)作圖、狀態(tài)圖、活動圖、包圖、組件圖、配置圖。,50,類圖:表達(dá)類、接口,以及它們之間的聯(lián)系。,類的圖標(biāo)由類名、類的屬性、 類的操作三部分組成。 類圖就是由這些類框和表明 類之間關(guān)聯(lián)的連線所組成。,Washing Machine brand name model name serial number capacity add clothes() add detergent() remove clothes(),學(xué)生,本科生,研究生,Washing Machine .,51,對象圖:表達(dá)對象及它們之間的聯(lián)系。,對象是類的一個實例,是具有具體值和行為的一個具體事物。 對象圖標(biāo)和類基本一樣,但對象名下面要帶下劃線,實例名位于冒號的左邊,該實例所屬的類名位于冒號的右邊。,My Washer:Washing Machine,:Washing Maching,My Washer,52,用例圖:Use Case圖表達(dá)用例、活動者和它們之 間的聯(lián)系。,用例(Use Case)是從用戶的觀點對系統(tǒng)行為的一個描述。,選課功能,學(xué)生,53,狀態(tài)圖:狀態(tài)圖表示對象的有序事件行為 以及所處的狀態(tài)。,在任一給定的時刻, 一個對象總是處于 某一特定的狀態(tài)。,浸泡,洗滌,漂洗,脫水,54,順序圖: 表達(dá)一組對象以及這些對象發(fā)出與接受消息, 重點在消息的時間順序上。,在一個運行的系統(tǒng)中,對象之間要發(fā)生交互,并且這些交互要經(jīng)歷一定的時間。UML順序圖所表達(dá)的正是這種基于時間的動態(tài)交互。,55,順序圖洗衣過程,進(jìn)水管,洗滌缸,排水管,注入新水,保持靜止,停止注水,往返旋轉(zhuǎn),排掉洗滌后的臟水,注入新水,往返旋轉(zhuǎn),排掉漂洗過的水,單向旋轉(zhuǎn),停止轉(zhuǎn)動,停止注水,56,活動圖:表達(dá)系統(tǒng)內(nèi)的活動流,重點在對象之間的 控制流。,活動圖是系統(tǒng)的一種行為視圖,它描述參與行為的對象類的活動的順序。,洗滌缸往返旋轉(zhuǎn)15分鐘,排掉臟水,重新入新水注,57,協(xié)作圖:表達(dá)一組對象、對象之間的連接,以及對象發(fā) 出和接受的消息,重點在對象的結(jié)構(gòu)組織方面。,系統(tǒng)的各組成元素必須相互協(xié)作來完成系統(tǒng)的工作目標(biāo),建模語言必須具備這種協(xié)作關(guān)系的表達(dá)方式,協(xié)作圖為此目的而設(shè)。,內(nèi)部計時器,洗滌缸,進(jìn)水管,1.停止注水,2.往返旋轉(zhuǎn),洗滌缸,進(jìn)水管,58,組件圖(構(gòu)件圖) 表達(dá)組件及它們 之間的聯(lián)系。,組件是邏輯事物的物理包,組件圖表示系統(tǒng)中的不同的物理組件及其聯(lián)系,它表達(dá)的是系統(tǒng)代碼本身的結(jié)構(gòu)。,組件,59,配置圖(部署圖) 表達(dá)物理節(jié)點及它們之間的聯(lián)系。,配置圖用來描述計算機和設(shè)備,展示它們之間的連接,以及駐留在每臺機器中的軟件。,60,UML三大類型的圖,收集系統(tǒng)需求:Use Case圖(用例圖) 靜態(tài)結(jié)構(gòu)圖:類圖、對象圖、包圖、組件圖、配置圖 動態(tài)行為圖:順序圖、協(xié)同圖、狀態(tài)圖、活動圖,在建立系統(tǒng)模型時可以根據(jù)需要選擇不同的圖,把它們組織成不同的視圖,分別表達(dá)系統(tǒng)的某一方面的特征。,主要內(nèi)容,軟件工程基礎(chǔ)知識 軟件開發(fā)過程 軟件開發(fā)模型 面向?qū)ο蠹夹g(shù) 統(tǒng)一建模語言(UML) 結(jié)構(gòu)化分析方法 軟件文件標(biāo)準(zhǔn)與規(guī)范 結(jié)構(gòu)化設(shè)計方法和工具 過程管理,61,結(jié)構(gòu)化分析方法,數(shù)據(jù)流圖(DFD) 數(shù)據(jù)字典(DD) 實體關(guān)系圖(E-R圖),數(shù)據(jù)流圖,數(shù)據(jù)流圖(Data Flow Diagram):簡稱DFD,它從數(shù)據(jù)傳遞和加工角度,以圖形方式來表達(dá)系統(tǒng)的邏輯功能、數(shù)據(jù)在系統(tǒng)內(nèi)部的邏輯流向和邏輯變換過程,是結(jié)構(gòu)化系統(tǒng)分析方法的主要表達(dá)工具及用于表示軟件模型的一種圖示方法。,分層的數(shù)據(jù)流圖,數(shù)據(jù)流圖方法步驟示例 商店業(yè)務(wù)處理系統(tǒng),這個數(shù)據(jù)流圖只是一個高層的系統(tǒng)邏輯模型,它反映了目標(biāo)系統(tǒng)要實現(xiàn)的功能 數(shù)據(jù)流圖繪制步驟 首先確定系統(tǒng)的輸入和輸出 根據(jù)商店業(yè)務(wù),畫出頂層數(shù)據(jù)流圖,以反映最主要業(yè)務(wù)處理流程 經(jīng)過分析,商店業(yè)務(wù)處理的主要功能應(yīng)當(dāng)有銷售、采購、會計三大項。主要數(shù)據(jù)流輸入的源點和輸出終點是顧客和供應(yīng)商。 然后從輸入端開始,根據(jù)商店業(yè)務(wù)工作流程,畫出數(shù)據(jù)流流經(jīng)的各加工框,逐步畫到輸出端,得到第一層數(shù)據(jù)流圖,第一層數(shù)據(jù)流圖,加細(xì)每一個加工框 銷售細(xì)化,數(shù)據(jù)字典,數(shù)據(jù)字典(Data dictionary)是一種用戶可以訪問的記錄數(shù)據(jù)庫和應(yīng)用程序元數(shù)據(jù)的目錄。 數(shù)據(jù)字典的組成: 1、數(shù)據(jù)項 2、數(shù)據(jù)結(jié)構(gòu) 3、數(shù)據(jù)流 4、數(shù)據(jù)存儲 5、處理過程 數(shù)據(jù)庫的重要部分是數(shù)據(jù)字典。它存放有數(shù)據(jù)庫所用的有關(guān)信息,對用戶來說是一組只讀的表。,70,的基本概念,實體(Entity) 屬性(Attribute) 聯(lián)系( Relationship),71,基本概念實體(Entity),客觀存在并且可以相互區(qū)別的“事物”稱為實體。 實體可以是可觸及的對象,如一個學(xué)生,一本書,一輛汽車;也可以是抽象的事件,如學(xué)生的一次選課、老師與系的工作關(guān)系等。,72,基本概念屬性(Attribute),實體的某一特性稱為屬性。一個實體可以由若干個屬性來刻畫。 如學(xué)生實體有學(xué)號、姓名、年齡、性別、系等方面的屬性。 屬性有“型”和“值”之分,“型”即為屬性名,如姓名、年齡、性別是屬性的型;“值”即為屬性的具體內(nèi)容,如(990001,張三,20,男,信息系)這些屬性值的集合表示了一個學(xué)生實體。,73,基本概念聯(lián)系(Relationship),在現(xiàn)實世界中,事物內(nèi)部以及事物之間是有聯(lián)系的,這些聯(lián)系同樣也要抽象和反映到信息世界中來, 在信息世界中將被抽象為實體型內(nèi)部的聯(lián)系和實體型之間的聯(lián)系。 實體內(nèi)部的聯(lián)系通常是指組成實體的各屬性之間的聯(lián)系; 實體之間的聯(lián)系通常是指不同實體集之間的聯(lián)系。,74,聯(lián)系的分類,實體型之間的聯(lián)系 一對一聯(lián)系(1:1) 一對多聯(lián)系(1:n) 多對多(m:n),75,一對一聯(lián)系(1:1),實體集A中的一個實體至多與實體集B中的一個實體相對應(yīng),反之亦然,則稱實體集A與實體集B為一對一的聯(lián)系。記作1:1。 如:班級與班長,觀眾與座位,病人與床位。,76,一對多聯(lián)系(1:n),實體集A中的一個實體與實體集B中的多個實體相對應(yīng),反之,實體集B中的一個實體至多與實體集A中的一個實體相對應(yīng)。記作1:n。 如:班級與學(xué)生、公司與職員、省與市。,77,多對多(m:n),實體集A中的一個實體與實體集B中的多個實體相對應(yīng),反之,實體集B中的一個實體與實體集A中的多個實體相對應(yīng)。記作(m:n)。 如:學(xué)生與課程,工廠與產(chǎn)品。,78,E-R圖的表示方法,用矩形表示實體,在長方形框內(nèi)寫上實體名。 用橢圓形表示實體或聯(lián)系的屬性。用無向邊把實體和它包含的屬性連接在一起。 用菱形表示實體間聯(lián)系,菱形框內(nèi)寫上聯(lián)系名。用無向邊把菱形和有關(guān)實體相連接,在無向邊旁標(biāo)上聯(lián)系的類型,如1、M或N等。,79,學(xué)生選修課程,學(xué)生,課程,選修,姓名,學(xué)號,系別,課程名,先修課,學(xué)分,成績,用矩形表示實體集,在框內(nèi)寫上實體名,用橢圓表示實體的屬性,用無向邊把實體與其屬性連接起來,用菱形表示實體間的聯(lián)系,將參與聯(lián)系的實體用線段連接,m,n,聯(lián)系的 數(shù)量,主要內(nèi)容,軟件工程基礎(chǔ)知識 軟件開發(fā)過程 軟件開發(fā)模型 面向?qū)ο蠹夹g(shù) 統(tǒng)一建模語言(UML) 結(jié)構(gòu)化分析方法 軟件文件標(biāo)準(zhǔn)與規(guī)范 結(jié)構(gòu)化設(shè)計方法和工具 過程管理,80,81,軟件文件標(biāo)準(zhǔn)與規(guī)范,國家標(biāo)準(zhǔn)計算機軟件產(chǎn)品開發(fā)文件編制指南是一份指導(dǎo)性文件。它建議在軟件的開發(fā)過程中編制下述14個文件。即: 可行性研究報告 操作手冊 項目開發(fā)計劃 模塊開發(fā)卷宗 軟件需求說明書 測試計劃 數(shù)據(jù)要求說明書 測試分析報告 總體設(shè)計說明書 開發(fā)進(jìn)度表 詳細(xì)設(shè)計說明書 項目開發(fā)總結(jié)。 數(shù)據(jù)庫設(shè)計說明書 用戶手冊 該指南給出了這14個文件的編制提示,它同時也是這14個文件編寫質(zhì)量的檢驗準(zhǔn)則。,標(biāo)準(zhǔn)化知識,國際標(biāo)準(zhǔn) 國際標(biāo)準(zhǔn)是指國際標(biāo)準(zhǔn)化組織(ISO)、國際電工委員會(IEC)和國際電信聯(lián)盟(ITU)制定的標(biāo)準(zhǔn),以及國際標(biāo)準(zhǔn)化組織確認(rèn)并公布的其他國際組織制定的標(biāo)準(zhǔn)。 國家標(biāo)準(zhǔn) 國家標(biāo)準(zhǔn)是指由國家標(biāo)準(zhǔn)化主管機構(gòu)批準(zhǔn)發(fā)布,對全國經(jīng)濟、技術(shù)發(fā)展有重大意義,且在全國范圍內(nèi)統(tǒng)一的標(biāo)準(zhǔn)。 行業(yè)標(biāo)準(zhǔn) 由我國各主管部、委(局)批準(zhǔn)發(fā)布,在該部門范圍內(nèi)統(tǒng)一使用的標(biāo)準(zhǔn),稱為行業(yè)標(biāo)準(zhǔn)。 企業(yè)標(biāo)準(zhǔn) 企業(yè)標(biāo)準(zhǔn)是對企業(yè)范圍內(nèi)需要協(xié)調(diào)、統(tǒng)一的技術(shù)要求,管理要求和工作要求所制定的標(biāo)準(zhǔn)。企業(yè)標(biāo)準(zhǔn)由企業(yè)制定,由企業(yè)法人代表或法人代表授權(quán)的主管領(lǐng)導(dǎo)批準(zhǔn)、發(fā)布。,主要內(nèi)容,軟件工程基礎(chǔ)知識 軟件開發(fā)過程 軟件開發(fā)模型 面向?qū)ο蠹夹g(shù) 統(tǒng)一建模語言(UML) 結(jié)構(gòu)化分析方法 軟件文件標(biāo)準(zhǔn)與規(guī)范 結(jié)構(gòu)化設(shè)計方法和工具 過程管理,83,84,結(jié)構(gòu)化設(shè)計方法和工具,1.系統(tǒng)流程圖 2.HIPO圖 3.控制流程圖,85,系統(tǒng)流程圖,系統(tǒng)流程圖又叫事務(wù)流程圖,是在計算機事務(wù)處理應(yīng)用進(jìn)行系統(tǒng)分析時常用的一種描述方法(另一個是數(shù)據(jù)流圖),它描述了計算機事務(wù)處理中從數(shù)據(jù)輸入開始到獲得輸出為止,各個處理工序的邏輯過程。 系統(tǒng)流程圖表達(dá)的是部件的信息流程,而不是表示對信息進(jìn)行加工處理的控制過程。,86,HIPO圖,在層次結(jié)構(gòu)圖的基礎(chǔ)上推出的一種描述系統(tǒng)結(jié)構(gòu)和模塊內(nèi)部處理功能的圖形。HIPO圖由層次結(jié)構(gòu)圖和IPO圖兩部分構(gòu)成,前者描述了整個系統(tǒng)的設(shè)計結(jié)構(gòu)以及各類模塊之間的關(guān)系,后者描述了某個特定模塊內(nèi)部的處理過程和輸入/輸出關(guān)系。,HIPO圖,層次結(jié)構(gòu)圖,IPO圖,HIPO圖的層次結(jié)構(gòu)圖 用于描述軟件的層次結(jié)構(gòu),矩形框表示一個模塊,矩形框之間的直線表示模塊之間的調(diào)用關(guān)系,同結(jié)構(gòu)圖一樣未指明調(diào)用順序。,IPO圖:說明模塊間的信息傳遞及模塊內(nèi)部的處理,88,控制流程圖,控制流程圖(FC,F(xiàn)low Chart)又稱框圖,是經(jīng)常使用的程序細(xì)節(jié)描述工具。 框圖包括三種基本成分: “矩形框”表示處理步驟, “菱形框” 表示判斷, “箭頭”表示控制流。,主要內(nèi)容,軟件工程基礎(chǔ)知識 軟件開發(fā)過程 軟件開發(fā)模型 面向?qū)ο蠹夹g(shù) 統(tǒng)一建模語言(UML) 結(jié)構(gòu)化分析方法 軟件文件標(biāo)準(zhǔn)與規(guī)范 結(jié)構(gòu)化設(shè)計方法和工具 過程管理,89,90,過程管理,1.PERT圖 2.甘特圖 3.工作分解結(jié)構(gòu) 4.進(jìn)度控制 5.關(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 大氣污染控制工程實驗教學(xué)課件
- 《CR國際新城》課件
- 縫制機械行業(yè)智能轉(zhuǎn)型考核試卷
- 花卉種植的都市農(nóng)業(yè)與社區(qū)花園建設(shè)考核試卷
- 2025年皮革色漿項目發(fā)展計劃
- 2025年給皂液機項目發(fā)展計劃
- 《xch玉樹地震滑坡》課件:災(zāi)害分析與救援策略
- 2019-2025年一級造價師之建設(shè)工程造價管理押題練習(xí)試題B卷含答案
- 2025年會議電視系統(tǒng)(含終端)項目建議書
- 2025年高性能功能陶瓷結(jié)構(gòu)陶瓷合作協(xié)議書
- 基于原創(chuàng)繪本的幼兒園傳統(tǒng)文化啟蒙教育研究
- 專家論證邀請函范文
- DL-T5372-2017水電水利工程金屬結(jié)構(gòu)與機電設(shè)備安裝安全技術(shù)規(guī)程
- 人教版數(shù)學(xué)《認(rèn)識鐘表》公開課課件1
- 產(chǎn)科10個臨床路徑
- 小學(xué)少先隊活動課說課稿
- 古埃及圣書手冊古代語言文字研究
- 兒科入院安全宣教
- 2024年湖州市城市投資發(fā)展集團有限公司招聘筆試參考題庫附帶答案詳解
- 上海大學(xué)繼續(xù)教育市場營銷網(wǎng)課答案更新版
- 電氣工程及其自動化新能源發(fā)電方向
評論
0/150
提交評論