Domain Specific Software Architecture and Product Lines Software Architecture Copyright Richard N Taylor Nenad Medvidovic and Eric M Dashofy All rights reserv Software Architecture Foundations Theory and Practice Objectives Concepts What is domain specific software engineering DSSE The Three Lampposts of DSSE Domain Business and Technology Domain Specific Software Architectures Product Lines Relationship between DSSAs Product Lines and Architectural Styles Examples of DSSE at work 2 Software Architecture Foundations Theory and Practice Objectives Concepts What is domain specific software engineering DSSE The Three Key Factors of DSSE Domain Business and Technology Domain Specific Software Architectures Product Lines Relationship between DSSAs Product Lines and Architectural Styles Examples of DSSE at work 3 Software Architecture Foundations Theory and Practice Domain Specific Software Engineering The traditional view of software engineering shows us how to come up with solutions for problems de novo But starting from scratch every time is infeasible This will involve re inventing many wheels Once we have built a number of systems that do similar things we gain critical knowledge that lets us exploit common solutions to common problems In theory we can simply build the difference between our new target system and systems that have come before 4 Software Architecture Foundations Theory and Practice Examples of Domains Compilers for programming languages Consumer electronics Electronic commerce system Web stores Video game Business applications Basic Standard Pro We can subdivide too Avionics systems Boeing Jets Boeing 747 400 5 Software Architecture Foundations Theory and Practice Richard N Taylor Nenad Medvidovic and Eric M Dashofy C 2008 John Wiley Sons Inc Reprinted with permission Software Architecture Foundations Theory and Practice Traditional Software Engineering One particular problem can be solved in innumerable ways 6 Software Architecture Foundations Theory and Practice Richard N Taylor Nenad Medvidovic and Eric M Dashofy C 2008 John Wiley Sons Inc Reprinted with permission Software Architecture Foundations Theory and Practice Architecture Based Software Engineering Given a single problem we select from a handful of potential architectural styles or architectures and go from these into specific implementations 7 Software Architecture Foundations Theory and Practice Richard N Taylor Nenad Medvidovic and Eric M Dashofy C 2008 John Wiley Sons Inc Reprinted with permission Software Architecture Foundations Theory and Practice Domain Specific Software Engineering We map regions of the problem space domains into domain specific software architectures DSSAs These are specialized into application specific architectures These are implemented 8 Software Architecture Foundations Theory and Practice Richard N Taylor Nenad Medvidovic and Eric M Dashofy C 2008 John Wiley Sons Inc Reprinted with permission Software Architecture Foundations Theory and Practice Three Key Factors of DSSE Domain Must have a domain to constrain the problem space and focus development Technology Must have a variety of technological solutions tools patterns architectures styles legacy systems to bring to bear on a domain Business Business goals motivate the use of DSSE Minimizing costs reuse assets when possible Maximize market develop many related applications for different kinds of end users 9 Software Architecture Foundations Theory and Practice Three Key Factors Domain Must have a domain to constrain the problem space Domain and focus development Business Technology 10 Software Architecture Foundations Theory and Practice Three Key Factors Technology Must have a variety of technological solutions tools patterns architectures styles legacy systems to bring to bear on a domain Domain Business Technology 11 Software Architecture Foundations Theory and Practice Three Key Factors Business Business goals motivate the use of DSSE Domain Minimizing costs reuse assets when possible Maximize market develop many related applications for different kinds of end users Business Technology 12 Software Architecture Foundations Theory and Practice Three Key Factors Domain Business Corporate Core Competencies Domain expertise Domain augmented by business acumen and knowledge of the market Business Technology 13 Software Architecture Foundations Theory and Practice Three Key Factors Domain Technology Application Family Architectures All possible Domain technological solutions to problems in a domain Uninformed and unconstrained by business goals and knowledge Business Technology 14 Software Architecture Foundations Theory and Practice Three Key Factors Business Technology Domain independent infrastructure Tools and Domain techniques for constructing systems independent of any particular domain E g most generic ADLs UML compilers word processors general purpose PCs Business Technology 15 Software Architecture Foundations Theory and Practice Three Key Factors Domain Business Technology Domain specific software engineering Domain Applies technology to domain specific goals tempered by business and market knowledge Business Technology 16 Software Architecture Foundations Theory and Practice Three Key Factors Product Line Architectures A specific related set of solutions within Domain a broader DSSE More focus on commonalities and variability between individual solutions Business Technology 17 Software Architecture Foundations Theory and Practice Becoming More Concrete Applying DSSE means developing a set of artifacts more specific than an ordinary software architecture Focus on aspects of the domain Focus on domain specific solutions techniques and patterns These are A domain model and A domain specific software architecture DSSA 18 Software Architecture Foundations Theory and Practice Domain Model A domain model is a set of artifacts that capture information about a domain Functions performed Objects also known as entities that perform the functions and on which the functions are performed Data and information that flows through the system Standardizes terminology and semantics Provides the basis for standardizing or at least normalizing descriptions of problems to be solved in the domain 19 Software Architecture Foundations Theory and Practice Domain Model 20 Software Architecture Foundations Theory and Practice Richard N Taylor Nenad Medvidovic and Eric M Dashofy C 2008 John Wiley Sons Inc Reprinted with permission Software
View Full Document