The i-Technology Media!
Register | Log in
   
 
.NET  ·  AJAX  ·  CLOUD  ·  ECLIPSE  ·  FLEX  ·  OPEN WEB  ·  iPHONE  ·  JAVA  ·  LINUX  ·  OPEN SOURCE  ·  ORACLE  ·  PBDJ  ·  SEARCH  ·  SILVERLIGHT  ·  SOA  ·  VIRTUALIZATION  ·  WEB 2.0  ·  WIRELESS  ·  XML
Comments
Drool, Britannia? Is the UK Failing the Cloud?
By Roger Strukhoff
Richard Davies wrote: The UK has a good crop of technology pioneers in cloud computing - for example ElasticHosts, FlexiScale, Flexiant, OnApp - and also some strong government initiatives such as G-Cloud. We will have to see whether this kind of technical leadership converts into swift mass-market adoption or not.
Jan. 8, 2012 11:38 AM EST
read more & respond »
Cloud Expo on Google News
Did you read today's front page stories & breaking news?

Cloud Expo & Virtualization 2011 West
Keynotes
Oracle
Opening Keynote | An Enterprise Cloud for Business-Critical Applications
Abiquo
Day 2 Keynote | The Enterprise Cloud Tightrope - Balancing for Success
Akamai
Day 3 Keynote | The DNA of an Enterprise Cloud
DIAMOND SPONSOR:
Oracle
Many Clouds, Many Choices'Cloud
PLATINUM PLUS SPONSORS:
Abiquo
Enterprise Cloud Best Practices - Town Hall - Join the discussion…
PLATINUM SPONSORS:
Intel
Progressing Toward the Federated, Automated and Client-Aware Cloud
New Relic
How to build an app with Twitter-like throughput
Rackspace
Computing in the Cloud Era
GOLD SPONSORS:
Gale Technologies
Practical Cloud Migration
IBM
Re-think IT. Re-inventing Business.
Intel/McAfee
Identity Driven Security in the Cloud
PerspecSys
Hackers Hackers Everywhere, Is My Public Cloud That Safe?
Red Hat
Unlock the Value of the Cloud
SHI
Mission Critical Applications and the Cloud - Myth or Reality?
SoftLayer
Not Your Grandpa's Cloud
Terremark
Integrating Enterprise Clouds
VMware
Upgrade to a vCloud
POWER PANELS:
Cloud Expo Silicon Valley: CTO Power Panel
Cloud Expo Silicon Valley: CEO Power Panel
Cloud Expo Silicon Valley: Cloud SuperStars Panel
Cloud Expo Silicon Valley: CloudNOW Panel
Click For 2010 West
Event Webcasts
Cloud Expo & Virtualization 2011 East
DIAMOND SPONSOR:
Dell
Dell & VMware Deliver the Enterprise Hybrid Cloud
PLATINUM PLUS SPONSORS:
Abiquo
Are Financial Services Organizations Risking Security by Avoiding Cloud Computing?
Oracle
From Consolidation to Enterprise Private PaaS
PLATINUM SPONSORS:
Intel
Driving the Transformation to Next Generation Cloud Data Centers
Rackspace
The Inevitability of an Open Cloud
GOLD SPONSORS:
CA Technologies
Follow YOUR path to Cloud Computing
Interxion
Who Keeps the Cloud in the Air?
Microsoft
Patterns for Cloud Computing
PerspecSys
War in the Clouds: Are you ready?
ServiceMesh
The Big Win: Stop Playing Small-Ball with Your Cloud Strategy
Terremark
Evaluating Enterprise Clouds
Xiotech
Cloud Storage: Myths and Realities
POWER PANELS:
Cloud Expo New York: CTO Power Panel
Cloud Expo New York: CEO Power Panel
Cloud Expo New York: CMO Power Panel
Cloud Expo New York: Wrap-Up Power Panel
Click For 2010 West
Event Webcasts
Live Google News by SYS-CON!
Top Three Links You Must Click On


Feature
Managing and Documenting Your Project XML Style
Managing and Documenting Your Project XML Style

By: Timothy Fisher
Aug. 27, 2003 12:00 AM

XML seems to be popping up everywhere. In this article, I'm going to touch on an often overlooked but potentially very powerful use for XML technology: XML for project management and documentation. Thanks to the open source community, there are some marvelous tools available for incorporating XML into your software development processes.

Throughout this article I refer to a project's infrastructure. I use the term infrastructure to refer to things such as a project's directory structure, developer mailing lists, build processes, deployment sites, source code configuration management, and documentation repositories. These are items that all projects deal with, but usually little thought is put into how these things are set up, structured, and communicated. This area is also overlooked when is comes to standardization. Lack of a common approach to these infrastructure items makes it difficult for developers and managers to move across projects. With each project you join, you have to get acquainted with a completely new project infrastructure. This adds an initial project learning curve for even the brightest developers and managers. Even within an organization, a common infrastructure across projects is often missing. Creating lower-level standards, such as coding standards and document templates, tends to be as much cross-project standardization as most organizations accomplish.

Fortunately, with the advent of XML technology and some creative work being accomplished in the open source community, a better way of managing your project's infrastructure is on the horizon. The base concept is the introduction of XML throughout a project's documentation. This can bring some powerful benefits. With XML-style documentation, you can utilize XML processing tools to automatically create Web sites and documents that bring all of your documentation together in an easy-to-access portal with very little manual effort. Placing your project documents in XML format also allows for maximum reusability. For example, an XML-formatted requirements document can be transformed into a PDF for distribution to management, transformed into HTML for quick access by all interested parties, and parsed into individual requirements for input to a test plan generator. The use of XML should eliminate the need to document anything project related more than once. The XML documents become a single source for all future uses of the information.

Taking this a step further, you could create a native XML database (using an open source XML DB such as Xindice) that would be the central repository for all of your project's knowledge. Another scenario that becomes an exciting possibility is the creation of a DTD or schema that represents all of the required documentation for projects within your organization. A process could then scan your documentation to determine missing or incomplete documents. Status reports could be automatically generated and e-mailed with the current status of all documentation. All this can be automated into some pretty slick project management tools.

DocBook
Now that you can envision the power of XML, let's take a look at what's available today to get you started down this path. A good starting point is to take a look at the DocBook standard, a set of XML DTDs describing how to create documents in XML format. The standard is targeted at the production of technical documents. You can see a simple example of a DocBook document in Listing 1. (All of the code referenced in this article is available for download from www.sys-con.com/xml/sourcec.cfm.) The example contains the XML for a book composed of multiple chapters, sections, and an appendix. There are many additional DocBook defined tags that aren't included in the example. DocBook also defines a DTD for articles and documents. Many open source projects use the DocBook standard for their documentation. The Unix community seems to be the leader in its adoption. DocBook is a good starting point for creating your own organization-specific document types, such as your organization's requirements document, development plan, design document, and other documents. Once in XML, these documents can easily be transformed (with other freely available tools) into whatever format you prefer, including PDF, Word-compatible RTF, HTML, or just plain text. Besides multiformat publishing capability, you can also perform a great deal of processing against your documents that are in an XML format. For example, you could parse use cases out of a design document, and individual requirements out of a requirements document to build your test plan.

Several commercially available XML editors allow you to create DocBook-compliant documents. I've used XMLSPY from Altova, which supports DocBook and even includes the DocBook stylesheets with the product. A less-expensive commercial XML editor that offers a nice XML editing interface is Oxygen XML. Oxygen XML is written in Java and is available on a wide range of platforms, including Windows, Macintosh, and many flavors of Unix. Unfortunately, I haven't found a good open source editor for easily creating DocBook documents. One open source candidate, OpenOffice, will give you partial DocBook support, but does not yet support all of the DocBook tags. I anticipate OpenOffice becoming a very viable solution in future releases. OpenOffice does use XML as its native document format, so at least you can have XML documents by standardizing on OpenOffice as your document editor.

Open Source Projects
The open source community seems to be well ahead of the commercial development industry in their use of XML as a project management and documentation technology. There are several open source projects dedicated to advancing the use of XML in these areas.

Maven
Maven is an Apache project that defines itself as a project management and project comprehension tool. Through the use of XML technology, Maven attempts to create a well-defined project structure, making it easier to disseminate information about a project and to share a common project structure across projects.

Maven is based on the concept of a project object model (POM), which is stored as an XML file. The POM defines things such as the build process, configuration management, unit testing reports, change log documentation, directory layout, source metrics, mailing lists, developer list with role information, project dependency list, article collection, project distribution, and project Web site creation. Listing 2 is a sample POM represented in XML format. This POM contains general project information, a link to a project issue tracking system, links to site and distribution directories, source repository information, project version info, project mailing list details, developer list, project dependency list, and finally, build and unit testing details. Having an XML source for all this information allows it to be published easily and reported in many formats. Figures 1 and 2 show Web site content that was generated by Maven.


Click Figure to Enlarge

In addition to what Maven provides for a single project, it also allows for a great deal of commonality across projects. This is a significant advantage for organizations with more than a single project. Developers can easily transition across projects and instantly be familiar with the project's infrastructure. Common tools can be used to process all of an organization's projects. Project-wide sites and reports can be automatically generated.

Maven goes beyond just processing your documentation. Maven is also a project processing tool. It can perform all of your build tasks such as compiling your source files, generating javadoc, building your distributable components, and deploying your project. It will also run your unit tests, check the format of your source code against a defined standard, and create XML-based reports for all of its actions. These reports then become a part of your project Web site that Maven creates. Maven has a plug-in based architecture, which allows you to extend Maven in all sorts of ways. There is a good repository of Maven plug-ins available on the Sourceforge open source portal. The best way to get started is to look at an existing project that uses Maven, and tailor the XML files to your project. I would suggest looking at the Apache projects as models for what Maven can accomplish.

Forrest
Another Apache project that fits into the XML project documentation and processing tool set is the Forrest project. Forrest is defined as an XML standards-oriented project documentation framework. Forrest uses XSLT stylesheets, schemas, images, and other resources you define to render a project's XML source content into an HTML-based project Web site. The project Web site can be generated by Forrest through a user-initiated process, or by using the Forrest Robot, which allows for automatic regeneration of the project site any time the XML source documents are changed. The project Web site created by Forrest provides access to project documentation, source code repositories, mailing lists, contact info, FAQs, how-tos, change logs, and more. Figures 3 and 4 show Web sites that were generated by Forrest. The content of these sites is stored as XML documents that are processed by Forrest. With this approach your project Web site is always current. The HTML content for the Web site does not become another document your team has to write.


Click Figure to Enlarge

Forrest uses the popular Apache Cocoon XML publishing framework to accomplish much of its work. In addition to the HTML Web site, Forrest can also render the project site contents into PDF format. You'll notice the PDF links shown on the sample Web sites. Any Web page that has been generated by Forrest can easily be retrieved as a PDF using these links. To use Forrest, your underlying project documentation and infrastructure need to be in XML format. As with Maven, there is also great benefit in using Forrest across multiple projects. Using Forrest across multiple projects will ensure a consistent look-and-feel for the project sites. You can customize the look-and-feel of the project sites for your organization through the use of skins. As I write this, there is an effort under way to create a Forrest plug-in for Maven. Presumably, this would allow Forrest to parse the Maven project object model and build the project Web site based on that, which would seem to be the ideal use of Forrest and Maven. Maven manages the project structure and performs project build processing, while Forrest renders the project Web site and documentation.

Implementing the Approach
In addition to the tools they are creating, Apache is also on the forefront in implementing this XML approach for managing and documenting their projects. As you browse the Apache projects, you will notice a common look-and-feel to many of the Web sites. This is a result of the application of the Forrest and Maven technologies. Using this approach within open source communities also has the particularly strong benefit of allowing developers to contribute to multiple projects without having to learn a new infrastructure for each project.

Another interesting use of XML technology at the project level within Apache is the Jakarta Gump project. Gump reads XML project descriptor files for each of the Jakarta subprojects, analyzes their dependencies, and performs a nightly build of all the Jakarta projects. All Apache projects are built using the most up-to-date builds from other Apache projects they may depend on. XML-based reports are created based on this nightly process. On the Gump Web site there is a page that gives you the results of these nightly builds. You can also view reports on all the project dependencies, which allows you to find the dependencies of any particular Jakarta project. This capability goes beyond Apache to include other open source projects that the Jakarta projects depend upon. This process allows each of the Jakarta projects to view the impact of their changes on other projects and quickly make the necessary fixes.

Those with the time and desire to create their own project tools of this sort should take a hard look at the Apache Cocoon project as a base to build from. Cocoon is a mature XML publishing framework. Cocoon can interact with file systems, relational or native XML databases, LDAP, and network-based data sources and publish your data in many different formats, including HTML, WML, PDF, SVG, RTF, and more. Another very good tool to get you started is the AurigaDoc tool. This is also an open source tool that can be used to process your XML documents into many different formats, including HTML, DHTML, RTF, PDF, PostScript, Java Help, and HTML Help.

Conclusion
A reason why the open source community has led the way in this area is the lack of commercial tool support. I have not come across a commercial tool that comprehensively supports this type of project management and documentation approach. Those interested in pursuing this today must be willing to piece together the various tools necessary to make this all work. In the future, ideally the fact that you are using Maven, DocBook, or Forrest becomes transparent to the end user, who simply gains the benefits of an XML project infrastructure. In the spirit of practicing what I preach, you can find this article in DocBook format on the XML-J Web site (www.sys-con.com/xml/sourcec.cfm) and on my personal Web site (www.timothyfisher.com). Having created this article in XML, I've been able to generate a PDF for publication and download, and HTML for presentation on the Web from a single source document.

References

  • Apache Maven: http://maven.apache.org
  • Maven Plug-ins: http://maven-plugins.sourceforge.net
  • Apache Forrest: http://xml.apache.org/forrest
  • Jakarta Gump: http://jakarta.apache.org/gump
  • DocBook: www.docbook.org
  • Apache Cocoon: http://cocoon.apache.org
  • AurigaDoc: http://aurigadoc.sourceforge.net
  • Oxygen: www.oxygenxml.com
  • Author's Site: www.timothyfisher.com
    Published Aug. 27, 2003— Reads 13,238 — Feedback 1
    Copyright © 2003 SYS-CON Media, Inc. — All Rights Reserved.
    Syndicated stories and blog feeds, all rights reserved by the author.
    Related Links
    ▪ Source Code
    About Timothy Fisher
    Timothy Fisher has recognized expertise in the areas of Java, Ruby, Rails, Social Media, Web 2.0, and Enterprise 2.o. He has served in technical leadership and senior architecture roles with companies such as Motorola, Cyclone Commerce, and Compuware. He is the author of the Java Phrasebook, and the Ruby on Rails Bible. Currently he is employed as a senior web architect with Compuware in Detroit, Michigan.

    Follow Timothy on Twitter at http://twitter.com/tfisher

  • Add Your Feedback

    In order to post a comment you need to be registered and logged in.

    Register | Sign-in

    Reader Feedback: Page 1 of 1

    #1
    Bryan Davis commented on 19 Mar 2004

    Try XMLMind ... it support DocBook.


    Subscribe to the World's Most Powerful Newsletters
    Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
    Click to Add our RSS Feeds to the Service of Your Choice:
    Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
    myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
    Publish Your Article! Please send it to editorial(at)sys-con.com!

    Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021

    SYS-CON Featured Whitepapers

    ADS BY GOOGLE

    Breaking Java News
    Threshold Pharmaceuticals Appoints Dr. Tillman Pearce as Chief Medical Officer
    Research and Markets: Latin America Wireless Test & Equipment Markets - Increased Emphasis on Quality Bodes Well for Future
    ST Aerospace and Aerosim sign MOU to develop Advanced Maintenance Training Systems
    Market Research Study Forecasts Enterprise Mobility Market
    tyntec Showcasing Newly Launched tt.One Solution at MWC 2012
    Volition Signs Collaboration Agreement With Abcodia
    JinkoSolar to Report Fourth Quarter and Full Year 2011 Results on March 8, 2012
    OBJE: Social Gaming Transforms Video Game Industry
    MoneyTV with Donald Baillargeon, 2/17

    ADVERTISE   |   MAGAZINE SUBSCRIPTIONS   |   FREE BREAKING-NEWSLETTERS!   |   SYS-CON.TV   |   BLOG-N-PLAY!   |   WEBCAST   |   EDUCATION   |   RESEARCH

    .NET Developer's Journal - .NETDJ   |   ColdFusion Developer's Journal - CFDJ   |   Eclipse Developer's Journal - EDJ   |   Enterprise Open Source Magazine - EOS
    Open Web Developer's Journal - OPENWEB   |   iPhone Developer's Journal - iPHONE   |   Virtualization - Virtualization   |   Java Developer's Journal - JDJ   |   Linux.SYS-CON.com
    PowerBuilder Developer's Journal - PBDJ   |   SEO / SEM Journal - SJ   |   SOAWorld Magazine - SOAWM   |   IT Solutions Guide - ITSG   |   Symbian Developer's Journal - SDJ
    WebLogic Developer's Journal - WLDJ   |   WebSphere Journal - WJ   |   Wireless Business & Technology - WBT   |   XML-Journal - XMLJ   |   Internet Video - iTV
    Flex Developer's Journal - Flex   |   AJAXWorld Magazine - AWM   |   Silverlight Developer's Journal - SLDJ   |   PHP.SYS-CON.com   |   Web 2.0 Journal - WEB2
    Apache   |   CMS   |   CRM   |   HP   |   Oracle Journal   |   Perl   |   Python   |   Red Hat   |   Ruby on Rails   |   SAP   |   SaaS

    SYS-CON MEDIA:   ABOUT US   |   CONTACT US   |   COMPANY NEWS   |   CAREERS   |   SITE MAP
    SYS-CON EVENTS:   |  AJAXWorld Conference & Expo  |  iPhone Developer Summit  |  Cloud Computing Conference & Expo  |  SOA World Conference & Expo  |  Virtualization Conference & Expo
    INTERNATIONAL SITES:   India  |  U.K.  |  Canada  |  Germany  |  France  |  Australia  |  Italy  |  Spain  |  Netherlands  |  Brazil  |  Belgium
     Terms of Use & Our Privacy Statement     About Newsfeeds / Video Feeds
    Copyright ©1994-2008 SYS-CON Publications, Inc. All Rights Reserved. All marks are trademarks of SYS-CON Media.
    Reproduction in whole or in part in any form or medium without express written permission of SYS-CON Publications, Inc. is prohibited.
     
    close this window