{"product_id":"science-of-software-product-lines-9798400731679","title":"Science of Software Product Lines","description":"\u003cp\u003e • Author(s): Don Batory\u003cbr\u003e • Publisher: Association for Computing Machinery\u003cbr\u003e • Publisher Imprint: Association for Computing Machinery\u003cbr\u003e • BISAC: Software Development \u0026amp; Engineering - Project Management\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003eThis 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: \u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cul\u003e\n\u003cli\u003eA 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.\u003c\/li\u003e\n\u003cli\u003eModel 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.\u003c\/li\u003e\n\u003cli\u003eStreaming 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.\u003c\/li\u003e\n\u003c\/ul\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003eThe 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.\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e","brand":"Association for Computing Machinery","offers":[{"title":"Paperback","offer_id":47593047195799,"sku":"9798400731679","price":5256.0,"currency_code":"INR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0666\/3471\/1191\/files\/9798400731679.webp?v=1774980405","url":"https:\/\/atlanticbooks.com\/products\/science-of-software-product-lines-9798400731679","provider":"Atlantic Books","version":"1.0","type":"link"}