电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

信息系统分析与设计 教学课件 ppt 作者 刘腾红 5面向对象的系统分析与设计

135页
  • 卖家[上传人]:E****
  • 文档编号:89503324
  • 上传时间:2019-05-26
  • 文档格式:PPT
  • 文档大小:472.50KB
  • / 135 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第5章,面向对象的系统 分析与设计,面向对象的思想最早起源于一种名为Simula的计算机仿真语言。70年代问世的名为Smalltalk的计算机高级语言则首次提出面向对象这一概念。到了80年代,由于Smalltalk80和c+语言的推出,使面向对象的程序设计语言趋于成熟,并为越来越多的人所理解和接受,从而形成了面向对象的程序设计(Object Oriented Programming,OOP)这一新的程序设计方法。然而,信息系统的开发并不仅仅是程序设计,它还包括系统分析、系统设计、系统运行与维护、项目管理等多个环节。因此,只解决程序设计一个环节的问题是不够的。 人们从软件工程的发展过程中得到了启示,即某些处理问题的基本思路与方法在程序设计中在得到成功应用后,经过适当的扩充与发展,就可以应用于系统开发的其他环,节。软件发展史上的一个范例,就是结构化方法在程序设计中广泛应用后又在信息系统的结构化分析和结构化设计中得到扩展和应用。 因此,从80年代中、后期开始,进行了在系统开发各个环节中应用面向对象概念和方法的研究,出现了面向对象分析(Object Oriented Analysis,OOA)

      2、、面向对象设计(Object Oriented Design,OOD)等涉及系统开发其他环节的方法和技术,它们与面向对象程序设计(OOP)结合在一起,形成了一种新的系统开发方法,即许多文献都称之为面向对象(Object Oriented,OO)方法。 面向对象OO方法是一种非常实用的软件开发方法,它一出现就受到软件技术人员的青睐,现在已经成为计算机科学研究的一个重要领域,并逐渐成为软件开发的一种主,要方法。面向对象方法以客观世界中的对象为中心,其分析和设计思想符合人们的思维方式,分析和设计的结果与客观世界的实际比较接近,容易被人们所接受。 面向对象的建模语言出现在20世纪七八十年代,随着编程语言的多样化以及软件产品在更多领域的应用,当时的软件工程学者开始分析与设计新的软件方法论。在这期间出现了超过50种的面向对象方法,对于这些不同符号体系的开发方法,软件设计人员和程序员往往很难找到完全适合他们实际开发的建模语言,而且这也妨碍了不同公司,甚至是不同项目开发组间的交流与经验共享。因此,有必要确立一款标准统一的,能被绝大部分软件开发和设计人员认可的建模语言UML应运而生。如今,UML已经成为

      3、面向对象软件系统分析设计的必备工具,也是软件系统,设计人员、开发人员、项目管理员、系统工程师和分析员必须掌握的基础知识。 5.1 面向对象的概念 什么是面向对象?很多初学者都会问起这个问题,软件工程学家Coad和Yourdon曾给出一个简单定义:面向对象=对象+类+继承+通信。如果一个软件系统使用上述4个概念设计并加以实现,则认为这个软件系统是面向对象的。 面向对象技术的基本观点可以概括如下。 (1)客观世界由对象组成,任何客观实体都是对象,复杂对象可以由简单对象组成。 (2)具有相同数据和操作的对象可归纳成类,对象是类的一个实例。,(3)类可以派生出子类,子类除了继承父类的全部特征外还可以有自己的特性。 (4)对象之间的联系通过消息传递来实现。由于类的封装性,它具有某些对外界不可见的数据,这些数据只能通过消息请求调用可见方法来访问。 面向对象方法的基本出发点就是尽可能地按照人类认识世界的方法和思维方法来分析和解决问题,使人们分析、设计一个系统的方法尽可能接近认识一个系统的方法。 下面分别介绍面向对象的几个核心元素。 5.1.1对象(object) 面向对象方法就是以对象为中心、为出发

      4、点的方法,所以对象的概念相当重要。 现代汉语词典(商务印书馆,1996)的解释是:对象,是行动或思考时作为目标的人或事物。广义地讲,对象可以是任何人或事物。 在00方法中,对象同样有上述的含义。不过,可以定义得更精确一些:对象是一些属性及专用服务的封装体,它是问题空间中些东西的抽象。在面向对象的系统中,对象是基本的运行时的实体,它既包括数据(属性),也包括作用于数据的操作(行为)。所以一个对象把属性和行为封装为一个整体。一个对象通常可由对象名、属性和操作3部分组成。 由以上定义可知,对象就是我们在问题空间中要考虑的那些人或事物,它具有一组属性和一组操作,这些属性的值刻画了一个对象的状态;这些操作是对象的行为,通过它们改变对象的状态(即属性值)。,对象尽可能自然而又灵活地模拟现实世界,这使我们能更准确地描述世界。数据和操作封装于对象的统一体中,它们不是分开的。这样,对象就具有较强的独立性和自治性,具有很好的模块性,为软件重用奠定了坚实的基础。 考虑一个简单的对象:counter (计数器)。它有一个属性value保存计数器计数值。有三个服务:init()置value为“0”,dec()使

      5、value减“1”,inc()使value增“1”。它们之间的关系如图5-1所示。 图5-1 counter 对象,5.1.2 封装(encapsulation) 封装即信息隐藏。是面向对象方法的一个重要原则。封装是指把属性和操作封进一个对象里,它的内部信息对外界隐藏,不允许外界直接存取对象的属性,只能通过对象提供的有限的接口对对象的属性数据进行操作。对于外界来说,只能得知对象的外部行为而无法了解对象行为的内部实现细节,这样可以保证对象内部属性数据的安全性。 当开发一个总体程序结构时,程序的每个成分应该封装或隐蔽一个单一的模块,定义每一模块时应尽可能少地显露其内部处理。 对象是个很好的封装体。它向外提供的界面包括一组数据结构(属性)和一组操作(服务),而把内部的实现细节(如函数体)隐蔽起来。把最不稳定的部分封装起来,需求变化就不太可怕了。,对象实现了数据抽象,把数据和服务封装于一个内在的整体。因为这二者本来就是一个内在的整体,分离开来是不明智的。 与封装密切相关的一个术语是可见性。它是指对象的属性和服务允许对象外部存取和引用的程度。 我们已经讨论了封装的好处,然而封装也有它的副作用。如

      6、果强调严格的封装,则对象的任何属性都不允许外部直接存取,因此就要增加许多没有其它意义,只负责读或写的服务。这为编程增加了负担,增加了运行开销,并且使程序显得臃肿。为了避免这一点,语言往往采取一种比较现实的灵活态度-允许对象有不同程度的可见性。 5.1.3 类(class) 在OO方法中,类的定义是:类是具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提供了统一的,抽象描述,其内部包括属性和服务两个主要部分。类是一组具有相同数据结构和相同操作的对象的集合。类是对象的抽象,它将一组数据属性和在数据上的一组合法操作抽象封装。类好比是一个对象模板,基于类就可以生成多个具有不同属性值的对象,在类的定义中,可以为某个属性指定一个值,作为它的默认值。 类是面向对象的程序设计语言提供的可再用软件成分,在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属性说明和服务说明两个主要部分。类的作用是定义对象。比如,程度中给出一个类的说明,然后以静态声明或动态创建等方式定义它的对象实例。 有些类之间存在一般和特殊关系,即一些类是某个类的特殊情况,某个类是一些类的一般情况。这是一种“

      7、is-a ”,关系,即特殊类是一种一般类。例如“汽车”类、“轮船”类、“飞机”类都是一种“交通工具”类。特殊类是一般类的子类,一般类是特殊类的父类。同样“汽车”类还可以有更特殊的类,如“轿车”类、“货车”类等。在这种关系下形成一种层次的关联。 5.1.4 继承(inheritance) 继承是指子类可以自动拥有父类的全部属性与操作。这种使用已存在的定义作为基础建立新定义的技术使得父类和子类之间能够共享数据和方法。这是类之间的一种关系,在定义和实现一个类的时候,可以在一个已经存在的类的基础上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新内容。图5-2表示了父类A和它的子类B之间的继承关系。,图5-2 类的继承关系描述,当用一个类创建一个对象时,对象就继承了该类的全部语义性质。在定义一个新类时,也可以一方面继承一个旧类的语义性质,一方面加上自己特有的属性和操作。 一个类继承另一个类,其关系有如父子,因此把继承,者称为子类。继承一个单一的父类时叫单重继承,如果有两个及两个以上的父类则是多重继承。 继承具有传递性,一个子类除了具有自己的全部特性以外还具有该类上层全部基类的一

      8、切特性。 继承简化了对现实世界的描述,定义子类时不必重复定义那些在父类中已经定义过的属性和操作,而只需专注于自己特有的属性与操作。继承对于软件复用是很有益的。在开发一个系统时,使特殊类继承一般类,这本身就是软件复用,然而其复用意义不仅如此。如果把用OO方法开发的类作为可复用构件提交到构件库,那么在开发新系统时不仅可以直接地复用这个类,还可以把它作为一般类,通过继承而实现复用,从而大大扩展了复用范围。,5.1.5 消息(message) 为了更好地模块化,对象不允许其他对象或函数访问它的私有数据,而只能向它发送消息。对象接收消息,根据消息及消息参数调用自己的服务来改变自己的状态或返回结果。 一条消息告诉一个对象做什么,它指出发送者、接收者、需要执行的服务、需要的参数。在面向对象方法中,完成一件事情的方法就是向有关对象发送消息,而不是以前熟悉的函数调用。消息体现了对象的自治性和独立性,对象间可通过消息实现交互,模拟现实世界。消息机制也控制了复杂性。 5.1.6 多态性(polymorphism) 多态性是面向对象技术的一个重要概念。同一操作作用于,不同的对象,可以有不同的解释,产生不同的执

      9、行结果,这就是多态性。多态性通常通过派生类重载基类中的同名函数来实现。 多态性分为如下两种。 (1)编译时的多态性。编译时的多态性是通过重载来实现的。系统在编译时,根据传递的参数、返回的类型等信息决定实现何种操作。 (2)运行时的多态性。运行时的多态性就是指直到系统运行时,才根据实际情况决定实现何种操作。 多态性一般可通过接口、继承和抽象类来实现。 5.2 对象模型技术 模型是为了在构造事物前理解事物而对事物作出的一种抽象。由于模型忽略了事物的非本质东西,所以它比原始事物容易操纵。抽象是人类处理复杂问题的基本能力。,几千年来,工程师、艺术家和工匠们为了设计产品,在制作之前都用建立模型进行试探或试验。软件和硬件系统开发也不例外。在创建复杂系统之前,开发者必需从不同角度来对系统进行抽象,用精确的符号表示建立模型,校验该模型能否满足系统的需求。在设计和实现过程中,逐步添加细节,把该模型逐步完善直至实现成为最终产品。 抽象是问题某些方面的选择性检查。抽象的目的主要是提炼相对某种目的是重要的方面,而忽略次要方面。抽象总是出于某种目的,因为目的决定了哪些方面是重要的,哪些方面是次要的。根据不同的抽象目的,同一事物可以有不同的抽象。 所有抽象都是不完备的和不精确的。现实世界就像一张无缝的网,我们所谈的和所描述的一切都只是它的片段。所有人类的词汇和语言都是抽象的,是现实世界不完备的,描述。但决不表示人们可以抛弃它们,可以弃之不用,并不影响抽象的可用性。抽象的目的是限定我们力所能及的范围。因此,在建造模型时,你用不着寻找绝对的真实,而只需找出一些足以说明某一目标的内容就行了。世上不存在绝对惟一“正确”的模型,仅存在充分或不充分之分。 一个好的模型能够反映问题的主要方面,而忽略问题的次要方面。例如,大多数计算机语言对建模算法来说基本是无用的,因为它们强调的是与算法无关的实现细节。一个包含无关的不必要细节的模型将限制你的设计决策,并且分散对真正问题的注意力。 我们发现从三个不同但又相关的角度去建立系统模型是很有用的。这三个角度各自都抓住了系统的一些重要方面,但对于系统的完整描述来说都是需要的。对象模型技术(Object Modeling Technique,简称OMT)是综合这三种,不同观点建立系统模型的方法学。“对象模型”表示系统的静态的、结构化的

      《信息系统分析与设计 教学课件 ppt 作者 刘腾红 5面向对象的系统分析与设计》由会员E****分享,可在线阅读,更多相关《信息系统分析与设计 教学课件 ppt 作者 刘腾红 5面向对象的系统分析与设计》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.