Programaci - PowerPoint PPT Presentation

About This Presentation
Title:

Programaci

Description:

Programaci n III Introducci n Qu se espera de un sistema? Calidad del Software. Confiabilidad: 1) correcto (cumpla con las especificac.) – PowerPoint PPT presentation

Number of Views:65
Avg rating:3.0/5.0
Slides: 24
Provided by: lsca5
Category:

less

Transcript and Presenter's Notes

Title: Programaci


1
Programación III
  • Introducción

2
Qué se espera de un sistema? Calidad del
Software.
  • Confiabilidad
  • 1) correcto (cumpla con las
    especificac.)
  • 2) robusto (reacción en situaciones
    extremas)
  • Extensibilidad adaptación a los cambios
  • Reutilización capacidad de re-emplear el código
  • Compatibilidad interoperable con otros
    productos, uso de estándar, ej formato de arch.
  • Facilidad de uso amigable

3
Calidad del Software (cont)
  • Portabilidad distintas plataformas
  • Eficiencia mín cantidad de recursos de hard,
    tiempo de proceso, etc
  • Funcionalidad cumplir los requerimientos
  • Oportunidad llegar al mercado en el momento
    justo
  • Costo desarrollo, operación y mantenimiento

4
Desarrollar Software
  • Transformación entre el problema a resolver y el
    modelo de la solución
  • 1) Modelar el problema en vez de la solución y
    que la máquina se ocupe de la traducción. Enfoque
    de Lisp, Prolog, RPG, Stress, APL, orientados a
    det. tipo de problemas, fuera de su ámbito son
    difíciles de manejar
  • 2) Procesamiento del lenguaje natural, rama de la
    Inteligencia artificial, aún inmaduro
  • 3) OO, crear objetos que representen elementos
    tanto del espacio de la solución como del espacio
    del problema.

5
Paradigmas y técnicas (cont)
  • 1) Programación estructurada
  • surge 60, empleo de secuencia, selección e
    interacción, elimina el goto. Ej Fortran, Algol,
    C y Pascal
  • 2) Programación modular
  • - Abstracción de procesos
  • división del problema en un conjunto de módulos o
    subprogramas autónomos
  • diseño descendente, un refinamiento de lo general
    a lo particular top-down.

6
Paradigmas y técnicas (cont)
  • Diseño ascendente, bottom-up, acciones de uso
    frecuente agrupadas en bibliotecas, no
    modificables
  • ej Lenguajes Fortran 77, Algol 80, C Pascal
  • - Abstracción de datos
  • Implementación de tipos definidos por el
    programador, datos las operaciones definidas
    sobre los mismos.

7
Ocultamiento de la info
  • Impedir que el usuario del TAD haga uso indebido
    empleando aspectos de la implementación.
  • Separar el qué del cómo.
  • El cliente sólo debe poder emplear la interfase
  • Interfase contrato partes cliente y servidor
  • Cliente info para usar el módulo correctamente
  • Proveedor info para que comprenda el uso que se
    hara de ese módulo
  • Precondiciones, postcondiciones e invariantes

8
Beneficios del encapsulamiento
  • Permite cambios en la implementación
  • ej pasar de una estructura de pila a lista
  • Impide violación de las restricciones sobre los
    datos internos
  • ej datos vínculados entre sí, arco de un grafo.

9
POO
  • Nace con lenguajes como Simula, Smalltalk, hace
    20 años.
  • Aspectos nuevos
  • - Uso de la POO en aplicaciones comerciales
  • - Aparición de metodologías avanzadas de
    desarrollo OO

10
Ventajas de OO
  • Conceptos comunes a lo largo del ciclo de vida
  • Reducción de la brecha entre el ámbito del
    problema y el de la solución
  • Centrada en los datos en vez de en los procesos,
    siendo los primeros más estables
  • Aumento del nivel de complejidad de los sistemas,
    los objetos se pueden construir a partir de otros
    pre-existentes, uso de bibliotecas

11
Ventajas de POO (cont)
  • Herencia y polimorfismo, permite la re-
    utilización y extensión del código, ya probado en
    otro contexto.
  • Uso de prototipos, se deja la implementación para
    el final.
  • Programación en ambientes de interfaz de usuario
    gráfica y programación guiada por eventos.
  • En éstos ambientes se manipulan más objetos que
    procesos y la ejecución deja de ser secuencial
    para estar manejada por el usuario.

12
Características de POO
  • Todo es un objeto
  • Un programa es un conjunto de objetos que
    interactúan a través de mensajes
  • Composición, cada objeto se crea contruyendo un
    agregado de otros objetos
  • Cada Objeto tiene un tipo, clase, que le dice que
    mensajes puede aceptar
  • Todos los objetos de la misma clase admiten los
    mismos mensajes

13
Características de POO (cont)
  • Es no procedimental, está basado en datos
  • La OO tiende a económizar en el desarrollo en
    todas sus etapas, fomentando al re utilización de
    componentes pre-fabricados y probados.
  • Se basa en abstracción, encapsulamiento
    (ocultación de información), herencia y
    polimorfismo

14
Lenguajes Puros Vs Híbridos
  • Puros Smalltalk, Eifel
  • Híbridos Java, C
  • Son derivados de lenguajes anteriores mantienen
    algunas características no OO
  • Java sólo mantiene datos primitivos
  • C mantiene otras como característifas como fc
    fuera de clases, punteros, etc

15
JAVA
  • El desarrollo fue realizado en Sun Microsystem
    por el grupo de Gosling. Comenzaron basándose en
    C y C pero luego debieron modificar el enfoque.
  • Lenguaje independiente de la plataforma y del SO
    para dispositivos empotrados
  • Comenzaron a desarrollarlo bajo el nombre de Oak
    en 1991
  • En el 95 fue rebautizado a Java y rápidamente se
    convirtió en el lenguaje más popular para
    desarrollos web.

16
Características de JAVA
  • Leng programación entorno ejecución
  • Interpretado se compila en bytes codes que son
    interpretados por la máquina virtual JVM
  • Posee una extensa biblioteca de clases estándares
    incorporada.
  • Permite el desarrollo de aplicaciones, como otros
    lenguajes C, C, etc
  • y de applets, aplicación diseñada para ser
    tranferida por la WEB y ejecutada en cualq
    navegador (java), permitiendo contenido dinámico
  • Se basa en abstracción, encapsulamiento,
    herencia y polimorfismo

17
Abstracción
  • Las personas normalmente gestionan la complejidad
    empleando la abstracción
  • Es el proceso de capturar lo fundamental
    ignorando los detalles.
  • Descomponer un sistema complejo en sus partes
    fundamentales y describir esas partes en un
    lenguaje sencillo y preciso
  • Un método poderoso es hacerlo es mediante
    clasificación jerárquica.

18
Abstracción (cont)
  • Aplicando la abstracción al diseño de estructuras
    de datos, se generan los TAD tipos abstractos de
    datos (tipos programados)
  • TAD modelo engloba estructura de dato, las
    operaciones soportadas y los parametros.
  • Qué hace pero no cómo.
  • En Java los Tad son las clases.
  • Las clases permiten encapsulamiento

19
Encapsulamiento
  • Ocultar los detalles de la implementación, el
    interior de la clase está oculto, sólo se pueden
    ver la interfases externas por los otros objetos.
  • Permite modificar la implementación, siempre y
    cuando mantenga la interfaz.
  • La clase define la estructura y el comportamiento
    (datos código)
  • Cada miembro de la clase puede ser privado o
    público. La interfaz pública representa lo que
    los usuarios de la clase pueden acceder.

20
Herencia
  • Proceso mediante el cual un objeto adquiere las
    propiedades de otro objeto.
  • Ej pastor aleman, es un perro, que además es un
    mamifero, que es un animal, etc
  • Sólo se necesita definir las cualidades que lo
    hacen único dentro de la clase
  • En objeto puede ser una instancia más específica
    de un caso más general.
  • Las subclases heredan todos los atributos y
    métodos de la superclase, clase padre,
    ascendente.

21
Herencia (cont)
  • Todas las clases que se definen en Java heredan
    de otra existente explicita o implícitamente. La
    superclase es Object
  • En java no está implementada la herencia
    múltiple, que permite heredar de más de un padre,
    se reemplaza con interfases.

22
Polimorfismo
  • Permite que una interfaz sea utilizada como una
    clase de acción general. La acción específica se
    determina de acuerdo a la situación.
  • Permite enviar el mismo mensaje a objetos de
    diferente clase, cada uno de ellos responde a ese
    mismo mensaje de forma diferente, de acuerdo a
    como ha sido implementado.
  • Anulación (overriding) un método se define en una
    clase y en las clases derivadas, las instancias
    van a responder distinta

23
Polimorfismo (cont)
  • Sobrecarga métodos con el mismo nombre empleado
    sobre tipo de datos distintos
  • En Java sólo el operador con cadenas de
    caracteres y otros datos primitivos (int,
    double).
  • Cuando una clase tiene múltiples métodos de igual
    nombre y distinta signatura (nombre, tipo y nro
    de argumentos)
Write a Comment
User Comments (0)
About PowerShow.com