To deploy business systems that satisfy their intended purpose, there is a requirement to meet and engage users/business customers in a disciplined fashion, to expose the real requirements of the system. RJD build models which can be utilised to communicate the desired structure and behaviour of a system. RJD additionally build models to visualise and facilitate business control of a system’s architecture.
Basic principles of modelling suggested by RJD experience:
1. Ask the right questions. Identifying and understanding the problem set, allows for the efficient construction of models that ultimately add value and support decision makers.
2. The choice of what models to create has a profound influence on how a problem is assessed and how a solution is shaped. – Choose models well. The right models will highlight the nastiest development problems. Wrong models will mislead, resulting in focus on irrelevant issues.
3. Every model may be expressed at different levels of precision – Sometimes, a quick and simple executable model of the user interface is exactly what is needed. At other times, the requirement is to drill down to complex details such as cross-system interfaces or networking issues. In all cases, the best kinds of models are those that support the choice for degree of detail, depending on who is viewing it. An analyst or an end user will want to focus on issues of what; while a developer will want to focus on issues of how.
4. The best models are connected to reality – In software, the gap between the analysis model and the system’s design model must be small. Failing to bridge this gap causes the system to diverge over time. In object-oriented systems, it is possible to connect all the apparently independent views of a system into one whole.
5. No single View is sufficient – Every non-trivial system is best approached through a small set of nearly independent viewpoints. In the case of a building, you can study electrical plans in isolation, but it is also possible to see their mapping to the floor plan and perhaps even their interaction with the routing of pipes in the plumbing plan. The same is true of object-oriented systems. To understand the architecture of such a system, several complementary and interwoven views are required: a use case view (exposing the requirements of the system), a design view (capturing the vocabulary of the problem space and the solution space), a process view (modelling the distribution of the system’s processes and threads), an implementation view (addressing the physical realisation of the system) and a deployment view (focusing on system engineering issues). Depending on the nature of the system, some model views will be more important than others.
RJD has a proven track record of establishing and delivering effective and comprehensive architectural Models to address the basic principles discussed here.