-
An approach for Framework Construction and Instantiation Using
Pattern LanguagesRosana Teresinha Vaccare BragaPaulo Cesar
MasieroICMC-USP: Institute of Mathematical and Computer Sciences of
the University of So PauloSo Carlos SP Brazil ACIS International
Conference on Computer Science, Software Engineering, Information
Technology, e-Business, and Applications (CSITeA02)
-
Contents1- Introduction and motivation2- Overview of the
approach3- Pattern Language Development4- White-box Framework
Development5- Wizard development6- Framework instantiation7-
Concluding remarks
-
Contents1- Introduction and motivation2- Overview of the
approach3- Pattern Language Development4- White-box Framework
Development5- Wizard development6- Framework instantiation7-
Concluding remarks
-
1 Introduction and MotivationSoftware 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 MotivationRelationship between frameworks and
pattern languages:Pattern languages can be used to:document the
frameworkSupport the framework design and implementationGuide the
transformation of the framework into a concrete applicationOur
proposal: an approach to develop a framework from a pattern
language, andto use this pattern language to instantiate the
framework to specific applications
-
Contents1- Introduction and motivation2- Overview of the
approach3- Pattern Language Development4- White-box Framework
Development5- Wizard development6- Framework instantiation7-
Concluding remarks
-
2 - Approach for Framework Construction and Instantiation
-
Contents1- Introduction and motivation2- Overview of the
approach3- Pattern Language Development4- White-box Framework
Development5- Wizard development6- Framework instantiation7-
Concluding remarks
-
3 - Pattern Language DevelopmentObjective: building a pattern
language to capture the domain functionality and to guide the
development of applications in the domainBased on practical
experience in the domain, domain analysis, or reverse engineering
of existing systems
-
3 - Pattern Language DevelopmentSteps:1) Produce an analysis
model of the domain2) Define the patterns of the pattern
languageLook at recurring analysis patterns that are implicit in
the modelLook at other pattern languages for equivalent domainsTry
to isolate each pattern according to specific functions
performedTry to create optional patterns when there are optional
functions3) Analyze interaction among patternsIllustrate this
information with a diagramDo the cross-reference in the Following
patterns section
-
GRN: A Pattern Language for Business Resource ManagementQuantify
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)
-
Contents1- Introduction and motivation2- Overview of the
approach3- Pattern Language Development4- White-box Framework
Development5- Wizard development6- Framework instantiation7-
Concluding remarks
-
4 - White-box Framework DevelopmentObjective: building a set of
classes to support the development of applications in the same
domain of the pattern languageThe classes belonging to patterns of
the pattern language have the corresponding implementation in the
framework
-
4 - White-box Framework DevelopmentSteps: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 framework4) Document the mapping between
the pattern language and the framework, to ease future
instantiation
-
Example of GREN classes
-
Contents1- Introduction and motivation2- Overview of the
approach3- Pattern Language Development4- White-box Framework
Development5- Wizard development6- Framework instantiation7-
Concluding remarks
-
5 Wizard DevelopmentObjective: creating a tool with a graphical
user interface that follows the pattern language conceptsSpecific
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 DevelopmentData about the patterns, variants, classes,
etc. can be stored in a meta-database and retrieved by the
wizardInformation filled in by the user is also stored in a
database.Automatic adaptation of the framework to the specific
applicationExample of GREN-Wizard screenExample of GREN-Wizard
report
-
Contents1- Introduction and motivation2- Overview of the
approach3- Pattern Language Development4- White-box Framework
Development5- Wizard development6- Framework instantiation7-
Concluding remarks
-
6 Framework InstantiationObjective: Adapt the framework to
specific applications, obtaining an executable codeTypes of
instantiation:Using the white-box version of the frameworkUsing the
wizard
-
6 Framework InstantiationInstantiation using the white-box
version of the frameworkPattern language usage to obtain the
analysis model of the application to instantiateMapping from the
analysis model to the framework classesImplementation of the
application Validation of the application
-
6 Framework InstantiationInstantiation using the wizardPattern
language usage to obtain the analysis model of the application to
instantiateUsage of the Wizard to fill in the patterns applied and
respective roles played by each class in each patternImplementation
of the application (done by the wizard)Validation of the
applicationExample of application generated using GREN-Wizard
-
Contents1- Introduction and motivation2- Overview of the
approach3- Pattern Language Development4- White-box Framework
Development5- Wizard development6- Framework instantiation7-
Concluding remarks
-
7 - Concluding RemarksThe approach here proposed intends to
promote software reuse, allowing developers to better understand
and use frameworksInstantiation is eased because:The framework
architecture is related to the patterns of the pattern languageNo
technical knowledge about the framework implementation details is
necessary to derive new applications from it.
-
7 - Concluding RemarksNot 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 domainInformation 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.
-
ContactRosana: [email protected]:
[email protected]
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
-
An approach for Framework Construction and Instantiation Using
Pattern LanguagesRosana Teresinha Vaccare BragaPaulo Cesar
MasieroICMC-USP: Institute of Mathematical and Computer Sciences of
the University of So PauloSo Carlos SP Brazil ACIS International
Conference on Computer Science, Software Engineering, Information
Technology, e-Business, and Applications (CSITeA02)
-
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
-
Example of an application generated by the GREN-Wizard
-
Example of an application generated by the GREN-Wizard
-
Example of an application generated by the GREN-Wizard