Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
• Architecture concepts
• Architecture characteristics
• Architectural Patterns
– Monolithic architectures
– Client – server architectures
– Component based architectures
– Object oriented architectures
Software Engineering 1
What is a Software Architecture?
Software Engineering 1
Software Architecture
• The architecture of a software system is the structure that
comprises their elements, properties and the relationships
among them.
Software Engineering 1
System Structures
• The static structures define the elements of a software
system and their arrangement in design – time.
Software Engineering 1
Characteristics
Multitude of stakeholders
There are a variety of stakeholders all have their own concerns
with respect to the system.
Separation of concerns
To reduce complexity and to drive the
design.
Conceptual integrity
Architecture represents overall vision of what system
should do and how it should do it.
Software Engineering 1
Characteristics
Quality-driven
Such as fault tolerance, extensibility, reliability,
maintainability, availability, security and usability.
Recurring styles
Software architecture discipline
has developed standard ways to
address recurring concerns.
Software Engineering 1
Patterns Architectures
Software Engineering 1
What is an Architectural Pattern?
Software Engineering 1
Monolithic Architectures
1960s - 1970s
Software Engineering 1
Monolithic Architectures
• In a monolithic architecture a single program does
everything.
• The user interface and data access code are combined into
a single program. The pieces of the system are tied closely
together.
Is it good or
bad?
Software Engineering 1
Monolithic Architectures
• It doesn’t need complicated strategies of communication
across networks.
Taken from
https://dzone.com/arti
cles/soa-introductory-
part1-what-is-soa
Software Engineering 1
Client – Server
Architectures
1980s
Software Engineering 1
Client – Server Architectures
• A client/server architecture separates the pieces of the
system that need to use a particular function (clients) from
parts of the system that provide those functions (servers).
Software Engineering 1
What was the problem with this
architectures?
Software Engineering 1
Client – Server Architectures
• The most important advantage is the scalability.
• Their problem is the maintenance.
• Another problem we had that all PCs had different
configurations.
Taken from
https://dzone.com/arti
cles/soa-introductory-
part1-what-is-soa
Software Engineering 1
Client – server architectures are
equal to 2 – tiers architectures?
Software Engineering 1
2 –Tiers Architectures
In a 2 ‐ tier architecture, the client (the user interface) is
separated from the server (the database).
Taken from [STEPHEN]
Software Engineering 1
2 –Tiers Architectures
Software Engineering 1
Client – Server Architectures
Software Engineering 1
Class Exercise
Software Engineering 1
Summary
• Pattern architectures
• Monolithic architectures
• Client – server architectures
[BOOK] Java
Certification
Software Engineering 1
References
[STEPHENS] Beginning Software Engineering. 20015
[URL] https://dzone.com/articles/soa-introductory-part1-what-
is-soa
Software Engineering 1
Software Engineering 1