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