Title: An approach for Framework Construction and Instantiation Using Pattern Languages
1An approach for Framework Construction and
Instantiation Using Pattern Languages
ACIS International Conference on Computer
Science, Software Engineering, Information
Technology, e-Business, and Applications
(CSITeA02)
- 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
2Contents
- 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
3Contents
- 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
41 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
51 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
6Contents
- 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
72 - Approach for Framework Construction and
Instantiation
8Contents
- 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
93 - 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
103 - 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
11GRN A Pattern Language for Business Resource
Management
Identify the Resource (1)
Quantify the Resource (2)
Store the Resource (3)
Rent the Resource (4)
Trade the Resource (6)
Maintain theResource (9)
Quote the Trade (7)
Quote the Maintenance (10)
Reserve the Resource (5)
Check Resource Delivery (8)
Identify Maintenance Tasks (14)
Itemize the Resource Transaction (11)
Pay for the Resource Transaction (12)
Identify Maintenance Parts (15)
Identify the Resource Executor (13)
12Contents
- 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
134 - 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
144 - White-box Framework Development
- Steps
- 1) Identify the framework hot-spots, using the
pattern language. - 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
15Example of GREN classes
16Contents
- 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
175 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
185 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 screen
Example of GREN-Wizard report
19Contents
- 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
206 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
216 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
226 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
23Contents
- 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
247 - 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.
257 - 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.
26Concluding 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.
27Contact
- Rosana rtvb_at_icmc.sc.usp.br
- Paulo masiero_at_icmc.sc.usp.br
- LABES (Software Engineering Lab at ICMC-USP)
http//nt-labes.icmc.sc.usp.br (in Portuguese
only) - My WEB page www.icmc.sc.usp.br/rtvb/ingles.html
28An approach for Framework Construction and
Instantiation Using Pattern Languages
ACIS International Conference on Computer
Science, Software Engineering, Information
Technology, e-Business, and Applications
(CSITeA02)
- 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
29(No Transcript)
30Example of Hot Spots table
31GREN Wizard A Tool to Automate GREN Instantiation
32Example of a report generated by GREN-Wizard
33Example of an application generated by the
GREN-Wizard
34Example of an application generated by the
GREN-Wizard
35Example of an application generated by the
GREN-Wizard
36Example of an application generated by the
GREN-Wizard