zoukankan      html  css  js  c++  java
  • 二、类模型-领域类映射

    第一步,照猫画虎

        首个要解决的问题是:类从哪里来?

        从上一章中总结的领域模型关系图中可以看到,这些领域对象基本上就是我们所需要的类,只是有些映射到软件类后并不是系统真正参与的类,所以要剔除掉。

        领域类是需求涉及的业务的概念,软件类是软件系统内部的概念。

        以POS机为例,顾客这个领域类可以剔除,因为它是业务流程中的一个重要参会者,但它不是POS机内部需要实现的一个实体。POS机业务中,顾客甚至不会和POS机直接交互。站在POS机软件系统角度上,顾客和POS机没有任何关系。

        键盘、屏幕、扫码枪这些是硬件组成部分,不是软件组成部分,也可以剔除。假设屏幕显示要求是既可以图形界面,也可以字符界面,那么软件系统就要处理这种逻辑,此时,屏幕就是软件系统的一组成部分,就需要从领域类转换成软件类。

        接下来的工作就是细化了,首先:

            【名称映射】 根据领域类的名称,起个合适的软件类名称。

            【属性映射】 根据领域类的属性来设计软件类的属性,基本上可以理解为照搬。

            【提炼方法】 由于领域类中没有方法,因此根据用例模型中涉及到的“动词”来提炼方法。

            【筛选】我们可以从用例模型中找到很多的方法,找出来后,我们要筛选掉不属于软件类的方法。

            【进阶提炼】例如:我们可以看到方法中有“扫描”、“手动输入条形码”这两个动作。首先用例模型中,这两个动作都是收银员的动作,但提炼到软件类中它俩则不属于收银员,而是属于扫码枪和键盘提供的功能,收银员只是借助这两个工具来实现。另外,这两个的动作虽然不一样,但都是向系统中“增加交易产品”,因此可以提炼出一个动作,就是“增加交易商品”这个动词。提炼这些动词的精确度和完善度是和人员的经验有关的,要加强抽象的思维。

            【分配】将提炼出来的动词,分配到合适的类中。这个也是跟经验很有关系。分配之后的得到如下软件类关系图:

  • 相关阅读:
    操作串口通信类(IO.Ports)SerialPort
    TreeView的数据源绑定—采用sqlite作为数据源,实现对treeview控件进行增删改查
    (Easy)打开指定的文件
    TreeView的数据源绑定—采用XML作为数据源,实现对treeview进行增删改查,之后回写XML文档
    linux sort,uniq,cut,wc命令详解
    轻快的VIM(六):恢复
    Python 常用模块大全(整理)
    定位oracle实例的当前跟踪文件名及路径
    查看session io
    查看pga使用
  • 原文地址:https://www.cnblogs.com/mysic/p/8452345.html
Copyright © 2011-2022 走看看