University of Oxford Logo University of OxfordSoftware Engineering - Home
On Facebook
Facebook
Follow us on twitter
Twitter
Linked in
Linked in
Google plus
Google plus
Digg
Digg
Pinterest
Pinterest
Stumble Upon
Stumble Upon

Software Product Lines

The Software Product Line (SPL) approach to software development promises significant improvements in time-to-market, cost, and reliability, through the system identification and exploitation of commonalities and variations in software systems. The approach promotes asset re-use throughout the software life cycle, and facilitates product customisation. SPL has been applied successfully in a number of different domains, by large and small organisations alike.

Course dates

Future courses yet to be planned.

Objectives

This course presents a thorough and comprehensive coverage of state-of-the-art practices in SPL, from analysis and design to implementation, to provide students with a unique perspective that empowers them to identify, assess, and tackle the challenges of SPL and reap its latent benefits.

Contents

Challenges and Benefits of PLE
Importance of PLE in software engineering practice, commonality and variability management, Domain Analysis, Domain Engineering
Feature Oriented Design and Analysis
Features, variation points, feature models, decision models
Basic Variability Implementation Technologies
Annotation-based and programming language support
Aspect Oriented Software Development
Aspects à la AspectJ and their application to product lines, aspects throughout the software development lifecycle
Feature Oriented Software Development
Feature modules, product line development with AHEAD and FeatureHouse
Product Line Validation and Testing
Safe composition, basic SPL validation, foundations of SPL testing
Product Line Management
Adoption, evolution
Product Lines in Industry and Application Outlook
Commercial tools, successful industry projects, open challenges and opportunities

Requirements

  • Programming maturity in any object-oriented language comparable to course OOP
  • UML knowledge comparable to that taught in the OOR module