Ing. de SW Basada en Componentes

Slides:



Advertisements
Presentaciones similares
MODELOS ORIENTADOS A OBJETOS
Advertisements

Arquitecturas de administración de redes y sus submodelos
Fundamentos de Diseño de Software INFT.1
Lenguaje Unificado de Modelado
PROCESO Y MODELOS EN LA INGENIERIA DE SOFTWARE
Introducción a LAS Bases de Datos
Bases de datos distribuidas
Fundamentos de la Gestión de Proyectos
DSOO - María Eugenia Valencia
Introducción 1 Puntos Clave –La orientación a objetos representa un cambio radical en los métodos tradicionales de creación de software –Los métodos tradicionales.
Términos Básicos y Conceptos
COMPONENTIZACIÓN DE ALGORITMOS GENETICOS Y SU IMPLEMENTACIÓN EN UNA PLATAFORMA ABIERTA PARA APRENDIZAJE COMPUTACIONAL.
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno.
Evaluación de nuevas Tecnologías
1.1.2 Sistemas de información para la gestión y para la ayuda en la toma de decisiones. Los SI contribuyen activamente a la consecución de los objetivos.
Desarrollo de Software Basado en Componentes
Unified Modeling Language (Lenguaje de Modelamiento unificado)
HERRAMIENTAS CASE.
UNIDAD I Conceptos Básicos.
Propuesta de una metodología para el desarrollo de proyectos informáticos empleando la herramienta para el diseño automatizado GeneXus Autor: Dipl.-Ing.
DEPARTAMENTO DE INGENIERÍA INFORMÁTICA
DESAGREGACION PRELIMINAR DE SUB COMPETENCIAS
Ingeniería de Software
Arquitectura de una aplicación
Ingeniería de Software Orientado a Objetos
DISEÑO DE SOFTWARE 1ª. Parte
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
 Docentes ◦ Jonathan Erlich  ◦ Ariel Glikman   Organización de la materia ◦ Idesmaimonides.wikidot.com.
Las etapas de un proyecto
Ciclo de Vida del Software Paradigmas de Desarrollo
LA IMPORTANCIA DE LAS PyMEs
Unidad VI Documentación
Arquitectura Orientada a Servicios
Un sistema de gestión de bases de datos: Es un conjunto de programas que permite a los usuarios crear y mantener una base de datos. Por tanto, el SGBD.
Ingeniería de Software
Ingeniería de Requerimiento
UML 2.0 Integrantes: Diana Carolina Valencia M. Jhon Fernando Lopez T. Carlos Alberto Castillo.
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
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.
Construcción de Sistemas Colaborativos (Arquitectura y construcción)
Términos y Conceptos Básicos
SENA REGIONAL HUILA REGIONAL HUILA CENTRO DE LA INDUSTRIA LA EMPRESA Y LOS SERVICIOS Huila Elementos de sistemas de información.
Desarrollo de Software II Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Agosto - Diciembre 2008 Ing. Oswaldo Solarte Pabón.
Introducción a UML Departamento de Informática Universidad de Rancagua
Ingeniería de Requisitos
Introducción al proceso de verificación y validación.
Actividades en el Proceso de desarrollo de Software
Unidad TemáticaI. Conceptos Básicos Horas Prácticas10 Horas Teóricas8 Horas Totales18 Objetivo El alumno determinará las entradas, procesos y salidas.
Unified Modeling Language (Lenguaje de Modelamiento unificado)
Estructurar tus ideas para hacerlas realidad
Ciclo de Vida del Software
Ingeniería en Informática F UNDAMENTOS DE C OMPUTACIÓN B ACHILLERATO EN I NGENIERÍA I NFORMÁTICA L IC. C ARLOS H. G UTIÉRREZ L EÓN.
DISEÑO DE COMPONENTES Y DESARROLLO BASADO EN COMPONENTES
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.
Investigación preliminar  Entender la naturaleza del problema  Definir el alcance y las restricciones o limitaciones del sistema  Identificar los beneficios.
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.
Modelo de procesos de software
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.
Fundamentos de Ingeniería de Software
El diseño de la interfaz de usuario requiere el estudio de las personas y el conocimiento tecnológico adecuado.
Diccionario/Directorio de Datos
Presentación De UML Lenguaje estándar para escribir planos de software Se usa para visualizar, especificar, construir y documentar los artefactos de un.
Verificación y Validación del Software
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.
Entregables del Proyecto
Junio, 2013.
Transcripción de la presentación:

Ing. de SW Basada en Componentes

Índice Introducción Motivación Fundamentos de ISBC Modelo de Ensamblado de Componentes Modelo de Proceso de soporte ISBC Economía de componentes

Introducción Uno de los motivadores iniciales en los sistemas basados en componentes es la reutilización Mitigan riesgos, incrementan la calidad y a la larga se reduce el costo de desarrollo. La reutilización no es una idea nueva. Actividad central es el desarrollo de componentes En nuestros días hay una economía en torno al desarrollo componentes. Componentes Distribuidos son una evaluación de este planteamiento.

Reutilización del Software “Reutilización es una actividad, no un objeto” – Procedimiento que produce un sistema a partir de volver a utilizar algo que se desarrolló en un esfuerzo previo Realidades de la reutilización de software – Pocas organizaciones tienen un plan bien definido de reutilización de software – Hay herramientas, pero no las usamos

Reutilización del Software (Realidades) Hay pocos programas de entrenamiento sobre reutilización de software Muchos creen que es mayor el problema en ejecutarlo que el beneficio obtenido Muchas organizaciones fomentan el uso de metodologías de desarrollo que dificultan la reutilización. Pocas organizaciones promueven el desarrollo de componentes reutilizables Componentes reutilizables tienden a ser más genéricos, lo cual puede implicar menor eficiencia y/o mayor complejidad La mayoría del software es susceptible de ser ensamblado a partir de componentes reutilizables

Reutilización del Software (Realidades) cont.. Reutilización no se limita a código – Mayores beneficios por la reutilización de diseños y documentación asociada • Planes de proyecto • Estimaciones de costos • Arquitecturas - “templates”(Patrones) • Modelos de requerimientos y especificaciones • Diseños • Código fuente • Documentación técnica y de usuario • Interfaces de usuarios - GUIs • Datos

Reflexión En 1969, McIlroy reconoció la necesidad de una industria de componentes de software reutilizables, pero desde entonces, ésta ha sido una meta difícil de alcanzar. Es justo preguntarse entonces, si los beneficios de los componentes de software reutilizables son tan evidentes, ¿por qué esta práctica no ha invadido aún toda la ciencia de la computación? Grady Booch, 1993

Conceptos Básicos Componente software Unidad de composición de aplicaciones software, que posee un conjunto de interfaces y un conjunto de requisitos, y que ha de poder ser desarrollado, adquirido, incorporado al sistema y compuesto con otros componentes de forma independiente, en tiempo y espacio. Sistema basado en componentes Conjunto de mecanismos y herramientas que permiten la creación e interconexión de componentes software, junto con una colección de servicios para facilitar las labores de los componentes que residen y se ejecutan en él.

Ventajas ISBC Velocidad de adaptación antes nuevos productos y nuevas tecnologías; Reducir significativamente el tiempo para construir nuevos productos. Reducir costes. Mayor productividad de los desarrolladores, con énfasis en reusar e integrar en lugar de programar. Permitir que los desarrolladores se especialicen en el área de aplicación de la empresa. Sistemas más confiables. Sistemas más mantenibles; – un componente puede intercambiarse por otra mejor sin afectar el sistema. – un componente puede agregar una nueva funcionalidad sin afectar al resto.

Conceptos Básicos cont... Modelo de componentes Definición de la forma de sus interfaces y los mecanismos para interconectarlos (DCOM, COM, JavaBeans, Corba,.NET). Plataforma de componentes Entorno de desarrollo y de ejecución de componentes que permiten aislar la mayor parte de las dificultades conceptuales y técnicas que con lleva la construcción de aplicaciones basadas en las componentes de un modelo de componentes concreto.

Conceptos Básicos cont... Interfaz de un componente Determina las operaciones que el componente implementa como las que precisa utilizar de otros componentes durante la ejecución.. Usualmente son los atributos y métodos públicos que el componente implementa más los eventos que emite. Eventos Especifican la forma en la que el componente notifica al exterior una respuesta a un estímulo externo o bien un cambio en una condición interna. Se especifica la signatura y la condición para que se produzca, pero no cómo tratarlo.

Conceptos Básicos cont... Interoperabilidad – Capacidad de dos o más componentes para comunicarse y cooperar de forma compatible entre sí. – Interoperabilidad sintáctica: Signatura (tipos) de los argumentos. – Interoperabilidad a nivel de protocolos: Ordenes relativos de los mensajes recibidos y la sincronización entre ellos. – Interoperabilidad semántica: Las anteriores y además la funcionalidad de las operaciones. Estándares de interoperabilidad – Garantizan la interoperabilidad - Corba , JavaBeans

Características de los SBC Distribuidos Distribución – Los componentes residen en diversas máquinas integrantes de una red. Heterogeneidad – Se ejecutan en diferentes plataformas, sistemas operativos, escritos en diferentes lenguajes, diferentes desarrolladores. Independencia de la extensibilidad – Modificables y ampliables añadiendo nuevas componentes. Dinamismo – Sujetos a evolución por ampliación, desaparición, sustitución de componentes o reconfigurando las relaciones entre ellos.

Reutilización del Software Proceso de reutilización – Modelo de ensamblado de componentes integrado a modelo de desarrollo evolutivo. – Es una forma de incorporar a el desarrollo de componentes al ciclo de vida. – Es una primera aproximación de Modelo de Ensamblado de Componentes

Reutilización del Software Proceso de reutilización – Modelo de proceso • Ingeniería de Dominio • Ingeniería de Software

Ingeniería de Dominio Análisis de dominio – Definición del dominio – Categorización de sus elementos – Formular muestra representativa de aplicaciones en el dominio – Desarrollar un modelo de análisis para los objetos

Ingeniería de Dominio Identificación de componentes de software candidatos a reutilización - preguntas que ayudan en la identificación – ¿Es la funcionalidad del componente requerida en futuras implementaciones? – ¿Qué tan común es la función del componente dentro del dominio? – ¿Hay duplicidad de la función del componente dentro del dominio?

Ingeniería de Dominio ¿Depende el componente del hardware? ¿Se pueden aislar las particularidades del hardware en otro componente? ¿Se puede parametrizar un componente no reutilizable de manera que lo sea? ¿Se puede reutilizar el componente en varias implementaciones con sólo cambios menores? ¿Podría un componente no reutilizable ser descompuesto en subcomponentes reutilizables? ¿Qué tan válido sería?

Ingeniería de Dominio Características del dominio que tienen un impacto en la reutilización de software – Producto: Estabilidad de requerimientos, software concurrente, restricciones de memoria, complejidad de la interfaz, lenguaje de programación, calidad del producto – Proceso: Modelo de proceso, medio ambiente del proyecto, restricciones de calendarización y presupuesto, productividad – Personal: Motivación, educación, experiencia y entrenamiento (dominio, procesos, plataforma, lenguajes)

Construcción de Componentes Análisis y diseño para la reutilización – Abstracción – Ocultar la complejidad (hiding) – Independencia funcional – Refinamiento – Programación estructurada – Métodos orientados a objetos – Pruebas – Aseguramiento de la calidad del software – Métodos de verificación de apego a especificación

Construcción de Componentes Uso de herramientas automatizadas de gestión de repositorios Diseño para la reutilización - aspectos clave – Datos estándar (estructuras de datos globales) – Protocolos de interfaz estándar Intra-modulares Externas-técnicas Hombre-máquina – “Templates” de programas - modelo estructura

Construcción de Componentes Métodos de construcción – Lenguajes de tercera generación – Lenguajes de cuarta generación y generadores de código – Técnicas de programación visual – Etc..

Construcción de Componentes Desarrollo basado en componentes – ingredientes básicos de arquitectura – Modelo de intercambio de datos: mecanismos que permiten a usuarios y aplicaciones interactuar y transferir datos – Automatización: Herramientas, macros y scripts para facilitar la interacción entre componentes reutilizables – Almacenamiento estructurado: Documentos con datos heterogéneos como una estructura de datos única – Soporte en el modelo de objetos

Clasificación de Componentes Descripción de componentes reutilizables – Concepto: descripción de lo que hace (interfase y la semántica) – Contenido: cómo el concepto es logrado – Contexto: dominio de aplicación (características conceptuales, operacionales y de implementación) Ambiente de reutilización – BD de componentes – Library management system – Sistema de recuperación de componentes

Clasificación de Componentes Medio ambiente de reutilización – Base de datos de componentes – Sistema administrador de la biblioteca de componentes – Sistema de consulta y recuperación de componentes – Herramientas CASE Economía de la reutilización – Calidad – Productividad – Costo