saeaadl / aadlv2.1

For managing AADL V2.1 errata
0 stars 0 forks source link

Default Synchronous vs. Asynchronous system #14

Open reteprelief opened 8 years ago

reteprelief commented 8 years ago

From Steve Vestal: As long as you're fiddling with this, the committee might discuss whether globally synchronous or globally asynchronous semantics is the more natural default. Is it easier and more natural to declare islands of asynchrony within a globally synchronous system, or easier and more natural to declare islands of synchrony within a globally asynchronous system? For example, the latter would be more natural for the (fairly common) GALS architecture pattern (which is sort of what we did).

reteprelief commented 8 years ago

As to synchronous being the default: V1 was silent on the topic and assumed synchronous behavior. In V2 I introduced the notation of reference time to explicitly specify different time domains. As to changing the default, I will bring this up in the committee.

Here is my take on it: Synchronous is default against an unspecified time domain. As you introduce time domain instances, you may map a subset of the components to those domains.
You may have identified a reference time for only a subset of the system. We can either have a consistency check to tell you where reference time is missing. Or they are part of the default (universal) time domain.

Similarly, when we introduce time drift as property, we will need a reference point to express the drift. Either you identify another user defined time domain, or the default (universal) time domain is the reference point.