Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

POO

No description
by

Nicolas Rano

on 16 September 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of POO

POO

Programación orientada a objetos
Es un paradigma de programación que usa los objetos y sus interacciones como base del mismo
Microsoft .NET Framework
.Net Framework es un entorno desarrollado por Microsoft para el desarrollo integrado de aplicaciones mediante la aplicación de diversas tecnologías.
Incluye una gran biblioteca y proporcion interoperatibilidad de lengujes soportando mas de 20, entre los mas importantes, C#,Visual C++, Visual Basic, ASP.
Conceptos fundamentales
OBJETO
Representa una entidad
autónoma dentro del sistema, con sus propios métodos y atributos
Clase
Atributos
Son las características o cualidades que comparten los objetos de una misma clase.
Los valores de los atributos de un objeto junto con los enlaces (relaciones con otros objetos, referencias) componen su estado, en un momento determinado en el ambiente de la aplicación

Encapsulamiento
Herencia
Polimorfismo
Método
Diagrama UML de clases
Abstracción
Beneficios de POO
escalabilidad en carga y en funcionalidad
reusabilidad de codigo
robustez (entornos de prueba)
mantenibilidad (cambios imprevistos)
Es la sección de código que se ejecuta al enviarse un mensaje. Se identifica con una firma, que es la misma firma del mensaje enviado.
Representa las funciones que puede realizar el objeto.

Mensaje
Un mensaje es lo que un objeto entiende y para lo cual tiene
desarrollado un comportamiento particular .
Cada objeto entiende una cantidad determinada de mensajes,
para ello tienen que asociarse los mensajes a los objetos.
Cuando un objeto recibe un mensaje se ejecuta el código
correspondiente al mensaje que tiene asociado.



Es el molde a partir del cual se crean los objetos, definiendo sus características con atributos y el comportamiento de sus instancias mediante los métodos de la clase.
Un objeto es instancia de una clase si fue creado usando esa clase como molde.
A su vez, los objetos pueden ser instancia de una sola clase a la vez.

La abstracción se define en POO
como la capacidad de observar el sistema
desde un punto superior sin hacer hincapié
en un problema peculiar sino en el gran problema a resolver. Define la capacidad para reconocer los actores principales del sistema (objetos), el agrupamiento entre los cuales compartan características (clases) y las relaciones internas.
Proceso de abstracción
La abstracción es una técnica que se debe desarrollar para reconocer elementos que sirvan a la informatización de nuestro sistema
Oculta los detalles de la
implementación de un objeto
al resto del ambiente.

El objeto tiene una representación
pública que establece qué servicios brinda y una privada de los datos y de cómo se implementa su comportamiento.

Ambiente
El ambiente es el entorno donde viven los objetos y se relacionan entre si.



Las clases se estructuran en una jerarquía de herencia, donde la clase padre resume los atributos comunes de las clases hijas. A su vez, estas ultimas pueden tener nuevos atributos y/o métodos.

Un objeto entiende los mensajes que tienen métodos en su clase o en alguna de sus superclases. Un objeto puede responder mensajes para los cuales no tiene métodos definidos en su clase (pero si en alguna de la jerarquía superior)


Un tipo especial de clase:

Son un tipo particular de clase que no pueden instanciarse directamente, sino solo a traves de alguna de sus clases hijas.

En general, contienen (declarados pero no definidos) métodos abstractos, que permiten una definición diferente para cada subclase hija

Clases abstractas

El polimorfismo esta relacionado con los métodos y como son implementados. Se distinguen tres tipos:
Polimorfismo por sobrecarga
Ocurre cuando las funciones del mismo nombre existen, con funcionalidad similar, en clases que son completamente independientes una de otra
Polimorfismo paramétrico
Es la capacidad para definir varias funciones utilizando el mismo nombre, pero usando parámetros diferentes (nombre y/o tipo).
El polimorfismo paramétrico selecciona automáticamente el método correcto a aplicar en función del tipo de datos pasados en el parámetro.
Polimorfismo de redefinición
Se presenta cuando en una clase sobrescribimos un método, definido en la superclase o clase padre. En la mayoría de los lenguajes OO donde se presenta redefinición, se hace referencia al método redefinido mediante la palabra
this
y al método de la clase padre con
super
.
IDE
Un entorno de desarrollo integrado (IDE) es un programa compuesto por un conjunto de herramientas de programación. Puede dedicarse en exclusiva a un solo lenguaje de programación o bien puede utilizarse para varios.
Toda IDE debería componerse por un editor de código, un compilador y/o interprete, un depurador y un constructor de interfaz gráfica (GUI).
El IDE de Microsoft para .Net es
Visual Studio
Ejemplos
NetBeans, Eclipse, MonoDevelop, Visual Studio, Emacs, Lazarus son algunas de las IDEs mas usadas.
Soportan múltiples lenguajes de modo nativo o mediante plugins (como NetBeans que soporta C, C++, Ada, Perl, Python, Ruby y PHP mediante plugins).
Componentes de
.Net Framework
Desarrollos para la
WEB
La opción multiplataforma
ASP .Net
ASP.NET es un framework para aplicaciones web desarrollado y comercializado por Microsoft. Es usado por programadores para construir sitios web dinámicos, aplicaciones web y servicios web XML.
Se presenta como la tecnología sucesora de la tecnología Active Server Pages (ASP).
ASP.NET esta construido sobre el Common Language Runtime, permitiendo a los programadores escribir código ASP.NET usando cualquier lenguaje admitido por el .NET Framework.
XSP
La tecnología XSP (XML Servlet Pages) llego para solventar las dificultades de JSP (Java Servlet Pages) con el manejo de XML.
Una pagina XSP se basa en tres documentos XML donde se dividen contenido estático, código y estilos, usando transformación XSL para unirlos en una pagina dinámica.

XSP es implementado en el framework para aplicaciones web Apache Cocoon
PHP
PHP es un lenguaje de programación de uso general de código del lado del servidor originalmente diseñado para el desarrollo web de contenido dinámico. Fue uno de los primeros lenguajes de programación del lado del servidor que se podían incorporar directamente en el documento HTML en lugar de llamar a un archivo externo que procese los datos. PHP puede ser usado en la mayoría de los servidores web al igual que en casi todos los sistemas operativos y plataformas sin ningún costo.
En PHP, el código es interpretado por un servidor web con un módulo de procesador de PHP que genera la página Web resultante.
XML
Diagramador UML de NetBeans
IDE Visual Studio 10
Extensible Markup Language es un lenguaje de marcas desarrollado por el W3C (World Wide Web Consortium) utilizado para almacenar datos en forma legible. XML se propone como un estándar para el intercambio de información estructurada entre diferentes plataformas. Se puede usar en bases de datos, editores de texto, hojas de cálculo y casi cualquier software actual.
El proyecto Mono
El proyecto Mono fue iniciado por Ximian con el proposito de crear un grupo de herramientas basadas en GNU/Linux y compatibles con .Net.
Mono se compone de varios componentes para el desarrollo de software:

Una máquina virtual de infraestructura de lenguaje común (CLI) que contiene un cargador de clases, un compilador en tiempo de ejecución (JIT), y unas rutinas de recolección de memoria.
Una biblioteca de clases que puede funcionar en cualquier lenguaje que funcione en el CLR (Common Language Runtime).
Un compilador para el lenguaje C#, MonoBasic (la versión para mono de Visual Basic), Java y Python.
El CLR y el Sistema de tipos común (CTS) permite que la aplicación y las bibliotecas sean escritas en una amplia variedad de lenguajes diferentes que compilen para byte code
GTK
GTK+
GTK#
GTK# es un conjunto de herramientas para construir GUI destinado al framework .Net y Mono.
El proyecto une el toolkit de GTK+ con las bibliotecas de Gnome permitiendo el desarrollo de aplicaciones con interfaz nativa Gnome usando MonoDevelop y .Net Framework.
GTK+ o The GIMP Toolkit es un conjunto de bibliotecas multiplataforma para desarrollar interfaces gráficas de usuario (GUI) para las interfaces gráficas Gnome, XFCE, ROX y entornos Windows, Mac OS entre otros.
GTK+ se ha diseñado para permitir programar con lenguajes como C, C++, C#, Java, Ruby, Perl, PHP o Python.

Licenciado bajo los términos de LGPL, GTK+ es software libre y es parte del proyecto GNU.
Glade
Glade (o Glade Interface Designer) es una herramienta de desarrollo visual de interfaces gráficas mediante GTK/GNOME con licencia GPL. Es independiente del lenguaje de programación y predeterminadamente no genera código fuente sino un archivo XML.
GTK es una biblioteca del equipo GTK+, la cual contiene los objetos y funciones para crear la interfaz gráfica de usuario. Maneja widgets como ventanas, botones, menús, etiquetas, deslizadores, pestañas, etc.
CLR y CLS
El CLR es el entorno que usan las aplicaciones escritas en diversos lenguajes en tiempo de ejecución. El CLR gestiona la ejecución de cada ejecutable encapsulándolo, separándolo de otros procesos de la máquina y ofrece una interoperatividad multi-lenguaje, o sea, la característica de que cada aplicación escrita en diferentes lenguajes pueda interactuar sin inconvenientes. Para ésto .NET provee el CLS, (Common Language Specification), una serie de reglas a las cuales debe ajustarse un compilador para que la aplicación generada por el mismo sea gestionada por el CLR, así el compilador es compatible con .NET.
CLI
CLI (Common Language Infrastructure) es una especificación estandarizada que describe un entorno virtual para la ejecución de aplicaciones, cuya principal característica es la de permitir que aplicaciones escritas en distintos lenguajes de alto nivel puedan luego ejecutarse en múltiples plataformas tanto de hardware como de software sin necesidad de reescribir o recompilar su código fuente.
Microsoft .NET es un súper conjunto de esta especificación, es decir, provee todo lo necesario para cumplir con la misma y además agrega una serie de herramientas, librerías y funcionalidades no contempladas por ella originalmente y que proveen una enorme utilidad y flexibilidad a los desarrolladores.
La especificación del CLI está formada por cuatro partes:

Sistema común de tipos, en inglés Common Type System (CTS).
Metadatos.
Especificaciones de lenguaje común, en inglés Common Language Specification (CLS).
Sistema de ejecución virtual, del inglés Virtual Execution System (VES).

CIL y MSIL
JIT y AOT
Librerías .COM y .Net
Common Intermediate Language es el lenguaje de programación legible por humanos de más bajo nivel en .NET Framework. Es un lenguaje ensamblador orientado a objetos y basado en pilas que se ejecuta por la maquina virtual del framework .Net
Una aplicación .NET compilada por con un compilador .NET, (que se ajuste a las reglas del CLS), generará un archivo.exe pero que no contiene código máquina sino instrucciones en CIL. Cuando se ejecute por primera vez el programa el CLR compilará el código CIL a código máquina usando un compilador "just in time", a medida que lo va procesando por primera vez dejándolo en el caché de la PC y será compilado nuevamente sólo si existen modificaciones en el fuente.

MSIL (Microsoft Intermediate Language) fue el nombre originario de CIL durante las versiones de prueba de los lenguajes .NET. Actualmente se usa como sinonimo de CIL.
Un
JIT
o JITer es un compilador en tiempo de ejecución. En .Net Framework, existen tres tipos:

El que se invoca cuando se ejecuta por primera vez el programa.
el que compila a código máquina cuando se lo esta instalando.
econoJit, especialmente diseñado para entornos con escasos recursos o memoria, como sistemas portátiles.
Un compilador
AOT
(Ahead-of-time o antes de tiempo) es el que convierte los bytecodes de una maquina virtual a código maquina. Durante esta compilación se realizan las optimizaciones de código.
Nicolas Raño - INSPT-UTN 2013
Component Object Model (
COM
) es una plataforma de Microsoft para componentes de software. Esta plataforma es utilizada para permitir la comunicación entre procesos y la creación dinámica de objetos, en cualquier lenguaje de programación que soporte dicha tecnología.
Esencialmente COM es una manera de implementar objetos neutrales con respecto al lenguaje, de manera que pueden ser usados en entornos distintos de aquel en que fueron creados, a través de fronteras entre máquinas.
La mayoría de los problemas que están asociados con los archivos DLL COM se han eliminado en
.Net
Framework por utilizar ensamblados. Un ensamblado es una unidad lógica de funcionalidad que se ejecuta bajo el control del CLR. Un ensamblado existe físicamente como un archivo .dll o como un archivo .exe y contiene un manifiesto de ensamblado, metadatos de tipo, codigo MSIL y otros recursos. El manifiesto del ensamblado contiene los metadatos del ensamblado que proporciona toda la información que se requiere para una ensamblado autodescriptivo.
Este ensamblado es predeterminadamente privado de la aplicacion.
Full transcript