An approach for Framework Construction and Instantiation Using Pattern Languages Rosana Teresinha Vaccare Braga Paulo Cesar Masiero ICMC-USP: Institute.

Slides:



Advertisements
Similar presentations
TU e technische universiteit eindhoven / department of mathematics and computer science Modeling User Input and Hypermedia Dynamics in Hera Databases and.
Advertisements

Systems Development Environment
Designing Multimedia with Fuzzy Logic Enrique Diaz de Leon * Rene V. Mayorga ** Paul D. Guild *** * ITESM, Guadalajara Campus, Mexico ** Faculty of Engineering,
Difference between project and other assignments  real customer  before programming: negotiations with client to clarify requirements  often.
SERL - Software Engineering Research Labslide1 Frameworks and Hooks by Garry Froehlich Paul Sorenson SERL (Software Engineering Research Lab)
Object-Oriented Analysis and Design
Introduction To System Analysis and Design
July 11 th, 2005 Software Engineering with Reusable Components RiSE’s Seminars Sametinger’s book :: Chapters 16, 17 and 18 Fred Durão.
Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
1 SWE Introduction to Software Engineering Lecture 5.
 Copyright 2005 Digital Enterprise Research Institute. All rights reserved. WSMX Data Mediation Adrian Mocan
Overview of Software Requirements
CS 290C: Formal Models for Web Software Lecture 6: Model Driven Development for Web Software with WebML Instructor: Tevfik Bultan.
Supplement 02CASE Tools1 Supplement 02 - Case Tools And Franchise Colleges By MANSHA NAWAZ.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Difference between project and other assignments real customer before programming: negotiations with client to clarify requirements often changes.
Course Instructor: Aisha Azeem
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Software Product Line Engineering Andrew Burmester SE 4110 Section 2 4/14/11.
Chapter 1 The Systems Development Environment
The chapter will address the following questions:
Chapter 6 – Architectural Design Lecture 2 1Chapter 6 Architectural design.
The Design Discipline.
Aurora: A Conceptual Model for Web-content Adaptation to Support the Universal Accessibility of Web-based Services Anita W. Huang, Neel Sundaresan Presented.
DBMS USERS.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
C HU H AI C OLLEGE O F H IGHER E DUCATION D EPARTMENT O F C OMPUTER S CIENCE Preparation of Final Year Project Report Bachelor of Science in Computer Science.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
Copyright © 2013 Curt Hill The Zachman Framework What is it all about?
1 Introduction to Database Systems. 2 Database and Database System / A database is a shared collection of logically related data designed to meet the.
Chapter 2: Software Process Omar Meqdadi SE 2730 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Project Coordinators: Eduardo Santana de Almeida Silvio Romero de Lemos Meira Federal University of Pernambuco Informatics Center Recife Center for Advanced.
Presented by Khaled Chebaro, Yaser Jafar, Orin Pereira KYO Engineering Consultants Inc. on 27/11/07 Automated Banking Machine for MacBank Inc. SFWR 3M04.
Requirements Engineering Requirements Elicitation Process Lecture-8.
© 2006 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 Gathering Network Requirements Designing and Supporting Computer Networks – Chapter.
Introduction To System Analysis and Design
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
CSE 219 Computer Science III Program Design Principles.
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
Lecture 7: Requirements Engineering
L8 - March 28, 2006copyright Thomas Pole , all rights reserved 1 Lecture 8: Software Asset Management and Text Ch. 5: Software Factories, (Review)
Web Engineering and Technology Unit I. Categories/Types of Web-Based Systems CategoryExamples Document centricOnline newspapers, manuals InteractiveRegistration.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
Chapter 5: Software Re-Engineering Omar Meqdadi SE 3860 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Future Work  Formal specification of modeling language semantic is key issue  Reliance on well-established formal models of computation (i.e. finite.
RE-ENGINEERING AND DOMAIN ANALYSIS BY- NISHANTH TIRUVAIPATI.
C HU H AI C OLLEGE O F H IGHER E DUCATION D EPARTMENT O F C OMPUTER S CIENCE Preparation of Final Year Project Report Bachelor of Science in Computer Science.
ANALYSIS PHASE OF BUSINESS SYSTEM DEVELOPMENT METHODOLOGY.
1 Here are some quotations to get an overview of the kinds of issues of interest.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Yu, et al.’s “A Model-Driven Development Framework for Enterprise Web Services” In proceedings of the 10 th IEEE Intl Enterprise Distributed Object Computing.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Introduction to Software Engineering 1. Software Engineering Failures – Complexity – Change 2. What is Software Engineering? – Using engineering approaches.
  ONLINE DORMITORY RESERVATION SYSTEM By RAMYA VAKITY KOUSHIK KUMAR SURAGONI MOTHE ADITHYA    GRADUATE CAPSTONE SEMINAR PROJECT    Submitted in partial.
CompSci 280 S Introduction to Software Development
The Development Process of Web Applications
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Chapter 1 OBJECT-ORIENTED ANALYSIS AND DESIGN
Evaluating Compuware OptimalJ as an MDA tool
ece 627 intelligent web: ontology and beyond
Analysis models and design models
PPT1: Basics of software engineering
Automated Analysis and Code Generation for Domain-Specific Models
Chapter 6: Architectural Design
Software Development Process Using UML Recap
Presentation transcript:

An approach for Framework Construction and Instantiation Using Pattern Languages Rosana Teresinha Vaccare Braga Paulo Cesar Masiero ICMC-USP: Institute of Mathematical and Computer Sciences of the University of São Paulo São Carlos – SP – Brazil ACIS International Conference on Computer Science, Software Engineering, Information Technology, e-Business, and Applications (CSITeA’02)

Contents 1- Introduction and motivation 2- Overview of the approach 3- Pattern Language Development 4- White-box Framework Development 5- Wizard development 6- Framework instantiation 7- Concluding remarks

Contents 1- Introduction and motivation 2- Overview of the approach 3- Pattern Language Development 4- White-box Framework Development 5- Wizard development 6- Framework instantiation 7- Concluding remarks

1 – Introduction and Motivation Software Reuse: –Software Patterns: capture experience acquired during software development, synthesizing it in a problem/solution pair. –Pattern languages: organization of the knowledge about a specific domain into specific patterns that can be systematically applied in the development of systems in the same domain. –Frameworks: set of abstract and concrete classes that can be customized to produce specific applications. Problem: complexity to build and use frameworks

1 – Introduction and Motivation Relationship between frameworks and pattern languages: –Pattern languages can be used to: document the framework Support the framework design and implementation Guide the transformation of the framework into a concrete application Our proposal: –an approach to develop a framework from a pattern language, and –to use this pattern language to instantiate the framework to specific applications

Contents 1- Introduction and motivation 2- Overview of the approach 3- Pattern Language Development 4- White-box Framework Development 5- Wizard development 6- Framework instantiation 7- Concluding remarks

2 - Approach for Framework Construction and Instantiation Specific Systems Pattern Language Development Experience in a specific domain STEP 1 Specific System Specific System Wizard Programming language STEP 3 Wizard Development Pattern Language Programming language Requirements of a Specific Application STEP 4 (a) White-box- driven Instantiation "Cookbook" White-box Framework Pattern Language Wizard- driven Instantiation Requirements of a Specific Application STEP 4 (b) Design- patterns/ metapatterns STEP 2 Programming language White-box Framework Development

Contents 1- Introduction and motivation 2- Overview of the approach 3- Pattern Language Development 4- White-box Framework Development 5- Wizard development 6- Framework instantiation 7- Concluding remarks

3 - Pattern Language Development Objective: building a pattern language to capture the domain functionality and to guide the development of applications in the domain Based on practical experience in the domain, domain analysis, or reverse engineering of existing systems

3 - Pattern Language Development Steps: –1) Produce an analysis model of the domain –2) Define the patterns of the pattern language Look at recurring analysis patterns that are implicit in the model Look at other pattern languages for equivalent domains Try to isolate each pattern according to specific functions performed Try to create optional patterns when there are optional functions –3) Analyze interaction among patterns Illustrate this information with a diagram Do the cross-reference in the “Following patterns” section

GRN: A Pattern Language for Business Resource Management Quantify the Resource Quantify the Resource (2) Store the Resource (3) Rent the Resource (4) Reserve the Resource (5) Trade the Resource (6) Quote the Trade (7) Check Resource Delivery (8) Maintain theResource (9) Quote the Maintenance (10) Identify Maintenance Tasks (14) Identify Maintenance Parts (15) Itemize the Resource Transaction (11) Pay for the Resource Transaction (12) Identify the Resource Executor (13) Identify the Resource (1)

Contents 1- Introduction and motivation 2- Overview of the approach 3- Pattern Language Development 4- White-box Framework Development 5- Wizard development 6- Framework instantiation 7- Concluding remarks

4 - White-box Framework Development Objective: building a set of classes to support the development of applications in the same domain of the pattern language The classes belonging to patterns of the pattern language have the corresponding implementation in the framework

4 - White-box Framework Development Steps: –1) Identify the framework hot-spots, using the pattern language.framework hot-spots –2) Design the framework, based on the list of hot spots and on the pattern language. –3) Implement the framework –4) Document the mapping between the pattern language and the framework, to ease future instantiation

Example of GREN classes

Contents 1- Introduction and motivation 2- Overview of the approach 3- Pattern Language Development 4- White-box Framework Development 5- Wizard development 6- Framework instantiation 7- Concluding remarks

5 – Wizard Development Objective: creating a tool with a graphical user interface that follows the pattern language concepts Specific applications can be implemented by following the wizard instructions, i.e., the pattern language is interactively applied by filling in the wizard screens

5 – Wizard Development Data about the patterns, variants, classes, etc. can be stored in a meta-database and retrieved by the wizard Information filled in by the user is also stored in a database. Automatic adaptation of the framework to the specific application Example of GREN-Wizard screenExample of GREN-Wizard report

Contents 1- Introduction and motivation 2- Overview of the approach 3- Pattern Language Development 4- White-box Framework Development 5- Wizard development 6- Framework instantiation 7- Concluding remarks

6 – Framework Instantiation Objective: Adapt the framework to specific applications, obtaining an executable code Types of instantiation: –Using the white-box version of the framework –Using the wizard

6 – Framework Instantiation –Instantiation using the white-box version of the framework Pattern language usage to obtain the analysis model of the application to instantiate Mapping from the analysis model to the framework classes Implementation of the application Validation of the application

6 – Framework Instantiation –Instantiation using the wizard Pattern language usage to obtain the analysis model of the application to instantiate Usage of the Wizard to fill in the patterns applied and respective roles played by each class in each pattern Implementation of the application (done by the wizard) Validation of the application Example of application generated using GREN-Wizard

Contents 1- Introduction and motivation 2- Overview of the approach 3- Pattern Language Development 4- White-box Framework Development 5- Wizard development 6- Framework instantiation 7- Concluding remarks

7 - Concluding Remarks The approach here proposed intends to promote software reuse, allowing developers to better understand and use frameworks Instantiation is eased because: –The framework architecture is related to the patterns of the pattern language –No technical knowledge about the framework implementation details is necessary to derive new applications from it.

7 - Concluding Remarks Not all types of pattern languages could help framework construction and instantiation. Candidate pattern languages: –those that concern problems to be solved during analysis of systems in the domain Information systems are an example of a domain that is suitable for this approach.

Concluding Remarks (continued) During the framework usage in the development of specific applications and because of the application domain evolution, new hot spots may be necessary. –In this case, the pattern language must also be updated, including new patterns or changing existing ones.

Contact Rosana: Paulo: LABES (Software Engineering Lab at ICMC-USP) ( in Portuguese only ) My WEB page:

An approach for Framework Construction and Instantiation Using Pattern Languages Rosana Teresinha Vaccare Braga Paulo Cesar Masiero ICMC-USP: Institute of Mathematical and Computer Sciences of the University of São Paulo São Carlos – SP – Brazil ACIS International Conference on Computer Science, Software Engineering, Information Technology, e-Business, and Applications (CSITeA’02)

Example of Hot Spots table

GREN Wizard: A Tool to Automate GREN Instantiation

Example of a report generated by GREN-Wizard

Example of an application generated by the GREN-Wizard