Ingeniería de Software Orientada a Objetos

Slides:



Advertisements
Presentaciones similares
MODELOS ORIENTADOS A OBJETOS
Advertisements

U.M.L A/Gx. Diego Gutiérrez Application Analysis and Design.
METODOLOGÍA ORIENTADA A OBJETOS CARACTERISTICAS DEL PROCESO
Metodologías ágiles.
PROCESO Y MODELOS EN LA INGENIERIA DE SOFTWARE
METODOLOGÍAS ÁGILES “PROCESO UNIFICADO ÁGIL (AUP)
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.
Fundamentos de Ingeniería de Software
Prof. César Luza Montero
Proyecto de Ingeniería de Software 2008
Procesos de la Ingeniería
CheckIn4Android.
Ingeniería del Software
Ingeniería del Software
Análisis y Diseño O.O. Click to add notes Preguntas del diseño :
Evaluación de Productos
Diseño de un Sistema de Control en Tiempo Real para el Kernel del Sistema Operativo utilizando MatLab-SimuLink Por: MARCO ANTONIO ESPINEL CANGUI DIRECTOR:
Erique Gaspar, Carlos Alfredo
Desarrollo Orientado a Objetos con UML
METODOLOGIA DE LA PROGRAMACION
PLANEACION DE UNA ESTRUCTURA ORGANIZACIONAL
Propuesta de una metodología para el desarrollo de proyectos informáticos empleando la herramienta para el diseño automatizado GeneXus Autor: Dipl.-Ing.
Left Case: Int Case v1.0 Roberto Galache García Tutores: Francisco José García Peñalvo Francisco José García Peñalvo Iván Álvarez Navia Iván Álvarez Navia.
DEPARTAMENTO DE INGENIERÍA INFORMÁTICA
(c) P. Gomez-Gil, INAOE DISEÑO DE COMPONENTES DE SOFTWARE * NOTAS DEL CURSO Ingeniería de Software I DRA. MARIA DEL PILAR GÓMEZ GIL INAOEP.
* FRAUSTO JIMENEZ GABRIELA * * HERNANDEZ TORRES ANA LAURA * * MANDUJANO JUAN CARLOS * * NOVA MARIN YARELI PAULINA * * ZAVALA CORTE JOCELYN ARELI *
Ingeniería de Software
Ingeniería de Software Orientado a Objetos
DISEÑO DE SOFTWARE 1ª. Parte
CICLO DE VIDA DEL SOFTWARE
Las etapas de un proyecto
Gestión de Proyectos Informáticos Sesión N° 5 Ciclo de Vida de un Proyecto Roberto Jijena I.
REQUERIMIENTOS DE SOFTWARE
1 Diseño Orientado a Objetos Agustín J. González ELO-329: Diseño y Programación Orientados a Objetos 1er. Sem
INGENIERIA DE SOFTWARE
Taller de Sistemas de Programas Clase 2 Dpto. de Computación y T.I.
Metodología para el desarrollo de Software educativo POO
Tecnológico de Estudios Superiores Huixquilucan Fundamentos de Sistemas Ingeniería en Sistemas Computacionales Lic.: Lydia Villavicencio Gómez “Paradigmas.
CS-432: Ingeniería Moderna de Software Semana 3
Proyecto de Ingeniería de Software Grupo 9 Septiembre 2009
Ingeniería de Software: Metodologías Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de:
Métricas Técnicas para Sistemas Orientados a Objeto
CASOS DE USO Ing. Sonia Godoy H..
SICSTRA Sistema de Información para el control de solicitudes de tramites jurídicos Ministerio de Justicia y Seguridad Pública.
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
Ingeniería de software
Ximena Romano – Doris Correa
INSTITUTO TECNOLOGICO DE MINATITLAN ASIGNATURA: FUNDAMENTOS DE PROGRAMACION DOCENTE: JOSE ANGEL TOLEDO ALVAREZ ALUMNA: ALEJANDRA OSORIO ARVISU SEMESTRE:
1 Diseño Orientado al Objeto Agustín J. González ELO-326: Seminario de Computadores II 2do. Sem
Importancia en la efectividad del:
El modelo de análisis tiene como objetivo generar una arquitectura de objetos que sirva como base para el diseño posterior del sistema. Dependiendo del.
Facultad de Ingeniería
Proyecto de Ingeniería de Software Grupo Nº 9 - GXPost (Desarrollo con GeneXus 8.0) Evaluación de la Fase Construcción (Jueves 4 de Noviembre de.
La Universidad de Guayaquil Carrera de Ingeniería en Sistemas.
Introducción a UML Departamento de Informática Universidad de Rancagua
Taller de Sistemas de Programas Clase 5 Dpto. de Computación y T.I.
Ingeniería de Requisitos
1 Motor de Generación de Formularios para Infocorp Presentación del Proceso.
Relación con otras asignaturas del plan de estudio
Unidad 3 MODELO DE ANALISIS.
Actividades en el Proceso de desarrollo de Software
The Arquitecture of Service - Orientation Integrantes : Ricardo Macedo Henry Renato Paz Carolina Vigil.
Capas de ingeniería del Software. Rosendo Antonio Manuel Ingeniería en Sistemas Computacionales.
Introducción AOO. Contenido - Introducción - Repaso de Orientación a Objetos - UML - Casos de Uso.
RAPID APPLICATION DEVELOPMENT RAD. Proceso de RAD Involucrar en todos los aspectos al usuario en el desarrollo del sistema Uso continuo y repetitivo de.
ELO-329: Diseño y Programación Orientados a Objetos1 Proceso de Desarrollo de SW Agustín J. González ElO329: Diseño y Programación Orientados a Objeto.
Fundamentos de Ingeniería de Software
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.
Entregables del Proyecto
Transcripción de la presentación:

Ingeniería de Software Orientada a Objetos Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion & Desarrollo Ingeniería de Software Orientada a Objetos Breve Revisión para Jefes de Proyecto Ing. Fernando A. Cuenca

Agenda Métodos y procesos Revisión de Conceptos de O-O OOSE Modelo de Use Cases El Proceso Objectory

El marco conceptual Herramientas Proceso Método Arquitectura Filosofía

Arquitectura tradicional Estructuras de datos globales y pasivas Algoritmos que manipulan esa estructura de datos Serios problemas de acoplamiento

Arquitectura Orientada a Objetos Conjunto cooperante de objetos encapsulados que interactúa por medio del envío de mensajes

Ventajas de la OO Modelado mas natural de los problemas Mejor manejo de la complejidad Fomenta el reuso, con gran impacto en productividad y confiabilidad Facilita el mantenimiento y extensión

Efectos de Encapsulamiento Componentes autocontenidos Separación entre Interfaz e Implementación Acceso controlado a la parte privada Libertad para modificar la implementación Menor nivel de acoplamiento

¿Qué significa “Orientado a Objetos”? Un modelo es orientado a objetos cuando está compuesto por un conjunto de objetos que cooperan entre si enviándose mensajes. Dichos objetos pertenecen a clases, las cuales pueden relacionarse entre si por medio de la herencia.

¿Qué es un Objeto? Un Objeto representa un ítem o entidad individual (ya sea conceptual o real) con un rol bien definido en el dominio del problema. Dominio del problema: aquella porción particular del mundo que puede distinguirse porque convenientemente se la considera como un todo, hasta cierto punto, separado del resto de la realidad. En el contexto de todo desarrollo de software, hay al menos dos dominios: el Dominio del Problema y la Dominio de la Máquina. Puede pensarse que en Dominio del Problema es aquello que esta dado, mientras que el de la Máquina es aquel a contruir.

Objetos: algunos ejemplos

¿Qué es una Clase? Plantilla (o template) Conjunto de instancias Una Clase es la especificación o descripción genérica de un conjunto de objetos Conjunto de instancias Una Clase es un conjunto de objetos que comparten características y comportamientos comunes

Objetos vs. Clases Objeto Clase Todo Objeto es instancia de una Clase entidad individual Clase Especificación o descripción genérica Todo Objeto es instancia de una Clase

Mensajes y Polimorfismo La única forma de acceder a un objeto es enviándole un Mensaje. “Acceder” obtener información del objeto solicitar la realización de una acción El objeto está encapsulado Elementos: Emisor y Receptor (Cliente y Servidor) Selector y parámetros Método Polimorfismo: es la habilidad que tienen diferentes clases para comportarse de manera diferente ante el mismo mensaje. Desde el punto de vista del receptor: Es la capacidad de diferentes objetos de responder de diferente manera ante el mismo mensaje. Desde el punto de vista del emisor: Es la capacidad para manipular objetos de diferentes clases solo en base al conocimiento de sus propiedades comunes, sin tener en cuenta la clase exacta a la que pertenecen.

Herencia: “es-un” Permite definir nuevas clases en base a otras clases ya existentes. Expresa relaciones semánticas (es-un) Generalización/Especialización La subclase extiende la superclase, redefiniendo y/o agregando propiedades.

Composición: “parte-de” Jerarquías de “todo-y-parte”

OOSE Construcción Testeo Requerimientos Análisis Sistema

Análisis Análisis de Robustez Requerimientos Análisis de Modelo de Use Cases Modelo de Análisis

Construcción Modelo de Use Cases Diseño Implementación Modelo de Análisis Modelo de Diseño Modelo de Implementación

Testeo Modelo de Use Cases Testeo de unidad Modelo de Diseño Producto Final Testeo de Integración Testeo de Sistema Modelo de Implementación Modelo de Testeo

Rol del Modelo de Use Cases Expresado Validado Modelo del Dominio Modelo de Testeo Estructurado Implementado Materialiado Modelo de Análisis Modelo de Diseño Modelo de Implementación

Use Cases Un Use Case es una secuencia típica de interacciones entre el sistema y sus actores, que apunta a obtener un resultado de valor para los mismos. Las interacciones comienzan a partir del primer evento y continúan hasta que el objetivo primario del actor se satisface o se abandona.

Actores Un Actor es un rol que entes del entorno asumen en relación al sistema Entes: personas, dispositivos, sistemas, etc. 1 Usuario = 1 o más roles Actores primarios y secundarios Un Usuario en particular puede jugar múltiples roles en diferentes momentos del tiempo Los Actores pueden materializarse en personas, dispositivos, sistemas externos, etc. Actores primarios: un actor que tiene un cierto objetivo para cuyo cumplimiento requiere de la asistencia del sistema Actores secundarios: actores desde los cuales el sistema requiere asistencia para poder cumplir sus funciones.

¿Modelamos el negocio o el software? Un sistema informático da soporte al funcionamiento de un sistema de negocios Los use cases pueden utilizarse para modelar los casos de uso del negocio por parte de los clientes externos, o bien para modelar la utilización por parte de los recursos de la organización de los sistemas informáticos que les permiten llevar adelante dichos procesos de negocio para sus clientes.

Un ejemplo: Use Cases del negocio

Un ejemplo: Use Cases del sistema informático

Use Cases y Escenarios Curso normal y cursos alternativos Extensiones y variaciones Relaciones de uso Escenario: un camino en particular a través de un Use Case, que muestra una particular combinación de condiciones dentro de ese Use Case. Todo Use Case tiene al menos un escenario: aquel donde todo sale bien (el curso normal) Extensiones: alteraciones significativas en el curso de eventos Variaciones: alternativas poco significativas que pueden ocurrir en una cierta interacción. Relaciones de Uso: permiten extraer porciones comunes entre varios use cases.

Más modelos... Modelo de Objetos del Dominio Modelo de Objetos/Diagramas de Clases Diagramas de Interacción Diagramas de Transición de Estados

El Proceso de Desarrollo Procesos en Cascada vs. Iterativos e Incrementales Macroproceso y Microproceso

El proceso Objectory Construcción Concepción Elaboración Transición 1 2 3 ... De acuerdo a “UML Distilled” de Matrin Fowler.

Concepción “Tengo una idea! ... podríamos hacer un sistema que nos permita....” Análisis de Factibilidad Alcances preliminares del proyecto

Elaboración Definición de los requerimientos Análisis y diseño de alto nivel Establecer la arquitectura de base Planificar la construcción Análisis de Riesgo como fuerzas guia

Elaboración Riesgos asociados a requerimientos Riesgos tecnológicos Riesgos asociados a la capacitación Riesgos políticos Riesgos de requerimientos: evitar construir el sistema incorrecto Riesgos tecnológicos: como calzan juntas las distintas piezas tecnológicas a usar? Riesgos de capacitación: tenemos la experiencia y know-how suficiente para el proyecto? Riesgos políticos: que tipo de reacciones se espera que aparezcan en la organización si el proyecto se concreta o fracasa?

Elaboración: Actividades Modelado de Use Cases Modelado del Dominio Modelo de Diseño Construcción del prototipo Modelado de Use Cases: capturar los requerimientos funcionales Modelado del Dominio: comprender los conceptos que hay detrás del vocabulario del problema Modelo de Diseño: establecer la arquitectura del sistema, con énfasis en la futura extensibilidad del sistema

Elaboración: la arquitectura de base Modelo de Use Cases Modelo del Dominio Plataforma tecnológica

Elaboración: planificación de la construcción Priorizar los Use Cases Estimar el tiempo requerido para cada Use Case Definir el largo de la iteración (en semanas) Calcular la cantidad de iteraciones Asignar Use Cases a iteraciones Agregar tiempo extra por contingencias (10% - 20%) Los Use Case se priorizan en función de su importancia funcional, su riesgo arquitectural y la certeza en su estimación El largo de la iteración debe ser fijo, para darle un ritmo constante al proyecto y evitar la parálisis. La fecha finalización interna no debe considerar el período de contingencias, pero la externa si.

Construcción Cada iteración es un “mini-proyecto” Cada iteración se centra en ciertos Use Cases Cada iteración es incremental No se permite desplazar fechas

Transición Optimización Ajuste fino de los detalles Definición de los detalles de la puesta en marcha Durante la Transición no hay desarrollo nuevo para incrementar la funcionalidad, pero si para corregir errores, realizar ajuste fino, etc.

Preguntas y Respuestas