introducción al proceso de desarrollo de software patricio letelier [email protected]...

19
Introducción al Proceso de Desarrollo de Software Patricio Letelier [email protected] Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia

Upload: martin-marmol

Post on 22-Jan-2016

243 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Introducción al Proceso de Desarrollo de Software Patricio Letelier letelier@dsic.upv.es Departamento de Sistemas Informáticos y Computación Universidad

Introducción al Proceso de Desarrollo de Software

Patricio [email protected]

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

Page 2: Introducción al Proceso de Desarrollo de Software Patricio Letelier letelier@dsic.upv.es Departamento de Sistemas Informáticos y Computación Universidad

2 www.dsic.upv.es/~letelier/pub

Contenidos

I. MotivaciónII. NotaciónIII. HerramientasIV. MetodologíaV. Discusión

Page 3: Introducción al Proceso de Desarrollo de Software Patricio Letelier letelier@dsic.upv.es Departamento de Sistemas Informáticos y Computación Universidad

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

Page 4: Introducción al Proceso de Desarrollo de Software Patricio Letelier letelier@dsic.upv.es Departamento de Sistemas Informáticos y Computación Universidad

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

Page 5: Introducción al Proceso de Desarrollo de Software Patricio Letelier letelier@dsic.upv.es Departamento de Sistemas Informáticos y Computación Universidad

5 www.dsic.upv.es/~letelier/pub

I. MotivaciónConstrucción de un Rascacielos

Page 6: Introducción al Proceso de Desarrollo de Software Patricio Letelier letelier@dsic.upv.es Departamento de Sistemas Informáticos y Computación Universidad

6 www.dsic.upv.es/~letelier/pub

I. MotivaciónClaves en el Desarrollo de SI

Herramientas Metodología

Notación

Page 7: Introducción al Proceso de Desarrollo de Software Patricio Letelier letelier@dsic.upv.es Departamento de Sistemas Informáticos y Computación Universidad

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

Page 8: Introducción al Proceso de Desarrollo de Software Patricio Letelier letelier@dsic.upv.es Departamento de Sistemas Informáticos y Computación Universidad

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

Page 9: Introducción al Proceso de Desarrollo de Software Patricio Letelier letelier@dsic.upv.es Departamento de Sistemas Informáticos y Computación Universidad

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

Page 10: Introducción al Proceso de Desarrollo de Software Patricio Letelier letelier@dsic.upv.es Departamento de Sistemas Informáticos y Computación Universidad

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”

Page 11: Introducción al Proceso de Desarrollo de Software Patricio Letelier letelier@dsic.upv.es Departamento de Sistemas Informáticos y Computación Universidad

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.

Page 12: Introducción al Proceso de Desarrollo de Software Patricio Letelier letelier@dsic.upv.es Departamento de Sistemas Informáticos y Computación Universidad

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

Page 13: Introducción al Proceso de Desarrollo de Software Patricio Letelier letelier@dsic.upv.es Departamento de Sistemas Informáticos y Computación Universidad

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?

Page 14: Introducción al Proceso de Desarrollo de Software Patricio Letelier letelier@dsic.upv.es Departamento de Sistemas Informáticos y Computación Universidad

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

Page 15: Introducción al Proceso de Desarrollo de Software Patricio Letelier letelier@dsic.upv.es Departamento de Sistemas Informáticos y Computación Universidad

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

Page 16: Introducción al Proceso de Desarrollo de Software Patricio Letelier letelier@dsic.upv.es Departamento de Sistemas Informáticos y Computación Universidad

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

Page 17: Introducción al Proceso de Desarrollo de Software Patricio Letelier letelier@dsic.upv.es Departamento de Sistemas Informáticos y Computación Universidad

17 www.dsic.upv.es/~letelier/pub

IV. Metodología Elementos de una Metodología

ProcesoSW

Notación

HerramientasPersonas

ArtefactosRoles

Actividades

Page 18: Introducción al Proceso de Desarrollo de Software Patricio Letelier letelier@dsic.upv.es Departamento de Sistemas Informáticos y Computación Universidad

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

Page 19: Introducción al Proceso de Desarrollo de Software Patricio Letelier letelier@dsic.upv.es Departamento de Sistemas Informáticos y Computación Universidad

Introducción al Proceso de Desarrollo de Software

Patricio [email protected]

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia