Who Are We?
The Pathfinder Difference
Careers
Brochure
Contact Us
Effective Modeling Training
Expert Mentoring Services
Systems Engineering
Software Development
PathMATE: Transformation Engine
PathMATE: Spotlight
PathMATE: Transformation Maps
Rational Software Modeler Integration
Rational Rose Integration
C Maps
C++ Maps
Java Maps
IBM Sales Teams
PathTECH
White Papers
Pathfinder Beacon
Modeling Resources
Downloads
News
Events
User ID:   Password:   
Site Map  |  Contact Us  
 
Home  >  Systems Engineering
Pathfinder Beacon
Subscribe to this Newsletter!
To subscribe to this newsletter or to manage your current subscription go to our subscription page.

In this issue:

Feature Article:
MDD and MDA

PathMate and RoseRT

Logical Indivisibility in OO applications; Part II

Upcoming Events and News

Interesting Links

Back to Previous Page

Beacon Archives
Click Here.

  MDD and MDA
Volume 2, Issue 2

Welcome!

You are reading the Pathfinder Beacon, Pathfinder Solutions’ quarterly newsletter. This is not another online advertisement masquerading as news. The Pathfinder Beacon presents useful information regarding the most noteworthy and cutting edge MDD and MDA trends and topics.

In this issue, our Feature Article clears up some common misconceptions about the relationship between MDD and MDA, while Pathfinder Fellow Greg Eakman offers some information on an exciting customer project. Also, H. S. Lahman provides the third installment of his conversation on Logical Indivisibility.

Also, see our Upcoming Events to find out what’s to come in the next few months. Don’t forget to place your subscription so you can stay on top of all the latest news from Pathfinder Solutions!

Happy reading!

The Editor


Feature Article

MDD and MDA:
Sorting out the model driven alphabet soup.

Model Driven What?  

With all of the abbreviations out there, things can get confusing. So let’s start with some basics. MDD is Model Driven Development – a range of software development approaches that are based on the use of software modeling as a primary form of expression. Sometimes models are constructed to a certain level of detail, and then code is written by hand in a separate step. Sometimes complete models are built including executable actions. Code can be generated from the models, ranging from system skeletons to complete, deployable products. With the introduction of the Unified Modeling Language (UML), MDD has become very popular today with a wide body of practitioners and supporting tools. More advanced types of MDD have expanded to permit industry standards which allow for consistent application and results. The continued evolution of MDD has added an increased focus on architecture and automation.


MDD technologies with a greater focus on architecture and corresponding automation yield higher levels of abstraction in software development. This abstraction promotes simpler models with a greater focus on problem space. Combined with executable semantics this elevates the total level of automation possible. The Object Management Group (OMG) has developed a set of standards called Model Driven Architecture (MDA), building a foundation for this advanced architecture-focused approach. By applying the wide reaching and integrated automation possible under MDA, software engineers using these technologies have found dramatic increases in both total productivity and quality in their software development projects.


In addition to increased productivity and quality, MDA offers several other advantages over other less advanced MDD approaches, including:
  • Platform-independent models, promoting system longevity and flexibility in deployment
  • Executable models, built with a platform-independent action language increasing model level of abstraction, quality and developer productivity
  • Transformation of models to implementation, allowing higher run-time performance through automated optimizations not feasible with hand-written code.

If you wish to find out any more information about MDD or MDA, please contact us at info@pathfindermda.com.


PathMATE and Rose RT
A Report from the Field by Greg Eakman

Pathfinder recently completed a project with a client investigating combining PathMATE with Rational Rose RT. The client wanted the benefits of platform independent level of abstraction, full control of generated code, and increased productivity. The project first integrated PathMATE and Rose RT at the mechanism level so that PathMATE and Rose RT models could run in the same executable and communicate through ports and signals. Custom templates were created to generate Rose RT adaptation code using UML2 structured classes and ports capabilities released in Q4 2006.

Stay tuned for Greg’s complete report on the project in the coming weeks!


Logical Indivisibility in OO applications; Part II
By: H. S. Lahman

In this installment I will discuss the role of logical indivisibility in object abstractions. We define all sorts of individual responsibilities for an object. So how is it logically indivisible if we can identify its properties individually? For objects the notion of logical indivisibility is tied to object identity and collaboration. In OOA/D we send messages to objects, not individual methods. This is especially true in MBSE where our messages are events and the sender has no idea what state action will respond.

In the last installment I talked about logical indivisibility’s role in application partitioning. Much of that discussion applies to objects as well. Simplistically, one can regard a subsystem as an object on steroids. Thus abstracting problem space entities provides logical indivisibility “for free” because such entities are necessarily identifiable. When one is faced with the need to break up an object for some reason, one uses the same technique of problem space delegation in order to ensure that each new object abstraction is logically indivisible.

That is a pretty “cookbook” technique so developers rarely have to think explicitly about logical indivisibility when defining objects. Though logical indivisibility is largely hidden by methodological technique, it is important to understand why logical indivisibility is crucial to the OO paradigm. So I will use this installment to discuss that.

One of the unique features of the OO paradigm is peer-to-peer collaboration. Essentially peer-to-peer collaboration “flattens” the traditional functional decomposition hierarchies used in Structured Programming. When higher level functions in functional decomposition trees were reused in different contexts the tree became a lattice and one had the legendary “spaghetti code”. One view of peer-to-peer collaboration is that the decomposition tree still exists to determine the logically indivisible leaf functions but those leaf functions invoke each other directly rather than traversing up and down the tree hierarchy.

However, those lowest level leaf functions that were logically indivisible in a functional decomposition were fixed at a very low level.  So trying to flatten the tree to allow them to call each other directly was possible but extremely tedious to implement, which is why one encoded the higher level nodes in the first place.  The OO paradigm gets around that problem by making logical indivisibility flexible based on context.  Thus the developer gets to decide what belongs inside the indivisible “black box”.

This makes the flattening of the tree for peer-to-peer collaboration much easier. We define an “object” as an abstraction that other objects collaborate with. That abstraction can be arbitrarily complex as it is tailored to a particular solution context. However, the collaborations that represent the overall solution flow of control are among just a few objects, regardless of how complex those objects are. So we get to define that solution flow of control in a UML Interaction Diagram where all we see are objects and messages. That lets us focus on the critical flow of control without any distractions from the detailed processing within those object “black boxes”. This is an enormously powerful tool for managing complexity.

Of course such flattening has it limits. That is why the OO paradigm actually provides a decomposition hierarchy that is fixed at the four levels I identified in the introductory installment: subsystem, object, responsibility, and operation. This effectively allows the developer to switch gears in defining logical indivisibility for objects from one subsystem to another. It also allows the developer to deal with the complexity of object implementations at the level of state machines and responsibility actions.

In the next installment I will discuss the role of logical indivisibility in objects.


Upcoming events and news

Pathfinder Solutions recently took part in Raytheon’s 6th Annual Systems and Software Symposium in Richardson, Texas from April 30 through May 4. Pathfinder Solutions was honored to be invited to partake in the event for the fourth consecutive year. The focus of this year’s symposium was “Technical Excellence via Innovation and Revolution.”

Pathfinder Solutions has been invited to participate in the Ready for Rational Pavilion at the IBM Rational Software Development Conference in Orlando, Florida, from June 10-14. This year, the 10th anniversary of the conference features over 20 hands-on technical workshops, more than 285 sessions, keynote speakers from industry leaders, a high-energy Exhibit Hall, and much more. For more information, visit: http://www-306.ibm.com/software/rational/events/rsdc2007/.


Interesting Links

The following is a list of web sources of interest to the MDA community:

http://www.omg.org/mda/
The Object Management Group’s webpage providing detailed information about MDA, including free webcasts, presentations, and papers.

http://pathfindermda.com/resources/whitepapers_form.php?download
=modeling_conventions.pdf&&title=MDA%20Modeling%20Conventions/

Pathfinder’s informative whitepaper on MDA Modeling Conventions, containing common rules to help you model high performance systems. Use these conventions to ensure that the abstractions you develop for your models are consistent, understandable, and valid.


Home  |  About  |  Products  |  Services  |  Partners & Industries  |  News & Events  |  Resources
Search Our Website  |  Contact Us  |  Site Map  |  Trademarks  |  Privacy Policy
© 2003-2010  Pathfinder Solutions    •   Wrentham, Massachusetts   •   888-662-PATH   •   info@pathfindermda.com