Domain Engineering Silvio Romero de Lemos Meira

Slides:



Advertisements
Similar presentations
Introduction to Product Family Engineering. 11 Oct 2002 Ver 2.0 ©Copyright 2002 Vortex System Concepts 2 Product Family Engineering Overview Project Engineering.
Advertisements

Profiles Construction Eclipse ECESIS Project Construction of Complex UML Profiles UPM ETSI Telecomunicación Ciudad Universitaria s/n Madrid 28040,
Chapter 22 Product Line Engineering Week 1 CIS 673.
Domain Engineering Arie van Deursen May Software Product Line  Group of products  sharing a common, managed set of features  to satisfy the.
System Modelling System modelling helps the analyst to understand the functionality of the system and models are used to communicate with customers. Different.
Requirements Engineering n Elicit requirements from customer  Information and control needs, product function and behavior, overall product performance,
Object-Oriented Analysis and Design
Building Enterprise Applications Using Visual Studio ®.NET Enterprise Architect.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 System models.
Domain-Specific Software Engineering (DSSE). Software Engineering Concerns  There are many of them  “Classical” software architecture research has focused.
Software IMprovement using Product LinEs Project Presentation (I) - Domain Analysis Results Liana Lisboa - PM Project: Starship Games PL.
Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools Anna Liu Senior Architect Advisor Microsoft Australia.
RiSE Project: Towards a Robust Framework for Software Reuse Student: Eduardo Santana de Almeida Advisor: Silvio Romero de Lemos Meira Federal University.
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
© Copyright Eliyahu Brutman Programming Techniques Course.
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.
NON-FUNCTIONAL PROPERTIES IN SOFTWARE PRODUCT LINES: A FRAMEWORK FOR DEVELOPING QUALITY-CENTRIC SOFTWARE PRODUCTS May Mahdi Noorian
Domain-Specific Software Engineering Alex Adamec.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
Formalizing and Analyzing Feature models in Alloy
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
ARTIFICIAL INTELLIGENCE [INTELLIGENT AGENTS PARADIGM] Professor Janis Grundspenkis Riga Technical University Faculty of Computer Science and Information.
Software Product Families. Generative Programming Main text: Ian Sommerville, Software Engineering, 8 th edition, chapter 18 Additional readings: K. Czarnecki.
Requirements Analysis
A Generative and Model Driven Framework for Automated Software Product Generation Wei Zhao Advisor: Dr. Barrett Bryant Computer and Information Sciences.
Robert Tairas, Marjan Mernik, Jeff Gray Using Ontologies in the Domain Analysis of Domain-Specific Languages Workshop on Transformation and Weaving Ontologies.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
Chapter 4 System Models A description of the various models that can be used to specify software systems.
System models Abstract descriptions of systems whose requirements are being analysed Abstract descriptions of systems whose requirements are being analysed.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
TC Methodology Massimo Cossentino (Italian National Research Council) Radovan Cervenka (Whitestein Technologies)
An Introduction to Software Architecture
9/14/2012ISC329 Isabelle Bichindaritz1 Database System Life Cycle.
Project Coordinators: Eduardo Santana de Almeida Silvio Romero de Lemos Meira Federal University of Pernambuco Informatics Center Recife Center for Advanced.
1 MFI-5: Metamodel for Process models registration HE Keqing, WANG Chong State Key Lab. Of Software Engineering, Wuhan University
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
1/26/2004TCSS545A Isabelle Bichindaritz1 Database Management Systems Design Methodology.
Chapter 7 System models.
Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida
System models l Abstract descriptions of systems whose requirements are being analysed.
Pertemuan 19 PEMODELAN SISTEM Matakuliah: D0174/ Pemodelan Sistem dan Simulasi Tahun: Tahun 2009.
Modified by Juan M. Gomez Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
Software Engineering, 8th edition Chapter 8 1 Courtesy: ©Ian Somerville 2006 April 06 th, 2009 Lecture # 13 System models.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
1 Introduction to Software Engineering Lecture 1.
L8 - March 28, 2006copyright Thomas Pole , all rights reserved 1 Lecture 8: Software Asset Management and Text Ch. 5: Software Factories, (Review)
Component Based SW Development and Domain Engineering 1 Component Based Software Development and Domain Engineering.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
Using Several Ontologies for Describing Audio-Visual Documents: A Case Study in the Medical Domain Sunday 29 th of May, 2005 Antoine Isaac 1 & Raphaël.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Requirements Analysis
Nigel Baker UWE & CERN/EP-CMA Design Patterns for Integrating Product and Process Models The C.R.I.S.T.A.L. Project ( C ooperative R epositories & I nformation.
SE Seminar – IS Department Mazor Maya & Yuval Efrat December 2010 Griss, M.L.; Favaro, J.; d'Alessandro, M.;
Technische Universität München © Prof. Dr. H. Krcmar An Ontology-based Platform to Collaboratively Manage Supply Chains Tobias Engel, Manoj Bhat, Vasudhara.
Guidelines of Business Process Modeling Team: Alejandra Saavedra Andrea Rodriguez Ez Lawrence.
Page 1 Feature Modeling and Configuration Management Roche Diagnostics, 16 th October 2007 O. Rohlik (ETH Zurich and P&P Software)
Building Enterprise Applications Using Visual Studio®
Lecture 9- Design Concepts and Principles
Component Based Software Engineering
Abstract descriptions of systems whose requirements are being analysed
Knowledge Representation
Lecture 9- Design Concepts and Principles
Architecture Description Languages
Presentation transcript:

Domain Engineering Silvio Romero de Lemos Meira Eduardo Santana de Almeida silvio@cesar.org.br esa2@cin.ufpe.br

Based on Generative Programming: Methods, Tools, and Applications by Krzysztof Czarnecki, Ulrich Eisenecker

Agenda Domain Engineering Key Concepts Features and Feature Models Components Steps Key Concepts Features and Feature Models The Importance Example Commonality and Variability

What is Domain Engineering? Domain Engineering (DE) is the activity of collecting, organizing, and storing past experience in building systems or parts of systems in a particular domain in the form of reusable assets, as well as providing an adequate means for reusing these assets when building (i.e., retrieval, qualification, dissemination, adaptation, assembly, and so on) new systems. Steps: Domain Analysis Domain Design Domain Implementation

Software Development based on DE Domain Engineering Domain knowledge System Family Architecture Domain Model Domain Analysis Domain Design Domain Implem. Domain-specific languages Components Generators New Requirements Custom Design Custom Development New Requirements Customer Needs Requirements Analysis Product Configuration Integration and Test Features Product Configuration Product Application Engineering

Domain Engineering’s Components Domain Engineering Process Component Main Purpose Domain Analysis Domain scooping and defining a set of reusable, configurable requirements for the systems in the domain Domain Design Developing a common architecture for the system in the domain and devising a production plan Domain Implementation Implementing the reusable assets, for example, reusable components, domain-specific languages, generators, a reuse infrastructure, and a production plan

Domain Analysis Purpose: Sources of domain information: Select and define the domain of focus Collect the relevant domain information and integrate it into a coherent domain model Sources of domain information: Existing systems, domain experts, textbooks, experiments.....

Domain Model A domain model is an explicit representation of the common and the variable properties of the system in a domain, the semantics of the properties and domain concepts, and the dependencies between the variable properties Domain model’s components: Domain Definition Defines: the scope of a domain; existing systems; rationale for including or excluding a given system. Domain Lexicon Domain vocabulary Concept models Concept’s descriptions (object diagrams, interaction, state….) Feature models

Domain Design and Domain Implementation Purpose: To develop an architecture for the family of systems in the domain and to devise a production plan Input – Application Engineering

Concepts Domain Infinite Domain as the “real world” An area of knowledge or activity characterized by a set of concepts and terminology understood by practitioners in that area Domain as a set of systems knowledge “real world” + How to build software systems Domain: An area of knowledge Scoped to maximize the satisfaction of the requirements of its stakeholders Includes a set of concepts and terminology understood by practitioners in that area Includes the knowledge of how to build software systems in that area

Domain Scope and Scoping Horizontal scope How many different systems are in the domain? Vertical scope Which parts of these systems are in the domain? Encapsulated x Diffused domains

Relationships between domains A is contained in B A uses B A is analogous to B

Features and Feature Model An end-user-visible characteristic of a system A distinguishable characteristic of a concept that is relevant to some stakeholder of the concept Elements: Feature diagram Feature definitions Composition rules Rationale for features

Example Car Transmission Horsepower Air Conditioning Automatic Manual Optional Feature Mandatory Features Transmission Horsepower Air Conditioning Composition rule: “Air Conditioning” requires “horsepower” >100 Alternative Features Automatic Manual Rationale “Manual” more Fuel efficient

Feature Modeling: The importance Reusable software Variability Key technique To Identity and capture variability To avoid Relevant features and variations points are not included in the reusable software Many features and variations points are included but never used {complexity, costs}

Feature Models Represents the common and the variable features of concept instances and the Dependencies between the variable features Elements Feature Diagram Semantic descriptions of each features Client programs Exemplar systems Constraints Priorities

Feature Diagrams Mandatory Features Optional Features Alternative Features

Mandatory Features C f1 f2 f3 f4 Feature set {C, f1, f2, f3, f4}

Optional Features C f1 f2 f3 Feature set {C} , {C, f1}, {C, f1, f3}, {C, f2}, {C, f1, f2}, {C, f1, f3, f2}

Alternative Features C f1 f2 f3 f4 f5 Feature set {C, f1, f3} , {C, f1, f4}, {C, f1, f5}, {C, f2, f3}, {C, f2, f4}, {C, f2, f5}

Expressing Commonality and Variability What features are common to all instances of the concept? {focus on concept} What features are common to all instances of the concept that have that particular feature? {focus on feature} Variability Use of optional or alternative features Variation points (nodes)

Questions ?

Next class: Cap 02.