programaci n iii
Download
Skip this Video
Download Presentation
Programación III

Loading in 2 Seconds...

play fullscreen
1 / 23

Programación III - PowerPoint PPT Presentation


  • 96 Views
  • Uploaded on

Programación III. Introducción. Qu é se espera de un sistema? Calidad del Software. Confiabilidad: 1) correcto (cumpla con las especificac. ) 2) robust o (reacción en situaciones extremas) Extensibilidad: adaptación a los cambios

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Programación III' - varian


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
programaci n iii

Programación III

Introducción

qu se espera de un sistema calidad del software
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
slide3

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
desarrollar software
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.

paradigmas y t cnicas cont
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.
paradigmas y t cnicas cont1
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.
ocultamiento de la info
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
beneficios del encapsulamiento
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.

slide9
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

ventajas de oo
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
ventajas de poo cont
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.
caracter sticas de poo
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
caracter sticas de poo cont
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
lenguajes puros vs h bridos
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
slide15
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.
caracter sticas de java
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
abstracci n
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.
abstracci n cont
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
encapsulamiento
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.
herencia
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.
herencia cont
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.
polimorf ismo
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
polimorfismo cont
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)
ad