Está en la página 1de 21

Guía del SWEBOK

Versión 2004

Enrique Bañuelos Gómez


ebanuelos@gmail.com
¿Qué es el SWEBOK?
 El significado del acrónimo es “SoftWare
Engineering Body Of Knowledge”
 Es un proyecto del Comité de Prácticas
Profesionales de la Sociedad de Computación
del “Institute of Electrical and Electronics
Engineers (IEEE)”.

Ingeniería de Software III - FPUNA


SWEBOK ≠ Cuerpo de Conocimiento
 El Proyecto SWEBOK no debe ser
confundido con el cuerpo de conocimiento
completo de la IS.
 Más bien, el objetivo del SWEBOK es
describir la porción del cuerpo de
conocimiento que es generalmente aceptada,
organizarla y proveer acceso al compendio
mediante una clasificación por tópicos.
Ingeniería de Software III - FPUNA
Objetivos
 Promover una visión consistente de la IS a
nivel mundial.
 Clarificar el lugar que ocupa y los límites de
la IS con respecto a otras disciplinas.
 Caracterizar el contenido de la IS.

Ingeniería de Software III - FPUNA


Categorías de Conocimiento
 Conocimientos generalmente aceptados: Prácticas
tradicionales bien establecidas y recomendadas por la
mayoría de las organizaciones.
 Conocimientos avanzados y de investigación: Prácticas
innovadoras que están siendo probadas y/o utilizadas por
pocas organizaciones y conceptos que todavía están
siendo desarrollados y probados por organizaciones de
investigación.
 Conocimientos especializados: Prácticas que se aplican
solamente a cierto tipo de aplicaciones.

Ingeniería de Software III - FPUNA


Áreas de Conocimientos (KAs)
 El SWEBOK cubre once áreas divididas en
dos grupos:
 Las cinco primeras áreas abarcan las fases
clásicas de un modelo en cascada (waterfall) y se
presentan en ese orden.
 Las restantes seis incluyen los demás aspectos de
la IS y conocimientos sobre áreas relacionadas
con la misma.

Ingeniería de Software III - FPUNA


Las cinco primeras KAs

Ingeniería de Software III - FPUNA


Las últimas seis KAs

Ingeniería de Software III - FPUNA


Requerimientos del Software (1)
 Es bien sabido que los proyectos de IS son
críticamente vulnerables cuando estas
actividades son hechas de manera pobre.
 Conceptos básicos
 Definición de Requerimientos del Software.
 Requerimientos del producto y del proceso.
 Requerimientos Funcionales y no Funcionales.

Ingeniería de Software III - FPUNA


Requerimientos del Software (2)
 Proceso de Requerimientos.
 Obtención (elicitation) de Requerimientos.
 Análisis de Requerimientos.
 Especificación de Requerimientos.
 Validación de Requerimientos.
 Consideraciones prácticas.

Ingeniería de Software III - FPUNA


Diseño del Software (1)
 “Es el proceso de definir la arquitectura, los
componentes, las interfaces y otras características de
un software. También es el resultado de dicho
proceso”.
 Conceptos Fundamentales:
 Concurrencia.
 Control y Manejo de Eventos.
 Distribución de Componentes.
 Manejo de Errores.
 Interacción y Presentación.
 Persistencia de los Datos.

Ingeniería de Software III - FPUNA


Diseño del Software (2)
 Estructura y Arquitectura del Software.
 Análisis de Calidad y Evaluación del Diseño
de Software.
 Notaciones de Diseño de Software.
 Estrategias y Métodos de Diseño de Software.

Ingeniería de Software III - FPUNA


Construcción del Software (1)
 Esta área está fuertemente relacionada con varias
otras áreas, en especial la del Diseño y la de Pruebas
de Software; pero también con otras como la
Configuración y la Calidad del Software, y otras
más.
 Conceptos Fundamentales:
 Minimizar la complejidad.
 Anticiparse a los cambios.
 Construir (preparando) para verificar.
 Construir basándose en estándares.

Ingeniería de Software III - FPUNA


Construcción del Software (2)
 Administrar la Construcción de Software
implica:
 Seleccionar los factores utilizados para medir la
productividad de esta etapa.
 Seleccionar el método o modelo de construcción.
 Lineal.
 Iterativo.
 Planear el orden en el que se crean e integran
componentes.

Ingeniería de Software III - FPUNA


Pruebas del Software (1)
 Verificación dinámica de que el comportamiento de
un programa mediante un conjunto finito de casos de
pruebas cuidadosamente seleccionados del dominio
de ejecución (usualmente infinito) se corresponde
con el comportamiento esperado.
 Aspectos clave:
 Criterio de selección de pruebas.
 Efectividad de las pruebas.
 Testeo para identificación de errores.
 Limitaciones teóricas y prácticas de las pruebas.
 El problema de caminos no recorribles.

Ingeniería de Software III - FPUNA


Pruebas del Software (2)
 Niveles de Pruebas.
 Técnicas de Pruebas.
 Medidas relacionadas con las Pruebas.
 El proceso de Pruebas.

Ingeniería de Software III - FPUNA


Mantenimiento del Software (1)
 Modificación realizada luego de la entrega del
producto con el objetivo de corregir defectos,
mejorar en eficiencia o en otros aspectos, o para
adaptar el producto a modificaciones en el entorno.
 Aspectos clave:
 Aspectos Técnicos.
 Aspectos Administrativos.
 Estimaciones de Costo.
 Medidas.

Ingeniería de Software III - FPUNA


Mantenimiento del Software (2)
 El proceso del Mantenimiento:
 Procesos.
 Actividades.
 Técnicas para el Mantenimiento:
 Comprensión del programa.
 Reingeniería.
 Ingeniería Reversa.

Ingeniería de Software III - FPUNA


Las seis restantes KAs
 Manejo de Configuraciones de Software.
 Gestión en la Ingeniería de Software.
 Procesos en la Ingeniería de Software.
 Herramientas y Métodos de la IS.
 Calidad del Software.
 KAs de las disciplinas relacionadas.
 Ciencias de la Computación
 Administración.
 Matemáticas.
 Gestión de Proyectos.
 Gestión de Calidad.

Ingeniería de Software III - FPUNA


Conclusiones
 ¿En qué, o cómo puede sernos útil el
SWEBOK, tanto en lo académico como en la
vida profesional?

Ingeniería de Software III - FPUNA


Referencias
 IEEE Computer Society. Guide to the
Software Engineering Body of Knowledge.
2004 Version.
 Mención especial:
 Parte de esta presentación está basada en un
trabajo presentado el 11 de noviembre del 2005
como parte de esta cátedra, por Derlis Zárate y
Enrique Bañuelos.

Ingeniería de Software III - FPUNA