comp.lang.ada
 help / color / mirror / Atom feed
From: russ lyttle <lyttlec@removegmail.com>
Subject: Re: Ada in command / control systems
Date: Mon, 11 Mar 2019 10:27:30 -0400
Date: 2019-03-11T10:27:30-04:00	[thread overview]
Message-ID: <q65r8i$1i7e$1@gioia.aioe.org> (raw)
In-Reply-To: ly8sxlu6va.fsf@pushface.org

On 3/11/19 4:56 AM, Simon Wright wrote:
> lyttlec <lyttlec@removegmail.com> writes:
> 
>> Code-to-diagram generators do make life easier! Especially for
>> maintenance.  Speaking of which, is there a good one for Ada? I have a
>> couple for C/C++ but not Ada.
> 
> The trouble with code-to-diagram generators is that it's only really
> possible to make a useful diagram if it hides some aspect of the
> code, and if the code is created by humans (even just one human!) there
> won't be the architectural consistency to achieve that. For example,
> there may be many ways of representing the notion that one Target may be
> being engaged by one or more Missiles_In_Flight, but that a
> Missile_In_Flight is engaging precisely one Target.
> 
> In rather the same way that it must be quite hard to convert an
> optimised binary back to the Ada source code it was generated from.
> 
> That said, I wonder whether you meant diagram-to-code generators? In
> that case, the relationship I described above would be straightforward
> to specify in a UML class diagram, and the architectural decisions made
> in the specific code generator would mean that you would know exactly
> how to navigate the model: the function call
> 
>     Is_Engaged_By (The_Target)
> 
> would return a possibly-empty list of Missile_In_Flight.
> 
> Modelling/code generators for the sort of project that's appropriate to
> model in UML (probably not e.g. FADEC, but certainly the business logic
> of a railway signalling system) include
> 
> * Rational Rhapsody,
>    https://www.ibm.com/uk-en/marketplace/rational-rhapsody
> 
> * Bridgepoint, https://xtuml.org
> 
> * xUML, https://abstractsolutions.co.uk/our-services/executable-uml/
> 
> * my ColdFrame, https://simonjwright.github.io/coldframe/
> 
No, I meant code-to-diagram as last step with the "as-built" documents.
I've used Rational Rhapsody in conjunction with DOORS several times. 
Each time the UML diagrams were generated early in the project included 
in high-level requirements as objects in DOORS, and used to create a 
code framework. Managers want to start billing the coding team against 
the project, so they started filling in the blanks and committing code. 
A year later and 2 levels down a bug was discovered and fixed. No one 
ever changed the original UML diagrams to reflect the change. Either as 
an oversight or because they didn't want to go through the whole process 
of changing a high level requirement.
Big mess at the end.

I like using the diagrams as an engineering aid. Just not including them 
in the requirements documents. Requirements are (should be) fixed and 
unchangeable. The diagrams need to be dynamic and always reflect the 
current status of the code.


  reply	other threads:[~2019-03-11 14:27 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
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 [this message]
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