Académique Documents
Professionnel Documents
Culture Documents
Tema 1: Introduccin a la
Ingeniera del Software
SI ESTAS LISTO?
ENTONCES
QUE COMIENCE EL JUEGO
Resumen
Resumen
Descriptores
Bibliografa
Esquema
Software
Proceso software
Metodologas
Proceso Unificado
CASE
Ejercicios
1. Software
Agricultura: Exportaciones 26.000 millones; Importaciones 14.000 millones; Balance: 12.000 millones
Industria Aeroespacial: Exportaciones 11.000 millones; Importaciones 3.000 millones; Balance: 8.000 millones
Qumica: Exportaciones 26.000 millones; Importaciones 19.000 millones; Balance: 7.000 millones
Vehculos: Exportaciones 21.000 millones; Importaciones 43.000 millones; Balance: -22.000 millones
Bienes manufacturados: Exportaciones 200.000 millones; Importaciones 265.000 millones; Balance: -65.000 millones
El gobierno USA estima que las empresas han gastado cerca de 3,3 trillones de dlares en
tecnologas de la informacin en la ltima dcada
Ing. Willian Zamalloa Paro DAI-UNSAAC
La media era 100 dlares por lnea de cdigo, se esperaba pagar 500
dlares por lnea, y se termin pagando entre 700 y 900 dlares por lnea,
6.000 millones de dlares de trabajo fueron descartados
Advanced Automation System (FAAm 1982-1994)
Un caso divertido?
10
11
12
13
14
Definicin
15
16
Calidad cuestionable
Mal funcionamiento
Insatisfaccin de los clientes
Imprecisin en la planificacin y la estimacin
Baja productividad
17
Dificultad inherente
Gran complejidad
18
Responsables no cualificados
Falta de comunicacin entre las partes
Desconocimiento de las nuevas tendencias
Resistencia al cambio
Falta de reconocimiento de la figura del informtico
Una amplia mitologa y falta de cultura informtica de la sociedad
Mitos de gestin
19
Vista externa
Vista interna
20
Factores externos
Factores internos
OBJETIVO
Buenas propiedades
internas
Satisfacer factores
externos
21
Factores externos
Facilidad de mantenimiento
Confiabilidad
Portabilidad
Fcil de utilizar
Debe tener una interfaz de usuario apropiada y una documentacin adecuada
Reusabilidad
Usabilidad
Eficacia
22
Factores internos
Facilidad de traza
Modularidad
Tolerancia a fallos
Eficiencia de ejecucin
Eficiencia de almacenamiento
Autodescripcin
Legibilidad
Facilidad de expansin
Independencia del sistema
Independencia del hardware
Estandarizacin de datos
Estandarizacin de comunicaciones
23
Productos genricos
Productos personalizados
Desarrollos a medida
24
Software de sistemas
25
Software empotrado
26
Software de gestin
Anlisis de datos
Lenguajes declarativos
Datawarehouse
27
Aplicaciones Web
28
Transaccionales
Workflow
Portales Web
Ejemplos
Peridicos en lnea, catlogos de
productos, libros electrnicos en lnea
Formularios de registro, presentacin de
informacin personalizada, juegos en
lnea
Compra electrnica, banca electrnica
Sistemas de planificacin en lnea,
gestin de inventario, monitorizacin de
estado
Sistemas de autor distribuido,
herramientas de diseo colaborativas
Grupos de chat, sitios que recomiendan
productos o servicios, marketplaces en
lnea, subastas en lnea
Centros comerciales, intermediarios en
lnea
[Ginige y Murugesan, 2001]
29
a big chunk of software that runs on a computer but a combination of web services; and
the platform for which developers write their programs will no longer be the operative
system, but application servers (The Economist, June 2003)
30
Gran funcionalidad
Objetivos diferentes y en ocasiones conflictivos
En su concepcin, desarrollo y mantenimiento interviene un gran
nmero de personas con diferentes perfiles
Elevado tamao
Requisitos, tecnologa...
31
2. Conceptos bsicos
de la IS
32
Introduccin
33
Definiciones (i)
34
Definiciones (ii)
35
Mtodo de Ingeniera
36
Implementacin
37
38
Realidad
Implementacin
Lenguaje de especificacin
Lenguaje de programacin
Dominio de la solucin
39
Los requisitos del software han de ajustarse a los requisitos del resto
de los elementos que constituyen este sistema
El ingeniero del software ha de estar implicado en el desarrollo de los
requisitos del sistema completo, comprendiendo el dominio de
actividad en su totalidad
40
Conceptos (i)
Proyecto
Actividad
producido por
Producto
consume
Recursos
Tarea
Participante
Sistema
Modelo
Documento
Tiempo
Equipamiento
41
Conceptos (ii)
Proceso
Mtodo
Notacin
Herramientas
Metodologa
42
3. Proceso software
43
Introduccin (i)
Recapitulacin
del desarrollo
de software
Proceso
Conjunto de actividades
(Flujos de trabajo)
plantilla
Dominio
Aplicacin
requisitos
usuario
Proyecto
resultado
Producto
Artefactos
participante
Clientes
Usuarios
Ingenieros software Personas
..
.
modelos
cdigo
manuales
..
.
44
Introduccin (ii)
Ingeniera del Software es la unin que mantiene juntas las capas de tecnologa y
que permite un desarrollo racional y oportuno de la Ingeniera del Software
[Pressman, 2006]
G. Booch
45
46
47
Comprensin
Visibilidad
Rapidez
Capacidad de mantenimiento
Los errores del proceso se detectan antes de que se produzcan errores en el producto
Robustez
Confianza
Aceptacin
Soporte
Adaptacin
48
Flujo de actividades
49
50
51
Temporales
Lgicas
52
Las distintas fases por las que pasa el software desde que nace una necesidad de
mecanizar un proceso hasta que deja de utilizarse el software que sirvi para ese
objetivo, pasando por las fases de desarrollo y explotacin [Frakes et al., 1991]
El perodo de tiempo que comienza cuando se concibe un producto software y
finaliza cuando el producto pierde su utilidad. El ciclo de vida del software incluye
las siguientes fases: fase de requisitos, fase de diseo, fase de realizacin, fase de
pruebas, fase de instalacin y aceptacin, fase de operacin y mantenimiento y,
algunas veces, fase de retirada [AECC, 1986]
Un marco de referencia que contiene los procesos, las actividades y las tareas
involucradas en el desarrollo, la explotacin y el mantenimiento de un producto de
software, abarcando la vida del sistema desde la definicin de requisitos hasta la
finalizacin de su uso [ISO/IEC, 1995]
Una aproximacin lgica a la adquisicin, el suministro, el desarrollo, la explotacin
y el mantenimiento del software IEEE Std 1074-1997 Standard for Developing
Software Life Cycle Processes [IEEE, 1999b]
53
54
55
56
Especificacin
Diseo
Instalacin
Prueba
Fabricacin
Mantenimiento
57
La definicin
El desarrollo
El mantenimiento
58
Fase de definicin
Un Anlisis de Sistemas
Un Anlisis de Requisitos
Se especifican todos los requisitos de usuario que el sistema tiene que satisfacer
Esta fase est orientada al QU
59
Fase de desarrollo
60
Fase de mantenimiento
Mantenimiento correctivo
Mantenimiento adaptativo
Mantenimiento perfectivo
Correccin de errores
Mantenimiento preventivo
61
62
Suministro
Procesos de Soporte
Documentacin
Gestin de la configuracin
Aseguramiento de la calidad
Verificacin
Desarrollo
Explotacin
Mantenimiento
Validacin
Revisin conjunta
Auditora
Resolucin de problemas
Procesos de la Organizacin
Gestin
Infraestructura
Mejora
Formacin
63
Procesos principales: Son los que resultan tiles a las personas que
inician o realizan el desarrollo, la explotacin o el mantenimiento del
software durante su ciclo de vida
64
65
66
67
68
69
Codificacin
Prueba
Empezar a
codificar
Continuar
codificando
Comienza
el proyecto
Final
Tiempo
70
Inconvenientes
Cdigo espagueti
71
72
Fases secuenciales
73
Prueba
del sistema
Prueba
de aceptacin
Modelo en cascada [Pfleeger, 2002]
Operacin y
mantenimiento
74
Especificacin de requisitos
Especificacin de diseo
Diseo
Codificacin
Mdulos implementados
Prueba
Mdulos
probados
Mantenimiento
Sistema funcionando
y actualizado
75
Inconvenientes
Se tarda mucho tiempo en pasar por todo el ciclo [Piattini et al., 2004]
Es un modelo monoltico [Pressman, 2006]
Hasta llegar a las etapas finales del desarrollo no habr una versin operativa del
programa, lo que influye negativamente en el descubrimiento a tiempo de errores o
incongruencias en los requisitos
76
Consideraciones finales
77
Modelo V
Operacin y
mantenimiento
Validar requisitos
Anlisis
Diseo
Verificar diseo
Pruebas
de aceptacin
Pruebas de
integracin
y de sistema
Pruebas
unitarias
Codificacin
Aplicacin
Modelo V
78
79
Enfoque desechable
Enfoque evolutivo
Enfoque mixto
80
Proceso iterativo
Obtencin de
requisitos
Diseo rpido
Construccin
del prototipo
Refinamiento
del prototipo
Evaluacin
del prototipo
Producto final
Modelo de prototipos
81
Ventajas
Validar
Diseo del
sistema
Verificar
Diseo del
programa
Anlisis de
requisitos
Prototipado
Codificacin
Pruebas
unitarias y de
integracin
Prueba
del sistema
Prueba
de aceptacin
Operacin y
mantenimiento
82
Inconvenientes
El sistema se puede llegar a deteriorar tendiendo hacia el modelo
primitivo
Se suele refinar el prototipo hacia el sistema final en lugar de
desecharlo y empezar desde el principio
El cliente puede encontrar atractivo el prototipo y quedarse con el
prototipo como sistema final
Relajacin de los desarrolladores
No disminuye el tiempo entre la definicin de los requisitos y la
entrega del producto
Al usuario le desagrada que se deseche cdigo
83
84
Inconvenientes
85
Transformacin
..
Especificacin
formal
Transformacin
Prueba
Transformacin
Requisitos
del sistema
Sistema
entregado
Comparar con los
requisitos. Actualizar
cuando se necesite
86
87
88
89
Anlisis
Diseo
Cdigo
Entrega del
primer incremento
Prueba
Incremento 2
Anlisis
Diseo
Cdigo
Prueba
Entrega del
segundo incremento
Incremento 3
Anlisis
Diseo
..
Cdigo
Prueba
Entrega del
tercer incremento
Tiempo de calendario
90
Minicascada
Cada iteracin reproduce el ciclo de vida en cascada, pero a una escala menor
Los objetivos de cada iteracin se establecen en funcin de la evaluacin de
las iteraciones precedentes
Las fases tradicionales se cubre gradualmente en las diversas iteraciones
Las actividades internas se solapan porque dentro de una iteracin no
necesitan terminarse de golpe, siendo la transicin entre dos actividades
progresiva
91
Planificacin
Anlisis
Anlisis
Diseo
Diseo
N veces
Codificacin
Codificacin
Evaluacin
Integracin
Fases
Entrega
Transicin
progresiva
92
93
94
No se fijan fases
95
ANLISIS DE RIESGO
Determinar los
objetivos,
alternativas y
restricciones
REVISIN
Anlisis
de riesgo
Anlisis
de riesgo
Anlisis
de riesgo
Anlisis
ProtoPrototipo 3
Planifica- de riesgo
tipo 2
Prototipo
1
cin
Simulaciones,
modelos,
Plan de requisitos
Concepcin
de
Planificacin del
os
Ciclo de vida la operacin
isit re
qu ftwa
e
Diseo del
R l so
e
d
software
Plan de
Validacin de
desarrollo
Evaluacin de
alternativas
Identificar y
resolver riesgos
Integracin y
plan de pruebas
Prototipo
operativo
pruebas
Diseo
detallado
requisitos
Codificacin
y
n
i
c
Pruebas
Desarrollo,
a
Valid acin de
unitarias
c
i
f
i
verificacin
r
e
v
sitos
Pruebas de
y produccin
requi
Pruebas de integracin
del siguiente
Imp
aceptacin
lant
nivel
aci
n
INGENIERA
96
97
Progresin de la espiral
98
Ventajas
99
Inconvenientes
100
101
102
Planificacin
Anlisis de
riesgos
Comunicacin
con el cliente
Identificar
elementos
candidatos
Integrar en
el sistema
Evaluacin
del cliente
Construccin
y adaptacin
de la ingeniera
Extraer
elementos si
existen
Adaptar
elementos si
es necesario
Desarrollar
elementos si
no existen
Poner nuevos
elementos en
biblioteca
Desarrollo con reutilizacin
Desarrollo para reutilizacin
Ing. Willian Zamalloa Paro DAI-UNSAAC
103
5. Metodologas
104
Introduccin (i)
Resulta necesario establecer un enfoque sistemtico y
disciplinado para llevar a cabo un desarrollo software
El uso de una metodologa permite el dominio del proceso
descrito
Una metodologa es el conjunto de mtodos que se siguen en
[RAE, 2001]
Una metodologa software es un enfoque, una manera de
interpretar la realidad o la disciplina en cuestin, que en este
caso particular correspondera a la Ingeniera del Software
Se elaboran a partir del marco definido por uno o varios
ciclos de vida
No existe un consenso entre los diversos autores sobre el
concepto de metodologa
Ing. Willian Zamalloa Paro DAI-UNSAAC
105
Introduccin (ii)
Mejores aplicaciones
Mejor proceso de desarrollo
Establecer un proceso estndar en una organizacin
106
Definiciones (i)
107
Definiciones (ii)
108
109
110
Clasificacin de la metodologas
Estructuradas
Orientadas a procesos
Orientadas a datos
111
Metodologas estructuradas
112
113
114
Representantes
115
116
117
118
Objectory
OMT
Booch (91)
Unificacin,
Estandarizacin
UML
Mtricas
Metodologas de
segunda generacin
OMT 2
Lenguajes
Formales
Fusion
Metodologas de
tercera generacin
Syntropy
Moses
MEDEA
OPEN
UP
Booch (94)
Ing. Willian Zamalloa Paro DAI-UNSAAC
119
PROCESOS
Anlisis
DATOS
DFD
DER
Diseo
STD
RELACIONAL
Implementacin
PROGRAMA
TABLAS
120
Anlisis
Diseo
Implementacin
OBJETOS
121
DISEO
ANLISIS
Por Transformacin
Ing. Willian Zamalloa Paro DAI-UNSAAC
122
123
Representantes
124
125
126
Esto choca frontalmente con los modelos de procesos tradicionales que son
monolticos y lentos, centrados en una nica iteracin o ciclo de larga
duracin
Diversas aproximaciones
127
Caractersticas
El juego de la planificacin
Versiones pequeas
Metfora
Diseo sencillo
Hacer pruebas
Refactorizacin
Programacin en parejas
Propiedad colectiva
Integracin continua
Cliente in-situ
Estndares de codificacin
Ing. Willian Zamalloa Paro DAI-UNSAAC
128
Comunicacin
Sencillez
Realimentacin
Valenta
129
130
131
6. Proceso Unificado
132
Introduccin (i)
El Proceso Unificado es ms que un simple proceso [Jacobson
et al., 1999], es un marco de trabajo genrico que puede
especializarse para una gran variedad de sistemas software,
para diferentes reas de aplicacin, diferentes tipos de
organizaciones, diferentes niveles de aptitud y diferentes
tamaos de proyectos
Caractersticas generales
133
Introduccin (ii)
Un marco de trabajo genrico
Flexibilidad
Est basado en componentes
134
Introduccin (iii)
Analista
Responsable de
Caso de uso
Actividad
Describe un
caso de uso
Artefacto
135
El producto (i)
De ingeniera
De gestin
136
El producto (ii)
Un modelo es una abstraccin semnticamente
cerrada del sistema
Usuarios
Arquitecto
Sistema
Jefe de
proyecto
Ingenieros
de pruebas
Diseadores
Analistas
137
El producto (iii)
Modelos
Modelo de implementacin
Modelo de despliegue
Modelo de pruebas
138
El producto (iv)
Modelo de
casos de uso
Modelo de
Anlisis
Modelo de
diseo
Modelo de
despliegue
Modelo de
implementacin
Modelo de
pruebas
139
El proceso (i)
El proceso de desarrollo de software es una definicin de un
conjunto completo de actividades necesarias para convertir los requisitos
de usuario en un conjunto consistente de artefactos que conforman un
producto software, y para convertir los cambios sobre esos requisitos en
un nuevo conjunto consistente de artefactos
140
El proceso (ii)
Identificar actores y
casos de uso
Estructurar el modelo
de casos de uso
Calles
Arquitecto
Especificador de
casos de uso
Diseador de interfaz
de usuario
141
Como los casos de uso contienen las descripciones de las funciones, afectan a todas las
fases y vistas
Centrado en la arquitectura
Iterativo e Incremental
En cada iteracin se identifican y especifican los casos de uso relevantes, se crea un diseo
basado en la arquitectura seleccionada, se implementa el diseo mediante componentes y se
verifica que los componentes satisfacen los casos de uso
142
Anlisis
Diseo
Implementacin
Prueba
143
Modelo de anlisis
<<trace>>
Modelo de diseo
<<trace>>
144
Vista lgica
Clases, interfaces,
colaboraciones
Vista de implementacin
Componentes
Casos de uso
Vista de Casos
de uso
Vista de procesos
Vista de despliegue
Clases activas
Nodos
Ing. Willian Zamalloa Paro DAI-UNSAAC
145
Diseo de la arquitectura
146
Funcionalidad
del sistema
Incremento2
Anlisis
Diseo
Implementacin
Prueba
Incremento1
Anlisis
Diseo
Implementacin
Prueba
Tiempo
Ing. Willian Zamalloa Paro DAI-UNSAAC
147
Cada iteracin debe tener una duracin fija (el mximo, 6 meses)
En lugar de retrasar el final de una iteracin se recomienda eliminar
algunos de los requisitos (se dejan para la siguiente iteracin)
148
Fases
Artefactos
149
iteracin
Etapa de Ingeniera
fase
Etapa de Produccin
Ing. Willian Zamalloa Paro DAI-UNSAAC
150
Inicio
Elaboracin
Construccin
Se construye el producto
Transicin
151
Etapa de Ingeniera
Equipos pequeos, actividades poco predecibles (anlisis, viabilidad,
planificacin)
Comprende las fases
Inicio
Elaboracin
Etapa de Produccin
Inicio
tiempo
Construccin
Transicin
Elaboracin
Construccin
Transicin
152
Hitos
Se necesitan
Varios niveles
153
154
Inicio
Elaboracin
Construccin
Transicin
tiempo
Vista
Inicio
Lnea base
de arquitectura
Elaboracin
Prelim ...
Arqu.
Iteracin
Iteracin
...
Versin Versin
Capacidad
inicial
Construccin
Des.
Des.
Iteracin Iteracin
Versin del
producto
Transicin
...
Trans.
Iteracin
...
Versin
155
Disciplinas de desarrollo
156
Inicio
Elaboracin
Construccin
Transicin
Requisitos
Anlisis
Diseo
Implementacin
Pruebas
Iteraciones
preliminares
iter.
#1
iter.
#2
iter.
#n
iter.
#n+1
ite r.
#n+2
iter.
#m
iter.
#m+1
Iteraciones
157
7. CASE
158
Introduccin
159
Repositorio
Generador de
Informes
Metamodelo
Herramientas de
carga/descarga
de datos
Comprobacin de errores
160
Perspectiva funcional
Perspectiva de proceso
Perspectiva de integracin
161
Herramientas
Tcnicas
PLANIFICACIN
SEGUIMIENTO
Anlisis
Diseo
Implementacin
CASE
SUPERIORES
CASE
INFERIORES
GENERADORES
DE CDIGO
CASE INTEGRADO
Herramientas
de Soporte
DIMENSIONAMIENTO
Prueba
Mantenimiento
HERRAMIENTAS
HERRAMIENTAS
DE PRUEBA
DE MANTENIMIENTO
LENGUAJES DE 4 GENERACIN
SISTEMA DE REPOSITORIO/DICCIONARIO
CONTROL DE CONFIGURACIN
SERVICIOS DE SEGURIDAD
162
163
164
165
9. Cuestiones y ejercicios
166
Cuestiones y ejercicios
167