- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
面向对象分析与设计- 面向对象方法学概述 内容 历史回顾 结构化分析与设计 面向对象方法学的起源 面向对象方法学概述 1.历史回顾 现在的计算机的数学理论基础是由计算机的开山鼻祖,大名鼎鼎的图灵于1937年提出的图灵机模型。随后不到十年,电子计算机就诞生了(1945)。(埃尼亚克 ENIAC) 它当时的主要任务之一就是用于导弹弹道轨迹的计算。 现代电子计算机的体系结构及实际计算模型来自冯.诺依曼的思想。 1946年他和他的同事们发现了埃尼亚克的缺陷,发表了一份报告,提出了程序放入内存,顺序执行的思想。 英国的科学家维尔克斯实现了冯.诺依曼的思想,领导研制了“艾克萨克” 。 因此,现在的计算机通常被称为冯.诺依曼计算机。 计算机编程语言 早期程序员们使用机器语言来进行编程运算;随着编译技术的出现,人们设计了许多更高级别的语言; 例如:汇编语言,C语言,Pascal语言,Java语言,C#语言等。 据统计,全世界的高级语言起码有几千种,但从可计算性的角度看,它们的计算能力都等价于图灵机。 已经证明,一个计算机语言,只要除了赋值语句之外,还包括顺序语句,条件语句和循环语句,它的计算能力即相当于图灵机。 这里当然要排除其他技术因素的影响,如程序长度,变量个数,数据精度等。 由于图灵机的想法是把问题转化为一步一步按规则执行的机械求解过程,各种计算机语言也不过都是某种形式语言。 因此软件开发的过程实质上就是程序员们对客观世界问题域的形式化的过程。 2.结构化分析、设计和编程 SA - SD - SP 技术的缺点: (1)本质上是功能分解,以实现功能的过程为中心,而用户的需求变化主要是针对功能的。这就使基于过程的设计不易被理解;且功能变化往往引起结构变化较大,稳定性不好 (2)系统有明确的边界定义,且系统结构依赖于系统边界的定义,这样的系统不易扩充和修改 (3)数据与操作分开处理,可能造成软构件对具体应用环境的依赖,可重用性(reusability)较差 总结:结构化VS面向对象 结构化思维用函数刻画数据间关系 面向对象思维直接用类表达数据间关系 结构化中,数据是死的,全部依赖算法操作 面向对象中,数据是活的,“她”知道自己的信息(属性),并能完成自己的工作(操作) 结构化思维更像是一个人在解决所有问题 面向对象思维更像是一个团队的分工协作 面向对象 VS 结构化-1 扬弃,不是否定 面向对象 VS 结构化-2 (程序)实现角度 面向对象 VS 结构化-3 面向对象 VS 结构化-4 3. 面向对象方法学的起源 维特跟斯坦是本世纪乃至人类哲学史上最伟大的哲学家之一。 他生前只于1922年出版了一本著作——《逻辑哲学论》(Tractatus Logico-Philosophicus)。 在该书中,他阐述了一种世界观,或者说一种认识世界的观点,这种观点,在六七十年后的今天,终于由一种哲学思想沉淀到技术的层面上来,成为计算机业界的宠儿,这就是“OO”,Object-Oriented,面向对象。 维特根斯坦在《逻辑哲学论》 一书中提出了如下思想: 世界可以分解为事实 ( The world divides into facts.)事实是由原子事实(atomic facts)组成的。 一个原子事实是多个对象(objects)的组合。 对象是简单的(基本的) The Object is simple。 对象形成了世界的基础。 Click to edit company slogan . *面 向 对 象 分 析 与 设 计 * 姓名:苏锦钿 ( SuJD@scut.edu.cn ) 单位:计算机科学与工程学院 时间:2010年3月 关联 指针 整体-部分结构,聚合 构造类型 一般类与特殊类,继承 类型与子类型 消息传递 函数(过程)调用 类与对象实例 类型与变量 对象的服务 操作 对象属性 数据 以对象为中心组织数据与操作 数据结构+算法=程序设计 结构化方法(SA+SD+SP) 面向对象的方法 问 题 域 问 题 域 结构化分析 分析与设计的鸿沟 结构化设计 结构化编程,如C语言 需求工程 OOAD OOP,如Java语言 测 试 计 算 机 系 统 测 试 计 算 机 系 统 自然语言 编程语言 自然语言 OO编程语言 数据流图数据字典 模块和过程 需求模型 对象模型 OO方法 OO建模语言 单元测试采用类图,集成测试用实现图和交互图,确认测试采用用例图 根据文档进行单元测试,集成测试,确认测试 测试模型 构件图,配置图 体系结构设计 实施模型 类和对象实现, 类/对象的关联、聚集、继承等连接、连接规范和约束作为显式定义 功能模块(SC图),模块之间的连接/调用是模块的附属形式 设计模型 把问题作为一组相互作用的实
文档评论(0)