Dr. Reeja S R
Associate professor
CSE DEPT.,
SJEC, Vamanjoor
 Communication among stakeholders
 Early design decisions
 Transferable abstractions of a system
 Each stakeholder has different concerns
 provides a common language
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
b) dictates organizational structure
 work assignments to teams
 plans, schedules, budgets
 communication channels among teams
c) 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
e) 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
f) 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
g) The architecture enables more accurate cost and schedule
estimates
Cost and schedule estimations based on system pieces are more accurate
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
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. 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.
4. Permits template based development
5. An Architecture Can Be the Basis for Training
 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

Importance of software architecture 1

  • 1.
    Dr. Reeja SR Associate professor CSE DEPT., SJEC, Vamanjoor
  • 2.
     Communication amongstakeholders  Early design decisions  Transferable abstractions of a system
  • 3.
     Each stakeholderhas different concerns  provides a common language
  • 4.
    Early decisions arethe 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
  • 5.
    b) dictates organizationalstructure  work assignments to teams  plans, schedules, budgets  communication channels among teams
  • 6.
    c) Inhibits/Enables QualityAttributes 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
  • 7.
    e) Makes iteasier 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
  • 8.
    f) Helps inevolutionary 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
  • 9.
    g) The architectureenables more accurate cost and schedule estimates Cost and schedule estimations based on system pieces are more accurate
  • 10.
    Architectures can beapplied 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
  • 11.
    2. Systems canbe built using large. Externally developed elements This composition is possible because the architecture defines the elements that can be incorporated into the system
  • 12.
    3. Restrict thevocabulary 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.
  • 13.
    4. Permits templatebased development 5. An Architecture Can Be the Basis for Training
  • 14.
     Communication amongstakeholders  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