SlideShare una empresa de Scribd logo
5
Lo más leído
16
Lo más leído
Arquitecturas de Software
         Parte 1
       - Definiciones básicas
       - Beneficios de una Arquitectura de SW
       - Arquitectura 4+1 vista

                   Material académico preparado por:
                      Ph.D Marta Silvia Tabares B.
                  Fecha última actualización 4-Sep-2011
Ingeniería de Software II
(mapa conceptual de tópicos de conocimiento)




       Material Preparado por MARTA SILVIA TABARES B. UdeM
Bibliografía
     Los conceptos utilizados en esta presentación fueron estudiados y tomados en su mayoría
     de las siguientes referencias bibliográficas.

1.     Arlow, J., and Neustad, I. UML 2 and the Unified Process: Practical Object-Oriented Analysis
       and Design (2nd Edition). Addison-Wesley Object Technology Series. 2005.
2.     OMG-UML. Unified Modeling Language: Superstructure. Version 2.0, formal/05-07-04. 2005.
3.     Jacobson, I., Booch, G., Rumbaugh, J. El Proceso Unificado de Desarrollo de Software.
       Addison Wesley. 2000.
4.     Alan Dennis, Barbara Haley Wixom and David Tegarden. Systems Analysis and Design with
       UML Version 2.0 - An Object Oriented Approach, Second Edition. John Wiley & Sons © 2005.
5.     Simon Bennett, Stee McRobb, y Ray Farmer. Análisis y Diseño Orientado a Objetos del
       Sistema, Usando UML. McGraw-Hill, 2006.
6.     Bass, L., Clements, P., Kazman, R. Software Architecture in Practice Second Edition.
7.     Pressman, R. Ingeniería del Software un Enfoque Práctico.
8.     Camacho, E.; Cardeso, F.; Nuñez, G. ARQUITECTURAS DE SOFTWARE - GUÍA DE ESTUDIO. (Abril, 2004).
9.     www.sei.cmu.edu.co
10. http://www.iso.org/iso/home.html
11. http://iso25000.com/index.php/iso-iec-9126.html
                                                                                                         3
                           Material académico preparado por Marta Silvia Tabares B. UdeM
Arquitectura de Software
    “If a project has not achieved a system
    architecture, including its rationale, the
    project should not proceed to full-scale
      system development. Specifying the
 architecture as a deliverable enables its use
throughout the development and maintenance
                    process.”
               --- Barry Boehm 1995

                                             Tomado del Libro Software Architecture in Practice – Second Edition




               Material académico preparado por Marta
                                                                                                         4
                        Silvia Tabares B. UdeM
Arquitectura de Software
   Definición básica:

     La arquitectura de software de un
programa o sistema de computación es la
 estructura o estructuras del sistema, las
    cuales comprometen elementos de
 software, las propiedades externamente
visibles de esos elementos y las relaciones
                entre ellos.
                                                      (Arlow and Neustad, 2005)
             Material académico preparado por Marta
                                                                                  5
                      Silvia Tabares B. UdeM
Arquitectura de Software
     Definición básica:

    Toda la arquitectura es diseño, pero no todo el
  diseño es arquitectura. La arquitectura representa
   las decisiones de diseño significativas que le dan
forma a un sistema. Donde lo significativo puede ser
           medido por el costo del cambio.
                                                                 Booch)
                                                          (Grady Booch)




                 Material académico preparado por Marta
                                                                          6
                          Silvia Tabares B. UdeM
Arquitectura de Software
Otras Definiciones (1/4)
1.   Es la organización de un sistema en términos de sus componentes de
     software, incluyendo los subsistemas y las relaciones e interacciones entre
     ellos, y los principios que guían el diseño de ese sistema de software.

2.   Es una forma coherente de establecer los patrones y abstracciones para
     que los analistas y desarrolladores trabajen en una línea común hacia la
     implementación del sistema de información.

3.   Una arquitectura sigue un patrón o un conjunto de patrones que
     proporcionan un marco de referencia para lograr la funcional requerida
     por el cliente, y otros objetivos como la mantenibilidad, auditabilidad,
     flexibilidad e interacción con otros sistemas de información.


                          Material académico preparado por Marta
                                                                             7
                                   Silvia Tabares B. UdeM
Arquitectura de Software
Otras Definiciones (2/4)
• Es un esquema de trabajo que determina la interacción de diferentes
  componentes del sistema.

• Emerge como una parte crucial del proceso de análisis          diseño
  (Diseño de alto nivel (decisiones tempranas de diseño)

• Es el resultado de un conjunto de decisiones técnicas y de negocio.

• Es la estructura general del sistema.

• Es un conjunto de componentes, conectores y restricciones de un
  programa o sistema, sus interrelaciones, y los principios que gobiernan
  su diseño.
                        Material académico preparado por Marta
                                                                          8
                                 Silvia Tabares B. UdeM
Arquitectura de Software
Otras Definiciones (3/4)
• La arquitectura de software es una forma de representar sistemas
  complejos mediante el uso de la abstracción.

• Es la estructura de sistemas o sistema de estructuras que consisten en
  elementos, sus propiedades externamente visibles y la relación entre
  ellos"

    – «Propiedades externamente visibles: qué es lo que debe saber/suponer un
      componente sobre otro»

• Es la organización fundamental de un sistema incorporada en sus
  componentes, en sus relaciones mutuas y el entorno, y los principios
  que guían su diseño y evolución (IEEE Standard 1471-2000).

                         Material académico preparado por Marta
                                                                          9
                                  Silvia Tabares B. UdeM
Arquitecturas de software
Otras Definiciones (4/4)
• La arquitectura de software es importante como disciplina
  debido a que los sistemas de software crecen de forma tal
  que resulta muy complicado que sean diseñados,
  especificados y entendidos por un solo individuo.

• Uno de los aspectos que motivan el estudio en este campo
  es el factor humano, en términos de aspectos como
  inspecciones de diseño, comunicación a alto nivel entre los
  miembros del equipo de desarrollo, reutilización de
  componentes y comparación a alto nivel de diseños
  alternativos (Kazman, 1996).


                 Material Preparado por MARTA SILVIA TABARES B. UdeM
Arquitectura de Software
Terminología:
• Sistema: conjunto de componentes que cumplen una función o un
  conjunto de funciones específicas.

• Descripción de la arquitectura: es un conjunto de productos que
  documentan la arquitectura.

• Perspectiva de la arquitectura: es una representación desde una
  perspectiva específica de un determinado sistema o de una parte del
  mismo.

• Punto de vista arquitectónico: es una plantilla que describe la forma
  de crear y utilizar una perspectiva de la arquitectura. Un punto de
  vista incluye un nombre, socios, problemas más abordados por el
  punto de vista y el modelado y las convenciones analíticas.
                       Material académico preparado por Marta
                                                                    11
                                Silvia Tabares B. UdeM
Beneficios de una Arquitectura de
            Software
   1. Proporciona la comunicación entre
      Stakeholders (participantes del proyecto)


Director de la       Mercadeo                  Usuario Final            Organización del       Cliente
organización                                                            Mantenimiento
de desarrollo            Características        Comportamiento,
                            o rasgos,             rendimiento,
                          corto tiempo             seguridad,
                             para el              confiabilidad,             Modificabilida
                           mercadeo,               usabilidad                      d
                          bajos costos
                                                                                               Bajos Costos,
                Bajos
                                                                                                tiempo de
               Costos,
                                                                                                 entrega,
             Mantener
                                                               Ohhhh…                         pocos cambios
              la gente
                                                                                                 en corto
             empleada
                                                                                                  tiempo
                                                        Arquitecto
                            Material académico preparado por Marta
                                                                                                         12
                                     Silvia Tabares B. UdeM
Beneficios de una Arquitectura de
            Software
 Influencias en la Arquitectura

 Stakeholders
                                 Requisitos de                               Arquitectura
                                   Calidad
 Organizaciones
 de
 Desarrollo
                                                                               Sistema
 Ambiente Técnico
                                                                Arquitecto
 Experiencia del Arquitecto




                              Material académico preparado por Marta
                                                                                     13
                                       Silvia Tabares B. UdeM
Beneficios de una Arquitectura de
             Software
2. Manifiesta las decisiones de diseño
   tempranamente
  –   Define restricciones de implementación
  –   Soporta la estructura organizacional
  –   Inhibe o activa los atributos de calidad del sistema
  –   Exhibe los atributos de calidad requeridos
  –   Facilita el razonar acerca del manejo del cambio
  –   Ayuda en la evolución del prototipado
  –   Alcanza más exactitud en estimación de costos y
      agenda del proyecto
                   Material académico preparado por Marta
                                                             14
                            Silvia Tabares B. UdeM
Beneficios de una Arquitectura de
            Software
3. Las arquitecturas como un modelo reusable y
   transferible
  – Las líneas de productos de software comparten una
    arquitectura en común
  – Los sistemas se pueden construir usando grandes y
    extensos elementos de desarrollo
  – Menos es más: vocabulario restringido de alternativas de
    diseño
  – Una arquitectura permite desarrollo basado en plantillas
    (templates)
  – Una arquitectura puede ser la base para el entrenamiento
    de nuevos miembros del equipo de desarrollo
                  Material académico preparado por Marta
                                                           15
                           Silvia Tabares B. UdeM
Arquitectura 4+1 Vistas




    Pilippe (Philipe) Kruchten define: “Una vista es una
  presentación de un modelo, la cual es una descripción
completa de un sistema desde una perspectiva particular”.
           Material Preparado por MARTA SILVIA TABARES B. UdeM
Arquitectura 4+1 Vistas




Vista Lógica
Requisitos funcionales del sistema y de lo que el sistema debe de hacer, las funciones y
servicios que se han definido.

    Enfocada a lo definido como dominio de la aplicación, lo que son las clases y
    objetos principales que formaran el corazón o "core" de la aplicación.

    Esta vista se complementa con los diagramas UML:
         • Diagrama de Clases
         • Diagrama de Paquetes
                      Material Preparado por MARTA SILVIA TABARES B. UdeM
Arquitectura 4+1 Vistas



Vista de Despliegue o Vista de Desarrollo
Mostrar básicamente como está dividido nuestro sistema de software en componentes, y
muestra las dependencias entre estos componentes.

    Muestra los componentes físicos incluyen archivos, cabeceras, bibliotecas
    compartidas, módulos, ejecutables, o paquetes. Organización y las dependencias entre
    el conjunto de componentes, y como se comunican entre ellos.

    Esta vista la vamos a complementar con los diagramas UML:
               • Diagrama de Componentes
               • Diagrama de Paquetes
                      Material Preparado por MARTA SILVIA TABARES B. UdeM
Arquitectura 4+1 Vistas




Vista de Procesos
Representa los flujos de trabajo paso a paso de negocio y operacionales de los
componentes que conforman el sistema. También va a mostrar algunos de los
requisitos no funciónales, como son ejecución, disponibilidad, tolerancia a fallas,
integridad, seguridad, confiabilidad entre otros.

     Esta vista la vamos a complementar con los diagramas UML:
          • Diagrama de Actividad



                     Material Preparado por MARTA SILVIA TABARES B. UdeM
Arquitectura 4+1 Vistas




Vista Física
Representa cómo están distribuidos los componentes entre los distintos equipos que
conforman la solución incluyendo los servicios.

    Los elementos definidos en la vista lógica se mapean a componentes de software
    o de hardware.

    Esta vista la vamos a complementar con los diagramas UML:
         • Diagrama de Deployment

                     Material Preparado por MARTA SILVIA TABARES B. UdeM
Arquitectura 4+1 Vistas



Vista +1 o Vista de Escenarios,
Esta vista va a ser representada por los casos de uso, que ayudarán a unir las otras cuatro
vistas.

Desde un caso de uso podemos ver cómo se van ligando las otras cuatro vistas, con esto
tenemos una trazabilidad de componentes, clases, equipo, paquetes, etc., para
realización cada caso de uso.

Esta vista la vamos a complementar con los diagramas UML:
     • Diagrama de Casos de Uso

                        Material Preparado por MARTA SILVIA TABARES B. UdeM

Más contenido relacionado

PDF
Diseño de software
DOCX
PPTX
Seguridad De la Informacion
PPTX
Plan operativo
PDF
Guía para facilitar el planteamiento del problema de investigacion
PDF
Abecé del Plan de Ordenamiento Territorial POT
PPTX
Seguridad en redes
Diseño de software
Seguridad De la Informacion
Plan operativo
Guía para facilitar el planteamiento del problema de investigacion
Abecé del Plan de Ordenamiento Territorial POT
Seguridad en redes

La actualidad más candente (20)

PDF
Arquitecturas de software - Parte 2
PPTX
2 1 vistas arquitectonicas
DOC
Modelo componentes
DOCX
Modelado Orientado a Objetos
PPTX
Estandares de calidad aplicadas al software
PPT
Calidad de software
PDF
Arquitectura de Software
PPT
Diagrama de secuencia UML
PPTX
Arquitectura de software
PPT
Uml presentacion
PDF
IEEE 1471-2000: Documento de arquitectura de software
PPTX
Herramientas case full informacion
PPTX
Patrones diseño y arquitectura
DOCX
Modelo 4+1
PPTX
2 2 estilos arquitectonicos
PPT
Rup disciplinas
PDF
Patrones de diseño de software
PDF
Tema N° 7 Atributos de Calidad del Software según Norma ISO 25010
PPTX
Arquitectura flujo de datos(filtros y tuberías)
DOCX
modelos de calidad de software
Arquitecturas de software - Parte 2
2 1 vistas arquitectonicas
Modelo componentes
Modelado Orientado a Objetos
Estandares de calidad aplicadas al software
Calidad de software
Arquitectura de Software
Diagrama de secuencia UML
Arquitectura de software
Uml presentacion
IEEE 1471-2000: Documento de arquitectura de software
Herramientas case full informacion
Patrones diseño y arquitectura
Modelo 4+1
2 2 estilos arquitectonicos
Rup disciplinas
Patrones de diseño de software
Tema N° 7 Atributos de Calidad del Software según Norma ISO 25010
Arquitectura flujo de datos(filtros y tuberías)
modelos de calidad de software
Publicidad

Similar a Arquitecturas de software - Parte 1 (20)

PDF
Guia Yahveh
PDF
Conceptos basicos arquitectura de software
PPTX
SESION 1 - ARQUITECTURA DE SOFTWARE.pptx
PPTX
Fundamentos del diseño de software
DOCX
Patrones
PDF
Diseño estructurado y las técnicas que lo caracterizan
PDF
Tareasemana1
PDF
Tarea semana 1
PDF
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
PPTX
Fundamentos para el diseño de un software
PPT
Arquitecturas
PDF
Arquitectura de software
PPTX
Metodología de Diseño Estructurado.pptx
PDF
8.conceptos de diseño
PPTX
Fundamentos
PPTX
Presentación Diseño de Software Gabriel Augusto Peña Antonetti CI 27687011
DOC
Diseno Software
PPTX
Ingeniería de software y el paradigma orientado a objetos
PPTX
Proyecto de Software y Estimacion de Coste
ODT
Diseño de arquitectura del software
Guia Yahveh
Conceptos basicos arquitectura de software
SESION 1 - ARQUITECTURA DE SOFTWARE.pptx
Fundamentos del diseño de software
Patrones
Diseño estructurado y las técnicas que lo caracterizan
Tareasemana1
Tarea semana 1
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
Fundamentos para el diseño de un software
Arquitecturas
Arquitectura de software
Metodología de Diseño Estructurado.pptx
8.conceptos de diseño
Fundamentos
Presentación Diseño de Software Gabriel Augusto Peña Antonetti CI 27687011
Diseno Software
Ingeniería de software y el paradigma orientado a objetos
Proyecto de Software y Estimacion de Coste
Diseño de arquitectura del software
Publicidad

Más de Marta Silvia Tabares (20)

PDF
Gic vista desde los procesos de negocio
PDF
Arquitecturas empresariales version gerencia de información
PDF
Gestión del conocimento parte 1
PDF
Gestión del conocimento parte 2
PDF
Gestión del conocimento parte 3
PDF
Arquitecturas empresariales para Ingenieros de Sistemas/Informáticos/de Software
PDF
Introducción a las Arquitecturas Orientadas a Servicios
PDF
Gerencia de procesos- Arquitectura Empresarial
PDF
Gerencia de procesos - Gestión del Proceso
PDF
Gerencia de procesos - Gestión por procesos
PDF
Gerencia de procesos - Organizaciones orientadas por procesos
PDF
Gerencia de Procesos - Introduccion al Curso
PDF
Introducción de pruebas de software
PDF
Gestion de proyectos - Estimación del Esfuerzo
PDF
Planeación y gestión de proyectos informáticos
PDF
Ingeniería de software II- Parte 3.2
PPTX
Ingeniería de software II - Parte 3.1
PDF
Ingeniería de software II - Parte 4
PDF
Ingeniería de software II - Parte 1
PDF
Ingeniería de software II - Parte 2
Gic vista desde los procesos de negocio
Arquitecturas empresariales version gerencia de información
Gestión del conocimento parte 1
Gestión del conocimento parte 2
Gestión del conocimento parte 3
Arquitecturas empresariales para Ingenieros de Sistemas/Informáticos/de Software
Introducción a las Arquitecturas Orientadas a Servicios
Gerencia de procesos- Arquitectura Empresarial
Gerencia de procesos - Gestión del Proceso
Gerencia de procesos - Gestión por procesos
Gerencia de procesos - Organizaciones orientadas por procesos
Gerencia de Procesos - Introduccion al Curso
Introducción de pruebas de software
Gestion de proyectos - Estimación del Esfuerzo
Planeación y gestión de proyectos informáticos
Ingeniería de software II- Parte 3.2
Ingeniería de software II - Parte 3.1
Ingeniería de software II - Parte 4
Ingeniería de software II - Parte 1
Ingeniería de software II - Parte 2

Último (20)

PDF
Estrategia de apoyo tecnología grado 9-3
PPTX
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PPT
introduccion a las_web en el 2025_mejoras.ppt
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PDF
Influencia-del-uso-de-redes-sociales.pdf
PPT
El-Gobierno-Electrónico-En-El-Estado-Bolivia
PDF
Estrategia de apoyo tecnología miguel angel solis
PPTX
REDES INFORMATICAS REDES INFORMATICAS.pptx
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PPTX
Presentación de Redes de Datos modelo osi
DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PPTX
Propuesta BKP servidores con Acronis1.pptx
PDF
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
PDF
SAP Transportation Management para LSP, TM140 Col18
PDF
Diapositiva proyecto de vida, materia catedra
PDF
Maste clas de estructura metálica y arquitectura
PDF
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
PDF
Calidad desde el Docente y la mejora continua .pdf
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
Estrategia de apoyo tecnología grado 9-3
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
introduccion a las_web en el 2025_mejoras.ppt
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
Influencia-del-uso-de-redes-sociales.pdf
El-Gobierno-Electrónico-En-El-Estado-Bolivia
Estrategia de apoyo tecnología miguel angel solis
REDES INFORMATICAS REDES INFORMATICAS.pptx
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
Presentación de Redes de Datos modelo osi
Zarate Quispe Alex aldayir aplicaciones de internet .docx
Propuesta BKP servidores con Acronis1.pptx
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
SAP Transportation Management para LSP, TM140 Col18
Diapositiva proyecto de vida, materia catedra
Maste clas de estructura metálica y arquitectura
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
Calidad desde el Docente y la mejora continua .pdf
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx

Arquitecturas de software - Parte 1

  • 1. Arquitecturas de Software Parte 1 - Definiciones básicas - Beneficios de una Arquitectura de SW - Arquitectura 4+1 vista Material académico preparado por: Ph.D Marta Silvia Tabares B. Fecha última actualización 4-Sep-2011
  • 2. Ingeniería de Software II (mapa conceptual de tópicos de conocimiento) Material Preparado por MARTA SILVIA TABARES B. UdeM
  • 3. Bibliografía Los conceptos utilizados en esta presentación fueron estudiados y tomados en su mayoría de las siguientes referencias bibliográficas. 1. Arlow, J., and Neustad, I. UML 2 and the Unified Process: Practical Object-Oriented Analysis and Design (2nd Edition). Addison-Wesley Object Technology Series. 2005. 2. OMG-UML. Unified Modeling Language: Superstructure. Version 2.0, formal/05-07-04. 2005. 3. Jacobson, I., Booch, G., Rumbaugh, J. El Proceso Unificado de Desarrollo de Software. Addison Wesley. 2000. 4. Alan Dennis, Barbara Haley Wixom and David Tegarden. Systems Analysis and Design with UML Version 2.0 - An Object Oriented Approach, Second Edition. John Wiley & Sons © 2005. 5. Simon Bennett, Stee McRobb, y Ray Farmer. Análisis y Diseño Orientado a Objetos del Sistema, Usando UML. McGraw-Hill, 2006. 6. Bass, L., Clements, P., Kazman, R. Software Architecture in Practice Second Edition. 7. Pressman, R. Ingeniería del Software un Enfoque Práctico. 8. Camacho, E.; Cardeso, F.; Nuñez, G. ARQUITECTURAS DE SOFTWARE - GUÍA DE ESTUDIO. (Abril, 2004). 9. www.sei.cmu.edu.co 10. http://www.iso.org/iso/home.html 11. http://iso25000.com/index.php/iso-iec-9126.html 3 Material académico preparado por Marta Silvia Tabares B. UdeM
  • 4. Arquitectura de Software “If a project has not achieved a system architecture, including its rationale, the project should not proceed to full-scale system development. Specifying the architecture as a deliverable enables its use throughout the development and maintenance process.” --- Barry Boehm 1995 Tomado del Libro Software Architecture in Practice – Second Edition Material académico preparado por Marta 4 Silvia Tabares B. UdeM
  • 5. Arquitectura de Software Definición básica: La arquitectura de software de un programa o sistema de computación es la estructura o estructuras del sistema, las cuales comprometen elementos de software, las propiedades externamente visibles de esos elementos y las relaciones entre ellos. (Arlow and Neustad, 2005) Material académico preparado por Marta 5 Silvia Tabares B. UdeM
  • 6. Arquitectura de Software Definición básica: Toda la arquitectura es diseño, pero no todo el diseño es arquitectura. La arquitectura representa las decisiones de diseño significativas que le dan forma a un sistema. Donde lo significativo puede ser medido por el costo del cambio. Booch) (Grady Booch) Material académico preparado por Marta 6 Silvia Tabares B. UdeM
  • 7. Arquitectura de Software Otras Definiciones (1/4) 1. Es la organización de un sistema en términos de sus componentes de software, incluyendo los subsistemas y las relaciones e interacciones entre ellos, y los principios que guían el diseño de ese sistema de software. 2. Es una forma coherente de establecer los patrones y abstracciones para que los analistas y desarrolladores trabajen en una línea común hacia la implementación del sistema de información. 3. Una arquitectura sigue un patrón o un conjunto de patrones que proporcionan un marco de referencia para lograr la funcional requerida por el cliente, y otros objetivos como la mantenibilidad, auditabilidad, flexibilidad e interacción con otros sistemas de información. Material académico preparado por Marta 7 Silvia Tabares B. UdeM
  • 8. Arquitectura de Software Otras Definiciones (2/4) • Es un esquema de trabajo que determina la interacción de diferentes componentes del sistema. • Emerge como una parte crucial del proceso de análisis diseño (Diseño de alto nivel (decisiones tempranas de diseño) • Es el resultado de un conjunto de decisiones técnicas y de negocio. • Es la estructura general del sistema. • Es un conjunto de componentes, conectores y restricciones de un programa o sistema, sus interrelaciones, y los principios que gobiernan su diseño. Material académico preparado por Marta 8 Silvia Tabares B. UdeM
  • 9. Arquitectura de Software Otras Definiciones (3/4) • La arquitectura de software es una forma de representar sistemas complejos mediante el uso de la abstracción. • Es la estructura de sistemas o sistema de estructuras que consisten en elementos, sus propiedades externamente visibles y la relación entre ellos" – «Propiedades externamente visibles: qué es lo que debe saber/suponer un componente sobre otro» • Es la organización fundamental de un sistema incorporada en sus componentes, en sus relaciones mutuas y el entorno, y los principios que guían su diseño y evolución (IEEE Standard 1471-2000). Material académico preparado por Marta 9 Silvia Tabares B. UdeM
  • 10. Arquitecturas de software Otras Definiciones (4/4) • La arquitectura de software es importante como disciplina debido a que los sistemas de software crecen de forma tal que resulta muy complicado que sean diseñados, especificados y entendidos por un solo individuo. • Uno de los aspectos que motivan el estudio en este campo es el factor humano, en términos de aspectos como inspecciones de diseño, comunicación a alto nivel entre los miembros del equipo de desarrollo, reutilización de componentes y comparación a alto nivel de diseños alternativos (Kazman, 1996). Material Preparado por MARTA SILVIA TABARES B. UdeM
  • 11. Arquitectura de Software Terminología: • Sistema: conjunto de componentes que cumplen una función o un conjunto de funciones específicas. • Descripción de la arquitectura: es un conjunto de productos que documentan la arquitectura. • Perspectiva de la arquitectura: es una representación desde una perspectiva específica de un determinado sistema o de una parte del mismo. • Punto de vista arquitectónico: es una plantilla que describe la forma de crear y utilizar una perspectiva de la arquitectura. Un punto de vista incluye un nombre, socios, problemas más abordados por el punto de vista y el modelado y las convenciones analíticas. Material académico preparado por Marta 11 Silvia Tabares B. UdeM
  • 12. Beneficios de una Arquitectura de Software 1. Proporciona la comunicación entre Stakeholders (participantes del proyecto) Director de la Mercadeo Usuario Final Organización del Cliente organización Mantenimiento de desarrollo Características Comportamiento, o rasgos, rendimiento, corto tiempo seguridad, para el confiabilidad, Modificabilida mercadeo, usabilidad d bajos costos Bajos Costos, Bajos tiempo de Costos, entrega, Mantener Ohhhh… pocos cambios la gente en corto empleada tiempo Arquitecto Material académico preparado por Marta 12 Silvia Tabares B. UdeM
  • 13. Beneficios de una Arquitectura de Software Influencias en la Arquitectura Stakeholders Requisitos de Arquitectura Calidad Organizaciones de Desarrollo Sistema Ambiente Técnico Arquitecto Experiencia del Arquitecto Material académico preparado por Marta 13 Silvia Tabares B. UdeM
  • 14. Beneficios de una Arquitectura de Software 2. Manifiesta las decisiones de diseño tempranamente – Define restricciones de implementación – Soporta la estructura organizacional – Inhibe o activa los atributos de calidad del sistema – Exhibe los atributos de calidad requeridos – Facilita el razonar acerca del manejo del cambio – Ayuda en la evolución del prototipado – Alcanza más exactitud en estimación de costos y agenda del proyecto Material académico preparado por Marta 14 Silvia Tabares B. UdeM
  • 15. Beneficios de una Arquitectura de Software 3. Las arquitecturas como un modelo reusable y transferible – Las líneas de productos de software comparten una arquitectura en común – Los sistemas se pueden construir usando grandes y extensos elementos de desarrollo – Menos es más: vocabulario restringido de alternativas de diseño – Una arquitectura permite desarrollo basado en plantillas (templates) – Una arquitectura puede ser la base para el entrenamiento de nuevos miembros del equipo de desarrollo Material académico preparado por Marta 15 Silvia Tabares B. UdeM
  • 16. Arquitectura 4+1 Vistas Pilippe (Philipe) Kruchten define: “Una vista es una presentación de un modelo, la cual es una descripción completa de un sistema desde una perspectiva particular”. Material Preparado por MARTA SILVIA TABARES B. UdeM
  • 17. Arquitectura 4+1 Vistas Vista Lógica Requisitos funcionales del sistema y de lo que el sistema debe de hacer, las funciones y servicios que se han definido. Enfocada a lo definido como dominio de la aplicación, lo que son las clases y objetos principales que formaran el corazón o "core" de la aplicación. Esta vista se complementa con los diagramas UML: • Diagrama de Clases • Diagrama de Paquetes Material Preparado por MARTA SILVIA TABARES B. UdeM
  • 18. Arquitectura 4+1 Vistas Vista de Despliegue o Vista de Desarrollo Mostrar básicamente como está dividido nuestro sistema de software en componentes, y muestra las dependencias entre estos componentes. Muestra los componentes físicos incluyen archivos, cabeceras, bibliotecas compartidas, módulos, ejecutables, o paquetes. Organización y las dependencias entre el conjunto de componentes, y como se comunican entre ellos. Esta vista la vamos a complementar con los diagramas UML: • Diagrama de Componentes • Diagrama de Paquetes Material Preparado por MARTA SILVIA TABARES B. UdeM
  • 19. Arquitectura 4+1 Vistas Vista de Procesos Representa los flujos de trabajo paso a paso de negocio y operacionales de los componentes que conforman el sistema. También va a mostrar algunos de los requisitos no funciónales, como son ejecución, disponibilidad, tolerancia a fallas, integridad, seguridad, confiabilidad entre otros. Esta vista la vamos a complementar con los diagramas UML: • Diagrama de Actividad Material Preparado por MARTA SILVIA TABARES B. UdeM
  • 20. Arquitectura 4+1 Vistas Vista Física Representa cómo están distribuidos los componentes entre los distintos equipos que conforman la solución incluyendo los servicios. Los elementos definidos en la vista lógica se mapean a componentes de software o de hardware. Esta vista la vamos a complementar con los diagramas UML: • Diagrama de Deployment Material Preparado por MARTA SILVIA TABARES B. UdeM
  • 21. Arquitectura 4+1 Vistas Vista +1 o Vista de Escenarios, Esta vista va a ser representada por los casos de uso, que ayudarán a unir las otras cuatro vistas. Desde un caso de uso podemos ver cómo se van ligando las otras cuatro vistas, con esto tenemos una trazabilidad de componentes, clases, equipo, paquetes, etc., para realización cada caso de uso. Esta vista la vamos a complementar con los diagramas UML: • Diagrama de Casos de Uso Material Preparado por MARTA SILVIA TABARES B. UdeM