Importance of software architecture 1

Post on 16-Apr-2017

298 views 2 download

Transcript of Importance of software architecture 1

Why is Software Architecture important?

Dr. Reeja S RAssociate professorCSE DEPT.,SJEC, Vamanjoor

WHY IS SOFTWARE ARCHITECTURE IMPORTANT? Communication among stakeholders Early design decisions Transferable abstractions of a system

1. COMMUNICATION AMONG STAKEHOLDERS

Each stakeholder has different concerns provides a common language

2. ARCHITECTURE MANIFESTS THE EARLY DESIGN DECISIONS

Early decisions are the most difficult to get correct and the hardest to change and have far reaching consequences

a) defines constraints on implementation Implementation must conform to

prescribed design decisions resource allocation decisions

2. ARCHITECTURE MANIFESTS THE EARLY DESIGN DECISIONS

b) dictates organizational structure work assignments to teams plans, schedules, budgets communication channels among teams

2. HELPS EARLY DESIGN DECISIONSc) Inhibits/Enables Quality Attributes

Whether a system will be able to exhibit its desired (or required) quality attributes is substantially determined by its architecture

d) Predicting system qualities by studying the architecture

Architecture ALLOWS PREDICTING SYSTEM QUALITY ATTRIBUTES without waiting until the system is developed or deployed

2. HELPS EARLY DESIGN DECISIONSe) Makes it easier to reason about and manage change

An effective architecture is the one where most likely changes are the easiest to make

Reasoning about the architecture can provide the architect an insight necessary to make decisions about the proposed changes

2. HELPS EARLY DESIGN DECISIONSf) Helps in evolutionary prototyping

Once architecture has been defined, it can be analyzed and prototyped as a skeletal system

The system is executable early in the product's life cycle Potential performance problems can be identified early

2. HELPS EARLY DESIGN DECISIONSg) The architecture enables more accurate cost and schedule estimates

Cost and schedule estimations based on system pieces are more accurate

3. TRANSFERABLE ABSTRACTIONS OF A SYSTEM

Architectures can be applied to other systems exhibiting similar quality attribute and functional requirements and can promote large-scale re-use

1. Software product lines share a common architecture Need an architecture that is designed to handle the needs of the entire

family shows order-of-magnitude payoffs in time to market, cost, productivity, and

product quality

3. TRANSFERABLE ABSTRACTIONS OF A SYSTEM

2. Systems can be built using large. Externally developed elements

This composition is possible because the architecture defines the elements that can be incorporated into the system

3. TRANSFERABLE ABSTRACTIONS OF A SYSTEM

3. Restrict the vocabulary of design alternatives

rich set of architectural patterns available Restricting number of choices helps to enhanced re-use, more

regular and simpler designs that are more easily understood and communicated, more capable analysis, shorter selection time, and greater interoperability.

3. TRANSFERABLE ABSTRACTIONS OF A SYSTEM

4. Permits template based development

5. An Architecture Can Be the Basis for Training

WHY IS SOFTWARE ARCHITECTURE IMPORTANT?

Communication among stakeholders

Early design decisions Defines the constraints on implementation

Dictates the organizational structure

Inhibits/Enables Quality Attributes

Evaluating architecture allows to predict quality attainment

Makes it easier to reason about and manage change

Helps in evolutionary prototyping

Enables more accurate cost and schedule estimates

Transferable abstractions of a system Software Product Lines share a common architecture

Systems can be built using large externally developed elements

Helps to Restrict the vocabulary of design alternatives

Permits template based development

Can serve as the basis for training