面向对象的系统分析与编程语言

上传人:ji****72 文档编号:50999665 上传时间:2018-08-12 格式:PPT 页数:50 大小:622.50KB
返回 下载 相关 举报
面向对象的系统分析与编程语言_第1页
第1页 / 共50页
面向对象的系统分析与编程语言_第2页
第2页 / 共50页
面向对象的系统分析与编程语言_第3页
第3页 / 共50页
面向对象的系统分析与编程语言_第4页
第4页 / 共50页
面向对象的系统分析与编程语言_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《面向对象的系统分析与编程语言》由会员分享,可在线阅读,更多相关《面向对象的系统分析与编程语言(50页珍藏版)》请在金锄头文库上搜索。

1、面向对象的系统分析与编程语言北京东方瑞威科技发展有限公司2007.03.17计算机软件培训讲座讲座内容一、面向对象的基本原理二、面向对象的系统分析三、常用语言的分析比较一、面向对象的基本原理连接成员的机制( 静态联结与动态关 联)生产软件产品什么是面向对象技术以面向对象方法学为基础的软件系统组织和结构设计的工程技术特点:标准的工艺流程 统一的生产规范 内容:面向对象分析 面向对象设计 面向对象程序设计内部组成 层次结构思维方法 知其然,知其所以然面向对象技术及其发展历史从“软件工程” 的发展史看面向对象技术出现的必然性面向过程结构化 程序设计面向对象 程序设计面向机器机器语言 助记符语言 汇编

2、语言面向机器 指令代码FORTRAN BASIC面向过程 程序设计C PASCAL结构化 程序设计C+ Java面向对象 程序设计面向网络 程序设计Java Vs.Net CAR面向网络 程序设计面向对象方法学基本内涵(1) 客观世界的事物由各种各样的实体(对象)构成(2) 每个对象都有各自的内部状态和运动(状态)规律(3) 根据对象的属性和运动规律的相似性可以将对象分类(4) 复杂对象由相对简单的对象组成(5) 不同对象的组合及其间的相互作用和联系构成了系统(6) 对象间的相互作用通过消息传递,对象根据所接收到的消 息做出自身的反应对象的模块化在程序实现中将一些密切相关的操作以某种风格汇集在

3、一起 ,形成相对独立的整体。模块2模块1模块化的特征在于抽象和信息隐藏抽象划分方式与客观事物本来面目相对应信息隐藏内部信息的访问必须通过接口模块化设计遵守的准则:分解与组合 (注重:可分解性、可组合性、可理解性)分解组合软件重用面向对象技术的发展使得软件重用技术更臻完善和规范 :多种重用方式:子程序(Subroutine)、程序包(Package)、库(Library)对象的封装使得对象模块在程序开发者看来是一个黑匣子,它只需通过接 口去操作对象和理解对象的行为,而不必关心其内部实现细节,从而程序 开发人员能够直接重用已经开发的对象模块 对象的继承在另一个角度提供了软件重用方式,即通过继承允许

4、程序开发 者自己的对象重用具有相同特性的其它对象的代码 面向对象技术中的COM(Component Object Model)等提供了将对象模 块组装在一起的同一机制和方法,利用他们应用程序开发人员可以方便地 利用已有的对象模块组合在一起,构造出更大规模的应用程序 对象数据封装(1) 问题空间 所有要研究的客观现实的全体称为问题空间或问题域,而把要研究的 问题(客观世界中的实体)称之为问题空间的对象 任何一个客观实体都是对象 对象的组成相互作用 (2) 解空间 所有的解(程序及执行程序的计算机)组成的集合称为解空间,把解 (程序及执行程序的计算机实体)称做解空间的对象 对可解问题空间对象至少有

5、一个解空间对象与其相对应(3) 封装 将客观事物抽象为一个相对独立的实体,其中含有该事物的属性及 行为对象数据封装对象的形态与静态特征问题空间对象图书图书 1MyBook1 : CBook 书书 名:程序设计设计 总页总页 数:280 版 本:2m_pczName:char* =“程序设计设计 ” nTotalPage:int =280 nEdition:int =2返回书书名 返回总页总页 数 返回版本号char* GetBookName(); int GetTotalPage(); int GetEdition();分析中的对对象设计设计 中的对对象人、学生、学校、班级、处、电视、汽车等都

6、可以被看作对象人类认识世界的认知规律之一: 根据对象的属性和运动规律的相似性分类认识和描述相似属性和功能相似的对象构成对象类任何一个具体的对象都是相应对象类的一个实例 类与对象的不同类的实例化对象类和对象实例对象之间通过消息传递,对象对所接收消息的反应对象之间的相互作用抽象模型SenderReceiver /SenderMessage1ReceiverMessage1Message2对象之间的关系(1) 一般特殊结构人类对事物进行分类后,在概念上,一些种类的事物之间存在着联系 ,一些类之间在行为、属性等方面具有部分相似性,其间存在一般与 特殊的对应关系:汽车与轿车、学生与班委会 这种关系不存在

7、于具体对象实例之间,而存在于对象类之间。一般性寓于特殊性之中,体现在一般类对象所具有的属性和操作包含 于特殊类对象之中。汽车轿车客车卡车火车客车货车罐车对象之间的关系一般类特殊类特殊类的每个对象都为一般类的实例,因此特殊类的 对象必将具有相应的一般类的属性和操作特殊类这 种获取属性和方法的方式称为继承由于特殊类(对象)具有一般类的所有属性和操作, 所以特殊类的任何一个对象必定是相应一般类的对象 ,因此这种关系又常称为IS_A_KIND_OF关系如果类A具有类B的全部属性和操作,并且具有一些自 己独特的属性和操作,那么A称作B的特殊类,B称作A 的一般类 通过在已有类的基础上添加一些特殊的属性和

8、操作形 成新类的方式称为派生CPersonCStudentChar* NameInt Number轨道衡超偏载轨道衡(2) 父类子类结构(继承、派生 )单一继承、多重继承一般类一般类特殊类WNDSTRUCTCWindowTreeCScreenObjectCEditTextCWnd一般类特殊类特殊类继承异常图例顺序环境属性m1m2m3并发环境属性同步控 制部分功能定义部分属性继承需要同步 控制改变被迫重定义n 派生是人类认识的深入新的认知经常建立在已有认知的基础上,在已有知识的基础上通过进行 新探索、新认识,在原有描述中添加新成分形成新认识的描述鸟类北京麻雀东北麻雀南方麻雀麻雀类孔雀类 n 继承

9、代表着认识的连续性二、面向对象的系统分析需求分析与建模在关系数据库设计的实体关系模型的基础上扩展了类、继承和行为等概念得到。需求的描述,而不是问题 的解决。 哪些特性可选、哪些必需 从模糊的设计和实现需求 中分离出正确的需求产生 需求建立 模型开发者管理者用户问题描述对象模型 动态模型 函数模型与用户磋商学科知识实际经验u 面向对象的分析和设计分析模型设计模型实现模型面向对象分析 OOA面向对象设计 OOD面向对象实现 OOI静态特性:类层次关系模型 动态特性:状态图、事件踪迹图 行为功能:数据流图u静态结构分析系统消息各个具体控件消息消息窗口按钮图标菜单确定 01帮助 01消息1 01文件

10、01编辑 01消息窗口按钮确定 01图标消息 01菜单文件 01编辑 01帮助 01u 动态行为分析对象生命周期对象的动态行为包括两个方面的内容:单个对象自身生命周期演化;整个对象系统中对象间消息传递及相互作用对象状态导致状态转换的事件状态转换时的动作S1S2S3S4event1event2event3event4状态转换图u 动态行为分析(数据流图)施动者 通过产生或使用数据驱动数据流图的主动对象,与数据流图 的输入输出联系在一起。分析采集数据屏幕显示数据处理数据存储 数据流图中为后继访问而存储数据的被动对象。与施动 者不同,它不产生任何操作,仅对存储和访问数据的请求响应。读数气温最高温度最

11、低温度v面向对象的系统设计分析期间 建立系统 模型设 计 期 间 模 型问题空 间对象面向对象设计阶段在分析模型基础上进行未来软件的系统设计、对象 设计,从而得到设计模型,该模型包含了解决问题的方案和策略。是 确定问题具体解决方案的过程 系统设计1. 系统层次结构设计系统设计是以软件方式实现系统功能而进行软件的系统结构设计及 程序实现中的总体的、策略性的解决方案的制定高层次接口 模块1模块2模块3应用程序 模块1模块2模块3核心 模块1模块2模块3 驱动 模块1模块2模块3 硬件 模块1模块2模块3对软件系统进行的整体划分。水 平方向代表系统的不同抽象级别 与层次;纵向表明每个层次所提 供的功

12、能模块时 间空 间软 件硬 件单 一一 般效 率可 维2 系统数据存储设计 系统中各种数据对象的存储方式设计:内存数据结构、文件、数据库等如分布环境中对象的存储结构与单机环境下不同、持久对象等3 系统资源访问设计确定需要使用的资源,包括访问机制和访问安全性机制等 如:访问队列等4 网络与分布设计 如何将问题划分给不同节点进行分布式运算,需考虑网络流量、节点计算能力 、系统效率6 互操作设计5 并发性设计 并发性控制,多进程、多线程等 文件并行访问,使用临界区、事件、互斥量、信号灯等相对于Client/Server而言。多个进程之间可能需要为对方提供服务。 可能比较复杂,因为有可能存在平台异构问

13、题。例外、边界也许要处理 系统设计原则: 复用性 可扩充性 健壮性 协作性面向对象程序设计:使用程序设计语言将设计方案加以表达类定义静态 模型动态 模型类的实现约束实现于代码中增强系统健壮性u 面向对象程序设计的原则n 加强软件可复用性的原则: 保证操作的内聚性 功能相对单一 减少单一功能模块代码规模 函数代码的适当规模 保证操作对外接口的一致性 相似操作具有一致性接口 分解设计中的操作 以相对单一和基本的操作联合实现设计中的操作 操作均匀覆盖数据 考虑操作的普适性 加强封装 操作只针对内部数据,实现与接口分离 减少操作耦合 减少操作之间的相关,尽量上下文无关综合考虑效率与通用原则 效率的考虑

14、 好的算法与数据结构 各种隐式调用(=、构造函数、参数传递) 动态绑定 内存管理 动态分配(new错)与内存泄漏(leak) Visual C+中内存泄漏的自动侦测 封装与通用 尽量保持封装性与通用性的统一 类型 类型检查有助于发现错误,尤其是参数、赋值方面 参数化类 持久对象 约束 可示化开发环境三、常用语言的分析比较u常用面向对象的程序语言 VB PB C/C+/VC Delphi Java VS.Net (C#, VB, VC+, VJ) 其它常用程序设计语言的比较:n 要增加代码的可重用性,要考虑以下几点: 代码的可读性。如格式、是否接近英语语法和单词。 代码的表达能力,也就是简单性,

15、能用最少的语句和单词 实现同样的功能。 代码的结构性,如函数、模块、类。 n 语言功能的强大从下面几点来说: 是否拥有大量的库支持。这是最重要的,要求编写任何功 能的程序都有强大的库支持。 语法功能是否强大,比如是否有出错处理。是否有指针。n 语言的友好性: 语言包的大小,语言包越小,学习越简单。 语言是否有友好的编辑调试环境。 语言的可视化和集成编程环境。 常用程序设计语言的比较:VBn 全称Visual Basic,它是以Basic语言作为其基本语言的一种可视化编程 工具。n VB作为一种较早出现的开发程序以其容易学习,开发效率较高,具有完善 的帮助系统等优点曾影响了好几代编程人员,但是V

16、B不具备跨平台特性, 从而也决定了VB在未来的软件开发中将会逐渐地退出其历史舞台。n 它对组件技术的支持是基于COM和ActiveX,对于组件技术不断完善发展的 今天,它也显出了它的落后性。n VB在进行系统底层开发的时候也是相对复杂的,调用API函数需声明,调 用不方便,不能进行DDK编程,不可能深入Ring0编程,不能嵌套汇编。n 具有面向对象特性,比VC好,但也不算强。网络功能和数据库功能也没有 非常突出的表现。n 综上所述,VB作为一种可视化的开发工具由于其本身的局限性,导致了它 在未来软件开发中逐步被其他工具所代替。 常用程序设计语言的比较:C/C+n 自从 C 发明了以后,取代了汇编语言在操作系统编程的领导地位。各种 操作系统的编程接口的默认语言都是 C 语言。 n C+ 是 C 语言的加强版,增加了面向对象和其

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号