domain-specific software architecture
DESCRIPTION
Domain-Specific Software Architecture. By Zhiying Lin. Agenda. What is Domain-specific software engineering ( DSSE ) ? What is domain-specific software architecture ( DSSA ) ? How can DSSA be processed ? Summary. What is DSSE ?. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Domain-Specific Software Architecture](https://reader034.vdocuments.mx/reader034/viewer/2022051700/568161c9550346895dd1aef2/html5/thumbnails/1.jpg)
Domain-Specific Software Architecture
By Zhiying Lin
![Page 2: Domain-Specific Software Architecture](https://reader034.vdocuments.mx/reader034/viewer/2022051700/568161c9550346895dd1aef2/html5/thumbnails/2.jpg)
• What is Domain-specific software engineering ( DSSE ) ?
• What is domain-specific software architecture ( DSSA ) ?
• How can DSSA be processed ?• Summary.
Agenda
2
![Page 3: Domain-Specific Software Architecture](https://reader034.vdocuments.mx/reader034/viewer/2022051700/568161c9550346895dd1aef2/html5/thumbnails/3.jpg)
What is DSSE ?• An approach to software engineering that is
characterized by extensively leveraging existing domain knowledge.
3
![Page 4: Domain-Specific Software Architecture](https://reader034.vdocuments.mx/reader034/viewer/2022051700/568161c9550346895dd1aef2/html5/thumbnails/4.jpg)
Traditional Software Engineering
4
Too many choices
Different concepts
![Page 5: Domain-Specific Software Architecture](https://reader034.vdocuments.mx/reader034/viewer/2022051700/568161c9550346895dd1aef2/html5/thumbnails/5.jpg)
Architecture-Based Software Engineering
5
What’s the effective software
architectures?
How to implement?
![Page 6: Domain-Specific Software Architecture](https://reader034.vdocuments.mx/reader034/viewer/2022051700/568161c9550346895dd1aef2/html5/thumbnails/6.jpg)
Domain-Specific Software Engineering
6
Which domain is it belong to?
Reference architecture
Application-specific
architecture
How to implement?
![Page 7: Domain-Specific Software Architecture](https://reader034.vdocuments.mx/reader034/viewer/2022051700/568161c9550346895dd1aef2/html5/thumbnails/7.jpg)
What is domain-specific software architecture?
Definition. A DSSA comprises:A reference architecture.A component library.An application configuration method for
selecting and configuring components.
7
![Page 8: Domain-Specific Software Architecture](https://reader034.vdocuments.mx/reader034/viewer/2022051700/568161c9550346895dd1aef2/html5/thumbnails/8.jpg)
How DSSA can be processed?Stage 1. Define the Scope of the Domain
Stage 2. Define/Refine Domain-Specific Concepts/Requirements
Stage 3. Define/Refine Domain-Specific Design and Implementation Constraints
Stage 4. Develop Domain Architectures/Models
Stage 5. Produce/Gather Reusable Workproducts
8
![Page 9: Domain-Specific Software Architecture](https://reader034.vdocuments.mx/reader034/viewer/2022051700/568161c9550346895dd1aef2/html5/thumbnails/9.jpg)
Stage 1: Define the Scope of the Domain
Define what can be accomplished -- emphasis is on the user's needs.Inputs1. Experts2. Existing systems3. Existing documentation (e.g. textbooks, articles)
9
![Page 10: Domain-Specific Software Architecture](https://reader034.vdocuments.mx/reader034/viewer/2022051700/568161c9550346895dd1aef2/html5/thumbnails/10.jpg)
Stage 1: Define the Scope of the Domain
Outputs
1. Block diagram of the domain of interest including inputs and outputs to the domain and high-level relationships between functional units/elements in the domain
2. List of people's names to serve as future references or validation sources
3. List of projects with pointers to documentation and source code
4. List of needs to be met by applications in this domain
10
![Page 11: Domain-Specific Software Architecture](https://reader034.vdocuments.mx/reader034/viewer/2022051700/568161c9550346895dd1aef2/html5/thumbnails/11.jpg)
Stage 2: Define/Refine Domain-Specific Concepts/Requirements
Similar to Requirements Analysis -- emphasis is on the problem space.Inputs1. Outputs from Stage 12. Selected systems3. Selected documentation (e.g., textbooks, articles)
11
![Page 12: Domain-Specific Software Architecture](https://reader034.vdocuments.mx/reader034/viewer/2022051700/568161c9550346895dd1aef2/html5/thumbnails/12.jpg)
Outputs1. Domain Models
Scenarios Domain Dictionary Context Information Diagram Entity/Relationship Diagram Object Diagram Data-Flow Diagram State-Transition Diagram
2. Functional requirements (Reference requirements)
12
Stage 2: Define/Refine Domain-Specific Concepts/Requirements
Information model
Operational model
Feature model
![Page 13: Domain-Specific Software Architecture](https://reader034.vdocuments.mx/reader034/viewer/2022051700/568161c9550346895dd1aef2/html5/thumbnails/13.jpg)
13
Stage 2: Define/Refine Domain-Specific Concepts/Requirements
A domain model is a product of context analysis and domain analysis.
Context analysis Define the boundaries of a domain and the relationship of the entities inside the domain to those outside.
Domain analysis Identify, capture, and organize the domain assets.
![Page 14: Domain-Specific Software Architecture](https://reader034.vdocuments.mx/reader034/viewer/2022051700/568161c9550346895dd1aef2/html5/thumbnails/14.jpg)
Scenarios
14
The scenarios consist of a list of numbered, labeled scenario steps or events followed by a brief description.
![Page 15: Domain-Specific Software Architecture](https://reader034.vdocuments.mx/reader034/viewer/2022051700/568161c9550346895dd1aef2/html5/thumbnails/15.jpg)
Domain DictionaryThe domain dictionary consists of commonly used words or phrases found in the scenarios and customer needs document (statement of work).
15
![Page 16: Domain-Specific Software Architecture](https://reader034.vdocuments.mx/reader034/viewer/2022051700/568161c9550346895dd1aef2/html5/thumbnails/16.jpg)
Context Information DiagramIt describes the high-level data flow between the major components in the system.
16
![Page 17: Domain-Specific Software Architecture](https://reader034.vdocuments.mx/reader034/viewer/2022051700/568161c9550346895dd1aef2/html5/thumbnails/17.jpg)
Entity/Relationship (ER) Diagram• It describes the entity relationship in the
problem domain. • There are basically two types of relationships
of interest:1. Aggregation: "a-part-of" relationships2. Generalization: "is a" relationships
17
![Page 18: Domain-Specific Software Architecture](https://reader034.vdocuments.mx/reader034/viewer/2022051700/568161c9550346895dd1aef2/html5/thumbnails/18.jpg)
Object diagram
It identifies the objects in the application domain rather than in the software.
18
![Page 19: Domain-Specific Software Architecture](https://reader034.vdocuments.mx/reader034/viewer/2022051700/568161c9550346895dd1aef2/html5/thumbnails/19.jpg)
Data-Flow DiagramIt focuses on the data exchanged within the system, with no notion of control.
19
![Page 20: Domain-Specific Software Architecture](https://reader034.vdocuments.mx/reader034/viewer/2022051700/568161c9550346895dd1aef2/html5/thumbnails/20.jpg)
State-Transition DiagramIt describes the events and states that take place in the domain.
20
![Page 21: Domain-Specific Software Architecture](https://reader034.vdocuments.mx/reader034/viewer/2022051700/568161c9550346895dd1aef2/html5/thumbnails/21.jpg)
Functional Requirements
• It is a part of reference requirements.(Reference requirements are used to facilitate the mapping of the requirements for each system within a given domain to the canonical domain-specific solution) Three type: mandatory/optional/variable requirements.
• It defines characteristics of the problem space.
21
![Page 22: Domain-Specific Software Architecture](https://reader034.vdocuments.mx/reader034/viewer/2022051700/568161c9550346895dd1aef2/html5/thumbnails/22.jpg)
Stage 3:Define/Refine Domain-Specific Design and Implementation Constraints
Similar to Requirements Analysis -- emphasis is on the solution space.Inputs1. Outputs from Stage 1, especially the context
diagram2. Outputs from Stage 2, especially control and
data flow diagrams, and rationale
22
![Page 23: Domain-Specific Software Architecture](https://reader034.vdocuments.mx/reader034/viewer/2022051700/568161c9550346895dd1aef2/html5/thumbnails/23.jpg)
Outputs1. Non-Functional Requirements2. Design Requirements3. Implementation Requirements
23
Stage 3:Define/Refine Domain-Specific Design and Implementation Constraints
![Page 24: Domain-Specific Software Architecture](https://reader034.vdocuments.mx/reader034/viewer/2022051700/568161c9550346895dd1aef2/html5/thumbnails/24.jpg)
Non-Functional RequirementsEg, security, performance, reliability.
24
![Page 25: Domain-Specific Software Architecture](https://reader034.vdocuments.mx/reader034/viewer/2022051700/568161c9550346895dd1aef2/html5/thumbnails/25.jpg)
Design RequirementsEg, architecture style, user interface style.
25
![Page 26: Domain-Specific Software Architecture](https://reader034.vdocuments.mx/reader034/viewer/2022051700/568161c9550346895dd1aef2/html5/thumbnails/26.jpg)
Implementation Requirements
26
![Page 27: Domain-Specific Software Architecture](https://reader034.vdocuments.mx/reader034/viewer/2022051700/568161c9550346895dd1aef2/html5/thumbnails/27.jpg)
Similar to High-Level Design--emphasis is on defining module/model interfaces and semantics.
Input:The input to this stage consist of the inputs and outputs of the previous stages.OutputsA Reference Architecture
27
Stage 4:Develop Domain Architectures/Models
![Page 28: Domain-Specific Software Architecture](https://reader034.vdocuments.mx/reader034/viewer/2022051700/568161c9550346895dd1aef2/html5/thumbnails/28.jpg)
Reference Architecture
• What is it?Reference Architecture is the set of principal design decisions that are simultaneously applicable to multiple related systems, typically within an application domain, which explicitly defined points of variation.
• When to develop?Not too-early; not too-late.
28
![Page 29: Domain-Specific Software Architecture](https://reader034.vdocuments.mx/reader034/viewer/2022051700/568161c9550346895dd1aef2/html5/thumbnails/29.jpg)
Reference Architecture• Reference Architecture Model• Configuration Decision Diagram• Architecture Schema/Design Record• Reference Architecture Dependency Diagram• Component Interface Descriptions• Constraints and Rationale
29
![Page 30: Domain-Specific Software Architecture](https://reader034.vdocuments.mx/reader034/viewer/2022051700/568161c9550346895dd1aef2/html5/thumbnails/30.jpg)
Reference Architecture ModelAll designs start out with some simple abstraction based on the architecture style.
30
![Page 31: Domain-Specific Software Architecture](https://reader034.vdocuments.mx/reader034/viewer/2022051700/568161c9550346895dd1aef2/html5/thumbnails/31.jpg)
Stage 5:Produce/Gather Reusable WorkproductsEg, Implementation/collection of reusable artifacts (e.g., code, documentation, etc.).InputThe interface specifications generated in Stage 4 and related artifacts from existing systems are the primary inputs to this stage.
Output1. Reusable components and associated test cases and
documentation2. Cross reference of components to requirements, constraints,
and architecture31
![Page 32: Domain-Specific Software Architecture](https://reader034.vdocuments.mx/reader034/viewer/2022051700/568161c9550346895dd1aef2/html5/thumbnails/32.jpg)
32
Summary
What is Domain-specific software engineering ( DSSE ) ?
The three principle concerns of the DSSE.What is domain-specific software architecture
( DSSA ) ?How can DSSA be processed ?
![Page 33: Domain-Specific Software Architecture](https://reader034.vdocuments.mx/reader034/viewer/2022051700/568161c9550346895dd1aef2/html5/thumbnails/33.jpg)
ReferenceTaylor , R.N; Medvidovic , N.; Dashofy , E.M.; , “Software Architecture: Foundations, Theory, and Practice,” Wiley, 2009.
Will Tracz, “DSSA (Domain-Specific Software Architecture) Pedagogical Example”, Software Engineering Notes vol 20, no 3, Page 49-63, July 1995.
Will Tracz, “Domain-Specific Software Architecture (DSSA) Frequently Asked Questions (FAQ)”, Software Engineering Notes vol 19, no 2, Page 52-57, Apr 1994.
Will Tracz, Lou Coglianese, “A Domain-Specific Software Architecture Engineering Process Outline”, Software Engineering Notes vol 18, no 2, Page 40-50, Apr 1993.
33