Abstract:
Software architectural design patterns represent best practice solutions to common design
challenges. However, applying design patterns in practice can be difficult because they
are typically documented to be domain independent. This makes applying them in a
particular domain difficult. Knowing where and at what level of abstraction software
architectural design patterns should be applied in a given domain is not always clear.
Currently, there are no existing approaches for building and validating domain specific
software architectures that focus on reusing and composing existing software
architectural design patterns. This dissertation addresses this gap by developing a
software product line (SPL) based approach to building and validating domain specific
software architectures from software architectural design patterns.
The key contributions of this research include: the definition of distributed real-time and
embedded (DRE) executable design patterns; the definition of a SPL design approach that
captures SPL variability at a higher degree of granularity using design patterns; the
definition of different levels of required executable design pattern customizations; and a
feature and design pattern based functional validation approach. Additionally, a domain
specific SPL and two real world case studies are provided to validate and demonstrate the
applicability of this approach.