Presentation is loading. Please wait.

Presentation is loading. Please wait.

R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Analyzing the Product Line Adequacy of Existing Components Jens Knodel

Similar presentations


Presentation on theme: "R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Analyzing the Product Line Adequacy of Existing Components Jens Knodel"— Presentation transcript:

1 R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Analyzing the Product Line Adequacy of Existing Components Jens Knodel knodel@iese.fraunhofer.de knodel@iese.fraunhofer.de Dirk Muthig muthig@iese.fraunhofer.de muthig@iese.fraunhofer.de

2 Slide 1 R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Analyzing the Product Line Adequacy of Existing Components Outline Subject Component Architecture Development Reverse Engineering Discussion

3 Slide 2 R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Analyzing the Product Line Adequacy of Existing Components Context Large organization migrating towards product line engineering -Application of PuLSE  Scoping  Architecting  Component engineering Product line architecture -Family of car multimedia systems -Automotive domain -Two major parts  Panel: mainly used for user interaction  Back-end system: mainly used for computation, network functionality, and external media

4 Slide 3 R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Analyzing the Product Line Adequacy of Existing Components Motivation Components as part of product line architectures -Explicitly developed for systematic reuse -Support the scope of variability required -Flexible towards the anticipated changes Existing components -Do they achieve sufficient product line adequacy?  Injection the required variability support  Resolution potential architectural mismatches  Improvement of the internal quality Decision conflict of product line architects -Reuse and adaptation of existing component -Construction of new components from scratch  Application of reverse engineering to analyze the product line adequacy of the existing components

5 Slide 4 R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Analyzing the Product Line Adequacy of Existing Components Subject Component Subject: Graphics component -Key component of the panel -Responsibilities  User interface visualization based on predefined masks  Composition of masks  Interaction between back-end and panel  Graphical elements -Static information -Dynamic sequence control -Main architectural driver: minimization of the data flow between the two parts -Written in C++, approximately 180 KLOC

6 Slide 5 R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Analyzing the Product Line Adequacy of Existing Components Approach

7 Slide 6 R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Analyzing the Product Line Adequacy of Existing Components PuLSE-DSSA Product Line Software Engineering – Domain-Specific Software Architecture -Scenario-based development in iterations that explicitly addresses the stakeholders’ needs -Incremental development, which successively prioritizes requirements and realizes them -Direct integration of reengineering activities into the development process on demand -View-based documentation -Main loop steps  Planning  Realization  Documentation  Assessment

8 Slide 7 R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Analyzing the Product Line Adequacy of Existing Components ADORE Architecture- and Domain-Oriented Reengineering -Reverse engineering  Identification of components  Assessment of their adequacy  Initiated product line architecture needs -Reuse Decision  Reuse of existing component  Development of a new product line component from scratch -Renovation  Necessary renovation and extension activities  Adaptation of the component for its product line use

9 Slide 8 R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Analyzing the Product Line Adequacy of Existing Components Reverse Engineering Techniques Concerns -Static architecture evaluations.  Was the component implemented accordingly to its documentation, how consistent is the documentation and can it integrated seamlessly into the product line architecture? -Variability analysis  To which degree contains the subject component already existing variability?  Is it possible to relate these code-level variations to higher levels? -Source code analysis  What are maintenance and evolution risks of the current implementation? -Code comments  Have the algorithms and implementation decisions made so far been documented?

10 Slide 9 R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Analyzing the Product Line Adequacy of Existing Components Static Architecture Evaluation Consistency of the component to its documentation Component engineering models -Decomposition into three internal layers -Mapping of layers to the source code files High degree of consistency -Layer-1 uses Layer-2, grey arrow, cardinality 1149 -Violations:  Layer-2 to Layer-1 (blue arrow, cardinality 2) -Absence  Layer-2 to Layer-3  the layer was only realized in stubs, was still under development Detailed analysis of layers internals -Pointers for improvement

11 Slide 10 R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Analyzing the Product Line Adequacy of Existing Components Variability Analysis Variants in the source code -Conditional compilation with macros -Optional or variable code parts or alternative implementations with preprocessor commands #if, #ifdef, etc.) -Resolution by the preprocessor Variability analysis -To which extent the macros and compile switches realize variability with respect to the product map -Explicit documentation of variability identified -Derivation of decision models Advanced variability management: frame processors -Frames contain both source code and frame-specific code providing adaptation (frame commands) -Frames can be arranged in hierarchies -Resolution at compile time by the frame processor, an advanced preprocessor -Tool-supported conversion of macros into frames -Adding a new variant involves only the creation of the respective frames

12 Slide 11 R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Analyzing the Product Line Adequacy of Existing Components Clone Detection Code clone is a code fragment that occurs in more than one place -Master and clone: produced by copy and paste (sometimes containing minor modifications) -Threat to the evolution of a system or a component  Increased total code size  Higher effort for maintenance (when there is the need for a change, all duplicates have to be addressed)  Reduced code readability  Increased risk because an error can be propagated to several places in the source code Clone detection -Based on text pattern matching -Internal clones (duplicated code lines found in a single file) -External clones (clones found in different files) -Number of code clones with a size greater than 20 lines

13 Slide 12 R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Analyzing the Product Line Adequacy of Existing Components Metric Hotspots Source code metrics -Learn about potentially problematic areas -Measurement of coupling, size and complexity metrics -Analysis of the outliers, unanticipated values, problematic areas and hotspots Significant outliers for the following metrics: -cyclomatic complexity (for methods and class averages) -CBO (coupling between object classes) -NOC (number of derived children) -Function size in terms of LOC (lines of code) Code reviews -Error-proneness -Risks of unwanted side effects -Difficult to understand -Avoidance of potential maintenance problems

14 Slide 13 R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Analyzing the Product Line Adequacy of Existing Components Source Code Analysis Source code analysis -Folder structure and files: decomposition not reflected as it was documented -Empty files: a couple of empty (or almost empty) files were identified (less than 20 LOC) -Inconsistent naming conventions: not used consistently throughout the component -Ratio of commented lines to source code lines: below 10 percent Refactorings -Risk mitigation -Improvement of readability

15 Slide 14 R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Analyzing the Product Line Adequacy of Existing Components Conclusion Graphics component -Sufficient adequacy for the emerging product line -Need for renovations and extensions  Improvement of the internal quality  Assurance of consistency to the documentation and the intended design  Refactoring of variabilities  Removal of architectural mismatches and integration of the component Successful application of Fraunhofer PuLSE™ and ADORE™ -Well-invested effort in reverse engineering -Architectural reuse decision well-grounded on the reverse engineering Need for adaptation for single system components -In our experience so far, as-is reuse mostly does not work -Need for efficient and focused reverse engineering analyses to support the reuse decision making -Estimation the effort required

16 Slide 15 R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Analyzing the Product Line Adequacy of Existing Components Discussion Points Did as-is reuse of existing components developed for single systems work for you product line? What are additional reverse engineering techniques suitable for analyses of the adequacy of a component? How do you evaluate the adequacy of components to be reused? How to analyze a component more efficiently? How to keep the effort for adaptation low?


Download ppt "R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Analyzing the Product Line Adequacy of Existing Components Jens Knodel"

Similar presentations


Ads by Google