Modelado arquitectónico con UML

Save this PDF as:
 WORD  PNG  TXT  JPG

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Modelado arquitectónico con UML"

Transcripción

1 Modelado arquitectónico con UML Qué es la arquitectura de software El modelo de 4+1 vistas arquitectónicas Cohesión y acoplamiento Cómo lograr una descomposición modular eficaz Criterios para la selección de una arquitectura Diagrama de componentes Noción de componente y dependencia Noción de interfaz Uso de interfaces en OO Diseño por contratos Noción de contrato Especificación formal del contrato: sintaxis y semántica Uso de pre- y post- condiciones Invariantes de clase Contratos y herencia: subcontratación 95 Arquitectura del software: definiciones Paul Clements 1996 La arquitectura del software es a grandes rasgos, una vista del sistema que incluye los componentes principales del mismo, la conducta de esos componentes según se percibe desde el resto del sistema y las formas en que los componentes interactúan y se coordinan para alcanzar la misión del sistema. Len Bass 1998 La arquitectura del software de un programa o sistema de computación es la estructura o las estructuras del sistema, que contienen componentes de software, las propiedades externamente visibles de dichos componentes y las relaciones entre ellos. IEEE Std La arquitectura del software es la organización fundamental de un sistema encarnada en sus componentes, las relaciones entre ellos y con el entorno, y los principios que orientan su diseño y evolución. 96

2 El modelo de 4+1 vistas arquitectónicas Vista lógica (conceptual) Vista de desarrollo (implementación) Práctica: capítulo 4 Vista de casos de uso Práctica: capítulo 5 Vista de proceso (ejecución) Vista física (despliegue) Vistas que no entran en la práctica 97 Características de cada vista en el modelo 4+1 Vista Lógica (conceptual) Proceso (ejecución) Desarrollo (implementación) Física (despliegue) Aspecto Modelo de información Concurrencia y sincronización Organización del software en el entorno de desarrollo Correspondencia software-hardware Stakeholders Usuarios finales Integradores del sistema Programadores Ingenieros de sistemas Requisitos Funcionales Rendimiento Disponibilidad Fiabilidad Concurrencia Distribución Seguridad Gestión del software Reuso Portabilidad Mantenibilidad Restricciones impuestas por la plataforma o el lenguaje Rendimiento Disponibilidad Fiabilidad Escalabilidad Topología Comunicaciones Notación Clases y asociaciones Procesos y comunicaciones Componentes y relaciones de uso Nodos y rutas de comunicación Proyecto Práctico de Diseño de Software 98

3 Relaciones entre las cuatro vistas minimizar dependencias nuevas clases de diseño Vista lógica (conceptual) Vista de desarrollo (implementación)? identificar clases activas Vista de proceso (ejecución) Vista física (despliegue) requisitos no funcionales Proyecto Práctico de Diseño de Software 99 Cohesión y acoplamiento 1 componente componente Alta cohesión Puente 5 6 Bajo acoplamiento Adaptado de E. Braude, Software Engineering: An Object-Oriented Perspective 100

4 Cómo lograr una buena descomposición modular A B C A D E D E F B C F Mal Bien Cómo acertar de antemano? Estilos arquitectónicos 101 Criterios para la selección de una arquitectura Criterios clásicos: Extensibilidad: facilitar la adición de nuevas caracterísiticas Hace más complejo el diseño. Aporta mayor grado de abstracción. Ejemplo: arquitectura que soporte no este juego de tablero particular, sino cualquier tipo de juego de tablero. Generalizar requiere invertir tiempo en el diseño: decidir qué tipo de extensiones pueden surgir, etc. La distinción de requisitos opcionales/deseables es útil aquí, ya que señala hacia dónde apunta el desarrollo del sistema. Modificabilidad: facilitar el cambio de requisitos. Es distinto del anterior, aunque requiera técnicas similares. Ejemplo: posibilidad de cambiar las reglas del juego. Simplicidad: hacer fácil de entender, hacer fácil de implementar. Difícil de coordinar con los dos anteriores. Eficiencia: lograr alta velocidad o pequeño tamaño. Otros criterios: Reuso, Escalabilidad, Coste, Requisitos no funcionales 102

5 Noción de componente y dependencia <<component>> A Dependencia A C: A requiere la presencia de C Los cambios de C pueden afectar a A <<component>> B <<component>> C E F 103 Dependencia respecto a una interfaz Dos componentes pueden ofrecer la misma interfaz Dos interfaces no necesariamente disjuntas 104

6 Representación de interfaces: abreviada y completa Novedad en UML2 105 Noción de interfaz Encapsulamiento: separación de interfaz e implementación: una clase/componente puede realizar una o varias interfaces. una interfaz puede ser realizada por una o varias clases/componentes. Interfaz: conjunto de operaciones que ofrecen un servicio coherente: no contiene la implementación de las operaciones (métodos). una interfaz no puede tener atributos ni asociaciones navegables (esta restricción ha desaparecido en UML 2.0). análoga a una clase abstracta con todas sus operaciones abstractas: no puede tener instancias directas. Impresora Imprimible Impresora uso Documento Documento Notaciones para uso y realización de interfaces «interface» Imprimible imprimir( ) realización 106

7 Generalización vs. Realización La realización puede entenderse como una generalización débil : se hereda la interfaz, pero no la implementación: reduce la dependencia. disminuye la reutilización. alternativa a la generalización múltiple, no soportada por muchos lenguajes. Las interfaces son elementos generalizables: jerarquías mixtas de interfaces y clases. Criterio de diseño: comprometerse sólo con la interfaz. declarar el tipo de las variables y parámetros de operaciones como interfaces, no como clases. servirá cualquier instancia compatible con la interfaz. Ejemplo: Figura f = new Cuadrado ( ); f.imprimir Círculo «interface» Imprimible «interface» Figura Rectángulo Cuadrado 107 Interfaces proporcionadas y requeridas proporciona, realiza requiere, usa 108

8 Diagrama de componentes ball and socket cableado independiente cableado en árbol cableado con dependencia 109 Cómo instanciar las interfaces de un componente (1) package GestiónEmpleados; public interface iempleado { public modificar( ) { ; public class EmpleadoFijo implements iempleado { public modificar( ) { ; public class EmpleadoTemporal implements iempleado { public modificar( ) { ; ==================== class Departamento { iempleado e = new EmpleadoFijo( ); e.modificar( ); El componente proporciona sólo una interfaz, el tipo abstracto de datos. Es necesario que la clase cliente (Departamento) conozca las clases concretas EmpleadoFijo, etc.: estas clases deben ser públicas. Nada le impide usarlas sólo para invocar los constructores (salvo el buen estilo del programador). La dependencia es potencialmente peligrosa. 110

9 Cómo instanciar las interfaces de un componente (2) package GestiónEmpleados; public interface igestorempleados { public int crearempleado( ); // el gestor debe mantener algún tipo de lista public modificarempleado(int e); class EmpleadoFijo { // no visible desde fuera, idem EmpleadoTemporal public class GestorEmpleados implements igestorempleados { public int crearempleado( ) {; // usa new EmpleadoFijo( ) public modificarempleado (int e) {; // usa EmpleadoFijo.modificar( ) ==================== class Departamento { int e = ge.crearempleado ( ); // se supone que existe GestorEmpleados ge ge.modificarempleado(e); El componente proporciona sólo una interfaz, el gestor. GestorEmpleados no puede recibir ni devolver valores de tipo EmpleadoFijo, EmpleadoTemporal, etc. Es necesario un mecanismo de traducción de los identificadores públicos a las instancias de EmpleadoFijo, etc. (una lista interna). La clase cliente sólo usa el gestor y los identificadores públicos. 111 Cómo instanciar las interfaces de un componente (3) package GestiónEmpleados; public interface iempleado { public modificar( ) { ; El componente proporciona dos interfaces, el tipo abstracto de datos y el gestor. public interface igestorempleados { public iempleado crearempleado( ); // el gestor debe mantener algún tipo de lista public modificarempleado(iempleado e); ==================== class Departamento { iempleado e = ge.crearempleado ( ); // se supone que existe GestorEmpleados ge e.modificar( ); La clase cliente no puede usar el constructor directamente, pero sí el tipo abstracto en el resto de operaciones. 112

10 Cómo instanciar las interfaces de un componente (4) Caso 3 (parámetros iempleado) Caso 1 Caso 2 (parámetros int) 113 Diseño por contratos: PPCs e invariantes PPCs de operación CuentaCorriente.meterDinero(cantidad: Moneda) Pre: Post: saldo = saldo + cantidad CuentaCorriente.sacarDinero(cantidad: Moneda) Pre: saldo cantidad 0 Post: saldo = saldo cantidad CuentaCorriente saldo meterdinero(cantidad) sacardinero(cantidad) Invariantes de clase CuentaCorriente: saldo 0 114

11 Diseño por contratos: subcontratación PPC s de operación CuentaCorriente.sacarDinero(cantidad: Moneda) Pre: saldo cantidad 0 Post: saldo = saldo cantidad PPC s de operación redefinida en la subclase CuentaCredito.sacarDinero(cantidad: Moneda) Pre: saldo + credito cantidad 0 Post: saldo = saldo cantidad Pre: menos restrictiva, o igual Post: más restrictiva, o igual Invariantes de clase (más restrictivo, o igual) CuentaCorriente: saldo 0 CuentaCredito: (credito 0) AND (saldo + credito 0) CuentaCorriente saldo sacardinero(cantidad) CuentaCredito credito sacardinero(cantidad) Es correcta esta generalización? 115 Diseño por contratos: uso correcto de jerarquías CaminoOblicuo.distancia.post d = ( x y x1) + ( y2 1) CaminoEsquinado.distancia.post d = ( x2 x1) + ( y2 y1) (x 2, y 2 ) (x 1, y 1 ) Cuál sería correcta? CaminoOblicuo origen: Punto destino: Punto distancia( ): Float CaminoEsquinado origen: Punto destino: Punto distancia( ): Float 116

Modelado Estático Avanzado (Generalizaciones) Diseño de Software Avanzado Departamento de Informática

Modelado Estático Avanzado (Generalizaciones) Diseño de Software Avanzado Departamento de Informática Modelado Estático Avanzado (Generalizaciones) Generalización y Clasificación Principio de sustitución: Extensión: todos los objetos de la subclase son también de la superclase. Intensión: la definición

Más detalles

Diagrama de Clases. Diagrama de Clases

Diagrama de Clases. Diagrama de Clases Diagrama de Clases 1 Diagrama de Clases El propósito de este diagrama es el de representar los objetos fundamentales del sistema, es decir los que percibe el usuario y con los que espera tratar para completar

Más detalles

Diseño orientado a los objetos

Diseño orientado a los objetos Diseño orientado a los objetos El Diseño Orientado a los Objetos (DOO) crea una representación del problema del mundo real y la hace corresponder con el ámbito de la solución, que es el software. A diferencia

Más detalles

La importancia del desarrollo para el buen diseño del software

La importancia del desarrollo para el buen diseño del software La importancia del desarrollo para el buen diseño del software RESUMEN N L González Morales. 1 En este ensayo se examinan los temas vistos en clase que son Desarrollo de Orientado a Objetos y Arquitectura

Más detalles

Software Reutilizable. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 1

Software Reutilizable. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reutilizable Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 1 Objetivos Para explicar los beneficios del software reutilizable y algunos de sus problemas Para discutir

Más detalles

Notación UML para modelado Orientado a Objetos

Notación UML para modelado Orientado a Objetos 1 Notación UML para modelado Orientado a Objetos 2 Notación UML para modelado Orientado a Objetos Índice 1.1. Qué es UML?.. 3 1.2. Por qué interesa UML en la asignatura de Programación Orientada a Objetos?3

Más detalles

Diagramas de Clase en UML 1.1

Diagramas de Clase en UML 1.1 Diagramas de Clase en UML. Francisco José García Peñalvo Licenciado en Informática. Profesor del Área de Lenguajes y Sistemas Informáticos de la Universidad de Burgos. fgarcia@.ubu.es Carlos Pardo Aguilar

Más detalles

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

Repetir el proceso para cada abstracción identificada hasta que el diseño este expresado en términos sencillos I. INTRODUCCIÓN El reciente aumento de aplicaciones en donde se utiliza la computadora ha sido posible debido a un hardware de bajo costo, por lo cual la demanda de software ha crecido de forma exponencial.

Más detalles

Métricas. Valentin Laime. Calidad de Software

Métricas. Valentin Laime. Calidad de Software Calidad de Software: Métricas Valentin Laime Calidad de Software 10/29/2014 1 Métricas Que miden Beneficios Medidas Productividad Calidad Futuras Estimaciones Directas Indirectas Defecto/fallo Vs. Error

Más detalles

2.2.- Paradigmas de la POO

2.2.- Paradigmas de la POO 2.2.- Paradigmas de la POO Los principios propios de la orientación a objetos son: 2.2.1.- Abstracción de Datos 2.2.2.- Encapsulamiento 2.2.3.- Ocultamiento 2.2.4.- Herencia 2.2.5.- Polimorfismo Cualquier

Más detalles

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

Instructivo para la elaboración de un Manual Técnico Instructivo para la elaboración de un Manual Técnico Autora: Ing. Alena González Reyes. (agonzalez@ceis.cujae.edu.cu) Ciudad de la Habana, Cuba Marzo, 2010 Índice 1. Introducción... 3 2. Confección...

Más detalles

Patrones de Diseño Orientados a Objetos 2 Parte

Patrones de Diseño Orientados a Objetos 2 Parte Patrones de Diseño Orientados a Objetos 2 Parte Patrón Observador Observer (Patrón de Comportamiento) Patrón Observador Observer Observador (en inglés: Observer) es un patrón de diseño que define una dependencia

Más detalles

Java Inicial (20 horas)

Java Inicial (20 horas) Java Inicial (20 horas) 1 Temario 1. Programación Orientada a Objetos 2. Introducción y Sintaxis Java 3. Sentencias Control Flujo 4. POO en Java 5. Relaciones entre Objetos 6. Polimorfismo, abstracción

Más detalles

Programación Orientada a Objetos en Java

Programación Orientada a Objetos en Java Programación Orientada a Objetos en Java Curso 2006-2007 Tema 4 Herencia y Polimorfismo Gonzalo Méndez Pozo Dpto. de Ingeniería de Software e Inteligencia Artificial Universidad Complutense de Madrid Herencia

Más detalles

BASE DE DATOS: ENFOQUE ORIENTADO A OBJETOS. Dámaso López Aragón

BASE DE DATOS: ENFOQUE ORIENTADO A OBJETOS. Dámaso López Aragón BASE DE DATOS: ENFOQUE ORIENTADO A OBJETOS Dámaso López Aragón Introducción En la actualidad, la orientación a objetos es una nueva forma de comprender los problemas y modelar el negocio de una empresa,

Más detalles

Departamento de Informática y Automática INGENIERÍA DEL SOFTWARE PARTE I: TEST EXAMEN FINAL

Departamento de Informática y Automática INGENIERÍA DEL SOFTWARE PARTE I: TEST EXAMEN FINAL Departamento de Informática y Automática INGENIERÍA DEL SOFTWARE PARTE I: TEST EXAMEN FINAL DNI Apellidos y nombre 1. Cuál de las siguientes afirmaciones no es una causa de los problemas del software?

Más detalles

Jazmín Hernández jazminpalom@gmail.com. Technical Report COMP-029-2009. Abstract

Jazmín Hernández jazminpalom@gmail.com. Technical Report COMP-029-2009. Abstract Guía para la Documentación de Arquitecturas de Software Como Base Para el Desarrollo de Sistemas de Información en la Iglesia Adventista del Séptimo Día Jazmín Hernández jazminpalom@gmail.com Technical

Más detalles

Índice. http://www.dicampus.es

Índice. http://www.dicampus.es Módulo 2 UML Índice Introducción a UML Lenguaje Unificado de Modelado (UML) Diagramas UML Diagramas de casos de uso Diagramas estructurales: Clases Diagramas estructurales: Objetos Diagramas de interacción:

Más detalles

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

Objetivo Las personas que realicen el curso aprenderán a: Objetivo Las personas que realicen el curso aprenderán a: Describir el proceso de desarrollo de software orientado a objetos, lo que incluye las metodologías y los flujos de trabajo de la programación

Más detalles

Modelado y Diseño de Arquitectura de Software

Modelado y Diseño de Arquitectura de Software Modelado y Diseño de Arquitectura de Software CONCEPTOS DE MODELADO Fernando Barraza A. MS.c. fernando.barraza@gmail.com 2 Desarrollo de sistemas de software Requisitos funcionales del software Si todo

Más detalles

DIAGRAMA DE CLASES EN UML

DIAGRAMA DE CLASES EN UML DIAGRAMA DE CLASES EN UML Mg. Juan José Flores Cueto jflores@usmp.edu.pe Ing. Carmen Bertolotti Zuñiga cbertolotti@usmp.edu.pe INTRODUCCIÓN UML (Unified Modeling Language) es un lenguaje que permite modelar,

Más detalles

DISEÑO DE COMPONENTES DE SOFTWARE *

DISEÑO DE COMPONENTES DE SOFTWARE * 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.

Más detalles

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

Tutorial de UML. Introducción: Objetivos: Audiencia: Contenidos: Tutorial de UML Introducción: El Lenguaje de Modelamiento Unificado (UML - Unified Modeling Language) es un lenguaje gráfico para visualizar, especificar y documentar cada una de las partes que comprende

Más detalles

Qué es la Arquitectura del Software?

Qué es la Arquitectura del Software? Qué es la Arquitectura del Software? 1 Arquitectura del software: definiciones Paul lements 1996 La arquitectura del software es a grandes rasgos, una vista del sistema que incluye los componentes principales

Más detalles

El modelo de casos de uso. Ingeniería de la Programación

El modelo de casos de uso. Ingeniería de la Programación El modelo de casos de uso Ingeniería de la Programación Prácticas cas 1 Contenidos Introducción RF y RNF Introducción al modelo de RF de UML. Actores y Casos de Uso Modelo de casos de uso Diagrama de contexto

Más detalles

REQUERIMIENTOS NO FUNCIONALES

REQUERIMIENTOS NO FUNCIONALES REQUERIMIENTOS NO FUNCIONALES REQUERIMIENTOS NO FUNCIONALES A continuación se describen las principales características no funcionales que debe contener el sistema de información. Interfaces de usuario.

Más detalles

GUIA PROGRAMACIÓN ORIENTADA A OBJETOS

GUIA PROGRAMACIÓN ORIENTADA A OBJETOS GUIA PROGRAMACIÓN ORIENTADA A OBJETOS 1. Por qué la P.O.O? R= A medida que se van desarrollando los lenguajes, se va desarrollando también la posibilidad de resolver problemas más complejos. En la evolución

Más detalles

Curso Taller de Arquitectura de Software usando UML

Curso Taller de Arquitectura de Software usando UML Curso Taller de Arquitectura de Software usando UML Presentación: Este curso comprende las técnicas necesarias para el modelamiento de sistemas a través de los diagramas definidos por UML (Unified Modelling

Más detalles

Curso de Java POO: Programación orientada a objetos

Curso de Java POO: Programación orientada a objetos Curso de Java POO: Programación orientada a objetos Luis Guerra Velasco Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Introducción a la POO 2 Herencia y polimorfismo 3 Empaquetado de proyectos

Más detalles

Guía del Curso Analista Programador PHP Javascript

Guía del Curso Analista Programador PHP Javascript Guía del Curso Analista Programador PHP Javascript Modalidad de realización del curso: Número de Horas: Titulación: Online 180 Horas Diploma acreditativo con las horas del curso OBJETIVOS UML usa técnicas

Más detalles

Estilos de Arquitectura y. Patrones de Diseño Arquitectónico. Patrones de Arquitectura

Estilos de Arquitectura y. Patrones de Diseño Arquitectónico. Patrones de Arquitectura Estilos de Arquitectura y Patrones de Diseño Arquitectónico Gastón Mousqués - AR 1 Patrones de Arquitectura Gastón Mousqués - AR 2 Principales Categorías de Patrones (Software) Patrones de Análisis Expresan

Más detalles

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

Diagramas del UML. A continuación se describirán los diagramas más comunes del UML y los conceptos que representan: Diagrama de Clases El UML está compuesto por diversos elementos gráficos que se combinan para conformar diagramas. Debido a que el UML es un lenguaje, cuenta con reglas para combinar tales elementos. La finalidad de los

Más detalles

Diseño Estructurado de Sistemas

Diseño Estructurado de Sistemas El diseño estructurado de sistemas se ocupa de la identificación, selección y organización de los módulos y sus relaciones. Se comienza con la especificación resultante del proceso de análisis, se realiza

Más detalles

Recomendaciones para la realización de la Documentación del Proyecto de Fin de Carrera. Departamento de Lenguajes y Sistemas Informáticos

Recomendaciones para la realización de la Documentación del Proyecto de Fin de Carrera. Departamento de Lenguajes y Sistemas Informáticos Recomendaciones para la realización de la Documentación del Proyecto de Fin de Carrera Departamento de Lenguajes y Sistemas Informáticos INDICE 1. Introducción. 2. Documentación del Proyecto de Fin de

Más detalles

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

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 Diseño Diseño en el PUD Diseño de software Patrones arquitectónicos Diseño Orientado a Objetos en UML 1 Iteración en PUD Planificación de la Iteración Captura de requisitos: Modelo de casos de uso, Modelo

Más detalles

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

Primer avance de proyecto de software para la gestión de inscripciones en cursos Primer avance de proyecto de software para la gestión de inscripciones en cursos 1. Introducción Andrés Felipe Bustamante García, Carolina Sarmiento González En este documento se presentan los resultados

Más detalles

Introducción En este apartado se va a proporcionar una apreciación global del SRS.

Introducción En este apartado se va a proporcionar una apreciación global del SRS. INTRODUCCIÓN Se pretende desarrollar una aplicación web para la gestión de un restaurante que ofrece espectáculos en fechas determinadas con el fin de poner en práctica los principios de planificación

Más detalles

Programación Avanzada SOLUCIÓN EXAMEN FEBRERO 2011

Programación Avanzada SOLUCIÓN EXAMEN FEBRERO 2011 Programación Avanzada SOLUCIÓN EXAMEN FEBRERO 2011 Por favor siga las siguientes indicaciones: Escriba con lápiz y de forma prolija. Escriba las hojas de un solo lado Escriba su nombre y número de documento

Más detalles

Programación Orientada a Objetos Analista Programador Universitario Plan 2008 Año 2010

Programación Orientada a Objetos Analista Programador Universitario Plan 2008 Año 2010 INTRODUCCION Un concepto fundamental que debemos tener en cuenta a la hora de modelar la realidad por medio de objetos es que los mismos no son entidades aisladas. Los objetos interactúan entre ellos constantemente

Más detalles

INGENIERÍA EN SISTEMAS COMPUTACIONALES (ISIC-2010-224)

INGENIERÍA EN SISTEMAS COMPUTACIONALES (ISIC-2010-224) INGENIERÍA EN SISTEMAS COMPUTACIONALES (ISIC-2010-224) ÁREAS DE CONOCIMIENTO DESCRITAS Lenguajes de Programación. Bases de Datos. Redes de Computadoras. Arquitectura de Computadoras. Programación Web.

Más detalles

Diplomado en Aseguramiento de la Calidad De los Procesos y Productos de Software

Diplomado en Aseguramiento de la Calidad De los Procesos y Productos de Software Diplomado en Aseguramiento de la Calidad De los Procesos y Productos de Software Contenido del programa MÓDULO 1. GESTIÓN DE INGENIERÍA DE REQUERIMIENTOS DE SOFTWARE /16 horas Definiciones Requerimientos

Más detalles

Programación Orientada a Objetos Profr. Pedro Pablo Mayorga

Programación Orientada a Objetos Profr. Pedro Pablo Mayorga Actividad 2 Unidad 1 Ciclo de vida del software y Diseño Orientado a Objetos Ciclo de Vida del Software Un modelo de ciclo de vida define el estado de las fases a través de las cuales se mueve un proyecto

Más detalles

UNIDAD I: INTRODUCCIÓN A LA ARQUITECTURA DE SOFTWARE

UNIDAD I: INTRODUCCIÓN A LA ARQUITECTURA DE SOFTWARE UNIVERSIDAD AUTÓNOMA DE CHIHUAHUA Clave: 08MSU007H Clave: 08USU4053W FACULTAD DE INGENIERÍA PROGRAMA DEL CURSO: DISEÑO Y ARQUITECTURA DE DES: Programa(s) Educativo(s): Tipo de materia: Clave de la materia:

Más detalles

POLIMORFISMO "una interfaz, múltiples métodos".

POLIMORFISMO una interfaz, múltiples métodos. "una interfaz, múltiples métodos". 20/02/2007 Polimorfismo 2 Indice Definición y caracteristicas Objetivos. SOBRRESCRITURA-SOBRECARGA SOBRECARGA Clases y métodos abstractos INTERFACES (herencia múltiple)

Más detalles

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática Pág: 1 de 6 DEPARTAMENTO DE INGENIERÍA INFORMÁTICA (DII): LS4118: Ingeniería del Software I Documento de DISEÑO Proyecto: XXXXXX Autor/es: YYYYY Pág: 2 de 6 Contenido 1. Introducción 3 2. Diagrama de despliegue

Más detalles

http://www.cem.itesm.mx/extension/ms

http://www.cem.itesm.mx/extension/ms Diplomado Programación orientada a objetos con Java y UML Las empresas necesitan contar con sistemas de información modernos, ágiles y de calidad para alcanzar sus objetivos y ser cada vez más competitivos

Más detalles

Modelado de datos Relacional Modelado de datos Orientado a Objeto Modelado de datos Objeto-Relacional

Modelado de datos Relacional Modelado de datos Orientado a Objeto Modelado de datos Objeto-Relacional 2. 1 Modelado de Datos El manejo de información implica el saber como organizar los datos. Un apoyo lo encontramos en las herramientas de bases de datos que a su vez se apoyan en el modelo de datos. Para

Más detalles

LINEAMIENTOS TÉCNICOS CATEGORÍA DISEÑO ORIENTADO A OBJETOS SENASoft Santander 2015. Documento elaborado por: Juan de Jesús Lizcano Sánchez

LINEAMIENTOS TÉCNICOS CATEGORÍA DISEÑO ORIENTADO A OBJETOS SENASoft Santander 2015. Documento elaborado por: Juan de Jesús Lizcano Sánchez 1 LINEAMIENTOS TÉCNICOS CATEGORÍA DISEÑO ORIENTADO A OBJETOS SENASoft Santander 2015 Documento elaborado por: Juan de Jesús Lizcano Sánchez Instructor Centro de Servicios Empresariales y Turísticos CSET

Más detalles

LEY QUE NORMA EL USO, ADQUISICIÓN Y ADECUACIÓN DEL SOFTWARE EN LA ADMINISTRACIÓN PUBLICA

LEY QUE NORMA EL USO, ADQUISICIÓN Y ADECUACIÓN DEL SOFTWARE EN LA ADMINISTRACIÓN PUBLICA ADQUISICIÓN DE SOFTWARE DE CORREO 1. Nombre del Área :. Responsable de la Evaluación : Aldo Quispe Santa María. Cargo : Director (e) de Tecnología de la Información y Sistemas 4. Fecha : de Julio de 007

Más detalles

Capítulo 4. Prueba de Adaptabilidad

Capítulo 4. Prueba de Adaptabilidad Capítulo 4 Prueba de Adaptabilidad Capítulo 4. Prueba de Adaptabilidad Como se mencionó en el capítulo 2 actualmente no es válido que el software únicamente funcione bien y resuelva el problema que le

Más detalles

Definición de Rich Internet Applications a través de Modelos de Dominio Específico. Rivero, José Matías Buzzo, Marcos Hernán

Definición de Rich Internet Applications a través de Modelos de Dominio Específico. Rivero, José Matías Buzzo, Marcos Hernán Definición de Rich Internet Applications a través de Modelos de Dominio Específico Rivero, José Matías Buzzo, Marcos Hernán Rich Internet Applications Definición Aplicaciones web que poseen características

Más detalles

GESTIÓN DE REDES PARTE III

GESTIÓN DE REDES PARTE III PARTE III Arquitectura de Gestión OSI 3.1 Introducción La gestión de red OSI, pensada inicialmente para la gestión de las propias redes OSI, debe su implantación práctica al ser adoptada por los estándares

Más detalles

Garantía de Calidad. Calidad durante el Proceso de Ingeniería. Recapitulación (I)

Garantía de Calidad. Calidad durante el Proceso de Ingeniería. Recapitulación (I) Garantía de Calidad Calidad durante el Proceso de Ingeniería Recapitulación (I) Cuestiones: Qué se entiende por Garantía de Calidad de Software? Cuál es la diferencia entre validación y verificación? Existe

Más detalles

Introducción a la Programación Orientada a Objetos

Introducción a la Programación Orientada a Objetos Introducción a la Programación Orientada a Objetos El paradigma imperativo. En un programa se tienen una serie de variables con las cuales operamos y modificamos mediante sentencias y funciones para producir

Más detalles

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador).

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador). CAPÍTULO 4 Requerimientos de software Este capítulo presenta las herramientas necesarias para la construcción y ejecución de programas en el lenguaje de programación JAVA, los requerimientos mínimos de

Más detalles

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

2. Conceptos básicos Abstracción La abstracción como un proceso mental natural La abstracción en el desarrollo de software 2. Conceptos básicos Hoy en día las aplicaciones son demasiado voluminosas y complejas para ser manejadas por una sola persona. Las aplicaciones de software son complejas porque modelan la complejidad

Más detalles

Ingeniería de Sistemas. Administración de Proyectos. Objetivos. Tópicos cubiertos. Procesos de software (tema anterior) Administración de proyecto

Ingeniería de Sistemas. Administración de Proyectos. Objetivos. Tópicos cubiertos. Procesos de software (tema anterior) Administración de proyecto Objetivos Ingeniería de Sistemas Administración de s basado en el capítulo 5 ISW Ian Sommerville Profesora Dra. Yulia Ledeneva Introducir administración de s de software y describir sus características

Más detalles

Introducción a los Tipos Abstractos de Datos

Introducción a los Tipos Abstractos de Datos Página 1 de 8 Introducción a los Tipos Abstractos de Datos Introducción: Concepto de abstracción Abstracción funcional y abstracción de datos Construcción de tipos abstractos de datos Especificación de

Más detalles

Tema 1 Introducción a la Ingeniería de Software

Tema 1 Introducción a la Ingeniería de Software Tema 1 Introducción a la Ingeniería de Software Curso Ingeniería de Software UMCA Profesor Luis Gmo. Zúñiga Mendoza 1. Software En la actualidad todo país depende de complejos sistemas informáticos. Podemos

Más detalles

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

La Necesidad de Modelar. Diseño de Software Avanzado Departamento de Informática La Necesidad de Modelar Analogía Arquitectónica Tiene sentido poner ladrillos sin hacer antes los planos? El modelo, los planos, ayuda a afrontar la complejidad del proyecto. Cuál es el lenguaje adecuado

Más detalles

Desarrollo de Líneas de Productos de Software

Desarrollo de Líneas de Productos de Software Centro Experimental de Ingeniería de Software Departamento de Ciencias de la Computación Facultad de Ciencias Físicas y Matemáticas Universidad de Chile Desarrollo de Líneas de Productos de Software María

Más detalles

Sistema de Administración de Farmacias Plan de Proyecto Versión 1.1. Historia de revisiones

Sistema de Administración de Farmacias Plan de Proyecto Versión 1.1. Historia de revisiones Sistema de Administración de Farmacias Plan de Proyecto Versión 1.1 Historia de revisiones Fecha Versión Descripción Autor 30/08/2014 1.0 Plan de Proyecto Gonzalo Capote 31/08/2014 1.1 Revisión de documento

Más detalles

TEMA 8: DIAGRAMA DE CLASE EN UML

TEMA 8: DIAGRAMA DE CLASE EN UML TEMA 8: DIAGRAMA DE CLASE EN UML Diagramas en UML El bloque de construcción básico de UML es un Diagrama Introducción a UML 2 1 Diagrama de Clase Los diagramas de clases son los más utilizados en el modelado

Más detalles

Yalù Galicia Hernàndez. Yalú Galicia Hdez. (FCC/BUAP)

Yalù Galicia Hernàndez. Yalú Galicia Hdez. (FCC/BUAP) Yalù Galicia Hernàndez Yalú Galicia Hdez. (FCC/BUAP) 1 Introducción Qué es la Programación Orientada a Objetos? Conceptos básicos Abstracción Jerarquía Encapsulación Objeto Clase Herencia Polimorfismo

Más detalles

Arquitectura de Proyectos de IT

Arquitectura de Proyectos de IT Arquitectura de Proyectos de IT Apunte: Comunicación de Arquitectura de Software Autores: Ing. Gustavo A. Brey (gbrey@sistemas.frba.utn.edu.ar) Santiago Blanco (santiago.blanco@gmail.com) Versión: 0.8.20081106

Más detalles

SISTEMA DE GESTIÓN DE BASE DE DATOS (Database Management System (DBMS))

SISTEMA DE GESTIÓN DE BASE DE DATOS (Database Management System (DBMS)) SISTEMA DE GESTIÓN DE BASE DE DATOS (Database Management System (DBMS)) Los sistemas de gestión de bases de datos son un tipo de software muy específico, dedicado a servir de interfaz entre la base de

Más detalles

DOCUMENTO VISIÓN SISTEMA DE VENTAS Y PRÉSTAMOS DE LA CINEMATECA BOLIVIANA PAWI. Versión 1.0. Aruquipa Mamani Rolando Willy

DOCUMENTO VISIÓN SISTEMA DE VENTAS Y PRÉSTAMOS DE LA CINEMATECA BOLIVIANA PAWI. Versión 1.0. Aruquipa Mamani Rolando Willy DOCUMENTO VISIÓN SISTEMA DE VENTAS Y PRÉSTAMOS DE LA CINEMATECA BOLIVIANA PAWI Versión 1.0 Integrantes: Aruquipa Mamani Rolando Willy Layme Ordoñez Roxana Paola Módulos Venta de Material y Facturación

Más detalles

Tema 5. Diseño detallado.

Tema 5. Diseño detallado. Ingeniería del Software II 2011 Tema 5. Diseño detallado. Diseño del Software. Los requisitos y el análisis orientado a objetos se centran en aprender a hacer lo correcto: Entender los objetos de nuestro

Más detalles

Capítulo 10. Subtipos y Herencia.

Capítulo 10. Subtipos y Herencia. Capítulo 10. Subtipos y Herencia. Lenguajes de Programación Carlos Ureña Almagro Dpt. Lenguajes y Sistemas Informáticos ETSI Informática y de Telecomunicación Universidad de Granada Curso 2009-10 Autor:

Más detalles

Estructura de clases. Estructura de Objetos. Arquitectura de módulos. Arquitectura de procesos

Estructura de clases. Estructura de Objetos. Arquitectura de módulos. Arquitectura de procesos 3.3 EL MÉTODO DE BOOCH. 3.3. Introducción. El método cuenta con una notación expresiva y bien definida que le permite al diseñador comunicar sus ideas y concentrarse en problemas más serios. Para la captura

Más detalles

EL DOCUMENTO DE ESPECIFICACIÓN FUNCIONAL

EL DOCUMENTO DE ESPECIFICACIÓN FUNCIONAL EL DOCUMENTO DE ESPECIFICACIÓN FUNCIONAL Especificación de requerimientos Orientaciones sobre el primer entregable del proyecto de aula Maestría en Ciencias de la Información y las Comunicaciones Universidad

Más detalles

Introducción al UML. Domingo Hernández H. Escuela de Ingeniería de Sistemas Departamento de computación

Introducción al UML. Domingo Hernández H. Escuela de Ingeniería de Sistemas Departamento de computación Introducción al UML Domingo Hernández H. Escuela de Ingeniería de Sistemas Departamento de computación Contenido Qué es UML?. Diagramas Utilizados en UML. Ejemplos. Qué es UML UML es un Lenguaje de Modelado

Más detalles

MODULO DE PROGRAMACION JAVA Nivel Básico-Intermedio

MODULO DE PROGRAMACION JAVA Nivel Básico-Intermedio MODULO DE PROGRAMACION JAVA Nivel Básico-Intermedio Objetivo general: Introducir al participante en los conceptos y herramientas más importantes del lenguaje javo para la programación de objetos. Duración

Más detalles

Ingeniería de Software II

Ingeniería de Software II Ingeniería de Software II Primer Cuatrimestre de 2009 Clase 3b: Especificación de Atributos de Calidad y QAW Buenos Aires, 23 de Marzo de 2009 Una historia real Reunión por una gran licitación entre el

Más detalles

Análisis y Diseño de Soluciones de Software

Análisis y Diseño de Soluciones de Software Página 1 de 5 1. Objetivo y Alcance Identificar a los stakeholders, definir el límite del sistema, e identificar los apremios impuestos ante el sistema, para posteriormente transformar esos requerimientos

Más detalles

Patrones Creacionales Builder. Patrones Creacionales Abstract Factory. Patrones Creacionales Singleton. Patrones Creacionales Prototype

Patrones Creacionales Builder. Patrones Creacionales Abstract Factory. Patrones Creacionales Singleton. Patrones Creacionales Prototype Temario Patrones de Diseño de Software Fundamentos de Ingeniería de SW Jocelyn Simmonds GOF: Patrones Creacionales Patrones Estructurales ILI-236 (JS) Patrones II 1 / 31 ILI-236 (JS) Patrones II 2 / 31

Más detalles

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

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.1 UML: Introducción PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación II MODELOS y HERRAMIENTAS UML 1 1 Técnica de modelado de objetos (I) El modelado orientado a objetos es una técnica de especificación semiformal para

Más detalles

Ingeniería de Software Calidad de Procesos y Productos de Software

Ingeniería de Software Calidad de Procesos y Productos de Software Ingeniería de Software Calidad de Procesos y Productos de Software M. Visconti & H. Astudillo Departamento de Informática Universidad Técnica Federico Santa María Calidad

Más detalles

Arquitecturas de Software

Arquitecturas de Software Arquitecturas de Software Ingeniería del Universidad Rey Juan Carlos César Javier Acuña cjacunia@escet.urjc.es Índice Introducción Motivación Definición Pipes and Filters Tipos abstractos de datos y OO

Más detalles

El proceso unificado en pocas palabras

El proceso unificado en pocas palabras El Proceso Unificado de Desarrollo de Software Ivar Jacobson Grady Booch James Rumbaugh Addison Wesley Resumen Capítulo 1. El proceso unificado: dirigido por casos de uso, centrado en la arquitectura,

Más detalles

Tema III. DISEÑO ARQUITECTÓNICO (diseño de alto nivel) 14. Presentación / La transición del análisis al diseño

Tema III. DISEÑO ARQUITECTÓNICO (diseño de alto nivel) 14. Presentación / La transición del análisis al diseño Ingeniería del Software 2 Curso 2009-2010 29 Tema III. DISEÑO ARQUITECTÓNICO (diseño de alto nivel) 14. Presentación / La transición del análisis al diseño Presentación de IS2 Profesorado. Web de la asignatura

Más detalles

Especificación de Requisitos según el estándar de IEEE 830

Especificación de Requisitos según el estándar de IEEE 830 Especificación de Requisitos según el estándar de IEEE 830 IEEE Std. 830-1998 22 de Octubre de 2008 Resumen Este documento presenta, en castellano, el formato de Especificación de Requisitos Software (ERS)

Más detalles

Tema 4. Diseño arquitectónico.

Tema 4. Diseño arquitectónico. Tema 4. Diseño arquitectónico. Introducción, Objetivos del Diseño. Ingeniería del Software II 2011 Para la transformación del modelo de análisis en un modelo de diseño del sistema, se definen los objetivos

Más detalles

ESTÁNDAR DE CODIFICACIÓN JEE CHECKLIST

ESTÁNDAR DE CODIFICACIÓN JEE CHECKLIST 12 de Noviembre de 2015 Versión 1.2.9 CONVENCIONES DE CÓDIGO EN DESARROLLO JEE Todas los ficheros están codificados en UTF-8 Se le ha asignado a la aplicación un código identificativo único Sigue la estructura

Más detalles

Titulo del Proyecto FACYU Sistema de Facturación. Alumnos David Ignacio Morales Ruelas Marco Antonio Jiménez Uribe Carlos José Márquez Guzmán

Titulo del Proyecto FACYU Sistema de Facturación. Alumnos David Ignacio Morales Ruelas Marco Antonio Jiménez Uribe Carlos José Márquez Guzmán Titulo del Proyecto FACYU Sistema de Facturación Alumnos David Ignacio Morales Ruelas Marco Antonio Jiménez Uribe Carlos José Márquez Guzmán Asesor Emmanuel López Neri 1. INTRODUCCIÓN 1.1 PROPÓSITO 1.2

Más detalles

Conceptos. ELO329: Diseño y Programación Orientados a Objetos. ELO 329: Diseño y Programación Orientados a Objetos

Conceptos. ELO329: Diseño y Programación Orientados a Objetos. ELO 329: Diseño y Programación Orientados a Objetos Conceptos ELO329: Diseño y Programación Orientados a Objetos 1 Paradigmas de Programación Historia: Los computadores parten cableados por hardware, Luego se introduce la programación en binario, Se desarrolla

Más detalles

Proyecto Práctico de Diseño de Software

Proyecto Práctico de Diseño de Software Ingeniería del Software II Ingeniería Informática, 4 Curso Proyecto Práctico de Diseño de Software Curso 2010-2011 Gonzalo Génova 1 Presentación Profesores Grupo M Gonzalo Génova (ggenova [at] inf.uc3m.es)

Más detalles

PEEPER PONTIFICIA UNIVERSIDAD JAVERIANA FACULTAD DE INGENIERIA CARRERA DE INGENIERIA DE SISTEMAS. Mayo 2014. Versión 2.1 OSCAR IVAN LÓPEZ PULIDO

PEEPER PONTIFICIA UNIVERSIDAD JAVERIANA FACULTAD DE INGENIERIA CARRERA DE INGENIERIA DE SISTEMAS. Mayo 2014. Versión 2.1 OSCAR IVAN LÓPEZ PULIDO PEEPER Implementación del cambio de técnica usada para la actualización de datos en los reportes de esfuerzo, usados como métrica de productividad, progreso y costo de los proyectos, de la compañía de

Más detalles

Programación Orientada a Objetos

Programación Orientada a Objetos Programación Orientada a Objetos E.T.S.I. Telecomunicación Universidad de Málaga http://www.lcc.uma.es/ Contenido Introducción histórica Conceptos básicos de la Programación O. O. Conceptos avanzados de

Más detalles

Clases abstractas e interfaces

Clases abstractas e interfaces Clases abstractas e interfaces Clases abstractas Una clase abstracta es una clase que no se puede instanciar se usa únicamente para definir subclases Cuándo es una clase abstracta? En cuanto uno de sus

Más detalles

Utilización de la ingeniería de software como mecanismo de aplicación y. evaluación de la eficiencia y calidad operacional de un sistema de función

Utilización de la ingeniería de software como mecanismo de aplicación y. evaluación de la eficiencia y calidad operacional de un sistema de función Capítulo 6 Conclusiones 6.1. Sobre el Modelo Utilización de la ingeniería de software como mecanismo de aplicación y evaluación de la eficiencia y calidad operacional de un sistema de función crítica,

Más detalles

Documentando la arquitectura de software Principios básicos por Omar Gómez

Documentando la arquitectura de software Principios básicos por Omar Gómez Documentando la arquitectura de software Principios básicos por Omar Gómez En la actualidad, uno de los temas candentes que se habla dentro de la comunidad de desarrollo de software es el referente a las

Más detalles

Programación Orientada a Objetos INTRODUCCIÓN Y CONCEPTOS

Programación Orientada a Objetos INTRODUCCIÓN Y CONCEPTOS Programación Orientada a Objetos INTRODUCCIÓN Y CONCEPTOS Programación OO Vista Macro: La programación orientada a objetos trata sobre el desarrollo de software utilizando un paradigma que descompone el

Más detalles

Diagramas de clases de UML

Diagramas de clases de UML Qué es UML? UML ( Unified Modeling Language ) es un lenguaje visual para crear modelos de sistemas. Diagramas de clases de UML Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad

Más detalles

Unidad II: Diseño de Bases de Datos y el modelo E-R. 2.1 El Proceso de Diseño

Unidad II: Diseño de Bases de Datos y el modelo E-R. 2.1 El Proceso de Diseño Unidad II: Diseño de Bases de Datos y el modelo E-R. 2.1 El Proceso de Diseño El proceso de diseño para una base de datos consta básicamente de 7 pasos, los cuáles se describen en la siguiente imagen.

Más detalles

Unidades temáticas de Ingeniería del Software. Fases del proceso de desarrollo 4ª edición (2008)

Unidades temáticas de Ingeniería del Software. Fases del proceso de desarrollo 4ª edición (2008) Unidades temáticas de Ingeniería del Software Fases del proceso de desarrollo 4ª edición (2008) Facultad de Informática organización del desarrollo El ciclo de vida del software abarca el proceso de desarrollo,

Más detalles

INGENIERÍA DEL SOFTWARE I Tema 1. Introducción a la Ingeniería del Software. Univ. Cantabria Fac. de Ciencias Francisco Ruiz

INGENIERÍA DEL SOFTWARE I Tema 1. Introducción a la Ingeniería del Software. Univ. Cantabria Fac. de Ciencias Francisco Ruiz INGENIERÍA DEL SOFTWARE I Tema 1 Introducción a la Ingeniería del Software Univ. Cantabria Fac. de Ciencias Francisco Ruiz Objetivos Comprender qué es la Ingeniería del Software y su necesidad. Situarla

Más detalles

BASES DE DATOS TEMA 1. INTRODUCCION

BASES DE DATOS TEMA 1. INTRODUCCION Contenidos generales BASES DE DATOS TEMA 1. INTRODUCCION Bases de datos, Sistemas de gestión de bases de datos y Sistemas de bases de datos Bases de datos vs. Sistemas de archivos Objetivos de los Sistemas

Más detalles

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

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos 2.1. Principios básicos del Modelado de Objetos UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos Hoy en día muchos de los procesos que intervienen en un negocio o empresa y que resuelven

Más detalles

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

Fundamentos del diseño 3ª edición (2002) Unidades temáticas de Ingeniería del Software Fundamentos del diseño 3ª edición (2002) Facultad de Informática necesidad del diseño Las actividades de diseño afectan al éxito de la realización del software

Más detalles