Pattern-based tool support for frameworks towards architecture-oriented software development environment
Hautamäki, J. (2005)
Hautamäki, J.
Tampere University of Technology
2005
Tietotekniikan osasto - Department of Information Technology
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tty-200810021067
https://urn.fi/URN:NBN:fi:tty-200810021067
Tiivistelmä
Software engineering aims at techniques for producing better software products with less resources. A central concept for achieving this goal is a product line architecture. Frameworks are a popular object-oriented way to implement product line architectures. However, frameworks are often difficult to learn and their specializations consist of small and crosscutting logical entities that overlap with other design solutions of the software product. Implementation becomes fragmented, difficult to trace, and the original reasoning of the design is easily forgotten. Thus, the essential problems to be solved are the following:
* How to teach the software developer to understand different frameworks and design principles in the context of her software product?
* How to guide the software developer to use frameworks and product line architectures?
* How to maintain and document implemented design solutions and framework specializations?
In this dissertation it is argued that a practical pattern-based approach can be used to support the software developer to learn, implement, and sustain design solutions in her software project. Instructions, like how to use a particular framework, can be given as simple pattern specifications; a tool takes these specifications as input and generates tasks as output. The generated programming tasks will guide the software developer to gradually instantiate the patterns, repair possible violations, and in that way to adopt and maintain the design. Integrating the pattern-based tool support with a common software development environment makes that environment architecture-oriented in terms of the patterns used.
The main contributions of this dissertation are the following:
* Participation in the development of the Fred/JavaFrames tool concept.
* A description of a general pattern-based tool support that allows the use of the pattern concept in different software development environments, making the environment architecture-oriented.
* Integration of such a tool platform into the Eclipse environment.
* A goal-oriented process to use the pattern-based tool support to specialize frameworks.
* A specification of the extension interface of the tool platform using the tool itself.
* An evaluation of the pattern-based approach for framework engineering using case studies.
* How to teach the software developer to understand different frameworks and design principles in the context of her software product?
* How to guide the software developer to use frameworks and product line architectures?
* How to maintain and document implemented design solutions and framework specializations?
In this dissertation it is argued that a practical pattern-based approach can be used to support the software developer to learn, implement, and sustain design solutions in her software project. Instructions, like how to use a particular framework, can be given as simple pattern specifications; a tool takes these specifications as input and generates tasks as output. The generated programming tasks will guide the software developer to gradually instantiate the patterns, repair possible violations, and in that way to adopt and maintain the design. Integrating the pattern-based tool support with a common software development environment makes that environment architecture-oriented in terms of the patterns used.
The main contributions of this dissertation are the following:
* Participation in the development of the Fred/JavaFrames tool concept.
* A description of a general pattern-based tool support that allows the use of the pattern concept in different software development environments, making the environment architecture-oriented.
* Integration of such a tool platform into the Eclipse environment.
* A goal-oriented process to use the pattern-based tool support to specialize frameworks.
* A specification of the extension interface of the tool platform using the tool itself.
* An evaluation of the pattern-based approach for framework engineering using case studies.
Kokoelmat
- Väitöskirjat [4607]