introducción al proceso de desarrollo de software patricio letelier letelier@dsic.upv.es...

Post on 22-Jan-2016

243 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Introducción al Proceso de Desarrollo de Software

Patricio Letelierletelier@dsic.upv.es

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 Letelierletelier@dsic.upv.es

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

top related