aspect-oriented and component adaptation for software product lines

23
Aspect-oriented and Component Adaptation for Software Product Lines Anand Shah. CWID # 10433548

Upload: api-3765961

Post on 11-Apr-2015

317 views

Category:

Documents


1 download

DESCRIPTION

Presentation

TRANSCRIPT

Page 1: Aspect-oriented and Component Adaptation for Software Product Lines

Aspect-oriented and Component Adaptation for

Software Product Lines

Anand Shah.CWID # 10433548

Page 2: Aspect-oriented and Component Adaptation for Software Product Lines

This topic is made up of three different Terms or Techniques.

1)Aspect Oriented Programming.

2)Component Adaptation.

3)Software Production Line.

Page 3: Aspect-oriented and Component Adaptation for Software Product Lines

Aspect-oriented Programming

• Aspect-oriented programming is a programming approach based on the concept of separation of concerns. An aspect or concern is a concept, goal or area of interest.

• Concerns or Aspect can be categorized into two types: core-level and system level concerns.

• Core-level concerns include the business logic, and system-level concerns include aspects that affect the entire system such as logging, Authentication,

persistency and performance.

Page 4: Aspect-oriented and Component Adaptation for Software Product Lines

Aspect-oriented Programming

• Main use of AOP is to get rid of Crosscutting problem

persists in even OOP which affects many modules.

• For example, code handling concerns such as logging,

tracing, or persistence tends to be scattered and tangled

all across the objects of the system.

• Example AspectJ.

Page 5: Aspect-oriented and Component Adaptation for Software Product Lines

Component Adaptation

• In a component-based software development, components are considered as black boxes. They are only described by their interfaces expressing their visible behaviors. They must be connected in an appropriate way, through required and provided interfaces.

• To guarantee interoperability of components, we must consider each connection of a required interface with another provided interface.

Page 6: Aspect-oriented and Component Adaptation for Software Product Lines

Component Adaptation

• In the general cases, to construct a

working system out of components,

Adapters have to be defined. They

connect the required operations and

attributes to the required ones.

• And that is where component adaptation

techniques comes in use.

Page 7: Aspect-oriented and Component Adaptation for Software Product Lines

Software Production Line

• A software product line (SPL) is a set of software-intensive systems that share a common, managed set of features satisfying the specific needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way.

Page 8: Aspect-oriented and Component Adaptation for Software Product Lines

Software Production Line

• Importance:• Software product lines are rapidly emerging as a

viable and important software development paradigm allowing companies to realize order-of-magnitude improvements in time to market, cost, productivity, quality, and other business drivers. Software product line engineering can also enable rapid market entry and flexible response, and provide a capability for mass customization.

Page 9: Aspect-oriented and Component Adaptation for Software Product Lines

Software Production Line

• Success stories:• Cummins Inc. was able to field more than 1000 separate

products based on just 20 software builds. They can build and integrate the software for a new diesel engine in about a week, whereas before, it took a year. Their production capability allowed them to quickly enter and dominate the industrial diesel engine market.

• Nokia was able to increase their production of mobile phones from 5-10 new models per year to over 30 new models per year.

• HP reported a 400% productivity improvement and a 2-7x time-to-market improvement for a product line of printers.

Page 10: Aspect-oriented and Component Adaptation for Software Product Lines

Software Production Line

• The activities involved in the software product line development process can be grouped into two stages:– development of a reusable domain framework

also known as Domain Analysis and Engineering (DA&E).

– Development of individual applications from the framework. (Application Engineering)

Page 11: Aspect-oriented and Component Adaptation for Software Product Lines

Software Production Line

Page 12: Aspect-oriented and Component Adaptation for Software Product Lines

• DA&E involves activities such as eliciting requirements

and other domain-related information, identification of

common and variable requirements, defining potential

family members and their characteristics, design and

implementation of a domain architecture.

• One of the approaches for DA&E is Requirement

Engineering approach which is highly aspect oriented.

• The RE activities which are Aspect-Oriented are carried

out in the DA&E where requirements and other domain

details are gathered, common and variable requirements

are identified and analyzed, potential member products

are identified and characterized.

Domain Analysis and Engineering

Page 13: Aspect-oriented and Component Adaptation for Software Product Lines

• Standard RE process is

composed of five

activities:– Requirements capture.

– Requirements analysis.

– Requirements specification

– Requirements validation

– Requirements

management.

• Figure shows the

structural representation

of this approach.

Domain Analysis and Engineering

Page 14: Aspect-oriented and Component Adaptation for Software Product Lines

• Main use of AOP concepts are used in Requirement Analysis.

• During this phase with the use of AOP we have to define.– Join point: A well-defined point in the

execution of a component. It can be a method call or execution, an access to an attribute, or the execution of a constructor.

– Pointcut: A mechanism that encapsulate join points. It can be compose of one or more join point.

Domain Analysis and Engineering

Page 15: Aspect-oriented and Component Adaptation for Software Product Lines

– Advice: is a specifies the action (i.e., code) that must take place at a certain pointcut (i.e., a group of join points). With both abstractions mentioned above, advice give developer the ability to implement crosscutting concerns. There are three types of advice:

• before: The code declared is executed before the join point.

• after: The code declared is executed after the join point.

• around: The code declared is executed instead of the one in the join point.

Domain Analysis and Engineering

Page 16: Aspect-oriented and Component Adaptation for Software Product Lines

– Inter-type declaration: mechanism allows developer to crosscut concerns in a static way. It permits alterations to classes and inheritance hierarchies from outside the original class definition. We enumerate below the types of possible changes through Inter-type declaration:

• Add members (methods, constructors, fields) to types (including other aspects).

• Add concrete implementation to interfaces.• Declare that types extend new types or implement new

interfaces.• Declare aspect precedence.• Declare custom compilation errors or warnings.• Convert checked exceptions to unchecked.

Domain Analysis and Engineering

Page 17: Aspect-oriented and Component Adaptation for Software Product Lines

– Aspect: is the container for the encapsulation of pointcuts, advice code, and inter-type declaration. Acting like a Java classes, it can contain its own attributes and methods.

Domain Analysis and Engineering

Page 18: Aspect-oriented and Component Adaptation for Software Product Lines

• In the application development stage, member products are developed from the reusable domain framework.

• This is where we have to use Component adaptation techniques to make interface (Adapters) Between framework and application.

• Main problems and complexity we have to face in this are shown in fig.

Application Engineering

Page 19: Aspect-oriented and Component Adaptation for Software Product Lines

Application Engineering

A hierarchy of interface models, which orders interface properties according to their specification complexity, supports the identification and elimination of different typesof component mismatches

Page 20: Aspect-oriented and Component Adaptation for Software Product Lines

• We have to generate different patterns of adaptors according to the interface we want. Many patterns are available as per requirements. Like.– Adaptor

– Decorator

– Interceptor

– Wrapper Façade

– Bridge

– Microkernel

– Mediator

Application Engineering

Page 21: Aspect-oriented and Component Adaptation for Software Product Lines

• Some Extra-Functional Adaptation Patterns are.– Proxy

– Component Replication

– Process Pair

– Retransmission

– Caching

– Pessimistic Offline Lock

– Unit of Work

• Details:

Application Engineering

Page 22: Aspect-oriented and Component Adaptation for Software Product Lines

• Aspect-oriented Programming and Component Adaptation techniques can be very useful to improve quality and usability of Software Production Line.

Conclusion

Page 23: Aspect-oriented and Component Adaptation for Software Product Lines

References

• http://www.voelter.de/data/pub/VoelterGroher_SPLEwithAOandMDD.pdf

• http://www.iro.umontreal.ca/~sahraouh/qaoose2005/paper4.pdf

• www.volantec.biz/Untangle_AOP.ppt

• http://ieeexplore.ieee.org/iel5/8501/26873/01194788.pdf

• http://research.microsoft.com/~cszypers/events/

WCOP2006/wcop06-Lanoix.pdf

• http://www.wsmo.org/papers/presentations/

preprintonline.pdf• http://www.sei.cmu.edu/str/descriptions/deda.html