Saturday, August 8, 2009

How Many Types of Architects Do You Know?

1. According to ISO/IEC, there are not various types of architects. An architect is an architect. Period.

2. Microsoft, however, recognizes four types of architects: enterprise architect (EA), infrastructure architect (IA), technology-specific architect (TSA), and solution architect (SA). The list is taken from the job roles recognized by the Microsoft Certified Architect Program. You can read more about the program and job roles at http://www.microsoft.com/learning/mcp/architect/specialties/default.mspx.

ISO/IEC Quality Characterstics

ISO/IEC 9126 defines a general set of quality characteristics required in software products. The standard identifies six different families of quality characteristics articulated in 21 subcharacteristics.

1. Functionality
Indicates what the software does to meet expectations. It is based on requirements such as suitability, accuracy, security, interoperability, and compliance with standards and regulations.

2. Reliability
Indicates the capability of the software to maintain a given level of performance when used under special conditions. It is based on requirements such as maturity, fault tolerance, and recoverability. Maturity is when the software doesn't experience interruptions in the case of internal software failures. Fault tolerance indicates the ability to control the failure and maintain a given level of behavior. Recoverability indicates the ability to recover after a failure.

3. Usability
Indicates the software's ability to be understood by, used by, and attractive to users. It dictates that the software be compliant with standards and regulations for usability.

4. Efficiency
Indicates the ability to provide a given level of performance both in terms of appropriate and timely response and resource utilization.

5. Maintainability
Indicates the ability to provide a given level of performance both in terms of appropriate and timely response and resource utilization.

6. Portability
Indicates the software's ability to be ported from one platform to another and its capability to coexist with other software in a common environment and sharing common resources.

Note:

1. In typical scenarios, the key quality attributes that will be in focus
are “Scalability,” “Security,” “High availability,” “Reliability,” and “Performance”—also known as SHARP qualities.

2. There are two types of quality attributes

a. Runtime qualities

Those that result in the runtime behavior of the system (such as “Performance,”
“Security,” and “Scalability”)

b. Design qualities

Those that can be evaluated only over the life cycle of an application
(such as “Maintainability” and “Flexibility” qualities).

3. Mutual impact of quality attributes

Why workflows ?

You can achieve the same thing by writing a simple program or using a workflow. Then why would one use a workflow

1. Workflows allow you to write scalable applications. An application is not locked into a single process on a single machine.

2. Workflows allows to create unified application logic.

3. It also maintains state for us.

4. Using a workflow makes coordinating parallel work easier.

Points to note

1. A workflow's state and control flow are typically described in
XAML

2. Logic implemented using WF and exposed via WCF is known as a workflow service.

3. WF Workflow can be hosted in a worker process provided by IIS. Implemented as extensions to IIS and the Windows Process Activation Service (WAS), a primary goal of “Dublin” is to make IIS and WAS more attractive as a host for workflow services. Microsoft’s primary goal with “Dublin” is clear: providing a
useful set of tools and infrastructure for managing and monitoring workflow services
hosted in IIS/WAS.

4. WF in previous releases had a State Machine worflow which would no longer be available in WF 4. The two kinds of workflow available are Sequence and Flowchart.

5. Workflows created using previous versions can't be executed using WF 4 runtime.

A very nice article from David Chappel here.