Coad和Yourdon的方法是建立在信息模型化技术、面向对象的程序设计和知识库系统的基础之上的,方法分为面向对象的分析(OOA)和面向对象的设计(OOD)。我们在这里先讨论Coad和Yourdon面向对象的分析,在下一节中再讨论面向对象的设计。
 
Coad和Yourdon认为面向对象的分析主要应该考虑:一个与特定应用有关的对象,对象与对象在结构和相互作用上的关系。在面向对象的分析中,需要建立分析模型来描述系统的功能。
 
OOA的任务
 
面向对象的分析需要完成两个任务:
 
●形式的说明所面对的应用问题,最终成为软件系统基本构成的对象,以及系统所必须遵从的、由应用环境所决定的规则和约束。
 
●明确地规定构成系统的对象如何协同工作,完成指定的功能。
 
通过面向对象的分析建立的系统模型是以概念为中心的,因此称为概念模型。概念模型由一组相关的类组成。面向对象的分析可以自顶向下地逐层分解建立系统模型,也可以自底向上地从已经定义的类出发,逐步构造新的类。
 
概念模型构造和评审的顺序由五个层次构成:类和对象层、属性层、服务层、结构层、主题层。这五个层次不是构成软件系统的层次,而是分析过程中的层次,也可以说是问题的不同侧面,每个层次的工作都为系统的规格说明增加了一个组成部分。当五个层次的工作全部完成时,面向对象的分析的任务也就完成了。
 
OOA的步骤
 
面向对象的分析通常按照下面的步骤进行:
 
(1).标识对象和类。可以从应用领域开始,逐步确定形成整个应用的基础的类和对象。这个步骤要通过分析领域中目标系统的责任、调查系统的环境,从而确定对系统有用的类和对象。
 
(2).标识结构。典型的结构有两种,一般--特殊结构和整体--部分结构。一般--特殊结构表示一般类是基类,特殊类是派生类;整体--部分结构表示聚合,由属于不同类的成员聚合成为新的类。
 
 
 
(3).标识属性。对象所保存的信息称为它的属性。类的属性所描述的是状态信息,在类的某个实例中属性的值表示该对象的状态值。对于每个对象,我们都需要找出在目标系统中对象所需要的属性,而后将属性安排到适当的位置,找出实例连接,最后进行检查。对每个属性应该给出描述,由属性的名字和属性的描述来确定,并指定对该属性存在哪些特殊的限制(如只读、属性值限定于某个范围之内等)。
 
(4).标识服务。对象收到消息后执行的操作称为对象提供的服务,它描述了系统需要执行的处理和功能。定义服务的目的在于定义对象的行为和对象之间的通信。其具体步骤包括标识对象状态、标识必要的服务、标识消息连接和对服务的描述。可以用和流图类似的图形来指明服务。
 
(5).标识主题。对于包含大量类和对象的概念模型往往难以掌握,标识主题则对模型进行划分,给出模型的整体框架,划分出层次结构。但是Coad和Yourdon并没有提出如何标识主题的具体建议。在标识主题时,可以采取先识别主题,而后对主题进行改进和细化,最后将主题加入到分析模型当中步骤进行。主题是一个与应用相关的,而不是人为任意引出的概念,主题层的工作有助于分析的结果。

本文来自编程入门网:http://www.bianceng.cn/Programming/csharp/200709/4428.htm

Coad和Yourdon面向对象的分析过程相关推荐

  1. 面向对象与面向过程的区别与联系

    面向对象与面向过程的区别与联系 一.区别 面向过程强调的是功能行为,以函数为最小单位,考虑怎么做. 面向对象,将功能封装进对象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做. 面向过程的分析 ...

  2. 面向对象与面向过程理解

    本文源地址: http://blog.csdn.net/ithzhang/article/details/52983530 http://blog.csdn.net/ithzhang/article/ ...

  3. python是面向对象还是面向过程的语言_关于python是面向对象还是面向过程的分析...

    关于python是面向对象还是面向过程的分析 发布时间:2020-04-07 16:10:55 来源:亿速云 阅读:24 作者:小新 今天小编给大家分享的是关于python是面向对象还是面向过程的分析 ...

  4. 面向对象与面向过程区别

    面向对象:用线性的思维.与面向过程相辅相成.在软件开发过程中,宏观上,用面向对象来把握事物间复杂的关系,分析系统.微观上,仍然使用面向过程. "面向过程"是一种是事件为中心的编程思 ...

  5. UML和模式应用(1):面向对象的分析与设计

    UML和模式应用(1):面向对象的分析与设计 学习笔记:1小时 1.1.什么是分析和设计 分析(analysis):强调的是对问题和需求的调查研究,而不是解决方案,即应该如何使用系统,系统应该具有哪些 ...

  6. 面向对象编程(一)——面向对象和面向过程

    面向对象(Object Oriented),通过对象来封装我们的数据.(组织代码,封装数据) 面向对象和面向过程: 面向过程:procedure oriented programming,POP 面向 ...

  7. python面向对象和面向过程的区别_Python11-01_面向对象----面向对象和面向过程的区别...

    面向对象编程 面向对象(OPP)编程思想主要针对大型软件设计而来的.面向对象编程使程序的扩展性更加强,可读性更好.使得编程可以像搭积木一样简单. 面向对象编程将数据和操作数据的方法封装到对象中,组织代 ...

  8. 面向对象与面向过程在软件开发中的应用

    今天设计一个功能模块,深入进去后突然对面向对象和面向过程有了些认识.赶紧记下来以免忘了. 在设计和开发一个软件或是功能的时候,眼光或是站的位置决定了你对软件的理解程度.如果你 以软件的设计者的角度你会 ...

  9. 面向对象和面向过程的区别个人觉得是目前解释最好的

    面向对象 首先,一言不和先百度,得到如下定义: 一切事物皆对象,通过面向对象的方式,将现实世界的事物抽象成对象,现实世界中的关系抽象成类.继承,帮助人们实现对现实世界的抽象与数字建模. 我们知道,编写 ...

最新文章

  1. 第七周项目一-成员函数、友元函数和一般函数有区别(1)
  2. Intel Realsense D435 获取摄像头option参数值 get_option()
  3. 51单片机c语言应用开发三位一体实战精讲 pdf 119网盘,51单片机C语言应用开发三位一体实战精讲.pdf...
  4. 功率曲线k值_什么叫离心泵的流量——功率曲线?它们之间有什么关系?
  5. Java-Redis 热部署问题
  6. vba mysql连接字符串_分享一个VBA连接mysql数据库的方法
  7. 控制for each循环次数_CCF CSP编程题解201312-1:出现次数最多的数
  8. 【maven】Controller层参数如何设置传null
  9. 广义逆高斯分布(Generalized Inverse Gaussian Distribution)及修正贝塞尔函数
  10. 赢在AI,人工智能技术体验
  11. 数据结构与算法LeetCode题目索引
  12. 你为什么当不了高管?几张图看懂高级经理人与普通管理者的区别
  13. python 实现 pdf 书签读取、批量写入
  14. 深度学习视觉目标跟踪算法毕业论文【matlab】
  15. Verilog学习笔记(7)Modelsim仿真_三角波发生器
  16. 二十年前割麦的童年(看哭了)
  17. opencv实现人脸识别和眼部识别
  18. Markdown引用微博图床被防盗链不加载响应403完美解决
  19. 大数据-玩转数据-Python几种数据采集
  20. 深圳高中女生街头版someone like you

热门文章

  1. 【滤波跟踪】基于粒子、sigma和卡尔曼滤波器实现目标跟踪滤波附matlab代码
  2. python字符串去重及排序 牛客_2018牛客多校第一场 D.Two Graphs
  3. android实现阅读器底部菜单,android仿新闻阅读器菜单弹出效果实例(附源码DEMO下载)...
  4. 2022微信大数据挑战赛复盘,rank60+菜鸟
  5. Python 之网络编程之socket(3)hashlib模块
  6. C#实现RSA公钥加密私钥解密、私钥加密公钥解密以及Pcks12、X509证书加解密、签名验签
  7. 人工智能时代八大类算法你了解吗?(文末包邮送书6本)
  8. 4128----喵帕斯之矩阵 sdut oj
  9. 部署Nextcloud私有云
  10. 车站广播系统采用计算机,广播系统在轨道交通中的应用