comp.lang.ada
 help / color / mirror / Atom feed
From: Maciej Sobczak <see.my.homepage@gmail.com>
Subject: Re: Ada in command / control systems
Date: Thu, 28 Feb 2019 05:12:44 -0800 (PST)
Date: 2019-02-28T05:12:44-08:00	[thread overview]
Message-ID: <9807ec3a-4c34-4641-acfa-e9cf22de95ce@googlegroups.com> (raw)
In-Reply-To: <q5710f$1nbo$1@gioia.aioe.org>


> You can build blocks out of blocks. In terms of software development 
> this is trivial aggregation. Modern languages have a lot more under the 
> belt.

And a lot of coding and design standards saying what not to use. :-)

> How about user-defined types of edges? [...]

This is thinking in terms of solution, not in terms of a problem.
Why would I care about features that are borrowed from code-based programming languages in a model-based tool, without a particular problem to solve?

> Groups of edges used 
> together? How about parametrized blocks? Substitutability of blocks upon 
> connection with other blocks and polymorphism of blocks and edges? 
> Interfaces of blocks constraining implementations of?

I don't see any reason why a model-based tool should not have them. But I also don't see any reason to have them unless I have a problem where they are needed.

> We had a project where the customer required the HMI designed in a 
> graphical language like Simulink. Once the diagram became impossible to 
> read and even less to understand. We stopped using it.

Yet, that will not prevent the same customer asking for it again. Guess how do I know.

> The biggest 
> problem was missing edges. If a block misses an input how to find the 
> block providing it among thousands of blocks?

Which is exactly the same problem as with source code. If the information is missing, you have to figure out where to get it from (among thousands of source modules, of course, no less).

> Instead we took the internal representation of the diagram. It was a 
> file with sections describing blocks, edges and their connections. So we 
> edited that file directly!

Yes, Tcl makes it possible. Which might be actually a proof that model-based approach can be a safe choice if such a rescue option exists.
Having said that, I have also seen a tool that used XML as an underlying format, where everything was "linked" by means of UUID identifiers, woven as attributes in absolutely every entity. I think that character-wise, these UUIDs made a majority of the file content. Even though it was formally still a text file, modifications by hand were just impossible. So, it all depends on the tool vendor. But this is certainly something to look into at tool evaluation time.

> When the patched file got loaded, it was 
> rendered as an utter mess of overlapping blocks and edges leaving 
> nowhere, piercing the diagram like cosmic rays. Naturally our manual 
> editing destroyed the layout! The automatic rearranging tool indignantly 
> crashed when faced proud results of our creativity. The diagram worked 
> but nobody could see it.

Interesting story about a particular low-quality tool, saying nothing whatsoever about the approach as a whole. There are anecdotes about buggy compilers and incomprehensible sources as well.

> OK, but if you have a block of N inputs and M outputs which is supposed 
> to implement some part of controller activity. In order to test it, you 
> must know what kind of analytical function it represents.

And in what way is it worse from source code?

> So if Ada were used to generate Simulink blocks, the roles would change?

For the sake of argument, you might also generate Ada source from assembly.
But I doubt it would impress the actual stakeholders.

> In my view the level is determined not by artifacts of software design 
> process but by the abstraction level

Yes, and this is determined by the fact that you can provide *various* lower-level implementations/refinements of higher-level requirements, thus leaving some space for engineering work and decision making on the way. As long as models don't constrain the underlying implementation (source) in a way that would make them 1:1 equivalent, they are considered to be higher-level than source. This is how models are used, although there is also a place and market for visualization tools that generate diagrams from code.

> Always ready! MBD was a hype already in late 90's. Remember OOA&D?

Yes, and it didn't go anywhere.
Or maybe the enterprise folks, who where fond of UML at that time are now all gone "agile". But in general, OOA&D is still alive and kicking, especially in the industrial applications.

> Code 
> generated from class diagrams?

Yep.

> Especially because there are rivals on the market of snake oil sellers, 
> the AI is back! I expect mission critical software written in the form 
> of trained NN! (:-))

Yes, let's fasten our seatbelts. But in the context of this discussion, this is not a rival, it is *another*, *additional* reason to forget about hand-coded sources. It's not like MBD will lose. It's really one more reason for companies not to write source code. The source code will lose, because there will be even more ways not to write it.

> Yes, for a while. But you and I have suspicion that this is not really 
> sustainable.

In a sense you are right, it's all pile of shit. But still, there is no coming back. People are really determined to invent all kind of necessary shit, as long as it saves them from writing code. And this is what bothers me.

-- 
Maciej Sobczak * http://www.inspirel.com


  reply	other threads:[~2019-02-28 13:12 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-25  6:51 Ada in command / control systems Jesper Quorning
2019-02-25  8:24 ` Dmitry A. Kazakov
2019-02-25  9:44   ` Jesper Quorning
2019-02-25 15:54     ` Dmitry A. Kazakov
2019-02-25 13:50   ` russ lyttle
2019-02-25 14:29     ` gautier_niouzes
2019-02-25 15:25     ` Simon Wright
2019-02-25 19:21       ` russ lyttle
2019-02-26  4:50         ` J-P. Rosen
2019-02-26 15:50           ` Simon Wright
2019-02-26 22:10             ` lyttlec
2019-02-26 22:39               ` Niklas Holsti
2019-02-26 23:09               ` Simon Wright
2019-02-27 13:22                 ` russ lyttle
2019-02-27 14:17                   ` Niklas Holsti
2019-02-27 17:49                     ` russ lyttle
2019-02-25 19:53     ` Tero Koskinen
2019-02-25 20:15       ` russ lyttle
2019-03-01 14:56     ` fabien.chouteau
2019-03-01 16:58       ` Simon Wright
2019-03-01 21:19         ` russ lyttle
2019-03-01 22:32           ` fabien.chouteau
2019-03-01 23:24             ` russ lyttle
2019-02-25 21:18   ` Jesper Quorning
2019-02-26  9:28     ` Maciej Sobczak
2019-02-26 11:01       ` Dmitry A. Kazakov
2019-02-26 21:25         ` Maciej Sobczak
2019-02-27  9:33           ` Dmitry A. Kazakov
2019-02-27 20:46             ` Maciej Sobczak
2019-02-27 21:55               ` Dmitry A. Kazakov
2019-02-28 13:12                 ` Maciej Sobczak [this message]
2019-02-28 17:43                   ` Dmitry A. Kazakov
2019-03-01  9:22                     ` Maciej Sobczak
2019-03-01 10:46                       ` Dmitry A. Kazakov
2019-03-04  7:03                         ` Maciej Sobczak
2019-03-04 14:38                           ` Dmitry A. Kazakov
2019-03-05  9:33                             ` Maciej Sobczak
2019-03-05 16:09                               ` Dmitry A. Kazakov
2019-03-06  9:05                                 ` Maciej Sobczak
2019-03-06 14:14                                   ` Dmitry A. Kazakov
2019-03-07  7:02                                     ` Maciej Sobczak
2019-03-07  9:25                                       ` Dmitry A. Kazakov
2019-03-08  7:19                                         ` Maciej Sobczak
2019-03-08 11:08                                           ` Dmitry A. Kazakov
2019-03-08 17:00                                             ` Simon Wright
2019-03-08 17:38                                               ` Dmitry A. Kazakov
2019-03-05  7:18                   ` G. B.
2019-03-05  9:28                     ` Dmitry A. Kazakov
2019-03-05  9:51                       ` Maciej Sobczak
2019-03-05 16:15                         ` Dmitry A. Kazakov
2019-03-06 22:02                           ` Randy Brukardt
2019-03-05 17:55                         ` Niklas Holsti
2019-03-05 21:06                           ` Simon Wright
2019-03-06  7:26                           ` G. B.
2019-03-06  8:22                             ` Dmitry A. Kazakov
2019-03-06 12:04                               ` Simon Wright
2019-03-07  7:35                               ` G. B.
2019-03-07  9:25                                 ` Dmitry A. Kazakov
2019-03-06  9:17                           ` Maciej Sobczak
2019-03-08 22:45                           ` russ lyttle
2019-03-09  8:16                             ` Simon Wright
2019-03-09  8:59                               ` Dmitry A. Kazakov
2019-03-09 18:47                                 ` russ lyttle
2019-03-09 20:06                                 ` G.B.
2019-03-09 20:38                                   ` Dmitry A. Kazakov
2019-03-09 18:34                               ` russ lyttle
2019-03-09 19:28                                 ` Simon Wright
2019-03-10 21:13                                   ` lyttlec
2019-03-11  8:56                                     ` Simon Wright
2019-03-11 14:27                                       ` russ lyttle
2019-03-11 17:01                                         ` Simon Wright
2019-03-11 21:55                                           ` russ lyttle
2019-03-05 11:59                       ` russ lyttle
2019-03-05 18:18                         ` Dmitry A. Kazakov
2019-03-06  2:01                           ` lyttlec
2019-03-06  8:29                             ` Dmitry A. Kazakov
2019-02-26 15:54       ` Simon Wright
2019-02-26 21:43         ` Maciej Sobczak
2019-02-26 22:45           ` Simon Wright
2019-02-27  8:41             ` Dmitry A. Kazakov
2019-02-27 20:55             ` Maciej Sobczak
2019-02-27 21:26               ` Simon Wright
2019-02-27 22:08                 ` Dmitry A. Kazakov
2019-02-27 11:04       ` Jesper Quorning
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox