Seminario de Arquitectura de Software

Slides:



Advertisements
Presentaciones similares
Departamento de Lenguajes y Sistemas Informáticos escuela técnica superior de ingeniería informática Extendiendo NDT para la catalogación de Requisitos.
Advertisements

ANALISIS DE FALLA Y CRITICIDAD
Lenguajes de programación Web Juan Felipe Muñoz Fernández.
Modelado de sistemas software: Introducción. Modelado de... Sistemas... Sistemas web Sistemas de control/tiempo real Familias de sistemas Variabilidad.
Principios de la Ingeniería de Software Principio s Metodologías Herramientas Técnicas Cada estrato se basa en los inferiores y es más susceptible a cambios.
1 CAPTAR LO ESENCIAL Y PREPARAR EL DIAGNÓSTICO Los profesores como Diagnosticadores de Necesidades de Formación en las Empresas 4.- CRITERIOS DE ELECCIÓN.
INGENIERÍA INDUSTRIAL. ¿QUE ES INGENIERÍA INDUSTRIAL ?  La Ingeniería Industrial es por definición la rama de las ingenierías encargada del análisis,
DIRECCIÓN NACIONAL DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN – DNTIC´S.
Programación INSTITUTO EVANGELICO LUZ Y VERDAD Nombre: Karoline Cañas Profesor: Moisés Bados Director: Armando Santos.
MANUALES DE PROCEDIMIENTOS ¿¿Que son los manuales ?? Manuales de procedimientos.
CAPACITACIÓN METODOLOGÍA. Objetivos Capacitación Básica.
Análisis y Especificación de Requisitos
wShifts – Gestión de Turnos de Trabajo
TESIS DE GRADO DESARROLLO DEL SISTEMA WEB PARA LA ADMINISTRACIÓN DE LAS ACTIVIDADES ACADÉMICAS DE ALUMNOS, PROFESORES Y RESPONSABLES DE LOS DEPARTAMENTOS.
Desarrollo de App Wilson Chávez.
Solución de problemas y toma de decisiones administrativas
Mejores Prácticas en Proyectos de Desarrollo de Software
Tema 4: Ingeniería del Software
Proceso para el desarrollo de software
Proyecto de Software. t07
Fundamentos de programación
Proyecto de Software. Clase 06
Proceso de Desarrollo de SW
introducción Ingeniería de software
INTRODUCCIÓN Elmasri: Pág
Cualidades del Software
ANÁLISIS DE RIESGOS DE SISTEMAS DE INFORMACIÓN
Software de aplicación de escritorio y web
EJEMPLO: Portal de Venta de una Multitienda
ENFOQUES DE CONSERVACIÓN
Alianza Cooperativa Internacional
Seminario de Arquitectura de Software
Construyendo soluciones Web con SIU-Toba
Ciclo de Vida del Sistema
Fundamentos del computador
NIA 300 AL 399 PLANEACION MARIA FERNANDA BARBOSA
Las herramientas Case Julian madrigal.
¡hola! mi nombre es: Marlenne Galicia Diaz
Diagramas del modelo uml
Nuevo sistema de Gestión de Titulación
Especificación de requerimientos por: Sonia Cristina Gamboa Sarmiento
Proceso Unificado de Desarrollo de Software
Los sistemas distribuidos y su middleware asociado deben proporcionar soluciones generales para lograr la protección de características indeseables a las.
CARACTERISTICAS GENERALES DE LA NORMA ISO
UNIVERSIDAD TECNOLÓGICA EMILIANO ZAPATA
Universidad Rafael Landívar
NOMBRE DE LA ASIGNATURA: VERIFICACIÓN Y VALIDACIÓN DEL SOFTWARE
Proceso de Desarrollo de SW
Diferencias programador vs Ingeniero de software
MODELO ADDIE. MODELO ADDIE El modelo ADDIE es un proceso de diseño Instruccional interactivo, en donde los resultados de la evaluación formativa de.
PROCESO UNIFICADO DE DESARROLLO R.U.P.
Equipo 2 Arellano Catalán Marco A. Damián Contreras Ma. Guadalupe
CURSO PROGRAMACIÓN BÁSICA SEMANA 2
Modelo de la cascada (cont.)
Aplicación de PSP (Personal Software Process)
Elaboración de los documentos
Desarrollo de sitios web
Tema 2 Sistemas de información y la organización
Requisitos Ing. Maribel Valenzuela Beltrán 1.
Formación de un equipo encargado del HACCP CAPÍTULO 3 Mod
Instituto Tecnológico de Zacatecas
DISEÑO DE SOFTWARE 1ª. Parte
Metodologías de Desarrollo Web
Arquitectura de una aplicación
Poder Expresivo de UML 2.0 para especificar arquitecturas de Software
MAPEO DE NEGOCIO.
Canvas de diseño Challenge Based Learning
MAPEO DE NEGOCIO.
Canvas de diseño Aprendizaje orientado a proyectos
Gestión de Proyectos Informáticos (GPI) ISW
Transcripción de la presentación:

Seminario de Arquitectura de Software Otoño 2008 Profesor: Cecilia Bastarrica cecilia@dcc.uchile.cl Auxiliar: Daniel Perovich dperovic@dcc.uchile.cl

Distribución del Costo del Software Arquitectura de Software - Introducción Distribución del Costo del Software Mantenimiento Diseño Programación Test

Costos de Mantenimiento del Software Arquitectura de Software - Introducción Costos de Mantenimiento del Software Test y depuración Implementar cambios Rastrear lógica Definir Analizar documentos Actualizar Más del 50% del tiempo del programador encargado de mantenimiento está dedicado a comprender el código y la documentación del sistema.

Arquitectura en el proceso de desarrollo Arquitectura de Software - Introducción Arquitectura en el proceso de desarrollo Requisitos Arquitectura Diseño Reducir los costos de mantenimiento directa e indirectamente. Aclarar intenciones. Hacer explícitas las decisiones. Permitir análisis a nivel de sistemas. Diseño Detallado Programación Test Mantenimiento

Arquitectura de Software Arquitectura de Software - Introducción Arquitectura de Software La arquitectura de un programa o sistema computacional es la estructura o estructuras de ese sistema, y comprende las componentes del software, sus propiedades externamente visibles, y las relaciones entre las mismas.

Arquitectura de Software Arquitectura de Software - Introducción Arquitectura de Software La arquitectura de software es un nivel de diseño diferente de los algoritmos y las estructuras de datos: el diseño y la especificación de la estructura del sistema como un todo es entonces un nuevo problema. Los elementos estructurales incluyen: la organización y el control globales, los protocolos de comunicación, la distribución física, la composición de elementos de diseño, la escalabilidad y el rendimiento, y la elección entre distintas alternativas de diseño.

Arquitectura de Software es: Arquitectura de Software - Introducción Arquitectura de Software es: Un diseño de alto nivel. La estructura del sistema. Las componentes de un programa o sistema, sus relaciones, y principios que gobiernan su diseño y su evolución en el tiempo. Componentes y conectores. Componentes, conectores, configuración y restricciones. No hay una definición única

¿Para qué la Arquitectura de Software? Arquitectura de Software - Introducción ¿Para qué la Arquitectura de Software? Las personas necesitan pensar, diseñar, codificar, y comunicarse en términos de grandes bloques conceptuales. Abstracción Es necesario escapar de los desarrollos excesivamente personalizados y estandarizar el diseño. Reutilización de patrones de arquitectura Es necesario diseñar sistemas de larga vida. Reutilización de componentes particulares

Arquitectura de Software - Introducción ¿Para qué más? Productividad en el desarrollo: actualmente solamente se reutiliza el código y las estructuras de datos. Atacar otros problemas del ciclo de vida del software: Modificabilidad, portabilidad, escalabilidad, seguridad. A medida que el tamaño del sistema crece, las soluciones a estos problemas radican más en la arquitectura. Tener un lenguaje común para diseñadores, desarrolladores y usuarios.

Ciclo de Vida de la Arquitectura Arquitectura de Software - Introducción Ciclo de Vida de la Arquitectura Los objetivos de la organización influencian los requisitos. Los requisitos nos llevan a un diseño de arquitectura. La arquitectura da como resultado un sistema. Los sistemas construidos sugieren nuevas oportunidades para la organización y nuevos requisitos.

Influencias sobre el Arquitecto de Software Arquitectura de Software - Introducción Influencias sobre el Arquitecto de Software Administrador de la organización desarrolladora Bajos costos, mantener a la gente ocupada Encargado de Marketing Elementos atractivos, corto tiempo para poner en el mercado, bajos costos, comparable con productos de la competencia Usuario Final Comportamiento apropiado, performance, seguridad, confiabilidad Organización encargada del mantenimiento Mantenibilidad Cliente Bajos costos, entrega a tiempo, sin cambios frecuentes Arquitecto

Influencias sobre la Arquitectura Arquitectura de Software - Introducción Influencias sobre la Arquitectura Influencias del Arquitecto Cliente y usuario final Organización desarrolladora Ambiente técnico Experiencia del arquitecto Requisitos (cualidades) Arquitecto Arquitectura Sistema

Etapas de Desarrollo Basado en Arquitectura Arquitectura de Software - Introducción Etapas de Desarrollo Basado en Arquitectura Hacer un caso de negocio para el sistema Comprender los requisitos Crear o seleccionar una arquitectura Representar y comunicar la arquitectura Analizar o evaluar la arquitectura Implementar el sistema basado en la arquitectura Asegurar que la implementación se ajusta a la arquitectura

¿Cómo se hace una buena arquitectura? Arquitectura de Software - Introducción ¿Cómo se hace una buena arquitectura? La arquitectura debe ser producida por un solo arquitecto o un grupo pequeño. El arquitecto debe disponer de los requistos técnicos del sistema y una lista priorizada de propiedades cualitativas que se espera que el software satisfaga. La arquitectura debe estar bien documentada usando una notación acordada que todos los interesados puedan comprender con poco esfuerzo. Se debe facilitar la arquitectura a los interesados, los cuales deben estar involucrados activamente en su revisión.

¿Cómo se hace una buena arquitectura? Arquitectura de Software - Introducción ¿Cómo se hace una buena arquitectura? La arquitectura debe analizarse para comprobar sus medidas cuantitativas y propiedades cualitativas antes de que sea muy tarde para cambiarla. La arquitectura debe permitir crear un esqueleto de sistema donde se reflejen todas las vías de comunicación pero con mínima funcionalidad. El diseño de la arquitectura debe dar como resultado un conjunto específico de áreas críticas de consumo de recursos, cuya resolución estará claramente documentada y mantenida.

¿Cómo es una buena arquitectura? Arquitectura de Software - Introducción ¿Cómo es una buena arquitectura? Los módulos deben diseñarse con el principio de separación de intereses distintos grupos de trabajo pueden desarrollarlos independientemente La información oculta incluirá todo aquello dependiente de la infraestructura tecnológica. Cada módulo tendrá una interfaz definida que oculta a los otros módulos los aspectos cambiables. La arquitectura no debe depender de una versión particular de un producto comercial. De ser así, éste debe estar estructurado de modo que sea fácil y barato cambiarlo.

¿Cómo es una buena arquitectura? Arquitectura de Software - Introducción ¿Cómo es una buena arquitectura? Los módulos que producen y los que consumen datos deben estar separados: esto tiende a aumentar la mantenibilidad porque en general sólo una parte cambia. Cada tarea o proceso debe describirse de modo que su asignación a un procesador específico pueda ser fácilmente cambiada, aún durante su ejecución. La arquitectura debe seguir uno o unos pocos patrones de interacción: mayor comprensión, menor tiempo de desarrollo, mayor confiabilidad, mayor modificabilidad.

Importancia de la Arquitectura Arquitectura de Software - Introducción Importancia de la Arquitectura comunicación entre las personas involucradas, documentación temprana de las decisiones de diseño, restricción de la implementación, la arquitectura dicta la estructura organizacional, facilita o inhibe propiedades del sistema, permite predecir cualidades del sistema, facilita la administración de la evolución, una abstracción transferible del sistema, las líneas de productos comparten arquitectura, pueden usarse COTS, base para el entrenamiento de nuevo personal.

Arquitectura de Software - Introducción Grabadora IP Una empresa desea desarrollar un software de grabación de conversaciones sobre telefonía IP para un centro de llamados. Existen soluciones comerciales para esta funcionalidad, pero tienen altos costos de licencias. La empresa quiere hacer este desarrollo para usarlo en sus instalaciones venderlo a otras empresas Se desea que la aplicación tenga un módulo adicional para oir las conversaciones en tiempo real, eligiendo la operadora a través de una interfaz web.

Grabadora IP: Stakeholders y Cualidades Arquitectura de Software - Introducción Grabadora IP: Stakeholders y Cualidades Usuarios: operadoras Desean que la grabadora no entorpezca su labor Debe consumir pocos recursos para no constituir un cuello de botella Cliente: dueño del centro de llamadas Bajo costo y rápido desarrollo Flexible para adaptarse a distintos centros de llamados Escalable, portable Marketing: encargado de venderlo Fácil de instalar Desarrolladores Desarrollo en plataforma y tecnología conocida Mantenedores Desarrollo en plataforma y tecnología estándar

Arquitectura de Software - Introducción Grabadora IP Centro de Llamadas Red telefónica exterior Central IP Operadoras guardar sniffer