1 / 36

An approach for Framework Construction and Instantiation Using Pattern Languages

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

anisa
Download Presentation

An approach for Framework Construction and Instantiation Using Pattern Languages

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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 ICMC-USP: Institute of Mathematical and Computer Sciences of the University of São Paulo São Carlos – SP – Brazil

  2. 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. 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. 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

  5. 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

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

  8. 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

  9. 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

  10. 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

  11. GRN: 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)

  12. 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

  13. 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

  14. 4 - 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

  15. Example of GREN classes

  16. 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

  17. 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

  18. 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 screen Example of GREN-Wizard report

  19. 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

  20. 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

  21. 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

  22. 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

  23. 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

  24. 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.

  25. 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.

  26. 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.

  27. Contact • Rosana: rtvb@icmc.sc.usp.br • Paulo: masiero@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

  28. 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 ICMC-USP: Institute of Mathematical and Computer Sciences of the University of São Paulo São Carlos – SP – Brazil

  29. Example of Hot Spots table

  30. GREN Wizard: A Tool to Automate GREN Instantiation

  31. Example of a report generated by GREN-Wizard

  32. Example of an application generated by the GREN-Wizard

  33. Example of an application generated by the GREN-Wizard

  34. Example of an application generated by the GREN-Wizard

  35. Example of an application generated by the GREN-Wizard

More Related