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.



viernes, 23 de mayo de 2014

Conocimiento y Familiarización con el Formato ieee830

IEEE 830

Quien lo inventó el formato:

Software Engineering Standards Committee, del IEEE Computer Society

 IEEE (Institute of Electric and Electronic Engineers, en E.U.A.), en 1998

 El propósito principal de esta norma es ayudarnos a elaborar un documento muy útil: 
el SRS es esencialmente una guía para redacción

 Que es: Es un conjunto de pasos escritos para definir claramente  las necesidades de una empresa

Para que sirve:
Un cliente describa claramente lo que quiere
Un proveedor entienda claramente lo que el cliente quiere
Se establezcan bases para un contrato de desarrollo (o de compra-venta)
Se reduzca el esfuerzo de análisis, diseño, y programación (evitando re-trabajos)
Se tenga una base o referencia para validar o probar el software solicitado
Se facilite el traspaso del software a otros clientes/usuarios
Se le puedan hacer mejoras (o innovaciones) a ese software

SRS
es una especificación para un producto de software en particular, ya sea un sólo programa, o un conjunto de programas, que realicen ciertas funciones en un ambiente específico

IS: interfaz de sistema


FTP (File Transfer Protocol, 'Protocolo de Transferencia de Archivos') en informática, es un protocolo de red para la transferencia de archivos entre sistemas conectados a una red TCP (Transmission Control Protocol), basado en la arquitectura cliente-servidor. Desde un equipo cliente se puede conectar a un servidor para descargar archivos desde él o para enviarle archivos, independientemente del sistema operativo utilizado en cada equipo.

viernes, 16 de mayo de 2014

PROYECTOS Y TIPOS DE REQUISITOS

 Requisito funcional

Un requisito funcional define una función del sistema de software o sus componentes. Una función es descrita como un conjunto de entradas, comportamientos y salidas. Los requerimientos funcionales pueden ser: cálculos, detalles técnicos, manipulación de datos y otras funcionalidades específicas que se supone, un sistema debe cumplir. Los requerimientos de comportamiento para cada requerimiento funcional se muestran en los casos de uso. Son complementados por los requisitos no funcionales, que se enfocan en cambio en el diseño.

Como se define en la ingeniería de requisitos, los requisitos funcionales establecen los comportamientos del sistema.
Un requisito funcional típico contiene un nombre y un número de serie único y un resumen. Esta información se utiliza para ayudar al lector a entender por qué el requisito es necesario, y para seguir al mismo durante el desarrollo del producto.
El núcleo del requisito es la descripción del comportamiento requerido, que debe ser clara y concisa.

Ej.: un ejemplo de requerimientos funcionales son los requerimientos que debe de cumplir el sistema en cuestión del proceso, digamos una biblioteca, un requerimiento funcional es que el sistema permita hacer préstamos de libros.


Requisito no funcional

Un requisito no funcional o atributo de calidad es, en la ingeniería de sistemas y la ingeniería de software, un requisito que especifica criterios que pueden usarse para juzgar la operación de un sistema en lugar de sus comportamientos específicos, ya que éstos corresponden a los requisitos funcionales. Por tanto, se refieren a todos los requisitos que ni describen información a guardar, ni funciones a realizar.
El: rendimiento, usos.

 Alcance de un proyecto

El alcance de un proyecto es la suma total de todos los productos y sus requisitos o características. Se utiliza a veces para representar la totalidad de trabajo necesitado para dar por terminado un proyecto.
Si los requisitos del proyecto no se definen totalmente, si no se describen bien o si no hay un control de cambios eficaz, puede sobrevenir entonces un arrastre de alcance o requisitos, y generarse lo que se conoce como el síndrome del lavadero.

Síndrome del lavadero: se refiere a aquellos cambios no controlados en el alcance de un proyecto. Este fenómeno puede ocurrir cuando el alcance de un proyecto no se define, documenta, o controla correctamente.
 El aumento del alcance consiste en productos nuevos o nuevas características de productos ya aprobados que hacen que el equipo de proyecto se desvíe de su propósito original.

Ej: para un sistema de información.
Partiendo de la necesidad que en los paquetes de contabilidad actuales les faltan muchas cosas por mejorar no solo en su estructura sino también en sus precios, nuestra solución seria innovar esto y entregar al cliente unos paquetes contables que se ajusten a todas sus necesidades y con precios mucho más bajos.

Módulo

En programación un módulo es una porción de un programa de computadora. De las varias tareas que debe realizar un programa para cumplir con su función u objetivos, un módulo realizará, comúnmente, una de dichas tareas (o varias, en algún caso).
Particularmente, en el caso de la programación, los módulos suelen estar (no necesariamente) organizados jerárquicamente en niveles, de forma que hay un módulo principal que realiza las llamadas oportunas a los módulos de nivel inferior.

Cuando un módulo es convocado, recibe como entrada los datos proporcionados por otro del mismo o superior nivel, el que ha hecho la llamada; luego realiza su tarea. A su vez este módulo convocado puede llamar a otro u otros módulos de nivel inferior si fuera necesario; cuando ellos finalizan su tareas, devuelven la salida pertinente al módulo inmediato llamador, en secuencia reversa, finalmente se continúa con la ejecución del módulo principal.


Ejemplo: en skype se divide en partes con funcionalidades diferentes como: chat, video, llamadas, contactos....

lunes, 28 de abril de 2014

Herramientas de Gestión de Proyectos


GANTT PROJECT


Programa gráfico Java para editar diagramas de Gantt Presentación En esta práctica guiada aprenderás varias cosas relacionadas con el uso de  Gantt Project, que es una aplicación de ayuda a la gestión de proyectos. En Particular, aprenderás a:

GanttProject es una herramienta de escritorio multiplataforma para la programación y gestión de proyectos. Se ejecuta en Windows, Linux y MacOSX, es libre y su código es opensource. Es una alternativa a Microsoft Project? Usted decide.
 Lo que viene con GanttProject:

Diagrama de Gantt, Diagrama PERT

Crear la estructura de desglose del trabajo, dibujar dependencias, definir hitos.

Tabla de carga de recursos

Asignar los recursos humanos para trabajar en las tareas y ver su utilización en la Tabla de carga de recursos.

Generar diagrama PERT de diagrama de Gantt.

Las capacidades de exportación

Guarde los gráficos como imágenes PNG, generar informes PDF y HTML.

Importación de proyectos y exportarlos a formatos de Microsoft Project. Intercambio de datos con hojas de cálculo utilizando CSV de importación / exportación.

Compartir proyectos con sus colegas utilizando WebDAV.


Ventajas de GanttProject

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 asignares 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 de GanttProject

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.
Ganttproject es multiplataforma, lo que quiere decir que lo podés usar en cualquier computadora que tenga Windows, Mac o Linux.

Soporte
tiene soporte para WebDav. webdav permite que varios usuarios al mismo tiempo trabajen sobre un mismo archivo. Viendo que ganttproject soporta webdav, se podría decir que varios usuarios podrían trabajar sobre el mismo proyecto sin pisar los datos.
WorkMeter. Es un software de productividad que recolecta de forma automática información sobre el uso de las herramientas tecnológicas y te permite obtener datos objetivos sobre actividad, desempeño laboral, concentración, fragmentación, gestión del tiempo, productividad laboral tanto individual como colectiva. Permite analizar la actividad y la productividad laboral de cada proyecto. Podrás analizar la actividad y productividad laboral de cada proyecto.

mira el video //www.youtube.com/watch?v=5rHCSa5ad34




KMKEY PROJECT



Es un software de gestión de proyectos con el que cualquier empresa u organización puede disponer de toda la información necesaria para desarrollar su negocio, desde la oferta hasta la entrega del proyecto. KMKey Project es un software especialmente indicado para llevar el control de proyectos de cualquier tipo: desarrollo de proyectos de ingeniería, gestión de despachos de arquitectura, planificación seguimiento y control de obras,  proyectos en tecnologías de la información, gestión de consultorías, ingeniería medioambiental, I+D+i, .. son algunas de las funcionalidades que actualmente son trabajadas con KMKey Project.
Mediante KMKey Project podrá desarrollar sus proyectos y disponer, desde cualquier acceso Internet, de toda la información relevante organizada en cuatro ejes:

Licencias sin coste
Con la aceptación de la oferta, Earcon SL concede al cliente derechos de uso y/o modificación del software KMKey bajo las condiciones de la licencia GPL versión 2, de la cual se incluye una versión íntegra en el propio software, y que además puede ser consultada a través de la web: http://www.gnu.org/copyleft/gpl.html

Plataforma
KMKey se instala sobre una plataforma formada por aplicaciones Open Source:
LINUX (Sistema operativo)
APACHE (Servidor de páginas Web)
ZOPE (Servidor de aplicaciones Web)
ZODB (Base de datos orientada a objetos)
PostgreSQL (Base de datos relacional)
PYTHON (Lenguaje de programación)

Instalación sobre Windows: Se puede usar la máquina virtual de virtualbox con KMKey preconfigurado. Esta es la opción que tarda más en desacargar, pero la más rápida de poner en práctica, y la única si usas Windows. Se trata de un disco para virtualbox con una Debian Lenny + KMKey instalado, Sólo se necesita crear la máquina, adjuntar el disco, y acceder por http://ip.de.maquina a vuestro KMKey
Una herramienta muy útil para replicar datos de KM o hacer copias de seguridad es la exportación en formato XML mediante el método/url exportContainerAsXML, de tal forma que luego podemos importarlo a cualquier otro KMKey mediante las utilidades de importación XML

Tiempo:
Planificación del proyecto. División entre agrupaciones de tareas. WBS. Flujos de trabajo. Calendario.Graficos Gantt. Periodos de ejecución. Progreso. Real frente previsto. Tareas fuera de plazo. Avisos.
Enlace con MS Project para generar la planificación.
Patrones de trabajo para proyectos que siguen un flujo de trabajo similar. Mejora continua.

Esfuerzo:

Humanos: perfiles de trabajo. Permisos. Reservas de recursos. Partes de trabajo. Horas/hombre valoradas. Accesos restringidos.
Materiales: asignación de herramientas, espacios. Control de disponibilidad.

Información:

Documentos y archivos: Generación automática y salida de informes en varios formatos: Open Office, MS Office, PDF. Gestión documental asociada: versiones, autores, reservas.
Agenda: base de datos de empresas y contactos. Calendario actividades. Mailing. Notas y reuniones
Integración e-mail: Notificaciones a terceros vía mail de acciones y tareas. Recepción automática de mails
Avisos por SMS: Para usuarios móbiles
Preparado para Sistemas de Gestión de calidad: (ISO 9001 y otros)
Economía:Previsto:  ofertas, presupuestos del proyecto dividido por tareas y fases. Conceptos contables configurables.
Real: facturación, entrada de facturas de compra, gastos personales, horas valoradas, gastos generales.
Comparativas: real frente a previstos, informes, alarmas, porcentages. Cuentas de explotación.

mira el video //www.youtube.com/watch?v=pQtgN-iMYBA


EPROWIN PROJECT

Gestión de Proyectos
eProwin Project es una herramienta on line que permite la gestión, control y análisis de Proyectos.
eProwin Project está diseñado para que sea fácil de usar por todo tipo de usuarios, independientemente de los conocimientos técnicos que tengan.
Software  completo
El potente software de eProwin Project está compuesto por aplicaciones sencillas e intuitivas que permiten la gestión y mantenimiento de Proyectos y sus Tareas. Estos son el pilar central de la aplicación de donde se alimentan las demás secciones.
La gestión de los datos existentes en las diferentes áreas, permitirá la rápida adopción por los equipos de trabajo, obteniéndose resultados de forma inminente, compartiendo información y documentos en cada proyecto entre los trabajadores asignados al mismo.
Su uso puede realizarse desde cualquier ordenador, PDA o teléfono móvil con conexión a Internet y navegador, permitiendo de esa manera la coordinación de actividades de la empresa desde diferentes puntos y con una imputación real de horas dedicadas a cada tarea de un proyecto.
Asimismo, evitará a los usuarios el tener que dedicarse a labores de mantenimiento (cambios de versión, instalaciones, etc), copias de seguridad y control de procesos, ya que todo ello es automático como Software SaaS.
Gestión, Imputación y Movilidad
La herramienta tiene tres módulos interconectados entre ellos:

Gestión
Podrás crear, planificar, controlar y analizar proyectos. Gestionar la documentación de cada proyecto y gestionar datos de los clientes y empleados.

Imputación
El operario podrá imputar partes de trabajo en tiempo real. También podrá consultar la información de un cliente y toda la información y documentación disponible de un proyecto.

Movilidad
La versión móvil del eProwin Project permite imputar partes de trabajo, consultar datos de Clientes y Artículos y ver el estado de los proyectos.

Esta versión es compatible con cualquier sistema operativo como Android, Windows Mobile o Symbian y sus respectivos navegadores.