Introducción al Proceso de Desarrollo de Software Patricio Letelier Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia
2 Contenidos I. Motivación II. Modelos de proceso software III. Metodologías IV. Discusión
3 I. Motivación Claves en el Desarrollo de SI HerramientasMetodología Notación
4 II. Modelos de proceso de software La Ingeniería de Software como disciplina Un modelo de proceso de software es una representación simplificada de un proceso de software que conlleva una estrategia global para abordar el desarrollo de software Modelos de proceso de software: Codificar y corregir (code-and-fix) Desarrollo en cascada Desarrollo evolutivo Desarrollo formal de sistemas Desarrollo basado en reutilización Desarrollo incremental Desarrollo en espiral
5 II. Modelos de proceso de software Codificar y corregir (code-and-fix)
6 II. Modelos de proceso de software Desarrollo en Cascada [Ingeniería de Software. Sommerville I.., 2002]
7 [Ingeniería de Software. Sommerville I.., 2002] II. Modelos de proceso de software Desarrollo evolutivo
8 [Balzer R. A 15 Year Perspective on Automatic Programming. IEEE Transactions on Software Engineering, vol.11, núm.11, páginas , Noviembre 1985 ] II. Modelos de proceso de software Desarrollo formal de sistemas
9 [Ingeniería de Software. Sommerville I.., 2002] II. Modelos de proceso de software Desarrollo basado en reutilización
10 [Ingeniería de Software. Sommerville I.., 2002] II. Modelos de proceso de software Desarrollo incremental
11 [Boehm, B. W., A Spiral Model of Software Develpment and Enhancement, IEEE Computer, vol. 21, no.5, Mayo 1988 ] II. Modelos de proceso de software Desarrollo en espiral
12 II. Modelos de proceso de software ¿Cuál es el más adecuado? Modelo de proceso Desempeño con requisitos y arquitectura no predefinidos Produce software altamente fiable Gestión de riesgos Permite correcciones sobre la marcha Visión del progreso por el Cliente y el Jefe del proyecto Codificar y corregir Bajo AltoMedio Desarrollo En cascada BajoAltoBajo Desarrollo Evolutivo AltoMedio Alto Desarrollo formal de sistemas BajoAltoBajo a MedioBajo Desarrollo basado en reutilización MedioBajo a AltoBajo a MedioAlto Desarrollo Incremental BajoAltoMedioBajo Desarrollo Espiral Alto Medio
13 Requisitos nuevos o modificados Sistema nuevo o modificado Proceso de Desarrollo de Software En un proyecto de desarrollo de software la metodología define Quién debe hacer Qué, Cuándo y Cómo debe hacerlo No existe una metodología de software universal. Las características de cada proyecto (equipo de desarrollo, recursos, etc.) exigen que el proceso sea configurable III. Metodologías ¿Qué es una Metodología?
14 III. Metodología Metodologías Estructuradas Los métodos estructurados comenzaron a desarrollar- se a fines de los 70’s con la Programación Estructurada, luego a mediados de los 70’s aparecieron técnicas para el Diseño primero y luego para el Análisis. Enfocados a implementaciones usando lenguajes de 3ra generación Ejemplos de metodologías estructuradas gubernamentales: MERISE (Francia), MÉTRICA 3 (España), SSADM (Reino Unido) Ejemplos de métodos estructurados en el ámbito académico: Gane & Sarson, Ward & Mellor, Yourdon & DeMarco e Information Engineering
15 III. Metodología Metodologías OO Su historia va unida a la evolución de los lenguajes de programación orientada a objeto, los más representativos: a fines de los 60’s SIMULA, a fines de los 70’s Smalltalk-80, la primera versión de C++ por Bjarne Stroustrup en 1981 y actualmente Java o C#. A fines de los 80’s comenzaron a consolidarse algunos métodos Orientadas a Objeto En 1995 aparece el Método Unificado, que posteriormente se reorienta para dar lugar al Unified Modeling Language (UML), la notación OO más popular en la actualidad Algunos métodos OO con notaciones predecesoras de UML: OOAD (Booch), OOSE (Jacobson), Coad & Yourdon, Shaler & Mellor y OMT (Rumbaugh) Algunas metodologías orientadas a objetos basadas en UML: Rational Unified Process (RUP), OPEN, MÉTRICA 3
16 III. Metodología Elementos de una Metodología Proceso SW Notación Herramientas Personas Artefactos Roles Actividades
17 VI. Discusión Situación Actual Notación - Metodología – Herramientas Metodologías Tradicionales v/s Metodologías Ágiles
Introducción al Proceso de Desarrollo de Software Patricio Letelier Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia