Top Banner
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 IS International Conference on Computer Science, Software Engineerin Information Technology, e-Business, and Applications (CSITeA’02)
36

An approach for Framework Construction and Instantiation Using Pattern Languages

Jan 27, 2016

Download

Documents

Anisa

An approach for Framework Construction and Instantiation Using Pattern Languages. ACIS International Conference on Computer Science, Software Engineering, Information Technology, e-Business, and Applications (CSITeA’02 ). Rosana Teresinha Vaccare Braga Paulo Cesar Masiero - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 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