Product Line Evolution Using Source Packages

Size: px
Start display at page:

Download "Product Line Evolution Using Source Packages"

Transcription

1 Product Line Evolution Using Source Packages Arie van Deursen Merijn de Jonge CWI P.O. Box 94079, 1090 GB Amsterdam, The Netherlands {arie,mdejonge} Abstract We present a language-independent approach for product line initiation and evolution. Our approach is based on a decomposition of a product line into packages. These packages constitute the build time variation points of the product line. They can be configured, selected, combined, and extended in order to yield tailormade products for individual customers. In order to reduce initial investment involved in product line adoption, we propose an incremental method for designing the product line package structure. At each iteration, we analyze the variability required by the existing and currently anticipated products, and we recover the variability offered by the actual product line implementation, Given these two, we design a target package decomposition offering the required variability, as well as a migration path to arrive at this target from the current product line implementation. The proposed approach is illustrated using a commercial product line in the area of documentation generation for legacy systems. Keywords Variability, feature description, configuration management, customization, distribution, source tree composition. 1 Introduction In this paper, we present a light-weight, language-independent approach for initiating and evolving software product lines. Our techniques cover the full range from product line design, configuration, and validation, to product instantiation. Our approach involves a decomposition of software systems into source packages. These packages and their configuration interfaces first of all constitute the build time variation points of a product line. They can be configured, selected, combined, and extended to form tailor-made products for individual customers. This research was sponsored in part by the Dutch Telematica Instituut, project DSL. 1

2 In addition to that, the packages we propose have a number of attractive software development qualities. To mention a few, they can be independently developed and deployed, they can be subjected to explicit release management making it possible to work with stable, released components, they can be bundled into composite packages, they enforce a uniform configuration and build interface, and they can easily be combined with third-party packages. The actual way in which a product line should be decomposed into such packages, depends on the variability that is required between derived products. Unfortunately, this variability is hard, if not impossible to determine in advance, not in the least because the variability requirements are likely to change over time. Therefore, we propose SIMPLE, 1 an incremental method for product line evolution based on frequent refactorings of the package decomposition. To that end, we split the development of a product line into a series of small iterations. At each iteration, we analyze the variability required by the existing and currently anticipated products, and we recover the variability offered by the actual product line implementation. Given these two, we design a target package decomposition offering the required variability, as well as a migration path to arrive at this target from the current product line implementation. One of the key benefits of our approach is its support for light-weight product line initiation. We can start by developing one or more individual products, and then factor out common elements into separate packages. Moreover, if the existing decomposition turns out to be inadequate for new customers, we have a systematic method for refactoring the package decomposition. As a result, the need to know variability requirements in advance is reduced, thus lowering the investment needed to initiate a software product line. In this paper, we discuss techniques for modeling the feature space of product lines, as well as techniques for expressing and validating configurations. We describe techniques that automatically map configurations to corresponding implementations, including techniques for product assembly from source packages, build time reflection, and customer specializations. Moreover, we describe how to use these mechanisms in order to initiate and evolve a software product line. We illustrate our ideas using our experience with the design, implementation, and deployment of DocGen, a commercial product line in the area of documentation generation for legacy systems (see [4]). 2 Composable Packages A (source) package is a basic development unit which can be separately created, maintained, released, tested, and assigned to a team [5]. We will use a specific notion of package to address product line decomposition and product composition, based on our earlier research on source tree composition [8]. A package is described by a package definition, illustrated in Figure 1. In the example, the packages calls and summary are defined, listing their name, version, source location, and dependencies on other packages. Other entries in a package definition (not shown) cover configuration parameters, keywords, and documentation. 1 SIMPLE is a Simple Incremental Method for Product Line Evolution. 2

3 package name=calls version=1.0 location= requires docgen-base 1.0 html-lib 1.0 package name=summary version=1.0 location= requires docgen-base 1.0 html-lib 1.0 Figure 1: Two package definitions for the DocGen product line A package has explicit build instructions. Using these instructions, the package can be compiled, tested, and distributed. Packages can be composed using a process called source tree composition. This involves merging source trees, build instructions, and configuration processes. The result of this is a software bundle: a single, selfcontained source tree with centralized build and configuration processes. Source tree composition is supported and automated by autobundle. 2 Packages based on source tree composition have a number of desirable qualities, making them a suitable mechanism for decomposing software product lines: Individual packages can be developed, maintained, and released separately; Package dependencies are explicitly documented; Product assembly can be based on package composition, thus making use of stable, versioned components only; Developers can work with a focused source tree, obtained by bundling only those packages actually required; Packages provide a uniform build and configuration view, which can also be used for the smooth integration of third party (commercial) components. Source tree composition is a light-weight technique. The actual implementation of autobundle only relies on automake and autoconf, two standard packages for software building and configuration. The use of packages is independent of the source languages or configuration management tools actually used. Moreover, source tree composition is complementary to other forms of configuration, such as aspectoriented programming [10], code generation (packages relying on this need to invoke the appropriate generators in their build processes) or dynamic configuration. 3 Product Variability The first step in initiating a product line architecture is to analyze the variability of different existing or anticipated software products, a process called domain analysis (see [1] for a recent overview). Thus, we identify what the common features of all products are, what the differentiating features are, and what the dependencies between these 2 autobundle is free software and available for download at mdejonge/ autobundle/ 3

4 Cobol-Docgen : all(cobol-input, Cobol-Presentation) Cobol-Input : all(embedded-languages?, Dialect) Embedded-Languages : more-of(sql, idms, cics,...) Dialect : one-of(standard-85, standard-74, microfocus, digital,...) Cobol-Presentation : more-of(summary, files-used, calls, called-by,...) Figure 2: Example Feature Description variable features are. Moreover, features are classified according to their binding time, distinguishing compile-time, activation time, and runtime variability. In this paper, we will focus on compile-time variability only. To explore the variability of a software product line we use the Feature Description Language FDL discussed by [3], which is based on the feature diagrams of the Feature Oriented Domain Analysis method FODA [9]. An example FDL description for part of the DocGen variability is shown in Figure 2. The atomic features, written in lowercase italics, represent distinctive uservisible characteristics of the individual products [9]. Composite features are written in Uppercase and consist of sub-features that can be atomic or composite. An FDL feature definition indicates dependencies between features, using operators such as all, one-of, and more-of as well as? to denote optional features. The example definition indicates that a DocGen configuration for Cobol should consist of a selection of the expected input language and the required presentations. As an example, the list of features sql standard-85 summary calls called-by is a valid configuration indicating a DocGen product which can generate documentation for Cobol programs containing embedded SQL and written according to the Cobol-85 standard. The documentation derived for these programs consists of a summary, the calls made by each program, and the way in which the program is activated. Feature descriptions are remarkably similar to grammars: atomic features correspond to terminals, composite features to non-terminals, and feature operators to syntax operators. Thus, we can derive a grammar from a feature description, yielding a definition of a configuration language. Each valid sentence in such a language corresponds to a valid product line configuration. We have used this correspondence to obtain tool support for writing feature definitions and product configurations. We implemented an automatic mapping from FDL to the syntax definition formalism SDF. As a result, we could directly reuse existing grammar-based tools to obtain a syntaxdirected configuration editor as well as a validating configuration parser. In addition to that, the derived grammar can be used to obtain a visual configuration wizard, helping product engineers to compose systems from valid feature combinations. 4

5 4 Package-Based Product Assembly This section discusses how an implementation is obtained from a valid configuration, yielding a mapping from the product line s problem space to its solution space [1]. A key challenge in software product line development is to be able to deliver exactly those parts of a product line that correspond to the features of a configuration. For example, we developed many visualizations of customer-specific artifacts. Because the corresponding implementations often contain essential knowledge of a customer s business, it is essential that this code is not delivered to others. Ideally, each feature is therefore implemented in a separate source package. This has several advantages: Customer specific code will not be delivered to others because the implementation of a particular configuration can be exactly selected; Product line instantiation can be based on source tree composition: a product engineer can assemble new products automatically by selecting and configuring the appropriate packages; Feature implementations are loosely coupled permitting independent development and deployment. Some features, however, cannot be implemented in isolation. An example is switching logging on or off, which affects many different implementation components. Such features are called crosscutting. In source packages, they correspond to a configuration switch shared by all packages affected by the crosscutting feature. As an example of automated product assembly, consider Figure 1 which contains two (shortened) package definitions for the DocGen features calls and summary. This definition provides the URL where the implementation of these features can be downloaded. Two additional source packages (docgen-base and html-lib) are shared by both implementations. Using autobundle to combine the calls and summary features yields a new single source tree containing both packages as well as the ones on which they depend. 4.1 Configuration-Aware Product Instances After a source tree is assembled by autobundle, a product instance has to be built from it that behaves according to its configuration. Correct behavior of a product instance requires that all features are contained in the running application, and that they are activated. The exact contents of a product instance is not known at development time because it is configuration-dependent. Also, implementations of optional and alternative features cannot know in advance which sub-features will be selected. Therefore, a dynamic mechanism is needed, that allows the implementation of a composite feature to discover which sub-features are contained in a configuration. This is essential to determine which functionality should be linked in the application, and to be able to access this functionality from within the application. We implemented such a mechanism based on feature registries. A source package that implements an optional, or alternative feature, queries a specific registry 5

6 Table 1: Customer Factories (see [2] for a complete description). Customer factories are an extension of the factory design pattern [6], which provides an interface for creating families of related or dependent objects without specifying their concrete classes. The abstract factory serves to easily create customer-specific objects. However, since each customer requires a separate concrete factory, the overhead for instantiating a new customer is not optimal and may become problematic when the number of customers grows. Customer factories solve this problem by having just one customer factory which uses a customer name to find customer-specific classes. Reflection is then used to create an instance of the appropriate customer-specific class. to obtain the list of those sub-features that have been selected in a configuration. The registry is filled during the build process where each sub-feature registers itself in the registry of its containing feature. The registry can be accessed at run-time to configure an application dynamically, or at build time to generate configuration-specific applications. For example, the exact contents of a Cobol presentation depends on the presentation features that have been selected. Since we support customer specific artifact visualization, the complete list of features is not fixed. It would lead to extra and complicated maintenance effort when the component that implements the composite Cobol-Presentation feature should be adapted when a new (customer-specific) visualization has been developed. Instead, each artifact visualization registers itself as being part of the Cobol presentation. During the build process of the Cobol-Presentation feature, the registry is accessed and a configuration-specific Cobol presentation is generated that contains all desired visualizations. 4.2 Customizing Product Instances Each customer has specific requirements. This may result in customer-specific features which extend the configuration space of the product line and which are implemented in separate packages. However, customer wishes cannot always be implemented this way because they are often concerned with adapting the behavior of already existing features. For example, the artifacts visualized by DocGen require code analysis to retrieve the desired information. It turned out that the extraction is influenced by customerspecific coding conventions. For instance, some of our customers do not call programs directly, but indirectly via an assembly utility. In order to support the calls, and called-by features, the analysis of the call relation had to be adapted to this customer-specific convention. For optimal flexibility, the behavior of existing features should therefore be adaptable according the customer needs. We use customer factories (see Table 1), an object 6

7 oriented approach, to easily deal with such variants and specializations for different customers. This approach requires that customer specific code is put in a separate source code component, and that it is always bundled during source tree composition. New customers can easily be added with this approach. Because the customer factory automatically searches customer Java packages for relevant class specializations, developing additional concrete factories for new customers is not necessary. This approach also makes it easy to turn an existing class into a variation point permitting customer-specific overriding. This requires only a local change to the class, the abstract factory that is used by all customers does not need to be adapted. 5 Restructuring Variability using SIMPLE The previous sections described general techniques for building product lines. In this section we discuss how to use these techniques for incremental product line initiation. To that end, we propose the method SIMPLE, which consists of the following steps: 1. Analyze the required variability of existing and anticipated products. 2. Analyze the actual variability as implemented in the current product line; 3. Restructure the actual variability until it implements the required variability by applying a series of small refactorings. In SIMPLE, these steps are conducted iteratively, for example at every feature added to any product or the product line, but at least at every product and product line release. 5.1 Recovering Product Variability The differences between existing products define the initial configuration space of the product line. To get more fine-grained control over the functionality of a product, new variation points can be introduced to be able to select functionality more explicitly (for example to eliminate undesired commonalities between products). The resulting variability is expressed using FDL, as described in Section 3. These features lead to a target package decomposition, following the principles discussed in Section 4. While analyzing the variability of DocGen, we identified the source languages supported and the presentations required for them as the two main variability categories (see Figure 2). The presentations differ in visualization (logo, color,...) as well as contents (show database dependencies, show call relations, etc.). We proposed more variation points than needed by just the current product set, as we anticipated a new business model requiring a pay-per-feature approach. 5.2 Recovering Implementation Variability Modifying variability is constrained by the current system implementation. The purpose of this step is to understand how each variable feature is implemented and what the configuration options for each feature are. This step involves an analysis of source files, source trees, and the build processes. We distinguish the following cases: 7

8 f1 f2 f3 f4 f1 f2 f3 f4 f1 f2 f3 f4 p1 p2 p3 p4 p1 p2 p3 p4 p1 p2 p3 p4 C F1 C F4 F1 F2 F3 F4 (a) (b) (c) Figure 3: Variability restructuring by incrementally splitting of components from a monolithic source tree that implements individual features. 1. The feature is implemented in a separate focused package already and can be adequately configured (the ideal case); 2. The feature s code is contained in a single package, which also includes code for other features; 3. The feature s code is scattered over multiple packages, but there is no inherent need for this; 4. The feature s code is scattered over multiple packages but this is a consequence of the feature s crosscutting nature. In addition to this, the existing system must be analyzed for required variability that is not yet implemented and for variability currently offered, but not needed anymore in the target architecture. Implementing required variability in separate packages should be planned on the migration path described in Section 5.3. Superfluous features may be costly to maintain, in which case they can be safely eliminated. Finally, variability in the existing system that is still needed, but not yet covered in the configuration space, should be added to the FDL definition of the product line. While analyzing the implementation of DocGen, we discovered that its structure complicated configuring different DocGen products. For instance, customer-specific code was often scattered throughout the DocGen kernel. Such code is hard to maintain and hard to isolate in order to prevent it from being shipped to other customers. Furthermore, DocGen was structured per processing phase (extraction, query, presentation), which makes it difficult to select the features of a single language. 5.3 Restructuring Variability The next step in the SIMPLE method is to migrate from the existing architecture to the target variability. The best way to keep this step manageable is to apply small 8

9 variability refactorings at a time. For this, we need an approach that allows us to conduct the restructuring incrementally. From the variability recovery step, we know which features are implemented and which source packages they are implemented in. Our approach starts by creating package definitions for each implementing source package C i and for each feature f j. Each package definition p j corresponding to a feature f j includes a dependency on the package C i that implements the feature. At this point, we obtained a virtual splitting, making it possible to conduct phantom configurations: a configuration in the problem space maps via package definitions to the initial set of monolithic source packages in the solution space. This is depicted in Figure 3(a), where the monolithic component C implements all features f 1 f 4. Clearly, exact selection of code that implements a configuration is not possible at this point yet. The next step is to move variation points implemented in a monolithic component C i to a feature specific component F j, one at a time. This involves moving the code to a separate component, and dropping the dependency to C i in the feature s package definition p j. This is depicted in Figure 3(b). If other parts of the system need to be explicitly aware of the fact that this feature is chosen, they should be adapted to use the property mechanism described in Section 4.1, to check the availability of feature f j. With this incremental approach, we resolved the problems of DocGen that we discovered during variability recovery as follows. Customer code that was scattered throughout the DocGen core is collected and moved to a customer-specific source package. We use the customer factory pattern discussed earlier to override generic behavior with this customer-specific behavior. Furthermore, DocGen s phase-oriented structure is changed into a language-oriented structure by collecting the implementation of the different phases of a single language and moving this to a separate language-specific source package. We created package definitions for each new source package to enable automatic product assembly. Unfortunately, it is not always possible to factor out the implementation of a feature, because it may be scattered across the implementation of multiple features. The implementation will therefore remain separated over several packages and a configuration switch is added to each of them to activate the crosscutting feature. If the overhead of initiating separate packages for each non-crosscutting feature is too high, one may decide to decrease granularity and to implement several features in a single package. This may be the case for instance, when delivering more functionality than exactly configured is no problem, or when several similar features are so small that separating them makes no sense. Configuration switches are then introduced to activate each individual feature. 6 Evaluation We are using the techniques presented in this paper in practice to refactor the variability of the DocGen product line architecture. We have analyzed existing DocGen products to determine available variability and captured this in a DocGen FDL definition. We 9

10 have also analyzed the implementation of DocGen to discover how the variability was implemented. The analysis of existing products has resulted in a number of recommendations for extra variability (such as the pay-per-feature concept described earlier). The implementation analysis led to suggestions for a restructuring of DocGen to make it languageoriented rather than phase-oriented. With this information available, we implemented a prototype product line for Doc- Gen, which supports all different kinds of variability. The prototype uses all our techniques and demonstrates that our approach is feasible. We are now in the process of defining an iterative migration process to turn the real DocGen into a product line based on our experiences with the prototype. This involves incrementally splitting of the functionality per language and moving all customer specific code to separate customer packages. DocGen is implemented in Java. This is by nature a compositional language because per Java file only one visible (public) class can be defined. This property reduces coupling of features and makes it relatively easy to put the implementation of features in separate source code packages (modular decomposition). Our approach can also be used for less compositional languages (such as C), as demonstrated by the development of a product line for the Linux kernel [7]. In general however, such languages complicate separation of features due to increased internal coupling. Our techniques constitute a framework for assembling and configuring product instances which deals with the build and configuration processes of product lines. Since they do not deal with the implementation of features directly, they can easily be combined with (generative) techniques to adapt the implementation automatically. For instance, aspect oriented programming [10] can be used to deal with crosscutting features by weaving aspects into multiple packages at build time. The techniques that we presented are language independent. Therefore, they put no restrictions on the programming languages used to implement a product line. Customer factories, as we presented them, are the only exception because they were implemented in Java (see Section 4.2). Although this dynamic (runtime) mechanism can completely be replaced by a static (build time) approach (for instance by using aspects), it can also easily be implemented in other languages. 7 Concluding Remarks 7.1 Related Work In [12] an evolutionary process is described in which software components evolve to general reusable software components by separating reusable from specific code and by introducing abstractions for concrete solutions. This is similar to our approach where source packages are split of as soon as customer-specific functionality is considered to be suitable for general use. Feature logic [14] forms a formal foundation for SCM versioning concepts. Feature logic is used to denote sets of components by their features and to describe the 10

11 semantics of SCM operations. We are currently investigating whether the composition and configuration operations that are performed by autobundle can be defined more formally using feature logic. In [13], the build time architectural view is proposed, as an extension of Kruchten s popular 4+1 views model [11]. We are investigating the use of source tree composition to structure the build time architecture of software systems the current paper does so for product line architectures. 7.2 Contributions This paper describes a language independent, light-weight approach for evolutionary software product lines. It covers product line design, product configuration, and product assembly. We discuss the use of the Feature Description Language FDL to explore the variability of a product line. We observed that FDL definitions and grammars are similar and that language technology can be deployed for configuration construction and configuration validation. To that end, we developed a generator that obtains a configuration language from an FDL definition. We propose to implement non-crosscutting features in separate source packages. These provide several development advantages including the ability for parallel development and individual release, improved reuse, and simple integration with third-party software. Features that are crosscutting correspond to global configuration switches. We use package definitions to map features to corresponding implementing source packages. Products are assembled from the packages that correspond to the features in a configuration. This is supported by autobundle which collects all required packages and integrates their source trees, build instructions and configuration processes. We propose feature registries and customer factories as general techniques to activate and access selected features, and to deviate from standard behavior according to customer-specific needs. These techniques can be incrementally incorporated in existing software systems using SIMPLE. SIMPLE provides a systematic way for extending the variability of product lines by refactoring package decomposition. 7.3 Future Work Package-based product assembly is a promising direction in product line research. We are currently further investigating the use of feature descriptions for deriving product configuration tool support. Moreover, we are elaborating the theoretical foundations, via an analysis of the relation with Snelting and Zeller s work on using feature logic for formalizing configuration management [14]. In addition to that, we are further expanding our experience in using the techniques and methods described. In particular, we will continue to use our techniques on the DocGen product line. We invite practioners reading this article to experiment with our tools and ideas, and to contact us to share experiences with us. 11

12 About the Authors Arie van Deursen is at the staff of CWI, the Dutch National Research institute for Mathematics and Computer Science. His research interests include reverse engineering, software architecture, and agile processes. He is program co-chair of WCRE 2002, the IEEE Working Conference on Reverse Engineering. Merijn de Jonge is a PhD student at CWI. His research interests include product lines, generative programming, and language-centered software engineering. He is organizer of the 2002 Workshop on Generative Programming co-located with the International Conference on Software Reuse (ICSR). References [1] K. Czarnecki and U. W. Eisenecker. Generative Programming. Methods, Tools, and Applications. Addison-Wesley, [2] A. van Deursen, M. de Jonge, and T. Kuipers. Feature-based product line instantiation using source-level packages. In Proceedings Second Software Product Line Conference (SPLC2), LNCS. Springer-Verlag, [3] A. van Deursen and P. Klint. Domain-specific language design requires feature descriptions. Journal of Computing and Information Technology, January [4] A. van Deursen and T. Kuipers. Building documentation generators. In Proceedings; IEEE International Conference on Software Maintenance, pages IEEE Computer Society Press, [5] Desmond F. D Souza and Alan C. Wills. Objects, Components and Frameworks with UML: The Catalysis Approach, chapter 7. Object Technology Series. Addison-Wesley, [6] E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, [7] M. de Jonge. The Linux kernel as flexible product-line architecture. Technical Report SEN-R0205, CWI, [8] M. de Jonge. Source tree composition. In Proceedings Seventh International Conference on Software Reuse (ICSR 02), LNCS. Springer-Verlag, To appear. [9] K. Kang, S. Cohen, J. Hess, W. Novak, and A. Peterson. Feature-oriented domain analysis (FODA) feasibility study. Technical Report CMU/SEI-90-TR-21, Software Engineering Institute, Carnegie Mellon University, Pittsburgh, Pennsylvania, november [10] G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Videira Lopes, J.-M Loingtier, and J. Irwin. Aspect-oriented programming. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP), Lecture Notes in Computer Science. Springer-Verlag,

13 [11] P. B. Kruchten. The view model of architecture. IEEE Software, pages 42 50, November [12] D. Roberts and R. Johnson. Evolving frameworks: A pattern language for developing object-oriented frameworks. In Proceedings of Pattern Languages of Programs (PLoP3). Addison-Wesley, September [13] Q. Tu and M. W. Godfrey. The build-time software architecture view. In Proceedings International Conference on Software Maintenance (ICSM 2001). IEEE Computer Society, [14] A. Zeller and G. Snelting. Unified versioning through feature logic. ACM Transactions on Software Engineering and Methodology, 6(4): ,

Feature-Based Product Line Instantiation using Source-Level Packages

Feature-Based Product Line Instantiation using Source-Level Packages Feature-Based Product Line Instantiation using Source-Level Packages Arie van Deursen 1, Merijn de Jonge 1, and Tobias Kuipers 2 1 CWI P.O. Box 94079, 1090 GB Amsterdam, The Netherlands 2 Software Improvement

More information

Generic Modeling using UML extensions for variability

Generic Modeling using UML extensions for variability Generic Modeling using UML extensions for variability Intershop Research Intershop, Jena Matthias Clauß Software Engineering Group Dresden University of Technology M.Clauss@intershop.com September 14,

More information

Using AOP to build complex data centric component frameworks

Using AOP to build complex data centric component frameworks Using AOP to build complex data centric component frameworks Tom Mahieu, Bart Vanhaute, Karel De Vlaminck, Gerda Janssens, Wouter Joosen Katholieke Universiteit Leuven Computer Science Dept. - Distrinet

More information

Timeline Variability. The Variability of Binding Time of Variation Points. Eelco Dolstra Gert Florijn Eelco Visser

Timeline Variability. The Variability of Binding Time of Variation Points. Eelco Dolstra Gert Florijn Eelco Visser Timeline Variability The Variability of Binding Time of Variation Points Eelco Dolstra Gert Florijn Eelco Visser Technical Report UU-CS-2003-052 Institute of Information and Computing Sciences Utrecht

More information

Integrating Domain Specific Modeling into the Production Method of a Software Product Line

Integrating Domain Specific Modeling into the Production Method of a Software Product Line Integrating Domain Specific Modeling into the Production Method of a Software Product Line Gary J. Chastek Software Engineering Institute John D. McGregor Clemson University Introduction This paper describes

More information

Information Hiding and Aspect-Oriented Modeling

Information Hiding and Aspect-Oriented Modeling Information Hiding and Aspect-Oriented Modeling Wisam Al Abed and Jörg Kienzle School of Computer Science, McGill University Montreal, QC H3A2A7, Canada Wisam.Alabed@mail.mcgill.ca, Joerg.Kienzle@mcgill.ca

More information

Martin P. Robillard and Gail C. Murphy. University of British Columbia. November, 1999

Martin P. Robillard and Gail C. Murphy. University of British Columbia. November, 1999 Migrating a Static Analysis Tool to AspectJ TM Martin P. Robillard and Gail C. Murphy Department of Computer Science University of British Columbia 201-2366 Main Mall Vancouver BC Canada V6T 1Z4 fmrobilla,murphyg@cs.ubc.ca

More information

APPLYING OBJECT-ORIENTATION AND ASPECT-ORIENTATION IN TEACHING DOMAIN-SPECIFIC LANGUAGE IMPLEMENTATION *

APPLYING OBJECT-ORIENTATION AND ASPECT-ORIENTATION IN TEACHING DOMAIN-SPECIFIC LANGUAGE IMPLEMENTATION * APPLYING OBJECT-ORIENTATION AND ASPECT-ORIENTATION IN TEACHING DOMAIN-SPECIFIC LANGUAGE IMPLEMENTATION * Xiaoqing Wu, Barrett Bryant and Jeff Gray Department of Computer and Information Sciences The University

More information

Using Aspects to Make Adaptive Object-Models Adaptable

Using Aspects to Make Adaptive Object-Models Adaptable Using Aspects to Make Adaptive Object-Models Adaptable Ayla Dantas 1, Joseph Yoder 2, Paulo Borba 1, Ralph Johnson 2 1 Software Productivity Group Informatics Center Federal University of Pernambuco Recife,

More information

Modeling variability with UML

Modeling variability with UML Modeling variability with UML Matthias Clauß Intershop Research Software Engineering Group Intershop, Jena Dresden University of Technology Matthias.Clauss@gmx.de Keywords: product families, domain modeling,

More information

Using Aspects to Make Adaptive Object-Models Adaptable

Using Aspects to Make Adaptive Object-Models Adaptable Using Aspects to Make Adaptive Object-Models Adaptable Ayla Dantas 1, Joseph Yoder 2, Paulo Borba, and Ralph Johnson 1 Software Productivity Group Informatics Center Federal University of Pernambuco Recife,

More information

Base Architectures for NLP

Base Architectures for NLP Base Architectures for NLP Tom Mahieu, Stefan Raeymaekers et al. Department of Computer Science K.U.Leuven Abstract Our goal is to develop an object-oriented framework for natural language processing (NLP).

More information

MODELLING COMPOSITIONS OF MODULAR EMBEDDED SOFTWARE PRODUCT LINES

MODELLING COMPOSITIONS OF MODULAR EMBEDDED SOFTWARE PRODUCT LINES MODELLING COMPOSITIONS OF MODULAR EMBEDDED SOFTWARE PRODUCT LINES Wolfgang Friess AUDI AG wolfgang.friess@audi.de Julio Sincero University Erlangen-Nuernberg sincero@informatik.uni-erlangen.de Wolfgang

More information

Guiding System Modelers in Multi View Environments: A Domain Engineering Approach

Guiding System Modelers in Multi View Environments: A Domain Engineering Approach Guiding System Modelers in Multi View Environments: A Domain Engineering Approach Arnon Sturm Department of Information Systems Engineering Ben-Gurion University of the Negev, Beer Sheva 84105, Israel

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Lecturer: Raman Ramsin Lecture 20: GoF Design Patterns Creational 1 Software Patterns Software Patterns support reuse of software architecture and design. Patterns capture the static

More information

Feature Descriptions for Context-oriented Programming

Feature Descriptions for Context-oriented Programming Feature Descriptions for Context-oriented Programming Pascal Costanza, Theo D Hondt Programming Technology Lab Vrije Universiteit Brussel, B-1050 Brussels, Belgium (pascal.costanza tjdhondt)@vub.ac.be

More information

Multi-Dimensional Separation of Concerns and IBM Hyper/J

Multi-Dimensional Separation of Concerns and IBM Hyper/J Multi-Dimensional Separation of Concerns and IBM Hyper/J Technical Research Report Barry R. Pekilis Bell Canada Software Reliability Laboratory Electrical and Computer Engineering University of Waterloo

More information

Introduction to Software Engineering

Introduction to Software Engineering Introduction to Software Engineering Gérald Monard Ecole GDR CORREL - April 16, 2013 www.monard.info Bibliography Software Engineering, 9th ed. (I. Sommerville, 2010, Pearson) Conduite de projets informatiques,

More information

A Lightweight Language for Software Product Lines Architecture Description

A Lightweight Language for Software Product Lines Architecture Description A Lightweight Language for Software Product Lines Architecture Description Eduardo Silva, Ana Luisa Medeiros, Everton Cavalcante, Thais Batista DIMAp Department of Informatics and Applied Mathematics UFRN

More information

Design Patterns. Manuel Mastrofini. Systems Engineering and Web Services. University of Rome Tor Vergata June 2011

Design Patterns. Manuel Mastrofini. Systems Engineering and Web Services. University of Rome Tor Vergata June 2011 Design Patterns Lecture 1 Manuel Mastrofini Systems Engineering and Web Services University of Rome Tor Vergata June 2011 Definition A pattern is a reusable solution to a commonly occurring problem within

More information

Software Architecture Recovery based on Dynamic Analysis

Software Architecture Recovery based on Dynamic Analysis Software Architecture Recovery based on Dynamic Analysis Aline Vasconcelos 1,2, Cláudia Werner 1 1 COPPE/UFRJ System Engineering and Computer Science Program P.O. Box 68511 ZIP 21945-970 Rio de Janeiro

More information

JOURNAL OF OBJECT TECHNOLOGY Online at Published by ETH Zurich, Chair of Software Engineering. JOT, 2002

JOURNAL OF OBJECT TECHNOLOGY Online at  Published by ETH Zurich, Chair of Software Engineering. JOT, 2002 JOURNAL OF OBJECT TECHNOLOGY Online at www.jot.fm. Published by ETH Zurich, Chair of Software Engineering. JOT, 2002 Vol. 1, No. 2, July-August 2002 Representing Design Patterns and Frameworks in UML Towards

More information

Dynamic Weaving for Building Reconfigurable Software Systems

Dynamic Weaving for Building Reconfigurable Software Systems Dynamic Weaving for Building Reconfigurable Software Systems FAISAL AKKAWI Akkawi@cs.iit.edu Computer Science Dept. Illinois Institute of Technology Chicago, IL 60616 ATEF BADER abader@lucent.com Lucent

More information

Employing Query Technologies for Crosscutting Concern Comprehension

Employing Query Technologies for Crosscutting Concern Comprehension Employing Query Technologies for Crosscutting Concern Comprehension Marius Marin Accenture The Netherlands Marius.Marin@accenture.com Abstract Common techniques for improving comprehensibility of software

More information

Bugdel: An Aspect-Oriented Debugging System

Bugdel: An Aspect-Oriented Debugging System Bugdel: An Aspect-Oriented Debugging System Yoshiyuki Usui and Shigeru Chiba Dept. of Mathematical and Computing Sciences Tokyo Institute of Technology 2-12-1-W8-50 Ohkayama, Meguro-ku Tokyo 152-8552,

More information

Idioms for Building Software Frameworks in AspectJ

Idioms for Building Software Frameworks in AspectJ Idioms for Building Software Frameworks in AspectJ Stefan Hanenberg 1 and Arno Schmidmeier 2 1 Institute for Computer Science University of Essen, 45117 Essen, Germany shanenbe@cs.uni-essen.de 2 AspectSoft,

More information

An Aspect-Based Approach to Modeling Security Concerns

An Aspect-Based Approach to Modeling Security Concerns An Aspect-Based Approach to Modeling Security Concerns Geri Georg Agilent Laboratories, Agilent Technologies, Fort Collins, USA geri_georg@agilent.com Robert France, Indrakshi Ray Department of Computer

More information

1 Version management tools as a basis for integrating Product Derivation and Software Product Families

1 Version management tools as a basis for integrating Product Derivation and Software Product Families 1 Version management tools as a basis for integrating Product Derivation and Software Product Families Jilles van Gurp, Christian Prehofer Nokia Research Center, Software and Application Technology Lab

More information

HOW AND WHEN TO FLATTEN JAVA CLASSES?

HOW AND WHEN TO FLATTEN JAVA CLASSES? HOW AND WHEN TO FLATTEN JAVA CLASSES? Jehad Al Dallal Department of Information Science, P.O. Box 5969, Safat 13060, Kuwait ABSTRACT Improving modularity and reusability are two key objectives in object-oriented

More information

Deriving design aspects from canonical models

Deriving design aspects from canonical models Deriving design aspects from canonical models Bedir Tekinerdogan & Mehmet Aksit University of Twente Department of Computer Science P.O. Box 217 7500 AE Enschede, The Netherlands e-mail: {bedir aksit}@cs.utwente.nl

More information

Pretty-Printing for Software Reengineering

Pretty-Printing for Software Reengineering Pretty-Printing for Software Reengineering Merijn de Jonge CWI P.O. Box 94079, 1090 GB Amsterdam, The Netherlands Merijn.de.Jonge@cwi.nl Abstract Automatic software reengineerings change or repair existing

More information

Implementing Software Connectors through First-Class Methods

Implementing Software Connectors through First-Class Methods Implementing Software Connectors through First-Class Methods Cheoljoo Jeong and Sangduck Lee Computer & Software Technology Laboratory Electronics and Telecommunications Research Institute Taejon, 305-350,

More information

... is a Programming Environment (PE)?... is Generic Language Technology (GLT)?

... is a Programming Environment (PE)?... is Generic Language Technology (GLT)? Introduction to Generic Language Technology Today Mark van den Brand Paul Klint Jurgen Vinju Tools for software analysis and manipulation Programming language independent (parametric) The story is from

More information

Keywords: Abstract Factory, Singleton, Factory Method, Prototype, Builder, Composite, Flyweight, Decorator.

Keywords: Abstract Factory, Singleton, Factory Method, Prototype, Builder, Composite, Flyweight, Decorator. Comparative Study In Utilization Of Creational And Structural Design Patterns In Solving Design Problems K.Wseem Abrar M.Tech., Student, Dept. of CSE, Amina Institute of Technology, Shamirpet, Hyderabad

More information

SERG. Spoofax: An Extensible, Interactive Development Environment for Program Transformation with Stratego/XT

SERG. Spoofax: An Extensible, Interactive Development Environment for Program Transformation with Stratego/XT Delft University of Technology Software Engineering Research Group Technical Report Series Spoofax: An Extensible, Interactive Development Environment for Program Transformation with Stratego/XT Karl Trygve

More information

Control-Flow-Graph-Based Aspect Mining

Control-Flow-Graph-Based Aspect Mining Control-Flow-Graph-Based Aspect Mining Jens Krinke FernUniversität in Hagen, Germany krinke@acm.org Silvia Breu NASA Ames Research Center, USA silvia.breu@gmail.com Abstract Aspect mining tries to identify

More information

Spoofax: An Extensible, Interactive Development Environment for Program Transformation with Stratego/XT

Spoofax: An Extensible, Interactive Development Environment for Program Transformation with Stratego/XT Spoofax: An Extensible, Interactive Development Environment for Program Transformation with Stratego/XT Karl Trygve Kalleberg 1 Department of Informatics, University of Bergen, P.O. Box 7800, N-5020 BERGEN,

More information

UML4COP: UML-based DSML for Context-Aware Systems

UML4COP: UML-based DSML for Context-Aware Systems UML4COP: UML-based DSML for Context-Aware Systems Naoyasu Ubayashi Kyushu University ubayashi@acm.org Yasutaka Kamei Kyushu University kamei@ait.kyushu-u.ac.jp Abstract Context-awareness plays an important

More information

ArchFeature: A Modeling Environment Integrating Features into Product Line Architecture

ArchFeature: A Modeling Environment Integrating Features into Product Line Architecture ArchFeature: A Modeling Environment Integrating Features into Product Line Architecture Gharib Gharibi and Yongjie Zheng School of Computing and Engineering, University of Missouri-Kansas City, Kansas

More information

AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz

AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz Results obtained by researchers in the aspect-oriented programming are promoting the aim to export these ideas to whole software development

More information

Feature-Oriented Domain Analysis (FODA) Feasibility Study

Feature-Oriented Domain Analysis (FODA) Feasibility Study Feature-Oriented Domain Analysis (FODA) Feasibility Study Kyo C. Kang, Sholom G. Cohen, James A. Hess, William E. Novak, A. Spencer Peterson November 1990 Quick recap of DE terms Application: A system

More information

SERG. Sort-based Refactoring of Crosscutting Concerns to Aspects

SERG. Sort-based Refactoring of Crosscutting Concerns to Aspects Delft University of Technology Software Engineering Research Group Technical Report Series Sort-based Refactoring of Crosscutting Concerns to Aspects Robin van der Rijst, Marius Marin, and Arie van Deursen

More information

Developing Web-Based Applications Using Model Driven Architecture and Domain Specific Languages

Developing Web-Based Applications Using Model Driven Architecture and Domain Specific Languages Proceedings of the 8 th International Conference on Applied Informatics Eger, Hungary, January 27 30, 2010. Vol. 2. pp. 287 293. Developing Web-Based Applications Using Model Driven Architecture and Domain

More information

Usually software system variants, developed by Clone-and-own approach, form

Usually software system variants, developed by Clone-and-own approach, form ABSTRACT Usually software system variants, developed by Clone-and-own approach, form a starting point for building Software Product Line. To migrate software systems which are deemed similar to a product

More information

A Type Graph Model for Java Programs

A Type Graph Model for Java Programs A Type Graph Model for Java Programs Arend Rensink and Eduardo Zambon Formal Methods and Tools Group, EWI-INF, University of Twente PO Box 217, 7500 AE, Enschede, The Netherlands {rensink,zambon}@cs.utwente.nl

More information

Incremental development A.Y. 2018/2019

Incremental development A.Y. 2018/2019 Incremental development A.Y. 2018/2019 Incremental development Interleaves the activities of specification, development, and validation. The system is developed as a series of versions (increments), with

More information

Spemmet - A Tool for Modeling Software Processes with SPEM

Spemmet - A Tool for Modeling Software Processes with SPEM Spemmet - A Tool for Modeling Software Processes with SPEM Tuomas Mäkilä tuomas.makila@it.utu.fi Antero Järvi antero.jarvi@it.utu.fi Abstract: The software development process has many unique attributes

More information

Domain-Driven Development with Ontologies and Aspects

Domain-Driven Development with Ontologies and Aspects Domain-Driven Development with Ontologies and Aspects Submitted for Domain-Specific Modeling workshop at OOPSLA 2005 Latest version of this paper can be downloaded from http://phruby.com Pavel Hruby Microsoft

More information

Configuration Management for Component-based Systems

Configuration Management for Component-based Systems Configuration Management for Component-based Systems Magnus Larsson Ivica Crnkovic Development and Research Department of Computer Science ABB Automation Products AB Mälardalen University 721 59 Västerås,

More information

Software Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D.

Software Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D. Software Design Patterns Jonathan I. Maletic, Ph.D. Department of Computer Science Kent State University J. Maletic 1 Background 1 Search for recurring successful designs emergent designs from practice

More information

Respecting Component Architecture to Migrate Product Copies to a Software Product Line

Respecting Component Architecture to Migrate Product Copies to a Software Product Line Respecting Component Architecture to Migrate Product Copies to a Software Product Line Benjamin Klatt FZI Research Center for Information Technology Haid-und-Neu-Str. 10-14 76131 Karlsruhe, Germany klatt@fzi.de

More information

Characteristics of Runtime Program Evolution

Characteristics of Runtime Program Evolution Characteristics of Runtime Program Evolution Mario Pukall and Martin Kuhlemann School of Computer Science, University of Magdeburg, Germany {pukall, kuhlemann}@iti.cs.uni-magdeburg.de Abstract. Applying

More information

extrinsic members RoleB RoleA

extrinsic members RoleB RoleA ASPECT- ORIENTED PROGRAMMING FOR ROLE MODELS Elizabeth A. Kendall Department of Computer Science, Royal Melbourne Institute of Technology GPO Box 2476V, Melbourne, VIC 3001, AUSTRALIA email: kendall@rmit.edu.au

More information

How to make a bridge between transformation and analysis technologies?

How to make a bridge between transformation and analysis technologies? How to make a bridge between transformation and analysis technologies? J.R. Cordy and J.J. Vinju July 19, 2005 1 Introduction At the Dagstuhl seminar on Transformation Techniques in Software Engineering

More information

Dynamic Instantiation-Checking Components

Dynamic Instantiation-Checking Components Dynamic Instantiation-Checking Components Nigamanth Sridhar Electrical and Computer Engineering Cleveland State University 318 Stilwell Hall, 2121 Euclid Ave Cleveland OH 44113 n.sridhar1@csuohio.edu ABSTRACT

More information

Pattern Transformation for Two-Dimensional Separation of Concerns

Pattern Transformation for Two-Dimensional Separation of Concerns Transformation for Two-Dimensional Separation of Concerns Xiaoqing Wu, Barrett R. Bryant and Jeff Gray Department of Computer and Information Sciences The University of Alabama at Birmingham Birmingham,

More information

STRUCTURING CRITERIA FOR THE DESIGN OF COMPONENT-BASED REAL-TIME SYSTEMS

STRUCTURING CRITERIA FOR THE DESIGN OF COMPONENT-BASED REAL-TIME SYSTEMS STRUCTURING CRITERIA FOR THE DESIGN OF COMPONENT-BASED REAL-TIME SYSTEMS Aleksandra Tešanović and Jörgen Hansson Department of Computer Science, Linköping University, Sweden {alete,jorha}@ida.liu.se ABSTRACT

More information

1 Software Architecture

1 Software Architecture Some buzzwords and acronyms for today Software architecture Design pattern Separation of concerns Single responsibility principle Keep it simple, stupid (KISS) Don t repeat yourself (DRY) Don t talk to

More information

VICCI. DeltaEcore. A Model-Based Delta Language Generation Framework. Christoph Seidl Ina Schaefer Uwe Aßmann

VICCI. DeltaEcore. A Model-Based Delta Language Generation Framework. Christoph Seidl Ina Schaefer Uwe Aßmann VICCI Visual and Interactive Cyber-Physical Systems Control and Integration DeltaEcore A Model-Based Delta Language Generation Framework Christoph Seidl Ina Schaefer Uwe Aßmann TurtleBot Driver: A Software

More information

Domain-Specific Languages versus Object-Oriented Frameworks: A Financial Engineering Case Study. 1 Introduction. A. van Deursen

Domain-Specific Languages versus Object-Oriented Frameworks: A Financial Engineering Case Study. 1 Introduction. A. van Deursen A. van Deursen Domain-Specific Languages versus Object-Oriented Frameworks: A Financial Engineering Case Study Abstract The use of a domain-specific language can help to develop readable and maintainable

More information

UC Irvine UC Irvine Previously Published Works

UC Irvine UC Irvine Previously Published Works UC Irvine UC Irvine Previously Published Works Title Differencing and merging within an evolving product line architecture Permalink https://escholarship.org/uc/item/0k73r951 Authors Chen, Ping H Critchlow,

More information

Utilizing a Common Language as a Generative Software Reuse Tool

Utilizing a Common Language as a Generative Software Reuse Tool Utilizing a Common Language as a Generative Software Reuse Tool Chris Henry and Stanislaw Jarzabek Department of Computer Science School of Computing, National University of Singapore 3 Science Drive,

More information

Dimensions for the Separation of Concerns in Describing Software Development Processes

Dimensions for the Separation of Concerns in Describing Software Development Processes Dimensions for the Separation of Concerns in Describing Software Development Processes Pavel Hruby Navision Software Frydenlunds Allé 6 DK-2950 Vedbæk, Denmark ph@navision.com http://www.navision.com,

More information

Dynamic Adaptability of Services in Enterprise JavaBeans Architecture

Dynamic Adaptability of Services in Enterprise JavaBeans Architecture 1. Introduction Dynamic Adaptability of Services in Enterprise JavaBeans Architecture Zahi Jarir *, Pierre-Charles David **, Thomas Ledoux ** zahijarir@ucam.ac.ma, {pcdavid, ledoux}@emn.fr (*) Faculté

More information

Tracing Software Product Line Variability From Problem to Solution Space

Tracing Software Product Line Variability From Problem to Solution Space Tracing Software Product Line Variability From Problem to Solution KATHRIN BERG, JUDITH BISHOP University of Pretoria and DIRK MUTHIG Fraunhofer IESE The management of variability plays an important role

More information

Black-Box Program Specialization

Black-Box Program Specialization Published in Technical Report 17/99, Department of Software Engineering and Computer Science, University of Karlskrona/Ronneby: Proceedings of WCOP 99 Black-Box Program Specialization Ulrik Pagh Schultz

More information

Review Software Engineering October, 7, Adrian Iftene

Review Software Engineering October, 7, Adrian Iftene Review Software Engineering October, 7, 2013 Adrian Iftene adiftene@info.uaic.ro Software engineering Basics Definition Development models Development activities Requirement analysis Modeling (UML Diagrams)

More information

Software Language Engineering of Architectural Viewpoints

Software Language Engineering of Architectural Viewpoints Software Language Engineering of Architectural Viewpoints Elif Demirli and Bedir Tekinerdogan Department of Computer Engineering, Bilkent University, Ankara 06800, Turkey {demirli,bedir}@cs.bilkent.edu.tr

More information

Application Architectures, Design Patterns

Application Architectures, Design Patterns Application Architectures, Design Patterns Martin Ledvinka martin.ledvinka@fel.cvut.cz Winter Term 2017 Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Application Architectures, Design Patterns Winter Term

More information

Sort-based Refactoring of Crosscutting Concerns to Aspects

Sort-based Refactoring of Crosscutting Concerns to Aspects Sort-based Refactoring of Crosscutting Concerns to Aspects Robin van der Rijst Delft University of Technology rvdrijst@gmail.com Marius Marin Accenture Marius.Marin@accenture.com Arie van Deursen Delft

More information

Open Reuse of Component Designs in OPM/Web

Open Reuse of Component Designs in OPM/Web Open Reuse of Component Designs in OPM/Web Iris Reinhartz-Berger Technion - Israel Institute of Technology ieiris@tx.technion.ac.il Dov Dori Technion - Israel Institute of Technology dori@ie.technion.ac.il

More information

Modeling, Testing and Executing Reo Connectors with the. Reo, Eclipse Coordination Tools

Modeling, Testing and Executing Reo Connectors with the. Reo, Eclipse Coordination Tools Replace this file with prentcsmacro.sty for your meeting, or with entcsmacro.sty for your meeting. Both can be found at the ENTCS Macro Home Page. Modeling, Testing and Executing Reo Connectors with the

More information

Software Factory on top of Eclipse: SmartTools

Software Factory on top of Eclipse: SmartTools Software Factory on top of Eclipse: SmartTools Agnès Duchamp 1, Shouhéla Farouk Hassam 1, Stephanie Mevel 1 and Didier Parigot 2, 1 Ecole PolyTech Nice Sophia 930, Route des Collles, PB 145 F-06903 Sophia-Antipolis

More information

Perspectives on User Story Based Visual Transformations

Perspectives on User Story Based Visual Transformations Perspectives on User Story Based Visual Transformations Yves Wautelet 1, Samedi Heng 2, and Manuel Kolp 2 1 KU Leuven, Belgium yves.wautelet@kuleuven.be, 2 LouRIM, Université catholique de Louvain, Belgium

More information

Aspect-Orientation from Design to Code

Aspect-Orientation from Design to Code Aspect-Orientation from Design to Code Iris Groher Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich, Germany groher@informatik.tu-darmstadt.de Thomas Baumgarth Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739

More information

Analyzing the Product Line Adequacy of Existing Components

Analyzing the Product Line Adequacy of Existing Components Analyzing the Product Line Adequacy of Existing Components Jens Knodel and Dirk Muthig Fraunhofer Institute for Experimental Software Engineering (IESE), Fraunhofer-Platz 1, D-67663 Kaiserslautern, Germany

More information

MODULARITY is a prerequisite for component technology

MODULARITY is a prerequisite for component technology 588 IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VOL. 31, NO. 7, JULY 2005 Build-Level Components Merijn de Jonge Abstract Reuse between software systems is often not optimal. An important reason is that

More information

Scenario-Based Prediction of Run-time Resource Consumption in Component-Based Software Systems

Scenario-Based Prediction of Run-time Resource Consumption in Component-Based Software Systems Scenario-Based Prediction of Run-time Resource Consumption in Component-Based Software Systems Merijn de Jonge M.de.Jonge@tue.nl Johan Muskens J.Muskens@tue.nl Michel Chaudron M.R.V.Chaudron@tue.nl Department

More information

Visualization of Clone Detection Results

Visualization of Clone Detection Results Visualization of Clone Detection Results Robert Tairas and Jeff Gray Department of Computer and Information Sciences University of Alabama at Birmingham Birmingham, AL 5294-1170 1-205-94-221 {tairasr,

More information

Capturing and Formalizing SAF Availability Management Framework Configuration Requirements

Capturing and Formalizing SAF Availability Management Framework Configuration Requirements Capturing and Formalizing SAF Availability Management Framework Configuration Requirements A. Gherbi, P. Salehi, F. Khendek and A. Hamou-Lhadj Electrical and Computer Engineering, Concordia University,

More information

Example Concerns (I) Example Concerns (II) Characteristics. Composition Risks. Isolating Crosscutting Concerns in Embedded Systems.

Example Concerns (I) Example Concerns (II) Characteristics. Composition Risks. Isolating Crosscutting Concerns in Embedded Systems. Isolating Crosscutting s in Embedded Systems Arie van Deursen Example s (I) a) Every public function should check its parameters before using them.... b) Every public function should trace itself just

More information

A Mechanism for Runtime Evolution of Objects

A Mechanism for Runtime Evolution of Objects A Mechanism for Runtime Evolution of Objects Yasuhiro Sugiyama Department of Computer Science Nihon University Koriyama, Japan sugiyama@ce.nihon-u.ac.jp 1. Runtime Version Management of Objects for Software

More information

INTRODUCING A MULTIVIEW SOFTWARE ARCHITECTURE PROCESS BY EXAMPLE Ahmad K heir 1, Hala Naja 1 and Mourad Oussalah 2

INTRODUCING A MULTIVIEW SOFTWARE ARCHITECTURE PROCESS BY EXAMPLE Ahmad K heir 1, Hala Naja 1 and Mourad Oussalah 2 INTRODUCING A MULTIVIEW SOFTWARE ARCHITECTURE PROCESS BY EXAMPLE Ahmad K heir 1, Hala Naja 1 and Mourad Oussalah 2 1 Faculty of Sciences, Lebanese University 2 LINA Laboratory, University of Nantes ABSTRACT:

More information

Complex Event Processing with Event Modules

Complex Event Processing with Event Modules Complex Event Processing with Event Modules Somayeh Malakuti Technical University of Dresden Germany somayeh.malakuti@tu-dresden.de ABSTRACT To effectively cope with the complexity of event processing

More information

Utilization of UML diagrams in designing an events extraction system

Utilization of UML diagrams in designing an events extraction system DESIGN STUDIES Utilization of UML diagrams in designing an events extraction system MIHAI AVORNICULUI Babes-Bolyai University, Department of Computer Science, Cluj-Napoca, Romania mavornicului@yahoo.com

More information

ASPECTIX: A QUALITY-AWARE, OBJECT-BASED MIDDLEWARE ARCHITECTURE

ASPECTIX: A QUALITY-AWARE, OBJECT-BASED MIDDLEWARE ARCHITECTURE ASPECTIX: A QUALITY-AWARE, OBJECT-BASED MIDDLEWARE ARCHITECTURE Franz J. Hauck, Ulrich Becker, Martin Geier, Erich Meier, Uwe Rastofer, Martin Steckermeier Informatik 4, University of Erlangen-Nürnberg,

More information

The Koala Component Model for Consumer Electronics Software by: Ommering, Linden, Kramer, Magee. Presented by: Bridget Flaherty.

The Koala Component Model for Consumer Electronics Software by: Ommering, Linden, Kramer, Magee. Presented by: Bridget Flaherty. The Koala Component Model for Consumer Electronics Software by: Ommering, Linden, Kramer, Magee Presented by: Bridget Flaherty Koala Overview Motivation The Koala Model Handling Diversity Coping with Evolution

More information

UML Specification and Correction of Object-Oriented Anti-patterns

UML Specification and Correction of Object-Oriented Anti-patterns UML Specification and Correction of Object-Oriented Anti-patterns Maria Teresa Llano and Rob Pooley School of Mathematical and Computer Sciences Heriot-Watt University Edinburgh, United Kingdom {mtl4,rjpooley}@hwacuk

More information

Extracting and Evolving Mobile Games Product Lines

Extracting and Evolving Mobile Games Product Lines Extracting and Evolving Mobile Games Product Lines Vander Alves, Pedro Matos Jr., Leonardo Cole, Paulo Borba, and Geber Ramalho Informatics Center, Federal University of Pernambuco P.O. Box 7851-50.732-970

More information

A Meta-Model for Composition Techniques in Object-Oriented Software Development

A Meta-Model for Composition Techniques in Object-Oriented Software Development A Meta-Model for Composition Techniques in Object-Oriented Software Development Bedir Tekinerdogan Department of Computer Science University of Twente P.O. Box 217, 7500 AE Enschede, The Netherlands E-Mail:

More information

Evolution of XML Applications

Evolution of XML Applications Evolution of XML Applications University of Technology Sydney, Australia Irena Mlynkova 9.11. 2011 XML and Web Engineering Research Group Department of Software Engineering Faculty of Mathematics and Physics

More information

An Expert System for Design Patterns Recognition

An Expert System for Design Patterns Recognition IJCSNS International Journal of Computer Science and Network Security, VOL.17 No.1, January 2017 93 An Expert System for Design Patterns Recognition Omar AlSheikSalem 1 and Hazem Qattous 2 1 Department

More information

c Copyright 2004, Vinicius Cardoso Garcia, Eduardo Kessler Piveta, Daniel Lucrédio, Alexandre Alvaro, Eduardo Santana de Almeida, Antonio Francisco

c Copyright 2004, Vinicius Cardoso Garcia, Eduardo Kessler Piveta, Daniel Lucrédio, Alexandre Alvaro, Eduardo Santana de Almeida, Antonio Francisco c Copyright 2004, Vinicius Cardoso Garcia, Eduardo Kessler Piveta, Daniel Lucrédio, Alexandre Alvaro, Eduardo Santana de Almeida, Antonio Francisco do Prado, Luiz Carlos Zancanella. Permission is granted

More information

Reuse Contracts As Component Interface. Descriptions. Koen De Hondt, Carine Lucas, and Patrick Steyaert. Programming Technology Lab

Reuse Contracts As Component Interface. Descriptions. Koen De Hondt, Carine Lucas, and Patrick Steyaert. Programming Technology Lab Reuse Contracts As Component Interface Descriptions Koen De Hondt, Carine Lucas, and Patrick Steyaert Programming Technology Lab Computer Science Department Vrije Universiteit Brussel Pleinlaan 2, B-1050

More information

Integrating decision management with UML modeling concepts and tools

Integrating decision management with UML modeling concepts and tools Downloaded from orbit.dtu.dk on: Dec 17, 2017 Integrating decision management with UML modeling concepts and tools Könemann, Patrick Published in: Joint Working IEEE/IFIP Conference on Software Architecture,

More information

Domain-Specific Languages for Digital Forensics

Domain-Specific Languages for Digital Forensics Domain-Specific Languages for Digital Forensics Jeroen van den Bos Centrum Wiskunde & Informatica Nederlands Forensisch Instituut jeroen@infuse.org Abstract. Due to strict deadlines, custom requirements

More information

Advanced Object Oriented PHP

Advanced Object Oriented PHP CNM STEMulus Center Web Development with PHP November 11, 2015 1/17 Outline 1 2 Diamond Problem Composing vs Inheriting Case Study: Strategy Design Pattern 2/17 Definition is when a class is based on another

More information

Towards a formal model of object-oriented hyperslices

Towards a formal model of object-oriented hyperslices Towards a formal model of object-oriented hyperslices Torsten Nelson, Donald Cowan, Paulo Alencar Computer Systems Group, University of Waterloo {torsten,dcowan,alencar}@csg.uwaterloo.ca Abstract This

More information

Towards Compositional Domain Specific Languages

Towards Compositional Domain Specific Languages Andreas Horst, Bernhard Rumpe Software Engineering RWTH Aachen University, Germany http://www.se-rwth.de/ 1 Introduction The deployment of Domain Specific Languages (DSL) and in particular Domain Specific

More information

UML Aspect Specification Using Role Models

UML Aspect Specification Using Role Models UML Aspect Specification Using Role Models Geri Georg Agilent Laboratories, Agilent Technologies, Fort Collins, USA geri_georg@agilent.com Robert France Department of Computer Science, Colorado State University

More information