Introduction to Software      Architecture
Definition of Software Architecture• The software architecture of a program or computing  system is the structure or struc...
Architecture Defines Structure                                 3
Architecture Specifies Component             Communication• Communicate  – Data  – Control• Communication methods  – Metho...
Architecture Addresses Nonfunctional Requirements • Nonfunctional requirements are the ones that   don’t appear in use cas...
Architecture Is an Abstraction• Unnecessary details are suppressed or ignored  in order to focus attention and analysis on...
Architecture Is an Abstraction                                 7
Architecture Views• Logical view: This describes the architecturally  significant elements of the architecture and the  re...
Architecture Views• Physical view: This depicts how the major processes  and components are mapped on to the applications ...
Why Is Software Architecture Important?• Communication among stakeholders• Early design decisions   – Architecture Defines...
Why Is Software Architecture Important?• Transferable abstraction of a system   – Software Product Lines Share a Common   ...
Where Do Architectures Come From?• Architecture are influenced by management  stakeholders• Architecture are influenced by...
Stakeholders•   Managers•   Marketing officials•   End-users•   Maintenance officials•   Customers                        ...
Architecture activities1. Creating the business case for the system2. Understanding the requirements3. Creating or selecti...
Quality Attributes• Performance    – Throughput    – Response time•   Scalability                          Trade-off•   Ex...
Summary•   Definition of software architecture•   Architecture views•   The importance of architecture•   Architecture act...
17
Upcoming SlideShare
Loading in …5
×

1 introduction to sa

681 views

Published on

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
681
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
22
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

1 introduction to sa

  1. 1. Introduction to Software Architecture
  2. 2. Definition of Software Architecture• The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them.• Other definitions: http://www.sei.cmu.edu/architecture/definitions.ht ml 2
  3. 3. Architecture Defines Structure 3
  4. 4. Architecture Specifies Component Communication• Communicate – Data – Control• Communication methods – Method calls – Message passing – etc. 4
  5. 5. Architecture Addresses Nonfunctional Requirements • Nonfunctional requirements are the ones that don’t appear in use cases • They are concerned with how the application provides the required functionality • Three distinct areas of nonfunctional requirements – Technical constraints – Business constraints – Quality attributes 5
  6. 6. Architecture Is an Abstraction• Unnecessary details are suppressed or ignored in order to focus attention and analysis on the salient architectural issues• Components in the architecture are considered as black boxes• Architecture can be described by decomposing 6
  7. 7. Architecture Is an Abstraction 7
  8. 8. Architecture Views• Logical view: This describes the architecturally significant elements of the architecture and the relationships between them. The logical view essentially captures the structure of the application using class diagrams or equivalents.• Process view: This focuses on describing the concurrency and communications elements of an architecture. In IT applications, the main concerns are describing multithreaded or replicated components, and the synchronous or asynchronous communication mechanisms used. 8
  9. 9. Architecture Views• Physical view: This depicts how the major processes and components are mapped on to the applications hardware. It might show, for example, how the database and web servers for an application are distributed across a number of server machines.• Development view: This captures the internal organization of the software components, typically as they are held in a development environment or configuration management tool. For example, the depiction of a nested package and class hierarchy for a Java application would represent the development view of an architecture 9
  10. 10. Why Is Software Architecture Important?• Communication among stakeholders• Early design decisions – Architecture Defines Constraints on Implementation – Architecture Dictates Organizational Structure – Architecture Inhibits or Enables a Systems Quality Attributes – Predicting System Qualities by Studying the Architecture – Architecture Makes It Easier to Reason about and Manage Change – Architecture Enables More Accurate Cost and Schedule Estimates 10
  11. 11. Why Is Software Architecture Important?• Transferable abstraction of a system – Software Product Lines Share a Common Architecture – Systems Can Be Built Using Large, Externally Developed Elements – Architecture Permits Template-Based Development 11
  12. 12. Where Do Architectures Come From?• Architecture are influenced by management stakeholders• Architecture are influenced by developing organization• Architecture are influenced by the background and experience of architects• Architecture are influenced by technical environment 12
  13. 13. Stakeholders• Managers• Marketing officials• End-users• Maintenance officials• Customers 13
  14. 14. Architecture activities1. Creating the business case for the system2. Understanding the requirements3. Creating or selecting the architecture4. Documenting and communicating the architecture5. Analyzing or evaluating the architecture6. Implementing the system based on the architecture7. Ensuring that the implementation conforms to the architecture 14
  15. 15. Quality Attributes• Performance – Throughput – Response time• Scalability Trade-off• Extensibility• Security• Availability• Modifiability 15
  16. 16. Summary• Definition of software architecture• Architecture views• The importance of architecture• Architecture activities• Quality attributes 16
  17. 17. 17

×