ITESM Campus Cuernavaca Maestr - PowerPoint PPT Presentation

1 / 41
About This Presentation
Title:

ITESM Campus Cuernavaca Maestr

Description:

Consecuencias de la complejidad ilimitada Entre m s complejo es el sistema, mayor es el riesgo de derrumbamiento total. ... Principios de POO y UML Evaluaci n: ... – PowerPoint PPT presentation

Number of Views:42
Avg rating:3.0/5.0
Slides: 42
Provided by: ITESM4
Category:

less

Transcript and Presenter's Notes

Title: ITESM Campus Cuernavaca Maestr


1
ITESM Campus CuernavacaMaestría en Ciencias
ComputacionalesAmbientes de Programación
AvanzadaSesión 1
  • Dr. Oscar Mayora Ibarra
  • Teléfono Fax 329 7169 329 7168
  • Emailomayora_at_itesm.mx
  • WEB http//www.mor.itesm.mx/omayora
  • WAP http//www.mor.itesm.mx/omayora/index.wml
  • Asesoría Lunes 900 1000 A.M.

2
Ambientes de Programación Avanzados
3
Programa Sintético
  • Módulo I Principios de POO y UML
  • Evaluación Examen Escrito
  • Módulo II Herramientas de Modelado con UML
  • Evaluación Exposición sobre Modelado con UML del
    proyecto final
  • Módulo III Programación Avanzada
  • Evaluación Exposición de Tema

4
Evaluación
5
Referencias
  • Grady Booch, Análisis y Diseño Orientado a
    Objetos con aplicaciones. 2ª. Edición, Addison
    Wesley.
  • Grady Booch, James Rumbaugh and Ivar Jacobson.
    UML, El lenguaje unificado de modelado Addison
    Wesley
  •  
  • Deitel Deitel, JAVA, How to Program Fourth
    Edition, Prentice Hall
  •  
  • Patrick Naughton and Herbert Schildt, JAVA 2, The
    Complete Java Reference, McGraw Hill,

6
INTRODUCCIÓN
Complejidad y Software
7
Complejidad
Cuánta Gente? Cuántos Recursos? Cómo colaborar?
8
Complejidad inherente al software
  • Deriva de 4 elementos
  • Complejidad del dominio del problema
  • Complejidad de gestión
  • Complejidad Inherente a la flexibilidad
  • Complejidad de caracterización del comportamiento

9
Complejidad Inherente al SW
  • Complejidad del dominio
  • Los dominios pueden ser muy sofisticados.
  • Desacoplamiento de impedancia entre usuarios y
    desarrolladores. No hablan el mismo idioma !!

10
Complejidad Inherente al SW
  • Complejidad de gestión
  • La tarea del equipo de desarrollo de SW es dar la
    ilusión de simplicidad al usuario aunque se trate
    de un sistema muy complejo

11
Complejidad Inherente al SW
  • Complejidad de flexibilidad
  • Un equipo de desarrollo se puede ocupar de
    prácticamente todos los bloques del proyecto sin
    necesidad de ayuda de otros profesionales

12
Complejidad Inherente al SW
  • Complejidad de caracterización del comportamiento
  • Cuando se afirma que un sistema se describe con
    una función contínua, quiere decir que no puede
    contener sorpresas ocultas...
  • ...En sistemas discretos cualquier cambio
    externo puede afectar el estado interno de modo
    más brusco. Parnas.

13
Consecuencias de la complejidad ilimitada
  • Entre más complejo es el sistema, mayor es el
    riesgo de derrumbamiento total.
  • Gran inversión de tiempo y recursos humanos.
  • Mayor planeación y mejor modelado para minimizar
    el efecto del mantenimiento y la evolución.

14
Atributos de un sistema complejo
  • Sistemas altamente jerarquizados
  • Varios subsistemas relacionados
  • Interpretaciones ambiguas de los distintos
    componentes
  • Identificar los componentes primitivos
  • Sistemas casi descomponibles
  • Sus partes no son totalmente independientes. Los
    enlaces internos son más fuertes que los externos
  • Tienen patrones comunes
  • Se componen de clases genéricas que se combinan
  • Tienen su origen en sistemas simples
  • Un sistema complejo diseñado desde 0 NO FUNCIONA

15
Ordenando por Descomposición
  • 1 Descomposición Algorítmica
  • 2 Descomposición de Objetos

16
Descomposición algorítmica

Automóvil





Sist. Elec.
Sist Mec.




Encendido
Luces
Motor






Carbura.

17
Descomposición orientada a objetos
Automóvil
Sist. Eléctrico
Sist. Mecánico
Chasis
18
Algorítmica VS Orientada a Objetos
  • Enfatiza el orden de los eventos
  • Utiliza bloques y módulos para representar
    procesos
  • Su crecimiento y mantenimiento implican alta
    complejidad
  • Enfatiza los agentes que causan acciones
  • Facilita el reuso de mecanismos comunes
  • Son más resistentes al cambio
  • Disminuye la complejidad

19
Diseño de los Sistemas Complejos
  1. Arquitectura
  2. El propósito del diseño es crear una estructura
    interna (arquitectura) clara y relativamente
    simple sobre el sistema que se quiere
    implementar.
  3. Restricciones
  4. Satisfacer especificaciones funcionales
    determinadas
  5. Ajustarse a las limitaciones impuestas por el
    medio
  6. Respetar requisitos implícitos o explícitos sobre
    rendimiento y uso de recursos
  7. Satisfacer restricciones sobre las herramientas
    disponibles para realizar el diseño

20
Elementos de Modelos de Diseño
  • Notación
  • El lenguaje para expresar el modelo
  • Proceso
  • Las actividades que conducen a la construcción
    ordenada de los módulos del sistema
  • Herramientas
  • Los artefactos que ayudan para construir el
    modelo de modo que éste pueda autoverificarse y
    validarse

21
En Resumen
  • La complejidad del software es inherente a la
    naturaleza del mismo.
  • La tarea del equipo de desarrollo de SW es la de
    crear una ilusión de sencillez.
  • La complejidad toma a menudo formas de
    jerarquías.
  • Los sistemas complejos evolucionan de formas
    intermedias estables.

22
En Resumen
  • Existen factores limitantes de la cognición
    humana que se pueden enfrentar mediante la
    descomposición, abstracción y jerarquización.
  • Los sistemas complejos se pueden visualizar desde
    el punto de vista de sus procesos o sus
    componentes.
  • El diseño OO conduce intrínsicamente a una
    descomposición de los sistemas y ofrece varias
    notaciones y modelos para representarlos.

23
Modelo Orientado a Objetos
24
Antecedentes de la Programación Orientada a
Objetos
  • Evolución de los Paradigmas de Programación
  • Avances en Otras Disciplinas con Impacto en la
    Tecnología de Objetos

25
Paradigmas de Programación
  • Programación Procedural
  • Programación Orientada a Lógica
  • Programación Orientada a Reglas
  • Programación Orientada a Objetos

26
Programación Procedural
  • Programación Estructurada
  • Separación de datos y procesos
  • Algoritmos organizados en modo jerárquico
  • Uso de estructuras de datos
  • Desarrollo top-down''

27
Programación Orientada a Lógica
  • Entender relaciones entre entidades del programa
  • Uso de enunciados lógicos para probar silogismos
    que ayudan a la definición y solución de
    problemas.
  • Cálculo de predicados de primer orden
  • Razonamiento deductivo del tipo Modus Ponens
  • Lisp - Prolog

28
Programación Orientada a Reglas
  • Colección de definiciones para describir el
    comportamiento de un sistema ante un patrón
    determinado
  • Utiliza condiciones If Then Else para
    resolver problemas
  • Usa elementos de programación lógica y procedural

29
Conceptos del POO Principales Entidades de un
programa OO
Clases
Objetos
Atributos
Métodos
Herencia
30
Programación Orientada a Objetos
  • Objeto Caja negra que envía y recibe mensajes
  • Contiene código y datos encapsulados de modo
    indivisible
  • Contra ejemplo C (funciones y estructuras)
  • Se define a través de clases
  • Se comunica a través de mensajes.
  • Envío y/o recepción de mensajes
  • Actúa a través de métodos
  • Acciones contenidas en los mensajes

31
Ejemplo 1 Suma de objetos a1 b2 cab
  • Lenguaje No OO (p.ej. C) Lenguaje OO (p.ej.
    Smalltalk)

Esto se lee Toma el objeto a que vale 1 y
mándale el mensaje con el argumento b que
a su vez vale 2 El objeto a recibe el mensaje
y realiza la operación de agregarse a sí mismo el
valor del argumento recibido. Se crea un nuevo
objeto, se le da el valor de 3 y se le asígna a
c.
Toma a que vale 1 y b que vale 2 Usa la
función aditiva del lenguaje y súmalos Toma el
resultado y ponlo en la variable c.
32
Ejemplo 2 Suma de objetosLista de Nombres
  • Lenguaje No OO (p.ej. C) Lenguaje OO (p.ej.
    Smalltalk)

a List fromString Juan Pérez. b List
fromString Juan López. c a b
struct list ( ltdefinición de la estructura
listgt) list a, b, c a Juan Pérez b
Juan López c a b
Juan Pérez, Juan López
ERROR!!!!
33
Ejemplo 3 Suma de Objetos
c
a

b
34
Modelo de Objetos Fundamentos
  • Abstracción
  • Características esenciales del objeto en relación
    a la perspectiva del observador
  • Encapsulamiento
  • Oculta detalles de la implementación de un objeto
    en diferentes niveles
  • Modularidad
  • Fragmentación de las abstracciones en unidades
    discretas que reducen la complejidad
  • Jerarquía
  • Ordena y clasifica las abstracciones en función
    de sus clases y partes de pertenencia

35
Modelo de Objetos Elementos Secundarios
  • Tipos
  • Interacción de los datos en modo congruente
  • Concurrencia
  • Interacción simultánea de varios objetos
  • Persistencia
  • Conservación del estado de un objeto en el tiempo
    y en el espacio

36
Modelos de Objetos Otros Conceptos
  • Herencia
  • Definición de una clase en función de otra.
  • Herencia Simple
  • Heredar de un solo padre. P. Ej. JAVA
  • Herencia Múltiple
  • Hereder de más de un padre. P. Ej. C

37
Modelos de Objetos Otros Conceptos
  • Polimorfismo
  • Propiedad de los objetos que pertenecen a una
    única jerarquía de compartir una función común
    que se comporta en modo diferente dependiendo del
    objeto específico en donde la función será usada.
  • Elementos que comparten el mismo comportamiento /
    interface pero son implementados en modo distinto
  • Compartir / Reutilizar código de alto nivel

38
Ejemplo de Herencia y Polimorfismo
El Cálculo de Percepciones es distinto en cada
caso!!!
Clase Empleado
Clase Oficinista
Clase Destajista
Clase Comisionista
Clase Trabajador_Hora
39
Modelos de Objetos Otros Conceptos
  • Overloading (Sobrecarga)
  • Uso del mismo Nombre para dos o más clases
    Conceptualmente Relacionadas
  • En este caso la ambigüedad queda resuelta en base
    a la información del contexto (signatura)
  • Polimorfismo paramétrico

40
Resumiendo... Principales Entidades de un
programa OO
  • Clase Concepto que encapsula datos y
    procedimientos para describir una entidad del
    mundo
  • Objeto Instancia de una clase. Definido a
    partir de la clase
  • Atributo Características que definen el estado
    del objeto
  • Método Las acciones que se realizan con los
    objetos
  • Herencia Definición de una clase a partir de una
    previamente conocida

41
Resumiendo... Metodología orientada a objetos
para solucionar un problema.
  • 1. Especificación del problema
  • 2. Determinar la(s) Clase (s)
  • 3. Definir el (los) método(s)
  • 4. Definir los Objetos
  • 5. Gráfico General
  • 6. Programar la Solución
Write a Comment
User Comments (0)
About PowerShow.com