A sample text widget

Etiam pulvinar consectetur dolor sed malesuada. Ut convallis euismod dolor nec pretium. Nunc ut tristique massa.

Nam sodales mi vitae dolor ullamcorper et vulputate enim accumsan. Morbi orci magna, tincidunt vitae molestie nec, molestie at mi. Nulla nulla lorem, suscipit in posuere in, interdum non magna.

Need for software architecture design

When we use the term software architecture, we refer to the structure of the software system at a high level. Different set of structures together make up the software architecture. The structures comprises of various software elements, and the interactions between them. It also includes the properties of the relationships between them, along with the properties of the elements themselves. The set of practices that are used for the selection, definition and designing of the software architecture are also denoted by this term itself. Sometimes the documentation of the software architecture of the system is referred to by the same term. In this article we discuss about the need for software architecture design.
The architecture as defined for the rational unified process is the concept of the highest level of the system.
– A system’s architecture can be seen as a way in which the significant components of a system’s structure are organized.
– These components interact through their interfaces.
– Many smaller components together compose larger components.
– Software architecture has been considered to be an abstraction of a complex system that is intellectually graspable.

There are a number of benefits of this abstraction:
– Basis for behavior analysis: It serves a basis for analysis of the behavior of software system before it has been built actually. It is a great way for risk mitigation and substantial cost saving. This has been possible because of the architecture’s ability to verify whether the system fulfills the needs of its stakeholders without needing to build it. An example of the technique used for this purpose is ATAM.
– Basis for elements re – use: The architecture also serves a basis for re–using the decisions and the elements across many other systems. But the condition is that the requirement of the saving design costs, risk mitigation, quality attributes and functionality should be similar for the stakeholders of the different systems.
– Support for early design decisions: The abstraction provides support for the early design decisions that make an impact on the development, maintenance and deployment of the software system. Getting the right early decisions is very necessary as they prevent you from running out of a budget and going beyond schedule.
– Facilitates communication between stakeholders: Since it facilitates communication between the stakeholders, it contributes to the fulfillment of the stakeholder’s needs. This lets the stakeholders better understand the consequences of the decisions that have been made depending up on them. Architecture induces this communication ability before the implementation of the system. At this time, it is quite easy to adapt them.
– Risk management: The abstraction helps a great deal in managing the risks associated with the architecture.
– Cost reduction: Software architecture design helps in cutting down the costs of the complex projects.

A description was required that would state all the practices and their principles using in representation and modeling the architectures. Thus, software architecture description was created. It was created using methods such as the following:
– Architecture viewpoints: The architecture descriptions are usually understood by the means of views. Each view is analogous to its architecture’s blueprint. A different set of system concerns is addressed by each view as per the conventions of a viewpoint. Apart from the concerns, it also specifies the types of models used, conventions used, consistency rules etc. The purpose of the consistency rules is to ensure that all views are consistent with each other.
– Architecture description languages: (ADL) is used for expressing or describing the architecture of software. Since 1990s many special purpose ADLs have been developed. Some examples are AADL, Wright, Acme, xADL, DAOP – ADL, ByADL and Darwin.
– Architecture frameworks: Captures, principles, conventions and practices for the software architecture description.

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>