osate / osate2

Open Source AADL2 Tool Environment
http://osate.org
Eclipse Public License 2.0
39 stars 8 forks source link

Invalid ConnectionInstance property value #171

Closed alnayeem closed 11 years ago

alnayeem commented 11 years ago

Hi,

I am experiencing a problem with the ConnectionInstance properties. It seems to have broken recently. The connection instance only takes the value of the first connection segment. Even if I override the default property in a later segment, the value is not updated for the connection instance.

For example, in the following code, it appears that if you do not declare the "timing" property in process p.i, the connection instance gives a value "sampled" whereas it should have been "immediate" because of the property defined in pp.i.

Related issue: 158

Best, Abdullah

package connectiontiming public

-- in this example we assign two different property values to connection declarations -- that are part of the same connection instance. So it is ambiguous which value holds. thread t features outp: out event port; end t;

thread tt features inp: in event port; end tt;

process p features outp: out event port; end p;

process implementation p.i subcomponents t1: THREAD T;

connections c1: port t1.outp -> outp; end p.i;

process implementation pp.i subcomponents t2: THREAD tt;

connections c2: port inp -> t2.inp { timing => immediate;}; end pp.i;

process pp features inp: in event port; end pp;

system s end s;

system implementation s.i subcomponents p1: process p.i; p2: process pp.i; connections cc: port p1.outp -> p2.inp ; end s.i;

end connectiontiming ;

juli1 commented 11 years ago

Hello,

Should be fixed in last commit. Please confirm or close this bug otherwise.

Thanks,

alnayeem commented 11 years ago

Unfortunately, it has not been solved. Can you please check again?

FYI: This is the last commit I have used to test this aadl.

From Git History:

commit 3847f51134c9720dbd38a0fce3cd5c2597ed69ec Author: Julien Delange julien@gunnm.org 2013-02-05 17:46:41 Committer: Julien Delange julien@gunnm.org 2013-02-05 17:46:41 Parent: 5d37c9112193c975bb1c49df3510669423884c86 (Fix metamodel for solving bug 167 relates #167) Branches: develop, origin/develop

juli1 commented 11 years ago

Hello,

It seems that the property is not defined in all the connection references. You have to define the property on all connection reference and add the property to c1 and cc in your model. Can you try to define it and let me know if that works ?

alnayeem commented 11 years ago

There are two problems here.

i. I do not need to modify the default value for all connection references. It currently works whenever the first connection reference defines the property. But that's not how we used to define properties for connections. It used to work whenever someone updates the default value for one of the connection references (and obviously, without giving any inconsistent value). I found that it was broken in one of the commits in last two weeks. I currently work on an older commit: # b72a27d0795bca3583f70f13ec6be3044fcaf070 (14 days ago by Peter).

ii. In the instance model, even when I define for all connection references, the value is shown only in the "AADL property value view". In the instance model, it does not explicitly show the "property association" under the connection instance, unlike any property association on any other component. (Say, one has defined the "Dispatch_Protocol" for one of the thread. The property association is defined under the thread instance.).

Hope this helps.

juli1 commented 11 years ago

Hi,

This is normal that you do not see the property in the instance view. You can see it by just having a call to the getConnection() on the reference. For the first issue, this is normal since the behavior before was not consistent and we change OSATE in that context.

Hope that helps,

alnayeem commented 11 years ago

Hi,

I thought the previous approach was more convenient. For example, if I want to define a connection property (e.g. latency) at a higher level system component, the system component must know the detail structure of lower-level process, thread group components and their connection references.

On Wed, Feb 6, 2013 at 11:40 AM, Julien notifications@github.com wrote:

Hi,

This is normal that you do not see the property in the instance view. You can see it by just having a call to the getConnection() on the reference. For the first issue, this is normal since the behavior before was not consistent and we change OSATE in that context.

Hope that helps,

— Reply to this email directly or view it on GitHubhttps://github.com/osate/osate2-core/issues/171#issuecomment-13191147.

Abdullah Al-Nayeem Ph.D. Student Department of Computer Science University of Illinois at Urbana-Champaign (UIUC) Email: aalnaye2@illinois.edu

juli1 commented 11 years ago

In that case, this is a different issue and is not a bug but likely a feature request. If you want to discuss that, please open a separate ticket and motivate the need with an example and reference to the standard. I consider this one as closed.

Best,

alnayeem commented 11 years ago

Unfortunately, the problem is still not solved fully. There is another bug. I am submitting a different issue.

I will later on submit a feature request. I think it is much complicated to define the property for all connection references.

On Wed, Feb 6, 2013 at 1:14 PM, Julien notifications@github.com wrote:

In that case, this is a different issue and is not a bug but likely a feature request. If you want to discuss that, please open a separate ticket and motivate the need with an example and reference to the standard. I consider this one as closed.

Best,

— Reply to this email directly or view it on GitHubhttps://github.com/osate/osate2-core/issues/171#issuecomment-13196389.

Abdullah Al-Nayeem Ph.D. Student Department of Computer Science University of Illinois at Urbana-Champaign (UIUC) Email: aalnaye2@illinois.edu