SlideShare una empresa de Scribd logo
1 de 16
Análisis y Diseño OO con UML



       Diagramas de Clases
CLASES
Modelado Conceptual:

 Organización del conocimiento del
 dominio del problema en un conjunto
 de abstracciones ordenadas de forma
 que se obtiene un conocimiento más
 profundo del problema
Clasificación
 El mundo real puede ser visto desde
  abstracciones diferentes (subjetividad)

 Mecanismos de abstracción:
     Clasificación / Instanciación
     Composición / Descomposición
     Agrupación / Individualización
     Especialización / Generalización

 La clasificación es uno de los mecanismos
  de abstracción más utilizados
¿Qué es una Clase?
 Es una descripción de un conjunto de
  objetos que comparten los mismos
  atributos, operaciones, relaciones y
  semántica.




 Son una abstracción de las cosas que
  forman parte del vocabulario del dominio.
Clases
 La clase define el ámbito de definición
  de un conjunto de objetos

 Cada objeto pertenece a una clase

 Los objetos se crean por instanciación
  de las clases
Clases: Notación Gráfica
 Cada clase se representa en un
  rectángulo con tres compartimientos:
   nombre de la clase
   atributos de la clase
   operaciones de la clase
Clases
Atributo
 Es una propiedad, cualidad o característica asociada a
   una clase, identificada por un nombre que describe un
   rango de valores que puede tomar la propiedad.

 El nombre de un atributo es un nombre corto o
  expresión nominal extraída del dominio.
   Por lo general se suele poner la primera letra de cada
      palabra en mayúsculas, excepto de la primera
      (precio; tipoProducto)

 Junto al nombre se pueden incluir otras características
  (tipo, valor por defecto, etc.)
Clases
Operación
 Es una implementación de un servicio que puede ser
  requerido a cualquier objeto de la clase para que
  muestre un comportamiento.

 Generalmente la invocación de una operación sobre
  un objeto produce un cambio en los datos o el estado
  de éste.

 El nombre de una operación es un verbo o expresión
  verbal extraído del dominio.
   Por lo general se suele poner la primera letra de cada
      palabra en mayúsculas, excepto de la primera
      (comprar; calcularImporte)
Clases
Operación
  Junto al nombre se puede especificar su
  signatura.

   Nombre, tipo y valores por defecto de los
    parámetros y en ciertos casos necesarios tipo de
    retorno.
Clases
Especificación de una clase

 Para facilitar la comprensión no se suelen
  mostrar todos los atributos y operaciones
  de la clase, o incluso a veces sólo se
  muestra el nombre de la clase.

   Se puede indicar explícitamente que hay más
    atributos o propiedades mediante: ...
Clases
Identificación de clases

  El objetivo es identificar los conceptos
  significativos del dominio.
  Dos posibles estrategias:
   A partir de una lista de categorías.
   A partir de identificación de frases
    nominales.
Clases
Identificación de frases nominales
   Este método consiste en identificar en las descripciones
   textuales del dominio nombre o frases nominales y
   considerarlas como conceptos.

    En esta estructura los verbos representan
  asociaciones entre conceptos.

Ejemplo.-
               El cliente realiza los pedidos

            CLIENTE         REALIZA             PEDIDO
Clases
Errores y problemas en la identificación
 de clases
Incorporación de documentos como clases.
  Incorporarlos sólo si cumplen un papel especial
   respecto a las reglas del negocio (ejemplo.- un
   recibo de compra puede ser necesario para
   realizar una devolución).

Distinción entre atributo y clase.
 Si el concepto identificado no se describe
  mediante un simple número o texto
  descriptivo, posiblemente sea una clase.
Clases: Encapsulación
 La encapsulación presenta dos ventajas
 básicas:
  Se protegen los datos de accesos indebidos
  El acoplamiento entre las clases se disminuye
  Favorece la modularidad y el mantenimiento

 Los atributos de una clase no deberían ser
 manipulables directamente por el resto de
 objetos
…Clases: Encapsulación
 Los niveles de encapsulación están heredados de los
  niveles de C++:
   (-) Privado : es el más fuerte. Esta parte es
    totalmente invisible (excepto para clases friends en
    terminología C++)

   (#) Los atributos/operaciones protegidos están
   visibles para las clases friends y para las clases
   derivadas de la original

   (+) Los atributos/operaciones públicos son
   visibles a otras clases (cuando se trata de atributos
   se está transgrediendo el principio de encapsulación)
Relaciones entre Clases
 Los enlaces entre objetos pueden representarse entre
  las respectivas clases

 Expresa una conexión entre las clases del dominio.

 Formas de relación entre clases:
   Asociación y Agregación (vista como un caso
    particular de asociación)
   Generalización/Especialización

 Las relaciones de Agregación y Generalización forman
  jerarquías de clases

Más contenido relacionado

La actualidad más candente

java (clases,herencias,encapsulamiento,.. )
java (clases,herencias,encapsulamiento,.. )java (clases,herencias,encapsulamiento,.. )
java (clases,herencias,encapsulamiento,.. )brayan0015
 
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
 
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a  Programación Orientada a Objetos (OOP): Clases y ObjetosIntroducción a  Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a Programación Orientada a Objetos (OOP): Clases y ObjetosKudos S.A.S
 
Fundamentos de POO
Fundamentos de POOFundamentos de POO
Fundamentos de POOgueritamala
 
Programación orientada al objeto
Programación orientada al objetoProgramación orientada al objeto
Programación orientada al objetoboncastell
 
DIAGRAMA DE CLASES
DIAGRAMA DE CLASESDIAGRAMA DE CLASES
DIAGRAMA DE CLASESBiingeSof
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetospontifica
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clasesstill01
 
Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)Josue Lara Reyes
 
Primeraclaseobjetos Clases
Primeraclaseobjetos ClasesPrimeraclaseobjetos Clases
Primeraclaseobjetos Clasesmtemarialuisa
 
Diagramas de objetos
Diagramas de objetosDiagramas de objetos
Diagramas de objetosstill01
 

La actualidad más candente (20)

Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Conceptos basicos POO
Conceptos basicos POOConceptos basicos POO
Conceptos basicos POO
 
Encapsulamiento
EncapsulamientoEncapsulamiento
Encapsulamiento
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
java (clases,herencias,encapsulamiento,.. )
java (clases,herencias,encapsulamiento,.. )java (clases,herencias,encapsulamiento,.. )
java (clases,herencias,encapsulamiento,.. )
 
UML
UMLUML
UML
 
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)
 
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a  Programación Orientada a Objetos (OOP): Clases y ObjetosIntroducción a  Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
 
Fundamentos de POO
Fundamentos de POOFundamentos de POO
Fundamentos de POO
 
Programación orientada al objeto
Programación orientada al objetoProgramación orientada al objeto
Programación orientada al objeto
 
DIAGRAMA DE CLASES
DIAGRAMA DE CLASESDIAGRAMA DE CLASES
DIAGRAMA DE CLASES
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Elementos De Una Clase
Elementos De Una ClaseElementos De Una Clase
Elementos De Una Clase
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)
 
Primeraclaseobjetos Clases
Primeraclaseobjetos ClasesPrimeraclaseobjetos Clases
Primeraclaseobjetos Clases
 
Diagramas de objetos
Diagramas de objetosDiagramas de objetos
Diagramas de objetos
 
8.Clases y objetos Java
8.Clases y objetos Java8.Clases y objetos Java
8.Clases y objetos Java
 
Primeraclaseobjetos clases
Primeraclaseobjetos clasesPrimeraclaseobjetos clases
Primeraclaseobjetos clases
 

Destacado

Base de datos
Base de datosBase de datos
Base de datoscaoxman
 
metodologia de diseño de base de datos
metodologia de diseño de base de datosmetodologia de diseño de base de datos
metodologia de diseño de base de datosemnero
 
Relaciones en una base de datos
Relaciones en una base de datosRelaciones en una base de datos
Relaciones en una base de datoskabinfive
 
Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetosyoiner santiago
 
DiseñO De Sitemas
DiseñO De SitemasDiseñO De Sitemas
DiseñO De Sitemaslincoln25
 

Destacado (8)

base de datos
base de datosbase de datos
base de datos
 
Base de datos
Base de datosBase de datos
Base de datos
 
Dise O Conceptual
Dise O ConceptualDise O Conceptual
Dise O Conceptual
 
Tema6
Tema6Tema6
Tema6
 
metodologia de diseño de base de datos
metodologia de diseño de base de datosmetodologia de diseño de base de datos
metodologia de diseño de base de datos
 
Relaciones en una base de datos
Relaciones en una base de datosRelaciones en una base de datos
Relaciones en una base de datos
 
Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetos
 
DiseñO De Sitemas
DiseñO De SitemasDiseñO De Sitemas
DiseñO De Sitemas
 

Similar a Análisis y diseño oo con umldclases

Similar a Análisis y diseño oo con umldclases (20)

clases
clasesclases
clases
 
Clases 2
Clases 2Clases 2
Clases 2
 
Diagramadeclase
DiagramadeclaseDiagramadeclase
Diagramadeclase
 
Diagramas uml
Diagramas umlDiagramas uml
Diagramas uml
 
Diagramadeclase 20090223
Diagramadeclase 20090223Diagramadeclase 20090223
Diagramadeclase 20090223
 
Tutorial uml
Tutorial umlTutorial uml
Tutorial uml
 
diagrama de clases 2016 v3 sirven para diagramar las clases con sus t.pptx
diagrama de clases 2016 v3 sirven para diagramar las clases con sus t.pptxdiagrama de clases 2016 v3 sirven para diagramar las clases con sus t.pptx
diagrama de clases 2016 v3 sirven para diagramar las clases con sus t.pptx
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Clase 17
Clase 17Clase 17
Clase 17
 
Exposición Diagrama de Clases
Exposición Diagrama de ClasesExposición Diagrama de Clases
Exposición Diagrama de Clases
 
Diagramas clases presentacion
Diagramas clases presentacionDiagramas clases presentacion
Diagramas clases presentacion
 
Clases
ClasesClases
Clases
 
U1 s3 introducción a uml parte 1
U1 s3 introducción a uml parte 1U1 s3 introducción a uml parte 1
U1 s3 introducción a uml parte 1
 
1 2 5 Modelando Clases
1 2 5 Modelando Clases1 2 5 Modelando Clases
1 2 5 Modelando Clases
 
Portafolio ingenieria de software ii
Portafolio ingenieria de software iiPortafolio ingenieria de software ii
Portafolio ingenieria de software ii
 
Primeraclaseobjetos Clases
Primeraclaseobjetos ClasesPrimeraclaseobjetos Clases
Primeraclaseobjetos Clases
 
Trabajo2
Trabajo2Trabajo2
Trabajo2
 
Guía
GuíaGuía
Guía
 
Poo 1 concepto_basico
Poo 1 concepto_basicoPoo 1 concepto_basico
Poo 1 concepto_basico
 
PROGRAMACION_ORIENTADA_A_OBJETOS.pdf
PROGRAMACION_ORIENTADA_A_OBJETOS.pdfPROGRAMACION_ORIENTADA_A_OBJETOS.pdf
PROGRAMACION_ORIENTADA_A_OBJETOS.pdf
 

Último

Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 

Último (19)

Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 

Análisis y diseño oo con umldclases

  • 1. Análisis y Diseño OO con UML Diagramas de Clases
  • 2. CLASES Modelado Conceptual: Organización del conocimiento del dominio del problema en un conjunto de abstracciones ordenadas de forma que se obtiene un conocimiento más profundo del problema
  • 3. Clasificación  El mundo real puede ser visto desde abstracciones diferentes (subjetividad)  Mecanismos de abstracción:  Clasificación / Instanciación  Composición / Descomposición  Agrupación / Individualización  Especialización / Generalización  La clasificación es uno de los mecanismos de abstracción más utilizados
  • 4. ¿Qué es una Clase?  Es una descripción de un conjunto de objetos que comparten los mismos atributos, operaciones, relaciones y semántica.  Son una abstracción de las cosas que forman parte del vocabulario del dominio.
  • 5. Clases  La clase define el ámbito de definición de un conjunto de objetos  Cada objeto pertenece a una clase  Los objetos se crean por instanciación de las clases
  • 6. Clases: Notación Gráfica  Cada clase se representa en un rectángulo con tres compartimientos:  nombre de la clase  atributos de la clase  operaciones de la clase
  • 7. Clases Atributo  Es una propiedad, cualidad o característica asociada a una clase, identificada por un nombre que describe un rango de valores que puede tomar la propiedad.  El nombre de un atributo es un nombre corto o expresión nominal extraída del dominio.  Por lo general se suele poner la primera letra de cada palabra en mayúsculas, excepto de la primera (precio; tipoProducto)  Junto al nombre se pueden incluir otras características (tipo, valor por defecto, etc.)
  • 8. Clases Operación  Es una implementación de un servicio que puede ser requerido a cualquier objeto de la clase para que muestre un comportamiento.  Generalmente la invocación de una operación sobre un objeto produce un cambio en los datos o el estado de éste.  El nombre de una operación es un verbo o expresión verbal extraído del dominio.  Por lo general se suele poner la primera letra de cada palabra en mayúsculas, excepto de la primera (comprar; calcularImporte)
  • 9. Clases Operación Junto al nombre se puede especificar su signatura.  Nombre, tipo y valores por defecto de los parámetros y en ciertos casos necesarios tipo de retorno.
  • 10. Clases Especificación de una clase  Para facilitar la comprensión no se suelen mostrar todos los atributos y operaciones de la clase, o incluso a veces sólo se muestra el nombre de la clase.  Se puede indicar explícitamente que hay más atributos o propiedades mediante: ...
  • 11. Clases Identificación de clases El objetivo es identificar los conceptos significativos del dominio. Dos posibles estrategias:  A partir de una lista de categorías.  A partir de identificación de frases nominales.
  • 12. Clases Identificación de frases nominales Este método consiste en identificar en las descripciones textuales del dominio nombre o frases nominales y considerarlas como conceptos. En esta estructura los verbos representan asociaciones entre conceptos. Ejemplo.- El cliente realiza los pedidos CLIENTE REALIZA PEDIDO
  • 13. Clases Errores y problemas en la identificación de clases Incorporación de documentos como clases. Incorporarlos sólo si cumplen un papel especial respecto a las reglas del negocio (ejemplo.- un recibo de compra puede ser necesario para realizar una devolución). Distinción entre atributo y clase. Si el concepto identificado no se describe mediante un simple número o texto descriptivo, posiblemente sea una clase.
  • 14. Clases: Encapsulación  La encapsulación presenta dos ventajas básicas:  Se protegen los datos de accesos indebidos  El acoplamiento entre las clases se disminuye  Favorece la modularidad y el mantenimiento  Los atributos de una clase no deberían ser manipulables directamente por el resto de objetos
  • 15. …Clases: Encapsulación  Los niveles de encapsulación están heredados de los niveles de C++:  (-) Privado : es el más fuerte. Esta parte es totalmente invisible (excepto para clases friends en terminología C++)  (#) Los atributos/operaciones protegidos están visibles para las clases friends y para las clases derivadas de la original  (+) Los atributos/operaciones públicos son visibles a otras clases (cuando se trata de atributos se está transgrediendo el principio de encapsulación)
  • 16. Relaciones entre Clases  Los enlaces entre objetos pueden representarse entre las respectivas clases  Expresa una conexión entre las clases del dominio.  Formas de relación entre clases:  Asociación y Agregación (vista como un caso particular de asociación)  Generalización/Especialización  Las relaciones de Agregación y Generalización forman jerarquías de clases