ACCU Home page ACCU Conference Page
Search Contact us ACCU at Flickr ACCU at GitHib ACCU at Facebook ACCU at Linked-in ACCU at Twitter Skip Navigation

Search in Book Reviews

The ACCU passes on review copies of computer books to its members for them to review. The result is a large, high quality collection of book reviews by programmers, for programmers. Currently there are 1949 reviews in the database and more every month.
Search is a simple string search in either book title or book author. The full text search is a search of the text of the review.
    View all alphabetically
The UML Profile for Framework Architectures
Marcus Fontoura et al.
0 201 67518 8
Silvia de Beer
Appeared in:
A UML profile is a modification of the UML standard to target a specific application domain. A framework is defined as an extensible semi-finished piece of software. The authors propose the UML Profile for Frameworks, which they call UML-F profile in short. The book does not target a large audience of mainstream software developers, though it should be interesting for software designers and architects who want to reflect on the topic of frameworks and the use of UML in design concepts.

The book contains seven chapters. The first chapter defines terms like framework and profile. It explains in what ways a framework can be extensible and states the goals of the UML-F profile. The second chapter discusses the UML notation in the light of the extensions by the UML-F profile. Chapter three explains tagged values and stereotypes and introduces two UML-F specific presentation tags, the completeness and incompleteness tag. Inheritance indicators are introduced to be able to indicate in class and object diagrams whether methods and attributes are abstract or can be overridden. Some new tags are introduced for the sequence diagrams to indicate triggers and repetition of messages. Three other tags for class diagrams are used to indicate which classes belong to the framework and which classes to the application. The

tags are introduced to indicate how classes and methods can be specialised by an application, e.g. a fixed tag does not allow overriding of a method in application classes.

Chapter four presents framework construction principles and introduces the corresponding UML-F tags. Two important construction principles are discussed, the unification and separation construction principle. Template and hook methods are explained. At the end of this chapter it is shown how UML-F tags can be defined for the Composite pattern. Appendix B defines more tags for the GOF patterns. Chapter five discusses how to facilitate framework adaptations, i.e. guide the writing of real applications and discusses how a cookbook can consist of a guided tour and a collection of recipes. Some example recipes are given.

Chapter six provides a case study that exemplifies the theory of the previous chapters. The last chapter gives some hints to framework development, which in itself is more complicated then developing an application according to given requirements.

I did not agree with all of the statements made about framework development, but on the whole this book is an interesting and original piece of work, presenting lots of useful concepts for framework design.