Programación Avanzada

Slides:



Advertisements
Presentaciones similares
Unified Modeling Language (UML) Unified Modeling Language (UML) Lenguaje Unificado de Modelado ConceptosBásicos.
Advertisements

Lcda. Ingrid Graü Diseño de Sistemas 1. Lcda. Ingrid Graü Diseño de Sistemas 2.
InfoMedia Planificación. Resumen de tareas ● PLANIFICACIÓN: – Definición del formato de los documentos. – Documentación: Asignación de tareas, recursos.
Ingeniería del Software Diseñó de Software Universidad de los Andes Demián Gutierrez Abril 2009.
Lcdo. Eddy Cortez Sistemas II. Ingeniería de Requisitos.
NIA Planeación de una auditoria de Estados Financieros. NOMBRE: Beatriz Acero Zapana CURSO: Auditoria Financiera ESCUELA: Ciencias Contables y Financiera.
Pruebas de Funcionalidad de Software: Caja Negra y Caja Blanca Curso: Diseño de Sistemas 9no. Semestre.
Organizaciones involucradas: El centro de cálculo noruego. Crea lenguaje llamado Simula 67, desarrollado por Krinsten Nygaard y Ole-Johan Dahl, en 1967.
Programación Avanzada
Análisis de Proyecto de Software.
El Lenguaje de Modelación Unificado
Paul Leger Casos de Usos Paul Leger
Ingeniería de Software: Metodologías
Programación Avanzada
METODOLOGÍA DE SISTEMAS
Ingeniería de requisitos y
Programación Avanzada
Flujo de trabajo: Requerimientos
Programación Avanzada
IEEE-std Práctica Recomendada para la Especificación de Requerimientos de Software Fuente: IEEE Recommendad Practice for Software Requirements.
Pruebas de software Msc. Ing. Ernesto Soto Roca.
Ingeniería de Software
“POLIMORFISMO PARAMETRICO”
Programación Avanzada
INTREGRANTES DE EQUIPO:
CARRERA DE INGENIERÍA EN SISTEMAS E INFORMÁTICA
INTRODUCCIÒN AL SISTEMA GESTOR DE BASE DE DATOS
METODOLOGÍA DE SISTEMAS
Curso de Lenguaje de Modelado Unificado Multiplataforma Adaptativo basado en la Teoría de Respuesta al Item Margarita Rojas Rojas Pedro Salcedo Lagos.
Ciclo de Vida del SIA.
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno. INTRODUCCIÓN A UML  QUE ES UML?  PARA QUE SE UTILIZA  COMPONENTES  DIAGRAMAS.
Tema 3. Lenguaje unificado de modelado UML
(Unified Modeling Language)
UNIVERSIDAD NACIONAL DE LOJA Área de la Educación, el Arte y la Comunicación Informática Educativa IV INGENIERIA DE SOFTWARE Taller de Análisis y Diseño.
Tema 3 Fundamentos y diseño de algoritmos
Estrategia De flujo de datos.
Diagramas del modelo uml
Algoritmo Capitulo Cinco.
Ingeniería del Software
Proceso Unificado de Desarrollo de Software
Modelo de interacción de usuario.  El Desarrollo basado en modelos de la interfaz de usuario, en inglés Model-based User Interface Development (MB-UID),
Una tienda especializada en componentes electrónicos, compra sus existencias a una serie de proveedores, vendiéndolas posteriormente a sus clientes; a.
Danny Frank Otero Arrascue Ingeniería de Requisitos / Requerimientos Advisor: MEJIA CABRERA HEBER IVAN.
Roles del Analista de Sistemas Y Ciclo de Vida del Desarrollo de Sistemas.
Ciclo de vida del Software
Metodologías de Desarrollo de Software RUP – Proceso Racional Unificado Gilber BASILIO ROBLES I.E.S.T.P. “DANIEL ALCIDES CARRIÓN” Taller de Modelamiento.
Análisis y diseño de aplicaciones. Introducción Crisis del software - conferencia organizada en 1968 por la Comisión de Ciencias de la OTAN en Garmisch.
ANALISIS DE SISTEMAS ANALISIS ORIENTADO A OBJETOS.
INTRODUCCIÓN A UML Y AL ADOO 1 Diagramas en UML ◦Diagramas de casos de uso ◦Diagramas de clases y objetos ◦Diagramas de secuencia ◦Diagramas de colaboración.
CICLO DE VIDA DE SOFTWARE
Teoría Nº 3 Conceptos Básicos de Algoritmia Estructuras de Control
Tema: Administración de la configuración de software UNIVERSIDAD TECNOLÓGICA ISRAEL CALIDAD DE SOFTWARE.
IEEE Estándar para documentación de pruebas de software
Casos de Uso Análisis de requisitos con casos de uso.
1 Introducción al proceso unificado de desarrollo de software.
Diagramas de Interacción. Escuela de Ingeniería en Sistemas Computacionales Facultad de Ciencias Matemáticas y Físicas Universidad Estatal
PRESENTACION DE INGENIERIA ORIENTADA A OBJETOS. INTRODUCCION. ¿ Qué es UML ?. UML, por sus siglas en Ingles, Unified Modeling Languaje.(Lenguaje Unificado.
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno. INTRODUCCIÓN A UML  QUE ES UML?  PARA QUE SE UTILIZA  COMPONENTES  DIAGRAMAS.
1 PROGRAMACION ORIENTADA A OBJETOS MARIA LAURA ESPIN B. INSTITUTO TECNOLÓGICO SUPERIOR ÁNGEL POLIBIO CHÁVEZ TECNOLOGÍA SUPERIOR EN DESARROLLO DE SOFTWARE.
Desarrollo de Sistemas de Información Contable - Sis USB 1 METODOLOGIAS DE DESARROLLO DE SOFTWARE.
ANÁLISIS Y DISEÑO DESDE UNA PERSPECTIVA ORIENTADA A OBJETOS Alan Vargas.
Ingeniería de Software: Metodologías
MODELO EN CASCADA Integrantes: Felipe Alemán Lester Blandón.
INTRODUCCIÓN A UML.  QUE ES UML?  PARA QUE SE UTILIZA  COMPONENTES  DIAGRAMAS.
Desarrollo de Sistemas de Información Contable - Sis USB 1 METODOLOGIAS DE DESARROLLO DE SOFTWARE.
PRUEBAS DE CAJA NEGRA. -Internationa Software Testing Qualification Board (ISTQB) Internationa Software Testing Qualification Board (ISTQB) Técnica de.
ICI 502 Procesos de Software
Luis Fernando Muñoz Pantoja Ingeniero de Sistemas Copyright 2019 Luis Fernando Muñoz Pantoja Ingeniero de Sistemas Derechos reservados UML.
La Metodología Kimball, es una metodología empleada para la construcción de un almacén de datos (data warehouse, DW) que no es más que, una colección de.
SIMULACIONES 2019 German Vega Quintero John Farley Paez Santamaria.
Transcripción de la presentación:

Programación Avanzada Desarrollo Orientado a Objetos basado en UML

Proceso de Desarrollo ¿Qué es? ¿Por qué necesitamos uno? Un proceso de desarrollo de software describe un enfoque para construir, instalar y mantener sistemas de software ¿Por qué necesitamos uno? Es necesario conocer de antemano qué actividades debemos realizar Programación Avanzada - Curso 2017 Desarrollo Orientado a Objetos basado en UML

Algunas Actividades Entrar en contexto con la realidad del problema Obtener una descripción de lo que se espera del producto Comprender qué se debe hacer Determinar cómo se debe hacer Hacerlo Probar que esté bien hecho Entregar el producto Hacerle retoques varios Mantenerlo Programación Avanzada - Curso 2017 Desarrollo Orientado a Objetos basado en UML

Pero Hay Más… Realizar estimaciones de tiempo, de costos, de recursos Planificar Asegurarse que las cosas se hagan: En el tiempo previsto De la forma establecida Administrar las diferentes versiones de lo que se va produciendo Montar y mantener los ambientes de desarrollo y prueba Programación Avanzada - Curso 2017 Desarrollo Orientado a Objetos basado en UML

Un Modelo de Proceso Cascada: Relevamiento Análisis Diseño Implementación Testeo Liberación Mantenimiento Programación Avanzada - Curso 2017 Desarrollo Orientado a Objetos basado en UML

Problemas… Cada actividad se realiza en secuencia y luego de finalizar la anterior Para problemas grandes y complejos no resulta una estrategia adecuada: Errores en etapas tempranas se descubren tardíamente No hay visibilidad hasta muy avanzado el proyecto Programación Avanzada - Curso 2017 Desarrollo Orientado a Objetos basado en UML

Otro Modelo Construcción Iterativo e Incremental (I&I): Relevamiento Liberación Mantenimiento Programación Avanzada - Curso 2017 Desarrollo Orientado a Objetos basado en UML

Características Se divide el problema en varios subproblemas Las iteraciones se producen en “Construcción” Se itera sobre una “mini cascada” donde se resuelve cada subproblema: for each (sp:Subproblema) { analisis(sp); diseño(sp); implementacion(sp); testeo(sp); } En la iteración i se resuelve spi llevándose resueltos los subproblemas: sp1, sp2, … , spi-1 Programación Avanzada - Curso 2017 Desarrollo Orientado a Objetos basado en UML

Nuestro Proceso Para poder realizar un proceso I&I es necesario conocer un proceso en cascada Nos concentraremos en algunas actividades dentro de la “cascada” de Construcción: Análisis Diseño Implementación Los pasos concretos a realizar en estas actividades depende del paradigma de desarrollo a seguir Programación Avanzada - Curso 2017 Desarrollo Orientado a Objetos basado en UML

Nuestro Proceso (2) Los requerimientos vendrán dados por Casos de Uso y descripciones generales del sistema Un Caso de Uso narra la historia completa (junto a todas sus variantes) de un conjunto de actores mientras usan el sistema Programación Avanzada - Curso 2017 Desarrollo Orientado a Objetos basado en UML

Caso de Estudio Biblioteca de música El usuario necesita organizar las canciones en su reproductor de música (artista, canción, género) Similar al modelo que se puede encontrar en cualquier reproductor de música online u offline (Winamp, Grooveshark, etc.) Programación Avanzada - Curso 2017 Desarrollo Orientado a Objetos basado en UML

Caso de Uso Nombre Agregar Canción Actor Usuario Sinopsis El caso de uso comienza cuando el usuario necesita agregar una nueva canción al sistema. Para ello especifica su título y el año en que se compuso. Luego El sistema muestra una lista con los Géneros y otra con los Artistas y el usuario selecciona cuáles agrega a la canción. Finalmente si la información es correcta, se da de alta la canción en el sistema Programación Avanzada - Curso 2017 Desarrollo Orientado a Objetos basado en UML

Orientación a Objetos Enfoque diferente al tradicional Puede ser entendida como: Una forma de pensar basada en abstracciones de conceptos existentes en el mundo real Organizar el software como una colaboración de objetos que interactúan entre sí por medio de mensajes Programación Avanzada - Curso 2017 Desarrollo Orientado a Objetos basado en UML

Enfoque Tradicional Una aplicación implementada con un enfoque tradicional presenta la siguiente estructura general: type T = … f1(T t) {…} … fn() {…} main() { //invocaciones a fi } Programación Avanzada - Curso 2017 Desarrollo Orientado a Objetos basado en UML

Enfoque Orientado a Objetos Una aplicación orientada a objetos es el resultado de la codificación en un lenguaje de programación orientado a objetos del siguiente esquema: m1 m m3 o1 o3 o2 m2 o4 m4 o5 Programación Avanzada - Curso 2017 Desarrollo Orientado a Objetos basado en UML

Desarrollo OO Los pasos generales de desarrollo se mantienen en el enfoque orientado a objetos Pero las actividades que constituyen algunos de ellos son particulares: Análisis  Análisis Orientado a Objetos Diseño  Diseño Orientado a Objetos Implementación  Implemenentación Orientada a Objetos Programación Avanzada - Curso 2017 Desarrollo Orientado a Objetos basado en UML

Desarrollo OO (2) Ciertas actividades son demasiado complejas para realizarlas mentalmente en el desarrollo de una aplicación de mediano porte en adelante Programación Avanzada - Curso 2017 Desarrollo Orientado a Objetos basado en UML

Desarrollo OO (3) Es necesaria una herramienta (conceptual) que permita a la vez: Servir de ayuda para el desarrollo de la tarea (uno mismo) Visualizar lo hecho hasta el momento (uno mismo) Comunicar el avance obtenido (el cliente y el equipo de desarrollo) Documentar el desarrollo de la aplicación (el equipo de desarrollo) Programación Avanzada - Curso 2017 Desarrollo Orientado a Objetos basado en UML

Desarrollo OO (4) UML es el estándar para modelado de software Es un lenguaje que puede ser aplicado cualquiera sea el método particular de desarrollar software orientado a objetos Utilizaremos algunos de sus diagramas para asistir nuestro desarrollo Programación Avanzada - Curso 2017 Desarrollo Orientado a Objetos basado en UML

Análisis Orientado a Objetos Considerar el dominio de la aplicación y su solución lógica en términos de conceptos (cosas, entidades) Concepto clave: abstracción Objetivo: encontrar y describir los conceptos en el dominio de la aplicación: Esto permite comprender mejor la realidad y el problema Programación Avanzada - Curso 2017 Desarrollo Orientado a Objetos basado en UML

Análisis Orientado a Objetos (2) Estos conceptos pueden entenderse como una primera aproximación a la solución al problema En un sistema de software orientado a objetos (bien modelado) existe un isomorfismo entre estos conceptos y los elementos que participan en el problema en la vida real Programación Avanzada - Curso 2017 Desarrollo Orientado a Objetos basado en UML

Análisis Orientado a Objetos (3) Realidad Dodge Viper Rivera 9332 John Walker Modelo conduce Auto vive en Casa Persona Programación Avanzada - Curso 2017 Desarrollo Orientado a Objetos basado en UML

Análisis OO :: Actividades Modelado de Dominio Modelar el dominio para comprender mejor el contexto del problema Herramienta: Diagrama de Clases Especificación del Comportamiento Contar con una descripción más precisa de qué es lo que se espera del sistema Herramientas: Diagramas de Secuencia del Sistema y Contratos Programación Avanzada - Curso 2017 Desarrollo Orientado a Objetos basado en UML

Análisis OO :: Dominio Un Modelo de Dominio contiene los conceptos y sus relaciones que sean significativos en el dominio del problema La información es provista principalmente por los Casos de Uso Se incluyen además las restricciones a las cuales está sujeto el dominio Programación Avanzada - Curso 2017 Desarrollo Orientado a Objetos basado en UML

Modelo de Dominio Programación Avanzada - Curso 2017 Desarrollo Orientado a Objetos basado en UML

Análisis OO :: Comportamiento Los Diagramas de Secuencia del Sistema ilustran la forma en que los actores realizan “invocaciones” sobre el sistema Los diferentes escenarios de uso son los definidos en los Casos de Uso El efecto de cada mensaje es especificado en forma precisa por medio de un Contrato Programación Avanzada - Curso 2017 Desarrollo Orientado a Objetos basado en UML

Diagrama de secuencia (DSS) Programación Avanzada - Curso 2017 Desarrollo Orientado a Objetos basado en UML

Caso de Estudio Contrato Operación ingresarCancion(titulo:string, año: int) Descripción Comienza el ingreso de una nueva canción al sistema especificando la información básica Pre-condiciones 1. No existe una canción de nombre igual a titulo 2. El parámetro año no es mayor al año actual Post- condiciones El sistema recuerda el titulo y el año especificados, para usarse posteriormente. Programación Avanzada - Curso 2017 Desarrollo Orientado a Objetos basado en UML

Diseño Orientado a Objetos Objetivo: definir objetos lógicos (de software) y la forma de comunicación entre ellos para una posterior programación En base a los “conceptos candidatos” encontrados durante el análisis y por medio de ciertos principios y técnicas, se debe decidir: Cuáles de éstos serán los objetos que participarán en la solución Cómo se comunican entre ellos para obtener el resultado deseado Programación Avanzada - Curso 2017 Desarrollo Orientado a Objetos basado en UML

Diseño Orientado a Objetos (2) Concepto clave: responsabilidades En esta transición: No todos los conceptos necesariamente participarán de la solución Puede ser necesario “reflotar” conceptos inicialmente dejados de lado Será necesario fabricar “ayudantes” (también objetos) para que los objetos puedan llevar a cabo su tarea Programación Avanzada - Curso 2017 Desarrollo Orientado a Objetos basado en UML

Diseño OO :: Actividades Diseño de Interacciones definir cómo se comunican los objetos para resolver las operaciones del sistema Herramienta: Diagrama de Comunicación Diseño de Estructura especificar la estructura necesaria para que todas las interacciones puedan ocurrir Herramienta: Diagrama de Clases de Diseño Programación Avanzada - Curso 2017 Desarrollo Orientado a Objetos basado en UML

Diseño OO :: Interacciones Se realiza un Diagrama de Comunicación por operación del sistema Los objetos protagonistas aparecen “sugeridos” en el Modelo de Dominio El resultado esperado es el especificado en el contrato de la operación a diseñar Programación Avanzada - Curso 2017 Desarrollo Orientado a Objetos basado en UML

Diagramas de Comunicación Programación Avanzada - Curso 2017 Desarrollo Orientado a Objetos basado en UML

Diseño OO :: Estructura Se resume la información provista por los Diagramas de Comunicación La estructura está guiada por el Modelo de Dominio Generalmente se realiza un único Diagrama de Clases que resume toda la información Programación Avanzada - Curso 2017 Desarrollo Orientado a Objetos basado en UML

Diagrama de Clases de Diseño Programación Avanzada - Curso 2017 Desarrollo Orientado a Objetos basado en UML

Implementación OO Su objetivo es codificar en un lenguaje de programación orientado a objetos las construcciones definidas en el diseño La definición de los objetos y el intercambio de mensajes requieren construcciones particulares en el lenguaje a utilizar Programación Avanzada - Curso 2017 Desarrollo Orientado a Objetos basado en UML

Resumen Cont. 1 Cont. 2 Esc. Típico Esc. Alternat. 1 Casos de Uso Esc. Alternat. n Cont. 1 Cont. 4 Programación Avanzada - Curso 2017 Desarrollo Orientado a Objetos basado en UML