26
Introducción Ingeniería del software Juan Pablo Núñez

Introducción Ingeniería del software Juan Pablo Núñez

Embed Size (px)

Citation preview

Page 1: Introducción Ingeniería del software Juan Pablo Núñez

IntroducciónIngeniería del software

Juan Pablo Núñez

Page 2: Introducción Ingeniería del software Juan Pablo Núñez

Agenda

Introducción

Presentación: qué es la ingeniería del software.

El contexto y la problemática.

La ingeniería de sistemas, sistemas, propiedades.

La gestión de proyectos de software.

El proceso de desarrollo de software.

Page 3: Introducción Ingeniería del software Juan Pablo Núñez

Introducir el concepto dirección de proyectos.

Presentar las principales actividades de gerenciamiento de proyectos.

Presentar proceso y técnicas de gestión de cronograma.

Presentar proceso y técnicas de gestión de riesgos.

Objetivos

Page 4: Introducción Ingeniería del software Juan Pablo Núñez

¿Qué es un proyecto? Esfuerzo temporal para crear un producto, servicio o resultado único.

Project Management InstituteGuía de fundamentos de la dirección de proyectos [PMBOK] tercera edición, 2004.

¿Qué es el gerenciamiento (dirección) de proyectos? La aplicación de conocimientos, habilidades, herramientas y técnicas a las

actividades de un proyecto para satisfacer los requerimientos.

¿Qué es el gerente de proyectos? El responsable del cumplimiento de los objetivos del proyecto.

¿Qué hace el gerente del proyectos? Identificar requerimientos Establecer objetivos claros y posibles de realizar Equilibrar restricciones de calidad, tiempo, costo [triple restricción] Adaptar las especificaciones, los planes y el enfoque a las inquietudes y

expectativas de los diferentes interesados.

Proyectos

Page 5: Introducción Ingeniería del software Juan Pablo Núñez

Los interesados en el proyecto En el ámbito de un proyecto

existen distintos interesados respecto al mismo [stakeholders].

Estos participan en forma activa en el proyecto o tienen intereses que pueden ser afectados como consecuencia de la ejecución o conclusión del proyecto.

El equipo de dirección debe identificar todos los interesados, determinar sus requerimientos y expectativas así como gestionar su influencia en el proyecto.

Interesados en el proyecto

Equipo del proyecto

Equipo de dirección del proyecto

Sponsordel proyecto

Gerente del proyecto

Page 6: Introducción Ingeniería del software Juan Pablo Núñez

Áreas de experiencia requeridas Áreas de experiencia requeridas en el

equipo de dirección.

Habilidades genéricas de dirección: gestión financiera logística contabilidad gestión de compras planificación estratégica planificación

operativa comportamiento organizacional

Comprensión del entorno: entorno cultural y social Entorno político y organizacional

Habilidades interpersonales: comunicación efectiva influencia en la organización liderazgo motivación negociación y resolución de conflictos resolución de problemas

Page 7: Introducción Ingeniería del software Juan Pablo Núñez

La triple restricción Relación de equilibrio entre factores

claves: recursos [costos] tiempo [cronograma] alcance [funcionalidad]

En caso que uno de estos factores cambie por lo menos otro de los factores se ve afectado.

REC

UR

SOS TIEM

PO

ALCANCE

CALIDAD

Page 8: Introducción Ingeniería del software Juan Pablo Núñez

Los procesos de dirección de proyectos

Planificar Hacer

RevisarActuar

Demming

Procesos de iniciación

Procesos de cierre

Planificación

Ejecución

Seguimientoy control

Page 9: Introducción Ingeniería del software Juan Pablo Núñez

Los procesos de dirección de proyectosSponsor del

proyectoFactores

ambientalesActivos de los

procesos

Procesos de planificación

Procesos de ejecución

Procesos de inicio

Enu

nci

ad

o d

e t

rab

ajo

Con

tra

to

Cultura de la organizaciónRecursos humanos

Políticas, procedimientos, normasInformación histórica, lecciones aprendidas

Seguimiento y control

Procesos decierre

Acta de constitución del proyectoEnunciado preliminar de alcance

Plan de gestión del proyecto Productos entregablesCambios solicitadosSolicitudes de cambio implementadasAcciones preventivas implementadasAcciones correctivas implementadasInformación sobre el rendimiento

Solicitudes de cambio aprobadasSolicitudes de cambio rechazadasAcciones correctivas aprobadasAcciones preventivas aprobadasPlan de gestión de proyecto [actualizado]Enunciado de alcance [actualizado]Informes de avanceProyecciones

CLIENTE

Pro

du

cto

Ser

vici

oR

esu

ltad

o fin

al

Activos de la organización [actualizaciones]

Page 10: Introducción Ingeniería del software Juan Pablo Núñez

Los principales documentos Acta de constitución del proyecto

Enunciado del alcance del proyecto objetivos del proyecto entregables del proyecto requerimientos respecto al proyecto requerimientos respecto al producto criterios de aceptación respecto al producto restricciones, supuestos hitos claves

Plan de gestión del proyecto Establece como se organiza el proyecto para el cumplimiento de los objetivos plan de gestión de recursos humanos, organización inicial del equipo, reclutamiento, capacitación plan de gestión de costos, línea base del presupuesto plan de gestión de cronograma, estructura de desglose de trabajo (WBS) y línea base del cronograma plan de gestión de calidad, plan de mejora de procesos, plan de validación plan de gestión de riesgos, registro inicial de riesgos, mecanismos de reducción propuestos mecanismos acordados para el control de cambios mecanismos acordados para el control de configuración

Page 11: Introducción Ingeniería del software Juan Pablo Núñez

Las áreas de conocimiento

Page 12: Introducción Ingeniería del software Juan Pablo Núñez

La gestión del tiempo Aquellos procesos necesarios para asegurar la

conclusión del proyecto a tiempo:1. identificar las actividades, atributos, hitos2. identificar dependencias y definir la secuencia de

actividades3. estimar los recursos necesarios para cada una de

las actividades4. estimar la duración de las actividades 5. desarrollar el cronograma6. control del cronograma [determinar estado actual,

impactar cambios]

Page 13: Introducción Ingeniería del software Juan Pablo Núñez

La gestión del tiempo Identificar actividades e hitos.

WBS [work breakdown structure]: descomposición jerárquica del trabajo que debe ser ejecutado para cumplir con los objetivos del proyecto y los entregables requeridos.

Actividad: es la unidad básica para estimar, planificar, monitorear y controlar el avance del trabajo en el proyecto.

Hitos: son puntos de control del proyecto que por lo general se materializan en entregables concretos

Page 14: Introducción Ingeniería del software Juan Pablo Núñez

La gestión del tiempo identificar las dependencias y definir la

secuencia de actividades

Dependencias: Fin a comienzo Fin a fin Comienzo a comienzo Comienzo a fin

Adelantos [leads]: representa situaciones en las que una actividad sucesora puede ser adelantada [testeo y correcciones].

Retrasos [lags]: representa situaciones en las que una actividad sucesora debe ser demorada.

Diagrama de precedencia: grafo dirigido nodos representan actividades flechas representan dependencias

inicio fin

C

DA

B

Page 15: Introducción Ingeniería del software Juan Pablo Núñez

La gestión del tiempo identificar las dependencias y definir la

secuencia de actividades

Dependencias: Fin a comienzo Fin a fin Comienzo a comienzo Comienzo a fin

Adelantos [leads]: representa situaciones en las que una actividad sucesora puede ser adelantada [testeo y correcciones].

Retrasos [lags]: representa situaciones en las que una actividad sucesora debe ser demorada.

Diagrama de precedencia: grafo dirigido nodos representan actividades flechas representan dependencias

inicio fin

C

DA

B

Page 16: Introducción Ingeniería del software Juan Pablo Núñez

La gestión del tiempo Desarrollar el cronograma

Método del camino crítico: técnica de análisis calcula fechas tempranas de inicio y fin para cada tarea calcula fechas tardías de inicio y fin para cada tarea no contempla las restricciones de recursos

Camino crítico: la secuencia de actividades que determina el tiempo necesario para ejecutar el proyecto.

Holgura: tiempo disponible para la ejecución de una secuencia de actividades sin afectar el proyecto.

Nivelación de recursos: técnica de análisis del cronograma que permite adaptarlo a cantidad limitada de recursos, la disponibilidad condicionada a ciertos

períodos, o mantener niveles constantes.

Page 17: Introducción Ingeniería del software Juan Pablo Núñez

La gestión del tiempo

Page 18: Introducción Ingeniería del software Juan Pablo Núñez

0Early Finish

Late Start SlackLate

Finish

Early Start

INICIO

8Early Finish

Late Start SlackLate

Finish

Early Start

A

3Early Finish

Late Start SlackLate

Finish

Early Start

B

3Early Finish

Late Start SlackLate

Finish

Early Start

C

5Early Finish

Late Start SlackLate

Finish

Early Start

D

1Early Finish

Late Start SlackLate

Finish

Early Start

E

0Early Finish

Late Start SlackLate

Finish

Early Start

FIN

DurationEarly Finish

Late Start SlackLate

Finish

Early Start

Task Name

La gestión del tiempo

Page 19: Introducción Ingeniería del software Juan Pablo Núñez

La gestión del tiempo

0 0

Late Start SlackLate

Finish

0

INICIO

8 8

Late Start SlackLate

Finish

0

A

3 3

Late Start SlackLate

Finish

0

B

3 11

Late Start SlackLate

Finish

8

C

5 16

Late Start SlackLate

Finish

11

D

1 4

Late Start SlackLate

Finish

3

E

0 16

Late Start SlackLate

Finish

16

FIN

DurationEarly Finish

Late Start SlackLate

Finish

Early Start

Task Name

Page 20: Introducción Ingeniería del software Juan Pablo Núñez

La gestión del tiempo

0 0

0 Slack 0

0

0

8 8

0 Slack 8

0

A

3 3

8 Slack 11

0

B

3 11

8 Slack 11

8

C

5 16

11 Slack 16

11

D

1 4

15 Slack 16

3

E

0 16

16 Slack 16

16

FIN

DurationEarly Finish

Late Start SlackLate

Finish

Early Start

Task Name

Page 21: Introducción Ingeniería del software Juan Pablo Núñez

La gestión del tiempo

0 0

0 0 0

0

INICIO

8 8

0 0 8

0

A

3 3

8 8 11

0

B

3 11

8 0 11

8

C

5 16

11 0 16

11

D

1 4

15 12 16

3

E

0 16

16 0 16

16

FIN

DurationEarly Finish

Late Start SlackLate

Finish

Early Start

Task Name

Page 22: Introducción Ingeniería del software Juan Pablo Núñez

La gestión de riesgos El riesgo es un evento o condición que si se produce tiene un efecto [positivo o

negativo] en los objetivos o factores del proyecto.

Es posible clasificar los riesgos: Riesgos del proyecto [ej.: rotación de personal] Riesgos del producto [ej.: componentes de terceros] Riesgos del negocio [ej.: competencia]

Ejemplos: Rotación de personal Cambio de requerimientos Malas estimaciones Cambios en la tecnología Cambio de prioridades organizacionales No disponibilidad de recursos previstos [hardware, expertos] Retrasos en las especificaciones de componentes

Page 23: Introducción Ingeniería del software Juan Pablo Núñez

La gestión de riesgos El proceso de gestión de riesgos:1. Identificación de riesgos2. Análisis de riesgos3. Planificación de respuestas4. Monitoreo y control de riesgos

Identificación de riesgos Determinar listado de riesgos potenciales. Identificar indicadores que permitan reconocer cuando el riesgo fue activado. Juicio Experto. Tormenta de ideas. Tomando listas base:

Riesgos de tecnología Riesgos de personal Riesgos organizacionales Riesgos de herramientas Riesgos de requerimientos Riesgos de estimación

Page 24: Introducción Ingeniería del software Juan Pablo Núñez

La gestión de riesgos El proceso de análisis de riesgos consiste en priorizar los riesgos

identificados en función de su probabilidad e impacto en las restricciones y objetivos del proyecto.

Riesgo Probabilidad Impacto

Es imposible reclutar personal con las habilidades requeridas por el proyecto Alta Muy alto

Los componentes de software que deben ser reutilizados contienen defectos que limitan su funcionalidad Media Alto

Los cambios de requerimientos implican cambiar el dise;o Media Alto

Problemas financieros de la organización obligan a reducir el presupuesto del proyecto Bajo Muy alto

Page 25: Introducción Ingeniería del software Juan Pablo Núñez

La gestión de riesgos El proceso de planificar respuestas a riesgos consiste en

establecer las estrategias para la gestión de riesgos.

Estrategias: prevención: implica modificar el plan de gestión o eliminar la

amenaza para que el riesgo se reduzca significativamente mitigación: reducir la probabilidad o el impacto asociado a un riesgo

específico contingencia: establecer con anterioridad plan alternativo de

respuesta en caso que un riesgo determinado se active trasnsferencia: trasladar el riesgo a un tercero [seguros]

Page 26: Introducción Ingeniería del software Juan Pablo Núñez

La gestión de proyectos es esencial para que proyectos de ingeniería de software se logren en tiempo y presupuesto.

El gerente del proyecto es responsable del cumplimiento de los objetivos planteados.

El propósito de la gestión es lograr balancear la triple restricción: alcance, tiempo y recursos.

La gestión de proyectos involucra fundamentalmente la fijación de planes, seguimiento y monitoreo de los mismos.

El gerente de proyecto dedica la mayoría de su tiempo a la comunicación y debe desarrollar intensamente sus capacidades interpersonales.

La gestión de proyectos involucra manejar riesgos que puedan afectar el cumplimiento de los objetivos.

Los procesos de gestión tales como la planificación y manejo de riesgos son procesos iterativos que deben darse a lo largo de todo el proyecto.

Puntos claves