As a programmer I am really frustrated with the state of the art.
Interfaces are often set in stone. Hardcoded software is very hard to refactor. Libraries were developed with a different focus than what you actually need etc.
If you are not off the charts smart starting and finishing a complex project is extremely hard.
After looking into CASE I started wondering if things need to be that difficult or if it might be the tools that make things harder.
What do you think about the following thoughts ... why isn't IT moving in the following direction:
UML is pretty mature and NoSQL is on the rise ... there could be a UML management service that
- makes the definition of models (UMLDL) and instances (UMLML) that go with the models possible
- allows developers and users to browse the models (UMLQL) if they have the rights to make the query (UMLCL)
- allows syndication of defined models
- is multidimensional (layers that can be parametrized)
- allows streaming (given changing parameters)
- comes with concurrent version support (maybe as a dimension)
- would be a low level infrastructure for a new generation of tools
Most developers would not have to worry about UML ... because there would be new authoring tools that can be customized and expanded easily ... getting the meta data as a model and JSON objects that they understand because they have the meta data.
Guess the google video about "Apps without borders" really got me thinking.
I don't see any show-stoppers ... what do you guys think? And does anybody know of an effort based on similar thoughts?
I started working on a Java implementation but I guess the concepts (like a RFC) should really be done by smarter people.
This should give you a basic idea of how I want to access data:
// UMLQL fetch dimensions tagged as tags for query fetch queries tagged as tags fetch model select types tagged as tags from queries add dimension using parameters fetch instances for model ordered by values limit to number stream query synchronizing parameters for dimension // UMLML insert for model set values connect instance as relation in dimension with parameters update instances set values if (not) in instances connect instances as relation if (not) in instances delete instances // UMLDL create dimension create subject as type relate subjects as relation alter subject relate subjects as relation drop subjects store select as query
Rock on everybody!
Edited by Signature, 28 May 2012 - 06:07 AM.