Wednesday, June 20, 2007

UML 2.0

Yeah, there are some cools things that you can put into your uml using the new spec.

It's all about model driven development right? Is it? Maybe.......

I like the concept of providing the additional level of indirection; to be able to encompass the application not in a language, but in a language independant model. Use tools to generate the source code from that, and use more tools generate an implementation. Getting the for loops working in your sequence diagrams. You can assign your project roles in this fashion, as our friendly RUP methodology well illustrates. I spend a lot of time on the rational RUP builder for this exact reason.

J2EE Architecture

Its about 3 things;

  • It's all about the Sun spec, and using the key technology components that the spec prescibes; i.e. what functionality must a web container delivery, what functionality must an ebj container deliver, client container etc etc
  • It's all about trendy j2ee opensource frameworks, irrespective of the frameworks development time and runtime characteristics
  • And most of these trendy frameworks are implementations based on your favorite coffee table patterns books. Those books you use to pick up chicks with.....Its really about ensuring that you select a pattern / framework that has implemented an pattern that delivers the technical characteristics that your project requires non functional what??? Hopefully, you've quantified the runtime characteristics and development time charactertics of these frameworks.

Definition of Technical Architecture

Semantics is everything, right?
So what is Technical Architecture, what is a Technical Architect, and what is the intent of this site?

I work as a technical architect, and I deal with Technical Architectures. But jeeeeezus, I have never seen in any Industry such a basic lack of agreement over what these terms mean, how they are quantified, delivered, and assessed. A member of my extended family is involved in a fledgling professional body that deals with Enterprise Architecture and as he said, good luck on being able to even get consensus on a definition, let alone buying books and taking courses on the subject.

I kinda like the wikipedia definitions, but I want to get more "techno" with it....


  • Technical Architecture - more than just the Detailed descriptor level deployment view? Define this in terms of the UML artifacts (and non UML aritfacts i.e. Context diagram) and methodologies. I see it as a RUP base that starts at the Software Architecture level, and extends out from there..I also see it in system enterprise terms. Its polymorphic in nature. In terms of technology type and domain, I see it again polymorphically; in terms of just software, but also software/firmware/hardware enabled devices i.e. embedded and communications. It can encompass business, recreational, engineering and scientific domains. I'll come back to this, but hey, its a start.....
  • Technical Architect - a superset of the RUP Software Architect role. Composition vs inheritance. 100% polymorphism.....a Technical Architect can extend the Software Architect role, or can focus at the system level. This role operates in 2 completely different spaces, the work delivery role and the sales role. If you want to use RUP phases, Inception equates to sales and RFI / RFP, and Elaboration equates to god knows what. Construction and Transition are in work delivery, but Elaboration? Baby, its all about risk management.