面向对象的系统分析与编程语言精选文档.ppt
《面向对象的系统分析与编程语言精选文档.ppt》由会员分享,可在线阅读,更多相关《面向对象的系统分析与编程语言精选文档.ppt(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、面向对象的系统分析面向对象的系统分析与编程语言与编程语言本讲稿第一页,共四十八页讲座内容讲座内容一、一、面向对象的基本原理面向对象的基本原理二、二、面向对象的系统分析面向对象的系统分析三、三、常用语言的分析比较常用语言的分析比较本讲稿第二页,共四十八页一、面向对象的基本原理一、面向对象的基本原理本讲稿第三页,共四十八页连接成员的机制(静态联结与动态关联)生产软件产品 什么是面向对象技术什么是面向对象技术以面向对象方法学为基础的软件系统组织和结构设计的工程技术以面向对象方法学为基础的软件系统组织和结构设计的工程技术特点:特点:标准的工艺流程标准的工艺流程统一的生产规范统一的生产规范内容:面向对象
2、分析内容:面向对象分析面向对象设计面向对象设计面向对象程序设计面向对象程序设计内部组成层次结构思维方法思维方法知其然,知其所以然知其然,知其所以然本讲稿第四页,共四十八页面向对象技术及其发展历史面向对象技术及其发展历史 从从“软件工程软件工程”的发展史看面向对象技术出现的必然性的发展史看面向对象技术出现的必然性面向过程面向过程结构化结构化程序设计程序设计面向对象面向对象程序设计程序设计面向机器面向机器机器语言助记符语言汇编语言面向机器指令代码FORTRANBASIC面向过程程序设计CPASCAL结构化程序设计C+Java面向对象程序设计面向网络面向网络程序设计程序设计JavaVs.NetCAR
3、面向网络程序设计本讲稿第五页,共四十八页 面向对象方法学基本内涵面向对象方法学基本内涵(1)客观世界的事物由各种各样的实体(对象)构成客观世界的事物由各种各样的实体(对象)构成(2)每个对象都有各自的内部状态和运动(状态)规律每个对象都有各自的内部状态和运动(状态)规律(3)根据对象的属性和运动规律的相似性可以将对象分类根据对象的属性和运动规律的相似性可以将对象分类(4)复杂对象由相对简单的对象组成复杂对象由相对简单的对象组成(5)不同对象的组合及其间的相互作用和联系构成了系统不同对象的组合及其间的相互作用和联系构成了系统(6)对象间的相互作用通过消息传递,对象根据所接收到的消息对象间的相互作
4、用通过消息传递,对象根据所接收到的消息做出自身的反应做出自身的反应本讲稿第六页,共四十八页 对象的模块化对象的模块化在程序实现中将一些密切相关的操作以某种风格汇集在一起,形成相对在程序实现中将一些密切相关的操作以某种风格汇集在一起,形成相对独立的整体。独立的整体。模块模块2模块模块1模块化的特征在于抽象和信息隐藏模块化的特征在于抽象和信息隐藏抽象抽象划分方式与客观事物本来面目相对应划分方式与客观事物本来面目相对应信息隐藏信息隐藏内部信息的访问必须通过接口内部信息的访问必须通过接口模块化设计遵守的准则:模块化设计遵守的准则:分解与组合分解与组合 (注重:可分解性、可组合性、可理解性注重:可分解性
5、、可组合性、可理解性)分解分解组合组合本讲稿第七页,共四十八页 软件重用软件重用面向对象技术的发展使得软件重用技术更臻完善和规范面向对象技术的发展使得软件重用技术更臻完善和规范:多种重用方式:子程序(多种重用方式:子程序(SubroutineSubroutine)、程序包()、程序包(PackagePackage)、库()、库(LibraryLibrary)对象的封装使得对象模块在程序开发者看来是一个黑匣子,它只需通过接口去操作对象对象的封装使得对象模块在程序开发者看来是一个黑匣子,它只需通过接口去操作对象和理解对象的行为,而不必关心其内部实现细节,从而程序开发人员能够直接重用已经和理解对象的
6、行为,而不必关心其内部实现细节,从而程序开发人员能够直接重用已经开发的对象模块开发的对象模块 对象的继承在另一个角度提供了软件重用方式,即通过继承允许程序开发者自己的对象重用具对象的继承在另一个角度提供了软件重用方式,即通过继承允许程序开发者自己的对象重用具有相同特性的其它对象的代码有相同特性的其它对象的代码 面向对象技术中的面向对象技术中的COM(Component Object Model)等提供了将对象模块组装)等提供了将对象模块组装在一起的同一机制和方法,利用他们应用程序开发人员可以方便地利用已有的在一起的同一机制和方法,利用他们应用程序开发人员可以方便地利用已有的对象模块组合在一起,
7、构造出更大规模的应用程序对象模块组合在一起,构造出更大规模的应用程序 本讲稿第八页,共四十八页对象数据封装对象数据封装(1)(1)问题空间问题空间所有要研究的客观现实的全体称为问题空间或问题域,而把要研究的问题所有要研究的客观现实的全体称为问题空间或问题域,而把要研究的问题(客观世界中的实体)称之为问题空间的对象(客观世界中的实体)称之为问题空间的对象 任何一个客观实体都是对象任何一个客观实体都是对象 对象的组成对象的组成相互作用相互作用(2)(2)解空间解空间所有的解(程序及执行程序的计算机)组成的集合称为解空间,把解(程序及执行程所有的解(程序及执行程序的计算机)组成的集合称为解空间,把解
8、(程序及执行程序的计算机实体)称做解空间的对象序的计算机实体)称做解空间的对象 对可解问题空间对象至少有一个解空间对象与其相对应对可解问题空间对象至少有一个解空间对象与其相对应(3)(3)封装封装将客观事物抽象为一个相对独立的实体,其中含有该事物的属性及行为将客观事物抽象为一个相对独立的实体,其中含有该事物的属性及行为本讲稿第九页,共四十八页 对象数据封装对象数据封装对象的形态与静态特征问题空间对象问题空间对象图书1MyBook1:CBook书 名:程序设计总页数:280版 本:2.m_pczName:char*=“程序设计”nTotalPage:int=280nEdition:int=2.返
9、回书名返回总页数返回版本号.char*GetBookName();int GetTotalPage();int GetEdition();.分析中的对象设计中的对象人、学生、学校、班级、处、电视、汽车人、学生、学校、班级、处、电视、汽车等都可以被看作对象等都可以被看作对象本讲稿第十页,共四十八页人类认识世界的认知规律之一:人类认识世界的认知规律之一:根据对象的属性和运动规律的相似性分类认识和描述根据对象的属性和运动规律的相似性分类认识和描述相似属性和功能相似的对象构成相似属性和功能相似的对象构成对象类对象类任何一个具体的对象都是相应对象类的任何一个具体的对象都是相应对象类的一个实例一个实例类与
10、对象的不同类与对象的不同类的实例化类的实例化对象类和对象实例对象类和对象实例对象之间通过消息传递,对象对所接收消息的反应对象之间通过消息传递,对象对所接收消息的反应对象之间的相互作用抽象模型对象之间的相互作用抽象模型SenderReceiver/SenderMessage1ReceiverMessage1Message2本讲稿第十一页,共四十八页对象之间的关系对象之间的关系(1)一般一般特殊结构特殊结构人类对事物进行分类后,在概念上,一些种类的事物之间存在着联系,一些类之人类对事物进行分类后,在概念上,一些种类的事物之间存在着联系,一些类之间在行为、属性等方面具有部分相似性,其间存在一般与特殊
11、的对应关系:汽车间在行为、属性等方面具有部分相似性,其间存在一般与特殊的对应关系:汽车与轿车、学生与班委会与轿车、学生与班委会 这种关系不存在于具体对象实例之间,而存在于对象类之间。这种关系不存在于具体对象实例之间,而存在于对象类之间。一般性寓于特殊性之中,体现在一般类对象所具有的属性和操作包含于特一般性寓于特殊性之中,体现在一般类对象所具有的属性和操作包含于特殊类对象之中。殊类对象之中。汽车汽车轿车轿车客车客车卡车卡车火车火车客车客车货车货车罐车罐车本讲稿第十二页,共四十八页对象之间的关系对象之间的关系一般类一般类特殊类特殊类特殊类的每个对象都为一般类的实例,因此特殊类的对象必将具有特殊类的
12、每个对象都为一般类的实例,因此特殊类的对象必将具有相应的一般类的属性和操作相应的一般类的属性和操作特殊类这种获取属性和方法的方特殊类这种获取属性和方法的方式称为式称为继承继承由于特殊类(对象)具有一般类的所有属性和操作,所以特由于特殊类(对象)具有一般类的所有属性和操作,所以特殊类的任何一个对象必定是相应一般类的对象,因此这种关殊类的任何一个对象必定是相应一般类的对象,因此这种关系又常称为系又常称为IS_A_KIND_OF关系关系如果类如果类A A具有类具有类B B的全部属性和操作,并且具有一些自己的全部属性和操作,并且具有一些自己独特的属性和操作,那么独特的属性和操作,那么A A称作称作B
13、B的特殊类,的特殊类,B B称作称作A A的一般的一般类类 通过在已有类的基础上添加一些特殊的属性和操作形成新类的通过在已有类的基础上添加一些特殊的属性和操作形成新类的方式方式称为称为派生派生CPersonCPersonCStudentCStudentChar*NameInt Number轨道衡轨道衡超偏载轨道衡超偏载轨道衡(2)父类父类子类结构(继承、派生)子类结构(继承、派生)本讲稿第十三页,共四十八页单一继承、多重继承单一继承、多重继承一般类一般类一般类一般类特殊类特殊类WNDSTRUCTWNDSTRUCTCWindowTreeCWindowTreeCScreenObjectCScree
14、nObjectCEditTextCEditTextCWndCWnd一般类一般类特殊类特殊类特殊类特殊类本讲稿第十四页,共四十八页继承异常图例继承异常图例顺序环境顺序环境属性属性m1m2m3并发环境并发环境属性属性同步控制部分功能定义部分属性属性继承继承需要同步控制改变被迫重定义本讲稿第十五页,共四十八页n派生是人类认识的深入派生是人类认识的深入新的认知经常建立在已有认知的基础上,在已有知识的基础上通过进行新探索、新认新的认知经常建立在已有认知的基础上,在已有知识的基础上通过进行新探索、新认识,在原有描述中添加新成分形成新认识的描述识,在原有描述中添加新成分形成新认识的描述鸟类鸟类北京麻雀北京麻
15、雀东北麻雀东北麻雀南方麻雀南方麻雀麻雀类麻雀类孔雀类孔雀类 n 继承代表着认识的连续性继承代表着认识的连续性本讲稿第十六页,共四十八页二、面向对象的系统分析二、面向对象的系统分析本讲稿第十七页,共四十八页 需求分析与建模需求分析与建模在关系数据库设计的实体关系模型的基础上扩展了类、继承和行为等概念得到。在关系数据库设计的实体关系模型的基础上扩展了类、继承和行为等概念得到。需求的描述,而不是需求的描述,而不是问题的解决。问题的解决。哪些特性可选、哪哪些特性可选、哪些必需些必需从模糊的设计和实从模糊的设计和实现需求中分离出正现需求中分离出正确的需求确的需求产生产生需求需求建立建立模型模型 开发者开
16、发者管理者管理者用户用户问题描述问题描述对象模型对象模型动态模型动态模型函数模型函数模型与用户磋商与用户磋商学科知识学科知识实际经验实际经验本讲稿第十八页,共四十八页u 面向对象的分析和设计面向对象的分析和设计分析模型分析模型设计模型设计模型实现模型实现模型面向对象分析面向对象分析OOA面向对象设计面向对象设计OOD面向对象实现面向对象实现OOI静态特性:类层次关系模型静态特性:类层次关系模型动态特性:状态图、事件踪迹图动态特性:状态图、事件踪迹图行为功能:数据流图行为功能:数据流图本讲稿第十九页,共四十八页u静态结构分析静态结构分析系统消息系统消息各个具体控件消息各个具体控件消息消息窗口消息
17、窗口按钮按钮图标图标菜单菜单确定确定0.1帮助帮助0.1消息消息10.1文件文件0.1编辑编辑0.1消息窗口消息窗口按钮按钮确定确定 0.1图标图标 消息消息 0.1菜单菜单文件文件 0.1编辑编辑 0.1帮助帮助 0.1本讲稿第二十页,共四十八页u 动态行为分析动态行为分析对象生命周期对象生命周期 对象的动态行为包括两个方面的内容:对象的动态行为包括两个方面的内容:单个对象自身生命周期演化;单个对象自身生命周期演化;整个对象系统中对象间消息传递及相互作用整个对象系统中对象间消息传递及相互作用对象对象状态状态导致状态转换的事件导致状态转换的事件状态转换时的动作状态转换时的动作S1S1S2S2S
18、3S3S4S4event1event2event3event4状态转换图状态转换图本讲稿第二十一页,共四十八页u 动态行为分析(数据流图)动态行为分析(数据流图)施动者施动者 通过产生或使用数据驱动数据流图的主动对象,与数据流图的输通过产生或使用数据驱动数据流图的主动对象,与数据流图的输入输出联系在一起。入输出联系在一起。分析采集数据分析采集数据屏幕显示屏幕显示数据处理数据处理数据存储数据存储 数据流图中为后继访问而存储数据的被动对象。与施动者不同,数据流图中为后继访问而存储数据的被动对象。与施动者不同,它不产生任何操作,仅对存储和访问数据的请求响应。它不产生任何操作,仅对存储和访问数据的请求
19、响应。读数读数气温气温最高温度最高温度最低温度最低温度本讲稿第二十二页,共四十八页v面向对象的系统设计面向对象的系统设计分析期间建立系统模型设计期间模型问题空间对象面向对象设计阶段在分析模型基础上进行未来软件的系统设计、对象设面向对象设计阶段在分析模型基础上进行未来软件的系统设计、对象设计,从而得到设计模型,该模型包含了解决问题的方案和策略。是确定计,从而得到设计模型,该模型包含了解决问题的方案和策略。是确定问题具体解决方案的过程问题具体解决方案的过程本讲稿第二十三页,共四十八页 系统设计系统设计1.1.系统层次结构设计系统层次结构设计系统设计是以软件方式实现系统功能而进行软件的系统结构设计及
20、系统设计是以软件方式实现系统功能而进行软件的系统结构设计及 程序实现中的总程序实现中的总体的、策略性的解决方案的制定体的、策略性的解决方案的制定高层次接口高层次接口模块1模块2模块3应用程序应用程序模块1模块2模块3核心核心模块1模块2模块3驱动驱动模块1模块2模块3硬件硬件模块1模块2模块3对软件系统进行的整体划分。水平对软件系统进行的整体划分。水平方向代表系统的不同抽象级别与层方向代表系统的不同抽象级别与层次;纵向表明每个层次所提供的功次;纵向表明每个层次所提供的功能模块能模块时时间间空空间间软软件件硬硬件件单单一一一一般般效效率率可可维维本讲稿第二十四页,共四十八页2 2 系统数据存储设
21、计系统数据存储设计系统中各种数据对象的存储方式设计:内存数据结构、文件、数据库等系统中各种数据对象的存储方式设计:内存数据结构、文件、数据库等如分布环境中对象的存储结构与单机环境下不同、持久对象等如分布环境中对象的存储结构与单机环境下不同、持久对象等3 3 系统资源访问设计系统资源访问设计确定需要使用的资源,包括访问机制和访问安全性机制等确定需要使用的资源,包括访问机制和访问安全性机制等如:访问队列等如:访问队列等4 4 网络与分布设计网络与分布设计如何将问题划分给不同节点进行分布式运算,需考虑网络流量、节点计算能力、系如何将问题划分给不同节点进行分布式运算,需考虑网络流量、节点计算能力、系统
22、效率统效率6 6 互操作设计互操作设计5 5 并发性设计并发性设计并发性控制,多进程、多线程等并发性控制,多进程、多线程等文件并行访问,使用临界区、事件、互斥量、信号灯等文件并行访问,使用临界区、事件、互斥量、信号灯等相对于相对于Client/ServerClient/Server而言。多个进程之间可能需要为对方提供服务。而言。多个进程之间可能需要为对方提供服务。可能比较复杂,因为有可能存在平台异构问题。可能比较复杂,因为有可能存在平台异构问题。例外、边界也许要处理例外、边界也许要处理 系统设计系统设计本讲稿第二十五页,共四十八页原则:原则:复用性复用性可扩充性可扩充性健壮性健壮性协作性协作性
23、面向对象程序设计:使用程序设计语言将设计方案加以表达面向对象程序设计:使用程序设计语言将设计方案加以表达类定义类定义静态静态模型模型动态动态模型模型类的实现类的实现约束实现于代码中约束实现于代码中增强系统健壮性增强系统健壮性u 面向对象程序设计的原则面向对象程序设计的原则本讲稿第二十六页,共四十八页n加强软件可复用性的原则:加强软件可复用性的原则:n保证操作的内聚性保证操作的内聚性功能相对单一功能相对单一n减少单一功能模块代码规模减少单一功能模块代码规模函数代码的适当规模函数代码的适当规模n保证操作对外接口的一致性保证操作对外接口的一致性相似操作具有一致性接口相似操作具有一致性接口n分解设计中
24、的操作分解设计中的操作以相对单一和基本的操作联合实现设计中的操作以相对单一和基本的操作联合实现设计中的操作n操作均匀覆盖数据操作均匀覆盖数据考虑操作的普适性考虑操作的普适性n加强封装加强封装操作只针对内部数据,实现与接口分离操作只针对内部数据,实现与接口分离n减少操作耦合减少操作耦合减少操作之间的相关,尽量上下文无关减少操作之间的相关,尽量上下文无关本讲稿第二十七页,共四十八页综合考虑效率与通用原则综合考虑效率与通用原则效率的考虑效率的考虑好的算法与数据结构好的算法与数据结构各种隐式调用(各种隐式调用(=、构造函数、参数传递)、构造函数、参数传递)动态绑定动态绑定内存管理内存管理动态分配(动态
25、分配(new错)与内存泄漏(错)与内存泄漏(leak)Visual C+中内存泄漏的自动侦测中内存泄漏的自动侦测封装与通用封装与通用尽量保持封装性与通用性的统一尽量保持封装性与通用性的统一类型类型类型检查有助于发现错误,尤其是参数、赋值方面类型检查有助于发现错误,尤其是参数、赋值方面参数化类参数化类持久对象持久对象约束约束可示化开发环境可示化开发环境本讲稿第二十八页,共四十八页三、常用语言的分析比较三、常用语言的分析比较本讲稿第二十九页,共四十八页u常用面向对象的程序语言常用面向对象的程序语言VBPBC/C+/VCDelphiJavaVS.Net(C#,VB,VC+,VJ)其它其它本讲稿第三十
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 系统分析 编程 语言 精选 文档
限制150内