This document introduces software architecture and discusses its importance. It defines software architecture as the structure of a system comprising software elements and relationships between them. Developing a software architecture helps address challenges in software engineering like reducing costs and increasing quality. It allows for early problem analysis, definition of interfaces to avoid integration issues, and planning of testing. Factors beyond requirements influence architecture design, and challenges include creating an architecture that meets requirements while being documented and maintained properly.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
96 views13 pages
Lec 01 Introduction To The Software Architecture
This document introduces software architecture and discusses its importance. It defines software architecture as the structure of a system comprising software elements and relationships between them. Developing a software architecture helps address challenges in software engineering like reducing costs and increasing quality. It allows for early problem analysis, definition of interfaces to avoid integration issues, and planning of testing. Factors beyond requirements influence architecture design, and challenges include creating an architecture that meets requirements while being documented and maintained properly.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 13
Software Design and Architecture
Introduction to Software Architecture
Agenda Design and Architecture – Difference Challenges in Software Engineering How Software Architectures can Help What is Software Architecture? Why Develop a Software Architecture? Software Architecture is Abstraction Factors Influence Architecture Software Architecture Design Methods Challenges when Creating a Software Architecture What is 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.” (Bass, Clements, Kazman) For more (much more), http://www.sei.cmu.edu/architecture/definitions.html Design and Architecture – Difference
No clear boundary line.
All architecture is design – all design is not architecture! Architecture building blocks: Components, modules Design building blocks: Classes/objects Software Architecture in Development? Why Develop a Software Architecture?
Why spend time on developing a Software
Architecture? It takes time
We have the requirements
We want to start coding
Why Develop a Software Architecture!
Early Problem Analysis
Communicate back to Customer Define Interfaces Avoid Problems during Integration Early Information for Testing Planning Challenges in Software Engineering Reduce Development Cost Delivery on time and within budget Increase System Quality Decrease Maintenance Costs 80% of a system’s lifespan is spent in maintenance phase. How Software Architectures can Help Understanding System Theoretical Limitations Planning Resources Labor Communication Customer Stakeholders Challenges with Software Architectures
Requirements alone do not generate a
specific Software Architecture? There are other factors. Which? Who has input to the software architecture? Who are users of the software architecture? Challenges when Creating a Software Architecture
To model an architecture that meets the
requirements To document the architecture models in the right way Everyone should understand! To maintain/manage the architecture. To spread knowledge about the architecture In the project Outside the project How to Develop a Software Architecture
A Software Architecture sets the theoretical
max & min boundaries of Quality Attributes for a Software System E.g. Performance, Modifiability, Reliability Hence, Requirements on Quality Attributes should drive Software Architecture Design. The End Thanks for listening Questions would be appreciated.