viernes, 18 de julio de 2014

CONCEPTOS FUNDAMENTALES DE LA P.O.O.

Objetos: Los objetos son/representan cosas
 Los objetos pueden ser simples o complejos
 Los objetos pueden ser reales o imaginarios                     
PERSONA

ATRIBUTOS
Datos
METODOS
Acciones para modificar o utilizar las caracteristicas

nombre
Cambiar nombre
apellido
Cambiar edad
edad
Diga nombre

-Herencia: es el mecanismo fundamental para implementar la reutilización y extensibilidad del software.
 A través de ella los diseñadores pueden construir nuevas clases partiendo de una jerarquía de clases ya existente (comprobadas y verificadas) evitando con ello el rediseño, la remodificación y verificación de la parte ya implementada.
La herencia facilita la creación de objetos a partir de otros ya existentes, obteniendo características (métodos y atributos) similares a los ya existentes.
La herencia es uno de los mecanismos, por medio del cual una clase se deriva de otra, llamada entonces superclase, de manera que extiende su funcionalidad. Una de sus funciones más importantes es la de proveer Polimorfismo y late binding.
-Polimorfismo: se refiere a la posibilidad de definir clases diferentes que tienen métodos o atributos denominados de forma idéntica, pero que se comportan de manera distinta.
Por ejemplo, podemos crear dos clases distintas: Pez y Ave que heredan de la superclase Animal. La clase Animal tiene el método abstracto mover que se implementa de forma distinta en cada una de las subclases (peces y aves se mueven de forma distinta).
Como se mencionó anteriormente, el concepto de polimorfismo se puede aplicar tanto a funciones como a tipos de datos. Así nacen los conceptos de funciones polimórficas y tipos polimórficos. Las primeras son aquellas funciones que pueden evaluarse o ser aplicadas a diferentes tipos de datos de forma indistinta; los tipos polimórficos, por su parte, son aquellos tipos de datos que contienen al menos un elemento cuyo tipo no está especificado.
-Encapsulación: se le llama encapsulamiento al ocultamiento del estado, es decir, de los datos miembro, de un objeto de manera que sólo se puede cambiar mediante las operaciones definidas para ese objeto.
-Abstracción: La abstracción consiste en aislar un elemento de su contexto o del resto de los elementos que lo acompañan y trasladarlo del mundo real al Lenguaje de Programación deseado. En programación, el término se refiere al "¿cómo lo hace?".
-Interfaz
-Clase: Cada clase tiene asociado un código (definición de la clase), que determina
 Los atributos que tienen los objetos de la clase
 Los métodos que pueden ejecutar los objetos de la clase y cómo lo hacen
 Programar orientado a objetos consiste en escribir código de clases de objetos
-Atributos
Valores o características de los objetos
 Permiten definir el estado del objeto u otras cualidades
VARIABLES
 Velocidad
 Aceleración
 Capacidad de
combustible
variables
constantes
CONSTANTES
 Marca
 Color
 Potencia
 Velocidad máxima
 Carburante
-Métodos
-Instancia
-Composición
- Concurrencia
-Visibilidad.
Métodos
 Acciones que puede realizar un objeto:
 Arrancar motor
 Parar motor
 Acelerar
 Frenar
 Girar a la derecha (grados)
 Girar a la izquierda (grados)
 Cambiar marcha (nueva marcha)
Método argumentos o parámetros
Ocultamiento: Consiste en dar a cada objeto del programa una identidad única y propia, esto se logra gracias a la Programación orientada a objetos, la cual permite la manipulación y modificación de los atributos de cada objeto por medio de métodos, y sin importar como sean estos métodos implementados para lograr el objetivo.


Qué es el JDK (Java Development Kit)
Se trata de un conjunto de herramientas (programas y librerías) que permiten desarrollar (compilar, ejecutar, generar documentación, etc.) programas en lenguaje Java.
Java Development Kit o (JDK), es un software que provee herramientas de desarrollo para la creación de programas en java. Puede instalarse en una computadora local o en una unidad de red.

En los sistemas Windows sus variables de entorno son:

·         JAVAPATH: es un path completo del directorio donde está instalado el JDK.
·         CLASSPATH: son las librerias o clases de usuario.
·         PATH: variable donde se agrega la ubicación de JDK
Los programas más importantes que se incluyen son:
·         Appletviewer: es un visor de applet para generar sus vistas previas, ya que un applet carece de método main y no se puede ejecutar con el programa java.
·         Javac: es el compilador de JAVA.
·         java: es el intérprete de JAVA.
·         javadoc: genera la documentación de las clases java de un programa.
El JDK tiene el compilador que permite convertir código fuente en bytecode, es decir, el código "maquina" de la máquina virtual de Java.

La JVM
es una de las piezas fundamentales de la plataforma Java. Básicamente se sitúa en un nivel superior al Hardware del sistema sobre el que se pretende ejecutar la aplicación, y este actúa como un puente que entiende tanto el bytecode, como el sistema sobre el que se pretende ejecutar. Así, cuando se escribe una aplicación Java, se hace pensando que será ejecutada en una máquina virtual Java en concreto, siendo ésta la que en última instancia convierte de código bytecode a código nativo del dispositivo final.
¿Qué es el JRE?
Es un conjunto de utilidades que permite la ejecución de programas java, En su forma más complicada, el entorno en tiempo de ejecución de Java está conformado por una Máquina Virtual de Java o JVM, un conjunto de Java y otros componentes innecesarios para que una aplicación escrita en lenguaje c++ pueda ser ejecutada. El JRE actúa como un "intermediario" entre el sistema y Java.

"Just in time" (JIT), literalmente quiere decir "Justo a tiempo". Es una filosofía que define la forma en que debería optimizarse un sistema de producción.
Se trata de entregar materias primas o componentes a la línea de fabricación de forma que lleguen "justo a tiempo" a medida que son necesarios.

El JIT no es un medio para conseguir que los proveedores hagan muchas entregas y con absoluta puntualidad para no tener que manejar grandes volúmenes de existencia o componentes comprados, sino que es una filosofía de producción que se orienta a la demanda.

La ventaja competitiva ganada deriva de la capacidad que adquiere la empresa para entregar al mercado el producto solicitado, en un tiempo breve, en la cantidad requerida. Evitando los costos que no producen valor añadido también se obtendrán precios competitivos.

Con el concepto de empresa ajustada hay que aplicar unos cuantos principios directamente relacionados con la Calidad Total.

El concepto parece sencillo. Sin embargo, su aplicación es compleja, y sus implicaciones son muchas y de gran alcance.

El JIT tiene 4 objetivos esenciales:
·         Poner en evidencia los problemas fundamentales.
·         Eliminar despilfarros.
·         Buscar la simplicidad.
·         Diseñar sistemas para identificar problemas.

API
(application programming interface
- interfaz de programación de aplicaciones). grupo de rutinas (conformando una interfaz) que provee un sistema operativo, una aplicación o una biblioteca, que definen cómo invocar desde un programa un servicio que éstos prestan. en otras palabras, una api representa un interfaz de comunicación entre componentes software.

Garbage Collector.

Un recolector de basura es un mecanismo implícito de gestión de memoria implementado en algunos lenguajes de programación de tipo interpretado o seminterpretado.

Recolección de basura. El espacio de memoria se va llenando con diferentes "objetos" (representados con colores), también pueden destruirse algunos de ellos, dejando "huecos" en el espacio de memoria. Cuando ya no queda espacio disponible, o cuando lo decide la rutina de recolección de basura, la memoria es "compactada", colocando todos los "objetos" que se están usando al principio, y consolidando todos los "huecos" de memoria al final, quedando así una gran área de memoria disponible para la futura creación de objetos.


IDE (integrated development environment
- entorno integrado de desarrollo). Aplicación compuesta por un conjunto de herramientas útiles para un programador. Un entorno ide puede ser exclusivo para un lenguaje de programación o bien, poder utilizarse para varios. suele consistir de un editor de código, un compilador, un debugger y un constructor de interfaz 

lunes, 14 de julio de 2014

TERMINOLOGÍA UML



- UML: UML es un lenguaje gráfico (símbolos que cuando los vemos todos interpretamos lo mismo) para representar partes de un sistema de software (diseño, comportamiento, arquitectura, etc.),

- Actores
 En el Lenguaje Unificado de Modelado (UML), un actor "especifica un rol jugado por un usuario o cualquier otro sistema que interactúa con el sujeto

- Casos de uso: es una descripción de los pasos o las actividades que deberán realizarse para llevar a cabo algún proceso.

- Dominio: este presenta los conceptos importantes relacionados con sus atributos y relaciones, como un diccionario visual de conceptos.

- Relación: es una herramienta para el modelado de datos que permite representar las entidades relevantes de un sistema de información así como sus interrelaciones y propiedades.

- Use: Es la relación que hay entre los actores y sus funciones.

- Extend: La polémica al querer seleccionar una de las dos relaciones es que en el “extend” también podemos ver, desde la perspectiva del usuario, a los dos flujos como si fueran uno sólo. Y en ciertos escenarios el caso de uso base no podría cumplir su objetivo si no se ejecutara la extensión. 


Pero, una de las diferencias básicas es que en el caso del “extend” hay situaciones en que el caso de uso de extensión no es indispensable que ocurra, y cuando lo hace ofrece un valor extra (extiende) al objetivo original del caso de uso base.

En cambio en el “include” es necesario que ocurra el caso incluido, tan sólo para satisfacer el objetivo del caso de uso base.

 Ejemplo: Puedes “Realizar Venta” sin “Acumular Puntos de Cliente VIP”, cuando no eres un cliente VIP. Pero, si eres un cliente VIP sí acumularás puntos. Por lo tanto, “Acumular Puntos” es una extensión de “Realizar Venta” y sólo se ejecuta para cierto tipo de ventas, no para todas.


Figura 3. Ejemplo de Extend

2. ¿QUE ES UN DIAGRAMA DE CASOS DE USO Y PARA QUE SIRVE?
Documentan el comportamiento de un sistema desde el punto de vista del usuario. Por lo tanto los casos de uso determinan los requisitos funcionales del sistema, es decir, representan las funciones que un sistema puede ejecutar.

Su ventaja principal es la facilidad para interpretarlos, lo que hace que sean especialmente útiles en la comunicación con el cliente.

Los diagramas de casos de uso sirven para especificar la comunicación y el comportamiento de un sistema mediante su interacción con los usuarios y/u otros sistemas.


EJEMPLO:-El problema consiste en un sitio web donde pueden hacer pedidos de comida a  restaurantes.
-Los actores son el cliente y el restaurante.
-El caso de uso representa las acciones de los actores para lograr su objetivo como:
Pedir el menú, procesar pago…
-Y el sistema que es lo que se esta desarrollando.