• 业务领域建模


    业务领域建模

    〇,业务领域建模

      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类图,并在图中增加两个关联类。

     

     

  • 相关阅读:
    C#通过正则表达式统计词频的一个方法
    本地服务器远程连接其它数据库
    拼字符串成为时间,和两个计算时间点的中间值
    删除文件夹里的图片,打印删除日志
    行转列SQL语句
    加载出一个有层次的下拉框
    查询结果列传行
    【Java&Python双管齐下复健002】回文数和反转数
    【Java&Python双管齐下复健001】冒泡排序和质数判断
    【LeetCode记录】初级算法:数组之删除排序数组中的重复项
  • 原文地址:https://www.cnblogs.com/imerliu/p/11922127.html
Copyright © 2020-2023  润新知