Planeacion De Proyectos2.docx

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Planeacion De Proyectos2.docx as PDF for free.

More details

  • Words: 3,228
  • Pages: 12
INDICE 4.1 El enfoque estructurado.

Pág. 3

4.2 El enfoque orientado a objetos.

Pág. 4

5.1 Importancia de la gestión de proyectos de sistemas de información.

Pág. 6

5.2 Las fases de administración de un sistema de información.

Pág. 7

5.2.1 Planear, organizar, integrar, dirigir y controlar.

Pág. 8

5.3 El equipo de desarrollo de software.

Pág. 8

5.3.1 Equipos agiles

Pág. 10

5.3.2 Gestión de conflictos de coordinación y comunicación.

Pág. 12

Bibliografía

Pág. 13

1

UNIDAD 4 PARADIGMAS DE LA INGENIERIA DE SOFTWARE

4.1 El enfoque estructurado. A finales de los años 1960, Dijkstra estableció las bases de la programación estructurada, demostrando que todo programa podía escribirse utilizando únicamente bloques secuenciales de instrucciones, instrucciones condicionales y bucles. Los métodos del enfoque estructurado se basan en hacer aproximaciones descendentes donde se descompone el sistema completo en niveles funcionales cada vez más detallados, desde una apreciación global inicial hasta el nivel de detalle necesario para su implementación. Estos métodos tienen como características primordiales la descomposición funcional del sistema, el modelado de los datos y la representación del flujo de la información. Estos tres aspectos forman las vistas del sistema: La especificación de datos, la especificación de los procesos y la especificación de control. (Pressman R. S., 2002). Diagrama de flujo de datos. El primero de estos métodos en aparecer fue el Diagrama de Flujo de Datos (Data Flow Diagram, DFD), desarrollado por De Marco y popularizado por Yourdan. Este es un método principalmente enfocado a la especificación de los procesos del sistema. Los diagramas de flujo de datos se asemejan a un grafo que representa los procesos que se realizan con los datos y las transformaciones que se aplican sobre ellos. Los DFD tienen como característica distintiva el que pueden descomponerse en otros subdiagramas hasta llegar al nivel de detalle o granularidad que se requiera para completar el diseño, siguiendo una aproximación descendente. Al nivel más alto o superior, se le denomina nivel de contexto y los procesos que se expresan en los niveles inferiores, donde el detalle es el máximo y ya no pueden descomponerse más, se les conocen como procesos primitivos(Sanchez , Sicilia, & Rodríguez, 2012). Los Diagramas de Flujo de Datos proporcionan algunas ventajas sobre las explicaciones descriptivas sencillas que pueden hacerse de un sistema y de la forma en que los datos se mueven a través del mismo. Proporcionan libertad para emprender la implementación técnica del sistema en las primeras etapas del análisis. Ofrecen una compresión más profunda de la interrelación entre los sistemas y los subsistemas que lo componen. Permiten una mejor comunicación con los usuarios sobre el conocimiento del sistema actual y facilitan el análisis del sistema propuesto para determinar si se han definido los datos y procesos necesarios.

2

4.2 El enfoque orientado a objetos. El paradigma de la programación orientada a objetos se inició a finales de los años 1960 en Noruega con el desarrollo de un lenguaje conocido como SIMULA. Actualmente este paradigma es el más utilizado y ha influenciado a prácticamente la totalidad de los lenguajes de programación recientes tales como Smalltalk, C++, C#, Eiffel o Java. Todos estos lenguajes cumplen con un conjunto de propiedades que identifican a la orientación a objetos y que están encaminadas a mejorar la calidad del software producido. Estas propiedades son:  Abstracción: Se reduce la complejidad del dominio abstrayendo hasta el nivel adecuado. En la orientación a objetos la abstracción se representa mediante el concepto de clase, que representa un conjunto de objetos concretos, llamados instancias, que tienen propiedades y operaciones comunes.  Herencia: Esta propiedad permite definir una clase a partir de otras – una o más – clases existentes, de modo tal que la nueva clase hereda las características de la(s) superclase(s), a las que se añadirán ciertas características propias. La herencia consiste en que una clase puede heredar sus variables y métodos a varias subclases (la clase que hereda es llamada superclase o clase padre). Esto significa que una subclase, a parte de los atributos y métodos propios, tiene incorporados los atributos y métodos heredados de la superclase. De esta manera se crea una jerarquía de herencia. La herencia reduce el trabajo de la programación usando fácilmente objetos comunes. Sólo es necesarios declarar que la clase A hereda de la clase B y después proporcionar cualquier detalle adicional. Los atributos y comportamientos de la clase B son parte de la clase A y no requiere ninguna programación adicional.  Encapsulamiento: Los datos y operaciones de una clase están organizados para que los clientes de la clase sólo necesiten conocer la interfaz pública de la misma. Así sabrán cómo invocarlas porque conocerán cómo pueden hacerlo, pero no cómo están implementadas. El encapsulamiento significa que toda la información de un objeto se encuentra empaquetada bajo un nombre y puede reutilizarse como una especificación o componente de un programa.  Polimorfismo: Propiedad que permite que un mismo nombre de método esté asociado a distintos comportamientos, pudiendo ser de dos tipos: estático o dinámico. El polimorfismo estático consiste en que operaciones con el mismo nombre pueden realizarse sobre distintos tipos de parámetros, lo que se consigue mediante plantillas, elementos genéricos o sobrecarga de operadores. El polimorfismo dinámico está íntimamente relacionado con la herencia y acarrea la 3

asignación tardía o dinámica de memoria, propiedad mediante la cual se determina el método concreto a invocar – de entre un abanico de posibles métodos con la misma interfaz dentro de la jerarquía de clases – en tiempo de ejecución. (Sanchez , Sicilia, & Rodríguez, 2012). En un principio, al ir apareciendo los lenguajes de programación orientados a objetos, surgieron una serie de métodos de diseño orientado a objetos con distintas herramientas y notaciones. Pasado el tiempo, se han ido aglutinando estas herramientas y se han consolidado en lo que se conoce como UML (Unified Modeling Languaje – Lenguaje unificado de modelado) y en el Proceso Unificado. Este lenguaje sirve para visualizar, especificar, construir y documentar sistemas en general, pero está especialmente adaptado para sistemas de software construidos mediante el paradigma de la orientación a objetos. UML es independiente del proceso que se siga, pero se liga generalmente a procesos iterativos o incrementales como el Proceso Unificado.

4

UNIDAD 5 GESTION DE PROYECTOS DE SISTEMAS DE INFORMACION

5.1 Importancia de la gestión de proyectos de sistemas de información. Antes que nada debemos de definir que es administración y que es un proyecto: "Administración es el proceso de planear, organizar, dirigir y controlar el uso de recursos para lograr objetivos". Otra definición es la de koontz "La administración es el proceso de diseñar y mantener un ambiente en el cual las personas, trabajando juntas en grupos, alcanzan con eficiencia metas seleccionadas". Entonces podemos definir a la administración como el proceso de organizar, planear, dirigir y controlar; actividades y recursos con el fin de lograr un objetivo. Ahora definimos que es un proyecto "un proyecto es una organización de gente dedicada a un propósito u objetivo específico". Habiendo definido los conceptos de administración y de proyecto podemos decir que "La administración de proyectos es la aplicación del enfoque de sistemas para la administración de tareas tecnológicas complejas o de proyectos cuyos objetivos se establecen explícitamente en términos de tiempo, costos y parámetros de realización". Después de haber visto la definición de administración de proyectos podemos dar nuestro punto de vista acerca de que es la administración de proyectos; La administración de proyectos es la forma de planear, organizar, dirigir y controlar una serie de actividades realizadas por un grupo de personas que tienen un objetivo específico; el cual puede ser (crear, diseñar, elaborar, mejorar, analizar, etc.) un problema o cosa.

¿Qué es la administración de proyectos? Los proyectos tienen un ciclo de vida que implica un crecimiento gradual conforme se establecen las necesidades y se desarrollan las características del trabajo, una completa implantación a medida de que se realice el trabajo y conclusión de las fases conforme se complete el trabajo el proyecto llega a su final. Este ciclo es invariable, aunque (como sucede con las personas no se conoce o no se respeta por completo). "La administración de proyectos enseña que para alcanzar el objetivo deseado del proyecto se debe seguir un proceso especifico. No existe ninguna excepción a esta regla. El proceso se conoce como ciclo de vida". La mayoría de las empresas no respetan el ciclo de vida del proyecto por diferentes razones estas pueden ser falta de conocimiento del ciclo de vida, brincarse algunas etapas por

5

creerlas no importantes y hacer modificaciones al ciclo de vida de acuerdo al tipo y tamaño de la empresa. 1. En esta etapa se conocen los recursos financieros con los que se cuentan para el proyecto, se establecen presupuestos totales y se hace una organización preliminar. Se aplican estudios de factibilidad para saber si se puede resolver el problema o no; al término de esta etapa hay una decisión formal de continuar o no continuar con el proyecto. 2. Factibilidad. Es muy parecida a la etapa de factibilidad en la que se refiere a la organización y a la administración pero en esta se detalla mejor el presupuesto, la calendarización y el financiamiento que le otorgan al proyecto. 2. Diseño. Se realiza en todas las actividades concernientes a la creación del proyecto. Hay que decir que esta etapa se caracteriza por ser totalmente diferente a las demás ya que las anteriores la fase de factibilidad y la fase de diseño son orgánicas y de carácter evolutivo, mientras que la fase de producción es de alto grado mecanicista. 3. Producción. 4. Culminación y puesta en marcha.

5.2 Las fases de administración de un sistema de información. Recolección y análisis de datos: Hacer una descripción de los diferentes métodos e instrumentos de recolección de datos, identificando los elementos y características que se debe tener en cuenta en el diseño. Recolectar información    

Procesamiento de la información Análisis de datos Técnicas Los instrumentos para recolectar datos

Desarrollo de soluciones alternativas: Desarrollar las diferentes alternativas de solución de un problema para llevar a cabo un proyecto con éxito. Diseño del sistema: Fase de adquisición de actividades y técnicas del diseño de sistemas (fase de diseño e integración) Implementación del sistema.

6

5.2.1 Planear, organizar, integrar, dirigir y controlar. El proceso administrativo de toda empresa implica diversas actividades:    

Planificación Organización Dirección Control

La planificación o planeación es un proceso racional de toma decisiones por anticipado, que incluye la selección de los cursos de acción que debe seguir una empresa y cada unidad de la misma para conseguir unos determinados objetivos del modo más eficiente. La organización comprende el establecimiento de una estructura intencional, formalizada, permanentemente y roles para las personas que integran la empresa. La dirección es la función administrativa que trata de influir en las personas de la organización, para que, de forma voluntaria y con interés, contribuyan al logro de los objetivos de la empresa y de su unidad funcional. El Control es la actividad de seguimiento encaminada a corregir las desviaciones que puedan darse al respecto de los objetivos. El control se ejerce con referencia a los planes, mediante la comparación regular y sistemática de las previsiones habidas respecto de los objetivos.

5.3 El equipo de desarrollo de software. En este artículo describiré mi forma de ver la gestión de equipos de desarrollo de software en particular. Como se debe articular un grupo de desarrollo de Software para: Tener una forma de trabajo sencilla de entender y aceptar por el equipo  Trabajar de forma eficiente: capacidad de medir el tiempo de desarrollo y tomar decisiones para mejorarlo  Cubrir varios proyectos a la vez por un mismo equipo  Equipo distribuido geográficamente 

Metodología es necesario para esquematizar una serie de etapas que concluyen el producto final. La metodología nos aportará: Labores a desarrollar en cada etapa  Secuencia en la que se cumplen esas etapas 

7

Roles en el equipo (reparto de las labores de la metodología):     



  

Master: Vigilar el cumplimiento de la metodología, enseñarla. Define prioridades, roles, proyectos. Orquesta. Facilita cosas. Comercial: Primer contacto con el cliente. Vigila que todo el proceso comercial sea rentable. Arquitecto: Decidir tecnologías, enseñarlas. Construir el Sistema de soporte Arqo Calidad (Tester): Decidir tecnologías, enseñarlas. Construir el Sistema de soporte Calidad (CI, TDD, SVN) Analista (Product Manager): Determinar requisitos del usuario, convertirlo a esquemas entendibles por el desarrollador, priorizar dentro tareas (maximizando el ROI) y hacer demo al usuario. Maximizar la usabilidad. Gestor de Proyectos: planificación de iteraciones, versiones de aplicaciones, reparto de tareas entre miembros del equipo. Maximizar regularidad del equipo y reparto coherente de tareas. Programador de BD: desarrollo de BBDD para mínima duplicidad. Programador de Negocio: desarrolla las librerías de negocio para máxima reutilización (forma de APIs y WS) Programador front-end: desarrollo de las pantallas web para máxima usabilidad

Las parejas de roles Master-Comercial, Arquitecto-Calidad, Analista-Gestor se pueden definir como tres roles distintos. Depende del número de personas en el equipo y de cómo se quieran hacer las cosas. Roles de programador habrá tantos como tecnologías implique la arquitectura, siendo los que se definen atrás los básicos (Flash, diseño web,…). También se pueden combinar en una sola persona. Herramientas son las que van a ayudar al equipo trabajar conforme a la metodología.  Sistema: red (ADSL), Sistema Operativo (Ubuntu: OpenOffice, navegador…)  Comunicaciones: Correo electrónico, Video/Chat (Skype)  Gestión de Proyectos: redmine+redminebacklogs. Control de versiones (Subversion).  Arquitectura: IDE (Herramientas de desarrollo, Eclipse, DBDesigner,…), Dependencias de Tecnologías (Hibernate, ADF, ZK,…)  Calidad: plugins de cobertura, servidor Integración Continua, Análisis de código, herramientas para pruebas, ¿Quién es qué? Roles en el equipo de desarrollo de software 8

El equipo de desarrollo de software, en las pequeñas y medianas empresas. Los Desarrolladores      

Arquitecto de Software Gerente de Proyecto Líder de Proyecto Desarrollador Sr. Desarrollador Jr. Programador

Los Diseñadores Arquitecto de Experiencia de Usuario  Diseñador de Experiencia de Usuario  Diseñador de Interacción 

En muchas organizaciones, estos puestos pueden o no estar presentes. Lo más importante es tener un equipo organizado, aplicando metodologías de desarrollo modernas.

5.3.1 Equipos agiles El desarrollo ágil de software es un marco de trabajo conceptual de la ingeniería de software que promueve iteraciones en el desarrollo a lo largo de todo el ciclo de vida del proyecto. Existen muchos métodos de desarrollo ágil; la mayoría minimiza riesgos desarrollando software en cortos lapsos de tiempo. El software desarrollado en una unidad de tiempo es llamado una iteración, la cual debe durar de una a cuatro semanas. Cada iteración del ciclo de vida incluye: planificación, análisis de requerimientos, diseño, codificación, revisión y documentación. Una iteración no debe agregar demasiada funcionalidad para justificar el lanzamiento del producto al mercado, pero la meta es tener un demo (sin errores) al final de cada iteración. Al final de cada iteración el equipo vuelve a evaluar las prioridades del proyecto. Los métodos ágiles enfatizan las comunicaciones cara a cara en vez de la documentación. La mayoría de los equipos ágiles están localizados en una simple oficina abierta, a veces llamadas "plataformas de lanzamiento" (bullpen en inglés). La oficina debe incluir revisores, escritores de documentación y ayuda, diseñadores de iteración y directores de proyecto. Los métodos ágiles también enfatizan que el software funcional es la primera medida del progreso. Combinado con la preferencia por las comunicaciones cara a cara, 9

generalmente los métodos ágiles son criticados y tratados como "indisciplinados" por la falta de documentación técnica. En los proyectos con Desarrollo Ágil se busca que todos los esfuerzos se empleen en la creación del mejor software que satisfaga las necesidades del cliente. Esto significa que todos los que forman parte del equipo de trabajo se concentran únicamente en tareas y procesos que agregan valor al cliente del producto que se está creando, mejorando o implementando. Adicionalmente, los usuarios o clientes reciben periódicamente prototipos o versiones en funcionamiento del producto a medida que se va construyendo, lo cual les permite evaluar el trabajo realizado, advertir sobre problemas que se detecten, y sugerir mejoras o funcionalidad valiosa que no se había considerado originalmente (ya sea por olvido, o porque la nueva funcionalidad se inspira en la experiencia de evaluar el producto mientras se está construyendo) La distinción entre las tareas relevantes y los que no agregan valor se consigue a través de la creación de contextos con alto nivel de empowerment y feedback. El empowerment consiste en otorgar autonomía para tomar decisiones al equipo de desarrollo, y genera un clima de sinergia grupal que permite al grupo avanzar a pesar de las complicaciones y dificultades que ocurren habitualmente en los proyectos –de allí que uno de los métodos de trabajo más populares se haya bautizado con el nombre “scrum”, ya que la imagen de los jugadores de rugby empleando su energía en avanzar todos juntos es muy aplicable a los equipos de trabajo que utilizan esta metodología. El feedback constante y presente en varios niveles permite el desarrollo incremental y el crecimiento adaptativo de la programación, así también como una mejora constante en la forma de trabajo de los equipos, lo que permite detectar problemas y resolverlos antes de que desaten crisis que afecten la calidad o el tiempo y costo del desarrollo. Los principales tipos de feedback ocurren a nivel producto, procesos y código. Periódicamente el cliente evalúa el estado real del software que se está creando, lo que asegura que lo entregado al final del proyecto coincidirá con lo esperado. Esto se consigue a través de un desarrollo incremental: el producto puede probarse desde las primeras semanas y meses del proyecto al menos en cuanto a su funcionalidad más básica, que luego va creciendo y mejorando –es por esto que se dice que desde el comienzo el producto ya tiene dentro su ADN, del mismo modo que ocurre con la gestación de los seres vivos en la Naturaleza. A nivel procesos se realizan frecuentes reuniones retrospectivas donde los integrantes de los equipos comentan y discuten en profundidad tanto sus aciertos (para poder repetirlos y convertilos en hábitos), así también como el trabajo que no se realizó correctamente o no llevó al equipo a obtener los resultados esperados. Adicionalmente los desarrolladores suelen trabajar mucho en equipo y también por 10

parejas, revisando juntos el código y resolviendo problemas en lugar de tratar de cubrirlos, lo que repercute en un producto de mejor calidad, mejor documentado, y simple de mantener.

5.3.2 Gestión de conflictos de coordinación y comunicación. En toda institución, empresa de salud, ámbito de desempeño laboral o social existe un grupo de personas que interactúa entre sí, y las interacciones humanas implican comunicación, generan conflictos y requieren de una coordinación y resolución de los mismos. Por eso este tema es de suma importancia. Encontraras temas como: COMUNICACIÓN: El proceso comunicativo, Tipos y redes de comunicación, Obstáculos de la comunicación, Comunicación asertiva y Mejoramiento de la comunicación, Instrumentos de comunicación, Coordinación, Tipos de coordinación SOLUCIÓN DE CONFLICTOS: Conflicto, Causas, Tipos de conflictos, Etapas del conflicto, Ventajas/Desventajas, Consecuencias, Solución de conflictos, Enfoque estructural, del proceso y mixto, Estrategias para prevenir los conflictos.

11

Bibliografía. Análisis y diseño de sistemas – sexta edición – Kenneth E. Kendall Fundamentos de sistemas de información – Humi Guill Fuster – Isabel Guitart Hormigo. Ingeniería del software – séptima edición – Ian Sommerville.

12

Related Documents

Planeacion
April 2020 40
Planeacion
November 2019 48
Planeacion
October 2019 52
Planeacion
April 2020 28
Planeacion
April 2020 27
Planeacion
November 2019 28