Introducción al Proceso de Desarrollo de Software Patricio Letelier Universidad Politécnica de Valencia

Download Report

Transcript Introducción al Proceso de Desarrollo de Software Patricio Letelier Universidad Politécnica de Valencia

Introducción al Proceso
de Desarrollo de Software
Patricio Letelier
Centro de Formación de Postgrado – Depto. Sistemas Informáticos y Computación
Universidad Politécnica de Valencia
Contenidos
Motivación
II. Notación
III. Metodología
IV. Herramientas
V. Discusión
I.
2

www.dsic.upv.es/~letelier/pub
I. Motivación
Construcción de una casa para “fido”
Puede hacerlo una sola persona
Requiere:
Modelado mínimo
Proceso simple
Herramientas simples
3

www.dsic.upv.es/~letelier/pub
I. Motivación
Construcción de un Chalet
Construido eficientemente y en un tiempo
razonable por un equipo
Requiere:
Modelado
Proceso bien definido
Herramientas más sofisticadas
4

www.dsic.upv.es/~letelier/pub
I. Motivación
Construcción de un Rascacielos
5

www.dsic.upv.es/~letelier/pub
I. Motivación
Claves en el Desarrollo de SI
Notación
Herramientas
Metodología
6

www.dsic.upv.es/~letelier/pub
II. Notación
“El modelado captura las
partes esenciales del sistema”
Orden
Item
envío
Proceso de Negocios
Sistema Computacional
7

www.dsic.upv.es/~letelier/pub
II. Notación
Modelado para manejar la Complejidad
8

www.dsic.upv.es/~letelier/pub
II. Notación
Modelado de la Arquitectura del SW
Interface de Usuario
(Visual Basic,
Java, ..)
Lógica del Negocio
(C++, Java, ..)
Servidor de BDs
(C++ & SQL, ..)
“Modelar el sistema independientemente
del lenguaje de implementación”

www.dsic.upv.es/~letelier/pub
9
II. Notación
Modelado para promover la Reutilización
Múltiples Sistemas
Componentes
Reutilizados
10

www.dsic.upv.es/~letelier/pub
III. Metodología
¿Qué es una Metodología?
 En un proyecto de desarrollo de software la
metodología define Quién debe hacer Qué,
Cuándo y Cómo debe hacerlo
Requisitos nuevos
o modificados
Proceso de Desarrollo
de Software
Sistema nuevo
o modificado
 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
11

www.dsic.upv.es/~letelier/pub
III. Metodología
Procesos 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
12

www.dsic.upv.es/~letelier/pub
III. Metodología
Metodologías Estructuradas
 Los métodos estructurados comenzaron a desarrollarse 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
13

www.dsic.upv.es/~letelier/pub
III. Metodología
Metodologías Orientadas a Objetos (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
14

www.dsic.upv.es/~letelier/pub
III. Metodología
Elementos de un Proceso SW
Actividades
Herramientas
Personas
Proceso
SW
Roles
Artefactos
Notación
15

www.dsic.upv.es/~letelier/pub
IV. 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
A
S
E
Computer
Aided
Assisted
Automated
Software
Systems
Engineering
16

www.dsic.upv.es/~letelier/pub
IV. 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”
17

www.dsic.upv.es/~letelier/pub
Proceso
Producción
Subproceso
Tarea de desarrollo apoyada por una herramienta CASE
Representación  Representación de objetos, relaciones o procesos
 Análisis de objetos relaciones o procesos
Análisis



Transformación 




Control


Coordinación
Cooperación
Soporte
Organización
Infraestructura










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
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
Mensajes y comunicación electrónica
Asociación electrónica de notas a los objetos
Soporte de interacción de grupo
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
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.
18

www.dsic.upv.es/~letelier/pub
V. Discusión
¿Cuál es vuestro contexto?
¿Cuál es vuestra Situación Actual
Notación - Metodología - Herramientas?
19

www.dsic.upv.es/~letelier/pub
Introducción al Proceso
de Desarrollo de Software
Patricio Letelier
Centro de Formación de Postgrado – Depto. Sistemas Informáticos y Computación
Universidad Politécnica de Valencia