• 业务领域建模


    业务领域建模

    〇,业务领域建模

      What:开发团队获取相关领域知识的过程

      Why:软件工程师需要在不同领域和项目中工作

      How:收集相关领域信息,头脑风暴,分类,使用UML图进行描述

    一,Collect application domain information(收集应用相关领域的信息)

      业务领域建模的第一步就是手机业务领域的相关信息。首先要做的就是要关注业务领域的功能性需求,此外还需要考虑其他的相关需求以及文档。

      考虑到本次工程实践的题目是设计一个高并发低延迟的区块链框架,结合上次作业中用例建模的相关结果,将收集到的信息归纳如下:

        本次项目的目的是实现一个区块链系统,其应满足用户通过区块链完成交易的需求。具体的需求可由下图表示。

    二,Brain Storm(集思广益)

      在信息收集之后,需要对收集的信息进行整理,为下一步的分类做好基础。根据上一步的结果和Brain storm的规则,可以罗列归纳出如下信息帮助进行分类:

      (1)提取名词

        1) 用户(Class

        2) 交易(Class

        3) 区块(Class

        4) 钱包(Class

        5) 密钥(Attribute

        6) 区块链(Class

        7) 时间戳(Attribute

        8) 矿工(Class

        9) 哈希值(Attribute

      (2)归纳短语

        1) 用户进行交易

        2) 交易包括哈希值,输入和输出(containing

        3) 用户拥有钱包(possession expressions

        4) 钱包由秘钥组成(consist of)

        5) 用户维护区块链

        6) 区块链由区块组成(consist of)

        7) 区块由交易,哈希值和时间戳组成(containing)

        8) 矿工是用户的一部分(X is a Y

        9) 矿工打包交易

    三,Classifying the domain concepts (对领域概念进行分类)

      在上一步的基础上,提取ClassesAttributesRelationships,可得如下结果:

     

    Class

    Attribute

    Function

    User

    IDuserName

    generateWallet(),sendTransaction(),updateBlockchain()

    Miner

    IDuserName

    mineBlock(),validTransaction()

    Transaction

    Hashinputoutput

    signTransaction(),validInput(),unlockOutput()

    Block

    timeStamp,Hashdifficulty

    getTime(),PoW()

    Blockchain

    dataBasetip

    addBlock(),returnView(),saveBC()

    Wallet

    keyPair

    generateKeypair(),saveKey(),useKey()

     

      并归纳关系如下:

      (1)继承关系:

        Miner继承User

      (2)聚合关系:

        Blockchain聚合Block

        Block聚合Transaction

        Uesr聚合Wallet

      (3)关联关系:

        User生成Transaction

        User维护Blockchain

        Miner打包Transaction

        Miner生成Block

     

    四,Document result using UML class diagram

      根据上一步的内容生成UML类图,并在图中增加两个关联类。

     

     

  • 相关阅读:
    ES6/ES2015核心内容 import export
    JavaScript 标准参考教程(alpha) 阮一峰
    NPM 学习笔记整理
    (尚026)Vue_案例_动态初始化显示(尚025)
    (尚025)Vue_案例_静态组件
    (尚024)Vue_案例_交互删除
    (尚023)Vue_案例_交互添加
    (尚022)Vue案例_初始化显示(十分详细!!!)
    (尚021)Vue_eslint编码规范检查
    (尚020)Vue打包发布项目
  • 原文地址:https://www.cnblogs.com/imerliu/p/11922127.html
Copyright © 2020-2023  润新知