Importance of software architecture 1
-
Upload
dr-reeja-s-r -
Category
Engineering
-
view
300 -
download
2
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