17-708 Software Product Lines: Concepts and Implementation
12 units, Carnegie Mellon University
The goal of software product line engineering is the largescale strategic reuse of functionality across multiple software products within a domain, such that different software configurations tailored for different customers or use cases are derived from a common code base. This course is designed to walk students through the entire process of developing an maintaining software product lines and highly configurable software systems, from studying requirements with domain analysis, to modeling and reasoning about configuration spaces, to strategically planning reusable implementations architecture, to various implementation strategies and their tradeoffs frameworks, components, conditional compilation, code generators, featureoriented programming, aspectoriented programming, and others, to challenges regarding quality assurance and feature interactions. The course will mostly look at technical issues, but also cover organizational challenges, such as scoping, team management, and introducing productline practices. We will study how highly configurable systems are developed and maintained in industry and open source and look at recent research results. The goal of this course is to help students require the background and theoretical and practical knowledge to do research in this field and to consult on reuse projects in practice. httpswww.cs.cmu.educkaestne17708
Prerequisites: none listed
Courseweave needs JavaScript to show sections, workloads and planning tools.