Conclusions
In this second brief introductory chapter, we have argued that developers of embedded applications can benefit from pattern-driven design techniques not least because many embedded projects require the developer to have both knowledge of software design and from a range of related technical and engineering fields.
Four points should be made as we conclude this chapter:
● Software patterns should not be seen as an attempt to produce a panacea or what Brooks (1986) calls a ‘silver bullet’ for the problems of embedded software design or implementation. Software development is a multifaceted activity, requiring intelligence and creativity: the solutions to such problems come from intelligent and creative individuals, and there are no ‘miracle cures’ or ‘silver bullets’ waiting to be uncovered.
● For similar reasons, use of the patterns in this book does not guarantee that your system will be reliable. Thus, for example, the first time you get on a plane and the pilot announces, reassuringly, that the flight control software was designed by engi- neers who used the latest set of ‘time-triggered software patterns’, this may mean that the software is more reliable than it would have been if the designers and pro- grammers had not been exposed to a set of patterns like those presented in this book. However, it can never mean that the flight software is fault free.
● At best, ‘the pattern solution’ will be a partial one. For example, it is not feasible to provide all software engineers or their managers, irrespective of background or training, with sufficient knowledge of relevant fields to ensure that they can, for example, create appropriate designs for aircraft flight control systems or fault diagnosis systems based on sliding-mode observers. However, what we may be able to achieve is to make software managers, and the teams they manage, better able to recognize projects in which it would be advisable to appoint (say) an artificial intel- ligence, signal processing or control expert from within the company on the project team or to employ an outside consultant to fulfil such a rôle.
● No useful pattern collection is ever ‘finished’: further patterns will gradually be added and existing patterns can always be improved. This collection is certainly no exception. As discussed in the preface, your comments and feedback on this collec- tion would be very much appreciated.