Science of Software Product Lines - cover

Science of Software Product Lines

Don Batory

  • 22 november 2025
  • 9798400731655
Wil ik lezen
  • Wil ik lezen
  • Aan het lezen
  • Gelezen
  • Verwijderen

Samenvatting:

Explores compositional programming, this text shows how prewritten software blocks combine to build intricate systems. It investigates product lines, model-driven engineering via model-to-model transformations, and streaming dataflow circuits, offering fresh insights into systematic design and emerging research challenges.



This text is about compositional programming, where programs are constructed by composing prewritten software building blocks. Three modern compositional paradigms are covered, listed in order of decreasing emphasis:

A Software Product Line is a design for a family of programs. Each program is composed from predefined increments of program functionality. The Linux Kernel is the largest known product line whose family size exceeds 102000 distinct programs.

Model Driven Engineering is a general-purpose engineering methodology to support system design, analysis, construction, and evolution. Software designs are expressed as models. Transformations are composed to convert models into other models for analysis, to produce documentation and/or source.

Streaming Applications are dataflow graphs whose nodes (called boxes) are computations with input and output data streams; boxes are wired/composed together to produce a custom program (aka software circuit). Examples are Unix pipe-and-filters and distributed stream processing.

The book is aimed at both practitioners and advanced students, assuming some familiarity with programming in Java. It draws on the author's unique personal insights from over four decades of experience as an academic at a leading research university as well as a hands-on developer of software tools. Written in an engaging style, the text highlights important contributions toward principled software engineering and composable designs made by researchers in diverse areas such as formal methods, programming languages, software system development, testing and deployment, databases, and networks. Parts of the book can be read and enjoyed as a historical narrative, while others can be studied more deeply to reflect on open research challenges and opportunities. In a world where AI and machine learning offer seductive yet untapped opportunities to generate software automatically, this book is a reminder of how and why the mathematical foundations of software construction still matter.

We gebruiken cookies om er zeker van te zijn dat je onze website zo goed mogelijk beleeft. Als je deze website blijft gebruiken gaan we ervan uit dat je dat goed vindt. Ok