• Advertisement
Sign in to follow this  

UML IT infrastructure

This topic is 2148 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi all!

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!
AndyT Edited by Signature

Share this post


Link to post
Share on other sites
Advertisement
UML is pretty mature[/quote]

UML has several problems:
- impedance mismatch (it works the way managers work, not how software is naturally written)
- developed, authored and owned by private for-profit committee - they make money off training and product sales, not improving productivity
- overhead added by UML can only be covered by large companies, think 500+ development teams
- it is used for risk aversion and establishing paper trail as well as process certification, it completely fails if software usability is at premium
- CASE are used for business intelligence and business process management, and even there the generic package isn't widely used, there are better toolings provided by other vendors. They are not a good fit for actual software (code-related) development. They work best when managers define various processes and workflows, off which managers under them base their work. If you look at eclipse forums, you'll notice there are more posts in workflow and BI forum than all other topics combined. CASE is not for developers, it's for managers who don't do technical work.

NoSQL is on the rise[/quote]

No... Not really. Maybe for 2 person web shops.

There is no database in enterprise that cannot be handled by SQL (DB2, Oracle or MSSQL - others do not exist), there is today sufficient hardware available to scale these vertically for any real world data set.

ETL and ad-hoc analysis works on different data sets, but again, for enterprise usage problems lie elsewhere and they are currently catered at both high-end (again IBM and Oracle) as well as low-end (S3-based solutions).

SAP is also in there somewhere. Surprisingly, it tends to work quite well, so it gets little press because of lack of snafus.

I started working on a Java implementation[/quote]

Does it work with every existing technology and standard? Out-of-box? If no, then it's of no use. It's the first thing you will get asked.

UML is both a mess and "success", because Rational and IBM made sure it works with every dead and living standard and technology stack. The result is multi-gigabyte monstrocity built on top of Eclipse (and previously Visual Age).

- 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)[/quote]

I remember working on something like that.
- there was abstract model
- after it got complex, these models got auto generated, so meta language was developed for describing the models
- this meta language got too complex, so meta-meta language was create (no joke)

Meanwhile, actual users and developers gave up on it and used 5 line text files instead 500,000 LOC meta-meta framework. Application as it was meant to be written was 500+ MB of source + 500MB of generated code at the time I left.

BTW: the thing won an award from one of these CASE groups.


But the most important thing to understand here is that problems inherent here are not technical. It's complex because of the way enterprise world works.


For a modern take on enterprise software, I'd look at salesforce. They are considerably smaller in scope than players above, but they are based from ground up on web-centric approach and are investing a lot into more dynamic/live approach. Edited by Antheus

Share this post


Link to post
Share on other sites
I am doing most work with UML.
But I will not use IBM Rhapsody, former Rational, because this tool lacks a lot of features I need.
Whenever it comes to questions why UML is not used in software development I am getting the same answers.

These are the highlights:

- we are developing in C (not object oriented)
- code generation does not what I want.
- I can use any graphics tool for documentation
- refactoring can be done in eclipse easily aswell.

I am doing development in C and C++ as well and using UML all the time. Code generation works for me perfectly and not only creates the code but also the build files.
Shure. Any graphic is usable as long as everyone understand what you are thinking. Using a standard way of descibing something as pictures makes software more understandable.
Refactoring with an UML-Tool even means restructuring. Moving classes around, re-connecting dependencies and all such things. This is hard to realize with a eclipse only environment.

I am a fan of UML. But there are only a few tools that hit my feature list. I am fast even with small systems. And always have the possibility to create documents from the tools.

Share this post


Link to post
Share on other sites

impedance mismatch (it works the way managers work, not how software is naturally written)


Well, even as a programmer ... I wish software would follow the model of whatever it is the software is meant for.


No... Not really. Maybe for 2 person web shops.

There is no database in enterprise that cannot be handled by SQL (DB2, Oracle or MSSQL - others do not exist), there is today sufficient hardware available to scale these vertically for any real world data set.
ETL and ad-hoc analysis works on different data sets, but again, for enterprise usage problems lie elsewhere and they are currently catered at both high-end (again IBM and Oracle) as well as low-end (S3-based solutions).


Well I was referring to what google does with their page rank (Bigtable?) and I saw NoSQL in the min. qualifications of quite a few open posts. But I think soon most projects and organisations will struggle with performance and complexity.
The company I work at struggles with updating data after changes to the meta data (application business model) and with interfaces to other systems all the time.

And I don't see why stuff is hardcoded at all these days.
If that was not the case things would just fall into place and syndication would become possible.

The syndication possibilities are what I miss in SQL systems. A UML management system could probably be built on top of a SQL system.
I want IT to get to a point where I drag and drop a human, a piano and a camera from Wikipedia into Blender and possibly the whole concept of multibody dynamics.
UML models in XML representation should make that possible ... if the applications that are connected that way work with the same model or define a mapping strategy for the models.


Does it work with every existing technology and standard? Out-of-box? If no, then it's of no use. It's the first thing you will get asked.

But the most important thing to understand here is that problems inherent here are not technical. It's complex because of the way enterprise world works.

For a modern take on enterprise software, I'd look at salesforce. They are considerably smaller in scope than players above, but they are based from ground up on web-centric approach and are investing a lot into more dynamic/live approach.


Well I don't want to sell to companies. I want a movement by innovators for innovators ... that the business world will have to follow.
I don't see why such a service could not be used in any field (the RFC could allow different kinds of connectors, even combinations of TCP and UDP for data that has to be streamed ... maybe even servlets could provide the service).

Any projects that connects to a database (networking capability) and can parse xml should be able to use the system. Edited by Signature

Share this post


Link to post
Share on other sites
And I don't see why stuff is hardcoded at all these days.[/quote]
Words like hardcoded are a strong signal of MDA-flavoured magical thinking.
In the real world, if software does something useful and meaningful, it's because someone took the trouble to write it, and if software does something "automatically", something that is not "hardcoded", it's because what has been programmed is sufficiently abstract and general and well designed, which implies even more programming effort and/or skill.

Share this post


Link to post
Share on other sites

Words like hardcoded are a strong signal of MDA-flavoured magical thinking.


Not sure I understand what you are saying. The importand part is a proper design ... I agree.
Why shouldn't data model and application logic be designed in UML and the actual programs rendered and deployed by CASE services on the fly?

Why does a programmer have to write the code? Why are there binary distributions of isolated programs all over the place when most programs could run (and share) scripts these days?

Share this post


Link to post
Share on other sites

Why shouldn't data model and application logic be designed in UML and the actual programs rendered and deployed by CASE services on the fly?

Why does a programmer have to write the code? Why are there binary distributions of isolated programs all over the place when most programs could run (and share) scripts these days?


Other disturbing watchwords: "deployed on the fly", as if tool automation didn't require close supervision and reduced the need for testing; "have to write the code", as if one could get away with writing less than is needed and letting a [s]magic wand[/s] CASE tool take care of the details.

While using appropriate programming languages can make writing the same program less expensive, or even qualitatively shift programming tasks from impractical to easy, scripting is no free lunch. The price of smaller and simpler scripts is an increase of complexity of the scriptable system and an increase of its implicit information and inflexible assumptions.

I don't want to insist on why the right place of UML is on whiteboards, as a communication tool for people, and why it is terrible as a DSL; even with the favourable assumptions of writing your scripts in a good programming language, the kind of infrastructure you propose is doomed because, both technologically and economically, it only makes sense where there are many applications that are both very complex and very similar, which is an extremely small and possibly empty niche.

  • If the complex and similar applications are few, straightforward modular design allows one to implement variations cleanly, without the need for general scripting systems or complex code generation.
  • If many complex applications are moderately similar, they are usually made independently, by sharing as many tools and common pieces as possible.
    SAP installations, consisting of generic modules that do things almost every customer needs and lots of code for highly valuable customization that the whole system has been designed to allow and manage, are a good example of this category.
  • If many similar applications aren't very complex, or at least their differences aren't, tools and languages can be simple and specialized.
    Game mods and custom levels are a good example; how would you involve UML in the creation of images, 3D models, map layouts, and so on?

Share this post


Link to post
Share on other sites
What facts prove that automation requires close supervision?

Assume we had one model describing the whole world through syndication, where is the showstopper that prevents applications to use that middleware to share data and create an "Applications Without Borders" user experience?

Yes, it only makes sense where there are many applications that are both very complex and very similar ... but that is my vision for the whole internet. We should not write stuff that comes to mind but EXACTLY what is needed to reach our goals.
I don't see any substance in your arguments, yet.

Btw. I updated the project with a first take on possible Milestones for the best guess implementation of a UML management system. Edited by Signature

Share this post


Link to post
Share on other sites
It is worth reiterating that these currently are communications tools.

There have been hundreds of similar tools over the decades. It is possible to auto-generate stubs and pieces of software, but ultimately they have failed at becoming a final implementation. CASE tools peaked in the 90s, and nearly 20 years of maturity later they are still relegated to a method of communication rather than a method of final implementation.



Perhaps you do have the 'killer app' idea. People come up with those occasionally.

The systems you are talking about are stable and mature and have been developed for decades by countless teams of experts and geniuses. I don't know if your app idea will transform the worlds of software development, software communication, CASE tools, or even become the new 'vision for the whole internet'. It is certainly possible. Somebody has to have the transformative idea, and perhaps that person is you.

Just keep in mind that many people and many businesses have walked that path before, some investing and earning billions of dollars along the way, but none have discovered what you describe.

So nothing PROVES it isn't possible. There is just a lot of evidence that it isn't feasible.

Perhaps you have discovered a way around barriers that Rational, IBM, Oracle, HP, and a bunch of other companies and research groups could not. But please understand the reasons why so many are skeptical.

Share this post


Link to post
Share on other sites
What I have not seen yet is an attempt at bringing the data storage and meta modeling together as a service for higher level applications.
I realize that ones guts have to tell us that there is something wrong with the idea. Maybe there is a fault in the concept. I was mostly just screening if anybody here can spot one.

I do understand why people are skeptical, I am just a little disappointed that nobody wants to just play the thought ...
I am not complaining ... I am trying to challenge the opposing forces to play the thought and find a substantial flaw :-)

Hope I did not offend anyone. I will keep working on the proof of concept but I could really use any kind of input and don't want to waste time and energy if this is not worth pursuing.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement