Escolar Documentos
Profissional Documentos
Cultura Documentos
Software de
Comunicaciones
2009-2010 1
© Los autores
Índice
Software de
Comunicaciones
2009-2010 2
© Los autores
1. Visión general / definición de términos
Software de
Comunicaciones
2009-2010 3
© Los autores
Software de
Comunicaciones
2009-2010 4
© Los autores
¿Qué es la ingeniería del software? (2/4)
Software de
Comunicaciones
2009-2010 5
© Los autores
Software de
Comunicaciones
2009-2010 6
© Los autores
¿Qué es la ingeniería del software? (4/4)
Software Engineering,
Software de
Sommerville
Comunicaciones
2009-2010 8
© Los autores
¿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,
2009-2010
Sommerville 9
© Los autores
Software de
Comunicaciones
2009-2010 12
© Los autores
¿Para qué la ingeniería del software? (4/4)?
© Los autores
software atrasado lo atrasa más 13
• 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
2009-2010 14
© Los autores
¿Qué es un proceso de desarrollo? (2/2)
Software de
Comunicaciones
2009-2010 19
© Los autores
Análisis de
sistema
Operación y
Desarrollo
Mantenimiento
Sistema software
Requisitos
de usuario
Software de
Comunicaciones
2009-2010 20
© Los autores
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
2009-2010 21
© Los autores
Análisis de
requisitos Especificación del
sistema software
Implementación
y prueba unitaria Componentes
implementados
Integración
y prueba sistema Sistema
integrado
Operación
y mantenimiento
Software de
Comunicaciones
2009-2010 22
© Los autores
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
2009-2010 23
© Los autores
progreso
Software de
Comunicaciones
2009-2010 Source: A Spiral Model of Software Development and Enhancement 27
Barry Boehm, IEEE Computer, May 1988
© Los autores
Software de
Comunicaciones
2009-2010 28
© Los autores
Ingeniería de requisitos
Qué
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
De
to
sc
da
rip
Diagramas Diagramas de
de
ció
entidad-relación flujo de estados
ión
n
ipc
fu
nc
cr
io
s
na
De
Diccionario
l
de datos
Diagramas de
transición de estados
Descripción de control
Software de
Comunicaciones
2009-2010 31
© Los autores
Software de
Comunicaciones
2009-2010 33
© Los autores
Software de
Comunicaciones
2009-2010 34
© Los autores
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
2009-2010 38
© Los autores
Estilos de arquitectura software
© Los autores
centralizado, cliente-servidor 3-tier, etc. 39
Software de
Comunicaciones
2009-2010 40
© Los autores
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)
2009-2010 41
© Los autores
Software de
Comunicaciones
2009-2010 42
© Los autores
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
2009-2010 44
© Los autores
Garantía de calidad /
Control de calidad del software (1/2)
Garantía de calidad /
Control de calidad del software (2/2)
Software de
Comunicaciones
2009-2010 Fuente: Object-oriented Software Engineering. 46
Steven Schach. McGraw-Hill.
© Los autores
Métodos formales (1/2)
Software de
Comunicaciones
2009-2010 50
© Los autores
6. La Prueba de Software
Software de
Comunicaciones
2009-2010 51
© Los autores
Visión general
Software de
Comunicaciones
2009-2010 52
© Los autores
Definición de un caso de prueba
• 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
2009-2010
– pruebas de mutación
58
© Los autores
7. Algunos novedades en el campo
Software de
Comunicaciones
2009-2010 59
© Los autores
• 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?
• Armazones software (frameworks):
– diseño reutilizable para un sistema o subsistema software
(¿patrón arquitectural?)
• Líneas de producto software
– proceso de desarrollo software para un conjunto de
productos relacionados
Software de
Comunicaciones
2009-2010
– generalmente usan armazones software
60
© Los autores
Algunos novedades en el campo (2/3)