Upload
lekhanh
View
221
Download
0
Embed Size (px)
Citation preview
Gerencia de Proyectos⇔⇔⇔⇔
Proceso de Software
Victor Manuel Toro [email protected]
CincoSOFT Ltda.Compañía de Ingenieros Constructures de SoftwareTel. (+57)(1) 6230180 * Fax (+57)(1) 2566774Carrera 15 # 80-48 (ofc. 402)Apartado Aéreo 350762Bogotá - Colombia
http://www.cincosoft.com
Conceptos Preliminares
Victor M. Toro - CincoSOFT Ltda. 3
Lenguaje
Herramienta
ProcesoMetodología
Cuatro conceptos relacionados pero distintos:
Victor M. Toro - CincoSOFT Ltda. 4
Lenguaje
Herramienta
ProcesoMetodología 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. 5
Lenguaje
Herramienta
ProcesoMetodología 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. 6
Lenguaje
Herramienta
ProcesoMetodología 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. 7
Lenguaje
Herramienta
ProcesoMetodología Aclarando algunos conceptos:
Proceso de desarrollo de Software
● 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 desoftware
Victor M. Toro - CincoSOFT Ltda. 8
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. 9
¿ 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 recomenda-ciones de algún Estándar de Calidad (CMM, ISO)
● Contrata Inspectores autorizados para que revisen, yeventualmente certifiquen, que su proceso dedesarrollo cumple con el Estándar de Calidad.
Victor M. Toro - CincoSOFT Ltda. 10
¿Qué es implantar un estándar de Calidad de Software?
Nuestro Procesode Software
Planeación------------------Seguimiento de Proyectos-------------------Capacitación------------------------Control de Versiones------------------Revisiones de código por pares------------------Administración de Requerimientos---------
Estándar deCalidad de Software
Evolución de los
Procesos de
Desarrollo de Software
Victor M. Toro - CincoSOFT Ltda. 12
¿Cómo nace unProceso 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. 13
Planeación EstratégicaCorporativa
Planeación Estratégicade Sistemas de Información
Diseño Detallado
Diseño Global
Análisis de Requerimientos
Programación
Pruebas
Operación
Desarrollo por etapas sequenciales:
“Modelo de Cascada”
Victor M. Toro - CincoSOFT Ltda. 14
Analysis
RequirementSpecificationDesign
Implementationand Unit Test
Integration
Test
Desarrollo iterativo:
“Modelo en Espiral” (B.W. Boehm)
“A Spiral Model of Software Development and Enhancement”
Tutorial: Software Engineering Project Management: Computer Society of the IEEE, 1988
Version 1Version 1
Version 2Version 2
Version 3Version 3
Victor M. Toro - CincoSOFT Ltda. 15
Desarrollo Incremental e Iterativo:
“RUP Rational Unified Process”
RUP Rational Unified Process
Victor M. Toro - CincoSOFT Ltda. 17
Inception Elaboration Transition1 2 3 4 ...
Construction
Co
ntr
ato
1
Co
ntr
acto
2
Pro
pu
esta
Fases del proceso
RUP Rational Unified Process
Adjustments
Testing
Ref
ine
Use
Cas
es
Ref
ine
Dat
a M
od
el
Pro
gra
mm
ing
Inventario deCasos de Uso
Victor M. Toro - CincoSOFT Ltda. 18
PhasesProcess Workflows
Iterations
Supporting Workflows
ManagementEnvironment
Business Modeling
Implementation
Test
Analysis & Design
Preliminary Iteration(s)
Iter.#1
Iter.#2
Iter.#n
Iter.#n+1
Iter.#n+2
Iter.#n
Iter.#n+1
Deployment
Configuration Mgmt
Requirements
Elaboration TransitionInception Construction
Dinámica del “Rational Unified Process RUP”
Victor M. Toro - CincoSOFT Ltda. 19
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. 20
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. 21
Etapas del RUP:
Elaboración(2)
● Identificar (y enfrentar!) los r iesgos 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. 22
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. 23
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. 24
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.
Nuestra exper iencia en CincoSOFT:
RUP Rational Unified Process “aligerado”
+
“Extreme Programming”
+
apoyo en herramientas libres
Victor M. Toro - CincoSOFT Ltda. 26
ExtremeProgramming
Nuestra experiencia en CincoSOFT:
RUP Rational Unified Process “aligerado”
Inception Elaboration Transition1 2 3 4 ...
Construction
Adjustments
Testing
Ref
ine
Use
Cas
es
Ref
ine
Dat
a M
od
el
Pro
gra
mm
ing
Inventario deCasos de Uso
Doc. Arquitecturae Integración
EspecificaciónFormal (Z)
Victor M. Toro - CincoSOFT Ltda. 27
Extreme Programming
Nuestra experiencia en CincoSOFT:
RUP Rational Unified Process “aligerado”+ Extreme Programming
Inception Elaboration Transition1 2 3 4 ...
Construction
Stress Testing
Functional Testing
Integration Testing
Unit Testing
Refine Use CasesUser Interface & Navigation
Refine Data Model
Programming
Aprobacióndel
usuario
Victor M. Toro - CincoSOFT Ltda. 28
Nuestra experiencia en CincoSOFT:
RUP Rational Unified Process “aligerado”+ Extreme Programming
+ apoyo en herramientas libres
Extreme Programming
Inception Elaboration Transition1 2 3 4 ...
Construction
Stress Testing
Functional Testing
Integration Testing
Unit Testing
Refine Use CasesUser Interface & Navigation
Refine Data Model
Programming
Aprobacióndel
usuario
Latex
JEditJikes
JUn
it
HttpUnit
Cactus
JMeter
CVS, WinCVS, Winmerge(Control de Versiones)
ant(Manejo del código)
OracleDesigner
Poseidon(Editor UML)
Conclusiones
Victor M. Toro - CincoSOFT Ltda. 30
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. 31
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. 32
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. 33
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. 34
Conclusiones (5)
● Los proyectos de software con las tecnlogías actuales
(Java J2EE ó Microsoft .NET) son de alto riesgo
Victor M. Toro - CincoSOFT Ltda. 35
Conclusión Final