SlideShare una empresa de Scribd logo
1 de 49
Universidad Autónoma del Estado de
                     México
       Centro Universitario UAEM Ecatepec
                Ingeniería en Computación



LA CRISIS DEL SOFTWARE Y EL
PARADIGMA DE
PROGRAMACIÓN ORIENTADA A
OBJETOS.
CONCEPTOS BÁSICOS


                            Programación Orientada a Objetos
UNIDAD DE COMPETENCIA I.
  ORÍGENES Y CONCEPTOS BÁSICOS DE LA PROGRAMACIÓN ORIENTADA A
                                                      OBJETOS


Objetivo:


  Reconocer   los aspectos históricos y
  tecnológicos que dan importancia al
  desarrollo de software orientado a objetos.




                                                           2
CONTENIDO

   Introducción
       Crisis del software
       Criterios de calidad del software
   Conceptos básicos de la P.O.O.
       Reutilización
       Polimorfismo
       Genericidad
       Clases y Objetos
       Robustez




                                                   3
GUIÓN EXPLICATIVO

   El contenido del presente material se divide en dos bloques que
    pueden abordarse arbitrariamente, sin embargo para entender el
    contexto general del paradigma orientado a objetos, se recomienda su
    revisión de acuerdo al siguiente diagrama:

                                             Conceptos
        • Crisis del software                 básicos
        • Criterios de calidad
                                     •   Clases y Objetos
        • Evolución de la
          programación O.            •   Métodos
          O.                         •   Reutilización
                                     •   Herencia
                                     •   Robustez
              Introducción

                                                                       4
Crisis del software
CRISIS DEL SOFTWARE


La industria del software
no ha podido satisfacer la
demanda.


La complejidad del software
producido y demandado se
incrementa
constantemente.


                                     6
CRISIS DEL SOFTWARE
Síntomas de que existe una crisis en la industria

 1. Baja calidad del software.
 2. Tiempo y presupuesto
    excedido.
 3. Confiabilidad
    cuestionable.
 4. Altos requerimientos de
    personal para desarrollo y
    mantenimiento.
                                                    7
CRISIS DEL SOFTWARE
     ¿Qué factores influyen en la crisis del software?



1.     Aumento del poder
       computacional.
2.     Reducción del costo del
       hardware.
3.     Rápida obsolescencia de
       hardware y software.



                                                         8
CRISIS DEL SOFTWARE
 ¿Qué factores influyen en la crisis del software?
4.   Aceptación de la
     computarización en las
     empresas.
5.   Incremento en el número
     de usuarios de los
     sistemas de software.
6.   Tipo de usuario no
     homogéneo aun en
     sistemas hechos a la
     medida.

                                                     9
CRISIS DEL SOFTWARE
     ¿Qué factores influyen en la crisis del software?



7.     Personal de desarrollo y
       mantenimiento diferente.
8.     La magnitud del proyecto
9.     Aumento en el conocimiento
       del problema.
10. Cambios en el entorno



                                                         10
CRISIS DEL SOFTWARE
¿Cómo hacerle frente a esta crisis?
 Usando un nuevo enfoque de desarrollo de
 software, que permita:
 a) Mantenerse al corriente frente a la creciente
    demanda
 b) Cumplir con los tiempos de entrega y costos
    establecidos
 c) Tener un mejor control del avance del proyecto de
    software
 d) Establecer un lenguaje común entre los
    integrantes del esquipo de desarrollo de software
 e) Generar entre desarrolladores y equipo de
    soporte un plan de mantenimiento para los
    productos de software implementados                 11
Criterios de Calidad
        Del software
CRITERIOS DE CALIDAD
La calidad puede describirse desde
distintos puntos de vista:
•Trascendental: “la calidad es algo que se
reconoce de inmediato, pero no es posible definir
explícitamente”.
•Del usuario: “La calidad se concibe en términos
de las metas específicas del usuario final. Si un
producto las satisface, tiene calidad”
•Del fabricante: “La define en términos de las
especificaciones originales del producto. Si éste las
cumple, tiene calidad”
•Del producto: “La calidad tiene que ver con las
características inherentes de un producto”
•Del valor: “La calidad esta relacionada con lo que
el cliente está dispuesto a pagar por un producto”.

                                                        13
CRITERIOS DE CALIDAD
Calidad del software
“Proceso eficaz del software que se aplica de manera
que crea un producto útil que proporciona valor
medible a quienes lo producen y a quienes lo utilizan”




                                                         14
CRITERIOS DE CALIDAD
            Factores de la calidad de McCall


Se centran en tres aspectos importantes del
producto de software:


• Sus características operativas
• Su capacidad de ser modificado
• Su adaptabilidad a nuevos ambientes



                                               15
CRITERIOS DE CALIDAD


Facilidad de recibir mantenimiento           Portabilidad
Flexibilidad                                 Reusabilidad
Susceptibilidad de someterse a pruebas       Interoperabilidad

    Revisión del producto                Transición del producto




                        Operación del producto


Corrección                   Usabilidad                      Eficiencia
                 Confiabilidad                            Integridad


                                                                          16
CRITERIOS DE CALIDAD
                Factores de la calidad de McCall

• Corrección. Grado en el que el programa satisface sus
especificaciones y en el que cumple con los objetivos de la
misión del cliente.
• Confiabilidad. Grado en el que se espera que un programa
cumpla con su misión y con la precisión requerida.
• Eficiencia. Cantidad de recursos de cómputo y de código
requeridos por un programa para llevar a cabo su función.
• Integridad. Grado en el que es posible controlar el acceso de
personas no autorizadas al software o a los datos.



                                                                  17
CRITERIOS DE CALIDAD
                Factores de la calidad de McCall

• Usabilidad.       Esfuerzo     que    se     requiere     para
aprender, operar, preparar las entradas e interpretar las salidas
de un programa.
• Facilidad de recibir mantenimiento. Esfuerzo requerido
para detectar y corregir un error en un programa.
• Flexibilidad. Esfuerzo necesario para modificar un programa
que ya opera.
• Susceptibilidad de someterse a pruebas. Esfuerzo que
se requiere para probar un programa a fin de garantizar que
realiza la función que se pretende.


                                                                    18
CRITERIOS DE CALIDAD
                 Factores de la calidad de McCall

• Portabilidad. Esfuerzo que se necesita para transferir un
programa de un ambiente de sistema de hardware o software a
otro.
• Reusabilidad. Grado con el que un programa (o partes de
uno) pueden volverse a utilizar en otras aplicaciones.
• Interoperabilidad. Esfuerzo requerido para acoplar un
sistema con otro.




                                                              19
CRITERIOS DE CALIDAD
                 Factores de la calidad ISO 9126
Estándar desarrollado con la intensión de identificar
los atributos clave del software de cómputo.
• Funcionalidad. Gado en el que el software
satisface las necesidades planteadas según las
establecen los atributos siguientes:
   • Adaptabilidad
   • Exactitud
   • Interoperabilidad
   • Cumplimiento
   • Seguridad


                                                        20
CRITERIOS DE CALIDAD
                 Factores de la calidad ISO 9126

• Confiabilidad. Cantidad de tiempo que el software
se encuentra disponible para su uso, según lo indican
los siguientes atributos:
   • Madurez
   • Tolerancia a fallas
   • Recuperación




                                                        21
CRITERIOS DE CALIDAD
                  Factores de la calidad ISO 9126

• Usabilidad. Grado en el que el software es fácil de
usar, según lo indican los siguientes subatributos:
   • Entendible
   • Aprendible
   • Operable




                                                        22
CRITERIOS DE CALIDAD
               Factores de la calidad ISO 9126

• Eficiencia. Grado en el que el software emplea
óptimamente los recursos del sistema, según lo
indican los subatributos siguientes:
  • Comportamiento del tiempo
  • Comportamiento de los recursos




                                                   23
CRITERIOS DE CALIDAD
                  Factores de la calidad ISO 9126

• Facilidad de recibir mantenimiento. Facilidad con
la que pretenden efectuarse reparaciones al
software, según lo indican los siguientes atributos:
   • Analizable
   • Cambiable
   • Estable
   • Susceptible a someterse a pruebas




                                                       24
CRITERIOS DE CALIDAD
                   Factores de la calidad ISO 9126

• Portabilidad. Facilidad con la que el software
puede llevarse de un ambiente a otro según lo indican
los siguientes atributos:
   • Adaptable
   • Instalable
   • Conformidad
   • Sustituible




                                                        25
POO
          AD
     PM
PP
               Evolución de la
      programación: paradigma
                y metodología
PARADIGMA

 Es un determinado marco desde el cuál se
  puede mirar, comprender, interpretar e
  interactuar con eventos, aspectos u objetos
  del mundo.
 Puede describirse como:
     elconjunto de conocimientos científicos que
      imperan en una época determinada
     Las formas de pensar y de sentir de la gente en
      un determinado lugar y momento histórico.

                                                        27
PARADIGMA

   En el contexto académico y de
    investigación, es:
       Una forma aceptada de resolver un problema en la
        ciencia, que más tarde es utilizada como modelo
        para la investigación y la formación de una teoría
   ¿En el contexto de programación?
       los paradigmas de programación nos indican las
        diversas formas que, a lo largo de la evolución de los
        lenguajes, han sido aceptadas como estilos para
        programar y para resolver los problemas por medio
        de una computadora.
                                                             28
PARADIGMAS DE PROGRAMACIÓN

   Los paradigmas de programación de uso
    más extendido son:
       Programación por procedimientos

       Programación modular

       Abstracción de datos

       Programación Orientada a Objetos




                                            29
PROGRAMACIÓN POR PROCEDIMIENTOS

 Paradigma original de programación y de
  uso más común
 El programador se concentra en el
  procesamiento, en el algoritmo requerido
  para llevar a cabo el cómputo deseado
 Lenguajes: Fortran, Pascal y C
   La programación estructurada se considera como el
    componente principal de la programación por
    procedimientos.

                                                        30
PROGRAMACIÓN MODULAR
 Con los años se dio mayor énfasis al diseño
  de procedimientos que a la organización de
  la información
 Lo anterior originó que el tamaño de los
  programas aumentara y en consecuencia la
  dificultad para encontrar errores de ejecución
  y darles mantenimiento
 La programación modular surge como
  remedio a esta situación

                                              31
PROGRAMACIÓN MODULAR

   ¿Qué es un Módulo?
     Conjunto de procedimientos afines junto con los
      datos que manipulan
   La programación modular consiste en:
     Establecer   los módulos que se requieren para la
      resolución de un problema
     Dividir el programa de modo que los
      procedimientos y los datos queden ocultos en
      los módulos

                                                      32
PARADIGMA DE ABSTRACCIÓN DE DATOS

 Los lenguajes como ADA y C++ permiten
  que un usuario defina tipos que se
  comporten casi de la misma manera que los
  tipos definidos por el lenguaje.
 Estos tipos de datos definidos por el usuario
  reciben el nombre de tipos abstractos




                                              33
PARADIGMA DE ABSTRACCIÓN DE DATOS

   El PAD consiste en:
     Establecer  las características de los tipos de
      datos abstractos que se desean definir
     Proporcionar un conjunto completo de
      operaciones válidas y útiles para cada tipo de
      dato
     Cuando no hay necesidad de más de un objeto
      de un tipo dado, no es necesario este estilo de
      programación y basta con el estilo de
      ocultamiento de datos por medio de módulos.
                                                        34
PROGRAMACIÓN ORIENTADA A OBJETOS

 El paradigma de AD tiene el inconveniente
  de que no hay una distinción entre las
  propiedades generales y las particulares de
  un conjunto de objetos
 Expresar esta distinción y aprovecharla es lo
  que define a la POO a través del concepto
  de herencia



                                              35
PROGRAMACIÓN ORIENTADA A OBJETOS

   El paradigma de POO consiste en:
     Definir que clases se desean
     Proporcionar un conjunto completo de
      operaciones para cada clase
     Indicar explícitamente lo que los objetos de
      la clase tienen en común empleando el
      concepto de herencia




                                                     36
Clases




Abstracción                                  Objetos



                        POO

         Polimorfismo             Herencia




                         Conceptos básicos de la
                        Programación Orientada a
                                         Objetos
CONCEPTOS BÁSICOS DE LA POO

Definición de POO.

 Es un importante conjunto de técnicas que pueden
 utilizarse para hacer el desarrollo de programas
 más eficiente, a la par que mejora la fiabilidad de
 los programas




                                                  38
CONCEPTOS BÁSICOS DE LA POO
Principios de la Orientación a Objetos
   Los programas de computadoras constan de 2
    elementos: Código y Datos.
   Un programa se puede organizar conceptualmente en
    base a su código o a sus datos.
   Existen 2 paradigmas que controlan el modo como se
    escribe un programa
       Paradigma procedimental (escrito alrededor de lo que está
        sucediendo)
       Paradigma Orientado a Objetos (escrito alrededor de quien
        está siendo afectado)




                                                               39
CONCEPTOS BÁSICOS DE LA POO
Modelo Orientado a Procesos
     Código que actúa sobre datos
Modelo Orientado a Objetos
     Define objetos de datos, sus atributos y el modo en que se
      pueden examinar o cambiar
     Los objetos, datos y procedimientos se pueden comunicar con
      otros objetos y datos
     Un programa consta de una serie de objetos que se
      comunican entre sí enviándose mensajes.




                                                               40
CONCEPTOS BÁSICOS DE LA POO
Clases
   En el mundo real existen muchos objetos de la
    misma clase.
     P. ej. La clase Automóvil
        Su  automóvil es uno de los muchos automóviles del
         mundo.
        Un automóvil es una instancia de la clase de objetos
         conocida como Automóvil
        Los     automóviles   tiene    un    estado    común
         (velocidad, puertas, modelo y cuatro ruedas) y un
         comportamiento (acelerar, frenar, dar vuelta).
        Sin embargo, cada automóvil es independiente y
         puede ser diferente de otros automóviles.          41
CONCEPTOS BÁSICOS DE LA POO

Definición de Clase

 Una clase es un prototipo o modelo que
 define las variables y métodos comunes a
 todos los objetos de un cierto tipo.




                                        42
CONCEPTOS BÁSICOS DE LA POO
Explicación del concepto Clase (1)
   Una clase es como una plantilla o modelo que se
    utiliza para crear objetos concretos
   Una vez que se declara una clase, se debe
    instanciar antes de que se pueda utilizar
   Una clase consta de variables denominadas
    campos junto con métodos que operan sobre esos
    campos.
   Una clase encapsula los componentes pasivos
    (campos) y componentes activos (métodos) en una
    única entidad.

                                                 43
CONCEPTOS BÁSICOS DE LA POO

Explicación del concepto Clase (2)
   Una clase define las características de un grupo de
    objetos que comparte ciertas características:
       Almacenan los mismos tipos de datos
       Pueden ejecutar las mismas operaciones
   Sin embargo, cada objeto puede almacenar
    valores reales diferentes y representa una
    ocurrencia particular de esa clase de objetos.



                                                     44
CONCEPTOS BÁSICOS DE LA POO
Creación y uso de una Clase
   Cuando se crea una instancia de una clase, se crea un
    objeto de ese tipo y el sistema asigna memoria para
    las variables instancia declaradas por la clase.
   A continuación se puede invocar a los métodos del
    objeto para realizar alguna tarea.
   Dada una clase, un objeto - denominado también
    instancia de la clase - es una variable que tiene los
    campos de esa clase y puede llamar a los métodos de
    esa clase.




                                                        45
CONCEPTOS BÁSICOS DE LA POO
   Abstracción. Se enfoca en las características esenciales
    de un objeto relativo a la perspectiva del observador.
   Modularidad.     Agrupa abstracciones en unidades
    discretas. Es la propiedad de un sistema que se ha
    descompuesto en un conjunto de módulos coherentes y
    poco acoplados.
   Herencia: Es clasificar u ordenar abstracciones. Las
    abstracciones forman una jerarquía. Los objetos pueden
    heredar propiedades de otros objetos. La herencia puede
    ser simple o múltiple. (C++: Privado, Protegido, Público).


                                                             46
CONCEPTOS BÁSICOS DE LA POO
   Encapsulación:     Esconde       los   detalles   de   la
    implementación de un objeto
   Reutilización: Se refiere a la creación de objetos (bien
    hechos) que pueden utilizarse en otros dominios
   Ejecución: Se lleva a cabo por medio de propagación
    de mensajes
   Mensajes: El código privado que tiene el objeto puede
    ser accesado solo por medio de mensajes. El mensaje
    dice a que objeto se dirige, que procedimiento ejecutar y
    cuales son los argumentos que deberá contener.

                                                                47
CONCEPTOS BÁSICOS DE LA POO
   Métodos: Es un procedimiento privado de un
    objeto que dice que hacer con un mensaje y como
    hacerlo. Como cada objeto tiene sus propios
    métodos, los objetos pueden responder diferente al
    mismo mensaje.
   Respuestas: Una vez recibido un mensaje, el
    objeto manda su respuesta a otros objetos o al
    sistema.
   Polimorfismo: se refiere a la capacidad para que
    varias clases derivadas de una antecesora utilicen
    un mismo método de forma diferente.                48
BIBLIOGRAFÍA
   Deytel Harvey M., Paul J, Deytel, Como
    programar en Java , 5ª. Edición, Prentice Hall
    México.
   Goodrich Michel T., Tamassia
    Roberto, Estructuras de datos y algoritmos en
    Java 2ª. Edición, CECSA, México.
   Ceballos Fco. Javier, Java 2 Curso de
    Programación, AlfaOmega Ra-Ma, México.
   Joyanes Aguilar Luis, Programación Orientada a
    Objetos, segunda edición, McGraw Hill.
                                                     49

Más contenido relacionado

La actualidad más candente

03b arquitectura clienteservidor n capas
03b arquitectura clienteservidor n capas03b arquitectura clienteservidor n capas
03b arquitectura clienteservidor n capasWalter Moo Guzmán
 
Metodologia xp cortesserranoeliud
Metodologia xp cortesserranoeliudMetodologia xp cortesserranoeliud
Metodologia xp cortesserranoeliudEliud Cortes
 
Tecnicas y herramientas para el desarrollo de software
Tecnicas y herramientas para el desarrollo de softwareTecnicas y herramientas para el desarrollo de software
Tecnicas y herramientas para el desarrollo de softwareReynaldo Mayz
 
tipos de pruebas.
tipos de pruebas.tipos de pruebas.
tipos de pruebas.Juan Ravi
 
Atributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de software Atributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de software Joan Manuel Zabala
 
Análisis de Requerimientos
Análisis de RequerimientosAnálisis de Requerimientos
Análisis de RequerimientosUTPL UTPL
 
La trazabilidad de artefactos software en el contexto de nuevos paradigmas de...
La trazabilidad de artefactos software en el contexto de nuevos paradigmas de...La trazabilidad de artefactos software en el contexto de nuevos paradigmas de...
La trazabilidad de artefactos software en el contexto de nuevos paradigmas de...Marta Silvia Tabares
 
Presentación Avast
Presentación AvastPresentación Avast
Presentación Avast1fcojavi1
 
ARQUITECTURA DE SOFTWARE.pdf
ARQUITECTURA DE SOFTWARE.pdfARQUITECTURA DE SOFTWARE.pdf
ARQUITECTURA DE SOFTWARE.pdfDavidVeraOlivera
 
Diseno de la arquitectura
Diseno de la arquitecturaDiseno de la arquitectura
Diseno de la arquitecturaFatima Cham
 
modelos de calidad de software
modelos de calidad de softwaremodelos de calidad de software
modelos de calidad de softwareHernan Espinoza
 
Calidad en el desarrollo de software
Calidad en el desarrollo de softwareCalidad en el desarrollo de software
Calidad en el desarrollo de softwareLupithaa Guerrero
 
Requerimiento funcional y no funcional
Requerimiento funcional y no funcional Requerimiento funcional y no funcional
Requerimiento funcional y no funcional CristobalFicaV
 
Cuadro comparativo estandares de calidad software
Cuadro comparativo estandares de calidad softwareCuadro comparativo estandares de calidad software
Cuadro comparativo estandares de calidad softwareHumano Terricola
 
Formato de Inventario Hardware && Software
Formato de Inventario Hardware && SoftwareFormato de Inventario Hardware && Software
Formato de Inventario Hardware && SoftwareSolution´s System
 

La actualidad más candente (20)

03b arquitectura clienteservidor n capas
03b arquitectura clienteservidor n capas03b arquitectura clienteservidor n capas
03b arquitectura clienteservidor n capas
 
Aplicaciones distribuidas
Aplicaciones distribuidasAplicaciones distribuidas
Aplicaciones distribuidas
 
Metodologia xp cortesserranoeliud
Metodologia xp cortesserranoeliudMetodologia xp cortesserranoeliud
Metodologia xp cortesserranoeliud
 
Tecnicas y herramientas para el desarrollo de software
Tecnicas y herramientas para el desarrollo de softwareTecnicas y herramientas para el desarrollo de software
Tecnicas y herramientas para el desarrollo de software
 
tipos de pruebas.
tipos de pruebas.tipos de pruebas.
tipos de pruebas.
 
Atributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de software Atributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de software
 
Plan de pruebas
Plan de pruebasPlan de pruebas
Plan de pruebas
 
Metricas de calidad
Metricas de calidadMetricas de calidad
Metricas de calidad
 
Análisis de Requerimientos
Análisis de RequerimientosAnálisis de Requerimientos
Análisis de Requerimientos
 
La trazabilidad de artefactos software en el contexto de nuevos paradigmas de...
La trazabilidad de artefactos software en el contexto de nuevos paradigmas de...La trazabilidad de artefactos software en el contexto de nuevos paradigmas de...
La trazabilidad de artefactos software en el contexto de nuevos paradigmas de...
 
Presentación Avast
Presentación AvastPresentación Avast
Presentación Avast
 
ARQUITECTURA DE SOFTWARE.pdf
ARQUITECTURA DE SOFTWARE.pdfARQUITECTURA DE SOFTWARE.pdf
ARQUITECTURA DE SOFTWARE.pdf
 
Diseno de la arquitectura
Diseno de la arquitecturaDiseno de la arquitectura
Diseno de la arquitectura
 
Guia iso 9126
Guia iso 9126Guia iso 9126
Guia iso 9126
 
modelos de calidad de software
modelos de calidad de softwaremodelos de calidad de software
modelos de calidad de software
 
Calidad en el desarrollo de software
Calidad en el desarrollo de softwareCalidad en el desarrollo de software
Calidad en el desarrollo de software
 
Arquitectura del software
Arquitectura del softwareArquitectura del software
Arquitectura del software
 
Requerimiento funcional y no funcional
Requerimiento funcional y no funcional Requerimiento funcional y no funcional
Requerimiento funcional y no funcional
 
Cuadro comparativo estandares de calidad software
Cuadro comparativo estandares de calidad softwareCuadro comparativo estandares de calidad software
Cuadro comparativo estandares de calidad software
 
Formato de Inventario Hardware && Software
Formato de Inventario Hardware && SoftwareFormato de Inventario Hardware && Software
Formato de Inventario Hardware && Software
 

Similar a La crisis del software

Similar a La crisis del software (20)

calidad en desarrollo de software y sus atributos
calidad en desarrollo de software y sus atributoscalidad en desarrollo de software y sus atributos
calidad en desarrollo de software y sus atributos
 
Cuadro sinoptico
Cuadro sinopticoCuadro sinoptico
Cuadro sinoptico
 
Cuadro sinoptico
Cuadro sinopticoCuadro sinoptico
Cuadro sinoptico
 
Calidad
CalidadCalidad
Calidad
 
Ra semana 16
Ra semana 16Ra semana 16
Ra semana 16
 
BoLeTiN N° 2
BoLeTiN N° 2BoLeTiN N° 2
BoLeTiN N° 2
 
Mapa conceptual de calidad
Mapa conceptual de calidadMapa conceptual de calidad
Mapa conceptual de calidad
 
Mapa conceptual de calidad adan
Mapa conceptual de calidad adanMapa conceptual de calidad adan
Mapa conceptual de calidad adan
 
Guia tecnica para evaluación de software
Guia tecnica para evaluación de softwareGuia tecnica para evaluación de software
Guia tecnica para evaluación de software
 
Diagrama conceptual
Diagrama conceptualDiagrama conceptual
Diagrama conceptual
 
Calidad Del Software
Calidad Del SoftwareCalidad Del Software
Calidad Del Software
 
Articulo Calidad Del Software El Camino Al Exito Ver. Revisada
Articulo Calidad Del Software El Camino Al Exito Ver. RevisadaArticulo Calidad Del Software El Camino Al Exito Ver. Revisada
Articulo Calidad Del Software El Camino Al Exito Ver. Revisada
 
ISO 9126.pdf
ISO 9126.pdfISO 9126.pdf
ISO 9126.pdf
 
Factores de calidad del software
Factores de calidad del softwareFactores de calidad del software
Factores de calidad del software
 
conceptos de calidad
conceptos de calidadconceptos de calidad
conceptos de calidad
 
Conceptos de calidad
Conceptos de calidadConceptos de calidad
Conceptos de calidad
 
Calidad
CalidadCalidad
Calidad
 
Trabajo N°2
Trabajo N°2Trabajo N°2
Trabajo N°2
 
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
 
Calidad del software
Calidad del softwareCalidad del software
Calidad del software
 

Último

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
 
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
 
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
 
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
 
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
 
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
 
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
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 

Último (19)

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
 
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...
 
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
 
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)
 
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
 
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
 
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
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
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
 
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...
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
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
 
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
 
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
 
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...
 
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
 
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
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 

La crisis del software

  • 1. Universidad Autónoma del Estado de México Centro Universitario UAEM Ecatepec Ingeniería en Computación LA CRISIS DEL SOFTWARE Y EL PARADIGMA DE PROGRAMACIÓN ORIENTADA A OBJETOS. CONCEPTOS BÁSICOS Programación Orientada a Objetos
  • 2. UNIDAD DE COMPETENCIA I. ORÍGENES Y CONCEPTOS BÁSICOS DE LA PROGRAMACIÓN ORIENTADA A OBJETOS Objetivo:  Reconocer los aspectos históricos y tecnológicos que dan importancia al desarrollo de software orientado a objetos. 2
  • 3. CONTENIDO  Introducción  Crisis del software  Criterios de calidad del software  Conceptos básicos de la P.O.O.  Reutilización  Polimorfismo  Genericidad  Clases y Objetos  Robustez 3
  • 4. GUIÓN EXPLICATIVO  El contenido del presente material se divide en dos bloques que pueden abordarse arbitrariamente, sin embargo para entender el contexto general del paradigma orientado a objetos, se recomienda su revisión de acuerdo al siguiente diagrama: Conceptos • Crisis del software básicos • Criterios de calidad • Clases y Objetos • Evolución de la programación O. • Métodos O. • Reutilización • Herencia • Robustez Introducción 4
  • 6. CRISIS DEL SOFTWARE La industria del software no ha podido satisfacer la demanda. La complejidad del software producido y demandado se incrementa constantemente. 6
  • 7. CRISIS DEL SOFTWARE Síntomas de que existe una crisis en la industria 1. Baja calidad del software. 2. Tiempo y presupuesto excedido. 3. Confiabilidad cuestionable. 4. Altos requerimientos de personal para desarrollo y mantenimiento. 7
  • 8. CRISIS DEL SOFTWARE ¿Qué factores influyen en la crisis del software? 1. Aumento del poder computacional. 2. Reducción del costo del hardware. 3. Rápida obsolescencia de hardware y software. 8
  • 9. CRISIS DEL SOFTWARE ¿Qué factores influyen en la crisis del software? 4. Aceptación de la computarización en las empresas. 5. Incremento en el número de usuarios de los sistemas de software. 6. Tipo de usuario no homogéneo aun en sistemas hechos a la medida. 9
  • 10. CRISIS DEL SOFTWARE ¿Qué factores influyen en la crisis del software? 7. Personal de desarrollo y mantenimiento diferente. 8. La magnitud del proyecto 9. Aumento en el conocimiento del problema. 10. Cambios en el entorno 10
  • 11. CRISIS DEL SOFTWARE ¿Cómo hacerle frente a esta crisis? Usando un nuevo enfoque de desarrollo de software, que permita: a) Mantenerse al corriente frente a la creciente demanda b) Cumplir con los tiempos de entrega y costos establecidos c) Tener un mejor control del avance del proyecto de software d) Establecer un lenguaje común entre los integrantes del esquipo de desarrollo de software e) Generar entre desarrolladores y equipo de soporte un plan de mantenimiento para los productos de software implementados 11
  • 12. Criterios de Calidad Del software
  • 13. CRITERIOS DE CALIDAD La calidad puede describirse desde distintos puntos de vista: •Trascendental: “la calidad es algo que se reconoce de inmediato, pero no es posible definir explícitamente”. •Del usuario: “La calidad se concibe en términos de las metas específicas del usuario final. Si un producto las satisface, tiene calidad” •Del fabricante: “La define en términos de las especificaciones originales del producto. Si éste las cumple, tiene calidad” •Del producto: “La calidad tiene que ver con las características inherentes de un producto” •Del valor: “La calidad esta relacionada con lo que el cliente está dispuesto a pagar por un producto”. 13
  • 14. CRITERIOS DE CALIDAD Calidad del software “Proceso eficaz del software que se aplica de manera que crea un producto útil que proporciona valor medible a quienes lo producen y a quienes lo utilizan” 14
  • 15. CRITERIOS DE CALIDAD Factores de la calidad de McCall Se centran en tres aspectos importantes del producto de software: • Sus características operativas • Su capacidad de ser modificado • Su adaptabilidad a nuevos ambientes 15
  • 16. CRITERIOS DE CALIDAD Facilidad de recibir mantenimiento Portabilidad Flexibilidad Reusabilidad Susceptibilidad de someterse a pruebas Interoperabilidad Revisión del producto Transición del producto Operación del producto Corrección Usabilidad Eficiencia Confiabilidad Integridad 16
  • 17. CRITERIOS DE CALIDAD Factores de la calidad de McCall • Corrección. Grado en el que el programa satisface sus especificaciones y en el que cumple con los objetivos de la misión del cliente. • Confiabilidad. Grado en el que se espera que un programa cumpla con su misión y con la precisión requerida. • Eficiencia. Cantidad de recursos de cómputo y de código requeridos por un programa para llevar a cabo su función. • Integridad. Grado en el que es posible controlar el acceso de personas no autorizadas al software o a los datos. 17
  • 18. CRITERIOS DE CALIDAD Factores de la calidad de McCall • Usabilidad. Esfuerzo que se requiere para aprender, operar, preparar las entradas e interpretar las salidas de un programa. • Facilidad de recibir mantenimiento. Esfuerzo requerido para detectar y corregir un error en un programa. • Flexibilidad. Esfuerzo necesario para modificar un programa que ya opera. • Susceptibilidad de someterse a pruebas. Esfuerzo que se requiere para probar un programa a fin de garantizar que realiza la función que se pretende. 18
  • 19. CRITERIOS DE CALIDAD Factores de la calidad de McCall • Portabilidad. Esfuerzo que se necesita para transferir un programa de un ambiente de sistema de hardware o software a otro. • Reusabilidad. Grado con el que un programa (o partes de uno) pueden volverse a utilizar en otras aplicaciones. • Interoperabilidad. Esfuerzo requerido para acoplar un sistema con otro. 19
  • 20. CRITERIOS DE CALIDAD Factores de la calidad ISO 9126 Estándar desarrollado con la intensión de identificar los atributos clave del software de cómputo. • Funcionalidad. Gado en el que el software satisface las necesidades planteadas según las establecen los atributos siguientes: • Adaptabilidad • Exactitud • Interoperabilidad • Cumplimiento • Seguridad 20
  • 21. CRITERIOS DE CALIDAD Factores de la calidad ISO 9126 • Confiabilidad. Cantidad de tiempo que el software se encuentra disponible para su uso, según lo indican los siguientes atributos: • Madurez • Tolerancia a fallas • Recuperación 21
  • 22. CRITERIOS DE CALIDAD Factores de la calidad ISO 9126 • Usabilidad. Grado en el que el software es fácil de usar, según lo indican los siguientes subatributos: • Entendible • Aprendible • Operable 22
  • 23. CRITERIOS DE CALIDAD Factores de la calidad ISO 9126 • Eficiencia. Grado en el que el software emplea óptimamente los recursos del sistema, según lo indican los subatributos siguientes: • Comportamiento del tiempo • Comportamiento de los recursos 23
  • 24. CRITERIOS DE CALIDAD Factores de la calidad ISO 9126 • Facilidad de recibir mantenimiento. Facilidad con la que pretenden efectuarse reparaciones al software, según lo indican los siguientes atributos: • Analizable • Cambiable • Estable • Susceptible a someterse a pruebas 24
  • 25. CRITERIOS DE CALIDAD Factores de la calidad ISO 9126 • Portabilidad. Facilidad con la que el software puede llevarse de un ambiente a otro según lo indican los siguientes atributos: • Adaptable • Instalable • Conformidad • Sustituible 25
  • 26. POO AD PM PP Evolución de la programación: paradigma y metodología
  • 27. PARADIGMA  Es un determinado marco desde el cuál se puede mirar, comprender, interpretar e interactuar con eventos, aspectos u objetos del mundo.  Puede describirse como:  elconjunto de conocimientos científicos que imperan en una época determinada  Las formas de pensar y de sentir de la gente en un determinado lugar y momento histórico. 27
  • 28. PARADIGMA  En el contexto académico y de investigación, es:  Una forma aceptada de resolver un problema en la ciencia, que más tarde es utilizada como modelo para la investigación y la formación de una teoría  ¿En el contexto de programación?  los paradigmas de programación nos indican las diversas formas que, a lo largo de la evolución de los lenguajes, han sido aceptadas como estilos para programar y para resolver los problemas por medio de una computadora. 28
  • 29. PARADIGMAS DE PROGRAMACIÓN  Los paradigmas de programación de uso más extendido son:  Programación por procedimientos  Programación modular  Abstracción de datos  Programación Orientada a Objetos 29
  • 30. PROGRAMACIÓN POR PROCEDIMIENTOS  Paradigma original de programación y de uso más común  El programador se concentra en el procesamiento, en el algoritmo requerido para llevar a cabo el cómputo deseado  Lenguajes: Fortran, Pascal y C  La programación estructurada se considera como el componente principal de la programación por procedimientos. 30
  • 31. PROGRAMACIÓN MODULAR  Con los años se dio mayor énfasis al diseño de procedimientos que a la organización de la información  Lo anterior originó que el tamaño de los programas aumentara y en consecuencia la dificultad para encontrar errores de ejecución y darles mantenimiento  La programación modular surge como remedio a esta situación 31
  • 32. PROGRAMACIÓN MODULAR  ¿Qué es un Módulo?  Conjunto de procedimientos afines junto con los datos que manipulan  La programación modular consiste en:  Establecer los módulos que se requieren para la resolución de un problema  Dividir el programa de modo que los procedimientos y los datos queden ocultos en los módulos 32
  • 33. PARADIGMA DE ABSTRACCIÓN DE DATOS  Los lenguajes como ADA y C++ permiten que un usuario defina tipos que se comporten casi de la misma manera que los tipos definidos por el lenguaje.  Estos tipos de datos definidos por el usuario reciben el nombre de tipos abstractos 33
  • 34. PARADIGMA DE ABSTRACCIÓN DE DATOS  El PAD consiste en:  Establecer las características de los tipos de datos abstractos que se desean definir  Proporcionar un conjunto completo de operaciones válidas y útiles para cada tipo de dato  Cuando no hay necesidad de más de un objeto de un tipo dado, no es necesario este estilo de programación y basta con el estilo de ocultamiento de datos por medio de módulos. 34
  • 35. PROGRAMACIÓN ORIENTADA A OBJETOS  El paradigma de AD tiene el inconveniente de que no hay una distinción entre las propiedades generales y las particulares de un conjunto de objetos  Expresar esta distinción y aprovecharla es lo que define a la POO a través del concepto de herencia 35
  • 36. PROGRAMACIÓN ORIENTADA A OBJETOS  El paradigma de POO consiste en:  Definir que clases se desean  Proporcionar un conjunto completo de operaciones para cada clase  Indicar explícitamente lo que los objetos de la clase tienen en común empleando el concepto de herencia 36
  • 37. Clases Abstracción Objetos POO Polimorfismo Herencia Conceptos básicos de la Programación Orientada a Objetos
  • 38. CONCEPTOS BÁSICOS DE LA POO Definición de POO. Es un importante conjunto de técnicas que pueden utilizarse para hacer el desarrollo de programas más eficiente, a la par que mejora la fiabilidad de los programas 38
  • 39. CONCEPTOS BÁSICOS DE LA POO Principios de la Orientación a Objetos  Los programas de computadoras constan de 2 elementos: Código y Datos.  Un programa se puede organizar conceptualmente en base a su código o a sus datos.  Existen 2 paradigmas que controlan el modo como se escribe un programa  Paradigma procedimental (escrito alrededor de lo que está sucediendo)  Paradigma Orientado a Objetos (escrito alrededor de quien está siendo afectado) 39
  • 40. CONCEPTOS BÁSICOS DE LA POO Modelo Orientado a Procesos  Código que actúa sobre datos Modelo Orientado a Objetos  Define objetos de datos, sus atributos y el modo en que se pueden examinar o cambiar  Los objetos, datos y procedimientos se pueden comunicar con otros objetos y datos  Un programa consta de una serie de objetos que se comunican entre sí enviándose mensajes. 40
  • 41. CONCEPTOS BÁSICOS DE LA POO Clases  En el mundo real existen muchos objetos de la misma clase.  P. ej. La clase Automóvil  Su automóvil es uno de los muchos automóviles del mundo.  Un automóvil es una instancia de la clase de objetos conocida como Automóvil  Los automóviles tiene un estado común (velocidad, puertas, modelo y cuatro ruedas) y un comportamiento (acelerar, frenar, dar vuelta).  Sin embargo, cada automóvil es independiente y puede ser diferente de otros automóviles. 41
  • 42. CONCEPTOS BÁSICOS DE LA POO Definición de Clase Una clase es un prototipo o modelo que define las variables y métodos comunes a todos los objetos de un cierto tipo. 42
  • 43. CONCEPTOS BÁSICOS DE LA POO Explicación del concepto Clase (1)  Una clase es como una plantilla o modelo que se utiliza para crear objetos concretos  Una vez que se declara una clase, se debe instanciar antes de que se pueda utilizar  Una clase consta de variables denominadas campos junto con métodos que operan sobre esos campos.  Una clase encapsula los componentes pasivos (campos) y componentes activos (métodos) en una única entidad. 43
  • 44. CONCEPTOS BÁSICOS DE LA POO Explicación del concepto Clase (2)  Una clase define las características de un grupo de objetos que comparte ciertas características:  Almacenan los mismos tipos de datos  Pueden ejecutar las mismas operaciones  Sin embargo, cada objeto puede almacenar valores reales diferentes y representa una ocurrencia particular de esa clase de objetos. 44
  • 45. CONCEPTOS BÁSICOS DE LA POO Creación y uso de una Clase  Cuando se crea una instancia de una clase, se crea un objeto de ese tipo y el sistema asigna memoria para las variables instancia declaradas por la clase.  A continuación se puede invocar a los métodos del objeto para realizar alguna tarea.  Dada una clase, un objeto - denominado también instancia de la clase - es una variable que tiene los campos de esa clase y puede llamar a los métodos de esa clase. 45
  • 46. CONCEPTOS BÁSICOS DE LA POO  Abstracción. Se enfoca en las características esenciales de un objeto relativo a la perspectiva del observador.  Modularidad. Agrupa abstracciones en unidades discretas. Es la propiedad de un sistema que se ha descompuesto en un conjunto de módulos coherentes y poco acoplados.  Herencia: Es clasificar u ordenar abstracciones. Las abstracciones forman una jerarquía. Los objetos pueden heredar propiedades de otros objetos. La herencia puede ser simple o múltiple. (C++: Privado, Protegido, Público). 46
  • 47. CONCEPTOS BÁSICOS DE LA POO  Encapsulación: Esconde los detalles de la implementación de un objeto  Reutilización: Se refiere a la creación de objetos (bien hechos) que pueden utilizarse en otros dominios  Ejecución: Se lleva a cabo por medio de propagación de mensajes  Mensajes: El código privado que tiene el objeto puede ser accesado solo por medio de mensajes. El mensaje dice a que objeto se dirige, que procedimiento ejecutar y cuales son los argumentos que deberá contener. 47
  • 48. CONCEPTOS BÁSICOS DE LA POO  Métodos: Es un procedimiento privado de un objeto que dice que hacer con un mensaje y como hacerlo. Como cada objeto tiene sus propios métodos, los objetos pueden responder diferente al mismo mensaje.  Respuestas: Una vez recibido un mensaje, el objeto manda su respuesta a otros objetos o al sistema.  Polimorfismo: se refiere a la capacidad para que varias clases derivadas de una antecesora utilicen un mismo método de forma diferente. 48
  • 49. BIBLIOGRAFÍA  Deytel Harvey M., Paul J, Deytel, Como programar en Java , 5ª. Edición, Prentice Hall México.  Goodrich Michel T., Tamassia Roberto, Estructuras de datos y algoritmos en Java 2ª. Edición, CECSA, México.  Ceballos Fco. Javier, Java 2 Curso de Programación, AlfaOmega Ra-Ma, México.  Joyanes Aguilar Luis, Programación Orientada a Objetos, segunda edición, McGraw Hill. 49