Sei sulla pagina 1di 25

Design Architectures

Yury Yineth Niño Roa


yyninor@unal.edu.co
Software Engineering 1
UNIVERSIDAD NACIONAL DE COLOMBIA
Content
• What is a Software Architecture?

• 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.

• An application’s architecture describes how its pieces fit


together at a high level.

Software Engineering 1
System Structures
• The static structures define the elements of a software
system and their arrangement in design – time.

• The dynamic structures


define the elements of
a software system and
their interactions in
runtime.

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.

• It requires that you understand how all the pieces


fit together from the beginning.

Is it good or
bad?

Software Engineering 1
Monolithic Architectures
• It doesn’t need complicated strategies of communication
across networks.

• It is useful for small applications where a single


programmer or team is working on the code.

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).

• It is useful when you have database to


hold information and an application to
display that information in a user
interface.

Taken from [STEPHEN]

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]

I don’t believe that


it s perfect!!!

Software Engineering 1
2 –Tiers Architectures

Taken from [GOMAA]


Software Engineering 1
3- Tiers Architectures
• In a 3- tiers architecture there is a middle tier which
separates the clients and the server by networks.

• The middle tier provides an


interface that could for example
map data between the server’s
format and the client’s format.

• Different teams can work on the


client and server.
Taken from [STEPHEN]

Software Engineering 1
Client – Server Architectures

Can you have much


more tiers?

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

[GOOMA] Software Modeling and Design. 2011.

[DOOLEY] Software Development and Professional Practice

[URL] https://dzone.com/articles/soa-introductory-part1-what-
is-soa

Software Engineering 1
Software Engineering 1

Potrebbero piacerti anche