Importance of software architecture 1

14
Why is Software Architecture important? Dr. Reeja S R Associate professor CSE DEPT., SJEC, Vamanjoor

Transcript of Importance of software architecture 1

Page 1: Importance of software architecture 1

Why is Software Architecture important?

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

Page 2: Importance of software architecture 1

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

Page 3: Importance of software architecture 1

1. COMMUNICATION AMONG STAKEHOLDERS

Each stakeholder has different concerns provides a common language

Page 4: Importance of software architecture 1

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

Page 5: Importance of software architecture 1

2. ARCHITECTURE MANIFESTS THE EARLY DESIGN DECISIONS

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

Page 6: Importance of software architecture 1

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

Page 7: Importance of software architecture 1

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

Page 8: Importance of software architecture 1

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

Page 9: Importance of software architecture 1

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

Page 10: Importance of software architecture 1

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

Page 11: Importance of software architecture 1

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

Page 12: Importance of software architecture 1

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.

Page 13: Importance of software architecture 1

3. TRANSFERABLE ABSTRACTIONS OF A SYSTEM

4. Permits template based development

5. An Architecture Can Be the Basis for Training

Page 14: Importance of software architecture 1

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