presentación de powerpoint - github pages · 2021. 5. 28. · matei/eece417/bass/ch05lev1sec1.html...

17
Software Architecture School of Computer Science University of Oviedo Architecture techniques Jose E. Labra Gayo Course 2020/21

Upload: others

Post on 07-Aug-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Presentación de PowerPoint - GitHub Pages · 2021. 5. 28. · matei/EECE417/BASS/ch05lev1sec1.html wdu/cs6075w10/sa2.htm

Software ArchitectureS

choo

lof C

omp

ute

rS

cien

ceU

niv

ersi

tyof

Ovi

edo

Architecturetechniques

Jose E. Labra GayoCourse 2020/21

Page 2: Presentación de PowerPoint - GitHub Pages · 2021. 5. 28. · matei/EECE417/BASS/ch05lev1sec1.html wdu/cs6075w10/sa2.htm

Software ArchitectureS

choo

lof C

omp

ute

rS

cien

ceU

niv

ersi

tyof

Ovi

edo Software architect

Discipline evolvesArchitect must be aware of

New development techniquesStyles and patterns

Best tool = experience (no silver bullet)Self experience Experience from community

Architect

Page 3: Presentación de PowerPoint - GitHub Pages · 2021. 5. 28. · matei/EECE417/BASS/ch05lev1sec1.html wdu/cs6075w10/sa2.htm

Software ArchitectureS

choo

lof C

omp

ute

rS

cien

ceU

niv

ersi

tyof

Ovi

edo

Role of software architect

TacticsStyles

PatternsAnti-patterns

. . .

Software ArchitectCommunity

Experience

Stakeholders

Technology

Architecture

ObjectivesFunctionalrequirements

Quality attributesConstraintsConcerns

Page 4: Presentación de PowerPoint - GitHub Pages · 2021. 5. 28. · matei/EECE417/BASS/ch05lev1sec1.html wdu/cs6075w10/sa2.htm

Software ArchitectureS

choo

lof C

omp

ute

rS

cien

ceU

niv

ersi

tyof

Ovi

edo Tactics

Design techniques to achieve a response to some quality attributes

Tactics focus on a single quality attribute responseThey may compromise other quality attributes

Tactics are intended to control responses to stimuli

Tactics to control responseStimulus Response

Page 5: Presentación de PowerPoint - GitHub Pages · 2021. 5. 28. · matei/EECE417/BASS/ch05lev1sec1.html wdu/cs6075w10/sa2.htm

Software ArchitectureS

choo

lof C

omp

ute

rS

cien

ceU

niv

ersi

tyof

Ovi

edo Tactics depend on QA

AvailabilityFault Fault masked or

repair made

ModifiabilityChanges arrive Changes made, tested and

deployed within time and budget

PerformanceEvents arrive Response generated within

time constraints

SecurityAttack System detects, resists, or

recovers from attack

TestabilityFaults detectedCompletion of an

increment

UsabilityUser given appropriate feedback and assistance

User request

Page 6: Presentación de PowerPoint - GitHub Pages · 2021. 5. 28. · matei/EECE417/BASS/ch05lev1sec1.html wdu/cs6075w10/sa2.htm

Software ArchitectureS

choo

lof C

omp

ute

rS

cien

ceU

niv

ersi

tyof

Ovi

edo Where can we find tactics?

Architect's own experienceDocumented experience from community

Books, conferences, blogs,...Tactics evolve with time and trends

Book "Software architecture in practice" contains a list of tactics for some quality attributes

http://www.ece.ubc.ca/~matei/EECE417/BASS/ch05lev1sec1.htmlhttps://www.cs.unb.ca/~wdu/cs6075w10/sa2.htm

Page 7: Presentación de PowerPoint - GitHub Pages · 2021. 5. 28. · matei/EECE417/BASS/ch05lev1sec1.html wdu/cs6075w10/sa2.htm

Software ArchitectureS

choo

lof C

omp

ute

rS

cien

ceU

niv

ersi

tyof

Ovi

edo Architectural styles

Define the general shape of a systemThey contain:

Elements: Components that carry out functionalityConstraints: define how to integrate elementsList of attributes:

Advantages/disadvantages of a style

Page 8: Presentación de PowerPoint - GitHub Pages · 2021. 5. 28. · matei/EECE417/BASS/ch05lev1sec1.html wdu/cs6075w10/sa2.htm

Software ArchitectureS

choo

lof C

omp

ute

rS

cien

ceU

niv

ersi

tyof

Ovi

edo Are there pure styles?

Pure styles = idealizationIn practice, pure styles rarely appearUsually, systems deviate from pure styles......or combine several architectural stylesIt is important to understand pure styles in order to:

Understand pros and cons of a styleAssess the consequences of a deviation from the style

Page 9: Presentación de PowerPoint - GitHub Pages · 2021. 5. 28. · matei/EECE417/BASS/ch05lev1sec1.html wdu/cs6075w10/sa2.htm

Software ArchitectureS

choo

lof C

omp

ute

rS

cien

ceU

niv

ersi

tyof

Ovi

edo Architectural pattern

Reusable and general solution to some recurring problem that appears in a given contextImportant parameter: problem

3 types:Structural: Build time

Example: LayersRuntime (behaviour)

Example: Pipes & filtersDeployment

Example: Load-balanced cluster

Page 10: Presentación de PowerPoint - GitHub Pages · 2021. 5. 28. · matei/EECE417/BASS/ch05lev1sec1.html wdu/cs6075w10/sa2.htm

Software ArchitectureS

choo

lof C

omp

ute

rS

cien

ceU

niv

ersi

tyof

Ovi

edo Pattern vs style

Pattern = solution to a problemStyle = generic

Does not have to be associated with a problemStyle defines general architecture of an

applicationUsually, an application has one style

...but it can have several patternsPatterns can appear at different scales

High level (architectural patterns)Design (design patterns)Implementation (idioms). . .

Page 11: Presentación de PowerPoint - GitHub Pages · 2021. 5. 28. · matei/EECE417/BASS/ch05lev1sec1.html wdu/cs6075w10/sa2.htm

Software ArchitectureS

choo

lof C

omp

ute

rS

cien

ceU

niv

ersi

tyof

Ovi

edo Pattern vs Style

Styles, in general, are independent of each otherA pattern can be related with other patterns

A pattern composed of several patternsInteractions between patterns

Page 12: Presentación de PowerPoint - GitHub Pages · 2021. 5. 28. · matei/EECE417/BASS/ch05lev1sec1.html wdu/cs6075w10/sa2.htm

Software ArchitectureS

choo

lof C

omp

ute

rS

cien

ceU

niv

ersi

tyof

Ovi

edo Pattern languages and catalogs

Pattern catalogA set of patterns about a subjectIt does not have to be exhaustive

Pattern languageA full pattern catalog about some subject

Goal: document all the possibilitiesThey usually include relationships between patterns

Graphical map

Page 13: Presentación de PowerPoint - GitHub Pages · 2021. 5. 28. · matei/EECE417/BASS/ch05lev1sec1.html wdu/cs6075w10/sa2.htm

Software ArchitectureS

choo

lof C

omp

ute

rS

cien

ceU

niv

ersi

tyof

Ovi

edo

Example of pattern languageSource: "SOA with REST" book

Page 14: Presentación de PowerPoint - GitHub Pages · 2021. 5. 28. · matei/EECE417/BASS/ch05lev1sec1.html wdu/cs6075w10/sa2.htm

Software ArchitectureS

choo

lof C

omp

ute

rS

cien

ceU

niv

ersi

tyof

Ovi

edo Build vs reuse

In some domains, reusing existing architectures may be more eficientReference architecturesExternally developed components

Quality/scope

Effort/Cost Time

Product

Page 15: Presentación de PowerPoint - GitHub Pages · 2021. 5. 28. · matei/EECE417/BASS/ch05lev1sec1.html wdu/cs6075w10/sa2.htm

Software ArchitectureS

choo

lof C

omp

ute

rS

cien

ceU

niv

ersi

tyof

Ovi

edo Reference architectures

Blueprints that provide the overall structure for particular types of applicationsThey contain several

patternsCan be the de-facto

standard in some domains

Fuente: Microsoft Application Architecture Guide, 2nd Ed.

Page 16: Presentación de PowerPoint - GitHub Pages · 2021. 5. 28. · matei/EECE417/BASS/ch05lev1sec1.html wdu/cs6075w10/sa2.htm

Software ArchitectureS

choo

lof C

omp

ute

rS

cien

ceU

niv

ersi

tyof

Ovi

edo Domain Specific Software architecture

Combination of:• Reference architecture for an application domain• A library of components for that architecture• A method of choosing and configuring

components to work within an instance of the reference architecture

Specialized for a specific domainExamples:

ADAGE, MetaH

Page 17: Presentación de PowerPoint - GitHub Pages · 2021. 5. 28. · matei/EECE417/BASS/ch05lev1sec1.html wdu/cs6075w10/sa2.htm

Software ArchitectureS

choo

lof C

omp

ute

rS

cien

ceU

niv

ersi

tyof

Ovi

edo Externally developed components

Technology stacks or familiesMEAN (Mongo,Express,Angular,Node), LAMP (Linux,Apache,MySQL,PHP),...

ProductsCOTS: Commercial Off The SelfFOSS: Free Open Source Software

Be careful with licensesApplication frameworks

Partial implementation of a specific area of an applicationVery popular for UIs

PlatformsComplete infrastructure to build & run applications

Example: JEE, Google Cloud