Swe411 Week 1
Swe411 Week 1
Nissreen El-Saber
Dr. Nissreen El-Saber
Software Systems Architecture: Working with Stakeholders Using Viewpoints and Perspectives
Nick Rozanski, Eoin Woods
Addison-Wesley Professional
Second Edition
978-0321718334
2011
https://www.pearson.com/en-us/subject-catalog/p/software-systems-architecture-working-with-stakeholders-using
-viewpoints-and-perspectives/P200000000580?view=educator
To be continued!
ASSUMED STUDENT BACKGROUND
Familiarity with the basics of software
development: life cycles, activities &
processes; requirements, design, program
construction, analysis and testing.
Program design concepts (experience?)
are very important.
SWE411 PRINCIPLES OF SOFTWARE
ARCHITECTURE – CREDIT HOURS: 4
Pre-requisite:
SWE311 Principles of Software Design
SWE210 Data Structures and Algorithms
SWE111 Computer Programming and Problem Solving
SWE110 Introduction to Computer Science and Programming
TIMETABLE
GRADING MODEL
EXAMPLE: WWW IN A (BIG) NUTSHELL
The Web is a collection of resources, each of which has a unique name known as a uniform
resource locator, or “URL”.
Each resource denotes, informally, some information.
URI’s can be used to determine the identity of a machine on the Internet, known as an origin
server, where the value of the resource may be ascertained.
Communication is initiated by clients, known as user agents, who make requests of servers.
(Web browsers are common instances of user agents.)
Resources can be manipulated through their representations. (HTML is a very common
representation language used on the Web.)
All communication between user agents and origin servers must be performed by a simple,
generic protocol (HTTP), which offers the command methods GET, POST, etc.
All communication between user agents and origin servers must be fully self-contained. (So-
called “stateless interactions”)
10
ARCHITECTURE IN ACTION: WWW
11
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
ARCHITECTURE IN ACTION: WWW
So is this
12
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
ARCHITECTURE IN ACTION: WWW
And this
13
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
WWW’S ARCHITECTURE
Architecture of the Web is wholly separate from the code
There is no single piece of code that implements the architecture.
There are multiple pieces of code that implement the various components of the
architecture.
E.g., different Web browsers
Stylistic constraints of the Web’s architectural style are not apparent in the code
The effects of the constraints are evident in the Web
One of the world’s most successful applications is only understood adequately from
an architectural vantage point.
14
DEFINING ARCHITECTURE
Some architects refer to software architecture as the blueprint of the system, while others
define it as the roadmap for developing a system.
The issue with these common definitions is understanding what the blueprint or roadmap
actually contains.
For example, what is analyzed when an architect analyzes an architecture?
Software Architecture consists of the structure of the system, combined with architecture
characteristics (“-ilities”) the system must support, architecture decisions, and finally design
principles.
Software architecture is the fundamental design of the entire software
system. It defines what elements are included in the system, what function
each element has, and how each element relates to one another. In short, it is
the big picture or overall structure of the whole system, how everything works
together.
15
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
SOFTWARE ARCHITECTURE ROLE
17
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
… SOFTWARE ARCHITECTURE ROLE IN SDLC
Architecture frames design
architecture is part of the design process
Captures the system-wide decisions
What has to be consistent or constant
Importance of role increases with scale.
Perfectly compatible with agile.
18
WHY IS SOFTWARE ARCHITECTURE IMPORTANT
Having proper software architecture is important especially for a large software
system.
Having a clear design of the overall system as a starting point helps to provide a
solid basis for developers to follow.
Each developer will then know what needs to be
implemented and how things relate to meet the Software Architecture is tied to many
desired needs efficiently. practical concerns:
the structure of development team,
the needs of the business,
development cycle, and
the intent of the software itself.
19
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
WHY IS SOFTWARE ARCHITECTURE IMPORTANT
Higher productivity for your software team. Software development becomes more
effective because there is a defined structure in place for coordinating work, implementing
individual features, or grounding discussions on potential issues.
With a clear architecture, it is easier to know where key responsibilities of the system
reside and where to make changes to address new requirements or fix failures.
A clear architecture will help to achieve quality in your software.
With a well-designed structure using principles like separation of concerns, the system
becomes easier to maintain, reuse and adapt.
Stakeholders are the people who have an interest in the
software system at hand. They are people who will either be
STAKEHOLDERS
using the system that you're creating or benefiting from it in
some way.
Importance of Stakeholders
Architectures are built for stakeholders.
Decision must reflect stakeholder needs.
Involving a wide stakeholder community increases your chances of success.
YOUR TURN (STAKEHOLDERS)
- Who cares whether your system get built?
- Why do they care?
- Are they positively or negatively impacted?
36
ARCHITECTURE CHARACTERISTICS
Architecture characteristics are another dimension of defining software
architecture.
The architecture characteristics define the success criteria of a system,
which is generally orthogonal to the functionality of the system.
Notice that all of the characteristics listed do not require knowledge of the
functionality of the system, yet they are required in order for the system to
function properly.
37
38
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
SMART UNIVERSITY REFERENCE ARCHITECTURE
… SMART UNIVERSITY REFERENCE ARCHITECTURE
In May 2021, SECC successfully completed the Smart Universities Project in cooperation
with the Ministry of Communications and Information Technology and the Egyptian Supreme
Council of Universities. The project objective was to assess and define transformation
roadmap for Egyptian universities using Smart Universities Reference Architecture (SURA)
developed by SECC experts.
SURA was developed according to TOGAF enterprise architecture framework and COBIT
framework for IT Governance. The project included 27 universities that obtained training,
certification and assessment services.
Smart Smart Smart
Learning Assessment Classroom