The Residual World::Tag = 'Exploit'
Entries that have been tagged with 'Exploit'.-
by Nic Plum on Thursday 24 June, 2010 - 16:04 GMT
Relationships are one of the cornerstones to using an architecture framework, even more so if you’ve constrained the permutations of allowed relationships and object types though imposing a metamodel. For starters if you select (choose) an element in your model you know that it can only be connected to a limited set of other types of object and using one or a few relationships. So before you even touch the element you have expectations and therefore ideas about how you might then navigate through the model. Equally it helps you to spot errors.
If someone comes and asks what, if any dependency there is between System A and System P you immediately know what possible paths to look for in terms of the constructs provided by the metamodel.
So why, then are relationships very much second class citizens in modelling tools? I suspect the answer lies in their pedigree. Most will have developed from tools for the creators of software where the focus is on defining classes and attributes and on the objects themselves. Of course you can explore relationships but there are often very few ways of making these more explicit. For a software project the scope is often much more limited - usually local to the organisation whereas often what we’re up against is trying to map out how bits of an entire sector relate to each other. In this case we’re often asked to define or explore the relationships between a system and the ‘residual world’ as much as any exploration within the system itself. For the software creator the end result is the generation of code (from the same tool) rather than a model of their world where probably the number of relationships far exceed the number of objects.
The exploration of relationships is concerned primarily with access to the underlying database rather than the views that sit on the top. How easy is it in your tool of choice to expand or follow paths? Is it purely manual with experience driving it or does the tool itself help or offer suggestions? Does it offer many ways to query the database and how easy or hard is it? One of the best exploitations of relationships in a tool I’ve seen was in the probably now defunct ISSE, the then prescribed tool for the MoD’s Integration Authority within the Defence Procurement Agency. What ISSE did nicely was provide a dialog from which you could add a succession of lines, each representing a metamodel stereotype - relationship - stereotype so that you could construct a path. For example, you might simply have Capability Configuration - Resource Interaction - Capability Configuration. What ISSE would then allow is for the architect to tell it how many of these steps (iterations) to follow when starting from the selected model element and the result could be shown in detail or using a summarised notation with a dotted line. This made it much easier to quickly explore the database and find out if and how things depended on each other.
I’ve not seen anything quite like this since which is a shame. I suspect Im going to have to wait patiently as all sorts of clever features for coders are delivered and keep my fingers crossed that someone has actually figured out that the needs of the 2 communities that use these tools are different.
- OMG - Multiple tool vendors demonstrate exchange of UML models using XMI (20% )
- Things that You Think That Are Going to be Simple Never Are (20% )
- Improving Consistency for Tools - ‘TRAK. Implementation. Architecture Description Elements’ Document (20% )
- Is this Architecture? Where is the sentence? (20% )
- Using Relationships and a Repository - Visualisation (20% )