面向对象软件设计(Java项目开发文档之一)

上传人:wuy****ng 文档编号:247931642 上传时间:2024-10-21 格式:PPT 页数:34 大小:238KB
返回 下载 相关 举报
面向对象软件设计(Java项目开发文档之一)_第1页
第1页 / 共34页
面向对象软件设计(Java项目开发文档之一)_第2页
第2页 / 共34页
面向对象软件设计(Java项目开发文档之一)_第3页
第3页 / 共34页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,面向对象软件设计思想,院校合作事业部培训部,前言,OO是“面向对象”的英文Object Oriented的缩写,这个词在整个软件领域制造了一场深刻的变革,大大改变了传统的面向过程的软件分析和开发模式。,面向对象是一种与语言无关的设计思想,符合人类自然的思考习惯来看待现实系统。,面向对象的语言提供强大的面象对象的机制,支持对问题更高层次的抽象描述,使软件的设计和开发者可以更好的把握问题的本质,从而提高程序的开发质量和效率。,目录,系统分析设计思想概述,面向过程的结构化分析设计思想,面向对象思想概述,OO思想的本质是什么,面向对象程序设计的方法,优秀的系统设计追求的原则,多层结构软件设计,系统分析设计思想概述,“软件危机”、让人们开始追求“,高质量,、,高速度,”的生产软件,技术,和,管理手段,是实现“两高”开发的必要手段,一个完善的、成功的软件系统分析设计对于软件的质量、开发过程是至关重要的,现代的软件分析设计方法,是与软件开发过程管理的思想相结合的,系统分析设计思想概述,回顾计算机工作原理:,计算机的基本原理是,存贮程序,和,程序控制,。预先要把指挥计算机如何进行操作的指令序列(称为程序)和原始数据通过输入设备输送到计算机内存贮器中。每一条指令中明确规定了计算机从哪个地址取数,进行什么操作,然后送到什么地址去等步骤。,系统分析设计思想概述,计算机在运行时,先从内存中取出第一条指令,通过控制器的译码,按指令的要求,从存贮器中取出数据进行指定的运算和逻辑操作等加工,然后再按地址把结果送到内存中去。接下来,再取出第二条指令,在控制器的指挥下完成规定操作。依此进行下去,直至遇到停止指令。程序与数据一样存贮,按程序编排的顺序,一步一步地取出指令,自动地完成指令规定的操作是计算机最基本的工作原理。,系统分析设计思想概述,由计算机物理运行角度分析程序:,程序,=,计算机硬件上运算的,指令流,和,数据流,CPU,能够处理的只是数据,CPU,处理的方式都是在,CPU,指令集,里定义好的,物理计算机的工作就是,处理数据,运算,软件的本质分为两个独立部分:数据和指令,数据在机器中是按一定,规则排放,的,数据结构,指令是按照一定的,顺序调用,的,算法,系统分析设计思想概述,程序定义等式:,程序=,数据结构,+,算法,理解算法:,软件算法的含义是为解决一个问题而采取的有限的、可行的,操作步骤,,在计算机程序中,算法就是,指令,的有限,集合,广义上讲,一切的数据操作代码都是某种算法的实现,系统分析设计思想概述,理解数据结构:,定义一、数据元素集合(也可称数据对象)中各元素的关系。,定义二、相互之间存在特定关系的数据元素集合。,数据结构是计算机存储、组织数据的方式,实际上是,信息,的一种表示协议,在信息和数据之间搭起了一座桥梁,用来在计算机中描述现实世界中的信息,系统分析设计思想概述,计算机解决一个具体问题步骤:,首先,要从具体问题中抽象出一个适当的数学模型,然后,设计一个解此数学模型的算法(,Algorithm,),最后,编出程序、进行测试、调整直至得到最终答案,寻求数学模型的实质是分析问题,从中提取操作的对象,并找出这些操作对象之间含有的关系,然后用数学的语言加以描述,最终实现通过,指令流,+,数据流,实现现实系统的目的,系统分析设计思想概述,系统分析思想的发展:,系统分析设计思想概述,对于计算机处理系统:数据结构和算法用来描述现实世界的过程,由此产生两类方法:侧重于,算法实现,的结构化设计和侧重于,数据处理,的面向数据的设计。,两者在一开始建模的时候就出现了,分离的数据和算法,两者都是先有了数学变换的思想,再来映射现实世界的过程,这两类方法都更加,贴近计算机系统,的执行方式、贴近数学世界的方式,面向对象的思想则是一开始把大的系统,分解,为小的系统,而数据和指令在,开始,没有分离,结构化分析设计思想,结构化程序设计方法,是,面向过程,实现的,是计算机软件的传统分析设计方法,同时也是计算机,硬件流程化,信息处理模式的真实反映。,特点:,首先把系统的分析设计看做是一个自顶向下、逐步求精的过程,其次是采用模块化的设计方式,把大的问题,分解为一个一个的功能单元,单元尽可能是单入口、单出口。同时尽可能地保证功能单元成为功能独立的软件模块,尽量减少副作用,整个软件就是功能单元的顺次调用过程。,结构化分析设计思想,优点:,结构化设计方法的优点是高效率,直接面对问题,结构清晰,适宜构建已经分析的很清楚的、变动不多的或者变动已被很好预期的信息系统,思想:,结构化分析方法是真实反应计算机硬件流程化信息的,背后的思想是放大了物理的计算机,建立一台更贴近现实世界的、强大的、抽象的计算机。相当于为每一种实际系统制造了不同的计算机,结构化分析设计思想,示例:,需求:实现一个邮件发送程序(邮件列表存在数据库里面),过程式的设计思路实现:,先把邮件内容读入,然后连接数据库,读取显示邮件列表地址,选择邮件地址,最后调用本机的相应,API,函数命令发送邮件,设计思路是一直基于计算机如何具体实现的思想上的,整体体现的就是站在计算机的角度处理问题的解决方法,结构化分析设计思想,主要缺点:,过程式设计对于比较,复杂,的问题,或是在开发中需求变化比较多的时候,往往显得力不从心。这是因为过程式的设计是,自上而下,的,这要求设计者在一开始就要对需要解决的问题有清楚的了解和把握。在问题比较复杂的时候,要做到这一点会比较困难,而当开发中需求变化的时候,以前对问题的理解也许会变得不再适用。事实上,开发一个系统的过程往往也是一个对系统不断了解和学习的过程,而过程式的设计方法忽略了这一点。,面向对象思想概述,面向对象的机制和思想是在,结构化设计的基础,上发展而来的,继承了面向结构开发的优点,支持新的编程机制,又在一定的方面扩展了自己的强大优势,面向对象是基于,分解,而不是,变换,的方法。它的分析过程是把一个大系统分解为小系统的过程。将现实系统的过程,抽象,为计算机世界能处理的过程(数据结构和算法)的变换,向后推迟,,最终转换为对一系列相对简单的小的现实系统的变换,这就使系统分析设计的风险降低,并且风险也得到分散,面向对象思想概述,面向对象的系统分析设计方法简单来说就是“两高”,即,高效率和高质量,的程序开发,高效率和高质量的软件开发的直接矛盾,在,软件重用,上得到了统一的解决,对于“高效率”的开发,面向对象的分析设计协助建立软件的,重用机制,,包括继承和对象重用,通过对需求的直接描述,提高开发效率,对于“高质量”的开发,面向对象的系统分析和设计可以,改进需求分析,,软件更接近实际需求。根本上,面向对象的方法支持在问题域直接建模和解决问题,使模型更接近问题,接近现实。,OO思想的本质是什么,面向对象的思想核心两个字就可以概括,:,模拟,面象对象提供的机制,本意就是支持我们更好地、更方便地模拟现实世界,对现实系统越是完善的模拟,越是可以容易的、正确地反映现实系统,也就是说,我们的模型越接近现实系统,就越有可能正确,因此模拟的核心,就是对这个系统结构的模拟,对一个系统建模,如果模型越接近现实系统的结构,就越容易反映现实的系统,并且适应现实系统的变化,这种,适应,是至关重要的,因为系统总是不断变化的,进行系统建模,,反映这种变化的能力,是必需的,OO思想的本质是什么,任何一种软件设计方法,都是建立一种,系统模型,,通过这个模型来反映系统的有关信息的过程。其结果都是要完成一个,映射,,就是把系统的,数据,和,操作,分开的映射。这个映射是系统建模时,最为核心,的内容,所以进行这个分解是建模的最大挑战,结构化设计在开始就要从纷繁复杂的现实系统里,提取数据和对数据的操作,也就是说,一,开始,就要进行关键的切分,对整个系统必须有,完整的准确理解,面向对象的方法,一再,推迟这种关键切分,,只是进行问题分解,直到问题很小了,才进行这步切分,这使得分析员不会过早的纠缠于细节,而是时时刻刻关注体系和结构,有利于作出良好的设计,面向对象程序设计的思维方法,如果说传统的面向过程的编程是符合,机器,运行指令的流程的话,那么面向对象的思维方法就是符合,现实生活中人类解决问题,的思维过程,在面向对象的软件分析和设计的时候,要,提醒,自己,不要一上来就去想,程序代码,的实现,应该,抛开具体编程语言,的束缚,集中精力分析我们要实现的软件的,业务逻辑,,分析软件的业务流程,思考应该如何去描述和实现软件的业务。毕竟软件只是一个载体,业务才是我们真正要实现的目标,面向对象程序设计的思维方法,回过头看面向结构那个发邮件的例子,应该如何应用面向对象的思维方法呢?,面象对象的设计思路实现:,程序的功能应该有:读取邮件,发送邮件,读取邮件地址列表。操作的数据实体是“邮件”。整体程序模型可以看做:一个邮件容器,可以发送不同的邮件。,基于以上的模型,可以初步设计两个类,邮件容器类:,EmailContainer,、,邮件类,:,EmailModel,面向对象程序设计的思维方法,EmailContainer,类里包含的三个功能可以定义为三个方法,:,读邮件,ReadEmail(EmailModel,model),、发邮件,SendEmail,(,EmailModel,model),、读取邮件列表,GetEmailList,(),EmailModel,类里包含三个属性:邮件头,EmailHeader,、邮件体,EmailBody,及邮件地址,EmailAdress,三个方法:检验邮件头,CheckHeader,(),、检验邮件体,CheckBody,()、检验邮件地址,EmailAdress,(),至此基本的业务模型出现了,初步模拟了邮件程序的现实结构,到此我们还未考虑应该如何具体的调用计算机指令处理数据如何具体实现,面向对象程序设计的思维方法,下面我们进一步精化软件的功能实现,EmailContainer,类里,ReadEmail(EmailModel,model),、,SendEmail,(,EmailModel,model),可以直接在方法体内实现代码了,而,GetEmailList,(),方法要和数据库通信,因此对于此功能我们还要进一步的分解:再定义一个数据库处理类:,DBControl,,里面包含连接、处理数据的一系列方法,用来返回数据处理的相应数据,至此我们的模型完全完成了:一共是三个类,每个类在语义上和功能上都是完全独立的,最后我们就可以运用,面向过程,的思想,在每一个类里调用指令处理具体数据了,优秀的系统设计追求的原则,一个设计良好的系统应该是:稳定的,安全的,灵活的,可复用的,基本原则一:类间的结构追求 高内聚、低耦合,基本原则二:类的功能应该是单一的,基本原则三:针对接口的编程而不是针对接口的实现,多层结构软件设计,分层的概念,分层是一个在系统分析设计中经常被使用的思想,分层的,核心,还是,模块化,层次模型是系统设计,架构级别,的概念是和具体分析方法、实现语言无关的概念,分层的思想由来已久,其核心是把系统进行分层,从而限制系统变化带来的影响。每一层可以单独的设计,单独的演变和升级。大大提高了系统的灵活和稳定性,可以应付更为广泛的需求变化,多层结构软件设计,分层的原则,典型的层次模型是下层为上层提供全部服务,调用关系是,单向,的,只有上层调用下层,不存在反向调用。同层之间的调用一般是允许的,保证层间的完整性,层次模型间没有跨层的调用,就是完整的,存在跨层的调用,就是不完整的,多层结构软件设计,信息管理系统基本的层次模型:,最基本的层次模型是3层模型,包含展示层、逻辑层和数据层。,多层结构软件设计,常用多层结构的层次模型,多层结构软件设计,面向对象的设计,层与层之间的常用连接方式,层与层的模块之间的连接应遵循“,高内聚、低耦合,”的原则,保证层次间的,独立性,。采用“,基于接口的编程,”,常用的方法是采用“工厂”设计模式,实例理解“,基于接口的编程,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!