My approach for building decentralized applications is called HYDRA – Hybrid DApp Requirements and Architectural process. The idea is basically to use existing and well-known Software Engineering activities, such as identifying actors and goals with use-case diagrams, model processes with activity and data flow diagrams, but doing this with a certain blockchain focus in mind. The goal is to collect blockchain-relevant information during the requirements engineering phase, e.g. data and value flows within the planned system, personal data to protect or strict business processes to monitor, and use these insights to make informed and structured decisions for the architectural design.
The approach is work in progress as we are currently evaluating and improving the concept in our research projects BlockcENtive and BIMcontracts. Some parts are explained in more detail in the publications mentioned below and might be presented on this page in the future :)