Subscribe with RSS or ATOM Add to Google





Monday, August 31, 2009

The Process of Software Architecting Book Review

About a year ago I finished up putting together a new Software Engineering Process for the state of PA. It included the best of the best, from those that gave us permission to use their content. You can check out the resources here.

A lot of the content was related to architecture. I would have loved to have had this book back then to refer people too as an educational resource. This book puts the process of Software Architecting into a very understandable format and does a great job of explaining process fundamentals.

It is hard to train people in Software Architecture, and then add a ton of Software Process Engineering concepts to it and you really begin to lose people. We had very little success in finding anyone who wanted to go through the learning exercise. Only our team used the process for the most part.

This book starts out with a great overview of Software Architecture, the Architect, and Architecting. Even if you are familiar with these concepts, they are a good read and they get the context laid for the rest of the book from the perspective the authors take on the concepts.

Next the authors give a great introduction to method fundamentals. They pull from the industry’s best practices which include the RUP, OpenUP, XP, SCRUM, FDD, and use the SPEM to do their process diagrams. The do a great job of pulling out the important information that relates to software process engineering and putting it into a very organized and easy to understand format. The chapter is short and to the point.

The authors then cover documenting software architectures. In this chapter they outline an architectural description framework based on Rozanski and Woods viewpoints and perspectives, the Zachman Framework, and the 4 +1 view model.

The next chapter on reusable architecture assets provides an architecture asset metamodel for development –time assets and one for run-time assets.

The rest of the book is a detailed, real world, case study that puts the architecture method to use.

The book ends with appendixes, Software Architecture Metamodel, Viewpoint Catalog, Method Summary, and Architectural Requirement Checklist.

PROS:
Two guys from IBM authored a non IBM centric book. Although he authors both work for IBM they didn’t include or use tools from IBM.

The book stays within the scope of process engineering as related to software architecture, which produced a more effective book than if they had not. For example, if they would have tried to provide a treatment of tactics instead of referring us to the best resources available on tactics. The book stays process focused.

The appendixes are very valuable references.

They use industry standard best practices for all their content. They are not inventing any new wheels here, or trying to sell a new silver bullet. They are simply picking out the best of what has worked in the industry and putting it into a very organized and usable format.

I like that they include the requirements gathering phase as part of the architecture process. You usually find the requirements discipline treated as though the architecture team has nothing to do with it. That is just not the case in a healthy process.

CONS:
I really do not have any. The only thing I would like to see is the process content in the book put into the Eclipse Process Framework Composer. That way it could be offered as a plug-in and we could include it in our process configurations.

Overall
If you are involved in software development in anyway, you should read this book. It is the story of how it is supposed to be.

Favorite Sayings of State Government Managers and the Interpretations

I recently resigned from my state position. Not wanting to waste any of the valuable lessons I learned there, I thought I would impart them to the rest of the world.

You need to be more flexible
This saying occurs when there is someone above you that feels they must put their 2 cents into the project whether or not they have the experience to do so. You will find there are a lot of leaders at the state that really do not serve any purpose beyond making changes, and most of the time those changes are counterproductive. You find that the useless leadership either does absolutely nothing because they feel secure in their positions, or they have perfected the technique of meddling into an art that gives the perception that they are adding value.

We do not say no here, because we believe in collaboration.
This one ties into needing to be more flexible. You will find a lot of projects that have no end at the state. The projects have become a ping pong match of butt kissing, everyone trying to outdo the next person by letting their superior make project altering decisions. You will also see this a lot when the leadership is in a political position that they are using to get their next job. They bend over backwards to please the leadership of their next company by compromising the integrity of their programs. The worst part of this saying is that it is usually used after a project has been completed. That is because the people who have the need to feel powerful will wait until everyone has sweated and bled over the project and think they have completed it, and then they will demand their changes be made. The more people they piss off, the bigger and better they feel.

We aren’t in the making money game; we are in the spending money game.
The bigger and more expensive anything you propose is, the better. Budgets only increase by the program spending more than they have budgeted. They don’t go before any committee, or board to get more money each year, they literally just have to overshoot their budget.

I think this will be a good opportunity for you.
This means I think this will be a great opportunity for you to give me something to pretend to manage so I can save my butt from being fired, even if it has nothing to do with your job description.

As soon as we get over this next hump things will get better.
That would be great, if there were actually humps to get over, instead of administrations needing to change before things might get better. The hands down opinion of every long term state worker I knew is this administration is the worse they have ever seen. That has lead to some of the poorest upper and mid level management to hit the state in years. Their decisions literally waste millions upon millions of dollars every year, and their employees are being forced to waste it.

You have to use this software because we bought the software. Your job is not to decide if you need it, your job is to figure out how to use it on your project.
This saying is attached to millions upon millions upon millions upon millions of wasted dollars.

A few other sayings often heard that need no explanation-

We need this done now so we will need to cut out the requirements, design, analysis, and architecture phases. We will also need to hold off on testing until we are in production.

Now that we are in production, let’s start gathering requirements.

Training and learning are not part of our job description.

We don’t use that technology because that would mean we have to learn it.

I know this is the wrong thing to do, but what choice do we have?

You aren’t being paid to think, you are being paid to work.

It doesn’t need to work, it just needs to be deployed. This date can’t slip.

Wednesday, August 26, 2009

Visio Link v 1.5 for SPARX EA Released

Visio Link  v 1.5 Released (from forum page)
In Sparx Systems Forum/Latest News
Sparx Systems is proud to announce the latest release of the free Visio Importer, version 1.5.

The free plug-in can be downloaded from the MDG Link products page: http://www.sparxsystems.com/products/#MDGLink

Updates in this release include:
********************************
Added compatibility with Visio 2007
Default import types are now fully user-customizable
Improved import of Data Model diagrams
Improved import of Note elements
Improved assignment of fill colors on import
Improved import of StateInitial, StateFinal, ActivityInitial, ActivityFinal and Action elements

Tool for Reverse Engineering ASP.NET to Web Application Extension (WAE) UML Profile in SPARX Enterprise Architect

We have added a new download to the Software Process Engineering Web site which is used to reverse Engineering ASP.NET applications to the Web Application Extension (WAE) UML Profile in SPARX Enterprise Architect.


Click here for larger image.

Overview
I often find that part of my assignment is to reverse engineer an application in order to modernize it, or to simply add new functionality to it.

ASP.NET has a UML Profile called the Web Application Extension Profile that can be used to present your architecture in a visual representation.

One thing to point out before you begin is that the reversed engineered code is only structured as good as the structure built into the code. Meaning if everything is in one namespace and one folder, you get one big folder with everything in it. Reverse engineering takes work. There is no magic tool that will make your code less confusing and give you perfectly laid out UML diagrams and there never will be. This is a big misconception I have come across a lot in my career.

I have been using this profile for some time now. I have Visio templates available here, and SPARX EA pattern templates available here. SPARX EA now includes the UML WAE (Web Application Extension) Profile as part of the default installation.

This download includes some tools to make it easier. It including a small application that generates some shell files that are then imported into SPARX EA giving you a great head start on what can be a very long road on certain projects.

The download includes the following files:

  • ASP.NET to WAE UML Readme.doc- This is a step by step guide to using the ASPnet2UML.exe application and SPARX EA to reverse engineering ASP.NET to Web Application Extension (WAE) UML Profile.
  • ASPnet2UML.exe- An application used to generated the extra files need to layout an architecture using WAE.
  • ASPnet2UML.eap- A start up project used to show some of the features in the ASP.NET to WAE UML Readme.doc
  • WAEEAPatterns.zip These are patterns we made available in an earlier download. We included them as a convenience.
  • ASP2UMLImportComponentTypes.xml-The Import Component Types shown in the ASP.NET to WAE UML Readme.doc.
You can get it here.