It turns out that a description such as we have sketched, using just two type of diagrams, is actually a complete specification of software. As a matter of fact, we can even (in principle) generate software from it. Of course you need to fill in a lot of detail such as refining the User Interface and connecting to external Application Programming Interfaces (API's). But it doesn't get much more difficult than what you've seen above.
We have given Perspectives a very sound mathematical base. We can translate a model into logic. Models have very desirable properties, such as that Roles, Perspectives, Properties etc. can be incrementally added without compromising what has been modelled before. There is a lot more to the theory of Perspectives than that meets the eye!
All that is very interesting to scientists. But for business purposes, we can stick to a few points of understanding:
- anyone can understand a Perspectives model of a business or work situation;
- the model is precise and complete enough to function as a specification for a software building project;
- with a little training, a business analyst can create such models herself.
This puts the business firmly in the driver's seat, when it comes to software projects.
From modelling to software
An IT supplier uses a deterministic procedure to derive more traditional specifications from a Perspectives model (such as a UML model, epics and user stories). From there on, it will be business as usual. However, because you've given them a formal, precise and complete specification, it will be easy
- for them to set a price;
- for you to formally accept the end result.
Moreover, a readily understandable specification will foster understanding of your business with the IT company, too. All too often programmers work on functionality without having a clue of the wider context in which it should function!
Software generation
Perspect IT will complete automatic software generation from a Perspectives model end of 2019. The generated software will be fully distributed (meaning users will connect directly to each other, without an intervening server). Companies open to such a form of deployment should be interested in this development!