DISEÑO DE COMPONENTES DE SOFTWARE *



Documentos relacionados
Fundamentos del diseño 3ª edición (2002)

Resumen obtenido de: Roger S. Pressman, Ingeniería de Software. Un enfoque práctico, quinta edición, Introducción al Diseño de Software

Capítulos 2 y 5: Modelación con UML y Modelo Objeto

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

Diagramas del UML. A continuación se describirán los diagramas más comunes del UML y los conceptos que representan: Diagrama de Clases

Ingeniería del Software. Diseño. Diseño en el PUD. Diseño de software. Patrones arquitectónicos. Diseño Orientado a Objetos en UML

Repetir el proceso para cada abstracción identificada hasta que el diseño este expresado en términos sencillos

Interacción Persona - Ordenador

SISTEMAS DE INFORMACIÓN I TEORÍA

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

IWG-101: Introducción a la Ingeniería. Departamento de Informática, UTFSM 1

TEMA 8: DIAGRAMA DE CLASE EN UML

Ingeniería de Software II Tema 2: Diseño

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.1 UML: Introducción

Algunas Herramientas de Apoyo al Análisis y Diseño de Software. Agustín J. González ELO329: Diseño y programación orientados a objetos

Entidad Formadora: Plan Local De Formación Convocatoria 2010

INGENIERÍA DEL SOFTWARE I Práctica 4 Interacciones

Capitulo III. Diseño del Sistema.

Curso de Java POO: Programación orientada a objetos

implantación Fig. 1. Ciclo de vida tradicional


CAPITULO 4. Requerimientos, Análisis y Diseño. El presente capítulo explica los pasos que se realizaron antes de implementar

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

Capítulo 4. Prueba de Adaptabilidad

La Necesidad de Modelar. Diseño de Software Avanzado Departamento de Informática

Diseño orientado a los objetos

Ciclo de vida y Requerimientos de software. Laboratorio de Programación

Programación orientada a

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

ANÁLISIS Y DISEÑO DE SISTEMAS DEPARTAMENTO DE CIENCIAS E INGENIERÍA DE LA COMPUTACIÓN

CAPITULO V. HERRAMIENTA CASE (Rational Rose, C++)

EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso Cuatrimestre de otoño. 17 de Enero de 2011

DIAGRAMA DE CLASES EN UML

Proceso de desarrollo del software modelo en cascada

Ejercicio Guiado de Análisis y Diseño Orientado a Objetos. Ejemplo: CAJERO AUTOMÁTICO


2.2.- Paradigmas de la POO

Guía Metodológica para el diseño de procesos de negocio

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO

GUIA PROGRAMACIÓN ORIENTADA A OBJETOS

UML. Lenguaje de Modelado Unificado

Tutorial de UML. Introducción: Objetivos: Audiencia: Contenidos:

Principios Básicos de Contabilidad Capítulo 1 Iniciando Contabilidad DacEasy DacEasy Contabilidad Versión 11

Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

El Proceso Unificado de Desarrollo de Software

UNIVERSIDAD CATOLICA DE COLOMBIA FACULTAD DE INGENIERIA DE SISTEMAS

Elementos requeridos para crearlos (ejemplo: el compilador)

Pattern Oriented Software Architecture. Whole-Part. Jamir Antonio Avila Mojica César Julio Bustacara Medina. Patrones de Software

Solución de una Intranet bajo software Open Source para el Gobierno Municipal del Cantón Bolívar [IOS-GMCB] Gobierno Municipal del Cantón Bolívar

Modelado arquitectónico con UML

INGENIERÍA DEL SOFTWARE I. Univ. Cantabria Fac. de Ciencias. Especificación de Requisitos. Práctica 2

Patrones de Diseño Orientados a Objetos 2 Parte

Ejercicios Diagramas de casos de uso

Workflows? Sí, cuántos quiere?

PROYECTOS DE INVESTIGACIÓN EN LAS AULAS DE CLASE, DE ESTUDIANTES PARA ESTUDIANTES - AQUÍ ESTOY! Y USADIR

Objetivo Las personas que realicen el curso aprenderán a:

TEMA 14. Modelos de representación de diagramas

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

Eclipse Process Framework Composer EPFC, es un editor de procesos gratuito que sirve para editar fragmentos de método, procesos o metodologías y

6.6 DISEÑO. [Proceso]

Business Process Management(BPM)

Patrones de software y refactorización de código

Curso Taller de Arquitectura de Software usando UML

Introducción a la Programación Orientada a Objetos (POO) Introducción a la Programación Orientada a Objetos (POO)

Presentación y Planificación del Proyecto: Administración de Calzado

Metodología Orientada a Objetos Clave Maestría en Sistemas Computacionales

2. Conceptos básicos Abstracción La abstracción como un proceso mental natural La abstracción en el desarrollo de software

Ingeniería de Software

TEST (8 preguntas, 0 4 puntos por pregunta correcta, puntos por error) [Marcar sólo una opción]

Capítulo 3. Análisis y Diseño

Primer avance de proyecto de software para la gestión de inscripciones en cursos

Ingeniería de Software

80294 Microsoft Dynamics CRM 2011 Customization and Configuration

PATRONES. Experto. Solución:

En un proyecto de desarrollo de software la metodología define Quién debe hacer Qué, Cuando y Como hacerlo. 6

Gestión de Configuración del Software

CAPÍTULO 5. DESARROLLO Y PRUEBAS

SIIGO WINDOWS. Parámetros Modulo de Seriales. Cartilla

KW x hora. on/off

Service Oriented Architecture

Ejemplo de desarrollo software empleando UML

Modelo alternativo de análisis: Modelo de Jacobson

Introducción. - Gráfica tomada del Artículo de José David Parra

ORGANISMO COORDINADOR DEL SISTEMA ELÉCTRICO NACIONAL INTERCONECTADO DE LA REPÚBLICA DOMINICANA

Sistema de gestión de tareas y proyectos

Diagrama de Clases. Diagrama de Clases

Escuela Politécnica Nacional I. Bernal. Iván Bernal, Ph.D. 4

Capítulo 2. Planteamiento del problema. Capítulo 2 Planteamiento del problema

CAPÍTULO I. Sistemas de Control Distribuido (SCD).

ARQUITECTURAS DE PROCESOS DE NEGOCIOS INGENIERIA DE SOFTWARE ING. MA. MARGARITA LABASTIDA ROLDÁN

CONSTRUCCIÓN DEL PROCESO ADMINISTRADOR DE PROYECTOS SEIS SIGMA Bizagi Process Modeler

Instructivo para la elaboración de un Manual Técnico

Estructuras de Control - Diagrama de Flujo

Introducción. Conceptos y principios. Introducción. Introducción. Elementos del modelo de análisis. Elementos del modelo de diseño.

PROCEDIMIENTO ESPECÍFICO. Código G Edición 0

TEMA 7: DIAGRAMAS EN UML

DISEÑO DE FUNCIONES (TRATAMIENTOS)

Transcripción:

DISEÑO DE COMPONENTES DE SOFTWARE * NOTAS DEL CURSO Ingeniería de Software I DRA. MARIA DEL PILAR GÓMEZ GIL INAOEP * Resumen del capítulo 10 de libro de [Pressman 2010] V:18-11-2008 (c) P. Gomez-Gil, INAOE. 2008-2010 1

Componente Bloque de construcción modular para software de computadora Una parte modular, entregable y reemplazable de un sistema que encapsula su implementación y expone un conjunto de interfaces según la OMG Unified Modeling Language Specification Se puede definir y usar componentes desde 3 puntos de vista: Orientado a Objetos Convencional Relacionado a procesos (c) P. Gomez-Gil, INAOE. 2008-2010 2

Punto de vista orientado a objetos Desde este punto de vista, un componente contiene un conjunto de clases que colaboran entre sí. El diseño de un componente implica añadir a la definición de clases en el análisis (dominio del problema) información para su implementación en software. (c) P. Gomez-Gil, INAOE. 2008-2010 3

Ejemplo de elaboración de un componente de diseño [Pressman 2005] (c) P. Gomez-Gil, INAOE. 2008-2010 4

Punto de vista convencional Desde este punto de vista, un componente es un elemento funcional de un programa que incluye lógica de procesamiento, estructuras de datos internas requeridas para implementar dicha lógica y una interfaz que permite que el componente sea invocado y que se le puedan pasar datos. Normalmente llamado módulo (c) P. Gomez-Gil, INAOE. 2008-2010 5

Roles de un componente convencional Componente de control: Coordina el llamado a otros componentes del dominio del problema Componente del dominio del problema: implementa una función completa o parcial que es requerida por el usuario Componente de infraestructura: responsable de las funciones que apoyan el procesamiento requerido en el dominio del problema Utilizan cartas de estructura para describir sistemas (c) P. Gomez-Gil, INAOE. 2008-2010 6

Punto de vista relacionado al proceso Reutiliza software Cuando se desarrolla la arquitectura, se escogen componentes o patrones de diseño de un catálogo, los cuales fueron creados para ser reutilizados (c) P. Gomez-Gil, INAOE. 2008-2010 7

Diseñando componentes basados en clases Hay 4 principios básicos de diseño que se pueden aplicar: Principio abierto-cerrado : Un componente debe estar abierto a extensiones pero debe estar cerrado para modificaciones. El/la diseñador(a) debe especificar el componente de manera que puede extenderse sin necesidad de hacer modificaciones internas al código. (c) P. Gomez-Gil, INAOE. 2008-2010 8

Diseñando componentes basados en clases (2) Principio de substitución de Liskov: Las subclases deben ser sustituibles por sus clases bases. Cualquier clase derivada de una clase base debe cumplir con cualquier contrato implícito de la clase base con respecto a los componentes que la usan. Un contrato es una precondición que debe ser verdadera antes de que el componente use la clase base, y una post-condición debe ser verdadera después de que el componente usa la clase base. (c) P. Gomez-Gil, INAOE. 2008-2010 9

Diseñando componentes basados en clases (3) Principio de dependencia de inversión: Se debe depender de abstracciones, no de eventos concretos Principio de segregación de interfaces: Varias interfaces dependientes del cliente son mejor que una interfaz de propósito general (c) P. Gomez-Gil, INAOE. 2008-2010 10

Principios de empaquetado Principio de equivalencia de liberación y reuso: La granularidad del reuso es la granularidad de liberación. Agrupar clases reusables en paquetes que se puedan administrar y controlar cuando una nueva versión se genere. Principio de agrupamiento común: Las clases que cambian al mismo tiempo deben agruparse Principio de reuso común: Las clases que no se reusan al mismo tiempo no deben agruparse (c) P. Gomez-Gil, INAOE. 2008-2010 11

Guías de diseño Establecer convenciones para poner nombres Utilice notación de interfaces siempre que pueda, dibújelas en el lazo izquierdo de los diagramas y solo las que sean relevantes Modele las dependencias de izquierda a derecha y la herencia de abajo (clase derivada) hacia arriba (clase base) (c) P. Gomez-Gil, INAOE. 2008-2010 12

Cohesión y acoplamiento La cohesión implica que un componente o clase encapsula solo atributos y operaciones que están altamente relacionados entre ellas y con la clase. Se busca la máxima cohesión en una clase Acoplamiento es la medida cualitativa del grado en que una clase está conectada con otra. Se busca el mínimo acoplamiento entre clases (c) P. Gomez-Gil, INAOE. 2008-2010 13

Pasos para diseño de componentes 1. Identifique todas las clases de diseño que correspondan al dominio del problema 2. Identifique todas las clases de diseño que correspondan al dominio de la infraestructura (GUI, sistemas operativos, administración de datos etc.) 3. Elabore todas las clases que no provienen de clases reusadas a) Especifique detalles de los mensajes entre clases que colaboran b) Identifique las interfaces de cada componente c) Elabore atributos y defina tipos de datos y estructuras de datos requeridas para implementarlas d) Describa el flujo de procesamiento de cada componente en detalle (c) P. Gomez-Gil, INAOE. 2008-2010 14

Pasos para diseño de componentes (2) 4. Describa fuentes de datos persistentes (bases de datos y archivos) e identifique las clases requeridas para manipularlos 5. Desarrolle y elabore representaciones del comportamiento de una clase o componente (diagramas de estados) 6. Elabore diagramas de liberación (deployment) para dar detalles adicionales de implementación 7. Revise cada representación de diseño de los componentes y siempre considere alternativas (c) P. Gomez-Gil, INAOE. 2008-2010 15

Ejemplo de un diagrama de estados [Pressman 2005] (c) P. Gomez-Gil, INAOE. 2008-2010 16

Diseñando componentes convencionales Hay 3 estructuras básicas: Secuencia, selección e iteración Los diagramas de flujo son los predecesores de los diagramas de actividades (ver figura 11.10) Las tablas de decisión se utilizan para definir procesos con una gran cantidad de condiciones y acciones Los lenguajes de diseño de programas (PDL) también llamados ingles estructurado o pseudocódigo permiten definir el detalle de un algoritmo (c) P. Gomez-Gil, INAOE. 2008-2010 17

Ejemplo de una tabla de decisión [Pressman 2005] (c) P. Gomez-Gil, INAOE. 2008-2010 18

Ejemplo de un pseudocódigo [Pressman 2005] (c) P. Gomez-Gil, INAOE. 2008-2010 19