Last change: 04/08/05

 

Notice:  These are notes to myself.  Accuracy is to the best of my knowledge.   References are at the bottom of the page.

 

________________________________________________________________________

 

Selected Architecture definitions

________________________________________________________________________

 

Views – high level abstraction modeling.

 

Static architecture – uses an API

 

Dynamic architecture – uses metadata change and resource management

 

Reference Models/Reference Architectures- system engineering model or business group models used to document a product line or domain.

 

Component Architecture- application and data separation

 

OO Architecture – utilizing OO technologies with emphasis on encapsulation and interfaces.

 

Layered Architecture- exactly what the name implies, most common architecture.

 

Enterprise Architecture – defines the roadmap and how the various models at different levels of the enterprise are related.   Typically the business domain.   Architecture that is used across a business/enterprise.

 

________________________________________________________________________

 

Architecture Frameworks – only some support enterprise modeling

________________________________________________________________________

 

 

Zachman Framework [Zachman 1997] – IBM research, non-OO.  This is a reference model comprising 36 architectural viewpoints.   You pick the viewpoints on a per project basis.

 

DODAF (DoD Architecture Framework) – US DoD framework used to support war-fighting operations, business operations, and processes.

 

TOGAF (The Open Group Architecture Framework) – I believe this is the commerical world’s answer to design, evaluation, and building of architectures for enterprises.   It uses the architecture development method (ADM).

 

Open Distributed Processing (ODP) [ISO 1996] – five viewpoint reference model (enterprise, information, computation, engineering, and technology).   It supports OO architecture and component based architectures.

 

ISO Standards from ODP:

OSI – Open Systems Interconnection seven layer reference model for network

           apps.

RM-ODP – ISO’s reference model for open distributed processing.   There are five viewpoints.  This model uses OO.  Separation of concerns that divide the

business and logical functionality of the system from the distributed computing

and commerical technology decisions of the architecture.  Used heavily in

Telcom industry.

Enterprise – managers and end users view

Information – database modeler view

Computational – application dev. engineer view, CORBA IDL

Engineering – operating system engineer view

Technology – network engineer works view

            Four documents describe RM-ODP

            X.901 – Overview

            X.902 – Foundations

            X.903 – Architecture

            X.904 – Archtectural Semantics

 

Domain Analysis [Rogers 1997] – Transforms project specific requirements into more general domain requirements for families of systems.   I believe this is the traditional approach to software.

 

IBM Rational’s 4+1 View Model [Kruchten 1995] – this is the unified process which has 4 viewpoints.   Logical, implementation (component), process (runtime), and deployment.  The 1 is the use cases.   The RUP is your friend.

            Use case view – one case per requirement. Scenerio is an instance of a use case.

            Logical view – pkgs, classes, and relationships

            Process view – control flows, concurrency.

            Implementation view – similar to makefiles

            Deployment view – links the app to the OS and use IDE debugger.

Note: Rose realtime and regular rose use the views differently because of the active objects school of thought.

 

FEAF – Federal Enterprise Architecture Framework.   This is based on Zachman.

Level 1 – arch. drivers

Level 2 – business drivers and design drivers

Level 3 – use business, data, apps, and technology views

Level 4 – uses ZF and EAP

 

 

 

C4ISR Architecture Framework [1997] – specializes the Zachman Framework. 

Command and Control, Computers, communications. Intelligence, Surveillance

and Reconnaissance.   Use to communicate architectural plans thru common

viewpoints.   Replaced by DODAF.

 

________________________________________________________________________

 

Design Patterns- more abstract structures used in OO architectures

________________________________________________________________________

 

The Hillside group is a major contributor – http://hillside.net

 

A link to the pattern page:

http://hillside.net/patterns/patternslanguages.htm

 

Gamma Design Patterns (gang of 4) - Creational, Behavioral and Structural Patterns for 

    implementation level.

Buschmann Architecture Patterns – system level design patterns

CORBA Design Patterns – system level design patterns

Fowler Analysis Patterns – good for analysis

Java Design Patterns by Sun – for the Java developers.

 

MVC – model view controller which is as old as smalltalk.

            Model – reusable component

            View – how the data is show

            Controller – processes for controlling the processing of the data

            Java has a Type 1 and Type 2 MVC.

            Struts is an Java Implementation of the MVC.

 

Interface – used everywhere in software architectures

 

…bookmark…other design patterns here.

 

________________________________________________________________________

 

Anti-Patterns : patterns in software that are improved by refactoring and other means.

________________________________________________________________________

 

Stovepipe systems

Spaghetti code

Analysis Paralysis

 

References (plan to add continually to this collection):

[1] Malveau, Mowbray, “Software Architecture Bootcamp”, 2nd edition, Prentice Hall, 2004.

 

[2] Tang, Han, “A Comparative Analysis of Architecture Frameworks”, IEEE Computer Society, Asia-Pacific Software Engineering Conference, 2004.

 

 

 

Hosted by www.Geocities.ws

1