A place for SGML and XML application developers.

September 29, 2008

Using UML to describe DITA Specializations

Filed under: Rants/Musings,Software,XML — cangione @ 11:29 am

As a consultant, I’m often parachuted into complex projects and need to be able to appear intelligent in a short period of time to both technical staff as well as business people. In setting up a publishing system based on the Darwin Information Typing Architecture (DITA), I’m faced with trying to communicate the specialized structures and element names needed by an organization.

One of the most important principals of DITA specialization is the concept of inheritance. Inheritance allows you to use the structures and semantics previously defined by others as a starting point for your specializations. But how do you communicate this idea in a repeatedly simple clear concise manner during the design process? If a picture is worth a thousand words, a UML model is invaluable.

The Unified Modeling Language (UML) is a graphical notation that is particularly good at expressing object-oriented designs. UML went through a standardization process and is now an Object Management Group (OMG) standard.

I like using UML because it allows me to communicate certain concepts more clearly than alternatives like natural language. Natural language is too imprecise and subject to interpretation by the reader. A DITA DTD or Schema is very precise but not something that should be created during the design process. So I use UML to communicate and keep track of the important details like inheritance.

A lot of people talk about the learning curve associated with UML. I’m not advocating that team members need to be exposed to all that UML can provide. Only the parts necessary to convey the important details of the moment.

Let’s say that we want to build a new type of DITA topic for creating slide presentations. The following diagram conveys a lot of information:

Slide Example UML Diagram

My conversation with the assembled audience of technical staff and business users would go something like this:

Each green ellipse represents an element already in existence. Each yellow ellipse represents a proposed element. The double angle brackets in the ellipse are used in UML to define sterotypes. A sterotype is the vocabulary extension mechanism built into UML. In our case we are using sterotypes to indicate which organization (DITA or SGMLXML) an element reports to. The dotted lines represent which elements are included in others and which elements extend a base type (inheritance).

Once the audience agrees that the model is correct, it can be included in the specifications and developers can create the new elements and the properly-formed class attributes required.

In our example the definition of the class attributes in the resulting DTD would look like this:

Class Attributes

Besides communicating DITA specialization information, I also use UML for other aspects of my deployments such as use case design, system deployment and various activity diagrams. No single model is sufficient to build the system but by using the same modeling language for all the models, it is easy to impart all of the important analysis, design and implementation decisions that must be made by an organization before deployment.

-Charles Angione

September 17, 2008

Advise & Consent

Filed under: Books,Rants/Musings — cangione @ 10:33 pm

It is very rare that a favorite book of mine passes muster as a movie. It is even rarer that the movie is better than the book!

My favorite Allen Drury book Advise & Consent (1962) was made into a movie that is now available on DVD. When I was in high school, I was part of Mock Congress debates. We followed Senate rules (parliamentary procedure) during those sessions. I wish I had read this book or watched the DVD before I was in some of those debates!

I don’t care if you are Liberal, Conservative, Democrat, or Republican. You can empathize with all points of view by the end of this movie.

I can’t think of a more perfect movie to watch in this political season.


September 2, 2008

Review of Google Chrome

Filed under: Software — cangione @ 4:46 pm

Google has had an interesting week and it’s only Tuesday. They have extended their default search engine relationship with Firefox until 2011 and released their own open source browser called Google Chrome to compete with IE, Firefox, Safari and Opera.

In fact as a test of the new browser, I’m writing this post in Chrome. Chrome has some cool features starting with a very minimalistic UI. I’m already in love with the browsers minimalism. The WebKit rendering engine is smokin fast. So far it has done a good job of correctly rendering all the typical pages I visit. The address bar also acts as the search dialog which is a really simple but smart idea. It saves real estate up at the top of the browser. Same idea for their application toolbar. It only appears when you start a new blank tab, then goes away. Smart.

What I don’t like.

So why won’t I make this my primary browser for day to day activities? Three major reasons:

  • No Way to synchronize bookmarks across multiple browsers.

    I’m a bit surprised that Google did not tie the browser closer to a users Google account. Your Google user account would be the perfect place to store a master list of bookmarks that would automatically be established each time you setup Chrome on another machine.

    Since I use three different physical machines and a bunch of VM’s in a single day to do my job, bookmark management and their continued synchronization is a big deal for me. Firefox has the Foxmarks plugin to handle this issue.

  • No Bailout Option.

    Sometimes you’ve just got to get the job done and that job requires IE. You don’t have to like it, but you have to use it. In Firefox if a website does not behave itself properly I can use the IE Tab plugin so that page and all subsequent child pages are rendered using IE instead of Gecko.

  • The Beta Only Support Windows XP and Vista.

    Enough said.

  • The Future?

    I like competition and Chrome has the potential to push the browser industry forward at a more rapid pace than any of the established players would be comfortable with. So for now, Chrome has found a place on my RocketDock toolbar as a browser to keep an eye on.

    Powered by WordPress