版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、面向?qū)ο蠓治雠c設計第一章 面向?qū)ο蠓椒ǜ耪?軟件系統(tǒng)開發(fā)方法傳統(tǒng)開發(fā)方法面向?qū)ο蠓椒ㄖ苯訉懗绦蚪Y(jié)構(gòu)化分析法信息建模法功能能分解法數(shù)據(jù)流法有限狀態(tài)機法基于規(guī)則系統(tǒng)E-R圖人工智能專家系統(tǒng)抽象客戶委托信息隱藏封裝數(shù)據(jù)抽象過程抽象消息通信泛化繼承分類代理動態(tài)行為靜態(tài)行為行為分析復雜性控制包括包括包括包括包括包括包括包括包括使用使用用于原則原則原則原則原則原則原則原則包括包括包括包括包括包括包括2Contents內(nèi)容1.問題提出2.OO思想與OO程序3.OO概念與原則4. OO優(yōu)點面向?qū)ο蠓椒ǜ耪揙bject Oriented Method3Problem of Software Dvpt411 傳統(tǒng)
2、開發(fā)方法中存在的問題二十世紀六十年代以前 軟件系統(tǒng):較小 ,相對簡單編程語言:十分簡單(Fortran, Cobol等 )崇尚程序員的個人技能 代碼:含GOTO語句,隨意跳轉(zhuǎn)隨著軟件復雜性的增長代碼維護無開發(fā)方法可言51、功能分解法(起于二十世紀七十年代)功能分解法(function decomposition) 功能分解 功能+子功能 +功能接口以系統(tǒng)需要提供的功能為中心來組織系統(tǒng)。定義各種功能把功能分解為子功能同時定義功能之間的接口對較大的子功能進一步分解,直到可給出明確的定義。設計數(shù)據(jù)結(jié)構(gòu)和算法。 功能 功能 功能 系統(tǒng) 子功能子功能子功能子功能分解分解分解6C語言案例“程序設計的實質(zhì)是
3、對確定的問題選擇一種好的結(jié)構(gòu),加上設計一種好的算法。”嚴蔚敏. 數(shù)據(jù)結(jié)構(gòu) 案例:1.0 學生成績信息管理.C1.1.1 prog1.c 與1.1.2 prog2.c7功能模塊功能模塊功能模塊功能模塊功能模塊功能模塊功能模塊功能模塊功能模塊功能模塊得到的系統(tǒng)模型:由模塊及其接口構(gòu)成8優(yōu)點計算機應用普及特定的用戶按自己的需要,對軟件系統(tǒng)做出了功能性的要求,有據(jù)可尋。 在相當大的程度上,解決了以前存在的問題特別是與模塊化編程結(jié)合使用,效率更高刪除GOTO語句,與模塊化編程相結(jié)合使得軟件能得到有效的維護 適用于功能穩(wěn)定的應用領(lǐng)域如某些科學計算直接地反映用戶的需求工作很容易開始9缺點結(jié)構(gòu)化分析和設計注重
4、處理功能對所處理的數(shù)據(jù)放于次要的位置對于眾多的領(lǐng)域而言,其功能是易變的如企業(yè)管理和商業(yè)管理。對需求變化的適應能力很差。局部的錯誤和局部的修改很容易產(chǎn)生全局性的影響。開頭容易,結(jié)束難。不能直接地映射問題域很難檢驗分析結(jié)果的正確性。102、數(shù)據(jù)流法(結(jié)構(gòu)化分析法,二十世紀七十年代)數(shù)據(jù)流法 數(shù)據(jù)流數(shù)據(jù)處理(加工)數(shù)據(jù)存儲端點處理說明數(shù)據(jù)字典基本策略跟蹤數(shù)據(jù)流,問題域被映射為數(shù)據(jù)流圖(DFD)用處理說明和數(shù)據(jù)字典進行詳細說明。數(shù)據(jù)流加工數(shù)據(jù)存儲端點處理說明數(shù)據(jù)詞典11經(jīng)過初步的需求分析,得到系統(tǒng)功能要求:1、監(jiān)視病員的病癥(血壓、體溫、脈搏等)。2、定時更新病歷。3、病員出現(xiàn)異常情況時報警。4、隨機
5、地產(chǎn)生某一病員的病情報告。數(shù)據(jù)流圖案例:醫(yī)院病房監(jiān)護系統(tǒng)產(chǎn)生病情報告監(jiān)視病情更新病歷12數(shù)據(jù)存儲數(shù)據(jù)源點或終點加 工加工名數(shù)據(jù)流數(shù)據(jù)流名文件名實體名箭 頭圓或橢圓單或雙杠矩形框TAB*CTAB*CTAB+CTAB+CTABC+TABC+* 與 + 或互斥+輔助圖例:四種基本圖形符號:數(shù)據(jù)流圖的圖符13系統(tǒng)功能要求: 1、監(jiān)視病員的病癥(血壓、體溫、脈搏等) 2、定時更新病歷 3、病員出現(xiàn)異常情況時報警。 4、隨機地產(chǎn)生某一病員的病情報告。頂層:頂層設計:案例:醫(yī)院病房監(jiān)護系統(tǒng)14計算超過極限值否病員數(shù)據(jù)超過極限值報警開解信號產(chǎn)生報警信息病員極限格式化病員數(shù)據(jù)體溫血壓、體溫、脈搏生理信號極限值時
6、間脈搏血壓日期時鐘格式化病員數(shù)據(jù)3.4第二層:加工“中央監(jiān)視”分解圖 2.15第一層格式化病員數(shù)據(jù)生理信號極限值病員護士護士中央監(jiān)視病員日志病癥信號要求報告病癥報告報警局部監(jiān)視生成報告病員極限更新日志病員數(shù)據(jù)1324日志數(shù)據(jù)圖 2.16醫(yī)院病房監(jiān)護系統(tǒng)分層DFD圖15數(shù)據(jù)流法業(yè)務模型優(yōu)缺點優(yōu)點:有嚴格的法則,逐步求精,較強調(diào)研究問題域。缺點:在概念上,不能直接地映射到問題域中的事物對需求變化的適應能力較弱。大系統(tǒng)數(shù)據(jù)流和加工的數(shù)量太多,引起分析文檔的膨脹。系統(tǒng)復雜時,難以檢驗分析的正確性。分析與設計的概念和表示法不一致,其轉(zhuǎn)換規(guī)則也不嚴格。16小結(jié)功能分解法和數(shù)據(jù)流法適用于功
7、能穩(wěn)定的應用領(lǐng)域,如某些科學計算已經(jīng)開發(fā)了很多軟件系統(tǒng)。對于功能易變的眾多領(lǐng)域,如企業(yè)管理和商業(yè)管理領(lǐng)域容易導致模塊的低內(nèi)聚和模塊間的高耦合使得統(tǒng)缺乏靈活性和可維護性。由于當時團隊的開發(fā)與管理方法不足20世紀70年代,軟件危機情況更加嚴重。解決軟件危機方法對開發(fā)技術(shù)進行了一定的改進對編程語言進行了革新如產(chǎn)生了用于軟件開發(fā)的4GL、CASE工具、原型技術(shù)和代碼生成器這些努力取得了一定的成就,但沒有從根本上解決問題。 173、基于數(shù)據(jù)的方法(二十世紀八十年代)實體-聯(lián)系圖 用實體的數(shù)據(jù)集合作為構(gòu)造塊,以數(shù)據(jù)結(jié)構(gòu)為中心。 信念數(shù)據(jù)是“企業(yè)應用”中最穩(wěn)定的部分背景關(guān)系數(shù)據(jù)庫有一個極好的數(shù)學基礎大多數(shù)公
8、司使用數(shù)據(jù)建模方法開發(fā)軟件。 結(jié)構(gòu)化的方法實際上能夠幫助開發(fā)者處理數(shù)據(jù)但數(shù)據(jù)建模方法卻不能幫助開發(fā)者管理功能。18信息建模法(information modeling)信息建模 實體(對象)屬性關(guān)系父類型子類型關(guān)聯(lián)對象由實體-聯(lián)系法(E-R方法)發(fā)展而來。與數(shù)據(jù)庫設計有很深的淵源。核心概念是實體和聯(lián)系:實體描述問題域的事物,含有屬性;聯(lián)系描述事物之間在數(shù)據(jù)方面的關(guān)系,也可以帶有屬性。實體稱作對象使用類型和子類型的概念,作為實體(對象)的抽象描述。19業(yè)務模型實體(對象)屬性聯(lián)系父類型/子類型關(guān)聯(lián)對象跟蹤數(shù)據(jù)流,從而發(fā)現(xiàn)數(shù)據(jù)流和加工。強調(diào)對信息實體建模,而不是對象建模。對象只有屬性,而無操作。父
9、類與子類之間也只有屬性繼承。沒采用消息通訊。1204、有限狀態(tài)機方法基于現(xiàn)實的行為視圖狀態(tài)系統(tǒng)的構(gòu)造塊所操作的數(shù)據(jù)獨立于狀態(tài)基于系統(tǒng)狀態(tài)的處理這一方法沒有說到數(shù)據(jù)管理。預訂歸檔使用確認等待機票初始狀態(tài)215、基于規(guī)則的系統(tǒng)計算機是執(zhí)行一套規(guī)則的推理機(ifthen語句)?;谌斯ぶ悄芟到y(tǒng) 沒有幫助我們處理數(shù)據(jù)不支持過程概念 如 prolog, list語言 22傳統(tǒng)開發(fā)方法總結(jié)上述方法都僅基于一個角度看待系統(tǒng)對系統(tǒng)的其它視圖建模方面的能力很弱。對OO產(chǎn)生都做出了一定的貢獻. 23Contents內(nèi)容1.問題提出2.OO思想與OO程序3.OO概念與原則4. OOD優(yōu)點面向?qū)ο蠓椒ǜ耪揙bject
10、 Oriented Method24Basic Idea of OO2512 面向?qū)ο蟮幕舅枷牍δ芊纸夥杏趯⒐δ茏鳛橄到y(tǒng)的構(gòu)造塊數(shù)據(jù)分析方法(實體聯(lián)系模型)構(gòu)造塊是實體忽略了滿足系統(tǒng)需求的功能功能分解法與數(shù)據(jù)分析方法存在問題:沒有處理對動態(tài)行為的捕獲忽略了聲明性語義(規(guī)則)以及例外處理機制八十年代中后期:出現(xiàn)較為完善的面向?qū)ο蠓治龊驮O計方法從多個視角同時捕獲系統(tǒng)功能、行為、實體26一切都是對象例題:編寫一個開發(fā)票程序,需要對發(fā)票的名細欄進行計算。編號名稱規(guī)格單位數(shù)量單價金額合計非面向?qū)ο笏悸罚憾x數(shù)據(jù)結(jié)構(gòu)定義函數(shù)面向?qū)ο笏悸罚簩ο笠唤M屬性操作:發(fā)票總計 27什么是面向?qū)ο髲某绦蛟O計方法的
11、角度看,面向?qū)ο笫且环N新的程序設計范型(paradigm),其基本思想是使用對象、類、繼承、封裝、聚合、關(guān)聯(lián)、消息、多態(tài)性等基本概念來進行程序設計。從方法學的角度看,面向?qū)ο蠓椒ㄊ且环N運用對象、類、繼承、封裝、聚合、關(guān)聯(lián)、消息、多態(tài)性等概念來構(gòu)造系統(tǒng)的軟件開發(fā)方法。 28面向?qū)ο蟮幕舅枷胫苯右詥栴}域(現(xiàn)實世界)中的事物為中心來思考問題、認識問題根據(jù)這些事物的本質(zhì)特征,把它們抽象地表示為系統(tǒng)中的對象,作為系統(tǒng)的基本構(gòu)成單位。使系統(tǒng)直接映射問題域,保持問題域中事物及其相互關(guān)系的本來面貌(對象)用對象的屬性表示事物的性質(zhì); (屬性)用對象的操作表示事物的行為。(操作)對象的屬性與操作結(jié)合為一體對外
12、屏蔽其內(nèi)部細節(jié)。(對象的封裝)29面向?qū)ο蟮幕舅枷耄–ont.)對事物進行分類。把具有相同屬性和相同操作的對象歸為一類,類是這些對象的抽象描述,每個對象是它的類的一個實例。 (分類)復雜的對象可以用簡單的對象作為其構(gòu)成部分。(聚合)通過在不同程度上運用抽象的原則,可以得到較一般的類和較特殊的類。特殊類繼承一般類的屬性與操作,從而簡化系統(tǒng)的構(gòu)造過程及其文檔。(繼承)類具有封閉性,把內(nèi)部的屬性和操作隱藏起來只有公共的操作對外是可見的。 (類的封閉性)對象之間通過消息進行通訊實現(xiàn)對象之間的動態(tài)聯(lián)系。 (消息)通過關(guān)聯(lián)表達類(一組對象)之間的靜態(tài)關(guān)系。(關(guān)聯(lián))30客觀世界對象對象對象對象對象對象對象
13、對象對象對象對象名屬性操作類類類類分類類繼承類類對象聚合抽象客觀事物及其間的聯(lián)系關(guān)聯(lián)用況圖類圖順序圖狀態(tài)圖活動圖構(gòu)件圖OO模型編程構(gòu)成封裝運行分析設計面向?qū)ο蟮幕舅枷胧疽鈭D對象對象對象對象對象對象對象對象計算機內(nèi)的對象31OO Programming32Procedural Programming - ExampleA procedural programming language usually consists of : A collection of variables, each of which at any stage contains a certain value (a nu
14、mber, a character, a string of characters, etc) A collection of statements that change the values of these variables.The building-block of this type program is the procedure or function.Programs = Algorithm + Data StructureStruct account char name; int accountId; float balance; float interestYTD; ch
15、ar accountType;Data Structure: Bank AccountProcedure 1: Deposit() .Procedure 1: Withdraw() .Procedure 1: Transfer() .33Object-Oriented Programming - ExampleObject-Oriented approach combine the accounts (data) with the operations on the accounts to objects. A new kind of data type: BankAccount classC
16、+ code: Class BankAccount private: float balance; float interestYTD;char * owner; int account_number; public: void Deposit (float amount) . float WithDraw (float amount) bool Transfer (BankAccount & to, float amount) ;34Object-Oriented Programming - ExampleThe building-block of this type program is
17、class or objects.35C+案例(計算機內(nèi)的對象)1.2 student_class.cpp1.3 construct_class.cpp1.4 construct_class_1.cpp1.5 overload.cpp1.6 overload.cpp1.7 hierarchy.cpp1.8 hierarchy.cpp36Java案例(計算機內(nèi)的對象)引用:PassTest.java重載:methodoverloadingtest多態(tài):geometrydemo永久對象:JDBC37Contents內(nèi)容1.問題提出2.OO思想與OO程序3.OO概念與原則4. OO優(yōu)點面向?qū)ο蠓椒ǜ?/p>
18、論Object Oriented Method38Basic concepts of OO39Basic Concepts of Object Orientation Object 對象 Class 類 Message 消息association關(guān)聯(lián)aggregation聚合 Basic Principles of Object Orientation 面向?qū)ο蟮幕驹瓌t Abstraction 抽象 Encapsulation 封裝 Inheritance 繼承 Polymorphism 多態(tài) Interface and Abstract Class 接口與抽象類行為分析復雜性控制40Wha
19、t Is an Object?Informally, an object represents代表 an entity實體, either physical, conceptual, or software.Physical物理 entityConceptual概念 entitySoftware軟件 entityTruckChemical ProcessLinked List41A More Formal Definition正式的定義An object is an entity with a well-defined明確定義 的boundary邊界 and identity 標識 that
20、encapsulates state狀態(tài) and behavior行為.State is represented by attributes 屬性and relationships關(guān)系.Behavior is represented by operations操作, methods方法, and state machines狀態(tài)機.ObjectOperationsAttributes42An Object Has State狀態(tài)The state of an object is one of the possible conditions 可能的狀況 in which an object ma
21、y exist.The state of an object normally changes over time隨著時間而變化.Name: J ClarkEmployee ID: 567138HireDate: 07/25/1991Status: TenuredDiscipline: FinanceMaxLoad: 3Name: J ClarkEmployee ID: 567138Date Hired: July 25, 1991Status: Tenured 終身的Discipline: Finance Maximum Course Load: 3 classesProfessor Cla
22、rkProfessor Clark43An Object Has Behavior行為Behavior determines決定 how an object acts and reacts行為與反應.The visible可見的 behavior of an object is modeled建模 by the set of messages it can respond to 可以響應(operations the object can perform對象能夠執(zhí)行的操作).Professor Clarks behaviorSubmit Final GradesAccept Course Of
23、feringTake Sabbatical Maximum Course Load: 3 classesSubmitFinalGrades()AcceptCourseOffering()TakeSabbatical()Professor ClarkSetMaxLoad()Professor Clark44An Object Has Identity標識Each object has a unique identity唯一標識, even if the state is identical to that of another object.Professor “J Clark” teaches
24、 BiologyProfessor “J Clark” teaches Biology45Objects Need to Collaborate合作Objects are useless unless they can collaborate together to solve a problem.Each object is responsible for its own behavior and status.No one object can carry out 執(zhí)行every responsibility責任 on its own獨自.How do objects interact相互
25、作用 with each other?They interact through messages.46What Is a Class?A class is a description of a set of一組 objects that share the same properties and behavior. An object is an instance of a class.ObjectsProfessor SmithProfessor JonesProfessor MellonClass: ProfessorAttributesOperations47A Sample Clas
26、sData Items:manufacturers name制造商model name產(chǎn)品型號year madecolornumber of doorssize of engine發(fā)動機etc.Methods:Define data items (specify 指定manufacturers name, model, year, etc.)Change a data item (color, engine, etc.)Display data itemsCalculate costetc.Class: Automobile48The Relationship Between Classes
27、and ObjectsA class is an abstract definition of an object.It defines the structure and behavior of each object in the class.It serves as a template模板 for creating objects Objects are grouped into分組 classes.An object is an instance實例of a class.ObjectsProfessor SmithProfessor JonesProfessor MellonFrom
28、 Real WorldabstractingClass: ProfessorTo computer WorldinstancingObjects49What Is an Attribute屬性?An attribute is a named property of a class that describes a range of values一套變量 instances of the property may hold.A class may have any number of attributes or no attributes at all.Attributes50Attribute
29、s in Classes and Objectsname: M. Modanoaddress: 123 MainstudentID: 9dateofBirth: 03/10/1967name: D. Hatcheraddress: 456 OakstudentID: 2dateofBirth: 12/11/1969ClassObjects51What Is an Operation?An operation is the implementation of a service that can be requested from any object of the class to affec
30、t behavior.A class may have any number of operations or none at all.Operations52class Professor private String name; private int age; private String speciality; public Professor (String sm, int ia, String ss) name = sm; age = ia; speciality = sst; public String getName () return name; public int get
31、Age () return age; public String getSpeciality () return speciality;Example: class Professor Professor- name : String- age : int- speciality : String+getName() : String+getAge() : int+getSpeciality() : String53wang : Professor name = “wang” age = 35speciality = “computer”Professor wang = new Profess
32、or (“wang”, 35, “computer”);Example : Instance of Professor 54What is a message?A specification規(guī)格 of a communication between objects that conveys傳輸 information with the expectation期望 that activity行動 will ensue跟著發(fā)生One object asks another object to perform an operation.Professor wangwang.getName()What
33、 is your name?55Example: Object InteractionThe OrderEntryForm wants Order to calculate the total dollar value for the order.OrderEntryFormOrderorderIDdatesalesTotaltaxshipDateCalculateOrderTotal()calculateOrderTotal()The class Order has the responsibility to calculate the total dollar value.Message5
34、6Basic Principles原則 of Object OrientationObject Orientation面向?qū)ο驟ncapsulation封裝Abstraction抽象Polymorphism多態(tài)Inheritance繼承57What Is Abstraction?Abstraction can be defined as: Any model that includes the most important重要的, essential基本的, or distinguishing區(qū)分的 aspects of something while suppressing抑制 or ign
35、oring 忽略less important, immaterial不重要的, or diversionary轉(zhuǎn)移注意力的 details. The result of removing distinctions區(qū)別 so as to emphasize commonalties共同點. (Dictionary of Object Technology, Firesmith, Eykholt, 1995)Abstraction Emphasizes relevant characteristics.Suppresses other characteristics.BriefCase- Capa
36、city- Weight+ open()+ close()58Example: AbstractionStudentProfessorCourse Offering (9:00 AM, Monday-Wednesday-Friday)Course (e.g. Algebra)59What Is Encapsulation?Encapsulation means to design設計, produce生產(chǎn), and describe描述 software so that it can be easily used 使用without knowing the details細節(jié) of how i
37、t works.Also known as information hiding信息隱藏An analogy類比:When you drive a car, you dont have to know the details of how many cylinders 汽缸the engine has or how the gasoline汽油 and air空氣 are mixed and ignited點燃.Instead相反地 you only have to know how to use the controls.60What Is Encapsulation?Improves Re
38、siliency彈性 Hide implemmentation實現(xiàn) from clients clients depend on interface61Encapsulation Illustrated舉例說明Professor Clark needs to be able to teach four classes in the next semester.SubmitFinalGrades()AcceptCourseOffering()TakeSabbatical()Professor ClarkSetMaxLoad()Name: J ClarkEmployee ID: 567138Hir
39、eDate: 07/25/1991Status: TenuredDiscipline: FinanceMaxLoad:4SetMaxLoad(4)62Encapsulation Information/Implementation hidingInterfaceImplementation details which are unvisuable for client.Information which cant be accessed by clientClientDeposit()Withdraw()Transfer()BalanceinsterestYTDOwnerAccount_num
40、ber Deposit() Withdraw() Transfer() 63What Is Inheritance ?Inheritance a way of organizing classes Term術(shù)語 comes from inheritance of traits特征 like eye color, hair color, and so on.Classes with properties in common can be grouped so that their common properties are only defined once. Is an “is a kind
41、of” relationship64An Inheritance Hierarchy層級Vehicle車輛Automobile汽車Motorcycle摩托車Bus公共汽車Sedan轎車Sports CarSchool BusLuxury Bus豪華客車What properties does each vehicle inherit from the types of vehicles above it in the diagram?65Example: Single Inheritance單繼承One class inherits from another.CheckingSavingsSu
42、perclass (parent)SubclassesInheritance RelationshipAncestorDescendents66Example: Multiple Inheritance多重繼承A class can inherit from several other classes.Use multiple inheritance only when needed and always with caution!Multiple Inheritance67Polymorphism多態(tài)性Polymorphismthe same word or phrase can be me
43、an different things in different contexts不同情境下的不同東西Analogy: in English, bank can mean side of a river or a place to put moneyIn Java, two or more classes could each have a method called outputEach output method would do the right thing for the class that it was in.One output might display a number數(shù)字
44、 whereas a different one might display a name名字.68What Is Polymorphism?The ability to hide many different implementation behind a single interface.Manufacturer AManufacturer BManufacturer COO Principle:Encapsulation69Example: PolymorphismStock股票Bond債券Mutual Fund共有基金Get Current ValuegetCurrentValue()
45、getCurrentValue()getCurrentValue()70Realization relationship(stay tuned for realization relationships)What is an Interface?An interface is a collection of operations that specify a service of a class or component.Interfaces formalize polymorphismInterfaces support “plug-and-play” architecturesShaped
46、raw()move()scale()rotate()TubePyramidCubeWhatHow71Elided省略/Iconic圖標 Representation(“l(fā)ollipop”棒棒糖)Canonical標準的 (Class/Stereotype) Representation(stay tuned for realization relationships)How Do You Represent An Interface?Shapedraw()move()scale()rotate()ShapeTubePyramidCubeTubePyramidCube72What is an A
47、bstract Class?An abstract class is a class that may not has any direct instances. In the UML, a class is abstract by writing its name in italics.An abstract operation is an operation that it is incomplete未完成的 and requires a child子類 to supply an implementation 實現(xiàn)of the operation. In the UML, an abstr
48、act operations name is italics.Abstract classAbstract operationShapeabstractdraw () abstractCircledraw ()Rectangledraw ()73Contents內(nèi)容1.問題提出2.OO思想與OO程序3.OO概念與原則4. OO優(yōu)點面向?qū)ο蠓椒ǜ耪揙bject Oriented Method7414 面向?qū)ο蠓椒ǖ闹饕獌?yōu)點從認識論的角度看,面向?qū)ο蠓椒ǜ淖兞巳藗冋J識世界的方式 從計算機語言發(fā)展角度看,縮短了自然語言到計算機語言的鴻溝從軟件工程角度看,縮小了問題域到問題解決域(計算機)的鴻溝面向?qū)?/p>
49、象程序設計有助于軟件的維護與復用 面向?qū)ο蠓椒ㄓ兄谔岣哕浖馁|(zhì)量和生產(chǎn)率75對問題域的認識(人)客觀世界(問題域)計算機自然語言語言的鴻溝編程語言語言的過渡(人)編程(人)程序的理解和執(zhí)行(機器)軟件開發(fā):從問題域出發(fā),對事物進行認識和描述問題語言的鴻溝認識論角度:改變了人們認識世界的方式 7614 面向?qū)ο蠓椒ǖ闹饕獌?yōu)點從認識論的角度看,面向?qū)ο蠓椒ǜ淖兞巳藗冋J識世界的方式 從計算機語言發(fā)展角度看,縮短了自然語言到計算機語言的鴻溝從軟件工程角度看,縮小了問題域到問題解決域(計算機)的鴻溝面向?qū)ο蟪绦蛟O計有助于軟件的維護與復用 面向?qū)ο蠓椒ㄓ兄谔岣哕浖馁|(zhì)量和生產(chǎn)率77計算機機器語言自然語
50、言客觀世界(問題域)語言的鴻溝面向?qū)ο蟮恼Z言非OO的高級語言匯編語言程序的指令、數(shù)據(jù)、地址,都是由二進制的“0”和“1”構(gòu)成的。離機器最近,能夠直接地執(zhí)行,然而沒有絲毫形象的意義,離人類的思維最遠。以易理解的符號表示指令、數(shù)據(jù)以及寄存器、地址等物理概念。稍稍適合人類的形象思維,但仍然相差很遠。因為抽象層次太低,仍需考慮大量的機器細節(jié)。高級語言隱蔽了機器細節(jié),使用有形象意義的數(shù)據(jù)命名和表達式,可以聯(lián)系到程序所描述的具體事物。特別是結(jié)構(gòu)化編程語言更便于體現(xiàn)客觀事物的結(jié)構(gòu)和邏輯涵義,與人類的自然語言更接近,但仍有不少差距。能比較直接地反映客觀世界的本來面目,并使軟件開發(fā)人員能夠運用人類認識事物所采用的一般思維方法來進行軟件開發(fā)。語言的發(fā)展鴻溝變窄7814 面向?qū)ο蠓椒ǖ闹饕獌?yōu)點從認識論的角度看,面向?qū)ο蠓椒ǜ淖兞巳藗冋J識世界的方式 從計算機語言發(fā)展角度看,縮短了自然語言到計算機語言的鴻溝從軟件工程角度看,縮小了問題域到問題解決域(計算機)的鴻溝面向?qū)ο蟪绦蛟O計有助于軟件的維護與復用 面向?qū)ο蠓椒ㄓ兄谔岣哕浖馁|(zhì)量和生產(chǎn)率79問題域測試編程計算機編程語言
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度化妝品產(chǎn)品代言合同協(xié)議4篇
- 2025年度臨時餐飲場地租賃服務協(xié)議8篇
- 二零二五年度水電設施智能化改造合同3篇
- 二零二五版餐飲企業(yè)廚師招聘與人才輸送協(xié)議3篇
- 二零二四事業(yè)單位員工試用期人才引進與培養(yǎng)合作協(xié)議3篇
- 2024石材荒料購銷及石材產(chǎn)品安全檢測服務合同3篇
- 2024蔬菜種植與農(nóng)產(chǎn)品加工企業(yè)銷售合作協(xié)議范本3篇
- 2024進出口食品貿(mào)易合同
- 二零二五版合同法擔保條款設計-企業(yè)風險控制策略3篇
- 二零二五年度在線教育平臺股權(quán)收購合同3篇
- GB/T 37238-2018篡改(污損)文件鑒定技術(shù)規(guī)范
- 普通高中地理課程標準簡介(湘教版)
- 河道治理工程監(jiān)理通知單、回復單范本
- 超分子化學簡介課件
- 高二下學期英語閱讀提升練習(一)
- 易制爆化學品合法用途說明
- 【PPT】壓力性損傷預防敷料選擇和剪裁技巧
- 大氣喜慶迎新元旦晚會PPT背景
- DB13(J)∕T 242-2019 鋼絲網(wǎng)架復合保溫板應用技術(shù)規(guī)程
- 心電圖中的pan-tompkins算法介紹
- 羊絨性能對織物起球的影響
評論
0/150
提交評論