Ingenieria de software - Unidad 3 arquitecturas de software

1,971 views 28 slides Sep 18, 2016
Slide 1
Slide 1 of 28
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28

About This Presentation

Ingenieria de software - Unidad 3 arquitecturas de software


Slide Content

Ingeniería en Sistemas Computacionales Fundamentos de Ingeniería de Software Unidad III: Arquitecturas de Software Este material está desarrollado para la asignatura Fundamentos de Ingeniería de Software, de la carrera de Ingeniería en Sistemas Computacionales, plan de estudios ISIC-2010-224 FUNDAMENTOS DE INGENIERÍA DE SOFTWARE

Competencia: Identificar y establecer los lineamientos formales para el desarrollo de aplicaciones robustas , tomando decisiones técnicas relacionadas con la arquitectura de la aplicación como guía para el diseño de la misma. FUNDAMENTOS DE INGENIERÍA DE SOFTWARE

Diseño en el contexto de la ingeniería de software El diseño del software siempre debe empezar con en el análisis de los datos, pues son los fundamentos de todos los demás elementos del diseño. FUNDAMENTOS DE INGENIERÍA DE SOFTWARE

Lineamientos y atributos de la calidad del software Características que funcionan como guía para un buen diseño: FUNDAMENTOS DE INGENIERÍA DE SOFTWARE

Lineamientos de Calidad FUNDAMENTOS DE INGENIERÍA DE SOFTWARE

Atributos de la Calidad FUNDAMENTOS DE INGENIERÍA DE SOFTWARE

Conceptos de diseño Abstracción: Es uno de los modos fundamentales con los que los humanos luchamos con la complejidad. Arquitectura: Es el producto del trabajo de desarrollo que tiene la rentabilidad más alta para una inversión en cuanto a calidad, secuencia de actividad y costo. Patrones: Describe un problema que ocurre una y otra vez en nuestro ambiente, por lo que describe el núcleo de la solución de ese problema, en forma tal que puede usarse ésta un millos de veces sin repetir lo mismo ni una sola vez . FUNDAMENTOS DE INGENIERÍA DE SOFTWARE

División de problemas: Cualquier problema complejo puede manejarse con mas facilidad si se subdivide. Modularidad: Es la manifestación mas común de la división de problemas, cada una de las cuales debe ser tan independiente como sea posible de la aplicación en sí y de las restantes partes . Ocultamiento de la Información: Es esconder los detalles de las estructuras de datos y el procesamiento tras una interfaz de modulo. Rediseño: Proceso de cambiar un sistema de software en forma tal que no se altera el comportamiento externo del código (diseño), pero si mejora la estructura interna . FUNDAMENTOS DE INGENIERÍA DE SOFTWARE

Definición de Arquitectura de Software Una arquitectura software consiste en un conjunto de patrones y abstracciones coherentes que proporcionan el marco de referencia necesario para guiar la construcción del software para un sistema de información. FUNDAMENTOS DE INGENIERÍA DE SOFTWARE

Importancia de la Arquitectura FUNDAMENTOS DE INGENIERÍA DE SOFTWARE

Géneros Arquitectónicos Inteligencia artificial Comerciales y no lucrativos Comunicaciones Contenido de autor Dispositivos Entretenimiento y deportes Financieros Juegos Gobierno Industrial Legal Médicos Militares Sistemas Operativos Plataformas Científicos Herramientas Transporte Utilidades FUNDAMENTOS DE INGENIERÍA DE SOFTWARE

Estilos arquitectónicos Son una transformación que se impone al diseño de todo el sistema. El objetivo es establecer una estructura para todos los componentes del sistema. FUNDAMENTOS DE INGENIERÍA DE SOFTWARE

Taxonomía de estilos de arquitectura Arquitecturas: Centradas en los datos De flujo de datos D e llamar y regresar En capas FUNDAMENTOS DE INGENIERÍA DE SOFTWARE

Arquitectura centrada en datos FUNDAMENTOS DE INGENIERÍA DE SOFTWARE

Ejemplo FUNDAMENTOS DE INGENIERÍA DE SOFTWARE

Arquitectura de flujo de datos FUNDAMENTOS DE INGENIERÍA DE SOFTWARE

Ejemplo FUNDAMENTOS DE INGENIERÍA DE SOFTWARE

Arquitectura de llamar y regresar Permite a los diseñadores de software conseguir  estructuras relativamente fáciles de modificar y escalar . Podemos encontrar diferentes estilos dentro de este tipo : Programa principal/subprograma Descompone las funciones en una jerarquía de control donde el programa principal invoca a programas subordinados los cual esa su vez invocan a otros . Llamada a procedimiento remoto . Los componentes de la arquitectura son distribuidos entre diferentes ordenadores de la red. FUNDAMENTOS DE INGENIERÍA DE SOFTWARE

Ejemplo FUNDAMENTOS DE INGENIERÍA DE SOFTWARE

Arquitectura Orientada a Objetos FUNDAMENTOS DE INGENIERÍA DE SOFTWARE

Arquitectura en capas Se definen como un conjunto de niveles o capas cada nivel interno que se atraviesa se aproxima mas al nivel del conjunto de instrucciones maquina. Sistemas en capas puros. Cada capa solo puede comunicarse con las vecinas. Esta solución aunque menos eficiente facilita la portabilidad en los diseños. FUNDAMENTOS DE INGENIERÍA DE SOFTWARE

Ejemplo FUNDAMENTOS DE INGENIERÍA DE SOFTWARE

Diseño arquitectónico FUNDAMENTOS DE INGENIERÍA DE SOFTWARE

Representación del sistema en el contexto El contexto arquitectónico representa la manera en la que el software interactúa con las entidades externas a sus fronteras. (fig. 9.6) Arquetipos Son bloques constructivos de un diseño arquitectónico. Sirven de base para la clasificación y establece caridad. FUNDAMENTOS DE INGENIERÍA DE SOFTWARE

Método de la negociación para analizar la arquitectura FUNDAMENTOS DE INGENIERÍA DE SOFTWARE

Lenguaje de descripción arquitectónica (LDA) FUNDAMENTOS DE INGENIERÍA DE SOFTWARE

Mapeo de la Arquitectura con el uso del flujo de datos. Mapeo de transformación FUNDAMENTOS DE INGENIERÍA DE SOFTWARE

Bibliografía Pressman , R.S. Ingeniería del Software un Enfoque Práctico. McGraw-Hill. Madrid, España. 2008. Kendall E. K., Análisis y Diseño de sistemas. 1ª. Edición. Prentice Hall. México. 2005. FUNDAMENTOS DE INGENIERÍA DE SOFTWARE