Gerencia de Proyectos Proceso de Software



Documentos relacionados
Ingeniería de Software: Parte 2

El Proceso Unificado de Desarrollo de Software

Syllabus.

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:

INGENIERÍA DE SOFTWARE CICLOS DE VIDA Y METODOLOGIAS

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

Introducción a Rational Unified Process (RUP)

Ingeniería de Software

Solución de una Intranet bajo software Open Source para el Gobierno Municipal del Cantón Bolívar [IOS-GMCB] Gobierno Municipal del Cantón Bolívar

Implementación de Procesos Business Process Management BPM Services Oriented Architecture SOA

Ingeniería de Software

RUP. Rational Unified Process


INGENIERÍA DEL SOFTWARE

3. Horario laboral referencial: Lunes Viernes 8:00 a.m. a 6:00 p.m.

6 Anexos: 6.1 Definición de Rup:

BPM en la práctica Transitando del BPA al BPM con una metodología probada. Diego Karbuski - Diciembre 2012

ANÁLISIS Y DISEÑO DE SISTEMAS DEPARTAMENTO DE CIENCIAS E INGENIERÍA DE LA COMPUTACIÓN

Universidad acional Experimental Del Táchira Decanato de Docencia Departamento de Ingeniería en Informática

Curso: El Proceso de Desarrollo de Software

Resumen General del Manual de Organización y Funciones

Contenidos. Parte I - Introducción Capítulo 1 - Evolución. Capítulo 2 Condiciones de trabajo en el Desarrollo de Software

Modelo para el Aseguramiento de Calidad en el Desarrollo de Software Libre

Metodología de Ingeniería del Software para el desarrollo y mantenimiento de sistemas de información del Gobierno de Extremadura

Information Technology Infrastructure Library

Interacción Persona - Ordenador

El Proceso Unificado Rational para el Desarrollo de Software.

INFORME Nº1 PROPUESTA METODOLÓGICA Y PLAN DE TRABAJO DESARROLLO DE UN SISTEMA INTEGRADO DE GESTIÓN PARA EL GOBIERNO REGIONAL DE ATACAMA

Servicios. Nuestros servicios se basan en cuatro principales áreas:

TECNOLOGICO DE ESTUDIOS SUPERIORES DE ECATEPEC CALIDAD DE SOFTWARE Guía para Examen Segundo Parcial Grupo 6501

RUP: Disciplina de Manejo de Cambios y Configuraciones

ISO 9000 Escuela de Ingeniería de Sistemas y Computación Desarrol o de Software II Agosto Diciembre 2007

El Proceso de Desarrollo de Software. Diseño de Software Avanzado Departamento de Informática

DISEÑO DE COMPONENTES DE SOFTWARE *

SW-CMM Capability Maturity Model for Software

Metodología básica de gestión de proyectos. Octubre de 2003

2. Administración de Proyectos en el contexto de TI

Carta de constitución de la PMO para IDlink

Capitulo III. Diseño del Sistema.

Ingeniería de Software I

Los procesos de software. Un proceso de software se define como un:

FICHA DE PROYECTO PLANEACIÓN TACTICA. Permanente. de Servicios de Tecnologías de Información. Tecnologías de la información y comunicación.

COBIT 5. Niveles de Capacidad Desafío de formalización de procesos Costos y Beneficios. A/P Cristina Borrazás, CISA, CRISC, PMP

PROCESOS SOFTWARE. Según esta estrategia, todo proceso debe planificarse, implantarse y evaluarse, para luego actuar sobre él.

SIGPRE Sistema de Gestión Presupuestaria

TEMA 1.-Programación orientada a objetos (POO) Objetivo

Elementos requeridos para crearlos (ejemplo: el compilador)

Diseño, Desarrollo e Implementación de una Aplicación Web para el manejo Centralizado de la Información Corporativa en AGA Consultores

Ingeniería del Software. Diseño. Diseño en el PUD. Diseño de software. Patrones arquitectónicos. Diseño Orientado a Objetos en UML

Plan de curso Sílabo-

Proceso: AI2 Adquirir y mantener software aplicativo

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

PROCEDIMIENTO OPERATIVO DESARROLLAR SISTEMAS INFORMÁTICOS PDO-COCTI-DTIN-04

La Necesidad de Modelar. Diseño de Software Avanzado Departamento de Informática

ITIL FOUNDATION V3 2011

Anteproyecto Fin de Carrera

LANZAMIENTO PROYECTO : INTEGRA Montaje del ERP SIESA Enterprise. Barranquilla - Colombia 2012

Metodologías de Desarrollo de Sistemas de Información

ANEXO A - Plan de Proyecto EDT de la solución EDT GENERAL DEL PROYECTO1

IWG-101: Introducción a la Ingeniería. Departamento de Informática, UTFSM 1

MODELOS DE ESTRUCTURA PARA LAS DIRECCIONES DE INFORMÁTICA

SISITEMAS DE INFORMACIÓN PARA LA GERENCIA DE PROYECTOS: ESTANDARIZACIÓN DE PROCESOS Y HERRAMIENTAS

Programación orientada a

Metodología de Gestión de Proyectos

CMMI (Capability Maturity Model Integrated)

CONTENIDO TEMATICO Y DOCENTES

CMM - Capability Maturity Model. Estructura de CMM... Componentes de CMM. Estructura de CMM

3. GESTIÓN DE CONFIGURACIÓN DE SOFTWARE


SERVICIOS DE CONSULTORÍA Y SOLUCIONES TECNOLÓGICAS

Resumen obtenido de: Roger S. Pressman, Ingeniería de Software. Un enfoque práctico, quinta edición, Introducción al Diseño de Software

UNIVERSIDAD DE ORIENTE FACULTAD DE CIENCIAS ECONOMICAS

Tópicos Avanzados de Análisis y Diseño INGENIERIA DE SOFTWARE ING. MA. MARGARITA LABASTIDA ROLDÁN

Anexo 4 Documento de Arquitectura

Audire V.3 FECHA DEL BOLETÍN BOLETIN 15

CICLO DE VIDA DEL SOFTWARE

Consejo Superior Universitario Acuerdo 046 de 2009 página 2

CLASE 2: INTRODUCCIÓN A LA ING. DE SOFTWARE. MODELOS DE PROCESOS. MEJORES PRÁCTICAS. USB Ing. De Software. Prof. I. C. Martínez

CAPITULO VI PLAN DE IMPLEMENTACIÓN DEL SISTEMA DE PRESUPUESTOS DE COSTOS DE TIEMPOS ESTÁNDARES DE CONFECCIÓN DE PRENDAS DE VESTIR DE TEJIDO DE PUNTO.

ADMINISTRACIÓN DE PROYECTOS

Consultoría en Arquitectura Empresarial, SOA y de Software

Qué es Clé Manager? Clé-Manager, permite que todas las personas que intervienen en proceso de requerimientos, tengan conocimiento de, cual es:


Ciclo de vida y Requerimientos de software. Laboratorio de Programación

P.S.P. Programa Educativo. Tecnologías de la Información y Comunicación. Alumno. José Alfredo Ramírez Jaguey

MARCO DE REFERENCIA SISTEMAS DE INFORMACIÓN PARA LA GESTIÓN DE TI EN EL ESTADO COLOMBIANO

1. Introducción: Qué es la Gestión Documental-TI o Gestor Documental?

Plan de Administración del Proyecto

DESARROLLO DE SOFTWARE DEFINICIÓN GENERAL DEL PROCESO GABY LORENA GUERRERO LEYDI ROCIO ERAZO PABLO FELIPE MIRANDA WALTER ALEXIS ANTE

Transcripción:

Gerencia de Proyectos Proceso de Software Victor Manuel Toro C. VictorToro@cincosoft.com CincoSOFT Ltda. Compañía de Ingenieros Constructures de Software Tel. (+57)(1) 6230180 * Fax (+57)(1) 2566774 Carrera 15 # 80-48 (ofc. 402) Apartado Aéreo 350762 Bogotá - Colombia http://www.cincosoft.com

Conceptos Preliminares

Cuatro conceptos relacionados pero distintos: Metodología Proceso Herramienta Lenguaje Victor M. Toro - CincoSOFT Ltda. 3

Metodología Proceso Herramienta Lenguaje Aclarando algunos conceptos: Lenguaje Lenguaje (de programación, especificación,...): Sintaxis (elementos del lenguaje) + Gramática (reglas para combinar dichos elementos) + Semántica (significado de las frases del lenguaje). Ejemplos de Lenguajes: Programación: Java, C, VisualBasic, RPG, Cobol, C#,... Análisis/Diseño: Diagramas Entidad-Relación, Diagramas de Flujo de Datos DFD,... Especificación: Z, B, VDM,... Ingeniería de Software: UML Victor M. Toro - CincoSOFT Ltda. 4

Metodología Proceso Herramienta Lenguaje Aclarando algunos conceptos: Herramienta Herramienta: Editor de un(os) lenguaje(s) + Librería de elementos reutilizables + Ayudas inteligentes + Compilador ó Traductor hacia/desde otro(s) lenguaje(s) Ejemplos de Herramientas: JBuilder, JDevelopper, JEdit, Forté,... VisualStudio.NET PowerBuilder, OracleForms, Designer-2000,...... Victor M. Toro - CincoSOFT Ltda. 5

Metodología Proceso Herramienta Lenguaje Aclarando algunos conceptos: Metodología Metodología: Lenguaje + forma de plantear problemas + forma de construir poco a poco una solución + forma de verificar que una solución es correcta + conjunto de patrones (paradigmas deseables) Ejemplos de Metodologías: Programación Estructurada {Pre y Post condiciones, invariantes,...} Metodología Entidad-Relación para diseño de B. de D. Metodología Orientada a Objetos... Victor M. Toro - CincoSOFT Ltda. 6

Metodología Proceso Aclarando algunos conceptos: Proceso Herramienta de desarrollo de Software Lenguaje Proceso de desarrollo de Software: Una secuencia de actividades + una asignación de responsabilidades + un conjunto de Entregables (documentos, código, pantallas, manuales,...) estandarizados + dinámica de interacciónentre los miembros del grupo + un conjunto de herramientas y una forma de usarlas +... que usa un grupo para el desarrollo de un sistema de software Victor M. Toro - CincoSOFT Ltda. 7

Madurez de un Proceso de Desarrollo Un Proceso Desarrollo de Software es MADURO en la medida que: Está escrito Es usado por TODOS los miembros del grupo Cubre todas las etapas del desarrollo Es efectivo Es eficiente Es repetible, medible, optimizable,... Ver Software Process Capability Maturity Model CMM [http://www.sei.cmu.edu] Victor M. Toro - CincoSOFT Ltda. 8

Qué es una compañía de software certificada? Explicita su proceso de desarrollo de software Documenta su proceso de desarrollo (por escrito) Estandariza sus entregables (i.e., crea plantillas) Sintoniza sus herramientas para apoyar el proceso... Incorpora en su proceso de software las recomendaciones de algún Estándar de Calidad (CMM, ISO) Contrata Inspectores autorizados para que revisen, y eventualmente certifiquen, que su proceso de desarrollo cumple con el Estándar de Calidad. Victor M. Toro - CincoSOFT Ltda. 9

Qué es implantar un estándar de Calidad de Software? Planeación Estándar de --------- Calidad de Software --------- Seguimiento de Proyectos ----------- -------- Capacitación ------------- ----------- Control de Versiones --------- --------- Revisiones de código por pares ---------- -------- Administración de Requerimientos ----- ---- Nuestro Proceso de Software Victor M. Toro - CincoSOFT Ltda. 10

Evolución de los Procesos de Desarrollo de Software

Cómo nace un Proceso de Desarrollo de Software? Nace de la visión/enfoque que se tenga sobre: Cómo se debe producir el software Cómo se debe entregar el software Victor M. Toro - CincoSOFT Ltda. 12

Desarrollo por etapas sequenciales: Modelo de Cascada Planeación Estratégica Corporativa Planeación Estratégica de Sistemas de Información Análisis de Requerimientos Diseño Global Diseño Detallado Programación Pruebas Operación Victor M. Toro - CincoSOFT Ltda. 13

Desarrollo iterativo: Modelo en Espiral (B.W. Boehm) Analysis Design Requirement Specification Implementation and Unit Test Test Version 3 Version 2 Integration Version 1 A Spiral Model of Software Development and Enhancement Tutorial: Software Engineering Project Management: Computer Society of the IEEE, 1988 Victor M. Toro - CincoSOFT Ltda. 14

Desarrollo Incremental e Iterativo: RUP Rational Unified Process Victor M. Toro - CincoSOFT Ltda. 15

RUP Rational Unified Process

Fases del proceso RUP Rational Unified Process Propuesta Contrato 1 Contracto 2 Construction Inception Elaboration 1 2 3 4... Transition Inventario de Casos de Uso Refine Use Cases Refine Data Model Programming Testing Adjustments Victor M. Toro - CincoSOFT Ltda. 17

Dinámica del Rational Unified Process RUP Phases Process Workflows Inception Elaboration Construction Transition Business Modeling Requirements Analysis & Design Implementation Supporting Workflows Test Deployment Configuration Mgmt Management Environment Preliminary Iteration(s) Iterations Victor M. Toro - CincoSOFT Ltda. 18 Iter. #1 Iter. #2 Iter. #n Iter. #n+1 Iter. #n+2 Iter. #n Iter. #n+1

Etapas del RUP: Inicio (Inception) Empezar a conocer el problema. Identificar impacto y beneficios del nuevo sistema. Identificar relación con otros sistemas. Plantear arquitectura. Definir el alcance del nuevo sistema. Primera estimación de Costo y Tiempo. Obtener/Elaborar Propuestas Obtener la decisión y compromiso de arrancar. Promover un dueño ( sponsor ) de proyecto. Victor M. Toro - CincoSOFT Ltda. 19

Etapas del RUP: Elaboración (1) Entender / Formalizar la Lógica del Negocio Obtener requerimientos detallados Elaborar el Inventario de todos los Casos de Uso Agrupar los Casos de Uso en módulos, de acuerdo a: Áreas del Negocio Interdependencia funcional Establecer un orden para implementar los módulos: Dependencia entre Módulos Prioridades (organizacionales, políticas, de negocio,...) Requerimientos tecnológicos Victor M. Toro - CincoSOFT Ltda. 20

Etapas del RUP: Elaboración(2) Identificar (y enfrentar!) los riesgos del proyecto: Lógica del Negocio Requerimientos Tecnológicos Recursos humanos Políticos Definir un Plan Detallado de construcción. Victor M. Toro - CincoSOFT Ltda. 21

Etapas del RUP: Construcción (1) INCREMENTAL e ITERATIVO. Tomar el siguiente módulo de Casos de Uso: Documentar en detalle sus Casos de Uso (empezando por los pantallazos y la secuencia de navegación). Base de Datos: Refinar / Diseñar las nuevas tablas de la BD Efectuar las modificaciones a las tablas ya existentes (en forma incremental, acumulando los scripts de modificación!!) Obtener la aprobación de los Casos de Uso del Módulo. Victor M. Toro - CincoSOFT Ltda. 22

Etapas del RUP: Construcción (2) Programar los Casos de Uso del subsistema Mantener sincronizado el Software y la Documentación de los Casos de Uso Probar los Casos de Uso implementados. Probar interacción con Casos de Uso precedentes. Escribir mini-manual de usuario del módulo Entregar el módulo para pruebas de los usuarios Victor M. Toro - CincoSOFT Ltda. 23

Etapas del RUP: Transición Homologar todo el software Homologar toda la documentacón de Casos de Uso Pruebas integrales del nuevo sistema (beta testing) Sintonización fina y optimización de plataforma Unificar documentación de instalación. Unificar los manuales de usuario final. Capacitación de usuarios finales. Victor M. Toro - CincoSOFT Ltda. 24

Nuestra experiencia en CincoSOFT: RUP Rational Unified Process aligerado + Extreme Programming + apoyo en herramientas libres

Nuestra experiencia en CincoSOFT: RUP Rational Unified Process aligerado Doc. Arquitectura e Integración Construction Inception Elaboration 1 2 3 4... Transition Especificación Formal (Z) Inventario de Casos de Uso Refine Use Cases Refine Data Model Programming Testing Adjustments Extreme Programming Victor M. Toro - CincoSOFT Ltda. 26

Nuestra experiencia en CincoSOFT: RUP Rational Unified Process aligerado + Extreme Programming Construction Inception Elaboration 1 2 3 4... Transition Refine Use Cases User Interface & Navigation Refine Data Model Aprobación del usuario Programming Unit Testing Integration Testing Functional Testing Extreme Programming Stress Testing Victor M. Toro - CincoSOFT Ltda. 27

Latex Nuestra experiencia en CincoSOFT: RUP Rational Unified Process aligerado + Extreme Programming + apoyo en herramientas libres Construction Inception Elaboration 1 2 3 4... Transition Poseidon (Editor UML) Oracle Designer Refine Use Cases User Interface & Navigation Refine Data Model Aprobación del usuario Extreme Programming Programming Unit Testing Integration Testing Functional Testing Stress Testing JEdit Jikes JUnit Cactus HttpUnit JMeter ant (Manejo del código) CVS, WinCVS, Winmerge (Control de Versiones) Victor M. Toro - CincoSOFT Ltda. 28

Conclusiones

Conclusiones (1) El gerente de proyectos de software debe: Conocer en detalle, (ó mejor aún) Participar en la adaptación (ó mejor aún) Participar en la creación del Proceso de Software que va a orientar el desarrollo Velar por el cumplimiento del proceso Estar pendiente de cualquier desvio del cronograma (y presupuesto) detallado Victor M. Toro - CincoSOFT Ltda. 30

Conclusiones (2) De lo contrario, el papel del gerente será: Impotente Pasivo Su acción será fundamentalmente represiva: (vociferar, amenazar, multar, echar,...) Hará fuerza durante todo el proyecto Victor M. Toro - CincoSOFT Ltda. 31

Conclusiones (3) Los procesos de desarrollo de software modernos deben estar basados en RUP RUP es un marco general, no un estándar: Cada compañía debe ajustarlo a sus necesidades. Evitar exageraciones!!!!! Extreme Programming está teniendo una enorme acogida. Hay muchas herramientas libres de alta calidad, que ayudan muchísimo en el proceso Victor M. Toro - CincoSOFT Ltda. 32

Conclusiones (4) Los procesos de desarrollo de software modernos deben estar basados en RUP RUP es un marco general, no un estándar: Cada compañía debe ajustarlo a sus necesidades. Evitar exageraciones!!!!! Extreme Programming está teniendo una enorme acogida. Hay muchas herramientas libres de alta calidad, que ayudan enormemente en el proceso de desarrollo Victor M. Toro - CincoSOFT Ltda. 33

Conclusiones (5) Los proyectos de software con las tecnlogías actuales (Java J2EE ó Microsoft.NET) son de alto riesgo Victor M. Toro - CincoSOFT Ltda. 34

Conclusión Final Victor M. Toro - CincoSOFT Ltda. 35