In the analysis phase of a software engineering project domain models are used to describe a problem or business area.

Domain Model (logical data model): structures the information into meaningful real-world concepts that needs to be developed in software. The concepts include the data involved in the business, and the rules the business uses in relation to that data (Cfr. Wikipedia - DomainModel).

Domain models are technology agnostic and generally use the vocabulary of the business so that the structured layer can be used as a blueprint for the developers and to validate the proposed solution with the business stakeholders.

At FundRequest we defined our domain model and described it in a previous blogpost.

How to model blockchain classes

Once the domain model is stable, the development team decides which concepts will be realised by smart contracts on the blockchain and which parts will be realised in the FundRequest back-end.

We use a class diagram to to describe the smart contract structure and the relationship with our FundRequest back-end.

Using Sequence Diagrams to describe a process

For more complex interactions between concepts, we added sequence diagrams to show detailed interactions between different actors.

For the FundRequest platform there is a continuous interaction between the smart contract and the sequence diagram.

See an example of the function call together with funding in the sequence diagram above. More details in our whitepaper (cfr. https://fundrequest.io/whitepaper.pdf — section 4.1.2.)

Conclusion

By defining the smart contract as a separate bounded context that interacts with the back-end services you can start integrating smart contracts and other blockchain based classes in more traditional software analysis. This will undoubtedly lead to a better understanding of what data belongs in the blockchain and what should better be kept outside of the blockchain.