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
Metodologa
Proceso Herramienta
Lenguaje
Victor M. Toro - CincoSOFT Ltda. 3
Metodologa
Proceso
Herramienta Lenguaje
Lenguaje
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:
Metodologa
Proceso
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:
Metodologa
Proceso
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:
Metodologa
Proceso
Lenguaje
Herramienta
+ dinmica de interaccinentre los miembros del grupo + un conjunto de herramientas y una forma de usarlas + ...
Est escrito Es usado por TODOS los miembros del grupo Cubre todas las etapas del desarrollo Es efectivo Es eficiente Es repetible, medible, optimizable, ...
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
10
Nace de la visin/enfoque que se tenga sobre: Cmo se debe producir el software Cmo se debe entregar el software
12
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:
Design
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
15
Construction
Inception Elaboration 1 2 3 4 ... Transition
Programming
Testing
Adjustments
17
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
Iterations
18
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
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
Elaboracin(2)
q
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 !!)
Construccin (2)
q
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
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
RUP Rational Unified Process aligerado + Extreme Programming + apoyo en herramientas libres
Construction
1 2 3 4 ... Transition
Inception
Elaboration
Programming
Testing
Adjustments
Extreme Programming
Victor M. Toro - CincoSOFT Ltda. 26
Extreme Programming
Stress Testing
27
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
Unit Testing
Integration Testing Functional Testing
Oracle Designer
Extreme Programming
ant (Manejo del cdigo)
Victor M. Toro - CincoSOFT Ltda.
Stress Testing
JUnit
Programming
Conclusiones
Conclusiones (1)
q
Conocer en detalle, ( mejor an) Participar en la adaptacin ( mejor an) Participar en la creacin
Velar por el cumplimiento del proceso Estar pendiente de cualquier desvio del cronograma (y presupuesto) detallado
30
Conclusiones (2)
De lo contrario, el papel del gerente ser:
q
Impotente Pasivo Su accin ser fundamentalmente represiva: (vociferar, amenazar, multar, echar, ...)
Conclusiones (3)
q
Los procesos de desarrollo de software modernos deben estar basados en RUP RUP es un marco general, no un estndar:
Extreme Programming est teniendo una enorme acogida. Hay muchas herramientas libres de alta calidad, que ayudan muchsimo en el proceso
32
Conclusiones (4)
q
Los procesos de desarrollo de software modernos deben estar basados en RUP RUP es un marco general, no un estndar:
Extreme Programming est teniendo una enorme acogida. Hay muchas herramientas libres de alta calidad, que ayudan enormemente en el proceso de desarrollo
33
Conclusiones (5)
q
Los proyectos de software con las tecnlogas actuales (Java J2EE Microsoft .NET) son de alto riesgo
34
Conclusin Final
35