First thing: A fully normalized database-schema with generated keys for all associations – in most of the good DB- brands, following my uml model -whatever I do with it
Second thing: A Business layer for objects with constraints and rules – following my uml model and ocl expressions – whatever I do with them – automatically maintain both sides of associations – and association objects – how ever I choose the cardinality – and use the UML standard with specialization and abstractions, with state machines and guards for states, with aggregation and composites to get cascading deletes and lifetime control. Keeping track of change state on attribute level and efficient persistence transformations
Third thing: Having viewmodels of ocl-expression transformations in a-cyclic-trees that subscribes to changes for all information they use
Forth thing: Being able to expose said viewmodels as read/write REST interfaces with in atomic transactions
Fifth thing: A UI layer with databinding for anything in such viewmodels and have multiple versions of said UI layer to allow for the same model in different technologies – so that time corrosion is handled just like it is with your car – you keep your family and transport them with a new car every third year – you keep your knowhow and deliver with a new UI layer every third year
Sixth thing: A way to declare actions ie ocl expressions with side effects and expose those in Viewmodels and menus and make navigation between ViewModel based views easy
Seventh thing: Provide a streaming interface of diffgrams between a thin client and server that follows the declared viewmodel however it changes so that your client only sees the information from the viewmodel, exposing it easily and nothing else
Extra 1: Make it possible to inject your own code in any point of the full stack – from database (SQL), to business layer (c#), to thin client (CSS and Typescript) – with special attention to look and feel
Extra 2: To avoid excessive override need – have support for responsive UI design already in Viewmodel level
Extra 3: A server side orchestration strategy to run actions and viewmodels based on events to manage self-playing-piano actions and automations
If I have these seven things and 3 extras I can verify my thoughts with real data and real user feedback straight from the drawing – in minutes
Since it scales to 1000 of users and hundred of millions of records I have a complete enterprise grade information system – straight from the drawing
When a system can be realized this way instead of being handwritten, I can reduce test to a minimum and spend zero time on additional documentation – and still have a 1-1 exact replica between what I said and what I got and what I can see in the model. The risk of doing wrong is reduced – the cost of redo is low – I can now try – be wrong and learn and become better – maybe even correct
When I have this, I can be the business-guy, the UI-guy, the backend-guy and the db-guy in 1 person, and I can probably do it for 2 projects at the same time. But everything is prepared for team work with file formats that diff great in GIT and SubVersion.
I can also be the info-sec guy setting up the rules what role should see what under which circumstances. And the IT-sec guy since the platform is vetted and pen-tested with very good results.
I can come back to a project after 6 months and instantly find my way around the system due to the high-level exact documentation. And if the model is done in the language of the business I can instantly act as the business expert just by being able to read the model.
We did this – because it was a good idea – it took us 20 years – our customers and partners make systems with it – at a level hard to deliver with traditional strategies. Some clients call this StarTrek-level-tech – We call it MDriven Turnkey. We keep innovating. No lock in – the data is yours the models are yours – the standards are everyone’s – the cloud is just as easy as on-prem and just as easy as running the whole stack on one developer machine without network if needed.