Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional...

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

Transcript of Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional...

Page 1: Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion.

Ingeniería de Software Orientada a Objetos

Ing. Fernando A. Cuenca

Universidad Tecnologica NacionalFacultad Cordoba

Laboratorio de SistemasArea de Investigacion & Desarrollo

Breve Revisión para Jefes de Proyecto

Page 2: Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion.

Agenda

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

Page 3: Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion.

El marco conceptual

Filosofía

Arquitectura

Método

Proceso

Herramientas

Page 4: Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion.

Arquitectura tradicional

Subrutinas

Datos globales

Page 5: Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion.

Arquitectura Orientada a Objetos

Page 6: Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion.

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

Page 7: Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion.

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

Page 8: Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion.

¿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.

Page 9: Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion.

¿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.

Page 10: Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion.

Objetos: algunos ejemplos

Dominio del Problema Objetos

Operaciones comercialesArtículos, Facturas,Ventas, Compras, Clientes,Contratos, Créditos, etc.

Procesos industrialesOrden de Fabricación,Productos y piezas,Métodos, Máquinas, etc.

Redes de ComputadorasNodos, Enlaces,Protocolos, Dispositivos,Usuarios, Permisos, etc.

Page 11: Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion.

¿Qué es una Clase?

Plantilla (o template)Una Clase es la especificación o

descripción genérica de un conjunto de objetos

Conjunto de instanciasUna Clase es un conjunto de objetos que

comparten características y comportamientos comunes

Page 12: Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion.

Objetos vs. Clases

Objetoentidad individual

ClaseEspecificación o descripción genérica

Todo Objeto es instancia de una Clase

Page 13: Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion.

Mensajes y Polimorfismo

Mensaje

Método

ObjetoReceptor

ObjetoEmisor

Page 14: Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion.

Herencia: “es-un”

Page 15: Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion.

Composición: “parte-de”

C o m p u t a d o r a

M o n i t o r

G a b i n e t e

M o u s e

T e c l a d o

C P U M e m o r i a R A M D i s k e t t e r a D i s c o D u r o

Page 16: Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion.

OOSE

Análisis TesteoConstrucciónRequerimientos Sistema

Page 17: Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion.

Análisis

Requerimientos Análisis de Robustez

Análisis de Requerimientos

Modelo de Use Cases

Modelo de Análisis

Page 18: Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion.

Construcción

ImplementaciónDiseño

Modelo de Use Cases

Modelo de Análisis

Modelo de Diseño

Modelo de Implementación

Page 19: Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion.

Testeo

Testeo de unidad

Modelo de Use Cases

Modelo de Diseño

Modelo de Implementación

Testeo de Integración

Testeo de Sistema

Producto Final

Modelo de Testeo

Page 20: Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion.

Rol del Modelo de Use Cases

Modelo de Use Cases

Modelo deTesteo

Modelo de Implementación

Modelo de Diseño

Modelo de Análisis

Modelo delDominio

Expresado

Estructurado

Materialiado

Implementado

Validado

Page 21: Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion.

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.

Page 22: Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion.

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

Page 23: Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion.

¿Modelamos el negocio o el software?

Page 24: Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion.

Un ejemplo: Use Cases del negocio

Consulta en Sala de Lectura

Prestamo a Domicilio

Lector

Comision Directiva

Revision para Actualizacion

Page 25: Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion.

Un ejemplo: Use Cases del sistema informático

Consultar disponibilidad libro

Consignar Préstamo

Consignar Devolución

Bibliotecario

Confeccionar reporte de disponibilidades

Page 26: Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion.

Use Cases y Escenarios

Curso normal y cursos alternativos Extensiones y variaciones Relaciones de uso

Page 27: Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion.

Más modelos...

Modelo de Objetos del Dominio Modelo de Objetos/Diagramas de Clases Diagramas de Interacción Diagramas de Transición de Estados

Page 28: Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion.

El Proceso de Desarrollo

Procesos en Cascada vs. Iterativos e Incrementales

Macroproceso y Microproceso

Page 29: Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion.

El proceso Objectory

Concepción Elaboración Transición1 2 3 ...

Construcción

Page 30: Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion.

Concepción

“Tengo una idea! ... podríamos hacer un sistema que nos permita....”

Análisis de Factibilidad Alcances preliminares del proyecto

Page 31: Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion.

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

Page 32: Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion.

Elaboración

Riesgos asociados a requerimientos Riesgos tecnológicos Riesgos asociados a la capacitación Riesgos políticos

Page 33: Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion.

Elaboración: Actividades

Modelado de Use Cases Modelado del Dominio Modelo de Diseño Construcción del prototipo

Page 34: Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion.

Elaboración: la arquitectura de base

Modelo de Use Cases Modelo del Dominio Plataforma tecnológica

Page 35: Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion.

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%)

Page 36: Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion.

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

Page 37: Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion.

Transición

Optimización Ajuste fino de los detalles Definición de los detalles de la puesta

en marcha

Page 38: Ingeniería de Software Orientada a Objetos Ing. Fernando A. Cuenca Universidad Tecnologica Nacional Facultad Cordoba Laboratorio de Sistemas Area de Investigacion.

Preguntas y Respuestas