SlideShare una empresa de Scribd logo
1 de 40
Metodologías de Análisis y Diseño Unidad I Introducción a la Orientación a Objetos y el Modelado Sergio Sánchez Rios. Ingeniero en Informática – Licenciado en Informática
¿Por qué la Orientación a Objetos? Principalmente porque la mayoría de los sistemas que se están desarrollando hoy en día están adoptando algunas o todas las nociones que involucra la orientación a objetos.  Un poco de Historia. AÑOS 80: no se soluciona la “crisis del software” - poca capacidad de estimación - baja calidad de los programas - elevados costes de mantenimiento - duplicación de esfuerzos (ausencia de reutilización) ENFOQUE DE OBJETOS COMO ALTERNATIVA SIMULA  (Noruega, 1967): lenguaje de simulación de sucesos SMALLTALK  (PARC, años 70): combina el concepto de clase de SIMULA con la capacidad de abstracción funcional del LISP. Años 80 : Interés por las IGU (interfaces gráficas de usuario): su elevada complejidad se compensa con un alto grado de reutilización. Finales 80 y principios 90:  interés por los métodos O.O. (diseño, especificación,...) ENFOQUE ESTRUCTURADO
¿Qué es la Orientación a Objetos? Es un enfoque de desarrollo de software que organiza tanto el problema como su solución como una colección de objetos discretos, tanto la estructura de datos  como el comportamiento están incluidos en la representación. Una representación orientada a objetos (OO) puede reconocerse  por sus siete características: Abstracción, Identidad, Clasificación, Encapsulamiento, Herencia, Polimorfismo y Persistencia. Algunas representaciones solo se basan en un subconjunto de estas características. A estas les llamaremos basadas en objetos.
Características - Identidad Se refiere al hecho de que los datos son organizados en entidades discretas y distinguibles. Denominadas objetos. ¿Qué es un objeto? Conceptualmente, un objeto es una cosa con la que se puede interactuar: se le pueden enviar varios mensajes y éste reacciona ante ellos. De está forma , un objeto simple tiene estados y comportamientos asociados.  (Grady Booch).
Características - Identidad ¿Qué es un objeto? Ejemplo: Sistema para el manejo del dique de un río  El Dique es un objeto Cada Objeto posee un nombre, el que lo distingue de otros objetos. ¿Qué es el estado de un objeto? El estado de un objeto lo constituyen todos los datos que encapsula en un momento determinado.  Un objeto normalmente tiene un número de lo que se conoce como atributos cada uno de los cuales tiene un valor. En la mayoría de los lenguajes orientados a objetos (LOO), hoy en día el conjunto de atributos de un objeto no puede cambiar durante su vida, pero si sus valores.
Características - Identidad ¿Qué es el estado de un objeto? Ejemplo: ,[object Object],[object Object],[object Object],¿Qué es el comportamiento de un objeto? Es la manera como actúa y reacciona un objeto, en función de sus cambios de estado y el paso de mensajes.  Un objeto comprende ciertos mensajes, lo que quiere decir que puede recibir mensajes y actuar sobre ellos. El conjunto de mensajes que entiende un objeto, al igual que el conjunto de atributos que tiene, normalmente está fijado.
Características - Identidad ¿Qué es el comportamiento de un objeto? Ejemplo: Comportamientos del Dique Alarma sonora: Avisa a los cercanos que un dique cambia de estado cerrado a abierto. (Para que se alejen)  ¿Qué son los mensajes? Los mensajes son el medio a través del cual los objetos interactúan  Un mensaje estimula la ocurrencia de cierto comportamiento en el objeto receptor. El comportamiento se realiza cuando se ejecuta una operación. 
Características - Abstracción Está característica es importante para crear cualquier sistema sea orientado a objetos o no. Ayuda a representar los diferentes puntos de vista incorporados en el sistema que se desarrolla.
Características - Clasificación Se permite agrupar objetos que tienen atributos y comportamientos en común (Concepto de clases). GRUPO DE AVIONES GRUPO DE AUTOS
Características - Clasificación ¿Qué es una Clase? Una clase describe un conjunto de objetos que tiene un rol o roles equivalentes en el sistema. En los lenguajes O.O basados en clases, cada objeto pertenece a una clase, y la clase de un objeto es quien determina su interfaz. Los atributos que tiene un objeto vienen determinados por su clase, aunque, por supuesto, los valores que toman dichos atributos no están determinados por la clase, pudiendo variar. Los objetos de una misma clase tienen las mismas interfaces.
Características - Clasificación ¿Qué es una Clase? Una clase se puede representar usando una caja. Es importante mencionar que la clasificación refleja la perspectiva de la persona o grupo de trabajo que la realizo. Ej.: Se podrían a ver colocado bicicletas y aviones en la clase vehículos de transporte.
Características - Clasificación ¿Qué es una Clase? Se dice que un  “objeto”   es una instancia de una clase. Cada instancia tiene sus propios atributos (es decir, tiene sus propio estado en cualquier instante de tiempo), pero comparte nombre y comportamiento con las otras instancias de la clase. Por lo tanto una clase describe un conjunto de objetos que comparten una estructura común y tienen comportamientos comunes, pero los valores de los atributos nos ayudan a distinguir cada objeto particular.
Características - Encapsulamiento Las clases encapsulan los atributos y comportamientos de un objeto, ocultando los detalles de implementación. Es un complemento de la abstracción. ABSTRACCION ENCAPSULAMIENTO Empleado Empleado DNI Nombre Categoría Contratar Pagar Despedir
Características - Encapsulamiento La encapsulación no es lo mismo que el ocultamiento de información. El encapsulamiento es una técnica para empaquetar la información de tal forma que se oculte lo que debe ser ocultado y se haga visible lo que está pensando que sea visible.
Características - Herencia Las clases pueden ser organizadas jerárquicamente de acuerdo con las semejanzas y diferencias entre ellas. Para construir las jerarquías se comienza definiendo ampliamente una clase para refinarla luego en subclases más especializadas. Una subclase puede heredar la estructura así como el comportamiento y atributos de su superclase. Clase Abstracta, es una clase que no tiene instancias solo subclases.
Características - Polimorfismo Cuando el comportamiento se manifiesta de maneras diferentes en diferentes clases o subclases, estamos hablando de polimorfismo. Ej.: Una implementación especifica de una operación  para una cierta clase se denomina “método”. En un sistema con polimorfismo, una operación puede tener más de un método que la implemente.
Características - Persistencia La capacidad del nombre, estados y comportamientos de un objeto para trascender el espacio o el tiempo. En otras palabras, el nombre, estado y comportamiento de un objeto se conservan cuando el objeto es transformado.
Proceso de Desarrollo OO ,[object Object],[object Object],[object Object],[object Object],[object Object]
Proceso de Desarrollo OO La consistencia a través del proceso es una diferencia clave entre los procedimientos de desarrollo más tradicionales y el proceso de desarrollo OO.  Un proceso OO utiliza el encapsulamiento de datos y el comportamiento para formar unidades independientes (objetos). Y estas mismas estructuras semánticas representan el sistema desde los requerimientos a la implementación y prueba de la aplicación. Por lo tanto, la OO es una filosofía de representación de problema solución, y no una representación del ciclo de vida en sí. De está forma, la OO puede aplicarse en cualquiera de los ciclos de vida,  desde el modelo en cascada al espiral.
Proceso de Desarrollo OO Requerimientos en OO El análisis OO de requerimientos usualmente se realiza en el lenguaje del usuario  y discute los conceptos y escenarios probablemente en el dominio de la aplicación. Los conceptos incluyen información, servicio y responsabilidades.  El conocimiento del dominio habilita a los desarrolladores para entender el contexto en el cual se usará el sistema y para describir requerimientos de una forma tal que los usuarios los entenderán.  Hay que tener claro ,por su puesto,  que la definición de requerimientos puede ser independiente de sus representaciones como objetos.
Proceso de Desarrollo OO Diseño OO ,[object Object],[object Object],[object Object]
Proceso de Desarrollo OO Diseño OO Se considera que el diseño del sistema es una abstracción de alto nivel de lo que será en el futuro el diseño del programa.
Proceso de Desarrollo OO Codificación y Prueba OO Una vez hecho el diseño, se describe el sistema a un nivel muy bajo, usando modelos de objetos, atributos y comportamientos. La codificación procede traduciendo los modelos a un lenguaje de programación OO. Este proceso no es trivial, por lo general a los implementadores les resulta necesario refinar las estructuras jerárquicas y efectuar ajustes a medida que los requerimientos crecen y maduran. Las pruebas del sistema siguen el mismo curso (Prueba Unitaria, Integración y del sistema).
Proceso de Desarrollo OO Codificación y Prueba OO Acá se muestran los diferentes niveles de abstracción, y su relación con las pruebas.  Sistema Subsistema Jerarquía de Clases Clase Niveles de abstracción Prueba  del Sistema Prueba  Unitaria Prueba de Integración Prueba de Sistema
Modelado del Sistema ,[object Object],[object Object],[object Object],[object Object]
Modelado del Sistema ,[object Object],[object Object],[object Object],[object Object],[object Object]
Modelado del Sistema ,[object Object],[object Object],[object Object],[object Object],[object Object]
 
UML: ¿ Qué es UML? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
UML: Situación de Partida ,[object Object],[object Object],[object Object],[object Object],[object Object]
UML: Historia  ,[object Object],[object Object]
UML: Historia  Nov ‘97 UML aprobado por el OMG 1998 1999 2000  UML 1.2 UML 1.3 UML 1.4 2001-2003 UML 2.0 Revisiones menores
UML: Participantes en UML 1.0  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
UML: Aglutinamiento de enfoques UML Rumbaugh Jacobson Meyer Harel Wirfs-Brock Fusion Embly Gamma et. al. Shlaer-Mellor Odell Booch Pre- and Post-conditions State Charts Responsabilities Operation descriptions,  message numbering Singleton classes Frameworks, patterns,  notes Object life cycles
UML: Inconvenientes ,[object Object],[object Object],[object Object],[object Object]
UML: Perspectivas ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
UML: Modelo Conceptual ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
UML: Modelo Conceptual ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
UML: Arquitectura Vista de diseño Vista de  procesos Vista de  despliegue Vista de  implementación Vista de casos  de uso Comprende las clases, interfaces y colaboraciones que forman el vocabulario del problema y su solución. Aspectos estáticos : diagramas de clases y objetos. Aspectos dinámicos : diagramas de interacción, de estados y de actividades Comprende los casos de uso que describen el comportamiento del sistema, tal y como es percibido por los usuarios finales, analistas y encargados de pruebas. Aspectos estáticos : diagramas de casos de uso. Aspectos dinámicos : diagramas de interacción, de estados y de actividades Comprende los hilos (threads) y procesos que forman los mecanismos de sincronización y concurrencia del sistema Aspectos estáticos y dinámicos : los mismos que la vista de diseño, pero con énfasis en las clases activas Comprende los componentes y archivos que se utilizan para ensamblar y hacer disponible el sistema físico. Aspectos estáticos : diagramas de componentes. Aspectos dinámicos : diagramas de interacción, de estados y de actividades Contiene los nodos que forman la topología hardware. Aspectos estáticos : diagramas de despliegue. Aspectos dinámicos : diagramas de interacción, de estados y de actividades
Bibliografía ,[object Object],[object Object],[object Object],[object Object],[object Object]

Más contenido relacionado

La actualidad más candente

Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)Sergio Sanchez
 
1. introduccion a la programación orientada a objeto (poo)
1.  introduccion a la programación orientada a objeto (poo)1.  introduccion a la programación orientada a objeto (poo)
1. introduccion a la programación orientada a objeto (poo)Roberto Rojas
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetosAngel Laverde ID
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clasesstill01
 
Fundamentos de POO
Fundamentos de POOFundamentos de POO
Fundamentos de POOgueritamala
 
Elementos básicos de la programación orientada a objetos.
Elementos básicos de la programación orientada a objetos.Elementos básicos de la programación orientada a objetos.
Elementos básicos de la programación orientada a objetos.Whaleejaa Wha
 
PROGRAMACION ORIENTADA A OBJETOS
PROGRAMACION ORIENTADA A OBJETOSPROGRAMACION ORIENTADA A OBJETOS
PROGRAMACION ORIENTADA A OBJETOSAbraham Morales
 
Poo Java
Poo JavaPoo Java
Poo Javaeccutpl
 
Diagramas Analisis
Diagramas AnalisisDiagramas Analisis
Diagramas Analisisinnovalabcun
 
Diagramas de objetos
Diagramas de objetosDiagramas de objetos
Diagramas de objetosstill01
 
Introducción a la programación orientada objetos
Introducción a la programación orientada objetosIntroducción a la programación orientada objetos
Introducción a la programación orientada objetosRenny Batista
 
CUESTIONARIO SOBRE PROGRAMACIÓN RELACIONADA A OBJETOS
CUESTIONARIO SOBRE PROGRAMACIÓN RELACIONADA A OBJETOSCUESTIONARIO SOBRE PROGRAMACIÓN RELACIONADA A OBJETOS
CUESTIONARIO SOBRE PROGRAMACIÓN RELACIONADA A OBJETOSLuis Miguel Gutierrez
 

La actualidad más candente (20)

Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
 
Pilares de la POO
Pilares de la POOPilares de la POO
Pilares de la POO
 
1. introduccion a la programación orientada a objeto (poo)
1.  introduccion a la programación orientada a objeto (poo)1.  introduccion a la programación orientada a objeto (poo)
1. introduccion a la programación orientada a objeto (poo)
 
P.O.O.
P.O.O.P.O.O.
P.O.O.
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 
Conceptos poo
Conceptos pooConceptos poo
Conceptos poo
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Fundamentos de POO
Fundamentos de POOFundamentos de POO
Fundamentos de POO
 
Elementos básicos de la programación orientada a objetos.
Elementos básicos de la programación orientada a objetos.Elementos básicos de la programación orientada a objetos.
Elementos básicos de la programación orientada a objetos.
 
PROGRAMACION ORIENTADA A OBJETOS
PROGRAMACION ORIENTADA A OBJETOSPROGRAMACION ORIENTADA A OBJETOS
PROGRAMACION ORIENTADA A OBJETOS
 
FPJUCE - Capitulo2
FPJUCE - Capitulo2FPJUCE - Capitulo2
FPJUCE - Capitulo2
 
POO sencillito
POO sencillitoPOO sencillito
POO sencillito
 
Poo Java
Poo JavaPoo Java
Poo Java
 
Diagramas Analisis
Diagramas AnalisisDiagramas Analisis
Diagramas Analisis
 
Diagramas de objetos
Diagramas de objetosDiagramas de objetos
Diagramas de objetos
 
Introducción a la programación orientada objetos
Introducción a la programación orientada objetosIntroducción a la programación orientada objetos
Introducción a la programación orientada objetos
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Conceptos basicos POO
Conceptos basicos POOConceptos basicos POO
Conceptos basicos POO
 
CUESTIONARIO SOBRE PROGRAMACIÓN RELACIONADA A OBJETOS
CUESTIONARIO SOBRE PROGRAMACIÓN RELACIONADA A OBJETOSCUESTIONARIO SOBRE PROGRAMACIÓN RELACIONADA A OBJETOS
CUESTIONARIO SOBRE PROGRAMACIÓN RELACIONADA A OBJETOS
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 

Destacado

Unidad 6 Mad Modelado Analsis Diagrama De Secuencia Del Sistema
Unidad 6 Mad Modelado Analsis    Diagrama De Secuencia Del SistemaUnidad 6 Mad Modelado Analsis    Diagrama De Secuencia Del Sistema
Unidad 6 Mad Modelado Analsis Diagrama De Secuencia Del SistemaSergio Sanchez
 
Unidad 1.1 Que Es La Ing. De Software
Unidad 1.1 Que Es La Ing. De SoftwareUnidad 1.1 Que Es La Ing. De Software
Unidad 1.1 Que Es La Ing. De SoftwareSergio Sanchez
 
Unidad 2.3 Prueba De Programas
Unidad 2.3 Prueba De ProgramasUnidad 2.3 Prueba De Programas
Unidad 2.3 Prueba De ProgramasSergio Sanchez
 
Unidad 7 Mad Modelado DiseñO Contratos Y Casos De Uso Reales
Unidad 7 Mad Modelado DiseñO    Contratos Y Casos De Uso RealesUnidad 7 Mad Modelado DiseñO    Contratos Y Casos De Uso Reales
Unidad 7 Mad Modelado DiseñO Contratos Y Casos De Uso RealesSergio Sanchez
 
Unidad 6 Lenguaje Sql 2
Unidad 6 Lenguaje Sql 2Unidad 6 Lenguaje Sql 2
Unidad 6 Lenguaje Sql 2Sergio Sanchez
 
Unidad 1.2 A IntroduccióN A Los Proceso De Software Modelos Tradicionales
Unidad 1.2 A IntroduccióN A Los Proceso De Software   Modelos TradicionalesUnidad 1.2 A IntroduccióN A Los Proceso De Software   Modelos Tradicionales
Unidad 1.2 A IntroduccióN A Los Proceso De Software Modelos TradicionalesSergio Sanchez
 
Unidad 4 Modelo De Datos Para La ImplementacióN
Unidad 4 Modelo De Datos Para La ImplementacióNUnidad 4 Modelo De Datos Para La ImplementacióN
Unidad 4 Modelo De Datos Para La ImplementacióNSergio Sanchez
 
Unidad 8 Diagramas De InteraccióN
Unidad 8 Diagramas De InteraccióNUnidad 8 Diagramas De InteraccióN
Unidad 8 Diagramas De InteraccióNSergio Sanchez
 
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)Sergio Sanchez
 
Unidad 2.2 Escribiendo El Programa
Unidad 2.2 Escribiendo El ProgramaUnidad 2.2 Escribiendo El Programa
Unidad 2.2 Escribiendo El ProgramaSergio Sanchez
 
Unidad 5 Mad Modelado Analisis Modelo Conceptual
Unidad 5 Mad Modelado Analisis   Modelo ConceptualUnidad 5 Mad Modelado Analisis   Modelo Conceptual
Unidad 5 Mad Modelado Analisis Modelo ConceptualSergio Sanchez
 
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)Sergio Sanchez
 
Unidad 10 Mad Diagrama De Clases
Unidad 10 Mad Diagrama De ClasesUnidad 10 Mad Diagrama De Clases
Unidad 10 Mad Diagrama De ClasesSergio Sanchez
 
Unidad 4 Mad Modelado Analisis Casos De Uso
Unidad 4 Mad Modelado Analisis Casos De UsoUnidad 4 Mad Modelado Analisis Casos De Uso
Unidad 4 Mad Modelado Analisis Casos De UsoSergio Sanchez
 
Unidad 1 IntroduccióN A Las Bases De Datos
Unidad 1 IntroduccióN A Las Bases De DatosUnidad 1 IntroduccióN A Las Bases De Datos
Unidad 1 IntroduccióN A Las Bases De DatosSergio Sanchez
 
Unidad 5 TransformacióN Er A Relacional NormalizacióN
Unidad 5 TransformacióN Er A Relacional   NormalizacióNUnidad 5 TransformacióN Er A Relacional   NormalizacióN
Unidad 5 TransformacióN Er A Relacional NormalizacióNSergio Sanchez
 
Unidad 2.1 DiseñO De Sistemas
Unidad 2.1 DiseñO De SistemasUnidad 2.1 DiseñO De Sistemas
Unidad 2.1 DiseñO De SistemasSergio Sanchez
 
Unidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosUnidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosSergio Sanchez
 

Destacado (20)

Unidad 6 Mad Modelado Analsis Diagrama De Secuencia Del Sistema
Unidad 6 Mad Modelado Analsis    Diagrama De Secuencia Del SistemaUnidad 6 Mad Modelado Analsis    Diagrama De Secuencia Del Sistema
Unidad 6 Mad Modelado Analsis Diagrama De Secuencia Del Sistema
 
Unidad 1.1 Que Es La Ing. De Software
Unidad 1.1 Que Es La Ing. De SoftwareUnidad 1.1 Que Es La Ing. De Software
Unidad 1.1 Que Es La Ing. De Software
 
Unidad 2.3 Prueba De Programas
Unidad 2.3 Prueba De ProgramasUnidad 2.3 Prueba De Programas
Unidad 2.3 Prueba De Programas
 
Unidad 7 Mad Modelado DiseñO Contratos Y Casos De Uso Reales
Unidad 7 Mad Modelado DiseñO    Contratos Y Casos De Uso RealesUnidad 7 Mad Modelado DiseñO    Contratos Y Casos De Uso Reales
Unidad 7 Mad Modelado DiseñO Contratos Y Casos De Uso Reales
 
Unidad 6 Lenguaje Sql 2
Unidad 6 Lenguaje Sql 2Unidad 6 Lenguaje Sql 2
Unidad 6 Lenguaje Sql 2
 
Unidad 1.2 A IntroduccióN A Los Proceso De Software Modelos Tradicionales
Unidad 1.2 A IntroduccióN A Los Proceso De Software   Modelos TradicionalesUnidad 1.2 A IntroduccióN A Los Proceso De Software   Modelos Tradicionales
Unidad 1.2 A IntroduccióN A Los Proceso De Software Modelos Tradicionales
 
Unidad 4 Modelo De Datos Para La ImplementacióN
Unidad 4 Modelo De Datos Para La ImplementacióNUnidad 4 Modelo De Datos Para La ImplementacióN
Unidad 4 Modelo De Datos Para La ImplementacióN
 
Unidad 8 Diagramas De InteraccióN
Unidad 8 Diagramas De InteraccióNUnidad 8 Diagramas De InteraccióN
Unidad 8 Diagramas De InteraccióN
 
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
 
Unidad 2.2 Escribiendo El Programa
Unidad 2.2 Escribiendo El ProgramaUnidad 2.2 Escribiendo El Programa
Unidad 2.2 Escribiendo El Programa
 
Unidad 5 Mad Modelado Analisis Modelo Conceptual
Unidad 5 Mad Modelado Analisis   Modelo ConceptualUnidad 5 Mad Modelado Analisis   Modelo Conceptual
Unidad 5 Mad Modelado Analisis Modelo Conceptual
 
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
 
Unidad 10 Mad Diagrama De Clases
Unidad 10 Mad Diagrama De ClasesUnidad 10 Mad Diagrama De Clases
Unidad 10 Mad Diagrama De Clases
 
Unidad 4 Mad Modelado Analisis Casos De Uso
Unidad 4 Mad Modelado Analisis Casos De UsoUnidad 4 Mad Modelado Analisis Casos De Uso
Unidad 4 Mad Modelado Analisis Casos De Uso
 
Unidad 1 IntroduccióN A Las Bases De Datos
Unidad 1 IntroduccióN A Las Bases De DatosUnidad 1 IntroduccióN A Las Bases De Datos
Unidad 1 IntroduccióN A Las Bases De Datos
 
Unidad 5 TransformacióN Er A Relacional NormalizacióN
Unidad 5 TransformacióN Er A Relacional   NormalizacióNUnidad 5 TransformacióN Er A Relacional   NormalizacióN
Unidad 5 TransformacióN Er A Relacional NormalizacióN
 
Unidad 6 Lenguaje Sql
Unidad 6 Lenguaje SqlUnidad 6 Lenguaje Sql
Unidad 6 Lenguaje Sql
 
Guía Didáctica
Guía Didáctica Guía Didáctica
Guía Didáctica
 
Unidad 2.1 DiseñO De Sistemas
Unidad 2.1 DiseñO De SistemasUnidad 2.1 DiseñO De Sistemas
Unidad 2.1 DiseñO De Sistemas
 
Unidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosUnidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De Requerimientos
 

Similar a Unidad 1 Mad IntroduccióN

Paradigma Orientado a Objetos
Paradigma Orientado a ObjetosParadigma Orientado a Objetos
Paradigma Orientado a ObjetosIsmael Perea
 
Programacion orientada a objetos
Programacion orientada a objetos Programacion orientada a objetos
Programacion orientada a objetos Jorge Luis B
 
Programación orientada a objetos
Programación orientada a objetos Programación orientada a objetos
Programación orientada a objetos Jorge Luis B
 
presentacion-tema-i-unidad-ii.GFGFHFHGppt
presentacion-tema-i-unidad-ii.GFGFHFHGpptpresentacion-tema-i-unidad-ii.GFGFHFHGppt
presentacion-tema-i-unidad-ii.GFGFHFHGpptjorgealfarol
 
fundamentos-de-poo.ppt 2.ppt
fundamentos-de-poo.ppt 2.pptfundamentos-de-poo.ppt 2.ppt
fundamentos-de-poo.ppt 2.pptjuan gonzalez
 
Programación estructurada a objetos.pptm
Programación  estructurada  a objetos.pptmProgramación  estructurada  a objetos.pptm
Programación estructurada a objetos.pptmelvis mendieta
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetosronnyme21
 
Análisis y diseño de sistemas de información
Análisis y diseño de sistemas de informaciónAnálisis y diseño de sistemas de información
Análisis y diseño de sistemas de informaciónjovy2905
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetoslindacajaperuiz
 
Introducción a la P.O.O en Introducción a la Programación
Introducción a la P.O.O en Introducción a la ProgramaciónIntroducción a la P.O.O en Introducción a la Programación
Introducción a la P.O.O en Introducción a la ProgramaciónFacultad de Ciencias y Sistemas
 
Termino de programacion
Termino de programacionTermino de programacion
Termino de programacionJENNY GUAYLLA
 
Introduccion al paradigma de la programacion orientado a objetos original
Introduccion al paradigma de la programacion orientado a objetos originalIntroduccion al paradigma de la programacion orientado a objetos original
Introduccion al paradigma de la programacion orientado a objetos originalJose Angel Rodriguez
 
Programacion orientada a objetos by Marcos Acosta
Programacion orientada a objetos by Marcos AcostaProgramacion orientada a objetos by Marcos Acosta
Programacion orientada a objetos by Marcos AcostaMarcos Acosta
 

Similar a Unidad 1 Mad IntroduccióN (20)

Conceptos poo
Conceptos pooConceptos poo
Conceptos poo
 
Java
JavaJava
Java
 
Paradigma Orientado a Objetos
Paradigma Orientado a ObjetosParadigma Orientado a Objetos
Paradigma Orientado a Objetos
 
Programacion orientada a objetos
Programacion orientada a objetos Programacion orientada a objetos
Programacion orientada a objetos
 
Programación orientada a objetos
Programación orientada a objetos Programación orientada a objetos
Programación orientada a objetos
 
presentacion-tema-i-unidad-ii.GFGFHFHGppt
presentacion-tema-i-unidad-ii.GFGFHFHGpptpresentacion-tema-i-unidad-ii.GFGFHFHGppt
presentacion-tema-i-unidad-ii.GFGFHFHGppt
 
fundamentos-de-poo.ppt 2.ppt
fundamentos-de-poo.ppt 2.pptfundamentos-de-poo.ppt 2.ppt
fundamentos-de-poo.ppt 2.ppt
 
Programación estructurada a objetos.pptm
Programación  estructurada  a objetos.pptmProgramación  estructurada  a objetos.pptm
Programación estructurada a objetos.pptm
 
MODELADO.docx
MODELADO.docxMODELADO.docx
MODELADO.docx
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Análisis y diseño de sistemas de información
Análisis y diseño de sistemas de informaciónAnálisis y diseño de sistemas de información
Análisis y diseño de sistemas de información
 
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOSPROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Introducción a la P.O.O en Introducción a la Programación
Introducción a la P.O.O en Introducción a la ProgramaciónIntroducción a la P.O.O en Introducción a la Programación
Introducción a la P.O.O en Introducción a la Programación
 
Termino de programacion
Termino de programacionTermino de programacion
Termino de programacion
 
Introduccion al paradigma de la programacion orientado a objetos original
Introduccion al paradigma de la programacion orientado a objetos originalIntroduccion al paradigma de la programacion orientado a objetos original
Introduccion al paradigma de la programacion orientado a objetos original
 
Programacion orientada a objetos by Marcos Acosta
Programacion orientada a objetos by Marcos AcostaProgramacion orientada a objetos by Marcos Acosta
Programacion orientada a objetos by Marcos Acosta
 
Base de Datos Orientada a Objetos
Base de Datos Orientada a ObjetosBase de Datos Orientada a Objetos
Base de Datos Orientada a Objetos
 
Programación orientada a objeto (autoguardado) 1
Programación orientada a objeto (autoguardado) 1Programación orientada a objeto (autoguardado) 1
Programación orientada a objeto (autoguardado) 1
 

Más de Sergio Sanchez

Unidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos ConceptualUnidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos ConceptualSergio Sanchez
 
Unidad 2 Modelo De Datos
Unidad 2 Modelo De DatosUnidad 2 Modelo De Datos
Unidad 2 Modelo De DatosSergio Sanchez
 
Unidad 3.1 Prueba De Sistemas
Unidad 3.1 Prueba De SistemasUnidad 3.1 Prueba De Sistemas
Unidad 3.1 Prueba De SistemasSergio Sanchez
 
Unidad 1.2 B Metodos Agiles 1
Unidad 1.2 B Metodos Agiles  1Unidad 1.2 B Metodos Agiles  1
Unidad 1.2 B Metodos Agiles 1Sergio Sanchez
 
Unidad 9 Patrones De DiseñO
Unidad 9 Patrones De DiseñOUnidad 9 Patrones De DiseñO
Unidad 9 Patrones De DiseñOSergio Sanchez
 
Unidad 3 Modelo De Negocio
Unidad 3 Modelo De NegocioUnidad 3 Modelo De Negocio
Unidad 3 Modelo De NegocioSergio Sanchez
 
Melado de Proceso de Negocios con UML
Melado de Proceso de Negocios con UMLMelado de Proceso de Negocios con UML
Melado de Proceso de Negocios con UMLSergio Sanchez
 

Más de Sergio Sanchez (7)

Unidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos ConceptualUnidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos Conceptual
 
Unidad 2 Modelo De Datos
Unidad 2 Modelo De DatosUnidad 2 Modelo De Datos
Unidad 2 Modelo De Datos
 
Unidad 3.1 Prueba De Sistemas
Unidad 3.1 Prueba De SistemasUnidad 3.1 Prueba De Sistemas
Unidad 3.1 Prueba De Sistemas
 
Unidad 1.2 B Metodos Agiles 1
Unidad 1.2 B Metodos Agiles  1Unidad 1.2 B Metodos Agiles  1
Unidad 1.2 B Metodos Agiles 1
 
Unidad 9 Patrones De DiseñO
Unidad 9 Patrones De DiseñOUnidad 9 Patrones De DiseñO
Unidad 9 Patrones De DiseñO
 
Unidad 3 Modelo De Negocio
Unidad 3 Modelo De NegocioUnidad 3 Modelo De Negocio
Unidad 3 Modelo De Negocio
 
Melado de Proceso de Negocios con UML
Melado de Proceso de Negocios con UMLMelado de Proceso de Negocios con UML
Melado de Proceso de Negocios con UML
 

Unidad 1 Mad IntroduccióN

  • 1. Metodologías de Análisis y Diseño Unidad I Introducción a la Orientación a Objetos y el Modelado Sergio Sánchez Rios. Ingeniero en Informática – Licenciado en Informática
  • 2. ¿Por qué la Orientación a Objetos? Principalmente porque la mayoría de los sistemas que se están desarrollando hoy en día están adoptando algunas o todas las nociones que involucra la orientación a objetos. Un poco de Historia. AÑOS 80: no se soluciona la “crisis del software” - poca capacidad de estimación - baja calidad de los programas - elevados costes de mantenimiento - duplicación de esfuerzos (ausencia de reutilización) ENFOQUE DE OBJETOS COMO ALTERNATIVA SIMULA (Noruega, 1967): lenguaje de simulación de sucesos SMALLTALK (PARC, años 70): combina el concepto de clase de SIMULA con la capacidad de abstracción funcional del LISP. Años 80 : Interés por las IGU (interfaces gráficas de usuario): su elevada complejidad se compensa con un alto grado de reutilización. Finales 80 y principios 90: interés por los métodos O.O. (diseño, especificación,...) ENFOQUE ESTRUCTURADO
  • 3. ¿Qué es la Orientación a Objetos? Es un enfoque de desarrollo de software que organiza tanto el problema como su solución como una colección de objetos discretos, tanto la estructura de datos como el comportamiento están incluidos en la representación. Una representación orientada a objetos (OO) puede reconocerse por sus siete características: Abstracción, Identidad, Clasificación, Encapsulamiento, Herencia, Polimorfismo y Persistencia. Algunas representaciones solo se basan en un subconjunto de estas características. A estas les llamaremos basadas en objetos.
  • 4. Características - Identidad Se refiere al hecho de que los datos son organizados en entidades discretas y distinguibles. Denominadas objetos. ¿Qué es un objeto? Conceptualmente, un objeto es una cosa con la que se puede interactuar: se le pueden enviar varios mensajes y éste reacciona ante ellos. De está forma , un objeto simple tiene estados y comportamientos asociados. (Grady Booch).
  • 5. Características - Identidad ¿Qué es un objeto? Ejemplo: Sistema para el manejo del dique de un río El Dique es un objeto Cada Objeto posee un nombre, el que lo distingue de otros objetos. ¿Qué es el estado de un objeto? El estado de un objeto lo constituyen todos los datos que encapsula en un momento determinado. Un objeto normalmente tiene un número de lo que se conoce como atributos cada uno de los cuales tiene un valor. En la mayoría de los lenguajes orientados a objetos (LOO), hoy en día el conjunto de atributos de un objeto no puede cambiar durante su vida, pero si sus valores.
  • 6.
  • 7. Características - Identidad ¿Qué es el comportamiento de un objeto? Ejemplo: Comportamientos del Dique Alarma sonora: Avisa a los cercanos que un dique cambia de estado cerrado a abierto. (Para que se alejen) ¿Qué son los mensajes? Los mensajes son el medio a través del cual los objetos interactúan Un mensaje estimula la ocurrencia de cierto comportamiento en el objeto receptor. El comportamiento se realiza cuando se ejecuta una operación. 
  • 8. Características - Abstracción Está característica es importante para crear cualquier sistema sea orientado a objetos o no. Ayuda a representar los diferentes puntos de vista incorporados en el sistema que se desarrolla.
  • 9. Características - Clasificación Se permite agrupar objetos que tienen atributos y comportamientos en común (Concepto de clases). GRUPO DE AVIONES GRUPO DE AUTOS
  • 10. Características - Clasificación ¿Qué es una Clase? Una clase describe un conjunto de objetos que tiene un rol o roles equivalentes en el sistema. En los lenguajes O.O basados en clases, cada objeto pertenece a una clase, y la clase de un objeto es quien determina su interfaz. Los atributos que tiene un objeto vienen determinados por su clase, aunque, por supuesto, los valores que toman dichos atributos no están determinados por la clase, pudiendo variar. Los objetos de una misma clase tienen las mismas interfaces.
  • 11. Características - Clasificación ¿Qué es una Clase? Una clase se puede representar usando una caja. Es importante mencionar que la clasificación refleja la perspectiva de la persona o grupo de trabajo que la realizo. Ej.: Se podrían a ver colocado bicicletas y aviones en la clase vehículos de transporte.
  • 12. Características - Clasificación ¿Qué es una Clase? Se dice que un “objeto” es una instancia de una clase. Cada instancia tiene sus propios atributos (es decir, tiene sus propio estado en cualquier instante de tiempo), pero comparte nombre y comportamiento con las otras instancias de la clase. Por lo tanto una clase describe un conjunto de objetos que comparten una estructura común y tienen comportamientos comunes, pero los valores de los atributos nos ayudan a distinguir cada objeto particular.
  • 13. Características - Encapsulamiento Las clases encapsulan los atributos y comportamientos de un objeto, ocultando los detalles de implementación. Es un complemento de la abstracción. ABSTRACCION ENCAPSULAMIENTO Empleado Empleado DNI Nombre Categoría Contratar Pagar Despedir
  • 14. Características - Encapsulamiento La encapsulación no es lo mismo que el ocultamiento de información. El encapsulamiento es una técnica para empaquetar la información de tal forma que se oculte lo que debe ser ocultado y se haga visible lo que está pensando que sea visible.
  • 15. Características - Herencia Las clases pueden ser organizadas jerárquicamente de acuerdo con las semejanzas y diferencias entre ellas. Para construir las jerarquías se comienza definiendo ampliamente una clase para refinarla luego en subclases más especializadas. Una subclase puede heredar la estructura así como el comportamiento y atributos de su superclase. Clase Abstracta, es una clase que no tiene instancias solo subclases.
  • 16. Características - Polimorfismo Cuando el comportamiento se manifiesta de maneras diferentes en diferentes clases o subclases, estamos hablando de polimorfismo. Ej.: Una implementación especifica de una operación para una cierta clase se denomina “método”. En un sistema con polimorfismo, una operación puede tener más de un método que la implemente.
  • 17. Características - Persistencia La capacidad del nombre, estados y comportamientos de un objeto para trascender el espacio o el tiempo. En otras palabras, el nombre, estado y comportamiento de un objeto se conservan cuando el objeto es transformado.
  • 18.
  • 19. Proceso de Desarrollo OO La consistencia a través del proceso es una diferencia clave entre los procedimientos de desarrollo más tradicionales y el proceso de desarrollo OO. Un proceso OO utiliza el encapsulamiento de datos y el comportamiento para formar unidades independientes (objetos). Y estas mismas estructuras semánticas representan el sistema desde los requerimientos a la implementación y prueba de la aplicación. Por lo tanto, la OO es una filosofía de representación de problema solución, y no una representación del ciclo de vida en sí. De está forma, la OO puede aplicarse en cualquiera de los ciclos de vida, desde el modelo en cascada al espiral.
  • 20. Proceso de Desarrollo OO Requerimientos en OO El análisis OO de requerimientos usualmente se realiza en el lenguaje del usuario y discute los conceptos y escenarios probablemente en el dominio de la aplicación. Los conceptos incluyen información, servicio y responsabilidades. El conocimiento del dominio habilita a los desarrolladores para entender el contexto en el cual se usará el sistema y para describir requerimientos de una forma tal que los usuarios los entenderán. Hay que tener claro ,por su puesto, que la definición de requerimientos puede ser independiente de sus representaciones como objetos.
  • 21.
  • 22. Proceso de Desarrollo OO Diseño OO Se considera que el diseño del sistema es una abstracción de alto nivel de lo que será en el futuro el diseño del programa.
  • 23. Proceso de Desarrollo OO Codificación y Prueba OO Una vez hecho el diseño, se describe el sistema a un nivel muy bajo, usando modelos de objetos, atributos y comportamientos. La codificación procede traduciendo los modelos a un lenguaje de programación OO. Este proceso no es trivial, por lo general a los implementadores les resulta necesario refinar las estructuras jerárquicas y efectuar ajustes a medida que los requerimientos crecen y maduran. Las pruebas del sistema siguen el mismo curso (Prueba Unitaria, Integración y del sistema).
  • 24. Proceso de Desarrollo OO Codificación y Prueba OO Acá se muestran los diferentes niveles de abstracción, y su relación con las pruebas. Sistema Subsistema Jerarquía de Clases Clase Niveles de abstracción Prueba del Sistema Prueba Unitaria Prueba de Integración Prueba de Sistema
  • 25.
  • 26.
  • 27.
  • 28.  
  • 29.
  • 30.
  • 31.
  • 32. UML: Historia Nov ‘97 UML aprobado por el OMG 1998 1999 2000 UML 1.2 UML 1.3 UML 1.4 2001-2003 UML 2.0 Revisiones menores
  • 33.
  • 34. UML: Aglutinamiento de enfoques UML Rumbaugh Jacobson Meyer Harel Wirfs-Brock Fusion Embly Gamma et. al. Shlaer-Mellor Odell Booch Pre- and Post-conditions State Charts Responsabilities Operation descriptions, message numbering Singleton classes Frameworks, patterns, notes Object life cycles
  • 35.
  • 36.
  • 37.
  • 38.
  • 39. UML: Arquitectura Vista de diseño Vista de procesos Vista de despliegue Vista de implementación Vista de casos de uso Comprende las clases, interfaces y colaboraciones que forman el vocabulario del problema y su solución. Aspectos estáticos : diagramas de clases y objetos. Aspectos dinámicos : diagramas de interacción, de estados y de actividades Comprende los casos de uso que describen el comportamiento del sistema, tal y como es percibido por los usuarios finales, analistas y encargados de pruebas. Aspectos estáticos : diagramas de casos de uso. Aspectos dinámicos : diagramas de interacción, de estados y de actividades Comprende los hilos (threads) y procesos que forman los mecanismos de sincronización y concurrencia del sistema Aspectos estáticos y dinámicos : los mismos que la vista de diseño, pero con énfasis en las clases activas Comprende los componentes y archivos que se utilizan para ensamblar y hacer disponible el sistema físico. Aspectos estáticos : diagramas de componentes. Aspectos dinámicos : diagramas de interacción, de estados y de actividades Contiene los nodos que forman la topología hardware. Aspectos estáticos : diagramas de despliegue. Aspectos dinámicos : diagramas de interacción, de estados y de actividades
  • 40.