SlideShare una empresa de Scribd logo
1 de 34
Conceptos Claves de
  Análisis y Diseño



    Lic. César Alcántara Loayza
Abstracción
                 Es una representación de un objeto del
                  mundo real. No es una descripción
                  completa sino una que es útil para una
                  aplicación o propósito específico.




CAL/Fundamentos
Abstracción
                     Criterios para decidir sobre la
                      información necesaria:
                         Contexto: ¿quién usará el objeto? ¿cómo
                          lo usará?, ¿por qué necesita el objeto?. Si
                          el objeto es un aula, ¿se necesitan las
                          dimensiones de la misma?.
                         Detalle: ¿qué tanto detalle necesito?.
                         Tiempo: ¿cuánto necesito para hacer el
                          seguimiento del objeto?.

CAL/Fundamentos
Abstracción : describir objeto
                     Ejem. - Liste la información necesaria
                      acerca de un auto para tres dominios
                      de problema diferentes:
                         Información acerca de un auto que la
                          división de motores de vehículos requiere.
                         Información acerca de un auto que un
                          estacionamiento requiere.
                         Información acerca de un auto que un
                          vendedor de autos requiere.

CAL/Fundamentos
Encapsulamiento
                     Conocido como “ocultamiento de la
                      información” (Information hidding), porque la
                      implementación del objeto está oculta.
                     Pero hay algo mas importante: “lo que el
                      objeto expone”.
                     Propósito e interfase.
                         Interfase : la parte visible de una clase. Usada
                          para describir la signatura pública de las
                          operaciones en una clase.

CAL/Fundamentos
Encapsulamiento
                     Muchos objetos comparten la misma
                      interfase pero tienen un propósito
                      distinto:
                         Ejem., El control de Televisión y de una
                          video grabadora.
                     El diseño basado en encapsulamiento
                      es clave para crear objetos reusables e
                      intercambiables.
CAL/Fundamentos
Encapsulamiento
                     La definición de un objeto en dos fases:
                         Definir una vista encapsulada del objeto
                          definiendo solo su propósito e interfase.
                         Definir el interior, la implementación de los
                          datos y el comportamiento que soporte al
                          propósito y la interfase.
                     La implementación puede variar en el
                      tiempo la interfase y propósito son mas
                      estables.
CAL/Fundamentos
Encapsulamiento
                     Ejercicio:
                         Identificar los aspectos de cada uno de los
                          siguientes dispositivos que deban ser
                          expuestos u ocultados:
                           
                               Televisión
                           
                               Videograbadora.
                         Modele sus respuestas.


CAL/Fundamentos
Encapsulamiento
          Ejemplo: Teléfono
                 Expone:
                      Propósito: Permitir la comunicación a través de una línea
                       telefónica.
                      Interfases:
                          Iniciar una llamada

                          Terminar una llamada

                          Hacer una llamada

                 Oculta:
                   
                       Implementación de la manipulación de botones a señales
                       electronicas y los datos usados para convertir señales.
                   
                       Implementación del inicio de la llamada y los datos usados
                       para ejecutar la conexión.
CAL/Fundamentos    
                       Los datos de identificación del llamador
Cohesión
                 Es una medida del grado al cual todos las
                  partes de un objeto soportan un único
                  propósito. Alta cohesión significa que todos los
                  elementos en el objeto soportan el mismo
                  propósito. Baja cohesión significa que
                  diferentes elementos soportan diferentes
                  propósitos.
                 Puede ser aplicada a cualquier entidad – no
                  solo a objetos – incluyendo operaciones,
                  aplicaciones, componentes, subsistemas y
                  sistemas.
CAL/Fundamentos
Cohesión
                     Cuando los objetos tienen que manejar
                      múltiples responsabilidades, son menos
                      flexibles, incurren en overhead al jugar
                      con muchas tareas y trabajan menos
                      eficientemente; como cuando se nos
                      asignan diversas y diferentes tareas en
                      nuestro trabajo en vez de enfocarnos
                      en nuestra especialidad.
CAL/Fundamentos
Cohesión
                     Las organizaciones que necesitan de máxima
                      flexibilidad tienden a tener alta cohesión. Alta
                      cohesión un único propósito para cada
                      objeto, soporta el ensamble rápido de objetos
                      para crear nuevos componentes y
                      aplicaciones.
                     Los principios de cohesión se aplican
                      igualmente a todos los niveles de abstracción
                      de modelamiento.

CAL/Fundamentos
Cohesión
        ¿cuánta información debería incluir en un objeto?
                 Solo la información necesaria para soportar el único
                  propósito del objeto.
        ¿cuándo debería partirse un objeto?
                 Cuando es objeto es responsable de mas un propósito.
        ¿cuándo debería juntar múltiples objetos?
                 Cuando los objetos sean fragmentados y no puedan
                  cumplir un propósito sin la ayuda constante de otro
                  objeto.

CAL/Fundamentos
Acoplamiento
          Es una medida del grado de dependencia
           entre objetos. Dependencia significa que
           un objeto necesita los datos o la
           funcionalidad poseida por otro objeto.
          Bajo acoplamiento significa bajo grado de
           dependencia y alto acomplamiento
           significa alto grado de dependencia.
                 Acomplamiento : una medida del grado de
                  dependencia entre los elementos del modelo.
CAL/Fundamentos
Acoplamiento
                     Si un cambio en un objeto necesita
                      cambios en otro objeto, el segundo
                      objeto es dependiente del primero. Ej.
                      Si la interfase de un servidor cambia la
                      aplicación cliente probablemente no
                      trabajará adecuadamente. La
                      aplicación cliente depende del servidor
                      para funcionar adecuadamente.
CAL/Fundamentos
Acoplamiento
                 El acoplamiento tiene un efecto directo sobre
                  el mantenimiento. Acoplamiento apretado
                  resulta en un efecto de onda, esto es cambios
                  en un objeto necesitarán cambios (o al menos,
                  pruebas) de todos los objetos asociados.
                 Se puede lograr acoplamiento débil asignando
                  a un objeto solo el comportamiento que
                  cumple con el propósito del objeto (alta
                  cohesión).

CAL/Fundamentos
Acoplamiento
                     Evitar incluir comportamiento
                      simplemente porque ellos sean
                      necesarios para el proceso en el que
                      participa el objeto.




CAL/Fundamentos
Cohesión y Acoplamiento
                     Deberían evaluarse siempre juntos.
                     Acoplamiento débil se puede lograr
                      facilmente por medio de baja cohesión, esto
                      es, atiborrando todo en un solo objeto de
                      modo que no se necesite ayuda de ningún
                      otro objeto.
                     Alta cohesión puede resultar en muchos
                      objetos pequeños que no puedan hacer nada
                      sin tomar en cuenta a otros objetos. ....
CAL/Fundamentos
Cohesión y Acoplamiento
                     ... El overhead de comunicación destruye el
                      rendimiento de la aplicación. La solución
                      óptima es un compromiso entre alta cohesión
                      y bajo acoplamiento.
                     Estos dos conceptos son factores en la
                      creación de patrones de diseño. En un patrón
                      de diseño cada objeto tiene una
                      responsabilidad específica, esto es, alta
                      cohesión.

CAL/Fundamentos
Cohesión y Acoplamiento
                     La colección de objetos tiene un patrón
                      predecible de colaboración o
                      comunicación. El patrón de
                      colaboración se basa en la naturaleza
                      específica del acoplamiento entre los
                      objetos, esto es, la ayuda que necesita
                      cada objeto de los otros objetos.


CAL/Fundamentos
Acoplamiento Débil ó Apretado
                     Un gerente de proyecto asigna tareas a
                      programadores de acuerdo con sus
                      habilidades y experiencia. Los
                      programadores reportan sus progresos
                      al gerente de proyectos de modo que
                      pueda hacer el seguimiento del
                      progreso de acuerdo a un plan y hacer
                      los ajustes necesarios
CAL/Fundamentos
Acoplamiento Débil ó Apretado

                     Un gerente de proyectos asigna tareas a
                      programadores de acuerdo a sus habilidades
                      y experiencia. El gerente de proyecto usa los
                      asignamiento para mejorar y adicionar
                      habilidades a cada programador. A medida
                      que cada programador ejecuta cada tarea, el
                      gerente de proyecto evalúa periódicamente el
                      progreso y hace sugerencias y/o
                      correcciones como sean necesarias.

CAL/Fundamentos
Acoplamiento Débil ó Apretado

                     Un gerente de proyecto asigna tareas a
                      programadores de acuerdo a sus habilidades
                      y experiencia. El gerente de proyecto reporta
                      al departamento de planillas el tiempo que los
                      miembros del equipo gastan en el proyecto.
                      El departamento de planillas produce
                      cheques quincenales. El Gerente de proyecto
                      distribuye los cheques a los miembros del
                      equipo.

CAL/Fundamentos
Acoplamiento Débil ó Apretado

                     Un gerente de proyecto asigna tareas a
                      programadores de acuerdo con sus
                      habilidades y experiencia. El gerente de
                      proyecto reporta al departamento de planillas
                      el tiempo que los miembros del equipo
                      gastan en el proyecto. El departamento de
                      planillas necesita las cifras de la labor
                      planeada del proyecto asi como las cifras de
                      la labor actual para actualizar el plan
                      financiero de la compañía sobre una base
                      quincenal.
CAL/Fundamentos
Acoplamiento Débil ó Apretado

                     Cuando el departamento de planillas
                      detecta una desviación de mas del
                      10%, solicita una justificación formal al
                      gerente de proyecto

                         Acoplamiento débil  bajo grado de
                          dependencia entre objetos.
                         Acoplamiento apretado  alto grado de
                          dependencia entre objetos.
CAL/Fundamentos
Agregación
                     Describe un ensamble de objeto donde
                      el todo (el ensamblado) es mas que la
                      suma de las partes.
                     La agregación no tiene reflejo en el
                      código. La implementación se ve como
                      cualquier otra asociación.



CAL/Fundamentos
Agregación
                     Cuando se desea que las partes esten
                      diponibles para uso aún cuando el
                      agregado ó todo no exista
                      agregación debil.
                     Si las partes existen solo si forman
                      parte del todo  Agregación fuerte, o
                      composición.

CAL/Fundamentos
Agregación débil
                               Los jugadores pueden
                                participar en muchos
                                equipos al mismo
                                tiempo. Por ejemplo
                                ellos pueden jugar por la
                                liga de la ciudad y por el
                                equipo de una
                                compañía. Cuando un
                                equipo desaparece los
                                jugadores aún existen y
                                pueden reasignarse a
                                otros equipos.

CAL/Fundamentos
Agregación fuerte Composición
                            Los capítulos pertenecen
                             a un libro específico. Sin
                             el libro los capítulo
                             carecen de contexto y
                             pierden su significado. Si
                             el libro es borrado los
                             capítulos son borrados
                             con el.


CAL/Fundamentos
Generalización
                     Un tractor es un tipo de Vehículo, un
                      aeroplano es una clase de vehículo. Si
                      todas las propiedades del tractor y el
                      aeroplano fueran iguales, entonces
                      ellos podrían ser instancias de la misma
                      clase, pero ellos solo comparten
                      algunas propiedades.
                         En este caso se generaliza las
                          propiedades compartidas

CAL/Fundamentos
Generalización
                     El término generalización es usado de
                      otra forma. Una generalización es una
                      estructura, esto es, una jerarquía de
                      clases.




CAL/Fundamentos
Generalización
                     La clase vehículo define las propiedades que
                      botes, tractores y aeroplanos tienen en
                      común tales como manufacturador, modelo y
                      capacidades de aceleración y
                      desaceleración.Vehículo




                           Bote     Tractor   Aeroplano



CAL/Fundamentos
Generalización
                     El bote, tractor y aeroplano contienen
                      solo las propiedades adicionales que
                      las distinguen de los otros tipos de
                      vehículos.




CAL/Fundamentos
Generalización
                     Generalizar significa identificar las
                      propiedades que un grupo de objetos tiene
                      en común. Especializar significa identificar las
                      propiedades que distinguen objetos similares
                      de otros.
                     La generalización no es un tipo de
                      asociación. Una asociación puede
                      instanciarse como enlace entre dos objetos.
                      Una generalización conecta dos clases de
                      definiciones que deben usarse juntas para
                      crear un único objeto.
CAL/Fundamentos

Más contenido relacionado

La actualidad más candente

O paradigma da orientação a objetos
O paradigma da orientação a objetosO paradigma da orientação a objetos
O paradigma da orientação a objetosNécio de Lima Veras
 
UML: Diagrama de caso de uso
UML: Diagrama de caso de usoUML: Diagrama de caso de uso
UML: Diagrama de caso de usoElvin Hernandez
 
Uml diagrama de sequencia
Uml diagrama de sequenciaUml diagrama de sequencia
Uml diagrama de sequenciaItalo Costa
 
Programación Orientada a Objetos (POO) y UML
Programación Orientada a Objetos (POO) y UMLProgramación Orientada a Objetos (POO) y UML
Programación Orientada a Objetos (POO) y UMLGabriel Cortez
 
Uml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoUml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoMarvin Zumbado
 
Android chapter16-web-services
Android chapter16-web-servicesAndroid chapter16-web-services
Android chapter16-web-servicesAravindharamanan S
 
Teoria de banco de dados
Teoria de banco de dadosTeoria de banco de dados
Teoria de banco de dadosDaniel Cabral
 
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteTópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteJosé Antonio Sandoval Acosta
 
Object Relational Database Management System(ORDBMS)
Object Relational Database Management System(ORDBMS)Object Relational Database Management System(ORDBMS)
Object Relational Database Management System(ORDBMS)Rabin BK
 
SO Unidad 3: Administración de memoria y sistemas de archivos
SO Unidad 3: Administración de memoria y sistemas de archivosSO Unidad 3: Administración de memoria y sistemas de archivos
SO Unidad 3: Administración de memoria y sistemas de archivosFranklin Parrales Bravo
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case DiagramAshesh R
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVAMoises Omena
 

La actualidad más candente (20)

Java servlets and CGI
Java servlets and CGIJava servlets and CGI
Java servlets and CGI
 
O paradigma da orientação a objetos
O paradigma da orientação a objetosO paradigma da orientação a objetos
O paradigma da orientação a objetos
 
UML: Diagrama de caso de uso
UML: Diagrama de caso de usoUML: Diagrama de caso de uso
UML: Diagrama de caso de uso
 
Uml diagrama de sequencia
Uml diagrama de sequenciaUml diagrama de sequencia
Uml diagrama de sequencia
 
Programación Orientada a Objetos (POO) y UML
Programación Orientada a Objetos (POO) y UMLProgramación Orientada a Objetos (POO) y UML
Programación Orientada a Objetos (POO) y UML
 
Uml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoUml lenguaje unificado de modelado
Uml lenguaje unificado de modelado
 
Android chapter16-web-services
Android chapter16-web-servicesAndroid chapter16-web-services
Android chapter16-web-services
 
Ooad ppt
Ooad pptOoad ppt
Ooad ppt
 
DBMS Notes: DDL DML DCL
DBMS Notes: DDL DML DCLDBMS Notes: DDL DML DCL
DBMS Notes: DDL DML DCL
 
Teoria de banco de dados
Teoria de banco de dadosTeoria de banco de dados
Teoria de banco de dados
 
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteTópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
 
Object Relational Database Management System(ORDBMS)
Object Relational Database Management System(ORDBMS)Object Relational Database Management System(ORDBMS)
Object Relational Database Management System(ORDBMS)
 
Object Oriented Design
Object Oriented DesignObject Oriented Design
Object Oriented Design
 
Base de datos distribuidas
Base de datos distribuidasBase de datos distribuidas
Base de datos distribuidas
 
Unidad 2 modelado de negocios
Unidad 2 modelado de negociosUnidad 2 modelado de negocios
Unidad 2 modelado de negocios
 
SO Unidad 3: Administración de memoria y sistemas de archivos
SO Unidad 3: Administración de memoria y sistemas de archivosSO Unidad 3: Administración de memoria y sistemas de archivos
SO Unidad 3: Administración de memoria y sistemas de archivos
 
Uml class-diagram
Uml class-diagramUml class-diagram
Uml class-diagram
 
Modelação de Dados
Modelação de DadosModelação de Dados
Modelação de Dados
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case Diagram
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
 

Destacado

Capitulo04
Capitulo04Capitulo04
Capitulo04martin
 
Gonzalorojas 12 Uml, Patrones De Diseno
Gonzalorojas 12 Uml, Patrones De DisenoGonzalorojas 12 Uml, Patrones De Diseno
Gonzalorojas 12 Uml, Patrones De DisenoSpimy
 
Diseño de Software
Diseño de SoftwareDiseño de Software
Diseño de SoftwareUPT
 
DiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del SoftwareDiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del Softwarelcastillo110
 
7 Principios de Diseño para un software amigable
7 Principios de Diseño para un software amigable7 Principios de Diseño para un software amigable
7 Principios de Diseño para un software amigableJavier Gala
 
Conceptos de diseño de software
Conceptos de diseño de softwareConceptos de diseño de software
Conceptos de diseño de softwareJose Diaz Silva
 
Ingenieria de Software
Ingenieria de SoftwareIngenieria de Software
Ingenieria de Softwareem3marquez
 
Actividad final, Anàlisis y Diseño de Sistemas de Informaciòn II_ Fase I, II,...
Actividad final, Anàlisis y Diseño de Sistemas de Informaciòn II_ Fase I, II,...Actividad final, Anàlisis y Diseño de Sistemas de Informaciòn II_ Fase I, II,...
Actividad final, Anàlisis y Diseño de Sistemas de Informaciòn II_ Fase I, II,...dimatoba
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de softwareBelen Gonzalez
 
Patrones para asignar responsabilidades. grasp
Patrones para asignar responsabilidades. graspPatrones para asignar responsabilidades. grasp
Patrones para asignar responsabilidades. graspJuan Pablo Bustos Thames
 
Fundamentos de Calidad del Software - Modelos y Estándares
Fundamentos de Calidad del Software - Modelos y EstándaresFundamentos de Calidad del Software - Modelos y Estándares
Fundamentos de Calidad del Software - Modelos y EstándaresLuis Eduardo Pelaez Valencia
 
Estructura de datos I pilas
Estructura de datos I pilasEstructura de datos I pilas
Estructura de datos I pilasgeova666
 

Destacado (20)

Capitulo04
Capitulo04Capitulo04
Capitulo04
 
Gonzalorojas 12 Uml, Patrones De Diseno
Gonzalorojas 12 Uml, Patrones De DisenoGonzalorojas 12 Uml, Patrones De Diseno
Gonzalorojas 12 Uml, Patrones De Diseno
 
Diseño de Software
Diseño de SoftwareDiseño de Software
Diseño de Software
 
DiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del SoftwareDiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del Software
 
Diseño de Software
Diseño de SoftwareDiseño de Software
Diseño de Software
 
Diseño de software
Diseño de softwareDiseño de software
Diseño de software
 
Lista, pilas y colas
Lista, pilas y colasLista, pilas y colas
Lista, pilas y colas
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Pilas Colas
Pilas ColasPilas Colas
Pilas Colas
 
Análisis de objeto
Análisis de objetoAnálisis de objeto
Análisis de objeto
 
7 Principios de Diseño para un software amigable
7 Principios de Diseño para un software amigable7 Principios de Diseño para un software amigable
7 Principios de Diseño para un software amigable
 
Conceptos de diseño de software
Conceptos de diseño de softwareConceptos de diseño de software
Conceptos de diseño de software
 
Ingenieria de Software
Ingenieria de SoftwareIngenieria de Software
Ingenieria de Software
 
Actividad final, Anàlisis y Diseño de Sistemas de Informaciòn II_ Fase I, II,...
Actividad final, Anàlisis y Diseño de Sistemas de Informaciòn II_ Fase I, II,...Actividad final, Anàlisis y Diseño de Sistemas de Informaciòn II_ Fase I, II,...
Actividad final, Anàlisis y Diseño de Sistemas de Informaciòn II_ Fase I, II,...
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
Patrones para asignar responsabilidades. grasp
Patrones para asignar responsabilidades. graspPatrones para asignar responsabilidades. grasp
Patrones para asignar responsabilidades. grasp
 
Listas Pilas Colas
Listas Pilas ColasListas Pilas Colas
Listas Pilas Colas
 
Fundamentos de Calidad del Software - Modelos y Estándares
Fundamentos de Calidad del Software - Modelos y EstándaresFundamentos de Calidad del Software - Modelos y Estándares
Fundamentos de Calidad del Software - Modelos y Estándares
 
Conceptos de diseño
Conceptos de diseñoConceptos de diseño
Conceptos de diseño
 
Estructura de datos I pilas
Estructura de datos I pilasEstructura de datos I pilas
Estructura de datos I pilas
 

Similar a Sesion 2 2 conceptos claves de analisis y diseno

Sesion 3 conceptosclavesdeanálisisydiseño
Sesion 3 conceptosclavesdeanálisisydiseñoSesion 3 conceptosclavesdeanálisisydiseño
Sesion 3 conceptosclavesdeanálisisydiseñoJulio Pari
 
LENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOS
LENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOSLENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOS
LENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOSJonathan Hidalgo Nolasco
 
Sesion 6 3 diseño particionamiento de dominio
Sesion 6 3 diseño   particionamiento de dominioSesion 6 3 diseño   particionamiento de dominio
Sesion 6 3 diseño particionamiento de dominioJulio Pari
 
Fundamentos de POO
Fundamentos de POOFundamentos de POO
Fundamentos de POOgueritamala
 
Sesion 13 diseño iii diseño de objetos
Sesion 13 diseño iii    diseño de objetosSesion 13 diseño iii    diseño de objetos
Sesion 13 diseño iii diseño de objetosJulio Pari
 
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 orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetosSANDRITA RAFAEL
 
Diseño de software y diseño orientado a objetos
Diseño de software y diseño orientado a objetosDiseño de software y diseño orientado a objetos
Diseño de software y diseño orientado a objetosFabiola Laguna
 
Fundamentos programacion poo
Fundamentos programacion pooFundamentos programacion poo
Fundamentos programacion pooRicardo Garcia
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetosNanda Moran
 
Orientado a objeto
Orientado a objetoOrientado a objeto
Orientado a objetoUnefa
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetosjaninaplaza
 
Presentacion De La Primera Unidad 2
Presentacion De La Primera Unidad 2Presentacion De La Primera Unidad 2
Presentacion De La Primera Unidad 2warmab
 
Programacion orientada a_objeto
Programacion orientada a_objetoProgramacion orientada a_objeto
Programacion orientada a_objetocesar
 
2983238 programacion-orientada-a-objetos
2983238 programacion-orientada-a-objetos2983238 programacion-orientada-a-objetos
2983238 programacion-orientada-a-objetosjohnny herrera
 

Similar a Sesion 2 2 conceptos claves de analisis y diseno (20)

Sesion 3 conceptosclavesdeanálisisydiseño
Sesion 3 conceptosclavesdeanálisisydiseñoSesion 3 conceptosclavesdeanálisisydiseño
Sesion 3 conceptosclavesdeanálisisydiseño
 
Programacion orientado a objetos
Programacion orientado a objetosProgramacion orientado a objetos
Programacion orientado a objetos
 
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOSPROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
 
MODELADO.docx
MODELADO.docxMODELADO.docx
MODELADO.docx
 
LENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOS
LENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOSLENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOS
LENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOS
 
Sesion 6 3 diseño particionamiento de dominio
Sesion 6 3 diseño   particionamiento de dominioSesion 6 3 diseño   particionamiento de dominio
Sesion 6 3 diseño particionamiento de dominio
 
Fundamentos de POO
Fundamentos de POOFundamentos de POO
Fundamentos de POO
 
Sesion 13 diseño iii diseño de objetos
Sesion 13 diseño iii    diseño de objetosSesion 13 diseño iii    diseño de objetos
Sesion 13 diseño iii diseño de objetos
 
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 orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Diseño de software y diseño orientado a objetos
Diseño de software y diseño orientado a objetosDiseño de software y diseño orientado a objetos
Diseño de software y diseño orientado a objetos
 
Fundamentos programacion poo
Fundamentos programacion pooFundamentos programacion poo
Fundamentos programacion poo
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Compu 1
Compu 1Compu 1
Compu 1
 
Orientado a objeto
Orientado a objetoOrientado a objeto
Orientado a objeto
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Presentacion De La Primera Unidad 2
Presentacion De La Primera Unidad 2Presentacion De La Primera Unidad 2
Presentacion De La Primera Unidad 2
 
Programacion orientada a_objeto
Programacion orientada a_objetoProgramacion orientada a_objeto
Programacion orientada a_objeto
 
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOSPROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
 
2983238 programacion-orientada-a-objetos
2983238 programacion-orientada-a-objetos2983238 programacion-orientada-a-objetos
2983238 programacion-orientada-a-objetos
 

Más de Julio Pari

Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...
Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...
Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...Julio Pari
 
Links kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Links kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en KubernetesLinks kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Links kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en KubernetesJulio Pari
 
Comandos - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Comandos - Evento - Virtual Lab Despliegue de aplicaciones en KubernetesComandos - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Comandos - Evento - Virtual Lab Despliegue de aplicaciones en KubernetesJulio Pari
 
Indice General Tesis Sistemas UPC
Indice General Tesis Sistemas UPCIndice General Tesis Sistemas UPC
Indice General Tesis Sistemas UPCJulio Pari
 
Arquitectura Web FISI UNMSM
Arquitectura Web FISI UNMSMArquitectura Web FISI UNMSM
Arquitectura Web FISI UNMSMJulio Pari
 
Jelastic Enterprise
Jelastic EnterpriseJelastic Enterprise
Jelastic EnterpriseJulio Pari
 
Marketing Examen Parcial Profesor Osorio
Marketing Examen Parcial Profesor OsorioMarketing Examen Parcial Profesor Osorio
Marketing Examen Parcial Profesor OsorioJulio Pari
 
Ingenieria Software Examen Parcial 2013 2 Profesor Cordero
Ingenieria Software Examen Parcial 2013 2 Profesor CorderoIngenieria Software Examen Parcial 2013 2 Profesor Cordero
Ingenieria Software Examen Parcial 2013 2 Profesor CorderoJulio Pari
 
Documento de Arquitectura
Documento de ArquitecturaDocumento de Arquitectura
Documento de ArquitecturaJulio Pari
 
Solucion Examen Parcial Sistemas Digitales UNMSM FISI
Solucion Examen Parcial Sistemas Digitales UNMSM FISISolucion Examen Parcial Sistemas Digitales UNMSM FISI
Solucion Examen Parcial Sistemas Digitales UNMSM FISIJulio Pari
 
Práctica de Inventarios - Investigación Operativa II
Práctica de Inventarios - Investigación Operativa IIPráctica de Inventarios - Investigación Operativa II
Práctica de Inventarios - Investigación Operativa IIJulio Pari
 
Armas silenciosas para guerras tranquilas
Armas silenciosas para guerras tranquilasArmas silenciosas para guerras tranquilas
Armas silenciosas para guerras tranquilasJulio Pari
 
Formato de presentación de Proyecto UNMSM FISI
Formato de presentación de Proyecto UNMSM FISIFormato de presentación de Proyecto UNMSM FISI
Formato de presentación de Proyecto UNMSM FISIJulio Pari
 
Cuento para nuestro hijo y nuestra hija
Cuento para nuestro hijo y nuestra hijaCuento para nuestro hijo y nuestra hija
Cuento para nuestro hijo y nuestra hijaJulio Pari
 
Ingeniería de Software Examen Parcial
Ingeniería de Software Examen ParcialIngeniería de Software Examen Parcial
Ingeniería de Software Examen ParcialJulio Pari
 
Sistemas Distribuidos Examen Parcial
Sistemas Distribuidos Examen ParcialSistemas Distribuidos Examen Parcial
Sistemas Distribuidos Examen ParcialJulio Pari
 
Php07 consultas bd
Php07 consultas bdPhp07 consultas bd
Php07 consultas bdJulio Pari
 
Php06 instalacion my_sql
Php06 instalacion my_sqlPhp06 instalacion my_sql
Php06 instalacion my_sqlJulio Pari
 
Php05 funciones usuario
Php05 funciones usuarioPhp05 funciones usuario
Php05 funciones usuarioJulio Pari
 

Más de Julio Pari (20)

Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...
Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...
Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...
 
Links kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Links kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en KubernetesLinks kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Links kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
 
Comandos - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Comandos - Evento - Virtual Lab Despliegue de aplicaciones en KubernetesComandos - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Comandos - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
 
Indice General Tesis Sistemas UPC
Indice General Tesis Sistemas UPCIndice General Tesis Sistemas UPC
Indice General Tesis Sistemas UPC
 
Arquitectura Web FISI UNMSM
Arquitectura Web FISI UNMSMArquitectura Web FISI UNMSM
Arquitectura Web FISI UNMSM
 
Jelastic Enterprise
Jelastic EnterpriseJelastic Enterprise
Jelastic Enterprise
 
Marketing Examen Parcial Profesor Osorio
Marketing Examen Parcial Profesor OsorioMarketing Examen Parcial Profesor Osorio
Marketing Examen Parcial Profesor Osorio
 
Ingenieria Software Examen Parcial 2013 2 Profesor Cordero
Ingenieria Software Examen Parcial 2013 2 Profesor CorderoIngenieria Software Examen Parcial 2013 2 Profesor Cordero
Ingenieria Software Examen Parcial 2013 2 Profesor Cordero
 
Documento de Arquitectura
Documento de ArquitecturaDocumento de Arquitectura
Documento de Arquitectura
 
Solucion Examen Parcial Sistemas Digitales UNMSM FISI
Solucion Examen Parcial Sistemas Digitales UNMSM FISISolucion Examen Parcial Sistemas Digitales UNMSM FISI
Solucion Examen Parcial Sistemas Digitales UNMSM FISI
 
Práctica de Inventarios - Investigación Operativa II
Práctica de Inventarios - Investigación Operativa IIPráctica de Inventarios - Investigación Operativa II
Práctica de Inventarios - Investigación Operativa II
 
Armas silenciosas para guerras tranquilas
Armas silenciosas para guerras tranquilasArmas silenciosas para guerras tranquilas
Armas silenciosas para guerras tranquilas
 
UML Java
UML JavaUML Java
UML Java
 
Formato de presentación de Proyecto UNMSM FISI
Formato de presentación de Proyecto UNMSM FISIFormato de presentación de Proyecto UNMSM FISI
Formato de presentación de Proyecto UNMSM FISI
 
Cuento para nuestro hijo y nuestra hija
Cuento para nuestro hijo y nuestra hijaCuento para nuestro hijo y nuestra hija
Cuento para nuestro hijo y nuestra hija
 
Ingeniería de Software Examen Parcial
Ingeniería de Software Examen ParcialIngeniería de Software Examen Parcial
Ingeniería de Software Examen Parcial
 
Sistemas Distribuidos Examen Parcial
Sistemas Distribuidos Examen ParcialSistemas Distribuidos Examen Parcial
Sistemas Distribuidos Examen Parcial
 
Php07 consultas bd
Php07 consultas bdPhp07 consultas bd
Php07 consultas bd
 
Php06 instalacion my_sql
Php06 instalacion my_sqlPhp06 instalacion my_sql
Php06 instalacion my_sql
 
Php05 funciones usuario
Php05 funciones usuarioPhp05 funciones usuario
Php05 funciones usuario
 

Sesion 2 2 conceptos claves de analisis y diseno

  • 1. Conceptos Claves de Análisis y Diseño Lic. César Alcántara Loayza
  • 2. Abstracción  Es una representación de un objeto del mundo real. No es una descripción completa sino una que es útil para una aplicación o propósito específico. CAL/Fundamentos
  • 3. Abstracción  Criterios para decidir sobre la información necesaria:  Contexto: ¿quién usará el objeto? ¿cómo lo usará?, ¿por qué necesita el objeto?. Si el objeto es un aula, ¿se necesitan las dimensiones de la misma?.  Detalle: ¿qué tanto detalle necesito?.  Tiempo: ¿cuánto necesito para hacer el seguimiento del objeto?. CAL/Fundamentos
  • 4. Abstracción : describir objeto  Ejem. - Liste la información necesaria acerca de un auto para tres dominios de problema diferentes:  Información acerca de un auto que la división de motores de vehículos requiere.  Información acerca de un auto que un estacionamiento requiere.  Información acerca de un auto que un vendedor de autos requiere. CAL/Fundamentos
  • 5. Encapsulamiento  Conocido como “ocultamiento de la información” (Information hidding), porque la implementación del objeto está oculta.  Pero hay algo mas importante: “lo que el objeto expone”.  Propósito e interfase.  Interfase : la parte visible de una clase. Usada para describir la signatura pública de las operaciones en una clase. CAL/Fundamentos
  • 6. Encapsulamiento  Muchos objetos comparten la misma interfase pero tienen un propósito distinto:  Ejem., El control de Televisión y de una video grabadora.  El diseño basado en encapsulamiento es clave para crear objetos reusables e intercambiables. CAL/Fundamentos
  • 7. Encapsulamiento  La definición de un objeto en dos fases:  Definir una vista encapsulada del objeto definiendo solo su propósito e interfase.  Definir el interior, la implementación de los datos y el comportamiento que soporte al propósito y la interfase.  La implementación puede variar en el tiempo la interfase y propósito son mas estables. CAL/Fundamentos
  • 8. Encapsulamiento  Ejercicio:  Identificar los aspectos de cada uno de los siguientes dispositivos que deban ser expuestos u ocultados:  Televisión  Videograbadora.  Modele sus respuestas. CAL/Fundamentos
  • 9. Encapsulamiento  Ejemplo: Teléfono  Expone:  Propósito: Permitir la comunicación a través de una línea telefónica.  Interfases:  Iniciar una llamada  Terminar una llamada  Hacer una llamada  Oculta:  Implementación de la manipulación de botones a señales electronicas y los datos usados para convertir señales.  Implementación del inicio de la llamada y los datos usados para ejecutar la conexión. CAL/Fundamentos  Los datos de identificación del llamador
  • 10. Cohesión  Es una medida del grado al cual todos las partes de un objeto soportan un único propósito. Alta cohesión significa que todos los elementos en el objeto soportan el mismo propósito. Baja cohesión significa que diferentes elementos soportan diferentes propósitos.  Puede ser aplicada a cualquier entidad – no solo a objetos – incluyendo operaciones, aplicaciones, componentes, subsistemas y sistemas. CAL/Fundamentos
  • 11. Cohesión  Cuando los objetos tienen que manejar múltiples responsabilidades, son menos flexibles, incurren en overhead al jugar con muchas tareas y trabajan menos eficientemente; como cuando se nos asignan diversas y diferentes tareas en nuestro trabajo en vez de enfocarnos en nuestra especialidad. CAL/Fundamentos
  • 12. Cohesión  Las organizaciones que necesitan de máxima flexibilidad tienden a tener alta cohesión. Alta cohesión un único propósito para cada objeto, soporta el ensamble rápido de objetos para crear nuevos componentes y aplicaciones.  Los principios de cohesión se aplican igualmente a todos los niveles de abstracción de modelamiento. CAL/Fundamentos
  • 13. Cohesión  ¿cuánta información debería incluir en un objeto?  Solo la información necesaria para soportar el único propósito del objeto.  ¿cuándo debería partirse un objeto?  Cuando es objeto es responsable de mas un propósito.  ¿cuándo debería juntar múltiples objetos?  Cuando los objetos sean fragmentados y no puedan cumplir un propósito sin la ayuda constante de otro objeto. CAL/Fundamentos
  • 14. Acoplamiento  Es una medida del grado de dependencia entre objetos. Dependencia significa que un objeto necesita los datos o la funcionalidad poseida por otro objeto.  Bajo acoplamiento significa bajo grado de dependencia y alto acomplamiento significa alto grado de dependencia.  Acomplamiento : una medida del grado de dependencia entre los elementos del modelo. CAL/Fundamentos
  • 15. Acoplamiento  Si un cambio en un objeto necesita cambios en otro objeto, el segundo objeto es dependiente del primero. Ej. Si la interfase de un servidor cambia la aplicación cliente probablemente no trabajará adecuadamente. La aplicación cliente depende del servidor para funcionar adecuadamente. CAL/Fundamentos
  • 16. Acoplamiento  El acoplamiento tiene un efecto directo sobre el mantenimiento. Acoplamiento apretado resulta en un efecto de onda, esto es cambios en un objeto necesitarán cambios (o al menos, pruebas) de todos los objetos asociados.  Se puede lograr acoplamiento débil asignando a un objeto solo el comportamiento que cumple con el propósito del objeto (alta cohesión). CAL/Fundamentos
  • 17. Acoplamiento  Evitar incluir comportamiento simplemente porque ellos sean necesarios para el proceso en el que participa el objeto. CAL/Fundamentos
  • 18. Cohesión y Acoplamiento  Deberían evaluarse siempre juntos.  Acoplamiento débil se puede lograr facilmente por medio de baja cohesión, esto es, atiborrando todo en un solo objeto de modo que no se necesite ayuda de ningún otro objeto.  Alta cohesión puede resultar en muchos objetos pequeños que no puedan hacer nada sin tomar en cuenta a otros objetos. .... CAL/Fundamentos
  • 19. Cohesión y Acoplamiento  ... El overhead de comunicación destruye el rendimiento de la aplicación. La solución óptima es un compromiso entre alta cohesión y bajo acoplamiento.  Estos dos conceptos son factores en la creación de patrones de diseño. En un patrón de diseño cada objeto tiene una responsabilidad específica, esto es, alta cohesión. CAL/Fundamentos
  • 20. Cohesión y Acoplamiento  La colección de objetos tiene un patrón predecible de colaboración o comunicación. El patrón de colaboración se basa en la naturaleza específica del acoplamiento entre los objetos, esto es, la ayuda que necesita cada objeto de los otros objetos. CAL/Fundamentos
  • 21. Acoplamiento Débil ó Apretado  Un gerente de proyecto asigna tareas a programadores de acuerdo con sus habilidades y experiencia. Los programadores reportan sus progresos al gerente de proyectos de modo que pueda hacer el seguimiento del progreso de acuerdo a un plan y hacer los ajustes necesarios CAL/Fundamentos
  • 22. Acoplamiento Débil ó Apretado  Un gerente de proyectos asigna tareas a programadores de acuerdo a sus habilidades y experiencia. El gerente de proyecto usa los asignamiento para mejorar y adicionar habilidades a cada programador. A medida que cada programador ejecuta cada tarea, el gerente de proyecto evalúa periódicamente el progreso y hace sugerencias y/o correcciones como sean necesarias. CAL/Fundamentos
  • 23. Acoplamiento Débil ó Apretado  Un gerente de proyecto asigna tareas a programadores de acuerdo a sus habilidades y experiencia. El gerente de proyecto reporta al departamento de planillas el tiempo que los miembros del equipo gastan en el proyecto. El departamento de planillas produce cheques quincenales. El Gerente de proyecto distribuye los cheques a los miembros del equipo. CAL/Fundamentos
  • 24. Acoplamiento Débil ó Apretado  Un gerente de proyecto asigna tareas a programadores de acuerdo con sus habilidades y experiencia. El gerente de proyecto reporta al departamento de planillas el tiempo que los miembros del equipo gastan en el proyecto. El departamento de planillas necesita las cifras de la labor planeada del proyecto asi como las cifras de la labor actual para actualizar el plan financiero de la compañía sobre una base quincenal. CAL/Fundamentos
  • 25. Acoplamiento Débil ó Apretado  Cuando el departamento de planillas detecta una desviación de mas del 10%, solicita una justificación formal al gerente de proyecto  Acoplamiento débil  bajo grado de dependencia entre objetos.  Acoplamiento apretado  alto grado de dependencia entre objetos. CAL/Fundamentos
  • 26. Agregación  Describe un ensamble de objeto donde el todo (el ensamblado) es mas que la suma de las partes.  La agregación no tiene reflejo en el código. La implementación se ve como cualquier otra asociación. CAL/Fundamentos
  • 27. Agregación  Cuando se desea que las partes esten diponibles para uso aún cuando el agregado ó todo no exista agregación debil.  Si las partes existen solo si forman parte del todo  Agregación fuerte, o composición. CAL/Fundamentos
  • 28. Agregación débil  Los jugadores pueden participar en muchos equipos al mismo tiempo. Por ejemplo ellos pueden jugar por la liga de la ciudad y por el equipo de una compañía. Cuando un equipo desaparece los jugadores aún existen y pueden reasignarse a otros equipos. CAL/Fundamentos
  • 29. Agregación fuerte Composición  Los capítulos pertenecen a un libro específico. Sin el libro los capítulo carecen de contexto y pierden su significado. Si el libro es borrado los capítulos son borrados con el. CAL/Fundamentos
  • 30. Generalización  Un tractor es un tipo de Vehículo, un aeroplano es una clase de vehículo. Si todas las propiedades del tractor y el aeroplano fueran iguales, entonces ellos podrían ser instancias de la misma clase, pero ellos solo comparten algunas propiedades.  En este caso se generaliza las propiedades compartidas CAL/Fundamentos
  • 31. Generalización  El término generalización es usado de otra forma. Una generalización es una estructura, esto es, una jerarquía de clases. CAL/Fundamentos
  • 32. Generalización  La clase vehículo define las propiedades que botes, tractores y aeroplanos tienen en común tales como manufacturador, modelo y capacidades de aceleración y desaceleración.Vehículo Bote Tractor Aeroplano CAL/Fundamentos
  • 33. Generalización  El bote, tractor y aeroplano contienen solo las propiedades adicionales que las distinguen de los otros tipos de vehículos. CAL/Fundamentos
  • 34. Generalización  Generalizar significa identificar las propiedades que un grupo de objetos tiene en común. Especializar significa identificar las propiedades que distinguen objetos similares de otros.  La generalización no es un tipo de asociación. Una asociación puede instanciarse como enlace entre dos objetos. Una generalización conecta dos clases de definiciones que deben usarse juntas para crear un único objeto. CAL/Fundamentos