Kiseldalens' List of Object & Component Tech Links
Lean or heavyweight? Which level of detail, tool, process, archiecture, componentization?
What about persistence and databases?
The Unified Modeling Language can be used with any up-to-date process or tool - whereas knowledge of UML is crucial in any of those.
The UML being a wide "Swedish table" (smörgåsbord) of ingredients, quite many tools are niche tools. But, many projects happen to use tools intended for somebody else...
Enterprises of today shall fine-tune their processes and strategies in the light of components.
I take a lean, low-overhead, practical approach to analysis and agile modeling, based on essential core UML. Beware of notation-bloat books (like 4 ways of depicting a Composition relationship - while you need exactly 1 in practice).
Look for compact checklists, hints, patterns, real-life systems and component frameworks.
These links illustrate that the UML, the Model Driven Architecture, and myself, are vendor-independent - see also the links to other lists of links (page bottom).
Tool links (UML):
Select Business Solutions' Component Factory
Telelogic’s product pages (Modeller is now for free)
Visual Object's low-cost tools (Visual UML)
Sparx Systems' Enterprise Architect pages
Magic Draw's pages
Visual Paradigm's UML pages
Sun Java Studio Enterprise pages (containing a free UML modeller)
A component-based process or architecture is not achieved by mechanically following a handbook. It has to be fine-tuned for years, as has been done in more mature industries.
I catalyze and advise on such transitions.
- Basic UML
My light book (with Barry McGibbon), a starter for all stakeholders except developers.
UML Xtra-Light: How to Specify Your SW Requirements, ISBN 0-521-892422
My favorite on advanced OO and on UML for programmers is Fowler's award winning lean one (much substance on few pages, try to beat it if you can) -
UML Distilled, 3rd edition, ISBN 0-321-19368-7
- UML in business systems, including databases, I still prefer several chapters of this classic -
Component Based Development for Enterprise Systems, ISBN 0-521-64999 4
- on problem patterns before choosing a solution.
It facilitates initial understanding of your problem, provided you’re not too pedantic about notations (I wouldn't mind UML 2 diagrams to replace non-standard ones, and clear distinctions in the text between «interface» and «boundary» and «facade»);
many examples are suited for CBD, and components are easily imaginable here. Michael has done research into an architectural mapping from his problem frames onto frame-customized platforms.
Problem Frames: Analyzing and Structuring Software Development Problems, ISBN: 0-201-59627-X
- UML for RT, embedded etc. :
Doing Hard Time, by Bruce Powel Douglass, ISBN 0-201-49837 5
Executable UML: A Foundation for Model-Driven Architecture, by Steve Mellor, ISBN 0-201-74804-5
- UML for knowledge/logic-intensive systems
I suggest the high-level language of your knowledge-tool, xor (as opposed to a plain "or") the UML OCL:
The Object Constraint Language - Getting Your Models Ready for MDA, by Warmer & Kleppe, ISBN 0-201-37940-6
- even today, specs often miss on deceptive seemingly-tiny details of logic that turn out crucial down the road (or-xor, implication-equivalence, exists-forAll etc.). If your system shall process a complex business logic, then natural language alone is never the easy street it initially looked like.
For tool vendors, the OCL is useful in metamodels. For application architects and testers, it can detail the definitions of interfaces and the checks at those interfaces, in terms of preconditions and postconditions (of operations, without having the methods/algorithms yet).
List-of-links pages (and similar):
Patterns’ home pages (Aamod Sane & Co) on new patterns, conferences, books and much more
UML-resource-page, by the Object Management Group (OMG)
Object Management Group Home page (UML, and many more standards)