47
GESTION DE GESTION DE PROYECTOS DE TI PROYECTOS DE TI

Cap1 gestion

Embed Size (px)

Citation preview

Page 3: Cap1 gestion

AgendaAgenda

• La Ingeniería de Software.

• Modelado de Sistemas.

Page 5: Cap1 gestion

1.- La Ingeniería de Software

El considerar que un proyecto de desarrollo de software podía abordarse como cualquier otro ha llevado a una serie de problemas

El identificar dichos problemas y conocer sus causas es el único método que nos puede llevar hacia su solución.

Page 6: Cap1 gestion

1.- La Ingeniería de Software

La ingeniería del software abarca un conjunto de tres elementos clave: métodos, herramientas y procedimientos

Los métodos indican cómo construir técnicamente el software, y abarcan una amplia serie de tareas que incluyen:

La planificación y estimación de proyectos, El análisis de requisitosEl diseño de estructuras de datosProgramas y procedimientos La codificación Las pruebas El mantenimiento.

Page 7: Cap1 gestion

1.- La Ingeniería de Software

Las herramientas proporcionan un soporte automático o semiautomático para utilizar los métodos, se denominan CASE (Computer Assisted Software Engineering).

Los procedimientos definen la secuencia en que se aplican los métodos, los documentos que se requieren, los controles que permiten asegurar la calidad y las directrices de evaluación de progresos.

Page 8: Cap1 gestion

1.- La Ingeniería de Software

La elección del ciclo de vida más apropiado para un proyecto es una cuestión fundamental ya que influye decisivamente en la velocidad con la que se llevará a cabo el proyecto y la satisfacción que generará al cliente.

La evolución de la tecnología y la alta heterogeneidad que presentan los proyectos hoy en día han creado la necesidad de afrontar los proyectos con ciclos de vida personalizados para el perfil de cada proyecto.

METODOLOGIAS DE DESARROLLO DE SWMETODOLOGIAS DE DESARROLLO DE SW

Page 9: Cap1 gestion

1.- La Ingeniería de Software

Modelo de CascadaModelo EspiralPrototipadoMetodología Ágil (XP)Proceso UnificadoModelo CMM

Entre los modelos Genéricos de Desarrollo de Software tenemos:

METODOLOGIAS DE DESARROLLO DE SWMETODOLOGIAS DE DESARROLLO DE SW

Page 10: Cap1 gestion

1.- La Ingeniería de Software

Naturaleza estrictamente secuencial en la ejecución de sus fases. Modelo es adecuado cuando los requisitos están bien definidos, estables y se dominan las metodologías y herramientas a utilizar.

MODELOS CLASICO O CASCADAMODELOS CLASICO O CASCADA

Page 11: Cap1 gestion

1.- La Ingeniería de Software

Minimiza las tareas de desarrollo Minimiza la carga de planificación.La complejidad de proyectos grandes se afronta de una manera ordenada y aumenta las posibilidades de éxito.Alto control de cada actividad y sus resultados.Ayuda a trabajar mejor con equipos de desarrollo de relativamente baja cualificación.

Ventajas:

MODELOS CLASICO O CASCADAMODELOS CLASICO O CASCADA

Page 12: Cap1 gestion

1.- La Ingeniería de Software

Es muy inflexible,Retrocede en las fases para corregir errores Resultados tangibles para el cliente aparecen prácticamente al final del proyecto, algo que muchas veces no aceptan los clientes.

Desventajas:

MODELOS CLASICO O CASCADAMODELOS CLASICO O CASCADA

Page 13: Cap1 gestion

1.- La Ingeniería de Software

La “cascada” retarda la reducción del Riesgo

RIESGO

T I E M P O

Test Subs.

Test. Sistema

Cod. & Test U.

Diseño

An. Requer.

MODELOS CLASICO O CASCADAMODELOS CLASICO O CASCADA

Page 14: Cap1 gestion

1.- La Ingeniería de Software

DDESARROLLO DEL CICLO ESPIRALESARROLLO DEL CICLO ESPIRAL

En cada iteración se realizan los siguientes pasos:

Planificación: Determinar objetivos, alternativas y restricciones Análisis de riesgo: Análisis de riesgos y evaluación de alternativas Ingeniería: Desarrollo de los entregables o prototipos de la iteración Evaluación del resultado: Evaluación y validación del resultado

Ciclo de vida iterativo orientado a la eliminar progresivamente los riesgos, hasta que el nivel de riesgo sea suficientemente bajo para continuar con un ciclo menos complejo.

Page 15: Cap1 gestion

1.- La Ingeniería de Software

Desarrollo del ciclo Espiral

Page 16: Cap1 gestion

1.- La Ingeniería de Software

Ventajas:

Centra su atención en la reutilización de componentes y eliminación de errores en información descubierta en fases iniciales.Los objetivos de calidad son el primer objetivo.Integra desarrollo con mantenimiento.Provee un marco de desarrollo de hardware/software.

DDESARROLLO DEL CICLO ESPIRALESARROLLO DEL CICLO ESPIRAL

Page 17: Cap1 gestion

1.- La Ingeniería de Software

Desventajas:

El desarrollo contractual especifica el modelo del proceso y los resultados a entregar por adelantado.Requiere de experiencia en la identificación de riesgos.

DDESARROLLO DEL CICLO ESPIRALESARROLLO DEL CICLO ESPIRAL

Page 18: Cap1 gestion

1.- La Ingeniería de Software

Plantilla para una ronda del espiral

Objetivos. Restricciones. Alternativas. Riesgos. Resolución de riesgos. Resultados. Planes. Garantías (commitments).

DDESARROLLO DEL CICLO ESPIRALESARROLLO DEL CICLO ESPIRAL

Page 19: Cap1 gestion

1.- La Ingeniería de Software

DESARROLLO EVOLUTIVO ORIENTADO A PROTOPTIPOSDESARROLLO EVOLUTIVO ORIENTADO A PROTOPTIPOS

Se parte de un concepto inicial de la aplicación y es este concepto el que evoluciona.Se desarrolla un primer prototipo relativamente completo, frecuentemente a ser ya utilizado por cliente. El cliente aporta realimentación, se desarrolla la siguiente versión, y así sucesivamente hasta que se alcance una versión que le satisface.

Establishprototypeobjectives

Defineprototype

functionality

Developprototype

Evaluateprototype

Prototypingplan

Outlinedefinition

Executableprototype

Evaluationreport

Page 20: Cap1 gestion

1.- La Ingeniería de Software

Ventajas:

Se detectan los servicios que hacen falta y confusosUn sistema desarrollado esta disponible antes del sistema finalEl prototipo puede servir como la base de la especificación del sistemaEl cliente participa muy activamente en el desarrolloAporta resultados tangibles.Se añade mucha flexibilidad a la negociación del proyecto.

DESARROLLO EVOLUTIVO ORIENTADO A PROTOPTIPOSDESARROLLO EVOLUTIVO ORIENTADO A PROTOPTIPOS

Page 21: Cap1 gestion

1.- La Ingeniería de Software

Desventajas:

En grandes proyectos es casi imposible saber cuando se llegará al producto finalHay una gran tentación de no llegar al final con las iteraciones necesarias.Para un desarrollador este ciclo de vida puede ser una tentación a desarrollar de forma anárquica (dejar de lado requisitos, análisis, etc.)

DESARROLLO EVOLUTIVO ORIENTADO A PROTOPTIPOSDESARROLLO EVOLUTIVO ORIENTADO A PROTOPTIPOS

Page 22: Cap1 gestion

1.- La Ingeniería de Software

Objetivo: controlar el problema en el desarrollo del SW: alta volatilidad, especificaciones incompletas, cambios y falta de cultura del negocio que hace que se tarden en entender el sistema que deben desarrollar.

EXTREME PROGRAMINGEXTREME PROGRAMING

Una metodología ágil de desarrollo de software.

Page 23: Cap1 gestion

1.- La Ingeniería de Software

Los requerimientos continuos (user stories)Número alto de versiones con pocas funcionalidades nuevas.Alto nivel de rotación entre tareas del proyectoMáxima simplicidad en el diseño.Mantener la funcionalidad en el nivel más básico posible.Aplicar técnicas de Refactoring El cliente debe estar siempre disponible.Programar antes el código de las pruebas unitarias.Propiedad colectiva del código. Dejar las optimizaciones para el final.Todo el código debe tener sus pruebas de unidad.Uso intensivo de tests de aceptación.

EXTREME PROGRAMINGEXTREME PROGRAMING: CARACTERISTICAS: CARACTERISTICAS

Page 24: Cap1 gestion

1.- La Ingeniería de Software

PlanningDesigning

Coding Testing

EXTREME PROGRAMINGEXTREME PROGRAMING: PARTES: PARTES

Page 25: Cap1 gestion

1.- La Ingeniería de Software

Ventajas:Considera la realidad en los desarrollos con los clientes. Enfatiza en la importancia el diseño simple y de las pruebas.

Inconvenientes:La metodología no es escalable. Algunos de los principios parecen demasiado extremos y no tienen un respaldo: Por ejemplo, el principio de la programación colectiva, Refactoring.

EXTREME PROGRAMINGEXTREME PROGRAMING

Page 26: Cap1 gestion

1.- La Ingeniería de Software

DESARROLLO ORIENTADO A ENTREGABLES O HITOSDESARROLLO ORIENTADO A ENTREGABLES O HITOS

Esta metodología tiene cierta indefinición en las funcionalidades implementadas en el SW, pero fija claramente un punto final en el tiempo. En este ciclo de vida básicamente se trabaja secuencialmente en la base estable del producto que incluye llegar hasta el diseño de la arquitectura, a partir de ahí se trabaja en ciclos iterativos sobre el diseño detallado, codificación y pruebas.

Page 27: Cap1 gestion

1.- La Ingeniería de Software

VentajasEstrategia relativamente óptima ante una situación de fecha límite rígidaPermite reducir mucho el riesgo en proyectos grandes si se gestionan sus módulos de menor prioridad con esta técnica.

InconvenientesSi se implementan pocas funcionalidades de las previstas se habrá perdido mucho tiempo en la especificación y diseño de funcionalidades no implementadas al final, por tanto hay que medir bien la ambición del trabajo previo a los ciclos iterativos.

DESARROLLO ORIENTADO A ENTREGABLES O HITOSDESARROLLO ORIENTADO A ENTREGABLES O HITOS

Page 28: Cap1 gestion

1.- La Ingeniería de Software

Definición de Requisitos

Análisis

Diseño Arquitectura

Requisitos alta prioridad: Diseño detallado, codificación, depuración y pruebas

Requisitos alta/media prioridad: Diseño detallado, codificación, depuración y pruebas

Requisitos prioridad media: Diseño detallado, codificación, depuración y pruebas

Requisitos baja prioridad media: Diseño detallado, codificación, depuración y pruebas

Entrega Final

Limite en el tiempo

DESARROLLO ORIENTADO A ENTREGABLES O HITOSDESARROLLO ORIENTADO A ENTREGABLES O HITOS

Page 29: Cap1 gestion

1.- La Ingeniería de Software

MODELO CMM (Modelo de Madurez de Capacidades)MODELO CMM (Modelo de Madurez de Capacidades)

Es el producto de la experiencia colectiva de muchos exitosos proyectos de software, la cual se ha documentado en la forma de un modelo. Usado ampliamente por la comunidad del software para evaluar la madurez y seguridad de los procesos del software. Se basa en la evolución de un nivel a otro para mejorar sus capacidades.

El CMM es un modelo de tres (3) capas.

Primera capa están los Niveles de MadurezSegunda están las Áreas de Proceso ClaveTercera capa, las Prácticas Claves.

Page 30: Cap1 gestion

1.- La Ingeniería de Software

MODELO CMM MODELO CMM – Objetivos:– Objetivos:

Objetivo 1: Determinar el nivel de madurez del Proceso de Desarrollo que permita establecer un indicador de Calidad del proceso. -> 5 Niveles de Madurez

Objetivo 2: Servir de guía en el Proceso de Desarrollo permitiendo la Mejora Continua de la organización -> Control de Procesos

Page 31: Cap1 gestion

1.- La Ingeniería de Software

MODELO CMMMODELO CMM: NIVELES DE MADUREZ: NIVELES DE MADUREZ

Page 32: Cap1 gestion

1.- La Ingeniería de Software

MODELO CMMMODELO CMM: Niveles de Madurez: Niveles de Madurez

5 Niveles de Madurez18 Áreas Clave de Proceso

(KPA) en el CVS

Marco de trabajo

Actividades

Conjunto de Tareas

Tareas

Hitos, entregas

Puntos SQA

Actividades de Protección

Page 33: Cap1 gestion

1.- La Ingeniería de Software

MODELO CMMMODELO CMM : : Áreas de Proceso Clave (KPA´s - Key Process Areas) Áreas de Proceso Clave (KPA´s - Key Process Areas)

Objetivos

Compromisos sobre distintas Unid.Negocio

Capacidades organizativas y técnicas

Actividades

Métodos de supervisar la implantación

Métodos de verificar la implantación

KPA

Page 34: Cap1 gestion

1.- La Ingeniería de Software

MODELO CMMMODELO CMM : : Áreas de Proceso Clave (KPA´s - Key Process Areas) Áreas de Proceso Clave (KPA´s - Key Process Areas)

NIVEL 2: Repetible

Gestión de Requisitos Planificación del Proyecto Seguimiento y Supervisión del Proyecto

Software Gestión de Subcontratación del Software

Garantía de Calidad del Software Gestión de Configuración del Software

Page 35: Cap1 gestion

1.- La Ingeniería de Software

Nivel 3: Definido

Enfoque del proceso de la organización Definición del proceso de organización Programa de formación Gestión de integración del software Ingeniería de productos software Coordinación entre grupos Revisiones periódicas

MODELO CMMMODELO CMM : : Áreas de Proceso Clave (KPA´s - Key Process Areas) Áreas de Proceso Clave (KPA´s - Key Process Areas)

Page 36: Cap1 gestion

1.- La Ingeniería de Software

Nivel 4: Gestionado Gestión cuantitativa del proceso Gestión de calidad del software

Nivel 5: Optimización Prevención de defectos Gestión de la tecnología Gestión de cambios en el proceso

MODELO CMMMODELO CMM : : Áreas de Proceso Clave (KPA´s - Key Process Areas) Áreas de Proceso Clave (KPA´s - Key Process Areas)

Page 37: Cap1 gestion

1.- La Ingeniería de Software

EL PROCESO UNIFICADOEL PROCESO UNIFICADO

Es un producto de Rational Software Corp, Incorpora las mejores prácticas para el desarrollo de software de una

manera adaptable a un amplio rango de proyectos y entornos Propone Qué y Cuándo desarrollar.

ObjetivosSatisfacer los requerimientos del usuarioEn tiempo y presupuesto predecible.

Page 38: Cap1 gestion

1.- La Ingeniería de Software

EL PROCESO UNIFICADOEL PROCESO UNIFICADO: DIMENSIONES: DIMENSIONES

Page 39: Cap1 gestion

2.- Modelado de Sistemas

Page 40: Cap1 gestion

2.- Modelado de Sistemas

MODELADO

Para conseguir un software de calidad, hay que idear una sólida base arquitectónica que sea flexible al cambio.

Para desarrollar software rápida y eficientemente, hay que disponer, además de la gente y las herramientas necesarias, de un enfoque apropiado.

Para conseguir, un producto de calidad, es necesario seguir ciertas pautas y no abordar los problemas de manera somera, con el fin de obtener un modelo que represente bien el problema..

El modelado es la espina dorsal del desarrollo El modelado es la espina dorsal del desarrollo software de calidad.software de calidad.

Page 41: Cap1 gestion

2.- Modelado de Sistemas

MODELADO

Un modelo es una simplificación de la realidad. El modelo nos proporciona los planos de un sistema, desde los más generales, hasta los más detallados.

Ayudan a visualizar cómo es o queremos que sea un sistema.Nos permiten especificar la estructura o el comportamiento de un sistema.Nos proporcionan plantillas que nos guían en la construcción de un sistema.Documentan las decisiones que hemos adoptado.

Page 42: Cap1 gestion

2.- Modelado de Sistemas

MODELADO: Principios básicos del modelado

Hay que seleccionar el modelo adecuado para cada momento y se obtendrán diferentes beneficios y diferentes costes. Todo modelo puede ser expresado a diferentes niveles de precisión. Los mejores modelos están ligados a la realidad. Un único modelo no es suficiente.

Page 43: Cap1 gestion

2.- Modelado de Sistemas

ANALISIS Y DISEÑO ORIENTADO A OBJETOS

Es una técnica para el “modelado de sistemas”,

ModeloRelacional !!

Análisis Diseño Implementación

Diagramas de Casos de UsoDiagramas de ActividadDiagramas de SecuenciaDiagramas de ColaboraciónDiseño de Interfaces

DFDs

Diagrama de ClasesDiagrama de EstadosDiagramas de Actividad

DEs Entornos de Programación Visual

Bases de Datos (Objeto-)

Relacionales

ModeloRelacional

E-R

Page 44: Cap1 gestion

2.- Modelado de Sistemas

ANALISIS Y DISEÑO ORIENTADO A OBJETOS

Fortalezas de la Tecnología de Objetos:

Un solo lenguaje usado por los usuarios, analistas, diseñadores e implementadores.Facilidades de arquitectura y reúso de código.Reflejan mejor el mundo real.Mayor precisión describiendo datos corporativos y procesos.Descomposición basada en divisiones naturales.Fácil de entender y mantener.Estabilidad.

Page 45: Cap1 gestion

2.- Modelado de Sistemas

LA METODOLOGÍA UML, PARA EL DISEÑO OO

UML = Unified Modeling Language

Un lenguaje de propósito general para el modelado orientado a objetos cuyo objetivo es describir cualquier tipo de sistema en términos de diagramas orientados a objetos.

Page 46: Cap1 gestion

Resumen

La Ingeniería de software concierne a las teorías, métodos y herramientas para el desarrollo, administración y evolución de productos de software.Los productos de software consisten de programas y documentación. Los atributos de los productos son, mantenabilidad, dependabilidad, eficiencia y usabilidad.El proceso de software consiste en aquellas actividades involucradas en el desarrollo de software.

Page 47: Cap1 gestion

Resumen

El modelo de cascada considera cada actividad del proceso como una actividad discreta.El modelo de espiral se basa en análisis de riesgos.La visibilidad del proceso involucra la creación de documentos o resultados de las actividades.Los Ingenieros de software deben tener responsabilidades éticas, sociales y profesionales.