Gerencia de Proyectos
Proceso de Software
Victor Manuel Toro C.
[email protected]
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
l 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).
l 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
l Herramienta:
Editor de un(os) lenguaje(s)
+ Librería de elementos reutilizables
+ Ayudas “inteligentes”
+ Compilador ó Traductor hacia/desde otro(s) lenguaje(s)
l Ejemplos de Herramientas:
JBuilder, JDevelopper, JEdit, Forté, ...
VisualStudio.NET
PowerBuilder, OracleForms, Designer-2000,...
...
Victor M. Toro - CincoSOFT Ltda.
5
Metodología
Proceso
Herramienta
Lenguaje
l Metodología:
Lenguaje
Aclarando algunos conceptos:
Metodología
+ 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)
l 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 de desarrollo de Software
Herramienta
Lenguaje
l 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
l 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, ...
l 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 ?
l Explicita su proceso de desarrollo de software
l Documenta su proceso de desarrollo (por escrito)
l Estandariza sus entregables (i.e., crea plantillas)
l Sintoniza sus herramientas para apoyar el proceso
l ...
l Incorpora en su proceso de software las recomenda-
ciones de algún Estándar de Calidad (CMM, ISO)
l 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?
Nuestro Proceso
de Software
Estándar de
Calidad de Software
Planeación
---------
---------
Seguimiento de Proyectos
-----------
--------
Capacitación
-------------
-----------
Control de Versiones
---------
---------
Revisiones de código por pares
----------
--------
Administración de Requerimientos
-----
----
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:
l Cómo se debe producir el software
l 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
Victor M. Toro - CincoSOFT Ltda.
Operación
13
Desarrollo iterativo:
“Modelo en Espiral” (B.W. Boehm)
Design
Implementation
and Unit Test
Analysis
Integration
Requirement
Specification
Test
Version 3
Version 3
Version 2
Version 2
Version 1
Version 1
“A Spiral Model of Software Development and Enhancement”
Tutorial: Software Engineering Project Management: Computer Society of the IEEE, 1988
14
Victor M. Toro - CincoSOFT Ltda.
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
a
t
s
e
u
p
o
r
P
1
o
t
a
r
t
n
o
C
2
o
t
c
a
r
t
n
o
C
Construction
Inception
Elaboration
1
2
3
4
...
Transition
Inventario de
Casos de Uso
s
e
s
a
C
e
s
U
e
n
i
f
e
R
l
e
d
o
M
a
t
a
D
e
n
i
f
e
R
i
g
n
m
m
a
r
g
o
r
P
Testing
Adjustments
Victor M. Toro - CincoSOFT Ltda.
17
Dinámica del
“Rational Unified Process RUP”
Process Workflows
Inception
Elaboration
Construction
Transition
Phases
Business Modeling
Requirements
Analysis & Design
Implementation
Test
Deployment
Supporting Workflows
Configuration Mgmt
Management
Environment
Victor M. Toro - CincoSOFT Ltda.
Preliminary
Iteration(s)
Iter.
#1
Iter.
#2
Iter.
#n
Iter.
#n+1
Iterations
Iter.
#n+2
Iter.
#n
Iter.
#n+1
18
Etapas del RUP:
Inicio (Inception)
l Empezar a conocer el problema.
l Identificar impacto y beneficios del nuevo sistema.
l Identificar relación con otros sistemas.
l Plantear arquitectura.
l Definir el alcance del nuevo sistema.
l Primera estimación de Costo y Tiempo.
l Obtener/Elaborar Propuestas
l Obtener la decisión y compromiso de arrancar.
l Promover un dueño (“sponsor”) de proyecto.
Victor M. Toro - CincoSOFT Ltda.
19
Etapas del RUP:
Elaboración (1)
l Entender / Formalizar la “Lógica del Negocio”
l Obtener requerimientos detallados
l Elaborar el Inventario de todos los “Casos de Uso”
l Agrupar los Casos de Uso en módulos, de acuerdo a:
Áreas del Negocio
Interdependencia funcional
l 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)
l Identificar (y enfrentar!) los riesgos del proyecto:
Lógica del Negocio
Requerimientos
Tecnológicos
Recursos humanos
Políticos
l 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:
l Documentar en detalle sus Casos de Uso (empezando por
los “pantallazos” y la secuencia de navegación).
l 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 !!)
l Obtener la aprobación de los Casos de Uso del Módulo.
Victor M. Toro - CincoSOFT Ltda.
22
Etapas del RUP:
Construcción (2)
l 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.
l Escribir mini-manual de usuario del módulo
l Entregar el módulo para pruebas de los usuarios
Victor M. Toro - CincoSOFT Ltda.
23
Etapas del RUP:
Transición
l Homologar todo el software
l Homologar toda la documentacón de Casos de Uso
l Pruebas integrales del nuevo sistema (beta testing)
l Sintonización fina y optimización de plataforma
l Unificar documentación de instalación.
l Unificar los manuales de usuario final.
l 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
s
e
s
a
C
e
s
U
e
n
i
f
e
R
l
e
d
o
M
a
t
a
D
e
n
i
f
e
R
i
g
n
m
m
a
r
g
o
r
P
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
Extreme Programming
Programming
Unit Testing
Integration Testing
Functional Testing
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
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
Programming
Unit Testing
JEdit
Jikes
t
i
n
U
J
Integ
Comentarios de: Gerencia de Proyectos <=> Proceso de Software (0)
No hay comentarios