Welcome!

.NET Authors: Liz McMillan, Yakov Werde, Matthew Pollicove , Kevin Benedict

Related Topics: .NET

.NET: Article

Software Engineering Master Class

UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition

UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition
Since 1997 the Unified Modeling Language (UML) has been the de facto modeling language for describing object-oriented systems, from requirements analysis to design and implementation. Since the first edition, UML Distilled has been the de facto guide for novices and experts alike using UML to describe their software development endeavors.

This year the Object Management Group (OMG) has standardized UML version 2.0, probably the single biggest advance in the UML standard since it first emerged. For this reason alone you should buy the third edition - even if you currently have a copy of an earlier edition!

The book is 159 pages, including an appendix describing the evolution of the UML specification. It is very readable, regardless of your experience in using UML. Also included is an invaluable quick reference to UML in the inside front and back covers, which ensures that even though I've been using UML for six years I will still reach for this book over any of the other UML books on my bookshelf!

Author Martin Fowler presents an excellent discussion of each of the diagrams in UML, providing a chapter on each major diagram type, and two chapters on the most widely used UML diagram - the class diagram.

If you're currently using UML you may be wondering why you should care about UML 2.0 today, especially when it is likely that UML modeling tools such as the .NET edition of Rational XDE will not be updated to support UML 2.0 for some months.

Although UML Distilled has been updated for the 2.0 release of the UML specification, it is still the best reference today for the previous UML specifications.

Put simply: without UML, software engineering is hard; with UML it is certainly not easy, but it is more likely that you'll deliver on time and on budget with UML than without. With UML Distilled, software engineering with UML is still no piece of cake, but again, you're even more likely to achieve a release on time and on budget.

Way to go, Martin!

Title: UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition
Author: Martin Fowler
Publisher: Addison-Wesley
ISBN: 0321193687
List Price: $34.99
Rating: *****

MDA Explained: The Model Driven ArchitectureTM: Practice and Promise
MDA Explained is an excellent book for developers and managers who need to understand the benefits of applying model driven architecture (MDA) in software development.

Model driven architecture centers around the idea that applications will be designed beginning with a platform-independent model (PIM), which is then automatically transformed into one or more platform-specific models (PSMs). These platform-specific models can then be transformed to generate the code for the application, including the ASP.NET pages and C# code behind, or maybe the SQL database scripts to create the database.

The authors present a very good sample application that evolves throughout the book, beginning with a chapter focusing on the platform-independent model and then moving on to develop the three platform-specific models that will ultimately be used to generate the application code. MDA promises much to the software development community but, unlike UML, the tools to truly deliver on the MDA promise are few and far between.

If after reading the book you feel compelled to play with the sample application, you can download the models and use OptimalJ from Compuware to extend the models and transformations. Compuware OptimalJ is an excellent Java-based MDA tool and is probably the best choice for the authors, considering the limited tools available today for MDA. This is not surprising, as one of the authors, Wim Bast, is the OptimalJ architect for Compuware Corporation.

You would be forgiven for thinking... "Wait a second; this is .NET Developer's Journal... what is he doing presenting a Java-based book."

MDA Explained is certainly not a Java-based book. Indeed, MDA itself is platform neutral - at least until you choose the platform-specific models and the transformations to use to generate the application code - and as such you will not be disappointed by the use of OptimalJ and talk of Enterprise JavaBeans. Everything you'll read in MDA Explained is as applicable to .NET developers as it is to their brethren currently using Java.

If you are already using UML or advanced software development techniques such as design patterns, then you should definitely consider reading MDA Explained, as it is only a matter of time before more MDA tools become available and MDA becomes an integral part of software development.

Title: MDA Explained: The Model Driven ArchitectureTM: Practice and Promise
Authors: Anneke Kleppe, Jos Warmer, and Wim Bast
Publisher: Addison-Wesley
ISBN: 032119442X
List Price: $34.99
Rating: ****

Use Cases: Requirements in Context
If software developers are to write quality software, then the software engineering process must begin with effective requirements gathering - and the documentation of those requirements.

Daryl Kulak and Eamonn Guiney present UML use cases and a process for requirements gathering and analysis, beginning with an investigation into "the trouble with requirements" in the first chapter, which I guarantee will be enlightening even to those currently using UML use cases within their development process.

The book assumes no prior knowledge of UML and as such the second chapter presents a "tour de UML," with an obvious emphasis on use case modeling in UML.

Your knowledge of requirements analysis and especially the UML use case approach is then developed over the remaining chapters of the book, including a look into the first iteration of this analysis, the facade iteration, in which only the basics of each use case are recorded to provide placeholders for future refinement. These placeholders are then refined through the iterations.

The book then moves on to discussing the management of requirements and people and how the use case approach can be incorporated into several software development life-cycle approaches.

Finally, the authors present three excellent sample case studies to help you refine your understanding of the process.

Requirements are the foundations upon which software is developed; make mistakes in your requirements and the cost to fix the application could result in the cancellation of your project, which certainly doesn't look good on your next performance appraisal.

Even if you are currently using use cases as an integral part of your software development process, I can't recommend this book enough. I shall certainly incorporate many of the ideas presented in my next project!

Title: Use Cases: Requirements in Context
Authors: Daryl Kulak and Eamonn Guiney
Publisher: Addison-Wesley
ISBN: 0201657678
List Price: $39.99
Rating: *****

More Stories By Doug Holland

A "blue-badge" .net architect and developer at Intel Corporation since March 2007, Doug Holland is part of the Intel Mobility group and is presently working within an advanced tools and development team with an emphasis on graphics performance. He holds a Master's Degree in Software Engineering from Oxford University and has been awarded both the Microsoft MVP and Intel Black Belt Developer awards. Outside of work, Holland enjoys spending time with his wife and four children; and is also an officer in the Civil Air Patrol / U.S. Air Force Auxiliary.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.