|Home > Publications > PhD theses > Informatics (CW)|
Pattern-based approach for object-oriented software design
Advisor: Eric Steegmans
Today's development of software products poses many organisational, and technical challenges. A characteristic of software that addresses real-world applications is the inevitable need to evolve if it is to remain satisfactory to its stakeholders. Within the research community, the term software evolution is increasingly being used to describe the phenomena of software change and maintenance. Such changes to software systems tend to be progressive and incremental. Software evolution is and will continue to be of major economic and social importance.
Furthermore, issues of largeness compound the challenges to achieve disciplined software evolution. Large-scale industrial systems generally consist of numerous software artifacts that need to evolve in a harmonious fashion. The challenges posed by the continual of these and similar systems clearly surpass the current state-of-the art. To deal with this crucial problem, we propose a pattern-based approach for designing quality software systems. The overall objective of the patterns is to present proper solutions for recurring design problems.
From a technical perspective, this means that we want to support developers in defining architectures, which meet the needs of the systems they are building. In particular, patterns help them to create the most effective solutions for the design problems at hand, under the constraints imposed on them by their clients.
From a human perspective, the intent of each pattern is to enable developers to understand and control the design process and provide designs with good quality.
In this thesis we have presented 14 patterns for object-oriented design. Most of them deal with relational structures involving existential dependency and constraint of multiplicity and mutability. The patterns take care of the evolutionary nature of the software development process in which we can adjust the resulting structure whenever necessary.
An added characteristic of the patterns we developed is that each pattern emphasizes different quality factors. In this way, software engineers will be much more aware of the impact of decisions they take during the design process.text (.pdf, 1.6M) / mailto: som team