13.07.2015 Views

Software Design 2e - DIM

Software Design 2e - DIM

Software Design 2e - DIM

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

From the above, we can see that transferring knowledge about a creative process suchas design is by no means a simple task, or one that is easily automated.1096.1.3 Mechanisms for codifying and transferring design knowledgeHere we briefly review three of the ways in which experience with the design ofsoftware-based systems is codified and transferred. The following sections then go onto elaborate further upon how these roles are performed.Codifying and transferring knowledge about the form of detailed design solutionsfor ‘representative’ problems has sometimes been provided through the use ofcase studies, but only recently has a more general framework been devised that can beused to record and codify ideas about the higher-level form of design solutions. Theconcept of a software architecture (Perry and Wolf, 1992; Shaw and Garlan, 1996)is one which seeks to classify the more abstract features of a design solution. So thisconcept provides a basic vocabulary that can assist with describing solution forms toothers.Transferring knowledge about design processes is a more established approach.The early forms of software design method came into accepted usage in the 1970s, andprovided a procedural form of guidance on how to develop solutions for specificclasses of problem. The form of knowledge employed is largely about the sequences ofdecisions that can lead to a particular form of solution (methods tend to implicitlyassume a particular form of architectural style).More recently (and within the context of a particular architectural form), the ideaof the design pattern has provided an alternative form for use both in codifying andtransferring knowledge about how a design might be structured (Gamma et al., 1995).Superficially, patterns would appear to codify knowledge about design products, sincethey describe particular solutions to commonly occurring problems. However, this isto misunderstand the role of a pattern, in that it is not a solution template within whichthe user has only to ‘plug’ some code, but rather a solution strategy which the designercan then adopt for a particular problem. So patterns are really much more about the‘how’ of design development. In that sense, therefore, their role is closer to that of thedesign method, being more concerned with transferring knowledge than codifying it.The following sections examine each of these concepts in rather more detail, whilestill focusing on their roles as mechanisms for knowledge codification and transfer.However, since the concepts of architecture and of architectural style provide a frameworkfor much of the rest of the book, and since we will be discussing the roles ofmethods and patterns in later chapters, most of the emphasis has been placed uponarchitectural issues.The architecture concept6.2 The architecture conceptSince this concept provides some important ideas that we will be using throughout therest of this book, we provide quite a detailed description in this section. (The other twotopics are addressed more extensively at a later point and so get a briefer treatmenthere.) We begin by identifying what we mean by a software architecture; look at howdifferent architectural styles can be described; examine three simple examples; and

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!