SlideShare a Scribd company logo
ARCHITECTURE WHAT?
WEEK#01
DR. Muhammad Ali Memon
Associate Professor, University of Sindh
Building Architectures
Build a Place
What is Architecture?
◦ the action or process of building; construction.
◦ a plan for organizing space
◦ a systematic arrangement of information or ideas.
◦ the manner in which the components of a computer or computer
system are organized and integrated.
The Architect
You need an architect first.
A software Architect
Structure Matters – Dijkstra 1968
◦ Dijkstra, 1968:
◦  „‟...Correct arrangement of the structure of software systems
◦ before simple programming...„‟
◦  Layered Structure
◦  Programs are grouped into layers
◦  Programs in one layer can only communicate with programs in adjoining layers
◦  with easier development and maintenance
Edsger
Dijkstra
1930-2002
Evolution of software Problem
 Software problems have changed in nature
(algorithmic to general purpose applications)
 and increased in complexity (to millions and
millions lines of code)
 It has now become very hard/impossible to
develop system without architecture
Structure in software
Structure concept in Software
1960s - Structured Programming
 Adopted into programming languages because it‟s a better way to think about programming
1970s - Structured Design
 Methodology/guidelines for dividing programs into subroutines.
1980s – Modular programming languages
 Modular (object-based) programming
 Grouping of sub-routines into modules with data.
1990s – Towards Software Architectures
 Object-Oriented Analysis/Design/Programming started being commonly used
 Software Architecture Design
2000s - Software Architectures
 Starting to be Common Practice
 Specialization of concepts
Large scale complex software
systems…
◦ Large(distributed) systems.
◦ Many people working on the same problem
◦ Programming in the large
◦ Million of lines of code
◦ Overly complex
◦ Should be delivered on time and budget.
◦ Only the coding will not do.
◦ According to Brook: Adding more programmers will make a delayed project later.
ARCHITECTURE
DEFINITIONS
Definitions
◦ Basic artifact shown to the customers and made from the requirements.
◦ Breaking down of the system into components
◦ And describing the interrelations between the components
◦ A prototype of the system
◦ Identify the components of the system along with the interraction between them
◦ Its an abstraction of the system
◦ Earliest artifact
SOFTWARE ARCHITECTURE- Booch 1991
◦ “The logical and physical structure of a system, forged by all the strategic and tactical decisions
applied during development.”
◦ Architecture is the high level structure of a system.
client,
users
architect developers
appearance,
behaviour
construction,
co-operation
architectural
design
visualises prescribes
requirements solutions
creates
assess assess
SOFTWARE ARCHITECTURE- Perry and Wolf
◦ Perry and Wolf distinguish between processing elements, data elements, and connecting
elements, and this taxonomy of architectural elements largely persists through most other
definitions and approaches.
SOFTWARE ARCHITECTURE- IEEE
◦ “Software architecture is the fundamental organization of a system, embodied in its components,
◦ their relationships to each other and their environment,
◦ and the principles governing its design and evolution.”
SOFTWARE ARCHITECTURE – BASS,
CLEMENTS, KAZMAN
◦ 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.
Some Examples
SE, Software Architecture, Hans
van Vliet, ©2008 18
SE, Software Architecture, Hans
van Vliet, ©2008 19
SE, Software Architecture, Hans
van Vliet, ©2008 20
SE, Software Architecture, Hans
van Vliet, ©2008 21
SE, Software Architecture, Hans
van Vliet, ©2008 22
23
Pre-architecture life cycle
requirements
agreement
quality
development
stakeholders
(few)
24
Adding architecture, the easy way
architecture
detailed design
implementation
requirements
agreement
quality
development
stakeholders
(few)
25
Architecture in the life cycle
requirements
architecture
quality
agreement
stakeholders
(many)
development
Quality
◦ This can be compared with the construction of a sky scraper. Due to the complexity of such a building,
we need to think about the qualities of the building upfront. For example, if the landlord requires the
building to be earthquake resistant, the architect will think about solutions from seismic engineering
and add structures to the building that can resist lateral forces. At this point he will not specify the
materials or the supplier of those structures as those are construction details
SOFTWARE DESIGN
WHAT IS SOFTWARE DESIGN
◦ Software design is the process by which we create a specification of a software artifact, using
a set of primitive components and subject to constraints.
◦ The process of defining the architecture, components, interfaces, and other characteristics of a
system or component.
DIFFERENCE
◦ Software architecture deals with high level concepts without regard to any implementation
details. Software design on the other hand takes high level concepts and applies concrete
details so that software can be implemented.
◦ Every architectural work is a kind of design, but the reverse is not true
It's about addressing those architecturally significant requirements (the "what") that
will drive (and constrain) the "how" (the design).
SA
◦ Provides a design plan of a system
◦ Blueprint
◦ Implies purpose
◦ Is an abstraction that helps in managing the complexity of a system
◦ Software architects are limited by
◦ Lack of standardized ways to represent architecture
◦ Lack of analysis methods to predict whether an architecture will result in an implementation that meets
the requirements
QUESTION
◦ What do you think would happen if same requirements were given to two different architects of
different organizations?
ARCHITECTURE BUSINESS CYCLE
(ABC)
◦ SA – result of technical, business, and social influences
◦ A SA also influences technical, business, and social environment
◦ That, subsequently, influence future SAs
Architecture affects following factors:
◦ Structure of the developing organization
◦ Goals of the developing organization
◦ Customer requirements for the next system
◦ Architect’s experience for subsequent systems
◦ Technical Environment
TERMINOLOGY
1. Architectural style/pattern:
◦ Defines element types and how they interact together with a set of constraints
◦ Sometimes defines a mapping of functionality to architectural elements
◦ An architectural style determines the vocabulary of components and connectors that can be
used in instances of that style, together with a set of constraints on how they can be
combined. These can include topological constraints on architectural descriptions (e.g., no
cycles). Other constraints—say, having to do with execution semantics—might also be part
of the style definition
◦ E.g. Client Server Architectural Pattern.
◦ The following table lists the major areas of focus and the corresponding architectural styles.
2. Reference/domain specific architecture:
◦ Defines element types and how they interact
◦ They apply to a particular domain
◦ They define how the domain functionality is mapped to architectural(software) elements.
3. Product line architecture:
◦ A software product line is a set of software-intensive systems that share a common, managed set
of features satisfying the specific needs of a particular market segment or mission and that are
developed from a common set of core assets in a prescribed way.
◦ Applies to a set of products within a company
◦ Defines element types, how they interact, how the product functionality is mapped to them
◦ May also define some of the instances of the architectural Elements. E.g., error-reporting components
would be common to many products of the product line

More Related Content

Similar to Software architecture slides chap1 .pptx

Chapter 2_Software Architecture.ppt
Chapter 2_Software Architecture.pptChapter 2_Software Architecture.ppt
Chapter 2_Software Architecture.pptRushikeshChikane1
 
Chapter 2_Software Architecture.ppt
Chapter 2_Software Architecture.pptChapter 2_Software Architecture.ppt
Chapter 2_Software Architecture.pptRushikeshChikane2
 
Software Architecture
Software ArchitectureSoftware Architecture
Software ArchitectureVikas Dhyani
 
Software Architecture Design for Begginers
Software Architecture Design for BegginersSoftware Architecture Design for Begginers
Software Architecture Design for BegginersChinh Ngo Nguyen
 
Lab Software Architecture (in spanish)
Lab Software Architecture (in spanish)Lab Software Architecture (in spanish)
Lab Software Architecture (in spanish)Fáber D. Giraldo
 
Lecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfLecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfAkilaGamage2
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxKarthigaiSelviS3
 
Architectural design
Architectural designArchitectural design
Architectural designKiranStha
 
Software archiecture lecture03
Software archiecture   lecture03Software archiecture   lecture03
Software archiecture lecture03Luktalja
 
Design Model & User Interface Design in Software Engineering
Design Model & User Interface Design in Software EngineeringDesign Model & User Interface Design in Software Engineering
Design Model & User Interface Design in Software EngineeringMeghaj Mallick
 
Chapter 3_Software Design sunorganisedASE_BW_finalised.ppt
Chapter 3_Software Design sunorganisedASE_BW_finalised.pptChapter 3_Software Design sunorganisedASE_BW_finalised.ppt
Chapter 3_Software Design sunorganisedASE_BW_finalised.pptBule Hora University
 
Software architecture simplified
Software architecture simplifiedSoftware architecture simplified
Software architecture simplifiedPrasad Chitta
 
Essential Software Architecture - Chapter 1 Understanding Software Architectu...
Essential Software Architecture - Chapter 1 Understanding Software Architectu...Essential Software Architecture - Chapter 1 Understanding Software Architectu...
Essential Software Architecture - Chapter 1 Understanding Software Architectu...John Ortiz
 
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfUNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfputtipavan23022023
 
Software_Archi-1.ppt
Software_Archi-1.pptSoftware_Archi-1.ppt
Software_Archi-1.pptFaizaZulkifal
 
Arch06 1
Arch06 1Arch06 1
Arch06 1nazn
 
Software architecture
Software architectureSoftware architecture
Software architectureUdayna
 

Similar to Software architecture slides chap1 .pptx (20)

Chapter 2_Software Architecture.ppt
Chapter 2_Software Architecture.pptChapter 2_Software Architecture.ppt
Chapter 2_Software Architecture.ppt
 
Chapter 2_Software Architecture.ppt
Chapter 2_Software Architecture.pptChapter 2_Software Architecture.ppt
Chapter 2_Software Architecture.ppt
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Chapter1
Chapter1Chapter1
Chapter1
 
Software Architecture Design for Begginers
Software Architecture Design for BegginersSoftware Architecture Design for Begginers
Software Architecture Design for Begginers
 
Lab Software Architecture (in spanish)
Lab Software Architecture (in spanish)Lab Software Architecture (in spanish)
Lab Software Architecture (in spanish)
 
Lecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfLecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdf
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptx
 
Architectural design
Architectural designArchitectural design
Architectural design
 
Software archiecture lecture03
Software archiecture   lecture03Software archiecture   lecture03
Software archiecture lecture03
 
Design Model & User Interface Design in Software Engineering
Design Model & User Interface Design in Software EngineeringDesign Model & User Interface Design in Software Engineering
Design Model & User Interface Design in Software Engineering
 
Chapter 3_Software Design sunorganisedASE_BW_finalised.ppt
Chapter 3_Software Design sunorganisedASE_BW_finalised.pptChapter 3_Software Design sunorganisedASE_BW_finalised.ppt
Chapter 3_Software Design sunorganisedASE_BW_finalised.ppt
 
Software design
Software designSoftware design
Software design
 
Software architecture simplified
Software architecture simplifiedSoftware architecture simplified
Software architecture simplified
 
Essential Software Architecture - Chapter 1 Understanding Software Architectu...
Essential Software Architecture - Chapter 1 Understanding Software Architectu...Essential Software Architecture - Chapter 1 Understanding Software Architectu...
Essential Software Architecture - Chapter 1 Understanding Software Architectu...
 
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfUNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
 
Software_Archi-1.ppt
Software_Archi-1.pptSoftware_Archi-1.ppt
Software_Archi-1.ppt
 
Arch06 1
Arch06 1Arch06 1
Arch06 1
 
Unit 3- Software Design.pptx
Unit 3- Software Design.pptxUnit 3- Software Design.pptx
Unit 3- Software Design.pptx
 
Software architecture
Software architectureSoftware architecture
Software architecture
 

Recently uploaded

Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeCzechDreamin
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaRTTS
 
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdfIntelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdfAnthony Lucente
 
The architecture of Generative AI for enterprises.pdf
The architecture of Generative AI for enterprises.pdfThe architecture of Generative AI for enterprises.pdf
The architecture of Generative AI for enterprises.pdfalexjohnson7307
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1DianaGray10
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...CzechDreamin
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekCzechDreamin
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaCzechDreamin
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...CzechDreamin
 
Enterprise Security Monitoring, And Log Management.
Enterprise Security Monitoring, And Log Management.Enterprise Security Monitoring, And Log Management.
Enterprise Security Monitoring, And Log Management.Boni Yeamin
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupCatarinaPereira64715
 
Introduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationIntroduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationZilliz
 
Strategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering TeamsStrategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering TeamsUXDXConf
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераMark Opanasiuk
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoTAnalytics
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka DoktorováCzechDreamin
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024Stephanie Beckett
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyUXDXConf
 
Agentic RAG What it is its types applications and implementation.pdf
Agentic RAG What it is its types applications and implementation.pdfAgentic RAG What it is its types applications and implementation.pdf
Agentic RAG What it is its types applications and implementation.pdfChristopherTHyatt
 

Recently uploaded (20)

Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdfIntelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
 
The architecture of Generative AI for enterprises.pdf
The architecture of Generative AI for enterprises.pdfThe architecture of Generative AI for enterprises.pdf
The architecture of Generative AI for enterprises.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
Enterprise Security Monitoring, And Log Management.
Enterprise Security Monitoring, And Log Management.Enterprise Security Monitoring, And Log Management.
Enterprise Security Monitoring, And Log Management.
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
Introduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationIntroduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG Evaluation
 
Strategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering TeamsStrategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering Teams
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
Agentic RAG What it is its types applications and implementation.pdf
Agentic RAG What it is its types applications and implementation.pdfAgentic RAG What it is its types applications and implementation.pdf
Agentic RAG What it is its types applications and implementation.pdf
 

Software architecture slides chap1 .pptx

  • 1. ARCHITECTURE WHAT? WEEK#01 DR. Muhammad Ali Memon Associate Professor, University of Sindh
  • 4. What is Architecture? ◦ the action or process of building; construction. ◦ a plan for organizing space ◦ a systematic arrangement of information or ideas. ◦ the manner in which the components of a computer or computer system are organized and integrated.
  • 6. You need an architect first.
  • 8. Structure Matters – Dijkstra 1968 ◦ Dijkstra, 1968: ◦  „‟...Correct arrangement of the structure of software systems ◦ before simple programming...„‟ ◦  Layered Structure ◦  Programs are grouped into layers ◦  Programs in one layer can only communicate with programs in adjoining layers ◦  with easier development and maintenance Edsger Dijkstra 1930-2002
  • 9. Evolution of software Problem  Software problems have changed in nature (algorithmic to general purpose applications)  and increased in complexity (to millions and millions lines of code)  It has now become very hard/impossible to develop system without architecture
  • 11. Structure concept in Software 1960s - Structured Programming  Adopted into programming languages because it‟s a better way to think about programming 1970s - Structured Design  Methodology/guidelines for dividing programs into subroutines. 1980s – Modular programming languages  Modular (object-based) programming  Grouping of sub-routines into modules with data. 1990s – Towards Software Architectures  Object-Oriented Analysis/Design/Programming started being commonly used  Software Architecture Design 2000s - Software Architectures  Starting to be Common Practice  Specialization of concepts
  • 12. Large scale complex software systems… ◦ Large(distributed) systems. ◦ Many people working on the same problem ◦ Programming in the large ◦ Million of lines of code ◦ Overly complex ◦ Should be delivered on time and budget. ◦ Only the coding will not do. ◦ According to Brook: Adding more programmers will make a delayed project later.
  • 14. Definitions ◦ Basic artifact shown to the customers and made from the requirements. ◦ Breaking down of the system into components ◦ And describing the interrelations between the components ◦ A prototype of the system ◦ Identify the components of the system along with the interraction between them ◦ Its an abstraction of the system ◦ Earliest artifact
  • 15. SOFTWARE ARCHITECTURE- Booch 1991 ◦ “The logical and physical structure of a system, forged by all the strategic and tactical decisions applied during development.” ◦ Architecture is the high level structure of a system. client, users architect developers appearance, behaviour construction, co-operation architectural design visualises prescribes requirements solutions creates assess assess
  • 16. SOFTWARE ARCHITECTURE- Perry and Wolf ◦ Perry and Wolf distinguish between processing elements, data elements, and connecting elements, and this taxonomy of architectural elements largely persists through most other definitions and approaches. SOFTWARE ARCHITECTURE- IEEE ◦ “Software architecture is the fundamental organization of a system, embodied in its components, ◦ their relationships to each other and their environment, ◦ and the principles governing its design and evolution.” SOFTWARE ARCHITECTURE – BASS, CLEMENTS, KAZMAN ◦ 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.
  • 18. SE, Software Architecture, Hans van Vliet, ©2008 18
  • 19. SE, Software Architecture, Hans van Vliet, ©2008 19
  • 20. SE, Software Architecture, Hans van Vliet, ©2008 20
  • 21. SE, Software Architecture, Hans van Vliet, ©2008 21
  • 22. SE, Software Architecture, Hans van Vliet, ©2008 22
  • 24. 24 Adding architecture, the easy way architecture detailed design implementation requirements agreement quality development stakeholders (few)
  • 25. 25 Architecture in the life cycle requirements architecture quality agreement stakeholders (many) development
  • 26. Quality ◦ This can be compared with the construction of a sky scraper. Due to the complexity of such a building, we need to think about the qualities of the building upfront. For example, if the landlord requires the building to be earthquake resistant, the architect will think about solutions from seismic engineering and add structures to the building that can resist lateral forces. At this point he will not specify the materials or the supplier of those structures as those are construction details
  • 28. WHAT IS SOFTWARE DESIGN ◦ Software design is the process by which we create a specification of a software artifact, using a set of primitive components and subject to constraints. ◦ The process of defining the architecture, components, interfaces, and other characteristics of a system or component. DIFFERENCE ◦ Software architecture deals with high level concepts without regard to any implementation details. Software design on the other hand takes high level concepts and applies concrete details so that software can be implemented. ◦ Every architectural work is a kind of design, but the reverse is not true
  • 29. It's about addressing those architecturally significant requirements (the "what") that will drive (and constrain) the "how" (the design).
  • 30. SA ◦ Provides a design plan of a system ◦ Blueprint ◦ Implies purpose ◦ Is an abstraction that helps in managing the complexity of a system ◦ Software architects are limited by ◦ Lack of standardized ways to represent architecture ◦ Lack of analysis methods to predict whether an architecture will result in an implementation that meets the requirements
  • 31. QUESTION ◦ What do you think would happen if same requirements were given to two different architects of different organizations?
  • 32. ARCHITECTURE BUSINESS CYCLE (ABC) ◦ SA – result of technical, business, and social influences ◦ A SA also influences technical, business, and social environment ◦ That, subsequently, influence future SAs
  • 33. Architecture affects following factors: ◦ Structure of the developing organization ◦ Goals of the developing organization ◦ Customer requirements for the next system ◦ Architect’s experience for subsequent systems ◦ Technical Environment
  • 34. TERMINOLOGY 1. Architectural style/pattern: ◦ Defines element types and how they interact together with a set of constraints ◦ Sometimes defines a mapping of functionality to architectural elements ◦ An architectural style determines the vocabulary of components and connectors that can be used in instances of that style, together with a set of constraints on how they can be combined. These can include topological constraints on architectural descriptions (e.g., no cycles). Other constraints—say, having to do with execution semantics—might also be part of the style definition ◦ E.g. Client Server Architectural Pattern.
  • 35. ◦ The following table lists the major areas of focus and the corresponding architectural styles.
  • 36. 2. Reference/domain specific architecture: ◦ Defines element types and how they interact ◦ They apply to a particular domain ◦ They define how the domain functionality is mapped to architectural(software) elements.
  • 37. 3. Product line architecture: ◦ A software product line is a set of software-intensive systems that share a common, managed set of features satisfying the specific needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way. ◦ Applies to a set of products within a company ◦ Defines element types, how they interact, how the product functionality is mapped to them ◦ May also define some of the instances of the architectural Elements. E.g., error-reporting components would be common to many products of the product line

Editor's Notes

  1. Palace example. Mother Board of a Computer
  2. Dijkstra is well known nowadays as the inventor of structured programming—in which programs flow from top to bottom following a hierarchical model. As the terminology implies, this invention has made code more structured, and, more specifically, clearer, faster, better organized, and higher quality. Example: Operating System
  3. MS office example changed, but the basic architecture remains the same
  4. Software Development bricks- arrays, lists, functions and procedures, etc. More programmers won’t help.
  5. 18
  6. 19
  7. 20
  8. 21
  9. 22
  10. 23
  11. 24
  12. 25
  13. Client server and the coordination through protocols. The functionality is not defined.
  14. Reference: http://msdn.microsoft.com/en-us/library/ee658117.aspx
  15. Both 1 and 2 are not architectures but useful concepts.