Diseño y Arquitectura sobre productos de software

Slides:



Advertisements
Presentaciones similares
EL PROCESO DE DESARROLLO DEL SOFTWARE
Advertisements

INGENIERÍA DE SOFTWARE Introducción Arquitectura de Software
Fundamentos de Diseño de Software INFT.1
ANÁLISIS DE REQUERIMIENTOS
FUNDAMENTOS DE LAS PRUEBAS DEL SOFTWARE
Carlos Rojas Kramer Universidad Cristóbal Colón
Fundamentos de la Gestión de Proyectos
Fundamentos de Ingeniería de Software
Modelos de Proceso del Software
CONCEPTOS Y PRINCIPIOS DE DISEÑO
CICLO DE VIDA DE UN PROYECTO DE SOFTWARE
Desarrollo de Software Basado en Componentes
INSTITUTO TECNOLÓGICO SUPERIO DE LIBRES
M.S.C. Ivette Hernández Dávila
HERRAMIENTAS CASE.
Contexto: Aplicación gráfica.  Siempre que se piensa en separar la funcionalidad de una aplicación de su interacción con el usuario, bien sea una aplicación.
Laura Patricia Pinto Prieto Ingeniera de sistemas.
Diseño del Software Diseño de datos Diseño arquitectónico
Ingeniería de Software
Arquitectura de una aplicación
Ingeniería de Software Orientado a Objetos
DISEÑO DE SOFTWARE 1ª. Parte
Fundamentos de programación
Diseño e Implementación
Ingenieria de software
Ciclo de Vida del Software Paradigmas de Desarrollo
Desarrollo de aplicaciones para ambientes distribuidos
INTRODUCCIÓN. Motivación “Procesamiento distribuido significa dividir una aplicación en tareas y poner cada tarea en la plataforma donde pueda ser manejada.
Planificación, Reingeniería y Plan de Proyecto
Ingeniería en Sistemas de Información
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
Ximena Romano – Doris Correa
Tema 1: Introducción a la Ingeniería de Software
Arquitecturas de Sistemas Interactivos: Introducción
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
VISIÓN GENERAL DE LA IS Con independencia del modelo de proceso hay tres fases genéricas: Fase de definición Fase de desarrollo Fase de mantenimiento Cada.
“condición que necesita el usuario para resolver un problema o conseguir un objetivo determinado”. Los requisitos de un sistema son los aspectos que el.
Términos y Conceptos Básicos
Diseño Arquitectonico
Modelo de 3 capas.
Ibáñez Montiel Eduardo Víctor Martínez Antonio
INGENIERIA DE SOFTWARE
Alexander Aristizabal Ángelo flores herrera
Diseño de Sistemas.
Diseño Arquitectónico
INSTALACIÓN Y ADMINISTRACIÓN DE REDES DE ÁREA LOCAL
Diseño del Software e Ingeniería del Software
TIPOS DE AUDITORÍAS EN SISTEMAS DE INFORMACIÓN
Elaborado por: Mayoral Cruz Matilde Morales Espinoza Anllhins
Actividades en el Proceso de desarrollo de Software
BASE DE DATOS DISTRIBUIDAS
Alumno: Gerardo Mario Valdés Ortega Matricula: Asignatura: Análisis y diseño de Sistemas Computacionales Cuatrimestre: Tercero Carrera: Licenciatura.
Por: Jaime Enrique Melendez Monreal Código: INGENIERÍA DE SOFTWARE.
Preocupaciones del Analista Programador & Usuarios
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Diseño Arquitectónico.
 es el conjunto de conocimientos y técnicas científicas aplicadas al desarrollo, implementación, mantenimiento y perfeccionamiento de estructuras (tanto.
Proceso de desarrollo de Software
Arquitectura de una aplicación Arquitectur a: desarrolla un plan general del sistema, asegurando que las necesidades de los usuarios sean atendidas. Ingeniería.
Capas de ingeniería del Software. Rosendo Antonio Manuel Ingeniería en Sistemas Computacionales.
República Bolivariana de Venezuela Universidad Nacional Experimental Politécnica de la Fuerza Armada (UNEFA) Carrera: Ingeniería de Sistemas Cátedra: Análisis.
Las fases del ciclo de la vida de desarrollo de sistemas
Maestría en Gerencia en Tecnología de la Información Cátedra Ingeniería de Software Profesora: Mary Carmen Milano. Integrantes: Rosa Arellano Osbaldo Goitia.
Servicios Web Conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre.
Modelo de procesos de software
EL RETO DE LOS SISTEMAS DE INFORMACION Msc. Lic. Mirian Vega 1.
CICLO DE VIDA DE UN SOFTWARE. Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados, que forman parte de.
Prof. Manuel B. Sánchez. Un paradigma de programación representa un enfoque particular o filosofía para la construcción del software. No es mejor uno.
VERIFICACIÓN Y VALIDACIÓN DE SISTEMAS 3.10 Fase de manejo de requerimientos 4.1 Modelado de pruebas en UML Ponente: ing. Alejandro tapia vazquez.
Profesor: Jesús Chaparro Bachilleres: Perez, emibeliz Prada, Rainer Villahermosa, José Abril 2014.
Transcripción de la presentación:

Diseño y Arquitectura sobre productos de software Integrantes: Ibáñez Montiel Sergio Ibáñez Montiel Eduardo Manzano Cuevas Erick Miranda Ortega Héctor Víctor Martínez Antonio Pérez Noriega Aarón

Breve   historia El diseño del software se encuentra en el núcleo técnico de la ingeniería del software y se aplica independientemente del modelo de diseño de software que se utilice. Una vez que se analizan y especifican los requisitos del software, el diseño del software es la primera de las tres actividades técnicas -diseño, generación de código y pruebas- que se requieren para construir y verificar el software. Históricamente, las arquitecturas han estado implícitas –bien como accidentes en la implementación, bien como sistemas legados del pasado-. Los buenos desarrolladores de software han adoptado, a menudo, uno o varios patrones arquitectónicos como estrategias de organización del sistema, pero utilizaban estos patrones de modo informal y no tenían ningún interés en hacerlos explícitos en el sistema resultante.

La arquitectura de software de un sistema de programa o computación es la estructura de las estructuras del sistema, la cual comprende los componentes del software, las propiedades de esos componentes visibles externamente, y las relaciones entre ellos. La arquitectura no es el software operacional. Más bien, es la representación que capacita al ingeniero del software para: (1) analizar la efectividad del diseño para la consecución de los requisitos fijados, (2) considerar las alternativas arquitectónicas en una etapa en la cual hacer cambios en el diseño es relativamente fácil, y (3) reducir los riesgos asociados a la construcción del software.

La idea básica: De Ensamblaje de partes de software previamente elaboradas. Inspirada en los procesos producción de sistemas físicos. Producción de aviones, vehículos, computadores, aparatos electrónicos, etc. Fundamentada en la Reutilización de Software *Asume la existencia de una industria de partes

Definicion La Arquitectura del Software es el diseño de más alto nivel de la estructura de un sistema.    Una Arquitectura de Software, también denominada Arquitectura lógica, 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.  La Arquitectura de software establece los fundamentos para que analistas, diseñadores, programadores, etc. trabajen en una línea común que permita alcanzar los objetivos del sistema de información, cubriendo todas las necesidades.  Define, de manera abstracta, los componentes que llevan a cabo alguna tarea de computación, sus interfaces y la comunicación entre ellos. Toda arquitectura debe ser implementable en una arquitectura física, que consiste simplemente en determinar qué computadora tendrá asignada cada tarea.

Arquitecturas más comunes:. Descomposición Modular Arquitecturas más comunes:   * Descomposición Modular    * Arquitecturas de Dominio Especifico    * Diseño Software Arquitectura Multiprocesador    * Diseño Software Arquitectura Cliente Servidor    * Diseño Software Distribuido    * Diseño Software Tiempo Real

DESCOMPOSICION MODULAR El diseño modular es una metodología de desarrollo de programas complejos, que utiliza la filosofía TOP-DOWN, conocida también como diseño descendente o refinamiento por pasos sucesivos; o comúnmente conocido por los programadores como “Divide y Vencerás”; puesto que enfrenta un problema desde lo abstracto (TOP) hacia lo particular (DOWN). Esta técnica consiste en dividir el problema en un conjunto de subproblemas, y estos a su vez en otros de mayor facilidad de trabajo; generando los Módulos Funcionales.

ARQUITECTURAS DE DOMINIO ESPECÍFICO El reto para el diseño es diseñar el software y hardware para proporcionar características deseables a los sistemas distribuidos y, al mismo tiempo, minimizar los problemas propios a estos sistemas. Es necesario comprender las ventajas y desventajas de las diferentes arquitecturas de sistemas distribuidos. Aquí se tratan dos tipos genéricos de arquitecturas de sistemas distribuidos: Arquitectura cliente-servidor. En este caso el sistema puede ser visto como un conjunto de servicios que se proporcionan a los clientes que hacen uso de dichos servicios. Los servidores y los clientes se tratan de forma diferente en estos sistemas.

DISEÑO DE SOFTWARE DISTRIBUIDO Sistemas cuyos componentes hardware y software, que están en ordenadores conectados en red, se comunican y coordinan sus acciones mediante el paso de mensajes, para el logro de un objetivo. Se establece la comunicación mediante un protocolo prefijado por un esquema cliente-servidor. Características: • Concurrencia.- Esta característica de los sistemas distribuidos permite que los recursosdisponibles en la red puedan ser utilizados simultáneamente por los usuarios y/o agentes que interactúan en la red. • Carencia de reloj global.- Las coordinaciones para la transferencia de mensajes entre los diferentes componentes para la realización de una tarea, no tienen una temporización general, esta más bien distribuida a los componentes.

Fallos independientes de los componentes Fallos independientes de los componentes.- Cada componente del sistemapuede fallar independientemente, con lo cual los demás pueden continuar ejecutando sus acciones. Esto permite el logro de las tareas con mayor efectividad, pues el sistema en su conjunto continua trabajando. Evolución: Procesamiento central (Host).- Uno de los primeros modelos de ordenadores interconectados, llamados centralizados, donde todo el procesamiento de la organización se llevaba a cabo en una sola computadora, normalmente un Mainframe, y los usuarios empleaban sencillos ordenadores personales. Los problemas de este modelo son: • Cuando la carga de procesamiento aumentaba se tenía que cambiar el hardware del Mainframe, lo cual es más costoso que añadir más computadores personales clientes o servidores que aumenten las capacidades. • El otro problema que surgió son las modernas interfases gráficas de usuario, las cuales podían conllevar a un gran aumento de tráfico en los medios de comunicación y por consiguiente podían colapsar.

DISEÑO DE SOFTWARE DE TIEMPO REAL El software de tiempo real esta muy acoplado con el mundo externo, esto es, el software de tiempo real debe responder al ámbito del problema en un tiempo dictado por el ámbito del problema. Debido a que el software de tiempo real debe operar bajo restricciones de rendimiento muy rigurosas, el diseño del software esta conducido frecuentemente, tanto por la arquitectura del hardware como por la del software, por las características del sistema operativo, por los requisitos de la aplicación y tanto por los extras del lenguaje de programación como prospectos de diseño. .

Beneficios *La entrega de productos de software de una manera *más rápida, *económica y *con una mejor calidad *Las LPS producen mejoras en: *Tiempo de entrega del producto (time to market) *Costos de ingeniería *Tamaño del portafolio de productos *Reducción de las tasas de defectos *Calidad de los productos *Beneficios tácticos y estratégicos (Krueger, 2006): *Beneficios tácticos de ingeniería: *Reducción en el tiempo promedio de creación y entrega de nuevos productos *Reducción en el número promedio de defectos por producto *Reducción en el esfuerzo promedio requerido para desarrollar y mantener los productos *Reducción en el costo promedio de producción de los productos *Incremento en el número total de productos que pueden ser efectivamente desplegados y mantenidos