[aadl]: Osate2 / AADL private packages

Arne Haber haber at se-rwth.de
Tue Mar 24 13:00:13 EDT 2015


2015-03-24 14:29 GMT+01:00 Peter Feiler <phf at sei.cmu.edu>:

>  Classifiers in the private part of a package cannot be used in the
> public part as classifiers of a component implementation subcomponent.
>
Why not?


>  Instead you define the component implementation in both the public and
> the private part of the package.
>
> In the public part you specify the fact that it exists as a variant of the
> component type, possibly with properties specific to that variant. You do
> not include the subcomponent declarations (internal blue print).
>
>
>
> In the private part of the package you repeat the component implementation
> declaration. It inherits the information from the public part and you add
> the “blue print” part, i.e., subcomponents and connections.
>
>
>
My intention was to define a public component type + implementation which
can be used within other packages. The component implementation is given by
subcomponents which instantiate component types/implementations that are
defined in the private part of the package. In this way, these private
types/implementations cannot be instantiated in another package.

If I understand you correctly, I am not able to use the private component
implementation with the added "blue print" parts from another package, am I?

Best regards
  Arne

>  Peter
>
>
>
> *From:* sae-aadl-users-bounces+phf=sei.cmu.edu at lists.sei.cmu.edu [mailto:
> sae-aadl-users-bounces+phf=sei.cmu.edu at lists.sei.cmu.edu] *On Behalf Of *Arne
> Haber
> *Sent:* Tuesday, March 24, 2015 3:33 AM
> *To:* sae-aadl-users at lists.sei.cmu.edu
> *Subject:* [aadl]: Osate2 / AADL private packages
>
>
>
> Hi all,
>
> I have a question regarding private packages in AADL resp. Osate2.
>
> According to [FGH06], are "declarations in the private segment
> [...] visible only within the package". Thus, I assume, that component
> types and implementations which are declared within the private segment of
> the package, can be instantiated as subcomponents in a system component
> implementation in the public segment. I modeled the following example in
> Osate2:
>
>
> package innerComponents
>
>   public
>     system OuterComp
>     end OuterComp;
>
>     system implementation OuterComp.OuterCompImpl
>       subcomponents
>         innerC: abstract InnerComp;
>     end OuterComp.OuterCompImpl;
>
>   private
>
>     abstract InnerComp
>     end InnerComp;
>
> end innerComponents;
>
> However, I get the following error:
> "Couldn't resolve reference to AbstractSubcomponentType 'InnerComp'."
>
> Is this a) the expected behavior of private packages, or is it b) a bug in
> Osate2?
>
> If a), what is the purpose of private packages if I cannot use the private
> declarations anywhere except in the private segment?
>
> Best regards
>
>   Arne Haber
>
>
>
> [FGH06] Peter Feiler, David Gluch, and John Hudak. The Architecture
> Analysis & Design
> Language (AADL): An Introduction. Technical Report Technical Note CMU/SEI-
> 2006-TN-011, Software Engineering Institute, Carnegie Mellon University,
> Pitts-
> burgh, Pennsylvania, February 2006.
>
> --
>
> -----------------------------------------------------------------
> Dipl.-Wirt.-Inf. Arne Haber              |   Software Engineering
> Lehrstuhl für Software Engineering       | RWTH Aachen University
> Ahornstr. 55, 52074 Aachen, Germany      |  http://www.se-rwth.de
> Phone ++49 241 80-21308 / Fax -22218     |
>



-- 
-----------------------------------------------------------------
Dipl.-Wirt.-Inf. Arne Haber              |   Software Engineering
Lehrstuhl für Software Engineering       | RWTH Aachen University
Ahornstr. 55, 52074 Aachen, Germany      |  http://www.se-rwth.de
Phone ++49 241 80-21308 / Fax -22218     |
-------------- next part --------------
HTML attachment scrubbed and removed


More information about the Sae-aadl-users mailing list