martes, 15 de marzo de 2016

Diagrama de Actividades:


Es una serie de pasos lógicos, los cuales representan gráficamente las actividades que secuencialmente permiten llevar a cabo una actividad o un caso de uso. Sirven para capturar las acciones internas de un proceso, capturar las especificación de un caso de uso y/o mostrar flujos entre procesos de un negocio.

Está compuesto por:


Dibujo sin título.png
Dibujo sin título(2).pngDecisión: Representa un punto en el flujo donde deben tomarse una decisión para saber con qué actividad continuar. De un rombo de decisión salen uno o más flujos.
           


Unión(Merge): A este punto llegan una o más líneas y sale una sola el proceso continua cuando cualquiera de los flujos llega a este punto.





Rutas Concurrentes: Como una de las principales diferencias entre el
diagrama de flujo y el de actividades es que este último permite la
ejecución de actividades concurrentes, es decir, actividades que se
pueden llevar a cabo en el mismo momento y después se unen a otra
actividad. Tanto el inicio como el fin de una ruta concurrente se
representa mediante una línea horizontal sólida.

Dibujo sin título(3).png





Fork: Indica un conjunto de actividades que pueden realizarse en paralelo (Concurrentemente).



Join: Indica que, para continuar, deben haber finalizado todas las actividades concurrentes. Ojo que no son como paréntesis (puede aparecer una sin la otra).





Indicaciones: Durante la secuencia de actividades es posible enviar una
indicación para que al recibirla, se pueda ejecutar una actividad. Se
representa mediante pentágonos que se acoplan generando la sensación
de envío y recepción de la indicación.
Dibujo sin título(4).png


Diagrama 8:

Diagrama8.jpg

El Anterior Diagrama de actividades, describe el proceso para la compra de un libro, la primera acción que realizará el usuario es buscar el libro, el siguiente paso sería añadir pedido, y posterior si se desea formalizar el pago, y allí se tiene las dos opciones, de cambiar estado de pedido y pagar pasarela, tambien despues de que se hace el pedido, se puede buscar otro libro para realizar el mismo proceso, el cuadrito pequeño acumulado, indica que la búsqueda del libro y los pedidos que se hagan, están directamente  relacionados, con la disponibilidad que este tenga, ya que el limite de cantidades no puede ser superado y este se determinara con los datos ingresados por los usuarios a la hora de realizar los pedidos y posteriormente la compra

martes, 16 de febrero de 2016

Introducción a POO



SOLUCIÓN DE INTRODUCCIÓN A POO

1.

Objeto: La programación orientada a objetos consiste en ordenar datos en conjuntos modulares de elementos de información del mundo real (denominado un dominio). Estos elementos de datos se llaman objetos. Estos datos se agrupan de acuerdo a las características principales del mundo real de estos elementos (tamaño, color, etc.).


Herencia: Es una propiedad que permite que los objetos sean creados a partir de otros ya existentes, obteniendo características (métodos y atributos) similares a los ya existentes.
Ej:





Polimorfismo: El polimorfismo es una relajación del sistema de tipos, de tal manera que una referencia a una clase (atributo, parámetro o declaración local o elemento de un vector) acepta direcciones de objetos de dicha clase y de sus clases derivadas (hijas, nietas, …).



Encapsulación: La encapsulación es un mecanismo que consiste en organizar datos y métodos de una estructura, conciliando el modo en que el objeto se implementa, es decir, evitando el acceso a datos por cualquier otro medio distinto a los especificados. Por lo tanto, la encapsulación garantiza la integridad de los datos que contiene un objeto.




Abstracción: Expresa características esenciales de un objeto, las cuales distinguen al objeto de los demás.
Ej: el objeto sería un pájaro, y sus características, por ejemplo, serian:
-Pico
-Alas
-Plumas
-Patas

Las funcionalidades asociadas serian: Volar, para, etc.

Interfaz: Una interfaz es un conjunto de métodos abstractos y de constantes cuya funcionalidad es la de determinar el funcionamiento de una clase, es decir, funciona como un molde o como una plantilla. Al ser sus métodos abstractos estos no tienen funcionalidad alguna, sólo se definen su tipo, argumento y tipo de retorno.
Ej:
public Interfaz NombreInterfaz{
//Código
}

Clase: Una clase es la estructura de un objeto, es decir, la definición de todos los elementos de que está hecho un objeto. Un objeto es, por lo tanto, el "resultado" de una clase. En realidad, un objeto es una instancia de una clase, por lo que se pueden intercambiar los términos objeto o instancia (o incluso evento).



Atributos: un atributo es una especificación que define una propiedad de un objeto, elemento o archivo. También puede referirse o establecer el valor específico para una instancia determinada de los mismos.
Ej:
Del ejemplo anterior está el material, tamaño llanta, entre otros que puede haber como color, etc.

Métodos: Un método consiste generalmente de una serie de sentencias para llevar a cabo una acción, un juego de parámetros de entrada que regularán dicha acción y, posiblemente, un valor de salida.
Ej:
Del ejemplo de clase, podemos encontrar los ejemplos de métodos como cambio, mover, frenar.

Instancia: Una Instancia es una ocurrencia de la clase y un Objeto es una instancia de una Clase específica.
Ej:
Supongamos que existe una clase Silla. La silla del comedor que yo utilizo, es una instancia de esa clase, y, por lo tanto, un objeto de tipo Silla. La silla que utiliza mi hermana es otra instancia de la misma clase y, en consecuencia, otro objeto del mismo tipo.

Composición: la composición es un tipo de relación dependiente en dónde un objeto más complejo es conformado por objetos más pequeños.
Ej:
En esta situación, la frase “Tiene un”, debe tener sentido:
-El auto tiene llantas.
-La portátil tiene un teclado.

Concurrencia: Es la propiedad que distingue un objeto activo de uno no activo. Permite que diferentes objetos actúen al mismo tiempo usando distintos threads de control.
Ej: Distintas tareas del sistema ejecutándose al mismo tiempo.

Visibilidad: Capacidad de restringir el acceso a atributos y servicios de un objeto. Particularmente importante en el diseño e implementación.
Ej:
-Public: Cuando una Clase, Método o Atributo es Visible y Accesible desde cualquier Clase en cualquier Paquete.
-Private: Cuando un Método o Atributo es Visible y Accesible solo en su propia clase. Las Clases nunca pueden ser declaradas como Privadas.
-Protected: Si un Atributo o Método es visible en la Clase, también en las clases del mismo paquete y en las Subclases de la Clase Principal en otros paquetes.

2. Qué es el Lenguaje de programación JAVA?: Es un lenguaje de programación de propósito general, concurrente, orientado a objetos y basado en clases que fue diseñado específicamente para tener tan pocas dependencias de implementación como fuera posible. Su intención es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo ejecuten en cualquier dispositivo.

3. Qué es 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 la unidad de red se pueden tener las herramientas distribuidas en varias computadoras y trabajar como una sola aplicación.

4. Qué es JIT?: la compilación en tiempo de ejecución (también conocida por sus siglas inglesas, JIT, just-in-time), también conocida como traducción dinámica, es una técnica para mejorar el rendimiento de sistemas de programación que compilan a bytecode, consistente en traducir el bytecode a código máquina nativo en tiempo de ejecución. La compilación en tiempo de ejecución se construye a partir de dos ideas anteriores relacionadas con los entornos de ejecución: la compilación a bytecode y la compilación dinámica.

5. Qué es JVM?: es una máquina virtual de proceso nativo, es decir, ejecutable en una plataforma específica, capaz de interpretar y ejecutar instrucciones expresadas en un código binario especial (el bytecode Java), el cual es generado por el compilador del lenguaje Java.

6. Qué es JRE?: es una máquina virtual de Java y su función es hacer de intermediario entre una aplicación programada en Java y el sistema operativo que se esté usando. De este modo, cualquier aplicación puede funcionar en cualquier sistema operativo que disponga del JRE.

7. Qué es el API de Java?: LA API ó Application Programming Interface de Java, son clases importantes ó código preexistente que forman parte del propio lenguaje, algunas de ellas las han podido desarrollar los propios usuarios, otras pueden ser comerciales.

8. Qué es el Garbage Collector?: Es un mecanismo implícito de gestión de memoria implementado en algunos lenguajes de programación de tipo interpretado o semiinterpretado. En los lenguajes orientados a objetos: se reserva memoria cada vez que el programador crea un objeto, pero éste no tiene que saber cuánta memoria se reserva ni cómo se hace esto.

9. Qué es IDE? y cuales son los IDE´s mas populares para programar en Java:
Un ambiente de desarrollo integrado o entorno de desarrollo interactivo, en inglés Integrated Development Environment (IDE), es una aplicación informática que proporciona servicios integrales para facilitarle al desarrollador o programador el desarrollo de software.

Normalmente, un IDE consiste de un editor de código fuente, herramientas de construcción automáticas y un depurador
IDE’s más populares:
- Netbeans
- Eclipse
- Visual Studio
- JDeveloper
- IntelliJ Idea.

viernes, 20 de noviembre de 2015

Herramientas de Gestión de Proyectos




 1.


GANTTPROJECT:







Es una aplicación de escritorio multiplataforma para la programación, planificacion y gestión de proyectos, muy similar a Microsoft Project. Se ejecuta en Windows, Linux y MacOSX, es libre y su código es opensource. Basada en lenguaje Java y con licencia GPL, es un proyecto de software que surgió en la Universidad de Marne-la-Vallée, en Francia



Ventajas:

* Se puede descargar de forma gratuita y además es una aplicación íntegramente escrita en Java por lo que lo hace multiplataforma.

* Reportes en PDF o HTML.
* Posibilidad de importar y exportar archivos de MS Project.
* Organización de tareas en forma jerárquica.
* Permite crear diagramas y asignarles tiempos, recursos.
* Otra variante que se puede utilizar en combinación, es el diagrama de Pert.
* Fácil aprendizaje.
* Precio excelente.
* Las herramientas de gestión de proyectos comerciales cuestan una gran cantidad de dinero.
* Gratuito para cualquier propósito.
* Interfaz amigable

Desventajas:

* Carece de muchas de las características adicionales que hacen de MS Project la herramienta estándar.
* Poca difusión entre las pequeñas y medianas empresas, para la gestión de sus proyectos.

Es Multiplataforma: Si, ya que permite ejecutarse en diferentes sistemas operativos como, Windows, Linux y MacOSX,

Requiere Pago o es gratuita: Este programa es una herramienta de gestión de proyectos de código abierto y liberado bajo la licencia GPL. Por lo tanto, se puede descargar y utilizar de forma gratuita.

Se puede consultar en línea: No, ya que el programa se instala en el sistema operativo, y no funciona de manera online.

Permite importar y exportar en diferentes formatos como compatibilidad con otras aplicaciones de gestión de proyectos: Se integra con Microsoft Project a la hora de importar y exportar proyectos desde ese programa, y se complementa con aplicaciones que usan hojas de cálculo con formatos de archivo CSV. Del mismo modo, permite la compartición de los proyectos con colegas mediante WebDAV.

Documentación y/o manuales: Existen diversa información y tutoriales en la red, pero no un manual como tal.

Los desarrolladores se encargaran de dar soporte
Tiene una interfaz web intuitiva y fácil de usar.

http://www.obs-edu.com/blog-project-management/diagramas-de-gantt/ganttproject/
http://www.ecured.cu/index.php/GanttProject
http://software1278.webnode.es/blog/herramientas-de-gestion-de-proyectos/
http://adsisenauribe.blogspot.com.co/2014/04/herramientas-de-gestion-de-proyectos.html



GANTTER:
 
Gantter es una especie de MS Project en línea, que funciona desde una navegador web y nos permite trabajar con los característicos diagramas de Gantt en forma totalmente amena y sencilla. Permite exportar e importar documentos de la aplicación de Microsoft sin mayor problema.

Ventajas:
* Además de utilizar la web del servicio, Gantter dispone de una aplicación para Chrome que nos dotará de un acceso directo desde el navegador.
* Gratis
* Online
* No necesita software adicional
* Está en diversos idiomas entre ellos el español
* Interfaz similar a MS Project
* Permite importar archivos de MS Project (extensiones *.mpp y *.xml)
* Permite exportar a extensión *.xml (compatible con MS Project)
* Se puede integrar con Google Drive, SkyDrive y Dropbox

Desventajas:
* No permite exportar en formato de MS Project (extension *.mpp)
* La documentación de ayuda está en inglés
* La integración con los proveedores de almacenamiento en la nube tiene sus limitaciones después de cierto período de tiempo.

* Es multiplataforma ya que esta se puede usar en cualquier sistema operativo y/o navegador a través de la web.

* Es un servicio Web gratuito.

* Permite trabajar planificaciones procedentes de Microsoft Project, además de poder la posibilidad de exportar en formatos PDF, HTML y PGN

* Existen manuales de uso los cuales podemos encontrar en internet, aunque están en ingles.

Soporte: La empresa desarrolladora se encargará de dar soporte y actualizaciones a la aplicación

Facilidad de uso e interfaz amigable: Tiene una interfaz fácil de usar, simplemente puedes iniciar la planificación de proyectos de inmediato después de la instalación

http://www.empresayeconomia.es/aplicaciones-para-empresas/gantter-herramienta-de-gestion-de-proyectos-en-linea.html
http://hipertextual.com/archivo/2012/06/gantter-gestor-de-proyectos/



 OPENPROJ

 *OpenProj controla todos los aspectos referentes a la gestión de proyectos, como la planificación y programación, la gestión y asignación de recursos, la simulación de alternativas en procesos críticos, etc. Asimismo,  proporciona la funcionalidad necesaria para trabajar con entornos multiproyecto (incluso relacionarlos).

* Ventajas: Es una aplicación de código libre ofrece trabajar proyectos desde una aplicación sencilla ,se puede aplicar en ámbitos empresariales como las compras , gestión de inventarios, de los equipos etc., nos permite hacer casi cualquier actividad que realice su símil de Microsoft. Y es muy recomendado a la hora de reemplazar un software comercial de esta categoría, por uno de licencia GNU.

*Desventajas: Esta opción es comercial, y debemos asumir un costo en dinero por su uso necesita del complemento JAVA para que funcione correctamente, disponible sólo en el idioma inglés es posible que con el tiempo aparezcan traducciones.

*Es multiplataforma: Si, ya que permite trabajar en distintos sistemas operativos como: Windows, Linux, Unix, Mac, entre otro.

*Tiene dos opciones: una versión de prueba y una versión comercial.

*Permite exportar e importar documentos con formato mpp (MS PROJECT)

*Posee manual y documentación en línea disponibles para cualquier persona que necesite acceder a ellos.

*Tiene un respaldo de una empresa como SERENA la cual ofrece a sus usuarios soporte técnico, foros, demostraciones en línea asistencia de perfil ,licencias base de conocimientos.

*Es de muy fácil uso y su interfaz brinda opciones claras al usuario o facilitando su uso.

http://www.empresayeconomia.es/aplicaciones-para-empresas/openproj-herramienta-para-el-diseno-libre-de-proyectos.html,

http://gennarosm.blogspot.com.co/2014/02/analisis-de-programas-de-gestion-de.html




3. Consideramos Gantter como la mejor herramienta para la gestión y planificación de proyectos, ya que es una herramienta muy intuitiva para el usuario, además permite la exportación de diagramas en formatos con PGN, PDF, HTML, otro aspecto positivo es que está en español y podemos trabajar de manera online, gratuita,  y puede integrarse con Google Drive, SkyDrive y Dropbox.

No seleccionamos GanttProject, ya que requiere de instalación del programa en el sistema operativo y no hay mucha información o manuales para el uso del programa a profundidad

En el caso de OpenProj no es recomendable, ya para acceder a una versión completa de esta herramienta, tendremos que asumir un costo económico, además a tener que instalar un complemento java para que funcione correctamente lo cual lo se puede hacer un poco tedioso en Linux por los pocos conocimientos para instalar programas.


4.