introducción al proceso de desarrollo de software patricio letelier [email protected]...
TRANSCRIPT
Introducción al Proceso de Desarrollo de Software
Patricio [email protected]
Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia
2 www.dsic.upv.es/~letelier/pub
Contenidos
I. MotivaciónII. NotaciónIII. HerramientasIV. MetodologíaV. Discusión
3 www.dsic.upv.es/~letelier/pub
I. MotivaciónConstrucción de una casa para
“fido”
Puede hacerlo una sola personaRequiere:
Modelado mínimoProceso simpleHerramientas simples
4 www.dsic.upv.es/~letelier/pub
I. MotivaciónConstrucción de un Chalet
Construido eficientemente y en un tiempo razonable por un equipoRequiere:
ModeladoProceso bien definidoHerramientas más sofisticadas
5 www.dsic.upv.es/~letelier/pub
I. MotivaciónConstrucción de un Rascacielos
6 www.dsic.upv.es/~letelier/pub
I. MotivaciónClaves en el Desarrollo de SI
Herramientas Metodología
Notación
7 www.dsic.upv.es/~letelier/pub
Sistema Computacional
Proceso de Negocios
Orden
Item
envío
“El modelado captura laspartes esenciales del sistema”
II. Notación
8 www.dsic.upv.es/~letelier/pub
Notación (Visual) - Beneficios
Interface de Usuario(Visual Basic,
Java, ..)Lógica del Negocio
(C++, Java, ..)
Servidor de BDs(C++ & SQL, ..)
Múltiples Sistemas
Componentes Reutilizados
Manejar la complejidad
Modelar el sistema independientemente del lenguaje de implementación
Promover la Reutilización
9 www.dsic.upv.es/~letelier/pub
III. Herramientas CASE
CASE es un acrónimo para Computer-Aided Software Engineering, aunque existen algunas variaciones para lo que actualmente se entiende por CASE:
C ComputerA Aided
AssistedAutomated
S SoftwareSystems
E Engineering
10 www.dsic.upv.es/~letelier/pub
III. Herramientas CASE ¿Qué es una CASE?
En “Terminology for Software Engineering and Computer-aided Software Engineering”, B.Terry & D.Logee, Software Engineering Notes, Abril 1990, CASE es definido como:
“Herramientas individuales para ayudar al desarrollador de software o administrador de proyecto durante una o más fases del desarrollo de software (o mantenimiento).”
En “The CASE Experience”, Carma McClure, BYTE Abril 1989 p.235 se ofrece la siguiente definición:
“Una combinación de herramientas de software y metodo-logías de desarrollo”
11 www.dsic.upv.es/~letelier/pub
Proceso Subproceso Tarea de desarrollo apoyada por una herramienta CASE Representación Representación de objetos, relaciones o procesos
Análisis Análisis de objetos relaciones o procesos
Producción Transformación
Automatización de tareas de planificación o diseño Generación de código/esquema de base de datos Generación de código procedural Generación de datos de prueba Análisis de la estructura del programa Reestructuración automática del código del programa Análisis de la estructura de la base de datos
Control
Ayuda al cumplimiento de reglas, políticas o prioridades que gobiernan las actividades del proceso de desarrollo
Administración de recursos: presupuesto, programación de tareas y seguimiento
Control de acceso: auditoría, control de configuración y manejo de autorizaciones
Coordinación
Cooperación Mensajes y comunicación electrónica Asociación electrónica de notas a los objetos Soporte de interacción de grupo
Soporte
Ayuda en línea para comandos y características Plantillas para tutoriales o demos Facilidades de explicación para acciones recomendadas Uso de conocimiento del dominio para diagnosticar problemas del
usuario y recomendar acciones apropiadas Organización
Infraestructura Estructuras estandarizadas para representar diseños Consistencia de definición de estructuras de datos Repositorio del proyecto
Communications of the ACM, Enero 2000, pp.80-88.
12 www.dsic.upv.es/~letelier/pub
IV. MetodologíaModelos de proceso de software
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
13 www.dsic.upv.es/~letelier/pub
Requisitos nuevoso modificados
Sistema nuevoo 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
IV. Metodología ¿Qué es una Metodología?
14 www.dsic.upv.es/~letelier/pub
IV. Metodología Modelos de Proceso y
Metodologías
La Ingeniería de Software como disciplina
Algunos modelos de proceso de desarrollo son: desarrollo en Cascada, usando Prototipos, Basado en Componentes, en Espiral (Incremental, Iterativo), Programación Automática. Las metodologías se basan en alguna combinación de estos enfoques
Las metodologías (tanto comerciales como en el ámbito académico y de investigación) pueden ser agrupadas en dos grandes corrientes: Metodologías Estructuradas y Metodologías Orientadas a Objetos
15 www.dsic.upv.es/~letelier/pub
IV. 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
16 www.dsic.upv.es/~letelier/pub
IV. 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
17 www.dsic.upv.es/~letelier/pub
IV. Metodología Elementos de una Metodología
ProcesoSW
Notación
HerramientasPersonas
ArtefactosRoles
Actividades
18 www.dsic.upv.es/~letelier/pub
V. 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 [email protected]
Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia