Está en la página 1de 35

Gerencia de Proyectos Proceso de Software

Victor Manuel Toro C.


VictorToro@cincosoft.com

CincoSOFT Ltda.
Compaa de Ingenieros Constructures de Software Tel. (+57)(1) 6230180 * Fax (+57)(1) 2566774 Carrera 15 # 80-48 (ofc. 402) Apartado Areo 350762 Bogot - Colombia http://www.cincosoft.com

Conceptos Preliminares

Cuatro conceptos relacionados pero distintos:

Metodologa

Proceso Herramienta

Lenguaje
Victor M. Toro - CincoSOFT Ltda. 3

Metodologa

Proceso

Aclarando algunos conceptos:

Herramienta Lenguaje

Lenguaje

Lenguaje (de programacin, especificacin, ...):


Sintaxis (elementos del lenguaje) + Gramtica (reglas para combinar dichos elementos) + Semntica (significado de las frases del lenguaje). Programacin: Java, C, VisualBasic, RPG, Cobol, C#, ... Anlisis/Diseo:

Ejemplos de Lenguajes:

Diagramas Entidad-Relacin, Diagramas de Flujo de Datos DFD, ...

Especificacin: Z, B, VDM, ... Ingeniera de Software: UML


4

Victor M. Toro - CincoSOFT Ltda.

Metodologa

Proceso

Aclarando algunos conceptos:

Herramienta Lenguaje

Herramienta

Herramienta:

Editor de un(os) lenguaje(s) + Librera de elementos reutilizables + Ayudas inteligentes + Compilador Traductor hacia/desde otro(s) lenguaje(s) JBuilder, JDevelopper, JEdit, Fort, ... VisualStudio.NET PowerBuilder, OracleForms, Designer-2000,... ...
5

Ejemplos de Herramientas:

Victor M. Toro - CincoSOFT Ltda.

Metodologa

Proceso

Aclarando algunos conceptos:

Herramienta Lenguaje

Metodologa

Metodologa:

Lenguaje + forma de plantear problemas + forma de construir poco a poco una solucin + forma de verificar que una solucin es correcta + conjunto de patrones (paradigmas deseables) Programacin Estructurada {Pre y Post condiciones, invariantes, ...} Metodologa Entidad-Relacin para diseo de B. de D. Metodologa Orientada a Objetos ...
6

Ejemplos de Metodologas:

Victor M. Toro - CincoSOFT Ltda.

Metodologa

Proceso

Aclarando algunos conceptos:

Lenguaje

Proceso de desarrollo de Software

Herramienta

Proceso de desarrollo de Software:


Una secuencia de actividades + una asignacin de responsabilidades + un conjunto de Entregables


(documentos, cdigo, pantallas, manuales, ...) estandarizados

+ dinmica de interaccinentre 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


q

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]
8

Victor M. Toro - CincoSOFT Ltda.

Qu es una compaa de software certificada ?


q q q q q q

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 algn Estndar de Calidad (CMM, ISO) Contrata Inspectores autorizados para que revisen, y eventualmente certifiquen, que su proceso de desarrollo cumple con el Estndar de Calidad.
9

Victor M. Toro - CincoSOFT Ltda.

Qu es implantar un estndar de Calidad de Software?


Planeacin Estndar de --------Calidad de Software --------Seguimiento de Proyectos -----------------Capacitacin ----------------------Control de Versiones ----------------Revisiones de cdigo por pares ----------------Administracin de Requerimientos -------Victor M. Toro - CincoSOFT Ltda.

Nuestro Proceso de Software

10

Evolucin de los Procesos de Desarrollo de Software

Cmo nace un Proceso de Desarrollo de Software ?

Nace de la visin/enfoque que se tenga sobre: Cmo se debe producir el software Cmo se debe entregar el software

Victor M. Toro - CincoSOFT Ltda.

12

Desarrollo por etapas sequenciales:

Modelo de Cascada
Planeacin Estratgica Corporativa Planeacin Estratgica de Sistemas de Informacin Anlisis de Requerimientos Diseo Global Diseo Detallado Programacin Pruebas Operacin
Victor M. Toro - CincoSOFT Ltda. 13

Desarrollo iterativo:

Modelo en Espiral (B.W. Boehm)


Analysis

Design

Requirement Specification Test

Implementation and Unit 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


Contracto 2 Contrato 1 Propuesta

Construction
Inception Elaboration 1 2 3 4 ... Transition

Refine Data Model

Refine Use Cases

Programming

Inventario de Casos de Uso

Testing

Adjustments

Victor M. Toro - CincoSOFT Ltda.

17

Dinmica del Rational Unified Process RUP


Phases Process Workflows
Business Modeling Requirements Analysis & Design Implementation Test Deployment
Inception Elaboration Construction Transition

Supporting Workflows
Configuration Mgmt Management Environment
Preliminary Iteration(s) Iter. #1 Iter. #2 Iter. #n Iter. Iter. #n+1 #n+2 Iter. #n Iter. #n+1

Victor M. Toro - CincoSOFT Ltda.

Iterations

18

Etapas del RUP:

Inicio (Inception)
q q q q q q q q q

Empezar a conocer el problema. Identificar impacto y beneficios del nuevo sistema. Identificar relacin con otros sistemas. Plantear arquitectura. Definir el alcance del nuevo sistema. Primera estimacin de Costo y Tiempo. Obtener/Elaborar Propuestas Obtener la decisin y compromiso de arrancar. Promover un dueo (sponsor) de proyecto.
19

Victor M. Toro - CincoSOFT Ltda.

Etapas del RUP:

Elaboracin (1)
q q q q

Entender / Formalizar la Lgica del Negocio Obtener requerimientos detallados Elaborar el Inventario de todos los Casos de Uso Agrupar los Casos de Uso en mdulos, de acuerdo a:

reas del Negocio Interdependencia funcional Dependencia entre Mdulos Prioridades (organizacionales, polticas, de negocio, ...) Requerimientos tecnolgicos
20

Establecer un orden para implementar los mdulos:


Victor M. Toro - CincoSOFT Ltda.

Etapas del RUP:

Elaboracin(2)
q

Identificar (y enfrentar!) los riesgos del proyecto:


Lgica del Negocio Requerimientos Tecnolgicos Recursos humanos Polticos

Definir un Plan Detallado de construccin.


21

Victor M. Toro - CincoSOFT Ltda.

Etapas del RUP:

Construccin (1)
INCREMENTAL e ITERATIVO. Tomar el siguiente mdulo de Casos de Uso:
q

Documentar en detalle sus Casos de Uso (empezando por los pantallazos y la secuencia de navegacin). Base de Datos:

Refinar / Disear las nuevas tablas de la BD Efectuar las modificaciones a las tablas ya existentes (en forma incremental, acumulando los scripts de modificacin !!)

Obtener la aprobacin de los Casos de Uso del Mdulo.


22

Victor M. Toro - CincoSOFT Ltda.

Etapas del RUP:

Construccin (2)
q

Programar los Casos de Uso del subsistema

Mantener sincronizado el Software y la Documentacin de los Casos de Uso

Probar los Casos de Uso implementados. Probar interaccin con Casos de Uso precedentes.

Escribir mini-manual de usuario del mdulo Entregar el mdulo para pruebas de los usuarios
23

Victor M. Toro - CincoSOFT Ltda.

Etapas del RUP:

Transicin
q

Homologar todo el software Homologar toda la documentacn de Casos de Uso Pruebas integrales del nuevo sistema (beta testing) Sintonizacin fina y optimizacin de plataforma Unificar documentacin de instalacin. Unificar los manuales de usuario final. Capacitacin de usuarios finales.
24

Victor M. Toro - CincoSOFT Ltda.

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 Integracin

Construction
1 2 3 4 ... Transition

Inception

Elaboration

Refine Data Model

Refine Use Cases

Inventario de Casos de Uso

Programming

Especificacin Formal (Z)

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
Aprobacin del usuario

Programming Unit Testing


Integration Testing Functional Testing

Refine Data Model

Extreme Programming

Stress Testing

Victor M. Toro - CincoSOFT Ltda.

27

Nuestra experiencia en CincoSOFT:

RUP Rational Unified Process aligerado + Extreme Programming + apoyo en herramientas libres
Latex

Construction
1 2 3 4 ... Transition
JEdit Jikes

Inception
Poseidon (Editor UML)

Elaboration

Refine Use Cases


User Interface & Navigation
Aprobacin del usuario

Unit Testing
Integration Testing Functional Testing

Oracle Designer

Refine Data Model

Cactus HttpUnit JMeter

Extreme Programming
ant (Manejo del cdigo)
Victor M. Toro - CincoSOFT Ltda.

Stress Testing

CVS, WinCVS, Winmerge (Control de Versiones)


28

JUnit

Programming

Conclusiones

Conclusiones (1)
q

El gerente de proyectos de software debe:


Conocer en detalle, ( mejor an) Participar en la adaptacin ( mejor an) Participar en la creacin

del Proceso de Software que va a orientar el desarrollo


q

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:
q

Impotente Pasivo Su accin ser fundamentalmente represiva: (vociferar, amenazar, multar, echar, ...)

Har fuerza durante todo el proyecto


31

Victor M. Toro - CincoSOFT Ltda.

Conclusiones (3)
q

Los procesos de desarrollo de software modernos deben estar basados en RUP RUP es un marco general, no un estndar:

Cada compaa debe ajustarlo a sus necesidades. Evitar exageraciones !!!!!

Extreme Programming est teniendo una enorme acogida. Hay muchas herramientas libres de alta calidad, que ayudan muchsimo en el proceso
32

Victor M. Toro - CincoSOFT Ltda.

Conclusiones (4)
q

Los procesos de desarrollo de software modernos deben estar basados en RUP RUP es un marco general, no un estndar:

Cada compaa 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
33

Victor M. Toro - CincoSOFT Ltda.

Conclusiones (5)
q

Los proyectos de software con las tecnlogas actuales (Java J2EE Microsoft .NET) son de alto riesgo

Victor M. Toro - CincoSOFT Ltda.

34

Conclusin Final

Victor M. Toro - CincoSOFT Ltda.

35

También podría gustarte