martes, 15 de marzo de 2016

UML- DIAGRAMA DE ACTIVIDADES

UML- DIAGRAMA DE ACTIVIDADES


Un diagrama de actividades es un a secuencia de pasos lógicos que se deben seguir para cumplir una determinada actividad o función. este diagrama permite la ejecución de pasos en paralelo.


COMPONENTES GRÁFICOS


INICIO: el diagrama de actividades siempre inicia con un círculo relleno


                                                       


ACTIVIDADES: indica una acción requerida para llevar a cabo un proceso, y se representa con un rectángulo con puntas redondeadas.


                                          
                                             

DECISIÓN: dependiendo de la actividad se puede llegar a un punto donde se debe tomar una decisión para cumplir o no dicha actividad, hay 2 formas de realizar 1ª partiendo libremente de la actividad hacia alguno de los dos caminos y la 2ª  llegando a un rombo donde se parte a cualquiera de los 2 caminos.
                                                                                                       




TRANSICIONES: son las flechas que dirige de una actividad a otra.

                                                          


RUTAS CONCURRENTES:  son actividades que se pueden llevar a cabo en el mismo momento y después se unen a otra actividad y es representada tanto el inicio como el final por una línea horizontal sólida.


                                     

INDICACIONES: En la secuencia de actividades se puede presentar una indicación para que al recibirla se pueda ejecutar una actividad se representa por pentágonos que se acoplan generando la sensación de envío y recepción de la indicación.


                                 

FIN: Este indica que el proceso a terminado y es representado por un círculo que rodea al círculo relleno.


                                              


Ejemplo

Vemos que en la imagen hay una interfaz entre el usuario y el computador, donde al ejecutar la primera actividad GUI (interfaz gráfica con el usuario), lleva al sistema operativo y hay una toma de decisión indicando a continuar con otra actividad (CPU), o simplemente regresa a la interfaz con el usuario, si la transición es ir a la CPU, entonces continúa con el paso hacia la tarjeta de video y muestra en el monitor la actividad, el monitor siempre está en actividad osea siempre esta mostrando algo por eso la transición está en continua ejecución. En conclusión es una persona trabajando en un computador.


Diagrama1.jpg
                                                                     








                                                    


                                                                                   

jueves, 18 de febrero de 2016

INTRODUCCIÓN A POO

INTRODUCCION A POO


(PROGRAMACIÓN ORIENTADA A OBJETOS)

  1. DEFINICION


  • OBJETO

Objeto es todo lo que pueda ser identificado dentro de un requerimiento o especificación de un problema o requerimiento, con estados definidos como abierto, cerrado con comportamientos asociados como correr, saltar, volar denominados como métodos y por medio de estos poder comunicarse entre otros objetos, una característica es la transparencia entre la implementación a nivel de código.



                             Resultado de imagen para ejemplos de objeto en poo



  • HERENCIA


Es extender un comportamiento o estado de un objeto que posee las mismas características, facilitando la creación de objetos a partir de otros y obteniendo métodos y atributos a los ya existentes, evitando con ello el rediseño, la remodelación y verificación de la parte ya implementada.


            http://image.slidesharecdn.com/poo-1229990884219449-1/95/poo-27-728.jpg?cb=1229962895



  • 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.

  Resultado de imagen para ejemplo de objeto en poo


  • ENCAPSULACION


Es el proceso de guardar en una misma sección de elementos de una abstracción que constituyen su estructura y su comportamiento, sirve para separar el interfaz contractual de una abstracción y su implantación.

                        http://image.slidesharecdn.com/clase1-1231193481923713-1/95/programacion-orientada-a-objetos-27-728.jpg?cb=1231172045

  • ABSTRACCION


Son las características específicas de un objeto, son las que hacen definir límites conceptuales respecto a quien abstrae dicho objeto, y que los distinguen de los demás tipos.
Una abstracción se enfoca en la visión externa de un objeto, separa el comportamiento específico de un objeto, a esta división que realiza se le conoce como la barra de abstracción.


             https://i.ytimg.com/vi/XOC0pVZzKtI/maxresdefault.jpg




  • INTERFAZ


Es una reunión de propiedades y métodos abstractos, explicando que se debe hacer sin implementarlo, las clases que lo implementan son las que describen la lógica del comportamiento de los métodos, la diferencia entre interfaz y abstracción es que un interfaz proporciona un mecanismo de encapsulamiento de los protocolos de los métodos sin forzar al usuario a utilizar la herencia.
                   http://image.slidesharecdn.com/1poo-150917092046-lva1-app6891/95/1-introduccin-a-los-lenguajes-de-programacin-y-a-la-programacin-orientada-a-objetos-39-638.jpg?cb=1442481749


  • CLASE


En una plantilla que se utiliza para la creación de objetos de datos según un modelo predefinido, se crean para representar entidades o conceptos, y cada uno es un modelo que define un conjunto de variables el estado y el comportamiento. Cada objeto creado a partir de la clase se denomina instancia de la clase.
Las clases son una parte fundamental de POO permite abstraer los datos y sus operaciones asociadas al modo de una caja negra.


            http://image.slidesharecdn.com/poo-1229990884219449-1/95/poo-18-728.jpg?cb=1229962895




  • ATRIBUTOS


Son características individuales que diferencian un objeto de otro y determinan su apariencia, estado u otras cualidades, estos se guardan en variables y denominadas instancia, y cada objeto puede tener valores distintos para estas variables, hay atributos de:
  • Atributos que se definen en Common Lenguage Runtime (CLR)
  • Atributos personalizados que se pueden crear para agregar información adicional al código.


                      http://image.slidesharecdn.com/cursojavainicial-4pooenjava-090425030317-phpapp02/95/curso-java-inicial-4-poo-en-java-24-728.jpg?cb=1240628642


  • METODOS


Es una subrutina cuyo código es definido en una clase, consiste generalmente de una serie de sentencias para llevar a cabo una acción, un juego se parámetros de entrada que regularan dicha acción o, posiblemente un valor de salida de algún tipo.


  • INSTANCIA


Es la realización específica de una clase o prototipo determinado. Se dice que está en instancia cuando se ejecuta un programa en un computador, como también se dice que un objeto es una instancia de una clase, es un miembro de una clase que tiene atributos en lugar de variables.


                        http://image.slidesharecdn.com/clase2poo-090902171327-phpapp02/95/clase-2-poo-11-728.jpg?cb=1253264700


  • COMPOSICION


Es utilizar objetos dentro de otros objetos.

  • CONCURRENCIA


Es cuando dos procesos están en ejecución paralela, los programas pueden competir por los recursos del sistema o también se pueden ayudar entre sí, por lo tanto se crean tareas de colaboración y sincronización, la programación concurrente se encarga de identificar y ayudar en el proceso de ejecución así como en los problemas de comunicación y sincronización.


            


  • VISIBILIDAD
Es lo que permite restringir acceso a los atributos y métodos de un objeto, la más conocida es PRIVATE, que únicamente deja acceder a los atributos y métodos desde la unidad en la que está la clase, en contrapartida, tenemos la PUBLIC y que permite acceder desde cualquier método a los atributos especificados como tales.


  1. LENGUAJE DE PROGRAMACIÓN JAVA.


JAVA es un lenguaje de programación y una plataforma informática comercializada por primera vez en 1995 por Sun Microsystems. Es un lenguaje rápido, seguro y confiable, desde portátiles hasta centro de datos, consola para juegos, súper computadoras, teléfonos móviles, e internet.


  1. JDK (Java Development kit)


Es un Software que provee herramientas de desarrollo para la creación de programas en Java, se puede instalar en una computadora local o en una unidad de red. Es la suma de todo lo que contiene la JRE mas una serie de herramientas de desarrollo como un compilador, debugger, compactador, documentador, etc. Necesarios para desarrollar applets y aplicaciones de escritorio.
En la JDK también se encuentra herramientas de seguridad y de despliegue de aplicaciones.


  1. JIT (Just In Time)


Es un sistema de justo a tiempo, es el uso de recursos por encima del mínimo teórico necesario como mano de obra, equipos, espacio, energía, este método no es simplemente otro proyecto para eliminar despilfarros o desperdicios.


  1. JVM


Es el programa que interpreta el código Java mientras que las librerías de clases estándar son las que implementan el API de Java. Ambas JVM y API deben ser consistentes entre sí, de ahí que sean distribuidas de modo conjunto.


  1. JRE


Es un conjunto de utilidades que permite programar en Java, en su forma más complicado, 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 es lenguaje C++ pueda ser ejecutada. El JRE actúa como un intermediario entre el sistema y Java.


  1. API (Application programming Interface) De Java


Es un conjunto de librerías de código JAVA compilado, facilita a la hora de programar.


  1. GARBAGE COLLECTOR


El concepto de recolección de basura fue inventado por Jhon McCarthy en 1958 para evitar la gestión manual de memoria en el lenguaje Lisp. Es un mecanismo implícito de gestión de memoria implementado en algunos lenguajes de programación de tipo de interpretados o semi interpretado.


  1. IDE (Infraestructura de Datos Espaciales)


Es un conjunto de información integrado por un conjunto de recursos (catálogos, servidores, programas, datos, aplicaciones, páginas web etc.) dedicados a gestionar información geográfica (mapas, orto fotos, imágenes de satélite, topónimos etc.) disponibles en internet que cumplan una serie de condiciones de interoperabilidad (normas, especificaciones, protocolos, interfaces...) que un usuario, utilizando un simple y que permiten que un usuario utilizando un simple navegador, pueda utilizarlos y combinarlos según sus necesidades.


  • TIPOS DE IDE


  1. Eclipse: Software libre, y más utilizados a nivel profesional. El paquete básico de Eclipse se puede expandir mediante la instalación de plugins para añadir funcionalidades a medida que se vayan necesitando.


  1. NetBeans: facilita bastante el diseño gráfico asociado a aplicaciones Java.


  1. blueJ: es utilizado para la enseñanza de Java, es sencillo para que los aprendices tenga la facilidad de comprender aspectos claves de la POO.


  1. JBuilder: permite desarrollos gráficos.


  1. JCreator: este IDE está escrito en C++ y omite herramientas para desarrollos gráficos, lo cual lo hace rápido y eficiente que  otros IDEs.



lunes, 7 de diciembre de 2015

HERRAMIENTAS DE GESTIÓN DE PROYECTOS


HERRAMIENTAS DE GESTIÓN DE PROYECTOS



COLLABTIVE





Collabtive es un software de gestión de proyectos de código abierto, basado en PHP y que puede ser instalado y utilizado en cualquier navegador web. La puedes encontrar entre las múltiples aplicaciones gratuitas con tu servicio de web hosting.
Su interfaz elegante e intuitiva hacen de Collabtive una gran herramienta para manejar proyectos con varias personas. Entre sus múltiples funciones está la posibilidad de manejar varios proyectos de manera simultánea con un número ilimitado de colaboradores. Además, permite establecer jerarquías o roles a cada usuario, según su autoridad en la gestión de cada proyecto.
Por supuesto, Collabtive cuenta con calendarios sincronizados, así como un servicio de mensajería instantánea propio. De igual manera, es posible crear listas y calendarios de tareas pendientes. Está disponible en más de 20 idiomas, incluyendo español.
Una gran ventaja es que con Collabtive puedes generar informes de avances en formato PDF, simplificando el seguimiento de los proyectos.
Es un Software manejador de proyectos basado en la web, que permite al administrador de la plataforma intercambiar información, crear tareas, establecer roles de usuario, controlar el avance del proyecto, entre otras actividades. El programa es de código abierto y cuenta con una interfaz agradable y fácil de utilizar y entender, ya que está escrito en lenguaje Java y PHP. Collabtive está capacitado para competir con la versión privativa Basecamp, y tienen una herramienta que permite importar datos de esa plataforma. El programa está diseñado para empresas medianas y pequeñas, lo que lo hace una opción muy atractiva para la Unidad. Se puede instalar tanto en un servidor interno, como en la nube, y opera correctamente en la mayoría de los navegadores, por ejemplo: Internet Explorer, Firefox, Chrome y Safari.


KAPOST 


kapost2

Kapost es un software de gestión editorial perfecto para los bloggers y escritores que trabajan en colaboración. Se trata de una sala de publicación virtual donde los usuarios pueden presentar un concepto para que lo apruebe un editor. Hay tres tipos de usuarios: editores, colaboradores y suscriptores. Los editores pueden aprobar, asignar y rechazar las ideas presentadas. Kapost también tiene una característica incorporada en los pagos por correo, muy interesante sobre todo cuando se trabaja con un equipo muy diverso y con un sistema de pago basado en los resultados. Lo que aporta Kapost es que hace que sus usuarios se centren más en los conceptos, en aumentar la calidad de los contenidos. Es como una sala de noticias reales donde las personas participan en una tormenta de ideas.





PRODUCTEEV 

producteev2


funciona como una lista de tareas online que avisa en tiempo real de lo que está pasando a través del correo, mensajería instantánea o iPhone. Los jefes de equipo pueden crear un espacio de trabajo virtual, invitar a colaboradores, crear tareas y asignarlas a las personas, añadir los plazos y generar el informe de productividad.



Cibergrafía
http://hipertextual.com/archivo/2012/11/herramientas-software-libre-gestionar-proyectos/

https://www.lancetalent.com/blog/las-10-mejores-herramientas-para-la-gestion-de-proyectos-online/

martes, 27 de octubre de 2015

INGENIERÍA DE SOFTWARE

    1. INGENIERÍA DE SOFTWARE

    1.1 La  Ingeniería de Software, es un área o ciencia de la informática, dedicada a dar soporte, estudiar y realizar programas de información de calidad, también ofrece métodos y técnicas para desarrollar estos programas, y solucionar problemas de todo tipo.
    En este conjunto de prácticas, se ha formado una cantidad de soluciones para ser aplicadas en todas las funciones como por ejemplo: el control de tráfico, banca, logística, medicina producción, meteorología, negocios, investigación científica etc.
    Entonces podemos decir que ingeniería de Software es la aplicación práctica del conocimiento científico, en el diseño y construcción de programas de computación y la documentación asociada para desarrollar programas.
    El software de computadora es el producto que diseña y construye el ingeniero de software, y permite al diseñador de programas realizar su tarea de construcción como un problema de ingeniería haciendo uso de guías, principios y normas que le permitirán el correcto desarrolla de su labor.

    1.2 CICLO DE VIDA DE SOFTWARE

    Un ciclo de vida de un software inicia cuando hay una necesidad de solucionar un problema y termina cuando el problema que se desarrolló para cumplir los requerimientos deja de ser utilizado hasta que se retira, y también se conoce como un conjunto de actividades realizadas que ocurren en el desarrollo del Software, intentando determinar el orden de cada paso y los criterios de transición asociados en estas etapas, teniendo en cuenta la forma mediante la cual se describe los diferentes pasos que se deben seguir para el desarrollo de un Software partiendo desde una necesidad hasta llegar a la puesta en marcha de una solución y su apropiado mantenimiento.
    Ejemplo de ciclo de vida de Software clásico :


    1.3 LA METODOLOGÍA DEL SOFTWARE

    Son todos los documentos asociados a la configuración de datos necesarios para hacer que estos operen de una manera adecuada, solicitado por un cliente en particular o para un mercado en general, para el desarrollo de diseño de proyectos Software se aplican metodologías, modelos y técnicas que permiten resolver los problemas.

    Metodologías de software

    • Modelo de cascada
    • Prototipado
    • Incremental
    • Espiral
    • Rud
    • Rad
    • Xp
    • Scrum

    2. METODOLOGÍA DE DESARROLLO RAD

    2.1 Desarrollo rápido de aplicaciones, esto es un proceso de desarrollo de Software que permite construir sistemas utilizables en poco tiempo normalmente de 60 a 90 días frecuentemente con algunas concesiones.
    Este proceso fue desarrollado por James Martín en 1980, el método comprende el desarrollo interactivo, la construcción de prototipos y el uso de utilidades CASE (CASE es una herramienta que fue muy popular años atrás). Algunas de las plataformas más conocidas hoy en día son: Visual Studio, Lazarus, Gambas Delphi, Foxpro, Anjuta, Game Marker, Velneo o Clarion.

    2.2 APLICACIÓN DE PASOS

    1. Planificación de requisitos: Define las funciones del negocio y las áreas sujeta a datos que el sistema apoyara y determina el alcance del sistema.

    1. Diseño Funcional: Usa los talleres para modelar los datos y procesos del sistema, para construir un prototipo de trabajo de los componentes críticos del sistemas.

    1. Construcción: Esta etapa completa la construcción física de la base de datos, del sistema de aplicación, de conversión, elabora ayudas de usuarios y planes de trabajo a desarrollar.

    1. Implementación: Esta etapa incluye la puesta a prueba, la capacitación al usuario, la conversión de datos y la implementación del sistema de aplicación.

    Ventajas:

    • Ciclos de desarrollo más pequeños.
    • Se comprenden bien los requisitos y se limita el ámbito del proyecto.
    • Es fácil dividir al sistema en módulos.
    • Se utiliza en enfoque de construcción basado en objetos reusables.

    Desventajas:

    • Requiere recursos humanos suficientes como para crear el número correcto de equipos.
    • Necesita que el cliente y el desarrollador se comprometan en las actividades necesarias para completar un sistema de tiempo corto.
    • No todos los tipos de aplicaciones son apropiados para  RAD. Si un sistema no se puede modelizar adecuadamente. La construcción de los componentes necesarios para RAD será problemático.