Using Styles in Design

This chapter discusses the use of architectural styles in software design. It presents a set of design rules to provide guidelines for the choices of architectural styles. Making several designs in different styles and then comparing them in depth is a good idea for making a good design. Architectural styles can be combined together to make an architectural design. There are three different forms of heterogeneous styles. Hierarchical heterogeneity means a component is in an architectural style different from the whole system's style. Simultaneous heterogeneity is when a system can be regarded as two architectural styles at the same time depending on the view to the system. Locational heterogeneity is when a part of the system can be regarded as in one style while another part is in a different style. Combination of architectural styles in one design plays a significant role in software design practices. The chapter also presents several quality attributes to compare the advantages and disadvantages of the designs.

[1]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

[2]  William C. Wake,et al.  Refactoring Workbook , 2003 .

[3]  Paul Clements,et al.  Software Architecture in Practice: Addison-Wesley , 1998 .

[4]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[5]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .