Domain Engineering Arie van Deursen May 2001. 2 Software Product Line  Group of products  sharing a common, managed set of features  to satisfy the.

Slides:



Advertisements
Similar presentations
Systems Development Environment
Advertisements

Domain Engineering Silvio Romero de Lemos Meira
Chapter 22 Product Line Engineering Week 1 CIS 673.
Software Reuse SEII-Lecture 28
Chapter 2 The Software Process
Analysis Modeling.
DARE Domain Analysis and Reuse Environment סמינר: נושאים מתקדמים בהנדסת תכנה מרצה: ד"ר איריס ריינהרץ- ברגר סמסטר א', תשס"ז אהרוני ענת ברזני ערבה.
ITIL: Service Transition
Page 1 Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based Systems Chapter 3 Architecting Component-Based Systems.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
System Design and Analysis
Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools Anna Liu Senior Architect Advisor Microsoft Australia.
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
1 Lecture 5 Introduction to Software Engineering Overview  What is Software Engineering  Software Engineering Issues  Waterfall Model  Waterfall Model.
A Domain-Specific Language for Financial Products Arie van Deursen May 2001.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Software Product Line Architectures (SPLA) Nipun Shah
Domain-Specific Software Engineering Alex Adamec.
Chapter 7: The Object-Oriented Approach to Requirements
Introduction To System Analysis and design
2 Approaches to Requierements Engineering Reference: Systems Analysis and Design in a Changing World, 3 rd Edition, chapter 2 and chapter 6.
Formalizing and Analyzing Feature models in Alloy
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14Slide 1 Design with Reuse l Building software from reusable components.
UML - Development Process 1 Software Development Process Using UML (2)
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
Ontology Development Kenneth Baclawski Northeastern University Harvard Medical School.
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 6 Slide 1 Chapter 6 Requirements Engineering Process.
1 The Architectural Design of FRUIT: A Family of Retargetable User Interface Tools Yi Liu, H. Conrad Cunningham and Hui Xiong Computer & Information Science.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
Database Design - Lecture 2
Information systems defined small enterprise characteristics Information needs of the small enterprise the systems development life cycle computer information.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Requirements Engineering Processes l Processes used to discover, analyse and.
REUSE-Re-Engineering The Software Process By Venkat Praveen Medikonda.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
Generative Programming. Automated Assembly Lines.
1 Introduction to Software Engineering Lecture 1.
Notes of Rational Related cyt. 2 Outline 3 Capturing business requirements using use cases Practical principles  Find the right boundaries for your.
240 3/30/98 CSE 143 Object-Oriented Design [Chapter 10]
INRIA - LaBRICharles Consel Jan-06 1 Domain-Specific Software Engineering Charles Consel Phoenix Research Group LaBRI /INRIA-Futurs January 2006.
Roles in Software Development using Domain Specific Modelling Languages Holger Krahn, Bernhard Rumpe, Steven Völkel Software Systems Engineering Technische.
Active Components a Software Product Line Infrastructure Bas Geertsema Slinger Jansen Information and Computing Sciences University Utrecht VARI-ARCH Workshop.
Towards Multi-Paradigm Software Development Valentino Vranić Department of Computer Science and Engineering Faculty of Electrical Engineering.
Data Structures and Algorithms Dr. Tehseen Zia Assistant Professor Dept. Computer Science and IT University of Sargodha Lecture 1.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Software Engineering (CSI 321) Project Planning & Estimation 1.
Advanced Software Development Karl Lieberherr CSG 260 Fall Semester
Object-Oriented Parsing and Transformation Kenneth Baclawski Northeastern University Scott A. DeLoach Air Force Institute of Technology Mieczyslaw Kokar.
Chapter 18 Object Database Management Systems. Outline Motivation for object database management Object-oriented principles Architectures for object database.
UTA/ARRI. Enterprise Engineering for The Agile Enterprise Don Liles The University of Texas at Arlington.
INTRODUCTION TO COMPUTER PROGRAMMING(IT-303) Basics.
SE Seminar – IS Department Mazor Maya & Yuval Efrat December 2010 Griss, M.L.; Favaro, J.; d'Alessandro, M.;
Chapter 1 Assuming the Role of the Systems Analyst.
DARE: Domain analysis and reuse environment Minwoo Hong William Frakes, Ruben Prieto-Diaz and Christopher Fox Annals of Software Engineering,
ITIL: Service Transition
Software Factories - Today and Tomorrow
Software Engineering (CSI 321)
About the Presentations
Component Based Software Engineering
Designing Software for Ease of Extension and Contraction
Chapter 16 – Software Reuse
Chapter 16 – Software Reuse
Presentation transcript:

Domain Engineering Arie van Deursen May 2001

2 Software Product Line  Group of products  sharing a common, managed set of features  to satisfy the needs of a selected market  Examples:  Telephone switches: 5ESS  Mortgage / insurance portals  Customer Relation Management  On line banking SAP, Baan, PeopleSoft

3 Object-Oriented Application Framework  Framework:  Set of cooperating classes embodying an abstract design  For solutions to a family of related problems  Supporting reuse beyond the class level.  Building an appliction consists of adding class specializations  Inverse control

4 Product Line Savings  Economies of scale  Savings from using technology to  produce a greater volume of a single output  with the same or less inputs  Economies of scope  Savings from using technology to  build a greater diversity of outputs  with the same or less inputs

5 Domain / Application Engineering  Domain engineering:  Systematic approach to construct reusable assets in a given problem domain  Application engineering:  Use the assets to build specialized software systems in the given domain.  ( Product / customer development )

6 What is a Domain?  Domain as the “real world”  Adopted in OO / AI community  Domain as a set of systems:  Systematic software reuse community  Domain criteria  Mature, stable, economically viable  Use legacy systems to understand domain.

7 Domain Engineering  Activity of  collecting, organizing and storing past experience in building (parts of) systems  in a particular domain  in the form of reusable assets  as well as providing means for resuing these assets (retrieve, adapt, assemble,...)  when building new systems

8 ODM: Organization Domain Modeling 1. Plan Domain:  Set objectives, analyze stakeholders  Scope domain: selection criteria  Define domain: boundary conditions, examples, counter examples, main features,  relations to other domains.

9 ODM (2) 2. Model Domain  Acquire domain information: experts, legacy systems, literature, prototyping,...  Describe domain: lexicon of terms, commonality & variability: feature diagrams  Refine domain: build overall domain, analyze trade offs, innovative feature combinations

10 ODM (3) 3. Engineer Asset Base  Scope: correlate features and customers, prioritize, select.  Architect: external and internal constraints, components, domain-specific languages, generators, framework,...  Implement: OO, code generation,...

11 Car Feature Diagram Car Engine Pulls trailer Transmission Manual Automatic ElectricGasoline Car body

12 Car Class Diagram ElectricEngineGasolineEngine ElectricCar [transmission] GasolineCar [transmission] ElectricGasolineCar [transmission] Car[transmission] CarBody Trailer O..1

13 Feature Diagrams  Node types:  Mandatory / Optional  Alternatives / Or-features  Diagram generates instances  Commonality: feature in all instances  Variation point: optional, alternative, or.  Find variation dependencies.  No implementation bias Car Engine Pulls trailer Transmission Manual Automatic

14 Imperative Lists List Ownership External Reference Owned Reference Copy Morphology Length Counter Tracing Mono morphic Poly morphic

15 Interest Rate Products Product Deposit Principle Amount Start Date Maturity Date Currency DEM, USD, EUR,... Interest Amount Swap Fixed Deposit Floating Deposit PeriodConventionRate Simple, Dutch, 360,...

16 Finding Features  Use feature starter sets  Record similarities between instances  Record differences between instances  Organize features into hierarchies  Analyze feature combinations  Record additional feature information  Identify more features than needed

17 Generative Programming  A software engineering paradigm in which  given a particular requirements specification  a highly customized and optimized intermediate or end-product  can be automatically manufactured on demand  from elementary, reusable implementation components  by means of configuration knowledge

18 Domain-Specific Languages  Expressive over variable features  Composition, defaults, dependencies, pragma’s, illegal combinations  Common features built-in / in compiler.  Expression DSL:  Domain-specific computations  Configuration DSL:  Specify a concrete program family member

19 Further Reading  ODM Guide Book  Generative programming chapter 2 + 4, and examples in chs 12, 13, 14.  From the Transform Wiki:  Annotated Bibliography  Little Languages: Little Maintenance?  Draco transformation system and domain engineering methodology.

20 Summary  Domain engineering  Product Line  Economy of Scope  Domain  ODM  Variability  Commonality  Feature Diagrams  Class Diagrams  Generative Programming  Domain Specific Languages

21 Project  Tool support for feature diagrams  Design language apply to simple examples analyze consequences of realistic examples  Implement normalizations  Generate pictures  Suggest class diagram options