Domain-Specific Software Engineering (DSSE). Software Engineering Concerns  There are many of them  “Classical” software architecture research has focused.

Slides:



Advertisements
Similar presentations
MDI 2010, Oslo, Norway Behavioural Interoperability to Support Model-Driven Systems Integration Alek Radjenovic, Richard Paige The University of York,
Advertisements

Architecture Representation
Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance.
Chapter 22 Product Line Engineering Week 1 CIS 673.
By Xiangzhe Li Thanh Nguyen.  Components and connectors are composed in a specific way in a given system’s architecture to accomplish that system’s objective.
Software Architectures and Embedded Systems Nenad Medvidovic with Sam Malek and Marija Mikic-Rakic Computer Science Department University of Southern California.
Chapter 14: Design Method --- data and architectural design Design -- A multistep process in which representations of data structure, program structure,
The Architecture Design Process
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
7M701 1 Software Engineering Software Requirements Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 5
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
Chapter 2: IS Building Blocks Objectives
7M822 Software Engineering: System Models 14 September 2009.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Institute for Software Research©2001, University of California, Irvine Product-Line Architectures André van der Hoek Institute for Software Research University.
Domain-Specific Software Architecture
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Software Architecture premaster course 1.  Israa Mosatafa Islam  Neveen Adel Mohamed  Omnia Ibrahim Ahmed  Dr Hany Ammar 2.
Domain-Specific Software Engineering Alex Adamec.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Enterprise Architecture
Chapter 10 Architectural Design
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Bina Nusantara 2 C H A P T E R INFORMATION SYSTEM BUILDING BLOCKS.
System models Abstract descriptions of systems whose requirements are being analysed Abstract descriptions of systems whose requirements are being analysed.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
An Introduction to Software Architecture
1 Process Engineering A Systems Approach to Process Improvement Jeffrey L. Dutton Jacobs Sverdrup Advanced Systems Group Engineering Performance Improvement.
Software Models (Cont.) 9/22/2015ICS 413 – Software Engineering1 -Component-based software engineering -Formal Development Model.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
Lecture 9: Chapter 9 Architectural Design
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 10 Use Case Design.
1-1 System Development Process System development process – a set of activities, methods, best practices, deliverables, and automated tools that stakeholders.
Chapter 13 Architectural Design
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
Chapter 7 Applying UML and Patterns Craig Larman
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
CS 4310: Software Engineering Lecture 4 System Modeling The Analysis Stage.
1 Introduction to Software Engineering Lecture 1.
Illustrations and Answers for TDT4252 exam, June
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
Christoph F. Eick University of Houston Organization 1. What are Ontologies? 2. What are they good for? 3. Ontologies and.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
Formal Methods in Software Engineering Credit Hours: 3+0 By: Qaisar Javaid Assistant Professor.
Architectural Styles, Design Patterns, and Objects Joe Paulowskey.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
CSE 303 – Software Design and Architecture
Search Engine Optimization © HiTech Institute. All rights reserved. Slide 1 Click to edit Master title style What is Business Analysis Body of Knowledge?
Basic Concepts and Definitions
Chapter : 9 Architectural Design
Engr 691 Special Topics in Engineering Science Software Architecture Spring Semester 2004 Lecture Notes.
Systems Architectures System Integration & Architecture.
Basic Concepts of Software Architecture. What is Software Architecture? Definition: – A software system’s architecture is the set of principal design.
Enterprise Architectures Course Code : CPIS-352 King Abdul Aziz University, Jeddah Saudi Arabia.
Chapter 9 Architectural Design. Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software.
Design Patterns: MORE Examples
The Components of Information Systems
CompSci 280 S Introduction to Software Development
The Components of Information Systems
The Extensible Tool-chain for Evaluation of Architectural Models
An Introduction to Software Architecture
Chapter 5 Architectural Design.
Information System Building Blocks
Presentation transcript:

Domain-Specific Software Engineering (DSSE)

Software Engineering Concerns  There are many of them  “Classical” software architecture research has focused on one –Technology is king  A SA can be expressed using architecture description language (ADL)

What’s Out There? Software Architecture

What’s Out There? Technology Software Architecture

What’s Out There? Technology Software Architecture Domain

What’s Out There? Technology Software Architecture Domain Business

The Three Lampposts (“3L”)  Excessive or exclusive focus on technology is a critical failing of early architecture research  3L provides the needed answer –Illuminates the space of architectural concerns appropriately –Provides the necessary broad perspective on architectures and their role in product development –Explains architectures’ successes and failures –Provides guidance for developers  Different lamps can still “shine” at different intensities Technology DomainBusiness

Technology DomainBusiness  Concerned with –Recurring technical challenges of engineering systems –Means for representing and reasoning about architectures –Examples: tools, applications, reusable components, infrastructure, methods  Results in –Type on analysis on various models (data flow, potential deadlock, system composition) –Linguistic means for describing architectures Interoperability among different ADLs –And some important ones How do we transform architectures into implementations

A Technology-Driven Architectural Model Technology DomainBusiness

Domain Technology DomainBusiness  Concerned with –Exploiting domain characteristics to aid system development –Means for representing and reasoning about problems in a given domain  Results in –Successful architectural approaches MetaH (Avionics ADL), C2 (components and message-based) –Specialized, deeper solutions –Reusable assets Including the architecture! –Engineers speaking the language of the target system’s users

How Domains Help Technology DomainBusiness  Traditional software development

How Domains Help Technology DomainBusiness  Architecture-based software development

SE Problem Space Technology DomainBusiness

How Domains Really Help Technology DomainBusiness  Domain-specific architecture-based software development

Business Technology DomainBusiness  Concerned with –Capturing and exploiting knowledge of the business context –Costs Includes financial concerns  Results in –Product strategy (differentiate a product in target market) –Processes (create, manage, and evolve product) –Means for capturing multiple stakeholder perspectives –Characterization of desired product qualities –What specifically, in an architecture? Product relationships to each other in product lines Cost data per component

Putting It All Together Domain scopes the problem space Business goals and motivations Technology Generic solutions and tools Core Competencies Solutions and tools Specialized for a domain General Infrastructure Domain-Specific Engineering Product-Line Architectures

What Is DSSA?  Assemblage of software components –Specialized for particular type of task (domain) –Composed in standardized structure (topology) effective for building successful applications –E.g., IBM Deep Blue chess-playing game (elements designed to win a game), genetic- based SA (elements to mutate, select, crossover)

Components of DSSA  Domain model  Reference requirements  Reference architecture –Standardized architecture describing all systems in domain –Focuses on fundamental domain abstractions –Expressed in ADL  Supporting infrastructure/environment  Process/methodology to instantiate, refine, & evaluate it »Will Tracz, 1995

Why Domain-specific Architecture?  Development can be optimized –Domain-specific software patterns –Domain-specific models & methods to analyse  Reuse potential is maximized –Domain-specific requirements –Domain-specific components –Domain-specific software patterns

What Is A Domain Model?  “All models are wrong; some are useful.” »Unknown, SEI  Represents domain (problem space) –Functions being performed –Entities –Information  Fundamental objective: –Standardize problem domain’s terminology & semantics Terminology + semantics = ontology –Provides basis for standard descriptions of problems to be solved

Domain Analysis  Identify, describe, & organizing objects, operations and patterns –Described using standardized vocabulary –Abstracted to suit Class of similar systems Particular problem domain –To be reused when creating new systems  Produces domain model  “Domain analysis is like several blind men describing an elephant”

Elements Of Domain Model (1)  Customer needs statement –Identifies functional requirements –Informal –High-level –Ambiguous –Incomplete  Scenarios –Functional requirements –Data flow –Control flow –Elicited from the customer  Domain dictionary –Definitions of terms used –Updated over time

Elements Of Domain Model (2)  Context (block) diagram –High-level connection between major components of system  Entity-relationship/Class models –Aggregation (“a-part-of”) & generalization (“is-a”) relations  Data-/Message-flow models  State transition models  Object model –First phase of component interface design

What Are Reference Requirements?  Requirements that apply to entire domain  Contain –Defining characteristics of problem space Functional requirements Non-functional (Qualities) requirements –Limiting characteristics (constraints) on solution space Non-functional requirements (e.g., security, performance) Design requirements (e.g., architectural style, UI style) Implementation requirements (e.g., platform, language)

What Is Reference Architecture?  Standardized, generic architecture describing “all” systems in domain –Focuses on fundamental abstractions Expose a hierarchical, compositional nature Syntax & semantics of constituent high-level components are specified –Satisfies reference requirements May need set of reference architectures to satisfy all reference requirements –Reusable, extendable, & configurable  Instantiated to create design architecture for specific system

Elements Of Reference Architecture  Reference architecture model –Topology based on architectural style –Component dependency diagram –Component interface descriptions –Constraints Parameter value ranges & relationships  Architecture schema or design record –Information about components & design alternatives –Domain- & implementation-specific  Rationale  Configuration decision tree –Used to instantiate system from reference architecture

DSSA Process With Principal Supporting Tool Types

DSSA Support Tool Types  Domain modeling tools  Requirements management tools –Describe new application objects, attributes, & relationships –Detect inconsistency, incompleteness, ambiguity  Architecture specification tools –Refine reference architectures –Describe & constrain components & connectors  Architecture refinement & evolution tools –Configure reference architecture to meet application-specific requirements –Specify & instantiate components –Compose configurations into executable form

Three Layers of DSSA Environments

Avionics DSSA  Avionics Domain Application Generation Environment (ADAGE)  Layered reference architecture –Subsystems decomposed into primitive components with standardized interfaces –Over 40 different realms with over 350 distinct components realm  { x : component | (  i,j) (x i.interface = x j.interface) }

ADAGE Reference Architecture Model  Defined by –Component realms –Domain-specific composition constraints  Even simple avionics systems often require over 50 distinct components stacked 15 layers deep

Summary  Domain-Specific Software Architecture (DSSA) is –Generalized solution for particular type of problem (domain) Domain model Reference requirements Reference (parameterized) architecture Supporting infrastructure/environment Process/methodology to instantiate, refine, & evaluate it –Configurable for specific problem  Benefits –Efficient development Don’t need to start from scratch –Requirements –Design –Implementation –Reuse Requirements Components Architectures/patterns