




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、面向?qū)ο蟪绦蛟O(shè)計(jì)面向?qū)ο蟪绦蛟O(shè)計(jì)編程語言的發(fā)展史機(jī)器語言匯編語言高級語言面向?qū)ο笳Z言編程語言的發(fā)展史機(jī)器語言匯編語言高級語言面向?qū)ο笳Z言編程語言的發(fā)展史機(jī)器語言匯編語言高級語言面向?qū)ο笳Z言指令序號機(jī)器語言程序指令功能11011000000001000把數(shù)字8送到累加器AL中20000010000001001AL中的內(nèi)容與數(shù)字9相加,結(jié)果存入累加器AL311110100停止操作 機(jī)器語言是由一連串機(jī)器指令序列形成的程序設(shè)計(jì)工具。編程語言的發(fā)展史機(jī)器語言匯編語言高級語言面向?qū)ο笳Z言指令序號編程語言的發(fā)展史機(jī)器語言匯編語言高級語言面向?qū)ο笳Z言 匯編語言是機(jī)器語言的符號化表示。語句序號匯編語言程序語句
2、功能1MOV AL,8把數(shù)字8送到累加器AL中2ADD AL,9AL中的內(nèi)容與數(shù)字9相加,結(jié)果存入累加器AL3HLT停止操作編程語言的發(fā)展史機(jī)器語言匯編語言高級語言面向?qū)ο笳Z言 匯編語編程語言的發(fā)展史機(jī)器語言匯編語言高級語言面向?qū)ο笳Z言 高級語言采用人類語言和表達(dá)習(xí)慣的符號和表達(dá)式來編制程序C語言程序main() int al; al=8+9; printf(“%dn”,al);編程語言的發(fā)展史機(jī)器語言匯編語言高級語言面向?qū)ο笳Z言 ?編程語言的發(fā)展史機(jī)器語言匯編語言高級語言面向?qū)ο笳Z言?編程語言的發(fā)展史機(jī)器語言匯編語言高級語言面向?qū)ο笳Z言第一章 面向?qū)ο蟪绦蛟O(shè)計(jì)概述面向?qū)ο笏枷氲挠蓙砻嫦驅(qū)ο蟪?/p>
3、序設(shè)計(jì)語言面向?qū)ο蟮幕靖拍蠲嫦驅(qū)ο蟪绦虻奶匦悦嫦驅(qū)ο蟮某绦蛟O(shè)計(jì)第一章 面向?qū)ο蟪绦蛟O(shè)計(jì)概述面向?qū)ο笏枷氲挠蓙砻嫦驅(qū)ο蟪绦?.1 面向?qū)ο笏枷氲挠蓙?軟件危機(jī)首次爆發(fā)于二十世紀(jì)六十年代。在大型程序設(shè)計(jì)中,人們發(fā)現(xiàn)投入大量的人力、物力、時(shí)間開發(fā)出的軟件,其成本、效率、質(zhì)量等方面卻處于失控狀態(tài),尤其軟件維護(hù)異常困難。程序的修改擴(kuò)充往往需要大量重復(fù)性投入。軟件危機(jī)1.1 面向?qū)ο笏枷氲挠蓙?軟件危機(jī)首次爆發(fā)于二十世1.1 面向?qū)ο笏枷氲挠蓙碥浖C(jī)產(chǎn)生的原因2 軟件是一種邏輯產(chǎn)品而非物理產(chǎn)品,軟件的開發(fā)過程本質(zhì)上是人的思考過程。3 人的智力在面對越來越復(fù)雜的問題時(shí),處理問題的效率會(huì)越來越低。1 軟件
4、開發(fā)者不熟悉用戶問題的領(lǐng)域,或沒有理解用戶需求,軟件產(chǎn)品與要求不一致。1.1 面向?qū)ο笏枷氲挠蓙碥浖C(jī)產(chǎn)生的原因2 軟件是一種 程序設(shè)計(jì)范型 語言支持結(jié)構(gòu)化程序設(shè)計(jì)(SP)Structure Programming Pascal、 C 面向?qū)ο蟪绦蛟O(shè)計(jì)(OOP)Object Oriented Programming C+、Java1.1 面向?qū)ο笏枷氲挠蓙?程序設(shè)計(jì)范型 語言支持結(jié)構(gòu)化程序設(shè)計(jì)程序 = 算法 + 數(shù)據(jù)結(jié)構(gòu) 結(jié)構(gòu)化程序設(shè)計(jì)的基本思想是采用自頂向下、逐步細(xì)化的設(shè)計(jì)方法和單入單出的控制結(jié)構(gòu)。這種設(shè)計(jì)方法的著眼點(diǎn)是面向過程的,特點(diǎn)是將數(shù)據(jù)與程序分開存儲(chǔ),即數(shù)據(jù)與數(shù)據(jù)處理分離。1.1
5、面向?qū)ο笏枷氲挠蓙斫Y(jié)構(gòu)化程序設(shè)計(jì)程序 = 算法 + 數(shù)據(jù)結(jié)構(gòu) 結(jié)構(gòu)化程序結(jié)構(gòu)化程序設(shè)計(jì)1.1 面向?qū)ο笏枷氲挠蓙砟K 22.12.2模塊 11.21.11.31.3.11.3.21.3.3模塊 33.13.23.1.13.1.2 程 序結(jié)構(gòu)化程序設(shè)計(jì)1.1 面向?qū)ο笏枷氲挠蓙砟K 22.12. 例如:輸入一組整數(shù),統(tǒng)計(jì)正整數(shù)和負(fù)整數(shù)的個(gè)數(shù)。按照結(jié)構(gòu)化程序設(shè)計(jì)的思想,可以將其拆分為以下的子任務(wù):1. 讀入數(shù)據(jù);2.統(tǒng)計(jì)正數(shù)、負(fù)數(shù)的個(gè)數(shù); 3. 輸出結(jié)果; 正整數(shù)個(gè)數(shù)為0;負(fù)整數(shù)個(gè)數(shù)0; 取第一個(gè)整數(shù):1 如果該數(shù)大于 0,正整數(shù)個(gè)數(shù)加1;2 如果該數(shù)小于0,負(fù)整數(shù)個(gè)數(shù)加1;3 取下一個(gè)整數(shù);重復(fù)
6、至統(tǒng)計(jì)完 例如:輸入一組整數(shù),統(tǒng)計(jì)正整數(shù)和負(fù)整數(shù)的個(gè)數(shù)例如:一個(gè)簡單的學(xué)生成績管理系統(tǒng)用來管理若干個(gè)學(xué)生的信息。包括學(xué)號、姓名、某門課的平時(shí)成績、期末成績、總評成績和名次。typedef struct studentScore char number10; /學(xué)號 char name10; /姓名 int dailyScore ; /平時(shí)成績 int finalScore; /期末成績 float generalScore; /總評成績 int place; /名次 SS; /結(jié)構(gòu)體類型名例如:一個(gè)簡單的學(xué)生成績管理系統(tǒng)用來管理若干個(gè)學(xué)生的信息。包例如:一個(gè)簡單的學(xué)生成績管理系統(tǒng)用來管理若干個(gè)
7、學(xué)生的信息。主要操作:成績的錄入、計(jì)算、排名、輸出??傇u成績=平時(shí)成績*0.3+期末成績*0.7。操作數(shù)據(jù)的幾個(gè)函數(shù):void readData(SS stu ,int n); /輸入n個(gè)學(xué)生的學(xué)號、姓名、平時(shí)及期末成績void calcuScore(SS stu ,int n); /計(jì)算n個(gè)學(xué)生的總評成績void sortScore(SS stu ,int n);/根據(jù)總評成績排名,得出每個(gè)學(xué)生的place值void printOut(SS stu ,int n); /按一定的格式輸出n個(gè)學(xué)生的完整信息例如:一個(gè)簡單的學(xué)生成績管理系統(tǒng)用來管理若干個(gè)學(xué)生的信息。操現(xiàn)在,需求改變了:在C語言課程
8、中,需要增加實(shí)驗(yàn)成績這一項(xiàng),學(xué)生的總評成績計(jì)算方法修改為:總評成績=平時(shí)成績*0.2+實(shí)驗(yàn)成績*0.2+期末成績*0.6。顯然,類型SS中需要增加一個(gè)數(shù)據(jù)項(xiàng)int experiScore; 表示實(shí)驗(yàn)成績。同時(shí),所有的函數(shù)代碼都應(yīng)該作相應(yīng)地修改 例如:一個(gè)簡單的學(xué)生成績管理系統(tǒng)用來管理若干個(gè)學(xué)生的信息?,F(xiàn)在,需求改變了:例如:一個(gè)簡單的學(xué)生成績管理系統(tǒng)用來管理若缺點(diǎn)以過程為中心,打破事物間的相互關(guān)聯(lián),給后續(xù)開發(fā)帶來困難可重用性差可維護(hù)性差1.1 面向?qū)ο笏枷氲挠蓙斫Y(jié)構(gòu)化程序設(shè)計(jì)缺點(diǎn)以過程為中心,打破事物間的相互關(guān)聯(lián),給后續(xù)開發(fā)帶來困難 面向?qū)ο蠹夹g(shù)追求的是軟件系統(tǒng)對現(xiàn)實(shí)世界的直接模擬,盡量實(shí)現(xiàn)將
9、現(xiàn)實(shí)世界中的事物直接映射到軟件系統(tǒng)的解空間。1.1 面向?qū)ο笏枷氲挠蓙?面向?qū)ο蠹夹g(shù)追求的是軟件系統(tǒng)對現(xiàn)實(shí)世界的直物質(zhì): 一輛白色 的自行車意識: 自行車具體事物: “對象” 自行車類的實(shí)例抽象概念: “類” 自行車類現(xiàn)實(shí)問題空間面向?qū)ο蠼饪臻g1.1 面向?qū)ο笏枷氲挠蓙沓橄笮允挛锕灿械膶傩院蜖顟B(tài)事物共有的行為或功能物質(zhì):具體事物:現(xiàn)實(shí)問題空間面向?qū)ο蠼饪臻g1.1 面向?qū)ο髥栴}空間:企業(yè)員工工資管理系統(tǒng)員工類工作編號;姓名;基本工資;出勤率;設(shè)置基本工資;查詢基本工資;計(jì)算實(shí)發(fā)工資;類名設(shè)置基本工資;查詢基本工資;計(jì)算實(shí)發(fā)工資;設(shè)置基本工資;查詢基本工資;計(jì)算實(shí)發(fā)工資;設(shè)置基本工資;查詢基本工資
10、;計(jì)算實(shí)發(fā)工資;操作設(shè)置基本工資;查詢基本工資;計(jì)算實(shí)發(fā)工資;屬性設(shè)置基本工資;查詢基本工資;計(jì)算實(shí)發(fā)工資;工作編號;姓名;基本工資;出勤率;設(shè)置基本工資;查詢基本工資;計(jì)算實(shí)發(fā)工資;工作編號;姓名;基本工資;出勤率; 數(shù)據(jù)抽象 :int m_iStaffNum / 工作編號 char m_pName / 姓名 float m_fBasicSal / 基本工資 float m_fRateOfAttend / 出勤率 行為抽象 :SetBasicSal ( ) / 設(shè)置基本工資 GetBasicSal ( ) / 查詢基本工資 CalculateSal( ) / 計(jì)算實(shí)際發(fā)放工資 問題空間:企業(yè)
11、員工工資管理系統(tǒng)員工類工作編號;設(shè)置基本工資;class SS private: char number10; char name10; int dailyScore; int finalScore ; float generalScore; int place ; public: void readData( );void calcuScore( );void printOut( ); friend void sortScore(SS stu ,int n) ; ; 例如:一個(gè)簡單的學(xué)生成績管理系統(tǒng)用來管理若干個(gè)學(xué)生的信息。class SS public: 例如:一個(gè)簡單的學(xué)此時(shí)的主函數(shù)代碼
12、為:void main( ) SS stu30; /定義30個(gè)學(xué)生類的對象 int i, n=5; /對前5個(gè)學(xué)生執(zhí)行下列操作 for (i=0;in; i+) stui.readData( ); for (i=0;in; i+) stui.calcuScore( ); sortScore( stu,5) ; for (i=0;in;i+) stui.printOut( ); 若在類SS中增加 int experiScore; 表示實(shí)驗(yàn)成績,總評成績計(jì)算方法改變,則類的成員函數(shù)代碼需做相應(yīng)地改造,但主函數(shù)的代碼不需做任何變動(dòng)。例如:一個(gè)簡單的學(xué)生成績管理系統(tǒng)用來管理若干個(gè)學(xué)生的信息。程序=對象
13、+消息此時(shí)的主函數(shù)代碼為:例如:一個(gè)簡單的學(xué)生成績管理系統(tǒng)用來管理1.2 面向?qū)ο蟮幕靖拍顚ο螅╫bject) 一般意義上的對象指的是一個(gè)實(shí)體的實(shí)例,在這個(gè)實(shí)體中包括了特定的數(shù)據(jù)和對這些數(shù)據(jù)的操作。1.2 面向?qū)ο蟮幕靖拍顚ο螅╫bject) 1.2 面向?qū)ο蟮幕靖拍顚ο螅╫bject)封裝的實(shí)體 = 數(shù)據(jù)+方法(操作)數(shù)據(jù):屬性或狀態(tài)方法:作用于數(shù)據(jù)上的操作封裝:屬性的訪問和變化通過方法完成每個(gè)對象由對象標(biāo)識符唯一標(biāo)識1.2 面向?qū)ο蟮幕靖拍顚ο螅╫bject)封裝的實(shí)體 圓圓心位置半徑顏色移動(dòng)面積對象名屬性操作1.2 面向?qū)ο蟮幕靖拍顚ο螅╫bject)r圓圓心位置移動(dòng)對象名屬性
14、操作1.2 面向?qū)ο蟮幕靖拍顚ο?.2 面向?qū)ο蟮幕靖拍顚ο螅╫bject) 特點(diǎn)1. 以數(shù)據(jù)為中心。 對象是由數(shù)據(jù)及有權(quán)對這些數(shù)據(jù)施加的操作組成的統(tǒng)一體,這些操作圍繞著對其數(shù)據(jù)所需進(jìn)行的處理來設(shè)置,操作的結(jié)果也與這些數(shù)據(jù)的值相關(guān)。1.2 面向?qū)ο蟮幕靖拍顚ο螅╫bject) 特點(diǎn)11.2 面向?qū)ο蟮幕靖拍顚ο螅╫bject) 特點(diǎn)2. 對象是主動(dòng)的。 對象是進(jìn)行處理的主體。當(dāng)系統(tǒng)需要完成某對象內(nèi)部的某個(gè)操作時(shí),不能從外部直接加工該對象自己的數(shù)據(jù),而是必須通過公共接口向該對象發(fā)消息,請求該對象執(zhí)行某個(gè)操作,處理相關(guān)的數(shù)據(jù)。1.2 面向?qū)ο蟮幕靖拍顚ο螅╫bject) 特點(diǎn)21.2 面
15、向?qū)ο蟮幕靖拍顚ο螅╫bject) 特點(diǎn)3. 實(shí)現(xiàn)了數(shù)據(jù)封裝。 對象的數(shù)據(jù)和操作完全被封裝在對象的內(nèi)部,對外是隱蔽、不可見的。對對象內(nèi)部數(shù)據(jù)的訪問和處理只能通過共有的操作進(jìn)行。1.2 面向?qū)ο蟮幕靖拍顚ο螅╫bject) 特點(diǎn)31.2 面向?qū)ο蟮幕靖拍顚ο螅╫bject) 特點(diǎn)4. 本質(zhì)上具有并行性。 不同對象各自獨(dú)立地處理自身的數(shù)據(jù),彼此通過發(fā)消息傳遞信息完成通信。1.2 面向?qū)ο蟮幕靖拍顚ο螅╫bject) 特點(diǎn)41.2 面向?qū)ο蟮幕靖拍顚ο螅╫bject) 特點(diǎn)5. 模塊性好。 對象是面向?qū)ο筌浖到y(tǒng)的基本模塊,對象的操作圍繞著對其內(nèi)部數(shù)據(jù)所需進(jìn)行的處理來設(shè)置,沒有無關(guān)的操作。
16、1.2 面向?qū)ο蟮幕靖拍顚ο螅╫bject) 特點(diǎn)51.2 面向?qū)ο蟮幕靖拍顚傩裕ˋttribute) 描述對象靜態(tài)特征的數(shù)據(jù)項(xiàng)種類 公有(public)保護(hù)(protected)私有(private)1.2 面向?qū)ο蟮幕靖拍顚傩裕ˋttribute) 描述1.2 面向?qū)ο蟮幕靖拍罘椒?Method) 描述對象的動(dòng)態(tài)特征或行為是對象與外界的接口作用 改變對象的屬性返回對象的屬性object 1object 21.2 面向?qū)ο蟮幕靖拍罘椒?Method) 描述對象的1.2 面向?qū)ο蟮幕靖拍?操作的方式 以某種方式操縱數(shù)據(jù)的操作(如增、刪、 查詢、選擇); 完成某種計(jì)算的操作; 為控制
17、事件的發(fā)生而監(jiān)控對象的操作。方法(Method)1.2 面向?qū)ο蟮幕靖拍?操作的方式方法(Method)1.2 面向?qū)ο蟮幕靖拍铑悾╟lass)r1r2r3 類是對具有相同屬性和方法的一組相似對象的抽象描述。obj1obj2obj31.2 面向?qū)ο蟮幕靖拍铑悾╟lass)r1r2r3 1.2 面向?qū)ο蟮幕靖拍钭孕熊噷ο髷?shù)據(jù)抽象自行車類屬性:架子尺寸 車輪尺寸 顏色 原材料操作:轉(zhuǎn)彎 移動(dòng) 修理1.2 面向?qū)ο蟮幕靖拍钭孕熊噷ο髷?shù)據(jù)抽象自行車類屬性:1.2 面向?qū)ο蟮幕靖拍铑悾╟lass)類與對象的關(guān)系類是對象的抽象對象是類的實(shí)例1.2 面向?qū)ο蟮幕靖拍铑悾╟lass)類與對象的關(guān)
18、系1.2 面向?qū)ο蟮幕靖拍罱處?教師2教師3教師N屬性: 行為:教師號 獲取教師號姓名 獲取姓名年齡 獲取年齡 職稱 獲取職稱對象(教師1)對象(教師2)對象(教師3)對象(教師N)教師群體教師類對象1.2 面向?qū)ο蟮幕靖拍罱處?屬性: 行1.2 面向?qū)ο蟮幕靖拍铑悾╟lass) 對于同一類的不同實(shí)例之間,必定具有: 相同的操作集合 相同的屬性集合 不同的對象名稱1.2 面向?qū)ο蟮幕靖拍铑悾╟lass) 對于同一類1.2 面向?qū)ο蟮幕靖拍钕ⅲ╩essage) 消息對象之間相互請求或相互協(xié)作的途徑,是要求某個(gè)對象執(zhí)行其中某個(gè)功能操作的規(guī)格的說明。object 1object 2發(fā)送方
19、接收方1.2 面向?qū)ο蟮幕靖拍钕ⅲ╩essage) 1.2 面向?qū)ο蟮幕靖拍钕ⅲ╩essage)消息有三部分組成:接收消息的對象消息名零個(gè)或多個(gè)變元如:MyCircle.Show(Red)1.2 面向?qū)ο蟮幕靖拍钕ⅲ╩essage)消息有三部1.2 面向?qū)ο蟮幕靖拍钕ⅲ╩essage)同一對象可接收不同形式的多個(gè)消息,產(chǎn)生不同的響應(yīng);同一個(gè)消息可以發(fā)給不同的對象,所做出的響應(yīng)可以截然不同;發(fā)送方不需要知道接受方如何對請求予以響應(yīng)的。1.2 面向?qū)ο蟮幕靖拍钕ⅲ╩essage)同一對象可1.3 面向?qū)ο蟪绦虻奶匦?. 封裝性圓圓圓心位置半徑顏色移動(dòng)面積接口1.3 面向?qū)ο蟪绦?/p>
20、的特性1. 封裝性圓圓接口1.3 面向?qū)ο蟪绦虻奶匦?. 封裝性一個(gè)清楚的邊界,封裝的基本單位是對象;具有確定接口,這個(gè)接口描述該對象與其他對象之間的相互作用;受保護(hù)的內(nèi)部實(shí)現(xiàn),提供對象的相應(yīng)軟件功能細(xì)節(jié)。object封裝性的條件:1.3 面向?qū)ο蟪绦虻奶匦?. 封裝性一個(gè)清楚的邊界,封裝1.3 面向?qū)ο蟪绦虻奶匦詂lass CCompanyStaff /封裝單元(類)/* 行為封裝 */public: /外部接口標(biāo)志void SetBasicSal( float ); /設(shè)置基本工資 float GetBasicSal ( void ); /查詢基本工資float CalculateSal(
21、 float, float ); /計(jì)算實(shí)際發(fā)放工資 /* 數(shù)據(jù)封裝 */private: /內(nèi)部隱藏標(biāo)志int m_iStaffNum; /工作編號char m_pName ; /姓名float m_fRateOfAttend; /出勤率float m_fBasicSal ; /基本工資; 1.3 面向?qū)ο蟪绦虻奶匦詂lass CCompanySt1.3 面向?qū)ο蟪绦虻奶匦杂行У膶?shí)現(xiàn)了信息隱藏,真正實(shí)現(xiàn)了軟件的模塊化。減小了內(nèi)外修改相互的影響,提高了軟件的可維護(hù)性。作用:1. 封裝性1.3 面向?qū)ο蟪绦虻奶匦杂行У膶?shí)現(xiàn)了信息隱藏,真正實(shí)現(xiàn)了1.3 面向?qū)ο蟪绦虻奶匦?. 繼承性繼承性是父類和
22、子類之間共享數(shù)據(jù)和方法的機(jī)制;繼承性具有傳遞性;繼承性包括單繼承和多重繼承。 子類繼承部分個(gè)性部分父類共性部分1.3 面向?qū)ο蟪绦虻奶匦?. 繼承性繼承性是父類和子類之1.3 面向?qū)ο蟪绦虻奶匦孕误w大小、顏色、位置等移動(dòng)、擦除、著色等共性:移動(dòng)、擦除、著色等特性:面積的計(jì)算2. 繼承性1.3 面向?qū)ο蟪绦虻奶匦孕误w大小、顏色、位置等移動(dòng)、擦除1.3 面向?qū)ο蟪绦虻奶匦詥卫^承多重繼承設(shè)備輸出設(shè)備I/O設(shè)備輸入設(shè)備2. 繼承性1.3 面向?qū)ο蟪绦虻奶匦詥卫^承多重繼承設(shè)備輸出設(shè)備I/O1.3 面向?qū)ο蟪绦虻奶匦匀斯と?. 繼承性學(xué)生教師農(nóng)民小學(xué)生中學(xué)生大學(xué)生研究生助教講師教授1.3 面向?qū)ο蟪绦虻奶?/p>
23、性人工人2. 繼承性學(xué)生教師農(nóng)民小1.3 面向?qū)ο蟪绦虻奶匦郧逦w現(xiàn)相關(guān)類間層次結(jié)構(gòu)關(guān)系;減小代碼和數(shù)據(jù)的重復(fù)冗余度,增加程序的重用性;通過增強(qiáng)一致性來減少模塊間的接口和界面,增加易維護(hù)性;自動(dòng)傳播代碼;構(gòu)建擴(kuò)充新類的有效手段。優(yōu)點(diǎn):2. 繼承性1.3 面向?qū)ο蟪绦虻奶匦郧逦w現(xiàn)相關(guān)類間層次結(jié)構(gòu)關(guān)系;優(yōu)1.3 面向?qū)ο蟪绦虻奶匦?. 多態(tài)性 不同的對象收到同一個(gè)消息可產(chǎn)生完全不同的效果,這一現(xiàn)象叫做多態(tài)。大學(xué)生中學(xué)生繼承計(jì)算成績計(jì)算成績語文數(shù)學(xué)英語高等數(shù)學(xué)計(jì)算機(jī)普通物理1.3 面向?qū)ο蟪绦虻奶匦?. 多態(tài)性 不同1.3 面向?qū)ο蟪绦虻奶匦孕误w大小、顏色、位置等移動(dòng)、擦除、著色等面積=邊長2面積
24、=PI*r23. 多態(tài)性1.3 面向?qū)ο蟪绦虻奶匦孕误w大小、顏色、位置等移動(dòng)、擦除1.3 面向?qū)ο蟪绦虻奶匦栽鰪?qiáng)了操作的透明性、可理解性和可擴(kuò)展性;增強(qiáng)了軟件的靈活性和重用性。作用:3. 多態(tài)性1.3 面向?qū)ο蟪绦虻奶匦栽鰪?qiáng)了操作的透明性、可理解性和可1.4 面向?qū)ο蟮某绦蛎嫦驅(qū)ο蟪绦蛟O(shè)計(jì)經(jīng)歷的幾個(gè)階段:面向?qū)ο蠓治觯∣OA)面向?qū)ο笤O(shè)計(jì)(OOD)面向?qū)ο缶幊蹋∣OP)面向?qū)ο鬁y試(OOT)1.4 面向?qū)ο蟮某绦蛎嫦驅(qū)ο蟪绦蛟O(shè)計(jì)經(jīng)歷的幾個(gè)階段:面一個(gè)簡單圖形程序的需求: 在顯示器熒光屏上圓心坐標(biāo)為(100,100)的位置上,畫一個(gè)半徑為40的圓,在圓心坐標(biāo)為(200,300)的位置上,畫一個(gè)半
25、徑為20的圓,在圓心坐標(biāo)為(400,150)的位置上,畫一條弧,弧的起始角度為30,結(jié)束角度為120,半徑為50。注意:功能需求必須是可測試的。一、面向?qū)ο蠓治?.4 面向?qū)ο蟮某绦蛞粋€(gè)簡單圖形程序的需求:一、面向?qū)ο蠓治?.4 面向?qū)ο笠?、面向?qū)ο蠓治?面向?qū)ο蠓治鼍褪浅槿『驼碛脩粜枨蟛⒔栴}域精確模型的過程。面向?qū)ο蠓治龅年P(guān)鍵工作,是分析確定問題域中的對象及對象間的關(guān)系,從而建立起問題域的對象模型。1.4 面向?qū)ο蟮某绦蛞弧⒚嫦驅(qū)ο蠓治?面向?qū)ο蠓治鼍褪浅槿『驼碛脩粜?在顯示器熒光屏上圓心坐標(biāo)為(100,100)的位置上,畫一個(gè)半徑為40的圓,在圓心坐標(biāo)為(200,300)的位置上,
26、畫一個(gè)半徑為20的圓,在圓心坐標(biāo)為(400,150)的位置上,畫一條弧,弧的起始角度為30,結(jié)束角度為120,半徑為50。顯示器熒光屏,圓心坐標(biāo),位置,半徑,圓,弧,起始角度,結(jié)束角度1. 確定對象一、面向?qū)ο蠓治?在顯示器熒光屏上圓心坐標(biāo)為(100,100)的位置顯2. 確定屬性一、面向?qū)ο蠓治龌A心坐標(biāo)半徑起始角度結(jié)束角度可見性圓圓心坐標(biāo)半徑可見性 注意:不可能在需求陳述中找到所有屬性,還必須借助領(lǐng)域知識和常識,才能分析得出所需要的全部屬性,圓和弧都應(yīng)該再增加一個(gè)屬性可見性。2. 確定屬性一、面向?qū)ο蠓治龌A心坐標(biāo)半徑起始角度結(jié)束角度3. 確定服務(wù)一、面向?qū)ο蠓治鰣A圓心坐標(biāo)半徑可見性讀/寫
27、圓心坐標(biāo)讀/寫半徑讀/寫可見性顯示隱藏弧圓心坐標(biāo)半徑起始角度結(jié)束角度可見性讀/寫圓心坐標(biāo)讀/寫半徑讀/寫起始角度讀/寫結(jié)束角度讀/寫可見性顯示隱藏3. 確定服務(wù)一、面向?qū)ο蠓治鰣A圓心坐標(biāo)半徑可見性讀/寫圓心二、面向?qū)ο笤O(shè)計(jì) 面向?qū)ο笤O(shè)計(jì)就是把通過分析得出的對程序的準(zhǔn)確需求轉(zhuǎn)變成實(shí)現(xiàn)程序的方案的過程。建立類等級定義屬性定義服務(wù)1.4 面向?qū)ο蟮某绦蚨⒚嫦驅(qū)ο笤O(shè)計(jì) 面向?qū)ο笤O(shè)計(jì)就是把通過分析得出的三、面向?qū)ο缶幊套R別問題及問題的解中出現(xiàn)的對象根據(jù)對象的共同點(diǎn)和不同點(diǎn)對它們進(jìn)行分類設(shè)計(jì)出對象間的相互的消息實(shí)現(xiàn)執(zhí)行對象間相互作用的算法的方法1.4 面向?qū)ο蟮某绦蛉⒚嫦驅(qū)ο缶幊套R別問題及問題的解中出
28、現(xiàn)的對象1.4 面四、面向?qū)ο鬁y試 運(yùn)用面向?qū)ο蠹夹g(shù),對組裝成一個(gè)完整的應(yīng)用系統(tǒng)進(jìn)行以對象概念為中心的軟件測試。OOT以對象的類作為基本測試單位,查錯(cuò)的范圍主要是類定義之內(nèi)的屬性和服務(wù),以及有限的對外接口所涉及的部分。1.4 面向?qū)ο蟮某绦蛩?、面向?qū)ο鬁y試 運(yùn)用面向?qū)ο蠹夹g(shù),對組裝成一1.5 面向?qū)ο蟪绦蛟O(shè)計(jì)語言 從20世紀(jì)60年代開始,先后出現(xiàn)了Simula、Smalltalk、Object-C、Eiffel、Ada、C+和Java等面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,每種語言各有其優(yōu)勢和應(yīng)用領(lǐng)域。1.5 面向?qū)ο蟪绦蛟O(shè)計(jì)語言 從20世紀(jì)60Simula67語言: 20世紀(jì)60年代開發(fā),被認(rèn)為是面向?qū)ο?/p>
29、程序設(shè)計(jì)語言的鼻祖,它提供了對象、類、繼承的概念,提出了面向?qū)ο蟮男g(shù)語,面向?qū)ο蟪绦蛟O(shè)計(jì)的許多原始思想都來源于此語言。1.5 面向?qū)ο蟪绦蛟O(shè)計(jì)語言Simula67語言: 1.5 面向?qū)ο蟪绦蛟O(shè)計(jì)語言Smalltalk語言: 從20世紀(jì)70年代開始開發(fā),它完整體現(xiàn)了來自于Simula以及其他早期原型語言中面向?qū)ο蟮母拍?,歷經(jīng)了Smalltalk-72、Smalltalk-76和Smalltalk-80幾個(gè)版本,現(xiàn)在一般用Smalltalk-80 。1.5 面向?qū)ο蟪绦蛟O(shè)計(jì)語言Smalltalk語言: 1.5 面向?qū)ο蟪绦蛟O(shè)計(jì)語言O(shè)bject-C語言: 1983年左右開發(fā),它在C語言的基礎(chǔ)上進(jìn)行了擴(kuò)充,通過新引入的構(gòu)造和運(yùn)算符來完成類定義和消息傳遞,其語法更像Smalltalk。1.5 面向?qū)ο蟪绦蛟O(shè)計(jì)語言O(shè)bject-C語言: 1.5 面向?qū)ο蟪绦蛟O(shè)計(jì)語言Eiffel語言:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025合同變更協(xié)議書范本8篇
- 2025年光伏電站建設(shè)質(zhì)量控制合同
- 農(nóng)村私人土地租賃標(biāo)準(zhǔn)合同8篇
- 2025年代收代付服務(wù)合同模板
- 2025年住宅交易策劃先行支付合同樣本
- 2025年農(nóng)村建設(shè)用地的購買合同樣本
- 2025年合作伙伴共同投資策劃合同協(xié)議范本
- 2025年健身中心建設(shè)合同
- 2025年員工薪酬福利策劃與管理合同樣本
- 2025年保險(xiǎn)合同條款綜合指南
- 老年重癥患者靜脈血栓栓塞癥預(yù)防中國專家共識(2023)解讀
- 北師大版四年級數(shù)學(xué)下冊期末測試卷(一)(含答案)
- 2025年云南省曲靖市富源縣能源局公開招聘引進(jìn)煤礦安全監(jiān)管急需緊缺人才筆試高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 婦產(chǎn)科學(xué)(甲)知到智慧樹章節(jié)測試課后答案2024年秋浙江大學(xué)
- 2025年春新外研版(三起)英語三年級下冊課件 Unit3第1課時(shí)startup
- FSC培訓(xùn)課件教學(xué)課件
- 2025年福建福州地鐵集團(tuán)招聘筆試參考題庫含答案解析
- 《小學(xué)數(shù)學(xué)“對分課堂”教學(xué)模式的實(shí)踐探索》3900字(論文)
- 初中數(shù)學(xué)幾何《旋轉(zhuǎn)模型費(fèi)馬點(diǎn)》壓軸題含答案解析
- 康復(fù)健康小屋課件
- 《內(nèi)部審計(jì)程序》課件
評論
0/150
提交評論