Tuesday, July 22, 2008

COMMON ARCHITECTURES


Architecture
is a set of structuring principles that enables a system to be comprised of a set of simpler systems each with its own local context that is independent of but not inconsistent with the context of the larger system as a whole. [Sun Microsystems, Inc.]

Software Architecture
Software architecture is the structure of structures and take away the functions that implement business requirements and what remains is architecture.

Description of a structural framework to help the design of the application.
The description of a development environment and deployment configuration that supports the non-functional requirements of a software application.
A software architect is most active during the early stages of development but must participate during the entire development lifecycle of a product.
Architecture is developed and described somewhere between when a vision for the product is developed and before construction begins.
The software architecture must be baselined (agreed on by all stakeholders) before construction begins because a change in the architecture usually has vast consequences.
Architectural considerations: An architecture can be assessed using the following qualitative measures:
A non-functional requirement is one that is specified for a software system and does not pertain to a business function to be developed in the system.
Non-Functional requirements are usually quality attributes for the software system.
Also called service-level requirements or Quality of Service (QoS) requirements or Non-functional requirements
During the inception and elaboration phases, architect works with defining the quality of service measurement for these QoS reqs.
One has to make trade-offs between these requirements (For example, if the most important service-level requirement is the performance of the system, you might sacrifice the maintainability and extensibility of the system to ensure that you meet the performance quality of service)
1.Scalability
2.Maintainability
3.Reliability
4.Availability
5.Extensibility
6.Performance
7.Manageability
8.Security

No comments: