Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1 Is PDF
1 Is PDF
Software de
Comunicaciones
2012-2013
1
© UC3M
Índice
Software de
Comunicaciones
2012-2013
3
© UC3M
¿Qué es la ingeniería del software? (1/4)
Software de
Comunicaciones
2012-2013
4
© UC3M
¿Qué es la ingeniería del software? (2/4)
Software de
Comunicaciones
2012-2013
5
© UC3M
¿Qué es la ingeniería del software? (3/4)
Software de
Comunicaciones
2012-2013
6
© UC3M
¿Qué es la ingeniería del software? (4/4)
Software Engineering,
Software de
Sommerville
Comunicaciones
2012-2013
8
© UC3M
¿Qué no es la ingeniería del software? (2/2)
• La ingeniería de sistemas
– atañe a todos los aspectos del desarrollo de
sistemas basados en ordenadores, incluyendo el
hardware, el software y la ingeniería de procesos
– la ingeniería del software es la parte de este
proceso que atañe al desarrollo de la
infrastructura software, el control, las
aplicaciones y las bases de datos del sistema.
– los ingenieros de sistema están implicados en la
especificación del sistema, el diseño
arquitectónico, la integración y el despliegue.
Software de
Comunicaciones
Software Engineering,
2012-2013
Sommerville 9
© UC3M
¿Para qué la ingeniería del software? (1/4)?
Software de
Comunicaciones
2012-2013
12
© UC3M
¿Para qué la ingeniería del software? (4/4)?
© UC3M
software atrasado lo atrasa más 13
¿Qué es un proceso de desarrollo? (1/2)
• Proceso:
Una serie de acciones u operaciones que
conducen a un fin (Websters)
conjunto de las fases sucesivas de un fenómeno
natural o de una operación artificial (RAE)
• Proceso de desarrollo de software
El conjunto de actividades, métodos y prácticas
utilizados en la producción y evolución de
software.
Software de
Comunicaciones
2012-2013
14
© UC3M
¿Qué es un proceso de desarrollo? (2/2)
Software de
Comunicaciones
2012-2013
19
© UC3M
El proceso de desarrollo de software
Análisis de
sistema
Operación y
Desarrollo
Mantenimiento
Sistema software
Requisitos
de usuario
Software de
Comunicaciones
2012-2013
20
© UC3M
Modelo de ciclo de vida en cascada (1/2)
Análisis de
requisitos
Diseño
Implementación
y prueba unitaria
Integración
y prueba sistema
Operación
y mantenimiento
Software de
Comunicaciones
2012-2013
21
© UC3M
Modelo de ciclo de vida en cascada (2/2)
Análisis de
requisitos Especificación del
sistema software
Implementación
Componentes
y prueba unitaria
implementados
Integración
y prueba sistema Sistema
integrado
Operación
y mantenimiento
Software de
Comunicaciones
2012-2013
22
© UC3M
Modelo de ciclo de vida en V
Captura de Mundo real Operación y
requisitos Mantenim.
validación
Codificación de Prueba
componentes unitaria
Software de
Comunicaciones
2012-2013
23
© UC3M
Modelo de ciclo de vida incremental
© UC3M
– cada iteración puede tratarse como un prototipo 24
Modelo de ciclo de vida evolutivo
progreso
Software de
Comunicaciones
2012-2013
27
© UC3M
3. Captura, Análisis y Especificación
de Requisitos
Software de
Comunicaciones
2012-2013
28
© UC3M
Ingeniería de requisitos
Qué
Captura y desarrollo
de requisitos
Cómo
Análisis y especificación
de requisitos
Diseño
software
Definición habitual:
ingeniería de requisitos = captura, análisis y especificación de requisitos
Diagramas Diagramas de
entidad-relación flujo de estados
Diccionario
de datos
Diagramas de
transición de estados
Descripción de control
Software de
Comunicaciones
2012-2013
31
© UC3M
Análisis orientado a objetos
Software de
Comunicaciones
2012-2013
33
© UC3M
Notas históricas breves (1/2)
Software de
Comunicaciones
2012-2013
34
© UC3M
Notas históricas breves (2/2)
Sistema
Subsistema
Diseño Diseño
descendente ascendente
Componente Unidad de
despliegue
Unidad de
Módulo compilación
• Componentes y subsistemas
– los elementos individuales
• Conexiones
– cómo los componentes se comunican
• Topología
– cómo los components y conexiones se organizan
• Restricciones
– sobre componentes, conexiones, topología,
evolución,…
Software de
Comunicaciones
2012-2013
38
© UC3M
Estilos de arquitectura software
© UC3M
centralizado, cliente-servidor 3-tier, etc. 39
Proceso de diseño típico
Software de
Comunicaciones
2012-2013
40
© UC3M
Algunos conceptos básicos de diseño
• Abstracción
– énfasis en detalles importantes, omitiendo características
no relevantes en el contexto
• Refinamiento
– proceso de añadir más detalles paulatinamente, pasando
de modelos más abstractos a modelos más concretos.
• Modularidad
– descomposición en componentes que se integrarán para
satisfacer los requisitos del problema
• Ocultación de información / encapsulación
– los componentes sólo dejan disponible para su entorno la
información que necesitarán otros componentes (las
Software de
Comunicaciones interfaces no ofrecen detalles de implementación / diseño)
2012-2013
41
© UC3M
5. La Calidad del Software
Software de
Comunicaciones
2012-2013
42
© UC3M
Factores en la calidad del diseño (1/2)
– Legibilidad / comprensibilidad
• esquema de nombramiento
• documentación actualizada y completa
• simplicidad / elegancia
– Adaptabilidad
• evolutividad y generalidad
• automatización del acceso a la documentación
• automatización del control de versiones
Software de
Comunicaciones
2012-2013
44
© UC3M
Garantía de calidad /
Control de calidad del software (1/2)
© UC3M
• Métricas de software 45
Garantía de calidad /
Control de calidad del software (2/2)
Software de
Comunicaciones
2012-2013
46
© UC3M
Métodos formales (1/2)
Software de
Comunicaciones
2012-2013
50
© UC3M
6. La Prueba de Software
Software de
Comunicaciones
2012-2013
51
© UC3M
Visión general
Software de
Comunicaciones
2012-2013
52
© UC3M
Definición de un caso de prueba
Software de
• No se pueden escribir casos de prueba antes de que esté
Comunicaciones
2012-2013
disponible el código que se quiere probar.
54
© UC3M
No siempre (p.e. JUnit)
Prueba de software: cierto o falso (2/3)
• Cobertura
– caja blanca: segmentos, ramas, condiciones, bucles,…
– caja negra: requisitos
• Selección de datos de prueba (sobre todo para caja negra)
– partición en equivalentes (hipótesis de uniformidad)
– análisis de valores límites
• Otros tipos de pruebas
– pruebas de aceptación
– pruebas de prestaciones
– pruebas de robustez
– pruebas de resistencia
– pruebas de interoperabilidad
Software de – pruebas de regresión
Comunicaciones
2012-2013 – pruebas de mutación 58
© UC3M
7. Algunos novedades en el campo
Software de
Comunicaciones
2012-2013
59
© UC3M
Algunos novedades en el campo (1/3)
• Patrones de diseño
– solución general, repetible, a un problema recurrente de
diseño software
– inspiración en la arquitectura, especialmente en los
trabajos de Christopher Alexander
– ¿fundamentos teóricos insuficientes?