doris correa - ximena romano jorge triñanes ingeniería de software inco - facultad de ingeniería...

Post on 23-Jan-2016

220 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Doris Correa - Ximena RomanoJorge Triñanes

Ingeniería de SoftwareInCo - Facultad de Ingeniería - UdelaR

2

Agenda

Introducción Proyecto MoDSGX Evaluación y trabajo futuro

3

Introducción

Marco del proyecto Antecedentes Modelo de Proceso - ¿para qué? Objetivos del proyecto Referencias propuestas

4

Marco del Proyecto

Carrera Ingeniería en Computación

Proyecto de Grado

Intr. Ing. SW Proy. Ing. SW

Año Semestre 1 Semestre 2

Modelo de Proceso

Retroalimentación

GX GX GX

5

Introd. a la Ing. de SW Principales Temas:

Procesos de SW Métricas de tamaño y estimación Gestión de Proyectos de SW Requerimientos (Casos de Uso) Diseño (Diagramas UML) Verificación Calidad y Gestión de la Configuración

6

Proy. de Ing. de SW Objetivos:

contrastar teoría en proyecto sometido a restricciones análogas a las de la industria

reflexionar sobre la forma en que construimos software

Ejemplos de restricciones: proyecto con duración fija (14 semanas) dedicación prevista de cada estudiante de 15

horas semanales

7

Proy. de Ing. de SW (2) Funcionamiento de grupos de

proyectos El grupo trabaja con autonomía pero muy pautado:

proceso definido entregas semanales

Director (docente)

Cliente

Grupo (8 a 15 integrantes)

Grupo sin jerarquías, con roles

diferenciados

Interacción semanal con algunos roles

8

Antecedentes

Año Cambios

1997

1998

1999

2000

2001

2002

Estructura actual de cursos (Ing.SW)

...

Proceso incremental e iterativo

Modelo de Proceso para Java

Cliente ajeno al curso

Fase de Transición

9

Modelo de Proceso - ¿para qué?

Base para la mejora del proceso Facilita incorporar nuevo personal

de forma productiva En el curso todos los años el

“personal” es nuevo Oportunidad para ensayar diversos

procesos...

10

Objetivos del proyecto MoDSGX

Definir un Modelo de Proceso para desarrollo con GeneXus

Poner a prueba el Modelo Ajustarlo a partir de la experiencia

de su utilización

11

Referencias propuestas Mejores prácticas en algunas

organizaciones que utilizan GeneXus ISO/IEC TR 15504 Modelo de Proceso Java Ver. 2001 XP (eXtreme Programming) RUP (Rational Unified Process) MSF (Microsoft Solutions Framework) Métrica Ver. 3

12

Proyecto MoDSGX

Introducción Modelo de proceso propuesto Trabajando con MoDSGX

13

Introducción

Requerimientos del Usuario

Modelo de proceso

Actividades

Sistema de software

Este modelo: Iterativo e incremental

Desarrollo con Genexus

14

Modelo de proceso propuesto

Dimensiones del Modelo de Proceso Tiempo

Aspecto dinámico Fases, Iteraciones e Hitos

Líneas de Trabajo Aspecto estático Roles, Actividades y Entregables

15

Tiempo

Fase I Inicial

Fase IIElaboración

Fase IIIConstrucción

Fase IVTransición

Iter. I Iter. II Iter. I Iter. II Iter. I Iter. II Iter. I Iter. II

Hitos

16

Fase I - Inicial

Objetivo Identificar requerimientos. Identificar riesgos. Estimar los recursos necesarios. Evaluar la capacidad de hacer el

proyecto. Iteraciones

Iteración I – 3 semanas

17

Fase II - Elaboración

Objetivo Dominio del problema. Fundamento de la arquitectura. Plan del proyecto. Eliminar elementos de riesgo. Prototipo de la arquitectura.

Iteraciones Iteración I – 2 semanas Iteración II – 2 semanas

18

Fase III - Construcción

Objetivo Construcción completa del software. Material necesario.

Iteraciones Iteración I – 2 semanas Iteración II – 2 semanas

19

Fase IV - Transición Objetivo

Usuario apto para operar el sistema. Sistema al entorno del usuario. Verificación de la versión “beta”. Versión “final” del sistema. Satisfacción del cliente.

Iteraciones Iteración I – 1 Semana

20

Líneas de Trabajo

Rol

Entregables

Actividad

Entregables

21

Líneas de trabajo y tiempo

22

Líneas a destacar

Requerimientos y Análisis Casos de Uso

Diseño Diagramas UML

de paquetes de secuencia o interacción

Modelo de Datos

23

Caso de uso – Inscripción a curso

1. Actores1.1. Funcionario

Son los posibles usuarios funcionarios de la Institución: Administrador, Bedel, Diseñador, Asistente.…

2. Casos de Uso2.2 Inscripción a curso

Descripción  Este caso de uso puede ser iniciado de tres formas:

• Por un alumno de la institución, cuando tiene la intención…• Por un Funcionario de la Institución, si tiene permisos para…

Pre-condicionesDebe estar autenticado en el sistema un usuario con permisos …

24

Caso de uso – Inscripción a curso

Flujo de eventos principal

Inscripción acurso

Funcionario Alumno

Funcionario Inscripción a curso

1. Este caso de uso comienza cuando un Funcionario tiene la intención de realizar la inscripción de un alumno a un curso.

 

  2. Le solicita al Funcionario, el identificador del Alumno al cual se le desea hacer la inscripción.

3. Ingresa el identificador del Alumno.  

  4. Valida el identificador del Alumno y le muestra los principales datos personales del mismo (nombre, apellido, etc.).

25

Diseño – Inscripción a curso

1. Diseño de Casos de Uso1.2. Diseño del Caso de Uso Inscripción a curso1.2.1. Diagrama de paquetes

Editor de cursos

<<Objeto de diseño>>Controlador de cursos

Editor de carreras

<<Objeto de diseño>>Controlador de carreras

<<Objeto de diseño>>Controlador de cursos

Manejador deSeguimiento

<<Objeto de diseño>>Controlador de

seguimiento

BedeliaNucleo

26

Diseño – Inscripción a curso

1.2.2. Diagrama de Interacción

27

Diseño – Inscripción a curso

5. Diseño de Datos

Usuarios

# CodigoUsr *Nombre *DirecciónTeléfonoMailFecha_nacFecha_ingresoSexo *País *

TLogins

# CodigoUsr *# Login *

Pasw *PerfilEtiqueta_1Etiqueta_2

:Etiqueta_10

Funcionalidades

# CodigoFun *Nombre *Desc *

Perfiles

# CodigoPfl *CodEtiquetaNombreDesc

Etiquetas

# CodEtiqueta *Etiqueta_1Etiqueta_2

:Etiqueta_10Etiq_cant

Pfl_Func

# CodigoPfl *# CodigoFun *

InsCarreras

# CodigoCar *# CodigoUsr *Fecha_Ins *

Usuarios

# CodigoUsr *Nombre *DirecciónTeléfonoMailFecha_nacFecha_ingresoSexo *País *

TLogins

# CodigoUsr *# Login *

Pasw *PerfilEtiqueta_1Etiqueta_2

:Etiqueta_10

Funcionalidades

# CodigoFun *Nombre *Desc *

Perfiles

# CodigoPfl *CodEtiquetaNombreDesc

Etiquetas

# CodEtiqueta *Etiqueta_1Etiqueta_2

:Etiqueta_10Etiq_cant

HistorialUsr

# Codigo2 *Nombre2Dirección2Teléfono2Mail2Fecha_nac2Fecha_ingreso2Sexo2País2

# Fecha_egreso *

HistorialUsr

# Codigo2 *Nombre2Dirección2Teléfono2Mail2Fecha_nac2Fecha_ingreso2Sexo2País2

# Fecha_egreso *

Pfl_Func

# CodigoPfl *# CodigoFun *

Cursos

# CodigoCur *Nombre *Fecha_alta *Con_insp_presencial *Esta_en_carrera *CodEtiquetaEtiqueta_1

:Etiqueta_10

Cursos

# CodigoCur *Nombre *Fecha_alta *Con_insp_presencial *Esta_en_carrera *CodEtiquetaEtiqueta_1

:Etiqueta_10

HistorialCurso

# CodigoCur3 *Nombre3Fecha_alta3Con_insp_presencial3Esta_en_carrera3

# Fecha_Baja3 *

HistorialCurso

# CodigoCur3 *Nombre3

Con_insp_presencial3Esta_en_carrera3

# Fecha_Baja3 *

HistorialCarrera

# CodigoCar4Nombre4Fecha_alta4Ins_Presencial4

# Fecha_Baja4

HistorialCarrera

# CodigoCar4Nombre4Fecha_alta4

# Fecha_Baja4

UsrPflCur

# CodigoUsr *# CodigoPfl *# CodigCur *

UsrPflCur

# CodigoUsr *# CodigoPfl *# CodigCur *

Carreras

# CodigoCar *NombreFecha_altaIns_Presencia

Carreras

# CodigoCar *

Fecha_altaIns_Presencia

Cursos de Carreras

# CodigoCar *# CodigoCur *

Cursos de Carreras

# CodigoCar *# CodigoCur *

InsCarreras

# CodigoCar *# CodigoUsr *Fecha_Ins *

CodigoSeg *

InsCursos

# CodigoCur *# CodigoCar *# CodigoUsr *

Fecha_Ins *CodigoSeg *

InsCursos

# CodigoCur *# CodigoCar *# CodigoUsr *

Fecha_Ins *

Historial AlumnoHistorial Alumno

Disponibles

# CodigoCur *# Fecha_ini *

Disponibles

# CodigoCur *

#FechaFinMarcado

Etiquetas de Curso

# Código Etiq *

Cant_etiq

Valores de Etiquetas

Etiqueta_1Etiqueta_2..Etiqueta_10

Seguimiento Alumno

:

Seguimiento Alumno

:#CodSegCur#CodSegAlu#FechaInsNotaResultadoPuntajeEvaluadoCarreraFechaDesdeFechaHastaFechaAprobación

:

Actuación de alumno

:#CodSegCur#CodSegAlu#FechaIns#CodPrueba PuntajePruebaFechaDesdeFechaHasta

#FechaRealizacion

Usuarios

# CodigoUsr *Nombre *DirecciónTeléfonoMailFecha_nacFecha_ingresoSexo *País *

TLogins

# CodigoUsr *# Login *

Pasw *PerfilEtiqueta_1Etiqueta_2

:Etiqueta_10

Funcionalidades

# CodigoFun *Nombre *Desc *

Perfiles

# CodigoPfl *CodEtiquetaNombreDesc

Etiquetas

# CodEtiqueta *Etiqueta_1Etiqueta_2

:Etiqueta_10Etiq_cant

Pfl_Func

# CodigoPfl *# CodigoFun *

InsCarreras

# CodigoCar *# CodigoUsr *Fecha_Ins *

Usuarios

# CodigoUsr *Nombre *DirecciónTeléfonoMailFecha_nacFecha_ingresoSexo *País *

TLogins

# CodigoUsr *# Login *

Pasw *PerfilEtiqueta_1Etiqueta_2

:Etiqueta_10

Funcionalidades

# CodigoFun *Nombre *Desc *

Perfiles

# CodigoPfl *CodEtiquetaNombreDesc

Etiquetas

# CodEtiqueta *Etiqueta_1Etiqueta_2

:Etiqueta_10Etiq_cant

HistorialUsr

# Codigo2 *Nombre2Dirección2Teléfono2Mail2Fecha_nac2Fecha_ingreso2Sexo2País2

# Fecha_egreso *

HistorialUsr

# Codigo2 *Nombre2Dirección2Teléfono2Mail2Fecha_nac2Fecha_ingreso2Sexo2País2

# Fecha_egreso *

HistorialUsr

# Codigo2 *Nombre2Dirección2Teléfono2Mail2Fecha_nac2Fecha_ingreso2Sexo2País2

# Fecha_egreso *

HistorialUsr

# Codigo2 *Nombre2Dirección2Teléfono2Mail2Fecha_nac2Fecha_ingreso2Sexo2País2

# Fecha_egreso *

Pfl_Func

# CodigoPfl *# CodigoFun *

Cursos

# CodigoCur *Nombre *Fecha_alta *Con_insp_presencial *Esta_en_carrera *CodEtiquetaEtiqueta_1

:Etiqueta_10

Cursos

# CodigoCur *Nombre *Fecha_alta *Con_insp_presencial *Esta_en_carrera *CodEtiquetaEtiqueta_1

:Etiqueta_10

Cursos

# CodigoCur *Nombre *Fecha_alta *Con_insp_presencial *Esta_en_carrera *CodEtiquetaEtiqueta_1

:Etiqueta_10

Cursos

# CodigoCur *Nombre *Fecha_alta *Con_insp_presencial *Esta_en_carrera *CodEtiquetaEtiqueta_1

:Etiqueta_10

HistorialCurso

# CodigoCur3 *Nombre3Fecha_alta3Con_insp_presencial3Esta_en_carrera3

# Fecha_Baja3 *

HistorialCurso

# CodigoCur3 *Nombre3

Con_insp_presencial3Esta_en_carrera3

# Fecha_Baja3 *

HistorialCurso

# CodigoCur3 *Nombre3Fecha_alta3Con_insp_presencial3Esta_en_carrera3

# Fecha_Baja3 *

HistorialCurso

# CodigoCur3 *Nombre3

Con_insp_presencial3Esta_en_carrera3

# Fecha_Baja3 *

HistorialCarrera

# CodigoCar4Nombre4Fecha_alta4Ins_Presencial4

# Fecha_Baja4

HistorialCarrera

# CodigoCar4Nombre4Fecha_alta4

# Fecha_Baja4

HistorialCarrera

# CodigoCar4Nombre4Fecha_alta4Ins_Presencial4

# Fecha_Baja4

HistorialCarrera

# CodigoCar4Nombre4Fecha_alta4

# Fecha_Baja4

UsrPflCur

# CodigoUsr *# CodigoPfl *# CodigCur *

UsrPflCur

# CodigoUsr *# CodigoPfl *# CodigCur *

UsrPflCur

# CodigoUsr *# CodigoPfl *# CodigCur *

UsrPflCur

# CodigoUsr *# CodigoPfl *# CodigCur *

Carreras

# CodigoCar *NombreFecha_altaIns_Presencia

Carreras

# CodigoCar *

Fecha_altaIns_Presencia

Carreras

# CodigoCar *NombreFecha_altaIns_Presencia

Carreras

# CodigoCar *

Fecha_altaIns_Presencia

Cursos de Carreras

# CodigoCar *# CodigoCur *

Cursos de Carreras

# CodigoCar *# CodigoCur *

Cursos de Carreras

# CodigoCar *# CodigoCur *

Cursos de Carreras

# CodigoCar *# CodigoCur *

InsCarreras

# CodigoCar *# CodigoUsr *Fecha_Ins *

CodigoSeg *

InsCursos

# CodigoCur *# CodigoCar *# CodigoUsr *

Fecha_Ins *CodigoSeg *

InsCursos

# CodigoCur *# CodigoCar *# CodigoUsr *

Fecha_Ins *

InsCursos

# CodigoCur *# CodigoCar *# CodigoUsr *

Fecha_Ins *CodigoSeg *

InsCursos

# CodigoCur *# CodigoCar *# CodigoUsr *

Fecha_Ins *

Historial AlumnoHistorial AlumnoHistorial AlumnoHistorial Alumno

Disponibles

# CodigoCur *# Fecha_ini *

Disponibles

# CodigoCur *

#FechaFinMarcado

Disponibles

# CodigoCur *# Fecha_ini *

Disponibles

# CodigoCur *

#FechaFinMarcado

Etiquetas de Curso

# Código Etiq *

Cant_etiq

Etiquetas de Curso

# Código Etiq *

Cant_etiq

Valores de Etiquetas

Etiqueta_1Etiqueta_2..Etiqueta_10

Valores de EtiquetasValores de Etiquetas

Etiqueta_1Etiqueta_2..Etiqueta_10

Seguimiento Alumno

:

Seguimiento Alumno

:#CodSegCur#CodSegAlu#FechaInsNotaResultadoPuntajeEvaluadoCarreraFechaDesdeFechaHastaFechaAprobación

Seguimiento Alumno

:

Seguimiento Alumno

:#CodSegCur#CodSegAlu#FechaInsNotaResultadoPuntajeEvaluadoCarreraFechaDesdeFechaHastaFechaAprobación

:

Actuación de alumno

:#CodSegCur#CodSegAlu#FechaIns#CodPrueba PuntajePruebaFechaDesdeFechaHasta

#FechaRealizacion

:

Actuación de alumno

:#CodSegCur#CodSegAlu#FechaIns#CodPrueba PuntajePruebaFechaDesdeFechaHasta

#FechaRealizacion

28

Líneas a destacar

Gestión de Configuración y Control de Cambios Control de versiones Línea base Metodología de control de cambios

Gestión de Calidad Planificación Revisiones de calidad y Técnicas

Formales

29

Líneas a destacar

Comunicación Establecer métodos de comunicación Mantener informados a todos los

involucrados en el proyecto (equipo de trabajo, cliente, usuario, etc)

Seguimiento de satisfacción del cliente

30

Trabajando con MoDSGX

Roles Experiencia Ajustando el modelo...

31

Roles - definición

AnalistaAnaliza el sistema, conduce y coordina el relevamiento de

requerimeintos ... Perfil para el rol

Una persona que actúa en éste rol debe tener buenas habilidades de comunicación, interpersonal y en forma escrita ...

Actividades que son responsabilidad del rol Relevamiento de requerimientos ...

Entregables que son responsabilidad del rol Glosario ...

Actividades en las que está involucrado el rol Diseño del Sistema ...

32

Roles

33

Roles

34

Roles a destacar

Especialista Técnico Es responsable de seleccionar, adquirir y

configurar las herramientas que sean necesarias, así como investigar tecnologías que se quieran utilizar.

Se definen los siguientes: Especialista Técnico Especialista Técnico Java y Configuración Especialista Técnico Genexus y Base de

datos

35

Roles a destacar

Responsable de SCM Proporciona la infraestructura y entorno

para la Gestión de Configuración. Este entorno debe facilitar la revisión de productos, el rastreo de defectos y controlar las versiones y los cambios.

Es responsable de la creación y seguimiento de la Línea Base del proyecto.

Es responsable del cumplimiento del proceso de gestión de cambios.

36

Roles a destacar

Responsable del Consolidado Es responsable de planificar la integración de

sistema y llevarla a cabo. Responsable del Núcleo

Implementa y mantiene la Base de conocimiento Núcleo.

Todos los cambios a esta Base son su responsabilidad.

Debe distribuir la Base de conocimiento Núcleo a las demás Bases de conocimiento del proyecto.

37

Combinación de Roles

Características del proyecto: Grupo de 9 personas 17 roles en el modelo

Compatibilidad de roles Esfuerzo equilibrado durante el

proyecto

38

Combinación de Roles – 9 personas

Analista -Responsable Consolidado -Implementador

Especialista técnico Genexus y Base de datos –Responsable del Núcleo – Implementador

Analista (Responsable de análisis) - Documentador de usuario -Instructor - Asistente verificación

Especialista técnico – Implementador

Especialista técnico Java y configuración – Implementador

39

Combinación de Roles – 9 personas

Responsable de verificación – Analista

Arquitecto – Coordinador de desarrollo –Asistente verificación

Administrador – Responsable de Comunicación – Asistente verificación

Responsable de SQA – Responsable de SCM

40

Experiencia

Producto: Portal Web para manejo de educación

a distancia Características técnicas:

Genexus 7.5 Generador Java DB2 UDB versión 7.1 Reuso de business objects (chat y

foro)

41

Experiencia - algunos datos

Grupo A B

Integrantes 9 9

Esfuerzo total (horas) 3436 2508

Dedicación (promedio) 381 278

Tamaño producto (objetos GX) 460 246 Transacciones 40 40

Procedimientos 254 98 Reportes 0 12

Web Panels 166 96

42

Experiencia – esfuerzo por línea de trabajo

0

100

200

300

400

500

600

700

800

900

Aná

lisis

/Req

.

Gen

eral

Dis

eño

Impl

emen

taci

ón

Ges

tión

deC

alid

ad

Ges

tión

deC

onfig

urac

ión

yC

ontr

ol d

eC

ambi

os

Ges

tión

deP

roye

cto

Ver

ifica

ción

Com

unic

ació

n

Tran

sici

ón a

len

torn

o de

lus

uario

Semana 12

Semana 11

Semana 10

Semana 9

Semana 8

Semana 7

Semana 6

Semana 5

Semana 4

Semana 3

Semana 2

Semana 1

43

Satisfacción

Grupo A Grupo B

Grupo / Producto Satisfecho Satisfecho

Grupo / Modelo de proceso

Satisfecho Satisfecho

Cliente / Producto

Satisfecho Insatisfecho

Cliente / Modelo de proceso

Satisfecho Indiferente

44

Ajustando el Modelo ...

MoDSGX2002

Experiencia

AjustesAl Modelo

MoDSGX2003

45

Evaluación y trabajo futuro - Plan Puntos fuertes Aspectos a mejorar MoDSGX ¿puede servir fuera de

Facultad? Líneas de trabajo Planes para el 2003

46

Evaluación

Puntos fuertes Se generaron productos razonables a pesar

de: falta de experiencia previa en GeneXus baja supervisión grupos con numerosos integrantes

Definición y división de roles con carga equilibrada

Utilización de Casos de Uso muy natural y adecuada para trabajo con GeneXus

47

Aspectos a mejorar Interacción con Cliente/Usuario

los grupos tardaron demasiado en mostrar productos andando

en parte debido a dificultades en preparar ambiente

Medir el tamaño de los productos Automatizar pruebas Gestión de la configuración “Agilizar” el proceso

48

MoDSGX ¿puede servir fuera de Facultad? Tal cual, seguramente NO Para equipos numerosos puede ser

un punto de partida o referencia interesante

49

Líneas de trabajo del área IS Tres líneas relacionadas

Procesos y métricas de software Verificación Desarrollo con GeneXus en equipos

numerosos

50

Planes para el 2003 Utilizar nuevamente MoDSGX,

ajustando su formulación y su utilización, con un equipo más numeroso (13)

Desarrollar y probar un nuevo modelo de proceso para desarrollo con GeneXus con eXtreme Programming

Procurar la automatización de las pruebas

51

Preguntas?

Página Webwww.fing.edu.uy/~t5ingsw/index.htmwww.fing.edu.uy/inco/cursos/ingsoft

Direcciones de correoDoris Correa

doris.correa@universal.com.uyXimena Romano

xromano@uy.ibm.comJorge Triñanes

triniane@fing.edu.uy

top related