• Keine Ergebnisse gefunden

Software Product Line Engineering

N/A
N/A
Protected

Academic year: 2022

Aktie "Software Product Line Engineering"

Copied!
7
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Software Product Line Engineering

Lab Class 8 / Assignment 5

(2)

1a) FOP terminology

• Explain the terms feature, collaboration, mixin, jampack, and class

class abstract model for similar entities

feature characteristic behavior of a software system

collaboration interplay of classes/parts thereof that implements a feature

mixin technique for refinement composing

(3)

1b) Mixins vs Jampaks

Mixin: composition using inheritance

• easy to implement

• performance overhead

• not all languages use inheritance

Jampak: composition using superposition/nesting of ASTs

• hard to implement

• no performance overhead

• uniformity, no inheritance required

(4)

1c-d) How does FOP address...

• ... inflexible extension hierarchies?

• Refinements are “applied” automatically on-demand by the composer.

• ... the preplanning problem?

• Refinements are possible on every granularity-level

• no explicit extension points

(5)

1e-f) Feature Traceability

• Feature Traceability Problem:

• How to map features to source code?

• What code belongs to what feature?

• Feature traceability in FOP is achieved by

matching features with source code folders per feature

/features/Base/ClassA.java

/features/Optional1/ClassB.java /features/Optional2/ClassB.java ...

• No feature traceability leads to code scattering, replication and tangling

(6)

Detour: Collaboration Diagrams with FeatureIDE

Collaboration diagrams show...

• classes

• features

• roles

• collaborations

(7)

2) Library Scaling Problem (Components)

• Limited scalability due to opposing properties

• reusability vs. variability -> performance trade-off

• reusability:

• Smaller components are easier to reuse (no unwanted code)

• Smaller components provide less features and require more glue code (overhead!)

• variability:

• Big components provide less variability, but require less glue code

• Mitigation

• domain analysis!

• planned systematic reuse (only) within the software product line

Referenzen

ÄHNLICHE DOKUMENTE

About 80% of all software systems today are software product lines or can at least profit. from product

 Modules can be composed within a new context of another project (variability).. Design Patterns for Variability.. Observer Pattern. “Define[s] a one-to-many dependency

From the manual page, extract the features that correspond to the compression mode (2 points), and construct a feature model (6 points) with FeatureIDE.. Note: The application

Software Product Line Engineering.. Lab

 Make feature explicit in source

building systems [...] in a particular domain in the form of reusable assets [...], as well as providing an adequate means for reusing these assets (i.e., retrieval, qualification,

• //every method invocation inside the method Server.broadcast() unless the target is an instance of class Connection pointcut

 Use case of aspects and collaborations depend on the implementation problem.  Aspects and collaborations have different pros