Você está na página 1de 23

Programacin III Introduccin

Qu se espera de un sistema? Calidad del Software.


Confiabilidad: 1) correcto (cumpla con las especificac.) 2) robusto (reaccin en situaciones extremas) Extensibilidad: adaptacin a los cambios Reutilizacin: capacidad de re-emplear el cdigo Compatibilidad: interoperable con otros productos, uso de estndar, ej formato de arch. Facilidad de uso: amigable

Calidad del Software (cont)


Portabilidad: distintas plataformas Eficiencia: mn cantidad de recursos de hard, tiempo de proceso, etc Funcionalidad: cumplir los requerimientos Oportunidad: llegar al mercado en el momento justo Costo: desarrollo, operacin y mantenimiento

Desarrollar Software
Transformacin entre el problema a resolver y el modelo de la solucin 1) Modelar el problema en vez de la solucin y que la mquina se ocupe de la traduccin. Enfoque de Lisp, Prolog, RPG, Stress, APL, orientados a det. tipo de problemas, fuera de su mbito son difciles de manejar 2) Procesamiento del lenguaje natural, rama de la Inteligencia artificial, an inmaduro 3) OO, crear objetos que representen elementos tanto del espacio de la solucin como del espacio del problema.

Paradigmas y tcnicas (cont)


1) Programacin estructurada surge 60, empleo de secuencia, seleccin e interaccin, elimina el goto. Ej Fortran, Algol, C y Pascal 2) Programacin modular - Abstraccin de procesos divisin del problema en un conjunto de mdulos o subprogramas autnomos diseo descendente, un refinamiento de lo general a lo particular top-down.

Paradigmas y tcnicas (cont)


Diseo ascendente, bottom-up, acciones de uso frecuente agrupadas en bibliotecas, no modificables ej Lenguajes Fortran 77, Algol 80, C Pascal - Abstraccin de datos Implementacin de tipos definidos por el programador, datos + las operaciones definidas sobre los mismos.

Ocultamiento de la info
Impedir que el usuario del TAD haga uso indebido empleando aspectos de la implementacin. Separar el qu del cmo. El cliente slo debe poder emplear la interfase Interfase contrato partes cliente y servidor Cliente info para usar el mdulo correctamente Proveedor info para que comprenda el uso que se hara de ese mdulo Precondiciones, postcondiciones e invariantes

Beneficios del encapsulamiento


Permite cambios en la implementacin ej pasar de una estructura de pila a lista
Impide violacin de las restricciones sobre los datos internos ej datos vnculados entre s, arco de un grafo.

POO
Nace con lenguajes como Simula, Smalltalk, hace 20 aos. Aspectos nuevos: - Uso de la POO en aplicaciones comerciales - Aparicin de metodologas avanzadas de desarrollo OO

Ventajas de OO
Conceptos comunes a lo largo del ciclo de vida Reduccin de la brecha entre el mbito del problema y el de la solucin Centrada en los datos en vez de en los procesos, siendo los primeros ms 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)


Herencia y polimorfismo, permite la reutilizacin y extensin del cdigo, ya probado en otro contexto. Uso de prototipos, se deja la implementacin para el final. Programacin en ambientes de interfaz de usuario grfica y programacin guiada por eventos. En stos ambientes se manipulan ms objetos que procesos y la ejecucin deja de ser secuencial para estar manejada por el usuario.

Caractersticas de POO
Todo es un objeto Un programa es un conjunto de objetos que interactan a travs de mensajes Composicin, 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

Caractersticas de POO (cont)


Es no procedimental, est basado en datos La OO tiende a econmizar en el desarrollo en todas sus etapas, fomentando al re utilizacin de componentes pre-fabricados y probados. Se basa en abstraccin, encapsulamiento (ocultacin de informacin), herencia y polimorfismo

Lenguajes Puros Vs Hbridos


Puros: Smalltalk, Eifel Hbridos: Java, C++ Son derivados de lenguajes anteriores mantienen algunas caractersticas no OO Java slo mantiene datos primitivos C++ mantiene otras como caracterstifas como fc fuera de clases, punteros, etc

JAVA
El desarrollo fue realizado en Sun Microsystem por el grupo de Gosling. Comenzaron basndose 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 rpidamente se convirti en el lenguaje ms popular para desarrollos web.

Caractersticas de JAVA
Leng programacin + entorno ejecucin Interpretado: se compila en bytes codes que son interpretados por la mquina virtual JVM Posee una extensa biblioteca de clases estndares incorporada. Permite el desarrollo de aplicaciones, como otros lenguajes C, C++, etc y de applets, aplicacin diseada para ser tranferida por la WEB y ejecutada en cualq navegador (java), permitiendo contenido dinmico Se basa en: abstraccin, encapsulamiento, herencia y polimorfismo

Abstraccin
Las personas normalmente gestionan la complejidad empleando la abstraccin 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 mtodo poderoso es hacerlo es mediante clasificacin jerrquica.

Abstraccin (cont)
Aplicando la abstraccin al diseo 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 cmo. En Java los Tad son las clases. Las clases permiten encapsulamiento

Encapsulamiento
Ocultar los detalles de la implementacin, el interior de la clase est oculto, slo se pueden ver la interfases externas por los otros objetos. Permite modificar la implementacin, siempre y cuando mantenga la interfaz. La clase define la estructura y el comportamiento (datos + cdigo) Cada miembro de la clase puede ser privado o pblico. La interfaz pblica representa lo que los usuarios de la clase pueden acceder.

Herencia
Proceso mediante el cual un objeto adquiere las propiedades de otro objeto. Ej pastor aleman, es un perro, que adems es un mamifero, que es un animal, etc Slo se necesita definir las cualidades que lo hacen nico dentro de la clase En objeto puede ser una instancia ms especfica de un caso ms general. Las subclases heredan todos los atributos y mtodos de la superclase, clase padre, ascendente.

Herencia (cont)
Todas las clases que se definen en Java heredan de otra existente explicita o implcitamente. La superclase es Object En java no est implementada la herencia mltiple, que permite heredar de ms de un padre, se reemplaza con interfases.

Polimorfismo
Permite que una interfaz sea utilizada como una clase de accin general. La accin especfica se determina de acuerdo a la situacin. 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. Anulacin (overriding) un mtodo se define en una clase y en las clases derivadas, las instancias van a responder distinta

Polimorfismo (cont)
Sobrecarga: mtodos con el mismo nombre empleado sobre tipo de datos distintos En Java slo el operador + con cadenas de caracteres y otros datos primitivos (int, double). Cuando una clase tiene mltiples mtodos de igual nombre y distinta signatura (nombre, tipo y nro de argumentos)

Você também pode gostar