INFORME

34
Avalos Nina Marco Aurelio López Chuquimia Alexandra Ivette Parra Huanca Alvaro Rodrigo Quenta Carvajal Jhimmy Sam Quisbert Cruz Roger Alan Salazar Martínez Magaly Norah Zenteneo Limber UNIVERSIDAD MAYOR DE SAN ANDRES CARRERA DE INFORMATICA HERRAMIENTAS DE INVESTIGACION La Paz - Bolivia

Transcript of INFORME

Page 1: INFORME

Avalos Nina Marco Aurelio

López Chuquimia Alexandra Ivette

Parra Huanca Alvaro Rodrigo

Quenta Carvajal Jhimmy Sam

Quisbert Cruz Roger Alan

Salazar Martínez Magaly Norah

Zenteneo Limber

UNIVERSIDAD MAYOR DE SAN ANDRES

CARRERA DE INFORMATICAGESTION I/2013

HERRAMIENTAS DE INVESTIGACION

La Paz - Bolivia

Page 2: INFORME

HERRAMIENTAS DE INVESTIGACIÓN

Se mencionaran dos tipos de clasificación una general y otra enfocada al desarrollo y gestionamiento de proyectos.

Con respecto a la primera las herramientas de investigación se dividen en dos grupos:

HERRAMIENTAS TEÓRICAS: conceptos, ideas, metodologías,…

HERRAMIENTAS SOFTWARE: aplicaciones que nos sirven para poner en práctica las anteriores.

TÉCNICAS DE SIMULACIÓN:

Se entiende por simulación una extensa colección de métodos y aplicaciones para imitar el comportamiento de sistemas reales, normalmente en una computadora y a través de un software apropiado. De hecho el término simulación puede ser muy general ya que la idea se refiere a muchos campos, industrias y aplicaciones. Hoy en día, la simulación es más popular que nunca debido a que los ordenadores y el software son mejores y más asequibles.

Existen diferentes tipos de simulación:

- Estática vs Dinámica:

- Continua vs Discreta:

- Determinísticos vs Estocásticos (Probabilísticos)

Metodologías de simulación

- A mano

- Programado en lenguajes de uso general

- Lenguajes de simulación

- Simuladores de alto nivel

SOFTWARE PARA SIMULACIÓN:

TransModeler: Puede simular toda clase de redes de viales, desde autopistas hasta calles de los centros de las ciudades, y puede analizar redes multimodales de áreas extensas con gran detalle y fidelidad.

Unity3d: Es un software para simular actos o ambientes de estudio como ser el comportamiento de las abejas con las luces de colores, y mas.

Page 3: INFORME

SolidWorks: Es un software de simulación de oproceso de inyección de plásticos.

Panasonic robotics: Software de simulación de proceso

Bentley: Software de simulación térmica para la construcción

Comsol: Software de simulación mecánica

Narda: Software de simulación de campo electromagnético 2D/3D

Meaburrent Computing: Software de simulación acústica y de analisis de Vibracion.

Netlogo: Es un entorno programable de modelado para simular fenómenos naturales y sociales.

TÉCNICAS DE OPTIMIZACIÓN:

Las técnicas de optimización se han convertido en una poderosa herramienta para el diagnóstico y solución de múltiples problemas complejos, convirtiéndose en elemento decisivo, que aporta elementos importantes en la toma de decisiones.

SOFTWARE DE OPTIMIZACIÓN:

WinQSB: Es una aplicación creada por el Dr. Yih-Long Chang, que consta de una serie de módulos (subprogramas) que nos ayudan a resolver y automatizar algunos problemas de cálculos lineales, investigación de operaciones, planteamiento de producción, evaluación de proyectos, etc.

FORECAST: El sistema expertoanaliza sus datos históricos, selecciona automáticamente la técnica más apropiada para pronosticar y calcula los pronósticos utilizando métodos estadísticos probados.

EXPERTCHOICE: ExpertChoice ha sido usado exitosamente en una variedad de aplicaciones incluyendo Priorización y Evaluación de Proyectos,   Planeamiento estratégico,   Análisis de costo/beneficio,   Negociación y solución de conflictos,   Evaluación de los planes de inversión/desinversión,   Planeamiento mediante los procesos de avanzada y retroceso,   "Benchmarking",   Asignación de recursos,   Administración de Calidad total,   Evaluación de fusiones y adquisiciones,    Contratación, evaluación y promoción de empleados,   Satisfacción del cliente.  Compañíascomo IBM,  Good Year,  Ford Motor Co,  Texaco,  General Motors,  Citibank,  Westinghouse,  Eastman,  3M ,  AT&T/Bell Labs,  NASA , IRS, Anderson Consulting Co.,Universidad de Harvard, Universidad de Yale , MIT,Escuela Naval War,. En el Peru, Telefonica, TIM, Banco de Crédito, Marina de Guerra, y las principales universidades.

Page 4: INFORME

CRYSTALBALL: Con este programa pueden obtenerr una visión fiable de riesgos, crear modelos predictivos precisos, buscar la mejor solución y maximizar su inversión

EASYPLANEX: Se puede utilizar, entre otros, para resolver los siguientes problemas:

Evaluar y optimizar proyectos de inversión. Estimar el valor de una empresa. Calcular el valor de una acción. Optimizar el manejo de inventarios. Optimizar planes de producción. Confeccionar y controlar presupuestos, etc.

UML:

Qué es UML?

El UML modela sistema mediante el uso de objetos que forman parte de él así como, las relaciones estáticas o dinámicas que existen entre ellos.

UML puede ser utilizado por cualquier metodología de análisis y diseño orientada por objetos para expresar los diseños.

UML es un lenguaje de modelado que sirve para visualizar, especificar , construir y documentar un sistema software.

Modelos y Diagramas

Un proceso de desarrollo de software debe ofrecer un conjunto de modelos que permitan expresar el producto desde cada una de las perspectivas de interés

El código fuente del sistema es el modelo más detallado del sistema (y además es ejecutable). Sin embargo, se requieren otros modelos ...

Cada modelo es completo desde su punto de vista del sistema, sin embargo, existen relaciones de trazabilidad entre los diferentes modelos

Model o: captura una vista de un sistema del mundo real. Es una abstracción de dicho sistema, considerando un cierto propósito.

Diagram a: representación gráfica de una colección de elementos de modelado, a menudo dibujada como un grafo con vértices conectados por arcos.

Page 5: INFORME

Mecanismos comunes en UML

Especificaciones. Es más que un lenguaje gráfico (semántica detrás de la notación).

Adornos. Detalles sobre un clase, nivel de acceso de sus métodos, notas.

Divisiones Comunes: Clase/Objecto o Interfaz/Implementación.

Casos de Uso

Vista de Diseño

Vista de Procesos

Vista de Despliegue

Vista de ImplementaciónVista de los

Casos de Uso

Use CaseDiagramsUse CaseDiagramsDiagramas de

Casos de Uso

ScenarioDiagramsScenarioDiagramsDiagramas de

Colaboración

StateDiagramsStateDiagramsDiagramas de

Componentes

ComponentDiagramsComponent

DiagramsDiagramas deDistribución

StateDiagramsStateDiagramsDiagramas de

Objetos

ScenarioDiagramsScenarioDiagramsDiagramas de

Estados

Use CaseDiagramsUse CaseDiagramsDiagramas deSecuencia

StateDiagramsStateDiagramsDiagramas de

Clases

Diagramas deActividad

Modelo

Page 6: INFORME

Un diagrama de Casos de Uso muestra la distintas operaciones que se esperan de una aplicación o sistema y cómo se relaciona con su entorno (usuario u otras aplicaciones).

Es una herramienta esencial para la captura de requerimientos y para la planificación y control de un proyecto interactivo.

Diagrama de Clases

Un diagrama de clases o estructura estática muestra el conjunto de clases y objeto importantes que forman parte de un sistema, junto con las relaciones existentes entre clases y objetos. Muestra de una manera estática la estructura de información del sistema y la visibilidad que tiene cada una de las clases, dada por sus relaciones con los demás en el modelo.

Usos comunes del diagrama:

Modelado del vocabulario del sistema.

Modelado de colaboraciones simples.

Modelado de un esquema lógico de base de datos.

Modelado de un conjunto de clases de test.

Diagrama de interacción

Un diagrama de secuencia muestra la interacción de un conjunto de objetos de una aplicación a través del tiempo. Esta descripción es importante porque puede dar detalle a los casos de uso, aclarándolos al nivel de mensajes de los objetos existentes, como también muestra el uso de los mensajes de las clases diseñadas en el contexto de una operación.

Diagramas de Colaboración:

– Es una forma de representar interacción entre los objetos, es decir, las relaciones entre ellos y la secuencia de los mensajes de las iteraciones que están indicadas por un número A diferencia de los diagramas de secuencia, pueden mostrar el contexto de la operación (cuáles objetos son atributos, cuáles temporales, etc) y ciclos en la ejecución. Muestra como varios objetos colaboran en un solo caso de uso.

Diagrama de estados

Page 7: INFORME

– Muestra el conjunto de estado por los cuales pasa un objeto durante su vida en una aplicación junto con los cambios que permiten pasar de un estado a otro. Esta representado principalmente por los siguientes elementos:

Estado.

Elemento.

Transición.

Estado: Identifica un período de tiempo del objeto (no instantáneo) en el cual el objeto esta esperando alguna operación, tiene cierto estado característico o puede recibir cierto tipo de estímulos

Partes que componen un estado:

– Nombre

– Acciones de entrada y de salida.

– Transiciones internas.

– Subestados.

Eventos diferidos.

Diagrama de Actividades

Un diagrama de actividades es un caso especial de un diagrama de estados en el cual casi todos los estados son estados de acción (identifican que acción se ejecuta al esta en él ) y casi todas las transiciones son enviadas al terminar la acción ejecutada en el estado anterior.

Generalmente modelan los pasos de un algoritmo y puede dar detalle a un caso de uso, un objeto o un mensaje en un objeto.

Estado de Acción: representa un estado con acción interna, con lo menos una transición que indica la culminación de la acción (por medio de un evento implícito).

Page 8: INFORME

– Permite modular un paso dentro del algoritmo. Se representan por un rectángulo con bordes redondeados.

Diagrama de componentes

Los diagramas de componentes describen los elementos físicos reemplazables del sistema y sus relaciones

Muestran las opciones de realización incluyendo código fuente, binario y ejecutable

Diagrama de despliegue

Los nodos se interconectan mediante soportes bidireccionales que pueden a su vez estereotiparse.

Esta vista permite determinar las consecuencias de la distribución y la asignación de recursos.

Es un lenguaje gráfico para visualizar, especificar, construir y documentar un sistema. UML ofrece un estándar para describir un "plano" del sistema (modelo), incluyendo aspectos conceptuales tales como procesos de negocio, funciones del sistema, y aspectos concretos como expresiones de lenguajes de programación, esquemas de bases de datos y compuestos reciclados.

Elementos de UML

Diagrama de casos de uso

Los diagramas de casos de uso describen las relaciones y las dependencias entre un grupo de casos de uso y los actores participantes en el proceso.

Es importante resaltar que los diagramas de casos de uso no están pensados para representar el diseño y no puede describir los elementos internos de un sistema. Los diagramas de casos de uso sirven para facilitar la comunicación con los futuros usuarios del sistema, y con el cliente, y resultan especialmente útiles para determinar las características necesarias que tendrá el sistema. En otras palabras, los diagramas de casos de uso describen qué es lo que debe hacer el sistema, pero no cómo.

Caso de uso

Page 9: INFORME

Un caso de uso describe, —desde el punto de vista de los actores—, un grupo de actividades de un sistema que produce un resultado concreto y tangible.

Diagrama de clases

Los diagramas de clases muestran las diferentes clases que componen un sistema y cómo se relacionan unas con otras. Se dice que los diagramas de clases son diagramas «estáticos» porque muestran las clases, junto con sus métodos y atributos, así como las relaciones estáticas entre ellas: qué clases «conocen» a qué otras clases o qué clases «son parte» de otras clases, pero no muestran los métodos mediante los que se invocan entre ellas.

Diagramas de secuencia

Los diagramas de secuencia muestran el intercambio de mensajes (es decir la forma en que se invocan) en un momento dado. Los diagramas de secuencia ponen especial énfasis en el orden y el momento en que se envían los mensajes a los objetos.

En los diagramas de secuencia, los objetos están representados por líneas intermitentes verticales, con el nombre del objeto en la parte más alta. El eje de tiempo también es vertical, incrementándose hacia abajo, de forma que los mensajes son enviados de un objeto a otro en forma de flechas con los nombres de la operación y los parámetros.

Diagramas de colaboración

Los diagramas de colaboración muestran las interacciones que ocurren entre los objetos que participan en una situación determinada. Esta es más o menos la misma información que la mostrada por los diagramas de secuencia, pero destacando la forma en que las operaciones se producen en el tiempo, mientras que los diagramas de colaboración fijan el interés en las relaciones entre los objetos y su topología.

Diagrama de estado

Los diagramas de estado muestran los diferentes estados de un objeto durante su vida, y los estímulos que provocan los cambios de estado en un objeto.

Diagrama de actividad

Los diagramas de actividad describen la secuencia de las actividades en un sistema. Los diagramas de actividad son una forma especial de los diagramas de estado, que únicamente (o mayormente) contienen actividades.

Diagramas de componentes

Los diagramas de componentes muestran los componentes del software (ya sea las tecnologías que lo forman como Kparts, componentes CORBA, Java Beans o simplemente secciones del sistema claramente distintas) y los artilugios de que está compuesto como los archivos de código fuente, las librerías o las tablas de una base de datos.

Page 10: INFORME

Los componentes pueden tener interfaces (es decir clases abstractas con operaciones) que permiten asociaciones entre componentes.

Diagramas de entidad relación

Los diagramas de relaciones de entidad (diagramas ER) muestran el diseño conceptual de las aplicaciones de bases de datos. Representan varias entidades (conceptos) en el sistema de información y las relaciones y restricciones existentes entre ellas. Una extensión de los diagramas de relaciones de entidad llamado «diagramas de relaciones de entidad extendida» o «diagramas de relaciones de entidad mejoradas» (EER), se utiliza para incorporar las técnicas de diseño orientadas a objetos en los diagramas ER.

SOFTWARE DE UML:

StarUML: Es una herramienta para el modelamiento de software basado en los estándares UML (UnifiedModelingLanguage) y MDA (ModelDrivenArquitecture).

Enterpricearchitect:Si necesita modelar y gestionar información compleja, diseñar y visualizar software, o construir y desplegar diversos sistemas, EntepriseArchitect es la solución perfecta.

ArgoUML: Es una aplicación de diagramado de UML escrita en Java y publicada bajo la Licencia BSD. Dado que es una aplicación Java, está disponible en cualquier plataforma soportada por Java.

Día: Útil para dibujar diagramas UML, mapas de la red, y diagramas de flujo.

DB Designer (Fork): Este programa te permite generar el diagrama y luego exportarlo para Postgres entre otros.

ER Master: Una excelente herramienta que permite conectarme con Postgres para exportar/importar el modelo directamente en la DB o también genera el script de creación.

ER-DesignerMogWay: Multiplataforma, pues está basado en Java, soprtaMySQL, Oracle, DB2(experimental), Microsoft SQLServer, PostgreSQL y H2; Y está como plugin de Eclipse, NetBeans y algun otro.

Bases de datos

Un sistema gestor de base de datos se define como el conjunto de programas que administran y gestionan la información contenida en una base de datos. Ayuda a realizar las siguientes acciones:

Definición de los datos Mantenimiento de la integridad de los datos dentro de la base de datos

Page 11: INFORME

Control de la seguridad y privacidad de los datos Manipulación de los datos Una base de datos es diseñada, creada y poblada con datos para un propósito

específico. Una base de datos puede ser de cualquier tamaño y de complejidad variable.

Software de Base de datos

SQL: El lenguaje de consulta estructurado o SQL (por sus siglas en inglés structuredquerylanguage) es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones en ellas. Una de sus características es el manejo del álgebra y el cálculo relacional que permiten efectuarconsultas con el fin de recuperar de forma sencilla información de interés de bases de datos, así como hacer cambios en ella.

PostgreSQL: Es un SGBD relacional orientado a objetos y libre, publicado bajo lalicencia BSD.

Como muchos otros proyectos de código abierto, el desarrollo de PostgreSQL no es manejado por una empresa y/o persona, sino que es dirigido por una comunidad de desarrolladores que trabajan de forma desinteresada, altruista, libre y/o apoyados pororganizaciones comerciales.

Oracle: Es un sistema de gestión de base de datos objeto-relacional (o ORDBMS por el acrónimo en inglés de Object-Relational Data Base Management System), desarrollado por Oracle Corporation.

Se considera a Oracle como uno de los sistemas de bases de datos más completos, destacando:

Microsoft SQL Server: Es un sistema para la gestión de bases de datos producido porMicrosoft basado en el modelo relacional. Sus lenguajes para consultas son T-SQL yANSI SQL. Microsoft SQL Server constituye la alternativa de Microsoft a otros potentes sistemas gestores de bases de datos como son Oracle, PostgreSQL oMySQL.

Lógica difusa

Permite manejar información vaga o de difícil especificación si quisiéramos hacer cambiar con esta información el funcionamiento o el estado de un sistema específico. Es entonces posible con la lógica borrosa gobernar un sistema por medio de reglas de 'sentido común' las cuales se refieren a cantidades indefinidas.

Page 12: INFORME

Software de Lógica difusaProlog:Proveniente del francés PROgrammation en LOGique, es un lenguaje para programar artefactos electrónicos mediante el paradigma lógico con técnicas de producción final interpretada. Es bastante conocido en el área de la Ingeniería Informática para investigación en Inteligencia Artificial.

Software de algoritmos

Eclipse: Es un software en la que se pueden desarrollar software bajo el lenguaje Java, libre herramienta de cobertura, disponible bajo la Licencia Pública

Visual Studio .net: Es un lenguaje de programación orientado a objetos que se puede considerar una evolución de Visual Basic implementada sobre el framework .NET.

MatLab: Es un software matemático que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programación propio (lenguaje M).

Con respecto a la segunda clasificación las herramientas de investigación se dividen en dos grupos:

1. Gestionamiento de proyectos2. Ayuda al desarrollo

1. GESTIONAMIENTO DE PROYECTOSUna clasificación se la hace tomando en cuenta el gestionamiento de proyectos, las cuales nos permitirán realizar una Planificación temporal del proyecto, generación de diagramas temporales, asignación de recursos, cálculo de costes, control del seguimiento del proyecto, generación de documentación, etc. algunas herramientas empleadas entre ellas serian:

Herramientas básicas de planificación de proyectos. Herramientas generales de gestión de proyectos. Herramientas corporativas de gestión de proyectos. Herramientas de apoyo a la gestión de proyectos: Herramientas de gestión de la calidad en proyectos

Herramientas corporativas de gestión de proyectos

Las herramientas corporativas de gestión de proyectos o también denominada portal corporativo proporcionan servicios para gestionar las distintas etapas de los proyectos, con la ventaja de ofrecer una visión integral al proceso.A continuación se enlistan las distintas herramientas con que cuenta un portal corporativo para la gestión de proyectos.

Módulo de administración de la cartera de proyectos. Asistente para la planeación y definición de proyectos. Espacio de trabajo para realizar el seguimiento, control y cierre del proyecto Módulo para la gestión (seguimiento y control) de la cartera de proyectos. Módulo para la administración de la protección intelectual. Módulo de evaluación de resultados y medición de impacto.

Page 13: INFORME

Módulo de administración de la cartera de proyectosEn este módulo se integran los servicios para definir, analizar y dar prioridad a las iniciativas, propuestas y proyectos de la organización. El módulo provee los procesos de colaboración adecuados para generar, a partir de los objetivos planteados por la organización, iniciativas y propuestas que después son procesadas, analizando su prioridad, riesgo y costo para integrar una cartera de proyectos. Este módulo es retroalimentado con los resultados de las acciones, de tal forma que el usuario puede dar seguimiento al estado que guardan cada una de sus propuestas y en función de los resultados, tomar decisiones.Módulo de administración de la cartera de proyectosEn este módulo se integran los servicios para definir, analizar y dar prioridad a las iniciativas, propuestas y proyectos de la organización. El módulo provee los procesos de colaboración adecuados para generar, a partir de los objetivos planteados por la organización, iniciativas y propuestas que después son procesadas, analizando suprioridad, riesgo y costo para integrar una cartera de proyectos. Este módulo es retroalimentado con los resultados de las acciones, de tal forma que el usuario puede dar seguimiento al estado que guardan cada una de sus propuestas y en función de los resultados, tomar decisiones.Espacio de trabajo para realizar el seguimiento, ejecución y cierre del proyectoEste módulo permite la generación automática o manual de un espacio de trabajo para cada proyecto, donde los participantes y el coordinador o jefe del mismo, pueden realizar tareas de administración en las diferentes etapas del proyecto. Una aportación importante de los espacios de trabajo es que cuentan con las herramientas para administrar de manera integral, la información no estructurada y estructurada del proyecto,permitiendo concentrarla en un solo lugar. El espacio de trabajo proporciona los servicios de:

Plan de trabajo (Diagrama de Gantt). Presupuesto del proyecto. Tareas asignadas. Agenda grupal. Biblioteca documental. Servicios de interconexión externa. Foros de discusión. Herramientas de colaboración. Avisos. Seguimiento de problemas. Documentación de riesgos y seguimiento de acciones de mitigación. Plan de comunicación. Generador de informes de avance. Asistente de cierre.

Esta opción permite guardar en un solo lugar la información estratégica del proyecto,permitiendo salvaguardar parala organización, el conocimiento adquirido, así como los productos del desarrollo. Al finalizar el proyecto, el espacio de trabajo cuenta con un asistente que permite generar el informe final del mismo, donde el jefe de proyecto tiene la oportunidad de mandar los documentos utilizados o generados a repositorios de la organización, documentar lo aprendido por los participantes del proyecto, iniciar el proceso de protección intelectual para los productos obtenidos en el proyecto y documentar las lecciones aprendidas y mejores prácticas aplicadas.Módulo para la gestión (seguimiento y control) de la cartera de proyectosEste módulo cuenta con los servicios para desplegar la información simultánea del estado en que se encuentran los proyectos, a partir de los informes periódicos generados. Cuenta con servicios de supervisión jerarquizados, que permiten a los usuarios visualizar

Page 14: INFORME

todos los proyectos, los proyectos de un área o segmento de la organización, o los proyectos por tipo. Permite la visualización de sus indicadores de avance programado vs avance real, costo programado vs costo real.Módulo para la administración de la protección intelectualEste módulo contempla el proceso de administración de los productos que son registrados en derechos de autor, patentes o marcas, así como el proceso de trámite a partir de su integración en un proyecto.Módulo de evaluación de resultados y medición de impactoEn este módulo se agrupan los servicios del portal que permiten evaluar los resultados documentados y obtenidos por los proyectos. La información de los resultados es valorada de forma cualitativa y cuantitativa, calificándola para identificar los impactos a los objetivos donde el proyecto tuvo su origen y de esta forma cerrar el ciclo de vida dela información. Los problemas identificados durante la ejecución del proceso generan inconformidades que se registran en los procesos de mejora continua existentes, para analizar las causas-efecto y determinar las oportunidades de mejora, de tal forma que la organización se adecue a los cambios que los proyectos requieren.

HERRAMIENTAS BÁSICAS DE PLANIFICACIÓN DE PROYECTOS.

Herramientas básicas para la planificación de proyectos.

Etapas de formulación de proyectos, objetivos, metodologías y diagnostico FODA. Evaluación del mercado, evaluación: técnica, legal, organizacional y viabilidad financiera del proyecto. Estimación y proyecciones; demanda, precio. Gestión de proyectos y control; carta Gantt.

Herramientas básicas para la planificación de proyectos.

Etapas de formulación de proyectos, objetivos, metodologías y diagnóstico FODA. Evaluación: de mercado, técnica, legal, organizacional. Viabilidad financiera del proyecto. Estimación y proyecciones; demanda, precio. Planes estratégicos y programación Gantt.

Planificación, programación y control de proyectos con MS Project.

Elementos del sistema, herramientas, vistas. Personalización de aplicaciones: programación, calendario, datos generales, tareas, duraciones, relaciones y dependencias de acciones. Manejo de recursos, asignación, costos. Seguimiento y control, diagrama Gantt, líneas de progreso.

¿Qué se entiende por planificación de proyectos?

Todo proyecto conlleva la realización de una serie de actividades para su desarrollo.

La distribución en el tiempo de dichas actividades y la consideración de los recursos necesarios son las funciones a desarrollar en la planificación de proyectos.

Page 15: INFORME

El objetivo de la planificación de proyectos es obtener una distribución de las actividades en el tiempo y una utilización de los recursos que minimice el coste del proyecto cumpliendo con los condicionantes exigidos de: plazo de ejecución, tecnología a utilizar, recursos disponibles, nivel máximo de ocupación de dichos recursos, etc.

Por tanto la planificación de proyectos es una programación de actividades y una gestión de recursos para obtener un objetivo de coste cumpliendo con los condicionantes exigidos por nuestro cliente.

HERRAMIENTAS GENERALES DE GESTIÓN DE PROYECTOS.

Disciplina de gestión empresarial para la aplicación de conocimientos, métodos y herramientas en la realización de actividades para obtener un producto o servicio.

Responde a:¿Cómo las organizaciones gestionan sus actividades?

Permiten:

Planificación temporal del proyecto

Identificación de tareas, asignación de tiempos y recursos a dichas tareas y planificación de la secuencia de ejecución de forma que el tiempo de desarrollo del proyecto sea mínimo.

- El objetivo del gestor del proyecto es definir todas las tareas del proyecto, identificar las que son críticas y hacerles un seguimiento para detectar de inmediato posibles retrasos.

- La planificación temporal distribuye el esfuerzo estimado a lo largo de la duración prevista del proyecto.

- La planificación evoluciona con el tiempo: durante las primeras etapas se desarrolla una planificación temporal macroscópica y a medida que el proyecto va progresando se refina obteniendose una planificación temporal detallada.

Principios de la planificación temporal:

– Compartimentación: descomposición del proyecto en un número manejable de actividades o tareas.

– Interdependencia: Se deben determinar las interdependencias de cada actividad o tarea compartimentada.

– Asignación de tiempo: A cada tarea que se vaya a programar se le deben asignar un cierto número de unidades de trabajo, una fecha de inicio y otra de finalización.

– Validación del esfuerzo: A medida que se realiza la asignación de tiempo, el gestor del proyecto se tiene que asegurar de que hay en plantilla el suficiente número de personas que se requiere en cada momento.

Page 16: INFORME

– Responsabilidades definidas: Cada tarea que se programe debe asignarse a un miembro específico del proyecto.

– Resultados definidos: El resultado de cada tarea, normalmente un producto, deberá estar definido. Los

productos se combinan generalmente en entregas.

Generación de diagramas temporales Asignación de recursos

Distribución de los recursos económicos existentes entre diversos usos. Economía cuya

asignación de recursos

se guía por el sistema de precios. También denominada economía laissez-faire. Economía informal: Segmento de la economía que se caracteriza por negocios ilegales y sin reglamentación. La decisión de realizar una fusión o una adquisición, es una decisión de tipo económico, específicamente consiste en una decisión de inversión, entendiéndose como tal, la asignación de recursos con la esperanza de obtener ingresos futuros.

Cálculo de costes

Una de las etapas más importantes del sistema de costes basado en las actividades además de la identificación de las actividades es la determinación de su coste, fase que se aborda en este apartado. Para ello, se estudia primero el proceso de cálculo del coste primario de las actividades teniendo en cuenta todos los criterios, descritos en el apartado anterior, para la distribución de los recursos o elementos de coste consumidos entre las actividades. Después se describe el reparto secundario de los costes de aquellas actividades que fueron consideradas secundarias y, por último, se determinará el coste total de las actividades.

Control del seguimiento del proyecto

El seguimiento y control consiste en los procesos realizados para observar la ejecución del proyecto para que los problemas potenciales se puedan identificar en forma oportuna y se puedan adoptar medidas, cuando sea necesario, para controlar la ejecución del proyecto. El beneficio clave es que el rendimiento del proyecto es observado y medido regularmente para identificar las variantes del plan de gestión de proyectos.

El uso de una herramienta de seguimiento ha de tener las siguientes características:

Fácil de Utilizar (para mi y para mi equipo de trabajo)

Útil (para mí y para mi equipo de trabajo)

Barata (en dinero y en tiempo)

Un ejemplo típico de herramienta sería el uso de una tabla, por ejemplo:

Page 17: INFORME

Detalle por tarea

TareaHoras Previstas(Plan)

Horas Reales(Seguimiento)

Diferencia

Aprender un Lenguaje de Programación 30 h 20 h 10 h

Informe Resumen:

Tarea/Proyecto FechaHoras Previsto

Alcance Previsto

Horas Reales

Alcance Real

Diferencias Alcance

Diferencias Tiempo

Hacer un programa HolaMundo en el lenguaje TAL

25 Octubre 2005

50 100% 70 85%

Falta el 15% (debería estar acabado)

Llevo 20 horas más de lo previsto

Es simplemente controlar las actividades del proyecto. Esto se puede realizar perfectamente en papel aunque si lo necesitas (no es imprescindible) podrías utilizar software.

Generación de documentación

Un generador de documentación es una herramienta de programación que genera documentación destinada a los programadores (documentación de API) o a usuarios finales, o a ambos, a partir de un conjunto de código fuente especialmente documentado, y en algunos casos, archivos binarios.

Tipos de documentos

Documentos batch (documentos automatizados)

Documentos interactivos (documentos que no pueden ser producidos automáticamente)

Formularios (formularios para páginas web)

La más utilizada: Microsoft Project

Microsoft Project (o MSP) es un software de administración de proyectos diseñado, desarrollado y comercializado por Microsoft para asistir a administradores de proyectos en el desarrollo de planes, asignación de recursos a tareas, dar seguimiento al progreso, administrar presupuesto y analizar cargas de trabajo.

Programa general de gestión de proyectos. Nos permite:

Planificación temporal de las tareas

Page 18: INFORME

Asignación de recursos Cálculo del coste del proyecto Seguimiento y control del proyecto

Herramientas de apoyo a la gestión de proyectos:

Son herramientas para la asignación adecuada de recursos y la organización pertinente de actividades y responsabilidades de las diferentes personas que intervienen en el desarrollo del proyecto. Algunas de las herramientas útiles seria la:

1. Diagrama Causa-EfectoEl diagrama de Causa – Efecto es utilizado para identificar las posibles causas de un problema específico. En el proceso de planeación se convierte en una gran herramienta para prever todas las posibles situaciones que podrían generar un problema significativo y tomar medidas preventivas adecuadas. También se puede utilizar para identificar las principales causas de una situación exitosa.2. Diagrama de GANTT

El Plan de actividades permite desglosar un proyecto en metas, actividades y tareas para hacerlo más manejable.

Inicialmente, se convierte cada objetivo en una meta. Las Metas son logros concretos que servirán como indicadores de que las estrategias se han llevado a cabo correctamente. Cuando se formula una meta, se debe tener en cuenta que informe sobre un tiempo, una cantidad y una característica del logro. De esta manera, los objetivos se hacen más concretos y las estrategias se hacen más claras para el equipo.

Luego, se determinan las actividades que permiten lograr cada meta con sus respectivas tareas, persona responsable, grupo de apoyo, fechas, recursos necesarios y costos de cada una, y se indica quién supervisa para que todo se cumpla como está estipulado. Herramientas de gestión de la calidad en proyectos

Con respecto a la gestión de calidad se debe tomar en cuenta dos factores: Realizar el aseguramiento de la calidad Realizar un control de calidad

Realizar el aseguramiento de la calidad. Tomando en cuenta técnicas para la planificación de la calidad, auditorias de calidad, análisis de procesoRealizar un control de calidad. Se toma en cuenta algunas otras herramientas como ser: Diagramas de causa y efecto, diagramas de control, diagramas de flujo, histogramas, diagramas de pareto, Diagrama de dispersión, Muestreo estadístico, Dispersión.

2. AYUDA AL DESARROLLO

HERRAMIENTAS CASESon un conjunto de métodos, utilidades y técnicas que facilitan la automatización del ciclo de vida del desarrollo de sistemas de información, completamente o en alguna de sus fases.El empleo de herramientas Case permiten integrar el proceso de ciclo de vida:

Análisis de datos y procesos integrados mediante un repositorio. Generación de interfaces entre el análisis y el diseño. Generación del código a partir del diseño.

Page 19: INFORME

Control de mantenimiento.No existe una única clasificación de herramientas CASE y, en ocasiones, es difícil incluirlas en una clase determinada.

Componentes de una herramienta case

De una forma esquemática podemos decir que una herramienta CASE se compone de los siguientes elementos:

1. Repositorio (diccionario) donde se almacenan los elementos definidos o creados por la herramienta, y cuya gestión se realiza mediante el apoyo de un Sistema de Gestión de Base de Datos (SGBD) o de un sistema de gestión de ficheros. Apoyándose en la existencia del repositorio se efectúan comprobaciones de integridad y consistencia:

     Que no existan datos no definidos.

     Que no existan datos autodefinidos (datos que se emplean en una definición pero que no han sido definidos previamente).

     Que todos los alias (referencias a un mismo dato empleando nombres distintos) sean correctos y estén actualizados.

Las características más importantes de un repositorio son:

- Tipo de información. Que contiene alguna metodología concreta, datos, gráficos, procesos, informes, modelos o reglas.

- Tipo de controles. Si incorpora algún módulo de gestión de cambios, de mantenimiento de versiones, de acceso por clave, de redundancia de la información.

2. Meta modelo (no siempre visible), que constituye el marco para la definición de las técnicas y metodologías soportadas por la herramienta.

3. Carga o descarga de datos, son facilidades que permiten cargar el repertorio de la herramienta CASE con datos provenientes de otros sistemas, o bien generar a partir de la propia herramienta esquemas de base de datos, programas, etc. que pueden, a su vez, alimentar otros sistemas. Este elemento proporciona así un medio de comunicación con otras herramientas.

4. Comprobación de errores, facilidades que permiten llevar a cabo un análisis de la exactitud, integridad y consistencia de los esquemas generados por la herramienta.

5. Interfaz de usuario, que constará de editores de texto y herramientas de diseño gráfico que permitan, mediante la utilización de un sistema de ventanas, iconos y menús, con la ayuda del ratón, definir los diagramas, matrices, etc. que incluyen las distintas metodologías.

Page 20: INFORME

Clasificación de las herramientas case

No existe una única clasificación de herramientas CASE y, en ocasiones, es difícil incluirlas en una clase determinada. Podrían clasificarse atendiendo a:- Las plataformas que soportan.- Las fases del ciclo de vida del desarrollo de sistemas que cubren.- La arquitectura de las aplicaciones que producen.- Su funcionalidad.CASE es una combinación de herramientas software (aplicaciones) y de metodologías de desarrollo:1. Las herramientas permiten automatizar el proceso de desarrollo del software.2. Las metodologías definen los procesos automatizar.Una primera clasificación del CASE es considerando su amplitud :TOOLKIT: es una colección de herramientas integradas que permiten automatizar un conjunto de tareas de algunas de las fases del ciclo de vida del sistema informático: Planificación estratégica, Análisis, Diseño, Generación de programas.WORKBENCH: Son conjuntos integrados de herramientas que dan soporte a la automatización del proceso completo de desarrollo del sistema informático. Permiten cubrir el ciclo de vida completo. El producto final aportado por ellas es un sistema en código ejecutable y su documentación.Una segunda clasificación es teniendo en cuenta las fases (y/o tareas) del ciclo de vida que automatizan:UPPER CASE: Planificación estratégica, Requerimientos de Desarrollo Funcional de Planes Corporativos.MIDDLE CASE: Análisis y Diseño.LOWER CASE: Generación de código, test e implantación

Conclusión

Sin lugar a dudas las herramientas CASE han venido a revolucionar la forma de automatizar los aspectos clave en el desarrollo de los sistemas de información, debido a la gran plataforma de seguridad que ofrecen a los sistemas que las usan y es que éstas, brindan toda una gama de componentes que incluyen todas o la mayoría de los requisitos necesarios para el desarrollo de los sistemas, han sido creadas con una gran exactitud en torno a las necesidades de los desarrolladores de sistemas para la automatización de procesos incluyendo el análisis, diseño e implantación.

Las Herramientas CASE se clasifican por su amplitud en: TOOLKIT, WORKBENCH además también se pueden dividir teniendo en cuenta las fases del ciclo de vida que automatizan: UPPER CASE, MIDDLE CASE, LOWER CASE.

Debido a la gran demanda que tienen las CASE su exigencia en cuanto a su uso ha ido aumentando, por lo que toda CASE debe entre otras cosas:

Proporcionar topologías de aplicación flexibles Proporcionar aplicaciones portátiles Brindar un Control de versión Crear código compilado en el servidor Dar un Soporte multiusuario Ofrecer Seguridad

Page 21: INFORME

Desde que se crearon éstas herramientas (1984) hasta la actualidad, las CASE cuentan con una credibilidad y exactitud que tienen un reconocimiento universal, siendo usadas por cualquier desarrollador y / o programador que busca un resultado óptimo y eficiente, pero sobre todo que busca esa minuciosidad necesaria de los procesos y entre los procesos.

Control de versiones

Se llama control de versiones a la gestión de los diversos cambios que se realizan sobre los elementos de algún producto o una configuración del mismo. Una versión, revisión o edición de un producto, es el estado en el que se encuentra dicho producto en un momento dado de su desarrollo o modificación. Aunque un sistema de control de versiones puede realizarse de forma manual, es muy aconsejable disponer de herramientas que faciliten esta gestión dando lugar a los llamados sistemas de control de versiones o SVC (del inglés System Version Control). Estos sistemas facilitan la administración de las distintas versiones de cada producto desarrollado, así como las posibles especializaciones realizadas

Características

Un sistema de control de versiones debe proporcionar:

Mecanismo de almacenamiento de los elementos que deba gestionar (ej. archivos de texto, imágenes, documentación...).

Posibilidad de realizar cambios sobre los elementos almacenados (ej. modificaciones parciales, añadir, borrar, renombrar o mover elementos).

Registro histórico de las acciones realizadas con cada elemento o conjunto de elementos (normalmente pudiendo volver o extraer un estado anterior del producto).

Aunque no es estrictamente necesario, suele ser muy útil la generación de informes con los cambios introducidos entre dos versiones, informes de estado, marcado con nombre identificativo de la versión de un conjunto de ficheros, etc.

Terminología

La terminología empleada puede variar de sistema a sistema, pero a continuación se describen algunos términos de uso común.1 2

Repositorio

Page 22: INFORME

El repositorio es el lugar en el que se almacenan los datos actualizados e históricos de cambios, a menudo en un servidor. A veces se le denomina depósito o depot. Puede ser un sistema de archivos en un disco duro, un banco de datos, etc..

MóduloConjunto de directorios y/o archivos dentro del repositorio que pertenecen a un proyecto común.

Revisión ("version")Una revisión es una versión determinada de la información que se gestiona. Hay sistemas que identifican las revisiones con un contador (Ej. subversion). Hay otros sistemas que identifican las revisiones mediante un código de detección de modificaciones (Ej. Git usa SHA1). A la última versión se le suele identificar de forma especial con el nombre de HEAD. Para poner especial a una revisión concreta se usan los rótulos o tags

Rotular ("tag")Darle a alguna versión de cada uno de los ficheros del módulo en desarrollo en un momento preciso un nombre común ("etiqueta" o "rótulo") para asegurarse de reencontrar ese estado de desarrollo posteriormente bajo ese nombre. En la práctica se rotula a todos los archivos en un momento determinado. Para eso el módulo se "congela" durante el rotulado para imponer una versión coherente. Pero bajo ciertas circunstancias puede ser necesario utilizar versiones de algunos ficheros que no coinciden temporalmente con las de los otros ficheros del módulo.Los tags permiten identificar de forma fácil revisiones importantes en el proyecto. Por ejemplo se suelen usar tags para identificar el contenido de las versiones publicadas del proyecto.En algunos sistemas se considera un tag como una rama en la que los ficheros no evolucionan, están congelados.

Línea base ("Baseline")Una revisión aprobada de un documento o fichero fuente, a partir del cual se pueden realizar cambios subsiguientes.

Abrir rama ("branch") o ramificarUn módulo puede ser branched o bifurcado en un instante de tiempo de forma que, desde ese momento en adelante se tienen dos copias (ramas) que evolucionan de forma independiente siguiendo su propia línea de desarrollo. El módulo tiene entonces 2 (o más) "ramas". La ventaja es que se puede hacer un "merge" de las modificaciones de ambas ramas, posibilitando la creación de "ramas de prueba" que contengan código para evaluación, si se decide que las modificaciones realizadas en la "rama de prueba" sean preservadas, se hace un "merge" con la rama principal. Son motivos habituales para la creación de ramas la creación de nuevas funcionalidades o la corrección de errores.

Desplegar ("Check-out", "checkout", "co")Un despliegue crea una copia de trabajo local desde el repositorio. Se puede especificar una revisión concreta, y por defecto se suele obtener la última.

"Publicar" o "Enviar"("commit", "check-in", "ci", "install", "submit")

Page 23: INFORME

Un commit sucede cuando una copia de los cambios hechos a una copia local es escrita o integrada sobre repositorio.

Git

Git es un software de control de versiones diseñado por Linus Torvalds, pensando en la eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando estas tienen un gran número de archivos de código fuente. Al principio, Git se pensó como un motor de bajo nivel sobre el cual otros pudieran escribir la interfaz de usuario o front end como Cogito o StGIT. 2 Sin embargo, Git se ha convertido desde entonces en un sistema de control de versiones con funcionalidad plena. 3 Hay algunos proyectos de mucha relevancia que ya usan Git, en particular, el grupo de programación del núcleo Linux.

Caracterisiticas

El diseño de Git se basó en BitKeeper y en Monotone. 4 5

El diseño de Git resulta de la experiencia del diseñador de Linux, Linus Torvalds, manteniendo una enorme cantidad de código distribuida y gestionada por mucha gente, que incide en numerosos detalles de rendimiento, y de la necesidad de rapidez en una primera implementación.

Entre las características más relevantes se encuentran:

Fuerte apoyo al desarrollo no-lineal, por ende rapidez en la gestión de ramas y mezclado de diferentes versiones. Git incluye herramientas específicas para navegar y visualizar un historial de desarrollo no-lineal. Una presunción fundamental en Git es que un cambio será fusionado mucho más frecuentemente de lo que se escribe originalmente, conforme se pasa entre varios programadores que lo revisan.

Gestión distribuida. Al igual que Darcs, BitKeeper, Mercurial, SVK, Bazaar y Monotone, Git le da a cada programador una copia local del historial del desarrollo entero, y los cambios se propagan entre los repositorios locales. Los cambios se importan como ramas adicionales y pueden ser fusionados en la misma manera que se hace con la rama local.

Los almacenes de información pueden publicarse por HTTP, FTP, rsync o mediante un protocolo nativo, ya sea a través de una conexión TCP/IP simple o a través de cifrado SSH. Git también puede emular servidores

Page 24: INFORME

CVS, lo que habilita el uso de clientes CVS pre-existentes y modulos IDE para CVS pre-existentes en el acceso de repositorios Git.

Los repositorios Subversion y svk se pueden usar directamente con git-svn. Gestión eficiente de proyectos grandes, dada la rapidez de gestión de

diferencias entre archivos, entre otras mejoras de optimización de velocidad de ejecución.

Todas las versiones previas a un cambio determinado, implican la notificación de un cambio posterior en cualquiera de ellas a ese cambio (denominado autenticación criptográfica de historial). Esto existía en Monotone.

Resulta algo más caro trabajar con ficheros concretos frente a proyectos, eso diferencia el trabajo frente a CVS, que trabaja con base en cambios de fichero, pero mejora el trabajo con afectaciones de código que concurren en operaciones similares en varios archivos.

Los renombrados se trabajan basándose en similitudes entre ficheros, aparte de nombres de ficheros, pero no se hacen marcas explícitas de cambios de nombre con base en supuestos nombres únicos de nodos de sistema de ficheros, lo que evita posibles, y posiblemente desastrosas, coincidencias de ficheros diferentes en un único nombre.

Realmacenamiento periódico en paquetes (ficheros). Esto es relativamente eficiente para escritura de cambios y relativamente ineficiente para lectura si el reempaquetado (con base en diferencias) no ocurre cada cierto tiempo.

Entorno de desarrollo integrado

Un entorno de desarrollo integrado, llamado también IDE (sigla en inglés de integrated development environment), es un programa informático 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.

Un IDE es un entorno de programación que ha sido empaquetado como un programa de aplicación; es decir, consiste en un editor de código, un compilador, un depurador y un constructor de interfaz gráfica (GUI). Los IDEs pueden ser aplicaciones por sí solas o pueden ser parte de aplicaciones existentes. El lenguaje Visual Basic, por ejemplo, puede ser usado dentro de las aplicaciones de Microsoft Office, lo que hace posible escribir sentencias Visual Basic en forma de macros para Microsoft Word.

Los IDE proveen un marco de trabajo amigable para la mayoría de los lenguajes de programación tales como C++, PHP, Python, Java, C#, Delphi, Visual Basic, etc. En algunos lenguajes, un IDE puede funcionar como un sistema en tiempo de ejecución, en donde se permite utilizar el lenguaje de programación en forma interactiva, sin necesidad de trabajo orientado a archivos de texto, como es el caso de Smalltalk u Objective-C

Page 25: INFORME

Editor de código fuente

Un editor de código fuente es un editor de texto diseñado específicamente para editar el código fuente de programas informáticos. Puede ser una aplicación individual o estar incluido en un entorno de desarrollo integrado.

Los editores de código fuente tienen características diseñadas exclusivamente para simplificar y acelerar la escritura de código fuente, como resaltado de sintaxis, autocompletar y pareo de llaves. Estos editores también proveen un modo conveniente de ejecutar un compilador, un intérprete, un depurador, o cualquier otro programa que sea relevante en el proceso de desarrollo de software. Por lo que, si bien muchos editores de texto pueden ser usados para editar código fuente sin problemas, si no mejoran, automatizan y facilitan la edición del código, no ameritan ser llamados "editores de código fuente", y son únicamente editores de texto que pueden ser usados para editar código fuente.

Algunos editores de código fuente verifican la sintaxis a medida que el programador escribe, alertando inmediatamente sobre los problemas de sintaxis que puedan surgir. Otros editores de código fuente comprimen el código, convirtiendo las palabras clave en tokens de un solo byte, eliminado espacios en blanco innecesarios y convirtiendo los números a una forma binaria. Estos editores tokenizadores descomprimen el código fuente al momento de visualizarlo, imprimiéndolo con los espacios y mayúsculas adecuadas. Existen editores que realizan ambas tareas.