Where to start the development of architecture?

    Note: If you think that at least half a dog was eaten during the construction of architecture, then this article is not for you.

    A model is an abstract representation of reality in some form.

    We assume that the architect has already finished collecting requirements for the future system and analyzing them.

    The development of architecture needs to start only with the concept and adoption of the fundamental concept of working with information (data): transmission, storage and processing. Moreover, the forms of input / output of information, processing schemes, abstract structures of arrays and data elements themselves are also information (like the whole application) and obey the same fundamental concept.

    image

    The fundamental concept leads to the first ideas and to the creation of the first data processing models.

    image

    Models of working with data can be called differently because of the difference in nested concepts. One of the names is data stream, where elements are usually future enlarged modules that implement specific data manipulation tasks.

    The basis of architecture (the main model) will be the model of the business process of movement of the main data (what the application will be intended for). This stage is very dangerous: a lot of original ideas can flood the architect. This flow of ideas must be contained. Suppress the desire to dream or draw a bunch of unnecessary schemes. Now you need to create only one scheme for sequentially obtaining master data, storage and processing. Nothing extra. No decomposition is needed here. It is such a scheme that underlies, is the main representation of architecture and should always be in sight. As a business process can be a technological map.

    The second main model will be with the addition of secondary business processes and data. For example, user models, access control (ACL), logging models, monitoring models, event models, etc. are added. Based on the second model, it is already possible to develop the first database schema and / or data warehouse, and a prototype application. At this stage, understanding may come about whether to make a monolithic application, component, to apply a microservice approach or some other. The fact is interesting: between the monolith and each microservice (in the microservice architecture) there are no differences from the point of view of the fundamental concept. From this moment, it is necessary to begin the development of an architecture justification document. An architecture rationale document is a recorder of reasoning about the reasons for decisions made by architecture and explanations.

    Creating the first application prototype based on the second model can show the immediate benefit of the application. The prototype will certainly be a formalized application layout. For example, instead of detailed forms, you can use conditional buttons that create a ready-made element based on random data generators.

    After creating the second main model and the first prototype, you can begin the decomposition, enlargement, development of other architectural representations and models. But the first main model and the second main model will be basic. In the process of further development, the first and second models can be improved, refined and refined.

    Also popular now: