Consistent Extra-Functional Properties Tagging for Component and Connector Models Shahar Maoz1 , Jan Oliver Ringert1 , Bernhard Rumpe2,3 , and Michael von Wenckstern2 1 School of Computer Science, Tel Aviv University, Israel http://www.cs.tau.ac.il 2 Software Engineering, RWTH Aachen University, Germany http://www.se-rwth.de 3 Fraunhofer FIT, Aachen, Germany http://www.fit.fraunhofer.de Abstract—We present a model-driven approach for adding evolution [2], and deployment [25]. The second contribution extra-functional properties to component and connector (C&C) of this paper is a framework for defining rich consistency models. The approach is based on a tagging mechanism that rules for tagged EFP values in the context of C&C allows non-invasive extensions of existing languages and their models, here C&C models, with attributes for extra-functional models. Our consistency rules are specific to an EFP and C&C properties. Importantly, our language extension provides means element and consist of selection, aggregation, and comparison for integrated formal analyses of the consistency of tagged values. operators. Rules select relevant C&C model elements, aggre- Consistency ranges from type-safety and units of quantitative gate their EFP values, and compare them to determine the measures to complex dependencies across component hierarchies consistency of the checked element’s EFP value. as well as between component definitions and their instances. We provide a framework for defining and checking rich consistency We implemented our ideas within MontiCore [13] for the rules of extra-functional property values based on selection, C&C architecture description language MontiArc [11]. aggregation, and comparison operators. Our work allows for The next section presents our running example. Sect. III independent definition and organization of tagged properties presents necessary background. The two main contributions, to support reuse across models and development stages. The our tagging language and our consistency framework, are pre- approach is implemented within the MontiCore framework for the C&C architecture description language MontiArc. sented in Sect. IV and Sect. V. We present the implementation and a discussion in Sect. VI, related work in Sect. VII, and a I. I NTRODUCTION conclusion in Sect. VIII. Component and connector (C&C) models are used in many application domains of software engineering, from cyber- II. RUNNING E XAMPLE physical and embedded systems to web services and enter- As running example we use an excerpt of a wind turbine ex- prise applications. Their structure consists of components at ample adapted from [25], [28], as shown in Fig. 1 and Lst. 1. different containment levels, their typed interaction points, The turbine controller (component type TurbineCtrl) con- and connectors between them [17]. In addition to expressing tains two brake controllers (component type BrakeCtrl) to functional properties, also extra-functional properties (EFPs) compute force on the turbine and merge the calculated result play an important role in successful development of C&C with brake commands from the main controller MainCtrl. models [10], [24]–[26]. Typical examples of EFPs include A team of engineers developing the controller deals with worst-case-execution-time, memory and power consumption, various EFPs including the traceability of component im- security properties, and traceability [1], [21], [23]. plementations to the requirements catalog and the power We are interested in consistent definition of EFPs for C&C consumption of components. The component BrakeCtrl models, commonly expressed in C&C architecture description is a safety relevant component and thus requires traceability languages (C&C ADLs) [17]. Previous works in this direction for safety audits. This extra-functional property is added to have extended the meta-models of languages or defined special the component type definition. As a requirement the power language profiles for adding EFPs to ADLs [4], [26]. These consumption of TurbineCtrl is limited to 4W . extension mechanisms are typically invasive to the language The team created an implementation of component type definition and thus impede extensibility. One approach for BrakeCtrl that consumes power of 1W and is traceable. In extending modeling languages without modifying their meta- an attempt to improve safety and provide different instances model are tagging languages [9]. The first contribution of for subcomponents brCoA and brCoB, the team uses an this paper is a tagging language for non-invasive extension existing implementation that consumes 2010mW . The chief of C&C models with EFPs. This new language supports the architect decides to update the power consumption defined for tagging of C&C elements in component definitions as well as type BrakeCtrl to the new value of 2010mW . in their instances. A team member is unsure whether these updates are enough The consistency of EFP values is crucial throughout the and the C&C model is consistent with respect to its EFPs. She life-cycle of a system. Consistency checks of EFPs have been is right to doubt consistency: on the component type level investigated for various development steps of C&C models, the power consumption of TurbineCtrl (4W ) is smaller e.g., property definition [26], refinement and subtyping [14], than two times the power consumption of BrakeCtrl component type • Ports is a disjoint union of input and output ports where MA extra-functional each port p ∈ Ports has a name, a type type(p) ∈ Types, TurbineCtrl power=4W turbineCtrl instance name properties and belongs to exactly one component p ∈ ports(cmp), • Cons is a set of directed connectors con ∈ Cons, each BrakeCtrl traceable, power=2010mW MainCtrl brCoA traceable, power=1W of which connects two ports con.src, con.tgt ∈ Ports of the same type, which belong to two sibling components main or to a parent component and one of its immediate Merger ForceCalc me subcomponents, and foCa • Types is a finite set of type names. C&C models from Def. 1 are well-formed iff no component BrakeCtrl traceable, power=2010mW is its own (transitive) subcomponent and has at most one direct brCoB power=2010mW parent and subcomponents are connected legally (see [15] and [22] for complete definitions). PitchReg piRe Merger While some formalisms directly express C&C models, e.g., ForceCalc me foCa [12], [29], others provide component and connector type definitions and their instantiation to define C&C models, e.g., [5], [11]. We use excerpts of component type definitions of Fig. 1. Excerpt of slightly modified wind turbine example from [25], [28]. the ADL MontiArc in Def. 2. Definition 2 (Component Type Definition): A compo- 1 component TurbineCtrl { 2 ports in AngularVelocity omega, nent type definition is a structure ct = hcType, CPorts, 3 in Velocity windSpeed, CSubs, CConsi ∈ CTDefs where 4 out Byte[] controlSignals; • cType uniquely identifies the component type, 5 component MainCtrl main; • CPorts is a set of input and output port definitions where 6 component PitchReg piRe; 7 component BrakeCtrl brCoA, brCoB; each port p ∈ CPorts has a name and a type, 8 connect brCoA.brakeControl -> parkController. • CSubs ⊂ N ame × CTDefs is a set of named subcom- brakeControlA; ponent declarations, and 9 ... • CCons is a set of directed connector definitions con ∈ 10 } CCons, each of which connects two port definitions Listing 1. Definition of TurbineCtrl from Fig. 1 in MontiArc. con.src, con.tgt of the same type, which belong to two sibling subcomponent declarations or to a component (2010mW )1 . In addition, the component instance brCoB is type definition and one of its subcomponent declarations. not traceable despite what its type BrakeCtrl dictates. A component type t ∈ CTDefs is instantiated to a C&C Our solution allows the engineers to add the described model by creating a component for c with subcomponents, properties to the C&C model and component type definitions that are instances of t.CSubs with connectors according and to check their consistency. to t.CCons. For a more detailed definition including well- III. P RELIMINARIES formedness rules and instantiation see [22]. We start off with background on C&C models, extra- B. Extra-Functional Properties functional properties, and tagging languages. Extra-functional properties are attributes of a system or A. Component and Connector Models subsystem that do not directly describe functionality. Various Component and connector models describe components, definitions of extra-functional properties exist [1], [8], [21], their points of interaction, and their hierarchical composition. [23], [30]. Typical examples of extra-functional properties We repeat a definition of C&C models as, e.g., given in include worst-case-execution-time, memory consumption, se- [15], in Def. 1, which represents the essence of component curity properties, usability, maintenance, interoperability, testa- models [17] as formalized by ADLs ACME [7], AADL [5], bility, understandability, modifiability, reusability, correctness, and MontiArc [11], or used in the tools AutoFOCUS [12] and flexibility and also legal, economic, or cultural constraints [1], Simulink [29]. [21], [23]. Extra-functional properties can be quantitative, e.g., Definition 1 (Component and Connector model [15]): A memory consumption, or qualitative, e.g., a security level or a C&C model is a structure cncm = hCmps, Ports, Cons, Boolean property indicating whether software is portable [20]. Types, subs, ports, typei where In this paper we focus on quantitative properties with • Cmps is a set of named components, cmp ∈ Cmps has a clear mathematical semantics such as power consumption, set of ports ports(cmp) ⊆ Ports and a (possibly empty) traceability, or modes of encryption. set of immediate subcomponents subs(cmp) ⊂ Cmps, C. Tagging Language 1 Note, the described instantiation with (1W for brCoA) could be consistent Greifenberg et al. [9] presented a mechanism to derive (depending on the other subcomponents), but the component types are not! tagging languages for domain specific modeling languages. 1 tagschema EmbeddedTagSchema { The mechanism uses two languages: the tag model, which 2 tagtype traceable for ComponentInstance, decorates the domain specific model with additional informa- ComponentDefinition; tion, and the tag schema, which defines the tag types that are 3 tagtype power: Power for ComponentInstance, ComponentDefinition; // power consumption used in the tag model. 4 tagtype encryption: [AES, RSA, DES, 3-DES]+ Defining a tagging language based on this mechanism has for PortDefinition; // list of values the following advantages: (1) The model will be kept clean 5 tagtype encryption: [AES, RSA, DES, 3-DES] for PortInstance; // one value and, therefore, easy to read, not polluted with extra infor- 6 tagtype reliability: Number for mation; (2) Inherent separation of concerns [3], as different ConnectorInstance; people can decorate the domain specific model with their 7 } own separated tagging models; and (3) The tagging language Listing 2. Definition of example schema EmbeddedTagSchema for references the elements by their concrete syntax as they are tagging C&C models and type definitions. defined in the domain specific model. 1 conforms to EmbeddedTagSchema; 2 tags Example1 { IV. C&C TAGGING L ANGUAGE 3 tag BrakeCtrl with traceable; 4 tag TurbineCtrl with power = 4W; This section presents our first contribution, namely, the C&C 5 tag BrakeCtrl with power = 2010 mW; tagging language, which allows one to add extra-functional 6 tag MainCtrl.pitchBrake with encryption = [AES , RSA]; properties (encryption, ASIL level, traceability, memory usage, 7 tag BrakeCtrl.pitchBrake with encryption = [ power consumption, latency, etc.) from different domains (se- DES, 3-DES]; curity, safety, runtime, etc.) to existing C&C models, without 8 } changing them. Our tagging language enables tagging of all Listing 3. Tag model for tagging concrete EFPs values to component C&C elements from Def.s 1 and 2: type definitions 1 conforms to EmbeddedTagSchema; 1) component definitions CTDefs, e.g., BrakeCtrl, and 2 tags Example2 for turbineCtrl { instances Cmps, e.g. brCoA; 3 tag brCoA with traceable; 2) port definitions CPorts, e.g., BrakeCtrl.pitch- 4 tag brCoA with power = 1 W; Brake, and port instances Ports; and 5 tag brCoB with power = 2010 mW; 6 tag main.pitchBrake, brCoA.pitchBrake with 3) connector definitions CCons, e.g., brCoA.brake- encryption = AES; Control -> parkController.brakeContolA, 7 tag brCoB.pitchBrake with DES; and connector instances Cons. 8 tag brCoA.brakeControl -> parkController. brakeControlA with reliability = 0.8; 9 } A. Tag Schema Definitions Listing 4. Tag model for tagging concrete EFPs values to component The tag schema defines the types of the tags used to decorate instances C&C models. One may view tag schemes as meta-models. Similar to Greifenberg et al. [9], we have the following tag set (+ sign in L. 4) containing one or more values of the types: (1) simple tags, when one only cares whether a C&C enumeration defined inside square brackets; whereas, in con- element is or is not tagged with this information, similar to trast, tags for port instances contain exactly one enumeration Java’s marker interface; (2) valued tags, decorating a C&C value. This is due to the fact that a defined port can support element with a tag containing a value, such as Boolean, multiple encryption modes, whereas a concrete port instance Number, String, enumeration value or a JScience2 quantity en-/decrypts its data using one concrete algorithm. (e.g. Power or DataAmount); and (3) complex tags to B. Tag Model Definitions store several values, such as estimated worst-case-execution time [26] wcet = {time=800ms, confidence=50%}. After the tag schema is defined, C&C elements can be Since complex tags consist of several simple or valued tags, tagged with it. Listings 3 and 4 tag C&C element definitions the rest of this paper handles only the simple and value tags. (Example1) and instances (Example2). Tag models have a The EmbeddedTagSchema in Lst. 2 defines a tag schema header and body (e.g., Lst. 3, ll. 1-2 and ll. 3-8), containing for C&C models used in an embedded context. It contains one additional information which is added to the C&C elements. simple tag traceable, which can be applied for compo- Every header starts with conforms to followed by the nent instances and definitions, and three valued tags power, tag schema name to which the tag model definition conforms encryption, and reliability. All defined tags start to. The header also includes the tags keyword and the tag with tagtype, have a name, and end with for plus the model’s name (e.g., Example1). Additionally, the header C&C element to which the tag type can be applied; the valued may contain an optional list of C&C elements (a comma tag types have after the name additionally a colon followed separated list of names after the for keyword) to address by a data type. The data type of a valued tag can depend these C&C elements’ children directly in the body. on the element decorated with it. This is the case for the A body is a container for several tag definitions starting encryption tag, where port definitions are tagged with a with a tag keyword and ending with a semicolon. Each tag definition has at least one C&C element name and one tag 2 see http://jscience.org/api/javax/measure/quantity/Quantity.html type name separated by the with keyword (e.g., Lst. 3, l. 3). Valued tag types must additionally include the tag type’s value, Third, the rule defines how to aggregate tagged values over the preceded by an equals sign (e.g., Lst. 3, l. 4). Multiple values selected elements. Finally, the aggregated value is compared to are assigned by using a comma separated list inside square the value of the checked element, to determine its consistency. brackets (e.g., Lst. 3, l. 6). We summarize the structure of consistency rules in Def. 3 Line 3 in Lst. 3 adds the traceable tag to the compo- Definition 3 (EFP Value Consistency Rule): A consistency nent instance turbineCtrl.brCoA, because the context is rule is a structure consisting of: turbineCtrl3 (l. 1). Line 8 in Lst. 4 shows that the domain checks name of tag and element checked by rule; expert decorating C&C elements needs no knowledge about selection selects relevant C&C elements to check consistency; the C&C meta-model and directly uses the concrete syntax of aggregation aggregates values of selected elements; and the C&C model (e.g., Lst. 1, l. 8). comparison compares values to decide consistency. V. C ONSISTENCY OF E XTRA -F UNCTIONAL -P ROPERTIES The next two subsections illustrate consistency definition rules according to Def. 3. Sect. V-B1 presents example rules We now present the second contribution of our paper, for the consistency of EFP values in the context of component namely, a framework for the definition of rich consistency rules type instantiation. Sect. V-B2 presents example rules in the for tagged extra-functional property values. context of composition. We distinguish between the consistency of EFP tags with 1) Instantiation Consistency Examples: Instantiation con- their tag schema and the more interesting consistency of sistency checks whether the EFPs of C&C model instances tagged EFP values in the context of the C&C model. Our conform to the EFPs of their type definitions. To simplify the rules for checking the consistency of tags and their schema are definition of rules, we employ a general operator typeOf : independent of the specific semantics of the respective EFP. Cmps → CTDefs, which given a component instance returns In contrast, the consistency rules for values in the context of its uniquely determined component type. the C&C model are very specific to the expressed EFP. Rule 1 (InstTrace): If the component type definition is A. Consistency of Tags and Tag Schema traceable, all instances have to be traceable: The following rules check for consistency of tags and their • checks: tag traceable of c ∈ Cmps tagging schema: • selection: t := typeOf (c) ∈ CTDefs 1) tag type names are unique per C&C model element kind • aggregation: v := t.traceable 2) tagged C&C elements exist uniquely and are of the kind • comparison: v ⇒ c.traceable defined in the schema In our example, component type BrakeCtrl is tagged as 3) every C&C element is tagged at most once per tag type traceable in Lst. 3, l. 3. while component instance brCoB 4) the tag value is of the data type defined in the schema is not tagged as traceable. It will thus be reported by 5) the unit of the tag is compatible with the unit in the Rule 1 as inconsistent. schema, e.g., W and mW but not W and s Rule 2 (InstPower): The power consumption of an instance 6) for complex tags the above applies to every value. is at most the power consumption of its type: Note that rule 3 does not allow to tag a C&C element twice • checks: tag power of c ∈ Cmps for the same EFP. While one could define strategies to resolve • selection: t := typeOf (c) ∈ CTDefs possible inconsistencies, e.g., considering maximal or minimal • aggregation: v := c.power values, we added this rule to avoid inconsistencies. • comparison: v ≤ t.power B. Consistency of Tags and C&C Models In our example, both component instances of type BrakeCtrl pass the check of Rule 2 with 1W ≤ 2010mW In addition to the consistency of tags with their tag schema, for brCoA and 2010mW ≤ 2010mW for brCoB (see Lst. 3, the consistency of a tagged EFP value may also depend on l. 5 and Lst. 4, ll. 4-5). its context in the C&C model. More advanced examples of Rule 3 (InstEncryption): The encryption of a port instance consistency relate to component instantiation and composition must be in the encryption set of the port definition: in C&C models. It is important to note that the consistency of • checks: tag encryption of p ∈ Ports a tagged EFP value may depend on multiple other C&C model 4 5 • selection: pt := THE pt ∈ typeOf (p.parent ).CPorts : elements and their relation. In addition, consistency may be pt.name = p.name very specific to the EFP type, e.g., allowing subsets of values • aggregation: v := pt.encryption or defining their bounds. • comparison: p.encryption ∈ v To address the challenge of ensuring consistency of tagged EFP values, we define a general framework based on consis- In our example, the port instances main.pitchBrake tency rules. First, each rule defines what tag of which kind and brCoB.pitchBrake pass Rule 1, while port in- of C&C model element it checks. Second, the rule specifies stance brCoA.pitchBrake violates Rule 3: AES ∈ / v = how to select relevant C&C model elements for the check. {DES, 3-DES} (see Lst. 4, l. 6 and Lst. 3, l. 7). 3 turbineCtrl 4 Definite description operator THE x : P (x) returns x satisfying P (x). is the top-level instance of the component type TurbineCtrl defined in Lst. 1 5 The parent of a port is the component it belongs to. 2) Composition Consistency Examples: Composition con- of C&C model definitions and instantiations for readabil- sistency checks whether the EFPs of C&C model elements are ity purposes, it is not possible to tag chains of instances consistent across their composition. The following example (e.g., turbineCtrl.brCoA.brakeControl) differently rules address consistency on the type level. Similar rules can as both of them are represented by the same AST node; the ST be defined on the instance level. solves this problem by providing separate symbols for C&C Rule 4 (CompPower): The combined power consumption of definitions and for all C&C instances; and (3) Contrary to the all subcomponents is at most the power consumption of the AST, the ST is a graph with additional references making composed component: it possible to easily navigate through it and execute more • checks: tag power of c ∈ CTDefs complex selections as needed for consistency checks, e.g., in • selection: S := c.CSubs Rule 5. P • aggregation: v := ct.power B. Discussion (name,ct)∈S • comparison: v ≤ c.power The ST’s resolving mechanism – containing bidirectional In our example, the component type TurbineCtrl con- navigation together with symbol filtering and adaption – as tains subcomponents brCoA and brCoB of type BrakeCtrl well as the ability to add several different EFP tags to the same and v = 2010mW + 2010mW + . . . 6≤ 4W , i.e., the tagged C&C element symbol, allows to check constraints between value of 4W violates Rule 4 and is thus inconsistent. different EFPs, such as time vs. data amount. We consider Rule 5 (CompEncryption): A receiver port must support at this to be a nice property of our work. least one encryption of its sender ports. Regarding composition, the complex tag is a composition of tags (which can be complex themselves). This way, it is • checks: tag encryption of p ∈ CPorts possible to logically group EFPs (e.g., power consumption and • selection: P := {p0 | ∃con ∈ CCons : (p0 = con.src ∧ confidence) as is suggested by Shaw [27] and implemented by p = con.tgt)} T Sentilles et al. [26]. • aggregation: v := p.encryption p0 ∈P It is important to note that extra-functional properties may • comparison: v ∩ p.encryption 6= ∅ evolve, together with knowledge about a system [2], [14], [18]. In our example, the port BrakeCtrl.pitchBrake sup- They may also depend on the viewpoint of stakeholders [4], ports encryption DES and 3-DES (Lst. 3, l. 7), and is a which can be solved by tagging the extra-functional tags again receiving port for MainCtrl.pitchBrake with encryption with the stakeholders name. Since it is possible to tag elements AES and RSA (Lst. 3, l. 6). Rule 5 will report port Brake- or tags several times, one tag can be tagged by different Ctrl.pitchBrake as inconsistent. stakeholders. Since all the tags (including tags of tags) are The above examples of Rule 1 to Rule 5 show the ex- stored in the same ST, consistency constraints can also be pressiveness of consistency rules of our framework that cover expressed between tags of tags with the same concepts shown various EFPs and C&C element relations. in Sect. V. For simplicity, in this paper we did not discuss the tagging of one element multiple times. Rather than multiple VI. I MPLEMENTATION AND D ISCUSSION tagging, we consider organizing ownership by using separate tag models. Meta-model approaches cannot easily do it but it A. Implementation is natural in our approach. We implemented the tagging language together with its EFP Note that depending on the EFP type and its composition consistency checks in MontiArc [11], a textual C&C modeling and instantiation semantics, the consistency of composition framework. The workflow of processing MontiArc models is on the type level and the consistency of instantiation, do not as follows: (1) The parser converts the textual input model guarantee consistency of instance composition. Our presented to an abstract syntax tree (AST); (2) The AST is traversed port encryption semantics in Rule 3 and Rule 5 still allow for to store all model definitions as symbols in the symbol table inconsistent instance compositions. We believe that a unified (ST); (3) Based on the AST and the model definition symbols, framework, as the one we have presented, is a first step towards all C&C instances’ symbols are created by (a) resolving the reasoning about EFP consistency. component extension chains, (b) binding all generics, and (c) recursively instantiating all subcomponent hierarchies. VII. R ELATED W ORK Although the MontiArc tagging language is based on the Espinoza et al. [4] annotate UML/MARTE models with same concepts and concrete syntax as the one presented in quantitative EFPs. One of their main goals is to distinguish Greifenberg et al. [9], our approach adds tags to the ST sources of EFPs, e.g., requirement vs. measurement during while their method enriches the AST directly. Decorating test. This could be done with complex tags containing the the ST has the following advantages: (1) The ST represents actual value and the value source. the semantic model [6], [19], and, thus, in contrast to the Grunske [10] presents an evaluation framework for EFPs AST (see ArcConnector and ArcSimpleConnector consisting of four elements: usage profile, evaluation model, in [11]), each C&C element in Def. 1 and Def. 2 is represented composition algorithm, and evaluation algorithm. We focus on by exactly one symbol; (2) Since MontiArc’s AST is a mixture solutions for the composition and evaluation parts. Sentilles et al. [26] present a meta-model for integrating [4] H. Espinoza, H. Dubois, S. Gérard, J. L. M. Pasaje, D. C. Petriu, non-functional properties into C&C models. Their model and C. M. Woodside. Annotating UML models with non-functional allows to specify multiple values per attribute with validity properties for quantitative analysis. In MoDELS Int. Workshops, pages conditions, dependencies, and version information. Since our 79–90, 2005. [5] P. H. Feiler and D. P. Gluch. Model-Based Engineering with AADL: models are all text-based, external version control mechanisms An Introduction to the SAE Architecture Analysis & Design Language. such as Git or SVN can handle EFP’s history. All the other Addison-Wesley, 2012. information, e.g., validity condition or dependencies, can be [6] M. Fowler. Domain-Specific Languages. Addison-Wesley, 2010. [7] D. Garlan, R. T. Monroe, and D. Wile. Acme: An architecture expressed via complex tags. Finally, the complete information description interchange language. In CASCON, pages 169–183, 1997. tagging is available in the symbol table for consistency checks. [8] M. Glinz. On non-functional requirements. In RE, pages 21–26, 2007. Leveque et al. [14] present a way to express refinement [9] T. Greifenberg, M. Look, S. Roidl, and B. Rumpe. Engineering Tagging of attribute values for instances and subtypes of components. Languages for DSLs. In MoDELS, pages 34–43, 2015. [10] L. Grunske. Early quality prediction of component-based systems - A Similar rules can be defined in our framework. For MontiArc, generic framework. Journal of Systems and Software, 80(5):678–686, one can formulate EFP consistency constraints for refinements 2007. of port types (Java-like inheritance and generics) as well as for [11] A. Haber, J. O. Ringert, and B. Rumpe. MontiArc - Architectural Mod- refinements of components (inheritance of component types). eling of Interactive Distributed and Cyber-Physical Systems. Technical Report AIB-2012-03, RWTH Aachen, february 2012. Cicchetti et al. [2] introduce a framework for evolution of [12] F. Huber, B. Schätz, A. Schmidt, and K. Spies. Autofocus: A tool for EFP values and present, as an example, how the change of the distributed systems specification. In FTRTFT, pages 467–470, 1996. worst-case-execution time (WCET) of a component requires [13] H. Krahn, B. Rumpe, and S. Völkel. Monticore: a framework for com- positional development of domain specific languages. In International updating the WCET of its parent component. It is possible to Journal on Software Tools for Technology Transfer (STTT), volume 12, extend our framework to support similar evolution scenarios. pages 353 – 372, 2010. Sapienza et al. [25] motivate the benefit of composing EFPs [14] T. Leveque and S. Sentilles. Refining extra-functional property values in hierarchical component models. In CBSE, pages 83–92, 2011. of components in embedded system design. They present a [15] S. Maoz, J. O. Ringert, and B. Rumpe. Synthesis of component and general classification of property composability and provide connector models from crosscutting structural views. In FSE, pages many examples. In their terminology, our rules for consistency 444–454. ACM, 2013. of composed components compute non-emergent, directly [16] S. Maoz, J. O. Ringert, and B. Rumpe. Verifying component and connector models against crosscutting structural views. In ICSE, pages composable properties. Additional types of composition identi- 95–105. ACM, 2014. fied by Sapienza et al. [25] require further information beyond [17] N. Medvidovic and R. Taylor. A Classification and Comparison the tagging language and C&C model. Framework for Software Architecture Description Languages. IEEE Transactions on Software Engineering, 2000. VIII. C ONCLUSION [18] T. Mens, J. Magee, and B. Rumpe. Evolving software architecture descriptions of critical systems. IEEE Computer, 43(5):42–48, 2010. We presented a mechanism to enrich existing C&C models [19] P. Mir Seyed Nazari, A. Roth, and B. Rumpe. An Extended Symbol with consistent extra-functional properties. The strengths of Table Infrastructure to Manage the Composition of Output-Specific Generator Information. In Modellierung 2016 Conference, 2016. our approach are: (1) All EFPs are stored in separate files to [20] OMG. UML Profile for MARTE: Modeling and Analysis of Real-Time avoid model pollution, (2) The tag schema is used to validate Embedded Systems, 2011. tag models to avoid tagging mistakes (typos, wrong units, [21] A. Rawashdeh and B. Matalkah. A new software quality model for wrong C&C element, etc.), (3) EFP-specific consistency rules evaluating COTS components. Journal of Computer Science, 2(4):373– 381, 2006. between tagged C&C elements (C&C definitions as well as [22] J. O. Ringert. Analysis and Synthesis of Interactive Component and C&C instantiations) can be defined and verified. Connector Systems. Aachener Informatik-Berichte, Software Engineer- We illustrated the two main contributions, our tagging ing, Band 19. Shaker Verlag, 2014. language and consistency rule framework, using several ex- [23] G. C. Roman. A taxonomy of current issues in requirements engineering. Computer, 18(4):14–23, April 1985. amples. The examples cover many scenarios of consistency [24] M. Saadatmand, A. Cicchetti, and M. Sjödin. UML-based modeling of defined also in related work. non-functional requirements in telecommunication systems. In 6th Int. As future work we consider the application of extra- Conf. on Software Engineering Advances (ICSEA), 2011. [25] G. Sapienza, S. Sentilles, I. Crnkovic, and T. Seceleanu. Extra-functional functional property tags to C&C views, with corresponding properties composability for embedded systems partitioning. In CBSE, verification between views and models, extending [16]. 2016. [26] S. Sentilles, P. Stepan, J. Carlson, and I. Crnkovic. Integration of extra- Acknowledgements Part of this work was done while Shahar Maoz was on sabbatical functional properties in component models. In CBSE, 2009. as visiting scientist at MIT CSAIL. This research was supported by a Grant from the [27] M. Shaw. Truth vs. knowledge: the difference between what a compo- GIF, the German-Israeli Foundation for Scientific Research and Development. nent does and what we know it does. In 8th Int. Wrksp. on Software Specification and Design, pages 181–185. IEEE, 1996. R EFERENCES [28] J. Suryadevara, G. Sapienza, C. C. Seceleanu, T. Seceleanu, S. E. [1] J. P. Cavano and J. A. McCall. A framework for the measurement of Ellevseth, and P. Pettersson. Wind turbine system: An industrial case software quality. SIGSOFT Softw. Eng. Notes, 3(5):133–139, Jan. 1978. study in formal modeling and verification. In FTSCS, pages 229–245, [2] A. Cicchetti, F. Ciccozzi, T. Leveque, and S. Sentilles. Evolution man- 2013. agement of extra-functional properties in component-based embedded [29] MathWorks Simulink. http://www.mathworks.com/products/simulink/. systems. In CBSE, pages 93–102, 2011. [30] S. Zschaler. Formal specification of non-functional properties of [3] E. W. Dijkstra. A discipline of programming, volume 1. prentice-hall component-based software systems. Software and System Modeling, Englewood Cliffs, 1976. 9(2):161–201, 2010.