comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Ada in command / control systems
Date: Thu, 7 Mar 2019 10:25:08 +0100
Date: 2019-03-07T10:25:08+01:00	[thread overview]
Message-ID: <q5qo1k$1t4u$1@gioia.aioe.org> (raw)
In-Reply-To: fcb4b27a-1967-4ee2-8fc7-e3fd2d64ff1a@googlegroups.com

On 2019-03-07 08:02, Maciej Sobczak wrote:
>>> What do you mean "nothing above that"? There can be many levels of requirements. [...]
> 
>> Thus it is simply code in some mostly declarative language. As such it
>> must undergo testing, verification, validation etc.
> 
> No, it's not code. It's requirements. Yes, in undergoes verification. Which is actually good - I don't understand, are you now criticizing models for them being verified?
> 
>>> The fact that Simulink can generate code automatically is actually not important here,
>>
>> It is a key feature allowing to circumvent normal software quality
>> assertion and developing process.
> 
> I don't understand this statement (maybe we are running out of fuel in this discussion). Models are used to express ideas and expectations.

A model is an object representing another object usually from another 
space so, that the former has the features of interest of the latter.

> Whether there is a code generation involved is a secondary issue.

It was your thesis that people want to avoid writing code, which I agree 
with. Remove that and the bureaucratic incentives, and nobody would ever 
use it.

>> I don't think there are many people who could write code from a
>> non-trivial Simulink diagram.
> 
> Great, we are now focusing on some added value. So let's remove Simulink from the process and we have what?

I never proposed that. Simulink has its place in engineering.

BTW, we are actually talking about the real-time workshop, Simulink 
generates no code, it does off-line simulation.

The discussion was about the place and whether the paradigm of using a 
domain-specific language to express models of the software system (note 
the difference) may work. It cannot.

>> It is far more difficult than writing
>> assembler code from Ada program.
> 
> Then maybe the intellectual gap is still too wide. And that only confirms my previous statements: source code is the lowest-level artifact we should care about (assembler can be written by a machine). Moving from requirements to source requires intellectual contribution from the expert and automating that part is not necessarily easy or desired (but still interesting).

You ignore here software design. The problem and the point is that the 
software systems (and models of) are far more complex than the models of 
physical processes these systems are supposed to control/automate. Tools 
and ideas like Simulink come from the era when it was the opposite. Then 
you had a 8-bit microcontroller with a few soldered in AD/DC converters. 
That was all. You had a nice way to design, test and deploy a control 
loop. That time is gone.

> I did. The purpose is to reduce the gap that is to be covered by a single engineering activity. Writing source code while listening to the customer over the phone does not work, so let's try to create something intermediary to provide opportunity to verify that our understanding of the high-level requirements are correct and that there is an idea for actual implementation that is feasible and has desired properties. This is exactly the purpose of the low-level model.

This is not a purpose, it is a desired feature of the code writing 
process. The purpose is fulfilled by writing the code. You want to write 
the code in a different language? Fine, but do not tell me you are 
writing no code.

>> One must know everything about programming,
>> control, about numeric methods, and about domain-space problem in order
>> to use Simulink en large.
> 
> So Simulink is bad, because you have to be competent?

No, Simulink is bad when you try to use it where it does not belong, 
i.e. for software development.

> That's a really poor criticism of modeling.

BTW, the customers I know do not deploy the code generated by the 
real-time workshop. The code (in C) is manually rewritten and reviewed. 
Yes, one must have the worst from both worlds!

> I'm asking whether the process can benefit from the presence of such tools. I'm ready to acquire the competencies that I lack, if needed.

It cannot. Any extra layer of languages increases complexity 
exponentially. Argumentation that these language are not for code, but 
for requirements etc is bogus. BTW, if Simulink et al were used as SPARK 
is used, I would have no objection.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


  reply	other threads:[~2019-03-07  9:25 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 [this message]
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