Professional Documents
Culture Documents
11 12
2
Gestión de la configuración del software
• identificación
1.5. Aspectos profesionales
HERRAMIENTAS • control de versiones
• control de cambios
y éticos de la Ingeniería del
Software
TECNICAS
• auditoría
PROCESO • informes
• construcción
87 88
89 90
15
¿Cuál es la diferencia entre Ingeniería del ¿Cuál es la diferencia entre Ingeniería del
Software y las Ciencias de la Computación? Software e Ingeniería de Sistemas?
Disciplinas integradas en la
Ingeniería del Software SWEBOK Guía
Guía
SWEBOK
SWEBOK (I)
(I)
SWEBOK
Guía
Guía
SWEBOK
SWEBOK (II)
(II)
Gestión
Gestión de
de la
configuración
configuración
la Gestión
Gestión
de
de la
la IS
IS
Proceso
Proceso de
IS
IS
de Herramientas
Herramientasyy
métodos
métodos
métodos de
de la
la IS
IS
Calidad
Calidad del
del
software
software 1.2. Sistemas de
Gestión del proceso de
gestión de la configuración
Gestión de
la organización
Conceptos del
proceso de IS
Herramientas
software
Conceptos sobre
calidad del software Información
Id tifi
Identificación
ió de
d lla G tió del
Gestión d l Infraestructura del Métodos
é Propósito
ó y planificación
f ó
configuración del software proceso/proyecto proceso software del SQA y de la V&V
23
(a) (b) (c) (d) (e)
4
Diagramas para la gestión de proyectos
Calendario del proyecto
Partir el proyecto en tareas y estimar el tiempo y los Las notaciones gráficas ilustran la planificación del
recursos necesarios para terminar cada tarea proyecto
Organizar las tareas concurrentemente para hacer un Muestran la descomposición del proyecto en tareas.
uso óptimo de la mano de obra Las tareas no deben ser demasiado pequeñas.
Minimizar las dependencias entre tareas para evitar
retrasos producidos cuando una tarea espera a otra Los diagramas de redes de actividades muestran las
para terminar dependencias de las tareas y el camino crítico
Depende de la intuición y la experiencia de los
administradores del proyecto Los diagramas de barras muestran la planificación
sobre el calendario
Actividades en el calendario
4/7 11/7 18/7 25/7 1/8 8/8 15/8 22/8 29/8 5/9 12/9 19/9
Asignación de personal
4/7 11/7 18/7 25/ 1/8 8/8 15/8 22/8 29/8 5/9 12/9 19/9
Start
T4
T1 Fred T4
T2
M1 T8 T11
T7 T12
T3
M5 Jane T1
T8
M3 T3
M2
T6
T9
T5 Anne T2
M4
T9 T6 T10
M7
T10
Jim T7
M6
T11
M8 Mary T5
T12
Finish
12
Costes de los cambios El software se deteriora
60-100x
Tasa de Incremento de fallos
fallos
cambio
1.5-6x
1x
curva real
curva ideal
Definición Desarrollo Después de
entregado Tiempo
13 14
15 16
Objetivos de la
Ingeniería del software Ingeniería del software
Mejorar la calidad del software Los ingenieros de software deben
Acortar los tiempos de desarrollo adoptar un enfoque sistemático y
Aumentar la productividad organizado en su trabajo y
Necesidad: utilizar las herramientas y técnicas más
Incrementar la reutilización del software apropiadas dependiendo
del problema a resolver,
las restricciones del desarrollo y
los recursos disponibles.
17 18
3
Objetivos del curso
Comprender los elementos característicos de la
Ingeniería del Software I ingeniería del software
Conocer de forma detallada los métodos y
herramientas de especificación de requisitos
1
¿Qué es un sistema? Sistema y subsistemas
Un conjunto de elementos (hombres, Subsistemas:
máquinas, métodos, reglas) en interacción,
que transforman (mediante un proceso) Sistema físico: Transforma un flujo físico de
entradas en un flujo físico de salidas.
unos elementos (entradas) en otros nivel operativo de la organización.
(salidas).
Sistema de gestión: controla el sistema físico,
Los sistemas no son entidades independientes, decidiendo el comportamiento del mismo en
existen en un entorno: función de los objetivos marcados.
El entorno afecta al funcionamiento y rendimiento del
sistema.
El sistema puede estar diseñado para hacer cambios en
el entorno.
25 26
¿Qué es un sistema de
Sistema y subsistemas información?
Entrada Salida
SISTEMA FÍSICO
27 28
5
¿Qué es un sistema de
información automatizado? Propiedades emergentes
Si todas las transformaciones significativas La compleja relación entre los subsistemas de
son efectuadas por máquinas un sistema significa que éste es más
complejo que la suma de sus partes.
Las tareas fundamentales de un SIA son: L propiedades
Las i d d emergentes son
Memorización del modelo y de la base de información. consecuencia de las relaciones entre los
Tratamiento automático (control, actualización, búsquedas, componentes.
cálculos).
Captura de la información
Sólo pueden asegurarse y observarse cuándo
Salida de la información. el sistema se considera como un todo.
31 32
33
Definiciones: PROCESO
Una metodología de ingeniería del software es un proceso
para producir software de forma organizada, empleando una
colección de técnicas y convenciones de notación
predefinidas Proceso: Define el marco de trabajo y permite un desarrollo UP
(James Rumbaugh et al.) racional de la IS
Conjunto de procedimientos, técnicas, herramientas y un Técnicas: Indican cómo construir técnicamente el software. Incluyen
soporte documental que ayuda a los desarrolladores a técnicas de modelado
realizar nuevo software
(Mario Piattini et al.) Herramientas: Proporcionan el soporte automático o
semiautomático para el proceso y para las técnicas
35 36
6
Actividades complementarias
¿Qué es un proceso software? de gestión
Un conjunto estructurado de actividades y resultados Organizar, planificar y programar los
asociados que conducen a la creación de un producto
de software: proyectos de software:
Estimación del coste del pproyecto
y
Especificación de requisitos: Definir la funcio-
nalidad y las restricciones en sus operaciones Planificación y calendarización del proyecto
Diseño e implementación: Producir software que Gestión de la configuración del software
cumple la especificación
Calidad del software
Validación: Asegurar que hace lo que el cliente
desea. ....
Mantenimiento (o Evolución): Seguir cumpliendo
los cambios en las necesidades del usuario.
37 38
Especificación de requisitos
del software Especificación del software
Requirements
Etapa en que se establece qué servicios se requieren Feasibility
study elicitation and
del sistema y cuáles son las restricciones de analysis
operación y desarrollo del mismo. Requirements
specification
Se obtiene un documento de requisitos, con la Feasibility Requirements
especificación
ifi ió del
d l sistema.
i t report validation
System
models
Fases de la Ingeniería de Requisitos: User and system
Estudio de viabilidad requirements
Elicitación y análisis de requisitos
Especificación de requisitos: los del usuario y los del sistema Requirements
document
Validación de requisitos
39 40
Implementación
Transformar la estructura anterior en un programa System Software Interface Component
Data
structure
Algorithm
ejecutable architecture specification specification specification specification
specification
41 42
7
Técnicas de diseño Validación del Software
Formas sistemáticas de diseñar el La verificación y la validación pretenden
sistema demostrar que un sistema es conforme
Generalmente se documenta con con su especificación y que resuelve los
modelos gráficos: requisitos del cliente
Diagramas de flujo de datos (DFDs) La prueba del sistema implica ejecutar
Diagramas Entidad-Relación el sistema con los casos de prueba que
Diagramas de estructura se obtuvieron en la especificación.
Modelos orientados a objetos
43 44
De la misma forma que los requisitos cambian según Define system Assess existing Propose system Modify
cambian las circunstancias del negocio,
negocio el software requirements systems changes systems
que da soporte al negocio debe también desarrollarse
y cambiar.
Existing New
systems
Aunque históricamente ha existido una separación system
entre el desarrollo y la mantenimiento (o evolución)
esto es cada vez más irrelevante, puesto que apenas
hay sistemas completamente nuevos.
47 48
8
Ayuda automatizada al proceso
(CASE) Tipos de herramientas CASE
Tool type Examples
La Ingeniería de Software asistida por Ordenador Planning tools PERT tools, estimation tools,
spreadsheets
(CASE) es el software que se utiliza para ayudar a las Editing tools Text editors, diagram editors, word
actividades de desarrollo y evolución del software. processors
Change management tools Requirements traceability tools, change
control systems
Automatización de actividades Configuration management tools Version management systems, system
building tools
Editores gráficos para el desarrollo del modelo de sistema Prototyping tools Very high-level languages,
Diccionario de datos para gestionar las entidades del diseño user interface generators
Method-support tools Design editors, data dictionaries, code
Generadores de GUI para la construcción del interfaz de generators
usuario Language-processing tools Compilers, interpreters
Depuradores para encontrar los fallos de los programas Program analysis tools Cross reference generators, static
Traductores automatizados para generar nuevas versiones analysers, dynamic analysers
Testing tools Test data generators, file comparators
de un programa Debugging tools Interactive debugging systems
Documentation tools Page layout programs, image editors
Re-engineering tools Cross-reference systems, program re-
49 50
structuring systems
Reengineering tools
Debugging tools
Configuration
management tools
File Integrated Process-centred
Editors Compilers Change management tools
comparators environments environments
Documentation tools
Editing tools
Analysis and
Programming Testing
design Planning tools
Objetivos de la gestión de
1.4. proyectos
Disciplinas de gestión de Organizar, planificar y programar los
proyectos proyectos de software
Disciplinas y técnicas:
Planificación y estimación de costes
Garantía de calidad
Gestión de la Configuración
Gestión de personal
…
9
Tareas de gestión de proyectos
(competencias de un jefe de proyecto) 1.4.1
Planificación del proyecto Planificación del proyecto
• Tareas a realizar y plan de trabajo
Estimación
ó del
d l coste del
d l proyecto
Supervisión y revisión del proyecto Medición
• Para comparar los progresos y costes Estimación
reales con los planeados y hacer ajustes El plan de proyecto
Herramientas gráficas
Selección y evaluación del personal
Redacción y presentación de informes
10
Métricas de Puntos de función Calidad y productividad
measurement parameter count
weighting factor
simple avg. complex
Las métricas basadas en volumen/unidad de
tiempo (líneas/programador-mes) son
number of user inputs X 3 4 6 =
imperfectas
number of user outputs X 4 5 7 =
no tienen
ti en cuenta
t factores
f t como la
l fiabilidad,
fi bilid d ell
number of user inquiries X 3 4 6 = mantenimiento, …
number of files X 7 10 15 =
number of ext.interfaces X 5 7 10 = La productividad se puede aumentar
count-total generalmente a costa de la calidad
complexity multiplier
function points
11
Problemas en la planificación
Estimar la dificultad de los problemas, y por 1.4.2
lo tanto el coste de desarrollar una solución, Otras actividades de gestión
es difícil
L productividad
La d i id d no es proporcional
i l all
número de personas que trabajan en una
tarea Gestión de riesgos
Añadir personal al final del proyecto produce Garantía de calidad
más retraso por la sobrecarga en la Gestión de la configuración
comunicación
Lo inesperado siempre ocurre
Garantía de calidad
Conceptos de calidad
Coste de los fallos encontrados en distintas etapas ¿Cómo se aplica al software?
100 60.00-100.00 Control de calidad: inspecciones, revisiones,
pruebas
Aseguramiento de la calidad: análisis, auditoría e
10 10.00 informes
3.00
1.50
1 0.75
1.00 Estándares de calidad: ISO 90003
guía para la aplicación de la ISO 9001:2000 para la
Diseño Pruebas En uso adquisición, suministro, desarrollo, instalación y
Req. Prog. Prueba mantenimiento de SOFTWARE y servicios de soporte.
del sistema
13
MODELO DE MADUREZ DE LA CAPACIDAD
Garantía de calidad Nivel Características Resultados
- Ausencia de gestión de proyectos.
- El proceso de software es cambiante e irregular:
- Los planes, estimaciones y calidad son
Proceso y impredecibles. Productividad y
Revisiones Inicial - El rendimiento depende de la capacidad calidad escasa.
Estandares formales individual de los miembros del grupo. Riesgo máximo
- Se
S establecen
t bl programas de
d formación
f ió del
d l
personal de desarrollo y mantenimiento.
Análisis
& Planifica- - Los procesos de software son estables y
Informes ción de las repetibles.
pruebas - La organización establece políticas de gerencia
Productividad y
Métricas de proyectos y procesos.
Repetible calidad baja.
- La planificación se basa en proyectos similares.
Riesgo alto.
- Existen estándares definidos y exigidos.
- El proceso se enmarca en un sistema de gestión
de proyectos basado en experiencias pasadas.
modelos de software
Hay cambios
Plan datos
datos en muchas
Pruebas piezas
código
14
¿Por qué se necesita un
lenguaje de modelado?
1.6.Lenguaje Unificado de Los sistemas complejos son difíciles de
entender si no se cuenta con un modelo que
Modelado (UML) los describa
Participantes en UML
UML aglutina múltiples enfoques
Rational Software (Grady Booch, Jim Rumbaugh y Ivar Jacobson)
Rumbaugh Digital Equipment
Booch Jacobson Hewlett-Packard
Odell i-Logix (David Harel)
Meyer IBM
Pre- y
Pre
Shlaer-Mellor ICON Computing (Desmond
( d D’Souza)
’ )
Ciclo de vida de los objetos
UML Post-condiciones
Intellicorp and James Martin & co. (James Odell)
Harel
MCI Systemhouse
Gamma et. al. State Charts
Frameworks, patrones Microsoft
Embly Wirfs-Brock ObjecTime
Singleton
Fusion Responsabilidades Oracle
Descripciones de operaciones, Platinium Technology
Numeración de mensajes Sterling Software
Taskon
Texas Instruments
95 Unisys 96
16
UML 2.x (08/2005) Aspectos Novedosos
UML: Evolución UML 1.5 (2003)
asociado
Publicación de UML 1.1 Estandarización
Septiembre 1997
UML 1.1
Incluye “stereotypes”
stereotypes como mecanismo de
Documentos
Un conjunto de recomendaciones
101
17
Arquitectura Jerarquía de modelos
Arquitectura de cuatro capas, definida en la
especificación Meta Object Facility del OMG:
105 106
UML
type Type = Real
HasAttribute
modelos
NoOfInstances NoOfInstances = 1 Pop = 2M
Area = 40 SM
HasRelationship HasRelationship
IsIn
Cuando
d se ve la
l clase
l como un objeto,
b la
l clase
l es Pop
Attribute Area
type Type = Real
HasAttribute
HasAttribute HasAttribute
HasRelationship HasRelationship
IsIn
107 108
18
...Metamodelado Terminología de metamodelado...
La idea fundamental en el metamodelado es que La idea de ver las clases como objetos puede ser
aplicada repetidamente para crear una jerarquía
las entidades del modelo (ej: clases) juegan dos
de instanciación del clases y objetos
papeles:
ell papell de
d plantilla
l till (cuando
( d se ve como una clase)
l )
el papel de instancia (cuando se ve como instancia de la
En principio está jerarquía podría continuar hasta
meta-clase) cualquier profundidad arbitraria, pero en la
práctica no se extiende más allá de cuatro niveles
de profundidad
109 110
111 112
UML: Notación
1.6.3 Bloques
Elementos
Elementos de modelado en UML Estructurales
De comportamiento
De Agrupación
De anotación
Elementos y Relaciones Relaciones
Diagramas UML Diagramas
Vistas Mecanismos
Mecanismos de Especificación
Divisiones
Adornos
Mecanismos de extensibilidad 114
19
Bloques y relaciones Paquetes en UML
Clase Objeto
Son elementos auxiliares de organización y pueden contener
cualquier elemento de modelado.
Atributos Atributos
Estado
Métodos Métodos
Nota Componente
Paquete
Nombre
115 116
Ejemplo de una
117 118
119 120
20
UML- Diagramas UML- Casos de uso
Elicitación de requisitos de usuario
Casos de Uso Introducido formalmente por Ivar Jacobson
Modelado de la estructura estática/análisis y diseño De empleo en la etapa de elicitación para captar los
Diagrama de Clases requisitos de los usuarios
Model do de la
Modelado l estructura
e t t e
estática/implementación
táti /implement ión
Diagrama de Componentes
Diagrama de Distribución De fácil comprensión por parte de los usuarios de los
sistemas
Modelado de interacción
Diagrama de secuencia Precisa otras técnicas complementarias para ser
Diagrama de comunicación
utilizada en procesos de modelado OO
Modelado dinámico
Diagrama de Estados
Diagrama de Actividades 121 122
123 124
125 126
21
UML- Diagrama de Secuencia UML- Diagrama de Comunicación
Es otro de los diagramas de interacción que se
objeto 1 objeto 2 objeto 3
incluye en el UML
inicio de un método
auto-delegación
No permite observar gráficamente la cronología de
los mensajes
destrucción de un
objeto 127 128
129 130
131 132
22
UML- Diagrama de Actividad 1.6.4
Buscar
transporte Mecanismos generales de
extensión de UML
Se va en
S Toma un
T
su auto taxi
Estereotipos.
Cambia de Mira por el
Restricciones.
marcha espejo
Valores etiquetados.
Entra a su
trabajo
133
Mecanismos de extensión:
135 136
Se pueden añadir propiedades a los elementos de Una restricción es una relación semántica entre
UML. Consisten en parejas de etiqueta + valor elementos del modelo que especifican condiciones y
proposiciones que deben de ser respetadas o
mantenidas como ciertas.
Ventana
{abstract,
autor=José Z.,
Todas las restricciones irán siempre encerradas entre
estado=comprobada} llaves ( { } ).
137 138
23
Mecanismos de extensión:
Mecanismos de extensión:
Restricciones: Restricciones: OCL
UML propone un lenguaje para expresar la
* Miembro de * navegación a través de caminos de clases en
Persona {Subconjunto} Comité el modelo.
1 Preside *
Estas expresiones se pueden encadenar, de
trabajador Empleado Empleador tal forma que el elemento más a la izquierda
*
Persona * 0..1 Empresa sea un objeto o un conjunto de objetos.
jefe
0..1
139 140
Lecturas complementarias
141
Referencia: libro de Larman 142
24