SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Downloaden Sie, um offline zu lesen
Arquitectura de Software
Antes…
• Qué haría usted si en una definición de la IEEE
encuentra algo como esto:
• “Arquitectura: No estamos
seguros, pero la reconocemos
cuando vemos una”
• IEEE-1471-FAQ
• Introducción
• Definición de Arquitectura de Software
• SW Architecture desde el RUP
• SW Architecture desde un enfoque netamente SW
Architect
• Funcionalidad
• Atributos de calidad
• Patrones y arquitecturas de referencia
• Cómo empezar en SW Architecture?
• La estrategia Bass-Clements-Kazman
Bibliografía
• http://www.sei.cmu.edu/architecture/
• http://msdn.microsoft.com/en-
us/library/ff650706.aspx
• http://www.softwarearchitectures.com
• http://www.iasaglobal.org/iasa/default.asp
• Software Architecture in Practice, Second Edition
By Len Bass, Paul Clements, Rick Kazman
• y muchas otras fuentes…
• “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.”
SEI – Carnegie Mellon (Bass, Clements, Kazman. Software
Architecture In Practice 2nd Edition)
• “La Arquitectura de Software es la organización
fundamental de un sistema encarnada en sus
componentes, las relaciones entre ellos y el ambiente y
los principios que orientan su diseño y evolución.”
IEEE 1471-2000
Definición
• The software architecture discipline is centered on the
idea of reducing complexity through abstraction and
separation of concerns. As a maturing discipline with
no clear rules on the right way to architect it is still a
composition of art and science.
• An architect must use judgment to decide on the
level of detail that must be exposed or hidden in
order to explain to various audiences how a system
will address key business drivers.
Definición (Softwarerachitects.com)
• Vista estructural de alto nivel.
• Combinación de estilos para una solución.
• Esencial para el éxito o el fracaso.
• Quien busca el logro de los requisitos no
funcionales.
• Una disciplina que provee un plan de diseño de un
sistema
• Implica un propósito.
• Una abstracción que ayuda en la gestión de la
complejidad de un sistema.
Sintetizando, la Arquitectura es (Lozano, 2009)
• Software Architecture is “concerned with issues ...
Beyond the algorithms and data structures of the
computation.” [Garlan y Shaw]
• “Architecture is concerned with the selection of
architectural elements, their interaction, and the
constraints on those elements and their interactions
Design is concerned with the modularization and
detailed interfaces of the design elements, their
algorithms and procedures, and the data types needed
to support the architecture and to satisfy the
requirements.” [Perry y Wolf]
Arquitectura vs Diseño
• Software Architecture is “concerned with issues ...
Beyond the algorithms and data structures of the
computation.” [Garlan y Shaw]
• “Architecture is concerned with the selection of
architectural elements, their interaction, and the
constraints on those elements and their interactions
Design is concerned with the modularization and
detailed interfaces of the design elements, their
algorithms and procedures, and the data types needed
to support the architecture and to satisfy the
requirements.” [Perry y Wolf]
Arquitectura vs Diseño
Fuente: IBM Mastering OOAD w/ UML 2.0
Arquitectura vs Diseño según RUP
Fuente: IBM Mastering OOAD w/ UML 2.0
Arquitectura vs Diseño según RUP
Fuente: IBM Mastering OOAD w/ UML 2.0
Arquitectura vs Diseño según RUP
Fuente: Lozano 2009
Entonces
Análisis de
Requerimientos
Diseño de
Software
Arquitectura
de
Software
• Igual en la academia que en la industria.
• Madura.
• DISEÑO CON UML.
• Natural en el desarrollo basado en Componentes.
• Algo vinculado con RUP o metodología.
• Algo vinculado con la orientación a objetos.
Arquitectura NO es (Lozano, 2009)
• Software Architecture
• Enterprise Architecture
• Infrastructure Architecture
• Information Architecture
• Business Architecture
Fuente: http://www.iasaglobal.org
Tipos de Arquitecturas acorde con IASA: the
Global IT Architect Association
• The software architecture of a system is the set of
structures needed to reason about the system,
which comprise software elements, relations among
them, and properties of both.
• The term also refers to documentation of a system's
software architecture. Documenting software
architecture facilitates communication between
stakeholders, documents early decisions about high-
level design, and allows reuse of design components
and patterns between projects.
Software Architecture
• Communication among stakeholders. Software
architecture represents a common abstraction of a
system that most if not all of the system's stakeholders
can use as a basis for mutual understanding,
negotiation, consensus, and communication.
ARCHITECTURE IS THE VEHICLE FOR
STAKEHOLDER COMMUNICATION
Why Is Software Architecture Important? (I)
(Bass, Clements and Kazman)
• Early design decisions. Software architecture
manifests the earliest design decisions about a system,
and these early bindings carry weight far out of
proportion to their individual gravity with respect to the
system's remaining development, its deployment, and its
maintenance life. It is also the earliest point at which
design decisions governing the system to be built can be
analyzed.
Why Is Software Architecture Important? (II)
(Bass, Clements and Kazman)
• Transferable abstraction of a system. Software
architecture constitutes a relatively small, intellectually
graspable model for how a system is structured and how
its elements work together, and this model is transferable
across systems. In particular, it can be applied to other
systems exhibiting similar quality attribute and functional
requirements and can promote large-scale re-use.
Why Is Software Architecture Important? (III)
(Bass, Clements and Kazman)
• An enterprise architecture (EA) is a rigorous description of
the structure of an enterprise, which comprise enterprise
components (business entities), the externally visible
properties of those components, and the relationships (e.g.
the behavior) between them.
• EA describes the terminology, the composition of
enterprise components, and their relationships with the
external environment, and the guiding principles for the
requirement, design, and evolution of an enterprise.
• This description is comprehensive, including enterprise goals,
business process, roles, organizational structures,
organizational behaviors, business information, software
applications and computer systems.
Enterprise Architecture
Ejemplo Arquitectura Empresarial
Fuente: http://sunilduttjha.files.wordpress.com/2012/02/16_changes.gif
• A business architecture is a part of an enterprise
architecture related to architectural
organization of business, and the documents
and diagrams that describe that architectural
organization. People who help build business
architecture are known as Business Architects
Business Architecture
• It describes the structure and behavior of the technology
infrastructure of an enterprise, solution or system.
• It covers the client and server nodes of the hardware
configuration, the infrastructure applications that run on them,
the infrastructure services they offer to applications, the
protocols and networks that connect applications and nodes.
It addresses issues such as performance and resilience,
storage and backup.
Infrastructure Architecture
• Information architecture (IA) is the art of expressing a model or
concept of information used in activities that require explicit
details of complex systems.
• Among these activities are library systems, Content Management
Systems, web development, user interactions, database
development, programming, technical writing, enterprise
architecture, and critical system software design.
• Information architecture has somewhat different meanings in these
different branches of IS or IT architecture. Most definitions have
common qualities: a structural design of shared environments,
methods of organizing and labeling websites, intranets, and online
communities, and ways of bringing the principles of design and
architecture to the digital landscape.
Information Architecture
• http://prezi.com/aafmvya6bk7t/understanding-
information-architecture/
• Resumen por Peter Morville.
Information Architecture
Otras consideraciones
(Bass, Clements, Kazman)
Architecture Patterns
Buschman et al, Pattern-Oriented Software Architecture
- A System of Patterns
• Layers
• Model-view-controller (MVC)
• Pipes and Filters
• Blackboards
• C/S
Fuente: IBM Mastering OOAD w/ UML 2.0
Antes de arrancar
Cómo arranco con Arquitectura de SW?
Arquitectura de Software acorde con RUP
Enfoque SW Architecture Pura
(Bass, Clements, Kazman)
What is functionality?
• It is the ability of the system to do the work for which
it was intended.
• Functionality may be achieved through the use of
any of a number of possible structures
• Functionality is largely independent of structure
Enfoque SW Architecture Pura
(Bass, Clements, Kazman)
Quality Attributes (three classes:)
• Qualities of the system. We will focus on
availability, modifiability, performance, security,
testability, and usability.
• Business qualities (such as time to market) that are
affected by the architecture.
• Qualities, such as conceptual integrity, that are
about the architecture itself although they indirectly
affect other qualities, such as modifiability.
Enfoque SW Architecture Pura
(Bass, Clements, Kazman)
Quality Attributes?
• Architecture is critical to the realization of many qualities of
interest in a system, and these qualities should be designed in
and can be evaluated at the architectural level.
• Architecture, by itself, is unable to achieve qualities. It
provides the foundation for achieving quality, but this foundation
will be to no avail if attention is not paid to the details.
• Within complex systems, quality attributes can never be achieved
in isolation. The achievement of any one will have an effect,
sometimes positive and sometimes negative, on the
achievement of others. For example, security and reliability
often exist in a state of mutual tension
Estrategia para arrancar de acuerdo con
(Bass, Clements, Kazman, 2012)
• Chapter 4: Understanding Quality Attributes
• Quality Attribute Requirements
• Tactics
• Chapter 5-12: Quality Attributes
• Chapter 13: Patterns and Tactics
• Chapter 26: Architectures for the Cloud
• http://www.slideshare.net/rickkazman

Weitere ähnliche Inhalte

Was ist angesagt?

Systematic Architecture Design
Systematic Architecture DesignSystematic Architecture Design
Systematic Architecture Design
GESSI UPC
 
Architectural styles and patterns
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patterns
Himanshu
 

Was ist angesagt? (10)

Loyd Baker: MBSE - connecting the dots process with loyd baker
Loyd Baker: MBSE - connecting the dots process with loyd bakerLoyd Baker: MBSE - connecting the dots process with loyd baker
Loyd Baker: MBSE - connecting the dots process with loyd baker
 
Data Designs (Software Engg.)
Data Designs (Software Engg.)Data Designs (Software Engg.)
Data Designs (Software Engg.)
 
Design Model & User Interface Design in Software Engineering
Design Model & User Interface Design in Software EngineeringDesign Model & User Interface Design in Software Engineering
Design Model & User Interface Design in Software Engineering
 
System Development Life Cycle (SDLC)
System Development Life Cycle (SDLC)System Development Life Cycle (SDLC)
System Development Life Cycle (SDLC)
 
Importance of software architecture 1
Importance of software architecture 1Importance of software architecture 1
Importance of software architecture 1
 
Systematic Architecture Design
Systematic Architecture DesignSystematic Architecture Design
Systematic Architecture Design
 
Architectural styles and patterns
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patterns
 
L23 Summary and Conclusions
L23 Summary and ConclusionsL23 Summary and Conclusions
L23 Summary and Conclusions
 
System design
System designSystem design
System design
 
System engineering
System engineeringSystem engineering
System engineering
 

Andere mochten auch (11)

software metrics (in spanish)
software metrics (in spanish)software metrics (in spanish)
software metrics (in spanish)
 
CMMI
CMMICMMI
CMMI
 
Introduction to MDE
Introduction to MDEIntroduction to MDE
Introduction to MDE
 
Implementation Model
Implementation ModelImplementation Model
Implementation Model
 
I software quality
I   software qualityI   software quality
I software quality
 
Examples of smart_objective_attributes
Examples of smart_objective_attributesExamples of smart_objective_attributes
Examples of smart_objective_attributes
 
Software configuration management in deep
Software configuration management in deepSoftware configuration management in deep
Software configuration management in deep
 
ISO 29119 and Software Testing - now what??
ISO 29119 and Software Testing - now what??ISO 29119 and Software Testing - now what??
ISO 29119 and Software Testing - now what??
 
Preliminary Scope Statement New
Preliminary Scope Statement NewPreliminary Scope Statement New
Preliminary Scope Statement New
 
Project scope statement template v2.3
Project scope statement template v2.3Project scope statement template v2.3
Project scope statement template v2.3
 
software estimation (in spanish)
software estimation (in spanish)software estimation (in spanish)
software estimation (in spanish)
 

Ähnlich wie Lab Software Architecture (in spanish)

Software architecture simplified
Software architecture simplifiedSoftware architecture simplified
Software architecture simplified
Prasad Chitta
 
Design Decisions For Understanding Software Architecture
Design Decisions For Understanding Software ArchitectureDesign Decisions For Understanding Software Architecture
Design Decisions For Understanding Software Architecture
Tiffany Graham
 
chapter-1 Software Design.pptx
chapter-1 Software Design.pptxchapter-1 Software Design.pptx
chapter-1 Software Design.pptx
haroon451422
 

Ähnlich wie Lab Software Architecture (in spanish) (20)

Chapter 2_Software Architecture.ppt
Chapter 2_Software Architecture.pptChapter 2_Software Architecture.ppt
Chapter 2_Software Architecture.ppt
 
Chapter 2_Software Architecture.ppt
Chapter 2_Software Architecture.pptChapter 2_Software Architecture.ppt
Chapter 2_Software Architecture.ppt
 
Software Architecture Design for Begginers
Software Architecture Design for BegginersSoftware Architecture Design for Begginers
Software Architecture Design for Begginers
 
Architecture Design
Architecture DesignArchitecture Design
Architecture Design
 
Sda 1
Sda   1Sda   1
Sda 1
 
Software architecture simplified
Software architecture simplifiedSoftware architecture simplified
Software architecture simplified
 
An Introduction To Software Development - Architecture & Detailed Design
An Introduction To Software Development - Architecture & Detailed DesignAn Introduction To Software Development - Architecture & Detailed Design
An Introduction To Software Development - Architecture & Detailed Design
 
Unit_4_Software_Design.pptx
Unit_4_Software_Design.pptxUnit_4_Software_Design.pptx
Unit_4_Software_Design.pptx
 
Jacques Van Niekerk Workshop on IWMC 2015
Jacques Van Niekerk Workshop on IWMC 2015Jacques Van Niekerk Workshop on IWMC 2015
Jacques Van Niekerk Workshop on IWMC 2015
 
Ch01
Ch01Ch01
Ch01
 
Technical Architecture
Technical ArchitectureTechnical Architecture
Technical Architecture
 
Chapter 3_Software Design sunorganisedASE_BW_finalised.ppt
Chapter 3_Software Design sunorganisedASE_BW_finalised.pptChapter 3_Software Design sunorganisedASE_BW_finalised.ppt
Chapter 3_Software Design sunorganisedASE_BW_finalised.ppt
 
What is Software Architecture?
What is Software Architecture?What is Software Architecture?
What is Software Architecture?
 
Design Decisions For Understanding Software Architecture
Design Decisions For Understanding Software ArchitectureDesign Decisions For Understanding Software Architecture
Design Decisions For Understanding Software Architecture
 
Software Architecture
Software Architecture Software Architecture
Software Architecture
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Architectural design
Architectural designArchitectural design
Architectural design
 
chapter-1 Software Design.pptx
chapter-1 Software Design.pptxchapter-1 Software Design.pptx
chapter-1 Software Design.pptx
 
Week-2_LectureA1_701.pdf
Week-2_LectureA1_701.pdfWeek-2_LectureA1_701.pdf
Week-2_LectureA1_701.pdf
 
SA_UNIT_1.pptx
SA_UNIT_1.pptxSA_UNIT_1.pptx
SA_UNIT_1.pptx
 

Mehr von Fáber D. Giraldo

Analysing the concept of quality in model-driven engineering literature: a sy...
Analysing the concept of quality in model-driven engineering literature: a sy...Analysing the concept of quality in model-driven engineering literature: a sy...
Analysing the concept of quality in model-driven engineering literature: a sy...
Fáber D. Giraldo
 
Workflows adaptations for security management through MDD and Aspects
Workflows adaptations for security management through MDD and Aspects Workflows adaptations for security management through MDD and Aspects
Workflows adaptations for security management through MDD and Aspects
Fáber D. Giraldo
 
software configuration management
software configuration managementsoftware configuration management
software configuration management
Fáber D. Giraldo
 

Mehr von Fáber D. Giraldo (16)

Applying a software TeleCare prototype in a real residences for older people ...
Applying a software TeleCare prototype in a real residences for older people ...Applying a software TeleCare prototype in a real residences for older people ...
Applying a software TeleCare prototype in a real residences for older people ...
 
Analysing the concept of quality in model-driven engineering literature: a sy...
Analysing the concept of quality in model-driven engineering literature: a sy...Analysing the concept of quality in model-driven engineering literature: a sy...
Analysing the concept of quality in model-driven engineering literature: a sy...
 
Teamwork in Software Engineering Projects
Teamwork in Software Engineering ProjectsTeamwork in Software Engineering Projects
Teamwork in Software Engineering Projects
 
Project Planning in Software Engineering
Project Planning in Software EngineeringProject Planning in Software Engineering
Project Planning in Software Engineering
 
PhD Proposal - A Framework for evaluating the quality of languages in MDE env...
PhD Proposal - A Framework for evaluating the quality of languages in MDE env...PhD Proposal - A Framework for evaluating the quality of languages in MDE env...
PhD Proposal - A Framework for evaluating the quality of languages in MDE env...
 
SEMAT
SEMATSEMAT
SEMAT
 
The SEI Approach
The SEI ApproachThe SEI Approach
The SEI Approach
 
The Agile Movement
The Agile MovementThe Agile Movement
The Agile Movement
 
Introduction to RUP & SPEM
Introduction to RUP & SPEMIntroduction to RUP & SPEM
Introduction to RUP & SPEM
 
Introduction to Software Process
Introduction to Software ProcessIntroduction to Software Process
Introduction to Software Process
 
Code Inspection
Code InspectionCode Inspection
Code Inspection
 
Workflows adaptations for security management through MDD and Aspects
Workflows adaptations for security management through MDD and Aspects Workflows adaptations for security management through MDD and Aspects
Workflows adaptations for security management through MDD and Aspects
 
Continuous Integration Introduction
Continuous Integration IntroductionContinuous Integration Introduction
Continuous Integration Introduction
 
Patterns Overview
Patterns OverviewPatterns Overview
Patterns Overview
 
L software testing
L   software testingL   software testing
L software testing
 
software configuration management
software configuration managementsoftware configuration management
software configuration management
 

Kürzlich hochgeladen

Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.
MateoGardella
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
QucHHunhnh
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
heathfieldcps1
 
Gardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch LetterGardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch Letter
MateoGardella
 

Kürzlich hochgeladen (20)

Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across Sectors
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
psychiatric nursing HISTORY COLLECTION .docx
psychiatric  nursing HISTORY  COLLECTION  .docxpsychiatric  nursing HISTORY  COLLECTION  .docx
psychiatric nursing HISTORY COLLECTION .docx
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
Gardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch LetterGardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch Letter
 

Lab Software Architecture (in spanish)

  • 2. Antes… • Qué haría usted si en una definición de la IEEE encuentra algo como esto: • “Arquitectura: No estamos seguros, pero la reconocemos cuando vemos una” • IEEE-1471-FAQ
  • 3. • Introducción • Definición de Arquitectura de Software • SW Architecture desde el RUP • SW Architecture desde un enfoque netamente SW Architect • Funcionalidad • Atributos de calidad • Patrones y arquitecturas de referencia • Cómo empezar en SW Architecture? • La estrategia Bass-Clements-Kazman
  • 4. Bibliografía • http://www.sei.cmu.edu/architecture/ • http://msdn.microsoft.com/en- us/library/ff650706.aspx • http://www.softwarearchitectures.com • http://www.iasaglobal.org/iasa/default.asp • Software Architecture in Practice, Second Edition By Len Bass, Paul Clements, Rick Kazman • y muchas otras fuentes…
  • 5. • “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.” SEI – Carnegie Mellon (Bass, Clements, Kazman. Software Architecture In Practice 2nd Edition) • “La Arquitectura de Software es la organización fundamental de un sistema encarnada en sus componentes, las relaciones entre ellos y el ambiente y los principios que orientan su diseño y evolución.” IEEE 1471-2000 Definición
  • 6. • The software architecture discipline is centered on the idea of reducing complexity through abstraction and separation of concerns. As a maturing discipline with no clear rules on the right way to architect it is still a composition of art and science. • An architect must use judgment to decide on the level of detail that must be exposed or hidden in order to explain to various audiences how a system will address key business drivers. Definición (Softwarerachitects.com)
  • 7. • Vista estructural de alto nivel. • Combinación de estilos para una solución. • Esencial para el éxito o el fracaso. • Quien busca el logro de los requisitos no funcionales. • Una disciplina que provee un plan de diseño de un sistema • Implica un propósito. • Una abstracción que ayuda en la gestión de la complejidad de un sistema. Sintetizando, la Arquitectura es (Lozano, 2009)
  • 8. • Software Architecture is “concerned with issues ... Beyond the algorithms and data structures of the computation.” [Garlan y Shaw] • “Architecture is concerned with the selection of architectural elements, their interaction, and the constraints on those elements and their interactions Design is concerned with the modularization and detailed interfaces of the design elements, their algorithms and procedures, and the data types needed to support the architecture and to satisfy the requirements.” [Perry y Wolf] Arquitectura vs Diseño
  • 9. • Software Architecture is “concerned with issues ... Beyond the algorithms and data structures of the computation.” [Garlan y Shaw] • “Architecture is concerned with the selection of architectural elements, their interaction, and the constraints on those elements and their interactions Design is concerned with the modularization and detailed interfaces of the design elements, their algorithms and procedures, and the data types needed to support the architecture and to satisfy the requirements.” [Perry y Wolf] Arquitectura vs Diseño
  • 10. Fuente: IBM Mastering OOAD w/ UML 2.0 Arquitectura vs Diseño según RUP
  • 11. Fuente: IBM Mastering OOAD w/ UML 2.0 Arquitectura vs Diseño según RUP
  • 12. Fuente: IBM Mastering OOAD w/ UML 2.0 Arquitectura vs Diseño según RUP
  • 13. Fuente: Lozano 2009 Entonces Análisis de Requerimientos Diseño de Software Arquitectura de Software
  • 14. • Igual en la academia que en la industria. • Madura. • DISEÑO CON UML. • Natural en el desarrollo basado en Componentes. • Algo vinculado con RUP o metodología. • Algo vinculado con la orientación a objetos. Arquitectura NO es (Lozano, 2009)
  • 15. • Software Architecture • Enterprise Architecture • Infrastructure Architecture • Information Architecture • Business Architecture Fuente: http://www.iasaglobal.org Tipos de Arquitecturas acorde con IASA: the Global IT Architect Association
  • 16. • The software architecture of a system is the set of structures needed to reason about the system, which comprise software elements, relations among them, and properties of both. • The term also refers to documentation of a system's software architecture. Documenting software architecture facilitates communication between stakeholders, documents early decisions about high- level design, and allows reuse of design components and patterns between projects. Software Architecture
  • 17. • Communication among stakeholders. Software architecture represents a common abstraction of a system that most if not all of the system's stakeholders can use as a basis for mutual understanding, negotiation, consensus, and communication. ARCHITECTURE IS THE VEHICLE FOR STAKEHOLDER COMMUNICATION Why Is Software Architecture Important? (I) (Bass, Clements and Kazman)
  • 18. • Early design decisions. Software architecture manifests the earliest design decisions about a system, and these early bindings carry weight far out of proportion to their individual gravity with respect to the system's remaining development, its deployment, and its maintenance life. It is also the earliest point at which design decisions governing the system to be built can be analyzed. Why Is Software Architecture Important? (II) (Bass, Clements and Kazman)
  • 19. • Transferable abstraction of a system. Software architecture constitutes a relatively small, intellectually graspable model for how a system is structured and how its elements work together, and this model is transferable across systems. In particular, it can be applied to other systems exhibiting similar quality attribute and functional requirements and can promote large-scale re-use. Why Is Software Architecture Important? (III) (Bass, Clements and Kazman)
  • 20. • An enterprise architecture (EA) is a rigorous description of the structure of an enterprise, which comprise enterprise components (business entities), the externally visible properties of those components, and the relationships (e.g. the behavior) between them. • EA describes the terminology, the composition of enterprise components, and their relationships with the external environment, and the guiding principles for the requirement, design, and evolution of an enterprise. • This description is comprehensive, including enterprise goals, business process, roles, organizational structures, organizational behaviors, business information, software applications and computer systems. Enterprise Architecture
  • 21. Ejemplo Arquitectura Empresarial Fuente: http://sunilduttjha.files.wordpress.com/2012/02/16_changes.gif
  • 22. • A business architecture is a part of an enterprise architecture related to architectural organization of business, and the documents and diagrams that describe that architectural organization. People who help build business architecture are known as Business Architects Business Architecture
  • 23. • It describes the structure and behavior of the technology infrastructure of an enterprise, solution or system. • It covers the client and server nodes of the hardware configuration, the infrastructure applications that run on them, the infrastructure services they offer to applications, the protocols and networks that connect applications and nodes. It addresses issues such as performance and resilience, storage and backup. Infrastructure Architecture
  • 24. • Information architecture (IA) is the art of expressing a model or concept of information used in activities that require explicit details of complex systems. • Among these activities are library systems, Content Management Systems, web development, user interactions, database development, programming, technical writing, enterprise architecture, and critical system software design. • Information architecture has somewhat different meanings in these different branches of IS or IT architecture. Most definitions have common qualities: a structural design of shared environments, methods of organizing and labeling websites, intranets, and online communities, and ways of bringing the principles of design and architecture to the digital landscape. Information Architecture
  • 27. Architecture Patterns Buschman et al, Pattern-Oriented Software Architecture - A System of Patterns • Layers • Model-view-controller (MVC) • Pipes and Filters • Blackboards • C/S
  • 28. Fuente: IBM Mastering OOAD w/ UML 2.0 Antes de arrancar
  • 29. Cómo arranco con Arquitectura de SW? Arquitectura de Software acorde con RUP
  • 30. Enfoque SW Architecture Pura (Bass, Clements, Kazman) What is functionality? • It is the ability of the system to do the work for which it was intended. • Functionality may be achieved through the use of any of a number of possible structures • Functionality is largely independent of structure
  • 31. Enfoque SW Architecture Pura (Bass, Clements, Kazman) Quality Attributes (three classes:) • Qualities of the system. We will focus on availability, modifiability, performance, security, testability, and usability. • Business qualities (such as time to market) that are affected by the architecture. • Qualities, such as conceptual integrity, that are about the architecture itself although they indirectly affect other qualities, such as modifiability.
  • 32. Enfoque SW Architecture Pura (Bass, Clements, Kazman) Quality Attributes? • Architecture is critical to the realization of many qualities of interest in a system, and these qualities should be designed in and can be evaluated at the architectural level. • Architecture, by itself, is unable to achieve qualities. It provides the foundation for achieving quality, but this foundation will be to no avail if attention is not paid to the details. • Within complex systems, quality attributes can never be achieved in isolation. The achievement of any one will have an effect, sometimes positive and sometimes negative, on the achievement of others. For example, security and reliability often exist in a state of mutual tension
  • 33. Estrategia para arrancar de acuerdo con (Bass, Clements, Kazman, 2012) • Chapter 4: Understanding Quality Attributes • Quality Attribute Requirements • Tactics • Chapter 5-12: Quality Attributes • Chapter 13: Patterns and Tactics • Chapter 26: Architectures for the Cloud • http://www.slideshare.net/rickkazman