![]() |
Sign-Up for Free Exclusive Services: | Portals | | | eNewsletters | | | Web Seminars | | | dataWarehouse.com | | | DM Review Magazine |
![]() |
![]() |
||||
![]() |
![]() |
|||
Covering Business Intelligence, Integration & Analytics | Advanced Search | |||
|
|
![]() |
Development Best Practices:
|
![]() | |||||||
![]() | |||||||
| |||||||
![]() | |||||||
![]() |
Editor's note: DM Review would like to welcome back Robert Wegener as an online columnist. He will address best practices in software development in his monthly column of the same name that will appear on the second week of each month.
Over the years software development has changed in two dramatic directions. The first is that the new development environments and the languages have reduced the amount of hand-written code substantially through reusable objects, templates and patterns. The other is that the modeling of requirements for integrated systems has become more complex. This column will take a look at how an organization can leverage these changes and minimize risk while reducing time to market without jeopardizing quality.
The ability to generate good quality code quickly has been around for some time, thanks to integrated development environments (IDEs) that let the developer write, execute and debug code all in a framework that promotes reusability. The IDEs can plug in middleware components and services as if they are local resources allowing for seamless development across different platforms. The actual generation of code has already become a commodity for many projects and has been outsourced to India, China, Russia and the Philippines. Advances in team development techniques such as Agile programming have gained favor in many organizations and have continued to reduce time to market, especially for applications that have very little design and functionality defined upfront. The current state of code generation is highly refined but its ability to be generated directly from requirements and high-level designs is still the missing piece of the software development life cycle.
The modeling of requirements for integrated systems is an area that is being addressed on many fronts by the some of the same tool vendors that created today's IDEs, e.g., Microsoft, IBM/Rational, Borland, Oracle and Compuware. The ability to model functional narratives into high-level designs which map to a targeted platform(s) is the most complex piece of software in the development life cycle. It requires the most knowledge upfront of building the final solution through reusable pieces of meta data that represent the universe for which the application will live and grow. The modeling tools must be vendor neutral to provide the enterprise with interoperability across platforms and promote software standards. The OMG, Object Management Group, supports the development of modeling standards such as Unified Modeling Language (UML) and Meta Object Facility (MOF), to promote model-driven architectures. The key modeling initiative is to unify every step of development and to separate the business concerns from the technical details.
The best way to get started with modeling requirements is to start with learning the language of modeling - UML. There are many good books on the subject, and the Internet contains numerous sites with tutorials. A good place to start on the Internet is http://www.uml.org/. The OMG site contains tutorials, specifications, case studies and a good list of UML tools. A good book on the subject is UML in a Nutshell by O'Reilly. After you have a good understanding of using UML to define your problem domain your ready to learn model-driven architecture (MDA).
MDA is a superset of UML that supports the formal modeling of the entire software development life cycle. It covers software architectures, business processes, data modeling and a meta model repository. It consists of three key standards: 1) Unified Modeling Language (UML), 2) XML Meta Data Interchange (XMI) and 3) Common Warehouse Meta Model (CWM). The full details of the specification are located in the MDA Guide 1.0.1 at http://www.omg.org/docs/omg/03-06-01.pdf. The specification provides for the creation of a platform independent model (PIM) that can be used to develop applications in J2EE or .NET. The specification provides a way to map the PIM to a platforms-specific target (PSM) which can then be used to generate code, data structures etc. Many platforms, middleware and messaging technologies already support the MDA specifications. Sun J2EE/EJB, Microsoft .NET and W3C XML are just a few.
The ability to target platforms from one common business model allows for greater flexibility and provides a means of traceability from the original platform-independent model (PIM) through the platform-specific model (PSM). This not only adds another level of validation but another way to alter the technology without breaking the business model. There are more than 50 different tools on the market that support at least one of the major aspects of MDA. Some tools even provide the ability to validate a platform-independent model (PIM) on a virtual machine which provides another quality check by the business analyst that the model functions as expected.
Two of the best tools on the market are IBM's Rational Rose XDE developer that works in Java and .NET or Compuware's OptimalJ product which supports J2EE only. Both have free trial software that you can use to get started with model-driven architecture. Rational is at http://www-306.ibm.com/software/awdtools/developer/rosexde/and Compuware is at http://www.compuware.com/products/optimalj/. Both sites have great white papers on MDA and product tutorials.
Next month's column will cover how patterns fit into the MDA mix and how specific industry domain patterns are being created to take advantage of MDA today.
Robert Wegener is the director of solutions for RCG Information Technology's Web services. He has more than 20 years of information and business engineering experience in operations, customer service, transportation, finance, product development, telecommunications and information systems. Wegener also has extensive experience in various process and development methodologies, quality assurance and testing methodologies. He can be contacted by e-mail at rwegener@rcgit.com.
|
![]() |
E-Mail This Column |
![]() |
Printer-Friendly Version |
![]() |
Related Content |
![]() |
Request Reprints |
![]() |
![]() |
![]() |
|||||||
|
|||||||
![]() |
|||||||
![]() |
|||||||
![]() |
|||||||
Site Map | Terms of Use | Privacy Policy | |||||
![]() |
|||||||
|