Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / Mobile / WinMobile

Software Architect Simple Way 1 of ??

1.30/5 (11 votes)
5 Oct 2008CPOL3 min read 1  
A series for simplifying the learning of software architecture

Introduction

In your way for Software Architecture you must pass throw the milestone of learning how to transform your ideas , thoughts and users requirements to a well designed easy to understood and more importantly standard output .

The tools that enable any software architect to do this are UML.

UML or Unified modeling language is the tools that transform software architect ideas and user requirements into a standardized model that is easy to be share with your software team of developers and project manager. It was invented in analogy to civil architecture designs.

4+1 Model

In this first article we will introduce the different views that you may use to look into your software system in design , there are many methodologies to do this but one of the most proven and flexible methodologies is 4+1 Views method , which developed by Philippe Kruchten in 1995.

Image 1

It consists of 4 different views for the software system from development view point plus one view from prospective of the outside world.
For each one of this views it have its own set of UML diagrams that constructs the view, we will discuss each of this views in the following sections.

Logical View

The aim of logical view of the software is to have a representation for the software logic and the links between its parts; we can summarize its benefits in the following points.

• Show the parts that comprise the system as well as their interactions.
• Represents a set of Abstractions.
• Emphasizes classes and objects.

We use 5 different diagrams to show the logical view of the system and they are

Class Diagram.
Communication Diagram.
State Diagram.
Sequence Diagram.
Object Diagram.

I prefer to call them CCSSO diagrams; we will discuss each of them in a separate article during this series.

Process View

The process view from its name describes the system’s process and its communications.
It’s helpful when you have a system that consists from a number of simultaneous processes or threads; we can summarize its benefits in the following points.

• Describes a system’s processes.
• Shows communications between processes.
• Explores what needs to happen inside the system.

And the sole UML diagram that represents the Process View is the Activity Diagram.


Physical View

It’s a look into the system that gives us the following benefits.

• Models system execution environment.
• Maps software artifacts onto the hardware that hosts them.

And like the Process View, Physical View also have a sole UML diagram that represents it, Deployment Diagram.


Development View

This view embraces developer’s point of view to the software system under development, and can be utilized to do the following.

• Describes the system module including packages, sub-systems and class libraries.
• Gives a building block view of the system.
• Helps to manage system layers.

And there is 2 UML diagrams shows the developments view, and they are

• Package Diagram.
• Component Diagram.

Use Case View

Finally the +1 view, Use Case View and as stated before it’s the view that act as a bridge between the outside world and your system, we can use it as follow.

• Capture users and stakeholders goals and scenarios.
• Shows the system’s functionality.
• Defining and Explaining the structure of the other four views.
• Offers and outside world perspective to the system.

And unlike the other four views the Use Case view not consists only from UML diagram, but consists from.

• UML Use Case Diagram.
• Written Use Cases.
• User requirements document and specifications.

I hope at the end of this article that I could cover the 4+1 model and all the points are clear and don’t hesitate to contact me to give your comments.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)