SlideShare a Scribd company logo
Software Architecture & Design, Chapter I: Introduction
© 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd
Software Architecture and Design
Chapter I
Introduction to
Software Architecture and Design
Professor Dr. Ibrahim Ismael Hamarash
ibrahim.hamad@ukh.edu.krd
https://ibrahimhamarash.github.io
Software Architecture & Design, Chapter I: Introduction
© 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd
Your way in
building software
Software Architecture & Design, Chapter I: Introduction
© 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd
Architecture Concept: Foundation
Building Architecture: when we build
something, we need to have a foundation for
it. This is the point of contact with the ground,
the surface that supports the building.
Software Architecture: When you write your
software you are building it on top of a
foundation made of software and hardware. It
is important to be aware of the kind of
foundation you select to deploy your software
on.
Software Architecture & Design, Chapter I: Introduction
© 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd
➢ Even if we don’t usually call it ”software foundation”, there are many different ”platforms” on
which you can deploy and you can write software for.
➢ The latest metaphor to describe a foundation for software is not based on something solid like the
ground, but instead nowadays our software runs in the clouds. For some reason this seems to be a
good way to sell access to so-called ”platforms as a service” (PaaS). You place your software in the
Cloud. And this somehow gives you some stable foundation you can rely on.
➢ Which platforms have you built software for?
Is a programming language like Java a platform? The language can be part of a platform.
➢ Still, while Java was marketed as platform independent, it actually is a special platform to write
software which then can run on multiple platforms. This is where the foundation metaphor starts
to show its limits.
Software Architecture & Design, Chapter I: Introduction
© 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd
Architecture Concept: Close Architecture
➢ Other metaphors that we use when we talk about architecture is for
example, the notion of boundary. The first thing you should define is
the system’s boundary, for example, by drawing a box delimiting the
inside of your system from the outside, the rest of the world.
➢ This boundary can be closed if your system is isolated and does not
exchange any information with outside. You have complete
knowledge about the state of the system and there is no information
that you have to go somewhere else to get.
➢ Another way to look at the closed metaphor is to consider the
functional requirements that the closed system should satisfy. For
example, let’s consider the game of chess or the game of go. You can
list the rules, you know exactly what they are, and the rules are not
changing. And these rules are limited and well known in advance. This
makes it possible to solve the game.
Software Architecture & Design, Chapter I: Introduction
© 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd
Architecture Concept: Open Architecture
➢ Your system is no longer closed when there is uncertainty about its boundary.
Not only requirements may be partially known, but they may change in the
future in unexpected ways.
➢ Let’s say you build a application and you publish it on the open Web and it goes
viral. A few days after you launch, you get 2 million users that you did not
anticipate. But what if it never happens? Should every architecture be designed
to scale to ”Web scale”? Or is it more important to be able to grow and adapt
your system when it becomes necessary?
➢ Enter the Internet, every thing becomes connected to everything else. Today
every system is an open system. Whether you want it or not, you cannot build a
wall around your system, it needs to be integrated with other systems to be
useful. Your system becomes interdependent and interconnected to other
systems over which you have no control. Service providers may disappear
without notice or change their terms of service (e.g., switching from a free to a
paid service, or a stiff price increase), making it no longer possible for your
system to work with them.
Software Architecture & Design, Chapter I: Introduction
© 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd
Architecture Concept: Interface
➢ When we have open systems which connect with other systems, the
points where their boundaries interact become very important. We
call these interfaces and will dedicate some time to dissect the issue of
how to build a good API.
➢ Life has taken a long time to find out how to evolve from single-
celled organisms into multicellular ones. It is not a trivial problem for
heterogeneous, autonomous and distributed systems to
communicate, interact and inter-operate so that you can use them as
building blocks to construct something larger, something whose value
is greater than the sum of its parts.
➢ This becomes particularly difficult when each system is built by
people who do not know one another and are unable to talk
together and have a tendency to apply changes without informing
the others in advance.
Software Architecture & Design, Chapter I: Introduction
© 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd
Architecture Concept: Quality
Software Architecture & Design, Chapter I: Introduction
© 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd
Software Development Process
Software Architecture & Design, Chapter I: Introduction
© 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd
➢ Architects are not concerned with the
creation of building technologies and
materials—making glass with better thermal
qualities or stronger concrete.
➢ Architects are concerned with how building
materials can be put together in desirable
ways to achieve a building suited to its
purpose.
➢ The design process that assembles the parts
into a useful, pleasing (hopefully) and cost-
effective (sometime) whole that is called
“architecture”.
Software Architecture & Design, Chapter I: Introduction
© 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd
Software Design:
Those development activities that
enable a person to describe in
detail how the resulting Software
will actually be implemented.
Software Design is about design
patterns, classes, interfaces,
modules, functions, …. etc.
Software Architecture & Design, Chapter I: Introduction
© 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd
Forces
What are the challenges of
designing an architecture that
as an architect you have to
deal with?
Software Architecture & Design, Chapter I: Introduction
© 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd
Software Architecture: Definition
ISO/IEC/IEEE 42010 standard definition
“Fundamental concepts or properties of a system in its environment embodied in its
elements, relationships, and in the principles of its design and evolution."
The standard makes the following main points:
➢ A software architecture is a fundamental part of a software system.
➢ A software system is situated in an environment, and its software architecture
takes into consideration the environment in which it must operate.
➢ An architecture description documents the architecture and communicates to
stakeholders how the architecture meets the system's needs.
➢ Architecture views are created from the architecture description, and each view covers
one or more architecture concerns of the stakeholders
Software Architecture & Design, Chapter I: Introduction
© 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd
Another definition:
“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.”
Software architecture in practice, 2nd ed.
The definition makes the following main points:
➢ A software system contains structure.
➢ A software system is made up of one or more structure.
➢ The combination of all structures forms the overall software
architecture.
Software Architecture & Design, Chapter I: Introduction
© 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd
Design approaches
✓ Traditional Approaches
✓ Iterative Approaches
Software Architecture & Design, Chapter I: Introduction
© 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd
Waterfall Software Development Life Cycle
(SDLC)
Software Architecture & Design, Chapter I: Introduction
© 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd
https://agilemanifesto.org/
Software Architecture & Design, Chapter I: Introduction
© 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd
SCRUM, an agile framework
Software Architecture & Design, Chapter I: Introduction
© 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd
Agile Modelling 12 principles
Software Architecture & Design, Chapter I: Introduction
© 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd
Example:
Service Value as a software project
Software Architecture & Design, Chapter I: Introduction
© 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd
New developers often ask, “When are these
tasks carried out in a real project?”
Software Architecture & Design, Chapter I: Introduction
© 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd
What tools and diagrams do you use?
Example: Satzinger, Jackson and Burd book on Systems
Design and Analysis in a Changing World
Software Architecture & Design, Chapter I: Introduction
© 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd
Software Architecture & Design, Chapter I: Introduction
© 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd
✓ The formality of a project also affects design.
✓ Formal projects usually require well-developed design documents typically
reviewed in formal meetings.
✓ Developers on informal projects often create their designs with notepads and
pencils and then throw away the design once the program is coded. This kind
of informal design (used in many Agile projects) is merely a means to an end,
which is the actual program code.
✓ A developer who jumps into writing software without carefully thinking it
through—often referred to as cowboy coding—ends up with errors, patches,
and systems that are unreliable and difficult to update.
Software Architecture & Design, Chapter I: Introduction
© 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd
Why is software architecture important?
Software architecture is the foundation of a software system. A
proper foundation laid down by a software system's architecture
yields a number of benefits, like
➢ Defining a solution to meets the requirements
➢ Enabling and inhibiting quality attributes Giving you the ability
to predict software system qualities
➢ Easing communication among stakeholders
➢ Managing change
➢ Providing a reusable model
➢ Improving cost and effort estimates
➢ Imposing implementation constraints
Software Architecture & Design, Chapter I: Introduction
© 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd
The need for a common
modeling language
The fundamental driver
behind them all is that
programming languages are
not at a high enough level of
abstraction to facilitate
discussions about design.
Software Architecture & Design, Chapter I: Introduction
© 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd
Remark
UML is going to be a Visual
Programming Language.
Software Architecture & Design, Chapter I: Introduction
© 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd
Who are the consumers of software architecture?
➢ End users
➢ Business analysts
➢ Domain experts
➢ Quality assurance personal
➢ Managers
➢ Operations staff
and
The developers
Software Architecture & Design, Chapter I: Introduction
© 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd
Roles of the Software Architect
Software Architecture & Design, Chapter I: Introduction
© 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd
Software Architects
Software Architecture & Design, Chapter I: Introduction
© 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd
Remark
The law of Parsimony
Reduce everything to its essence so that form
harmonizes with function.
or,
YAGNI
You Ain't Gonna Need It!
Software Architecture & Design, Chapter I: Introduction
© 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd
“Always design a thing by considering it in its
next larger context- a chair in a room, a room
in a house, a house in an environment, an
environment in a city plan”
Eliel Saarenin
Software Architecture & Design, Chapter I: Introduction
© 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd
“There are three responses to a piece of
design, yes, no and WAW, WAW is the one to
aim for”
Milton Glaser
Software Architecture & Design, Chapter I: Introduction
© 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd
➢ There exists only a modest body of knowledge about
software architecture•
➢ Scientific and analytical methods are still lacking -
those that do exist are hard to apply in practice.
➢ There is no perfect design: architecture is a wicked
problem involving subjective tradeoffs and the
management of extreme ambiguity and contradiction.
➢ Experience counts: the best architects are grown, not
born.
Software Architecture & Design, Chapter I: Introduction
© 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd
Resources:
Reading list
Kevin, L., and Sobhan, T., (2023). Introduction to Software Architecture, Springer.
Harry Percival and Bob Gregory., (2020). Architecture Patterns with Python, O’Reilly.
Bass, L., Clements P., Kazman, R. (2022). Software Architecture in practice, Pearson, Adison-Weily.
Joseph, I., (2018). Software Architecture Handbook, PacktPub.
Watching list:
https://www.youtube.com/watch?v=JV8HNsFWHD4
https://www.youtube.com/watch?v=sQCBfuV5qVg
Listening list:
https://softwarearchitecturerad.io/
Software Architecture & Design, Chapter I: Introduction
© 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd
Module Spotlight: Journeying
Through Our Study Materials
Software Architecture & Design, Chapter I: Introduction
© 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd
Discussions

More Related Content

PDF
Software Architecture and Design-Ch-3-v6.pdf
PPTX
Software Architecture and Design
PPTX
Introduction to Software architecture and design.pptx
PDF
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
PDF
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
PDF
Software-Architecture_Course-Notes.pdf
PDF
Software archiecture lecture03
PPT
Chapter 2_Software Architecture.ppt
Software Architecture and Design-Ch-3-v6.pdf
Software Architecture and Design
Introduction to Software architecture and design.pptx
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
Software-Architecture_Course-Notes.pdf
Software archiecture lecture03
Chapter 2_Software Architecture.ppt

Similar to Software Architecture and Design-Ch-1.v6 (20)

PPT
Chapter 2_Software Architecture.ppt
PPTX
Introduction to Modern Software Architecture
DOCX
Software architecture Unit 1 notes
PPTX
Software architecture by Dr.C.R.Dhivyaa, Assistant Professor,Kongu Engineerin...
PPTX
Software Architecture Design for Begginers
PPTX
software engineering Architecture and design Unit 3.pptx
PPTX
NISI Agile Software Architecture Slide Deck
PPTX
Representational state transfer (rest) architectural style1.1
PDF
Software Design Quality Management: Software Architecture
PPTX
SoftwareArchitecture.pptx Software Architecture
PPTX
Software Architecture and Design
PPTX
Software Engineering Architectural Design
PPT
Lecture-7.ppt
PPT
Importance of Software architecture
DOC
PPTX
Architecture Design
PPTX
Software requirement specification Unit 3.pptx
PPT
Software Architecture.ppt
PPTX
Unit 4colorcolorcolorcolorcolorcolorcolor.pptx
PDF
software architecture
Chapter 2_Software Architecture.ppt
Introduction to Modern Software Architecture
Software architecture Unit 1 notes
Software architecture by Dr.C.R.Dhivyaa, Assistant Professor,Kongu Engineerin...
Software Architecture Design for Begginers
software engineering Architecture and design Unit 3.pptx
NISI Agile Software Architecture Slide Deck
Representational state transfer (rest) architectural style1.1
Software Design Quality Management: Software Architecture
SoftwareArchitecture.pptx Software Architecture
Software Architecture and Design
Software Engineering Architectural Design
Lecture-7.ppt
Importance of Software architecture
Architecture Design
Software requirement specification Unit 3.pptx
Software Architecture.ppt
Unit 4colorcolorcolorcolorcolorcolorcolor.pptx
software architecture
Ad

More from Salahaddin University-Erbil, University of Kurdistan Hewler (10)

PDF
Machine Learning-Ch.1: Introduction-v3.pdf
PDF
Signals & Systems-Ch-1: Introduction-v4.pdf
PDF
Special Topics in Software Engineering-Ch.1-v1.pdf
PDF
Software Architecture and Design-Ch-2-v6.pdf
PDF
Human Computer Interaction,Ch-1. Introduction to HCI.pdf
PDF
Robotics,ch1. Introduction to Robotic Systems.pdf
PDF
Software-Requirements, ch.1. Introduction.pdf
PDF
Industrial Computer Applications, ch-3
PDF
Industrial Computer Applications, ch-2
PDF
Machine Learning-Ch.1: Introduction-v3.pdf
Signals & Systems-Ch-1: Introduction-v4.pdf
Special Topics in Software Engineering-Ch.1-v1.pdf
Software Architecture and Design-Ch-2-v6.pdf
Human Computer Interaction,Ch-1. Introduction to HCI.pdf
Robotics,ch1. Introduction to Robotic Systems.pdf
Software-Requirements, ch.1. Introduction.pdf
Industrial Computer Applications, ch-3
Industrial Computer Applications, ch-2
Ad

Recently uploaded (20)

PDF
Understanding Forklifts - TECH EHS Solution
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
top salesforce developer skills in 2025.pdf
PDF
Designing Intelligence for the Shop Floor.pdf
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PPTX
L1 - Introduction to python Backend.pptx
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
medical staffing services at VALiNTRY
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
Nekopoi APK 2025 free lastest update
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PPT
Introduction Database Management System for Course Database
Understanding Forklifts - TECH EHS Solution
Odoo Companies in India – Driving Business Transformation.pdf
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
top salesforce developer skills in 2025.pdf
Designing Intelligence for the Shop Floor.pdf
Wondershare Filmora 15 Crack With Activation Key [2025
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
How to Choose the Right IT Partner for Your Business in Malaysia
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Adobe Illustrator 28.6 Crack My Vision of Vector Design
L1 - Introduction to python Backend.pptx
Internet Downloader Manager (IDM) Crack 6.42 Build 41
medical staffing services at VALiNTRY
Reimagine Home Health with the Power of Agentic AI​
Nekopoi APK 2025 free lastest update
Navsoft: AI-Powered Business Solutions & Custom Software Development
Softaken Excel to vCard Converter Software.pdf
2025 Textile ERP Trends: SAP, Odoo & Oracle
Introduction Database Management System for Course Database

Software Architecture and Design-Ch-1.v6

  • 1. Software Architecture & Design, Chapter I: Introduction © 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd Software Architecture and Design Chapter I Introduction to Software Architecture and Design Professor Dr. Ibrahim Ismael Hamarash ibrahim.hamad@ukh.edu.krd https://ibrahimhamarash.github.io
  • 2. Software Architecture & Design, Chapter I: Introduction © 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd Your way in building software
  • 3. Software Architecture & Design, Chapter I: Introduction © 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd Architecture Concept: Foundation Building Architecture: when we build something, we need to have a foundation for it. This is the point of contact with the ground, the surface that supports the building. Software Architecture: When you write your software you are building it on top of a foundation made of software and hardware. It is important to be aware of the kind of foundation you select to deploy your software on.
  • 4. Software Architecture & Design, Chapter I: Introduction © 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd ➢ Even if we don’t usually call it ”software foundation”, there are many different ”platforms” on which you can deploy and you can write software for. ➢ The latest metaphor to describe a foundation for software is not based on something solid like the ground, but instead nowadays our software runs in the clouds. For some reason this seems to be a good way to sell access to so-called ”platforms as a service” (PaaS). You place your software in the Cloud. And this somehow gives you some stable foundation you can rely on. ➢ Which platforms have you built software for? Is a programming language like Java a platform? The language can be part of a platform. ➢ Still, while Java was marketed as platform independent, it actually is a special platform to write software which then can run on multiple platforms. This is where the foundation metaphor starts to show its limits.
  • 5. Software Architecture & Design, Chapter I: Introduction © 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd Architecture Concept: Close Architecture ➢ Other metaphors that we use when we talk about architecture is for example, the notion of boundary. The first thing you should define is the system’s boundary, for example, by drawing a box delimiting the inside of your system from the outside, the rest of the world. ➢ This boundary can be closed if your system is isolated and does not exchange any information with outside. You have complete knowledge about the state of the system and there is no information that you have to go somewhere else to get. ➢ Another way to look at the closed metaphor is to consider the functional requirements that the closed system should satisfy. For example, let’s consider the game of chess or the game of go. You can list the rules, you know exactly what they are, and the rules are not changing. And these rules are limited and well known in advance. This makes it possible to solve the game.
  • 6. Software Architecture & Design, Chapter I: Introduction © 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd Architecture Concept: Open Architecture ➢ Your system is no longer closed when there is uncertainty about its boundary. Not only requirements may be partially known, but they may change in the future in unexpected ways. ➢ Let’s say you build a application and you publish it on the open Web and it goes viral. A few days after you launch, you get 2 million users that you did not anticipate. But what if it never happens? Should every architecture be designed to scale to ”Web scale”? Or is it more important to be able to grow and adapt your system when it becomes necessary? ➢ Enter the Internet, every thing becomes connected to everything else. Today every system is an open system. Whether you want it or not, you cannot build a wall around your system, it needs to be integrated with other systems to be useful. Your system becomes interdependent and interconnected to other systems over which you have no control. Service providers may disappear without notice or change their terms of service (e.g., switching from a free to a paid service, or a stiff price increase), making it no longer possible for your system to work with them.
  • 7. Software Architecture & Design, Chapter I: Introduction © 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd Architecture Concept: Interface ➢ When we have open systems which connect with other systems, the points where their boundaries interact become very important. We call these interfaces and will dedicate some time to dissect the issue of how to build a good API. ➢ Life has taken a long time to find out how to evolve from single- celled organisms into multicellular ones. It is not a trivial problem for heterogeneous, autonomous and distributed systems to communicate, interact and inter-operate so that you can use them as building blocks to construct something larger, something whose value is greater than the sum of its parts. ➢ This becomes particularly difficult when each system is built by people who do not know one another and are unable to talk together and have a tendency to apply changes without informing the others in advance.
  • 8. Software Architecture & Design, Chapter I: Introduction © 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd Architecture Concept: Quality
  • 9. Software Architecture & Design, Chapter I: Introduction © 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd Software Development Process
  • 10. Software Architecture & Design, Chapter I: Introduction © 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd ➢ Architects are not concerned with the creation of building technologies and materials—making glass with better thermal qualities or stronger concrete. ➢ Architects are concerned with how building materials can be put together in desirable ways to achieve a building suited to its purpose. ➢ The design process that assembles the parts into a useful, pleasing (hopefully) and cost- effective (sometime) whole that is called “architecture”.
  • 11. Software Architecture & Design, Chapter I: Introduction © 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd Software Design: Those development activities that enable a person to describe in detail how the resulting Software will actually be implemented. Software Design is about design patterns, classes, interfaces, modules, functions, …. etc.
  • 12. Software Architecture & Design, Chapter I: Introduction © 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd Forces What are the challenges of designing an architecture that as an architect you have to deal with?
  • 13. Software Architecture & Design, Chapter I: Introduction © 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd Software Architecture: Definition ISO/IEC/IEEE 42010 standard definition “Fundamental concepts or properties of a system in its environment embodied in its elements, relationships, and in the principles of its design and evolution." The standard makes the following main points: ➢ A software architecture is a fundamental part of a software system. ➢ A software system is situated in an environment, and its software architecture takes into consideration the environment in which it must operate. ➢ An architecture description documents the architecture and communicates to stakeholders how the architecture meets the system's needs. ➢ Architecture views are created from the architecture description, and each view covers one or more architecture concerns of the stakeholders
  • 14. Software Architecture & Design, Chapter I: Introduction © 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd Another definition: “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.” Software architecture in practice, 2nd ed. The definition makes the following main points: ➢ A software system contains structure. ➢ A software system is made up of one or more structure. ➢ The combination of all structures forms the overall software architecture.
  • 15. Software Architecture & Design, Chapter I: Introduction © 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd Design approaches ✓ Traditional Approaches ✓ Iterative Approaches
  • 16. Software Architecture & Design, Chapter I: Introduction © 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd Waterfall Software Development Life Cycle (SDLC)
  • 17. Software Architecture & Design, Chapter I: Introduction © 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd https://agilemanifesto.org/
  • 18. Software Architecture & Design, Chapter I: Introduction © 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd SCRUM, an agile framework
  • 19. Software Architecture & Design, Chapter I: Introduction © 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd Agile Modelling 12 principles
  • 20. Software Architecture & Design, Chapter I: Introduction © 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd Example: Service Value as a software project
  • 21. Software Architecture & Design, Chapter I: Introduction © 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd New developers often ask, “When are these tasks carried out in a real project?”
  • 22. Software Architecture & Design, Chapter I: Introduction © 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd What tools and diagrams do you use? Example: Satzinger, Jackson and Burd book on Systems Design and Analysis in a Changing World
  • 23. Software Architecture & Design, Chapter I: Introduction © 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd
  • 24. Software Architecture & Design, Chapter I: Introduction © 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd ✓ The formality of a project also affects design. ✓ Formal projects usually require well-developed design documents typically reviewed in formal meetings. ✓ Developers on informal projects often create their designs with notepads and pencils and then throw away the design once the program is coded. This kind of informal design (used in many Agile projects) is merely a means to an end, which is the actual program code. ✓ A developer who jumps into writing software without carefully thinking it through—often referred to as cowboy coding—ends up with errors, patches, and systems that are unreliable and difficult to update.
  • 25. Software Architecture & Design, Chapter I: Introduction © 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd Why is software architecture important? Software architecture is the foundation of a software system. A proper foundation laid down by a software system's architecture yields a number of benefits, like ➢ Defining a solution to meets the requirements ➢ Enabling and inhibiting quality attributes Giving you the ability to predict software system qualities ➢ Easing communication among stakeholders ➢ Managing change ➢ Providing a reusable model ➢ Improving cost and effort estimates ➢ Imposing implementation constraints
  • 26. Software Architecture & Design, Chapter I: Introduction © 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd The need for a common modeling language The fundamental driver behind them all is that programming languages are not at a high enough level of abstraction to facilitate discussions about design.
  • 27. Software Architecture & Design, Chapter I: Introduction © 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd Remark UML is going to be a Visual Programming Language.
  • 28. Software Architecture & Design, Chapter I: Introduction © 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd Who are the consumers of software architecture? ➢ End users ➢ Business analysts ➢ Domain experts ➢ Quality assurance personal ➢ Managers ➢ Operations staff and The developers
  • 29. Software Architecture & Design, Chapter I: Introduction © 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd Roles of the Software Architect
  • 30. Software Architecture & Design, Chapter I: Introduction © 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd Software Architects
  • 31. Software Architecture & Design, Chapter I: Introduction © 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd Remark The law of Parsimony Reduce everything to its essence so that form harmonizes with function. or, YAGNI You Ain't Gonna Need It!
  • 32. Software Architecture & Design, Chapter I: Introduction © 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd “Always design a thing by considering it in its next larger context- a chair in a room, a room in a house, a house in an environment, an environment in a city plan” Eliel Saarenin
  • 33. Software Architecture & Design, Chapter I: Introduction © 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd “There are three responses to a piece of design, yes, no and WAW, WAW is the one to aim for” Milton Glaser
  • 34. Software Architecture & Design, Chapter I: Introduction © 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd ➢ There exists only a modest body of knowledge about software architecture• ➢ Scientific and analytical methods are still lacking - those that do exist are hard to apply in practice. ➢ There is no perfect design: architecture is a wicked problem involving subjective tradeoffs and the management of extreme ambiguity and contradiction. ➢ Experience counts: the best architects are grown, not born.
  • 35. Software Architecture & Design, Chapter I: Introduction © 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd Resources: Reading list Kevin, L., and Sobhan, T., (2023). Introduction to Software Architecture, Springer. Harry Percival and Bob Gregory., (2020). Architecture Patterns with Python, O’Reilly. Bass, L., Clements P., Kazman, R. (2022). Software Architecture in practice, Pearson, Adison-Weily. Joseph, I., (2018). Software Architecture Handbook, PacktPub. Watching list: https://www.youtube.com/watch?v=JV8HNsFWHD4 https://www.youtube.com/watch?v=sQCBfuV5qVg Listening list: https://softwarearchitecturerad.io/
  • 36. Software Architecture & Design, Chapter I: Introduction © 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd Module Spotlight: Journeying Through Our Study Materials
  • 37. Software Architecture & Design, Chapter I: Introduction © 2025, UKH, Dr.Ibrahim Ismael Hamarash, ibrahim.hamad@ukh.edu.krd Discussions