面向对象的系统分析与编程语言.ppt
《面向对象的系统分析与编程语言.ppt》由会员分享,可在线阅读,更多相关《面向对象的系统分析与编程语言.ppt(50页珍藏版)》请在三一办公上搜索。
1、面向对象的系统分析与编程语言,北京东方瑞威科技发展有限公司,计算机软件培训讲座,讲座内容,一、面向对象的基本原理二、面向对象的系统分析三、常用语言的分析比较,一、面向对象的基本原理,连接成员的机制(静态联结与动态关联),生产软件产品,什么是面向对象技术,以面向对象方法学为基础的软件系统组织和结构设计的工程技术,内部组成层次结构,面向对象技术及其发展历史,从“软件工程”的发展史看面向对象技术出现的必然性,面向过程,结构化程序设计,面向对象程序设计,面向机器,机器语言助记符语言汇编语言面向机器指令代码,FORTRANBASIC面向过程程序设计,CPASCAL结构化程序设计,C+Java面向对象程序
2、设计,面向对象方法学基本内涵,(1)客观世界的事物由各种各样的实体(对象)构成(2)每个对象都有各自的内部状态和运动(状态)规律(3)根据对象的属性和运动规律的相似性可以将对象分类(4)复杂对象由相对简单的对象组成(5)不同对象的组合及其间的相互作用和联系构成了系统(6)对象间的相互作用通过消息传递,对象根据所接收到的消息做出自身的反应,对象的模块化,在程序实现中将一些密切相关的操作以某种风格汇集在一起,形成相对独立的整体。,模块化的特征在于抽象和信息隐藏,抽象,划分方式与客观事物本来面目相对应,信息隐藏,内部信息的访问必须通过接口,模块化设计遵守的准则:分解与组合(注重:可分解性、可组合性、
3、可理解性),软件重用,面向对象技术的发展使得软件重用技术更臻完善和规范:,多种重用方式:子程序(Subroutine)、程序包(Package)、库(Library),对象的封装使得对象模块在程序开发者看来是一个黑匣子,它只需通过接口去操作对象和理解对象的行为,而不必关心其内部实现细节,从而程序开发人员能够直接重用已经开发的对象模块 对象的继承在另一个角度提供了软件重用方式,即通过继承允许程序开发者自己的对象重用具有相同特性的其它对象的代码 面向对象技术中的COM(Component Object Model)等提供了将对象模块组装在一起的同一机制和方法,利用他们应用程序开发人员可以方便地利用
4、已有的对象模块组合在一起,构造出更大规模的应用程序,对象数据封装,(1)问题空间所有要研究的客观现实的全体称为问题空间或问题域,而把要研究的问题(客观世界中的实体)称之为问题空间的对象 任何一个客观实体都是对象 对象的组成相互作用,(2)解空间所有的解(程序及执行程序的计算机)组成的集合称为解空间,把解(程序及执行程序的计算机实体)称做解空间的对象 对可解问题空间对象至少有一个解空间对象与其相对应,(3)封装将客观事物抽象为一个相对独立的实体,其中含有该事物的属性及行为,对象数据封装,对象的形态与静态特征,问题空间对象,人、学生、学校、班级、处、电视、汽车等都可以被看作对象,人类认识世界的认知
5、规律之一:根据对象的属性和运动规律的相似性分类认识和描述相似属性和功能相似的对象构成对象类任何一个具体的对象都是相应对象类的一个实例类与对象的不同类的实例化,对象类和对象实例,对象之间通过消息传递,对象对所接收消息的反应,对象之间的相互作用抽象模型,对象之间的关系,(1)一般特殊结构,人类对事物进行分类后,在概念上,一些种类的事物之间存在着联系,一些类之间在行为、属性等方面具有部分相似性,其间存在一般与特殊的对应关系:汽车与轿车、学生与班委会 这种关系不存在于具体对象实例之间,而存在于对象类之间。一般性寓于特殊性之中,体现在一般类对象所具有的属性和操作包含于特殊类对象之中。,对象之间的关系,特
6、殊类的每个对象都为一般类的实例,因此特殊类的对象必将具有相应的一般类的属性和操作特殊类这种获取属性和方法的方式称为继承,由于特殊类(对象)具有一般类的所有属性和操作,所以特殊类的任何一个对象必定是相应一般类的对象,因此这种关系又常称为IS_A_KIND_OF关系,如果类A具有类B的全部属性和操作,并且具有一些自己独特的属性和操作,那么A称作B的特殊类,B称作A的一般类,通过在已有类的基础上添加一些特殊的属性和操作形成新类的方式称为派生,(2)父类子类结构(继承、派生),单一继承、多重继承,继承异常图例,同步控制部分,功能定义部分,派生是人类认识的深入,新的认知经常建立在已有认知的基础上,在已有
7、知识的基础上通过进行新探索、新认识,在原有描述中添加新成分形成新认识的描述,继承代表着认识的连续性,二、面向对象的系统分析,需求分析与建模,在关系数据库设计的实体关系模型的基础上扩展了类、继承和行为等概念得到。,需求的描述,而不是问题的解决。哪些特性可选、哪些必需从模糊的设计和实现需求中分离出正确的需求,面向对象的分析和设计,分析模型设计模型实现模型,静态特性:类层次关系模型动态特性:状态图、事件踪迹图行为功能:数据流图,静态结构分析,系统消息各个具体控件消息,动态行为分析,对象生命周期,对象的动态行为包括两个方面的内容:,单个对象自身生命周期演化;整个对象系统中对象间消息传递及相互作用,状态
8、转换图,动态行为分析(数据流图),施动者 通过产生或使用数据驱动数据流图的主动对象,与数据流图的输入输出联系在一起。,数据存储 数据流图中为后继访问而存储数据的被动对象。与施动者不同,它不产生任何操作,仅对存储和访问数据的请求响应。,面向对象的系统设计,面向对象设计阶段在分析模型基础上进行未来软件的系统设计、对象设计,从而得到设计模型,该模型包含了解决问题的方案和策略。是确定问题具体解决方案的过程,系统设计,1.系统层次结构设计,系统设计是以软件方式实现系统功能而进行软件的系统结构设计及 程序实现中的总体的、策略性的解决方案的制定,对软件系统进行的整体划分。水平方向代表系统的不同抽象级别与层次
9、;纵向表明每个层次所提供的功能模块,2 系统数据存储设计,系统中各种数据对象的存储方式设计:内存数据结构、文件、数据库等如分布环境中对象的存储结构与单机环境下不同、持久对象等,3 系统资源访问设计,确定需要使用的资源,包括访问机制和访问安全性机制等如:访问队列等,4 网络与分布设计,如何将问题划分给不同节点进行分布式运算,需考虑网络流量、节点计算能力、系统效率,6 互操作设计,5 并发性设计,并发性控制,多进程、多线程等文件并行访问,使用临界区、事件、互斥量、信号灯等,相对于Client/Server而言。多个进程之间可能需要为对方提供服务。可能比较复杂,因为有可能存在平台异构问题。,例外、边
10、界也许要处理,系统设计,原则:复用性可扩充性健壮性协作性,面向对象程序设计:使用程序设计语言将设计方案加以表达,面向对象程序设计的原则,加强软件可复用性的原则:,保证操作的内聚性功能相对单一减少单一功能模块代码规模函数代码的适当规模保证操作对外接口的一致性相似操作具有一致性接口分解设计中的操作以相对单一和基本的操作联合实现设计中的操作操作均匀覆盖数据考虑操作的普适性加强封装操作只针对内部数据,实现与接口分离减少操作耦合减少操作之间的相关,尽量上下文无关,综合考虑效率与通用原则,效率的考虑好的算法与数据结构各种隐式调用(=、构造函数、参数传递)动态绑定内存管理动态分配(new错)与内存泄漏(le
11、ak)Visual C+中内存泄漏的自动侦测封装与通用尽量保持封装性与通用性的统一类型类型检查有助于发现错误,尤其是参数、赋值方面参数化类持久对象约束可示化开发环境,三、常用语言的分析比较,常用面向对象的程序语言,VBPBC/C+/VCDelphiJavaVS.Net(C#,VB,VC+,VJ)其它,常用程序设计语言的比较:,要增加代码的可重用性,要考虑以下几点:代码的可读性。如格式、是否接近英语语法和单词。代码的表达能力,也就是简单性,能用最少的语句和单词实现同样的功能。代码的结构性,如函数、模块、类。语言功能的强大从下面几点来说:是否拥有大量的库支持。这是最重要的,要求编写任何功能的程序都
12、有强大的库支持。语法功能是否强大,比如是否有出错处理。是否有指针。语言的友好性:语言包的大小,语言包越小,学习越简单。语言是否有友好的编辑调试环境。语言的可视化和集成编程环境。,常用程序设计语言的比较:VB,全称Visual Basic,它是以Basic语言作为其基本语言的一种可视化编程工具。VB作为一种较早出现的开发程序以其容易学习,开发效率较高,具有完善的帮助系统等优点曾影响了好几代编程人员,但是VB不具备跨平台特性,从而也决定了VB在未来的软件开发中将会逐渐地退出其历史舞台。它对组件技术的支持是基于COM和ActiveX,对于组件技术不断完善发展的今天,它也显出了它的落后性。VB在进行系
13、统底层开发的时候也是相对复杂的,调用API函数需声明,调用不方便,不能进行DDK编程,不可能深入Ring0编程,不能嵌套汇编。具有面向对象特性,比VC好,但也不算强。网络功能和数据库功能也没有非常突出的表现。综上所述,VB作为一种可视化的开发工具由于其本身的局限性,导致了它在未来软件开发中逐步被其他工具所代替。,常用程序设计语言的比较:C/C+,自从 C 发明了以后,取代了汇编语言在操作系统编程的领导地位。各种操作系统的编程接口的默认语言都是 C 语言。C+是 C 语言的加强版,增加了面向对象和其他有用的功能,编程更方便轻松;C+亦支援大部分 C 的程序,大部分 C 编译器也支援 C+。在 U
14、nix-like 上编写图形界面程序,有两个选择 KDE 和 Gnome KDE 更成熟,但它使用了不是开源的 Qt 函数库;Gnome 支持多语言和面向对象的程序间的协同,有它的 GUI 工具 GTK。在 Windows 环境中,通常使用 VC,但由于VC 的编译器和 API 太复杂,难于掌握,并非开放源代码的工具。其他选择有从 Unix-like 系统移植过来的 djgpp、mingw。和其他语言相比,虽然 C 和 C+都已经定下了其标准,但编译器、函数库、操作系统 API 五花八门,有些又未必全面支援最新的标准,造成学习的难度大、统一性差的问题。,常用程序设计语言的比较:VC+,是基于M
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 系统分析 编程 语言

链接地址:https://www.31ppt.com/p-6034404.html