zoukankan      html  css  js  c++  java
  • OO学习之一——面向对象分析(OOA)的介绍

    一、面向对象分析

     1【定义】

    Object Oriented Analyzing 
    OOA是一种将现实世界中的问题映射到问题域的方法。
    2【目的、意义】
    明确用户的功能需求,及满足用户所需的系统部件及其结构。
    3 【输入】
    用户需求。
    4 【输出】
    1 用例图:说明系统对外提供的功能及使用者
    2 类图:说明系统应具有的对象,对象的属性、方法,及其对象之间的关系。
    3 交互图:
    3【标准】
    1)为完成用户要求系统应提供哪些功能? 
    2)系统应有哪些对象构成? 
    3)每个对象应有哪些属性和服务? 
    4)对象间应有怎样的联系?
    4【手段】
    详见[1]。
     
     5【边界】
     OOA 使用面向对象的建模技术,将现实世界映射为完整的面向对象的模型。
     

    二、领域分析

    1【概览】
    面向对象系统的分析可以在不同的抽象层次上进行。
    1在商业或企业级,OOA技术可以同信息工程方法,(第 10 章)结合,来定义模拟全部业务的类、对象、
    关系和行为,这个层次的 OOA类似于信息策略计划;
    2在业务范围层次,可以定义一个描述某特殊的业务范围(或某产品或系统范畴)的工作的对象模型;
    3在应用层次,对象模型着重于特定的客户需求,因为那些需求将影响应用的实现。
    2【领域分析方法】【2】
    软件的领域分析是在特定应用领域中标识、分析和规约公共需求,典型地是
    在应用领域中多个项目间的复用。面向对象领域分析是以公共对象、类、子集合
    和框架等形式在特定应用领域中标识、分析和规约公共的可复用的能力。
    3【目标】
    发现或创建那些可广泛应用的类,使得它们可以被复用。 
    4【过程】
    1 界定将被调查的领域。分析员必须首先隔离感兴趣的业务范围、系统类型或产品范畴。接着,必须从中抽出OO 和非 OO 的“项”
    2 将从领域中抽取出来的项分类。
    3 收集领域中应用的代表性样本。
    4 分析样本中的每个应用。
    ·标识候选的可复用对象。 
    ·指明对象被标识为可复用的理由。 
    ·定义对对象的适应性修改(可能也是可复用的)。 
    ·估算在领域中可利用对象复用的应用的百分率。 
    ·用名字标识对象,并运用配置管理技术(第 9 章)来控制它们。 

    三、分析模型的类属成分 

    包括  交互图、顺序图

    四、OOA 过程 

    从理解系统的使用方式开始,如果系统是人机交互的,则考虑被人使用的方式;
    如果系统是涉及过程控制的,则考虑被机器使用的方式;或者如果系统协调和控制应用,
    考虑被其他程序使用的方式。定义了使用场景后,即开始软件的建模过程。 
    1 使用实例,确定角色。
    2 类—责任—协作者建模 
    制品:指定类名,类的职责(属性和方法)和协作者
    Ambler[AMB95]对 CRC 建模的描述如下: 
    CRC 模型实际上是一组表示类的标准的索引卡片的集合。卡片被分成三个部
    分,在卡片的顶部为类的名字,在卡片体的左边列出类的责任,在右边列出协作者。 
    3 定义(类之间的)层次和结构
    层次(一般-特殊结构gen-spec)
    结构(whole-part)结构
    4 定义主题和子系统【划分library 类库】
    当类的某个子集相互协作以完成一组内聚的责任时,它们常被称为主题(subjects)[COA91] 或子系统[WIR90]。
    (类库之间协作,以实现契约,就其封装性来说,类似于类)

    五 对象-关系模型(确定多重性关系)

    1 利用CRC的类与协作确定是否有关系。
    2 根据职责确定多重性

    六 对象-行为模型(状态图)

    1.评估所有的使用实例(20.4.1 节)以完全地理解系统中交互的序列。 
    2.标识驱动交互序列的事件,理解这些事件如何和特定的对象相关联。
    3.为每个使用实例创建事件轨迹[RAM91]。 
    4.为系统建造状态—变迁图。
    5.复审对象—行为模型以验证精确性和一致性。 
    【1】 软件工程——实践者的研究方法
    【2】Firesmith[FIR93]

      

    本系列为整理实习期间的面向对象开发的学习笔记。流于浅薄,见笑之处还望斧正。

     


    作者:撞破南墙
    出处:http://www.cnblogs.com/facingwaller/
    关于作者:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    DRF简易了解
    Restful API接口规范
    Python分页
    vue笔记(一)
    CNN实现手写数字识别
    深度学习框架Keras
    NLP自然语言处理
    深度学习框架Tensorflow
    维度的区分
    矩阵求导
  • 原文地址:https://www.cnblogs.com/facingwaller/p/OOA_Introduction.html
Copyright © 2011-2022 走看看