《软件体系结构Ch005DSSEII》由会员分享,可在线阅读,更多相关《软件体系结构Ch005DSSEII(34页珍藏版)》请在金锄头文库上搜索。
1、Domain-Specific Software Architecture and Product Lines,Software Architecture,2,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, Pro
2、duct Lines, and Architectural Styles Examples of DSSE at work,3,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
3、Architectural Styles Examples of DSSE at work,4,Product Lines,A set of related products that have substantial commonality In general, the commonality exists at the architecture level One potential silver bullet of software engineering Power through reuse of Engineering knowledge Existing product arc
4、hitectures, styles, patterns Pre-existing software components and connectors,5,Domains vs. Product Lines,Domain Consumer electronics Avionics Compilers Video games,Product Line Sony WEGA TVs Boeing 747 Family GNU compiler suite Suite of games built on same engine,Domains are in the problem space, pr
5、oduct lines are in the solution space,6,Business vs. Engineering Product Lines,Business Product Line A set of products marketed under a common banner to increase sales and market penetration through bundling and integration Engineering Product Line A set of products that have substantial commonality
6、 from a technical/engineering perspective Generally, business product lines are engineering product lines and vice-versa, but not always Applications bundled after a company acquisition Chrysler Crossfire & Mercedes SLK V6,7,Business Motivation for Product Lines,Traditional Software Engineering,Soft
7、ware Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.,8,Business Motivation for Product Lines,Traditional Software Engineering,Software Architecture: Foundations, Theory, and Practic
8、e; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.,9,Business Motivation for Product Lines,Product-line-based engineering,Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. D
9、ashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.,10,Capturing Product Line Architectures,Common: features common to all products A: features specific to product A B: features specific to product B Product A = Common + A Product B = Common + B,Software Architecture: Foundations, Th
10、eory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.,11,A Product-Line Architecture,Definition: A product-line architecture captures the architectures of many related products simultaneously Generally employs explic
11、it variation points in the architecture indicating where design decisions may diverge from product to product,12,A Lunar Lander Product Line,“Lite”,“Demo”,“Pro”,Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & S
12、ons, Inc. Reprinted with permission.,13,Product Component Table,Helps us decide whether creating a product line is viable or feasible,Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with pe
13、rmission.,14,Group Components into Features,Not a mechanical process Attempt to identify (mostly) orthogonal features, or features that would be beneficial in different products,Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 20
14、08 John Wiley & Sons, Inc. Reprinted with permission.,15,Reconstitute Products from Features,Use technical and business knowledge to identify which combinations form feasible or marketable products that will be constructed,Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor,
15、Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.,16,Modeling Product Line Architectures,Architectural models need to be diversified with information about variation points and features Not all ADLs have good support for this Exceptions include Koala
16、xADL 2.0 These ADLs have explicit support for capturing variation points,17,Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.,18,Selection,Product-line selection is the process of extracting a single product architecture (or smaller product line) from an architectural model that contains explicit points of variation ADLs such as Koala and xADL 2.0 can do selection autom