2. DOCENTE
• Delia Marina Herazo Tuirán
• Ing. de Sistemas de Información
• Magister en dirección estratégica en telecomunicaciones
• Certificación internacional en administración de Bases de
datos
• 10 años de experiencia docente en programas como:
Ingenieria de Sistemas, Analisis y Desarrollo de Sistemas de
información.
4. justificación
• Este curso es importante en el programa Ingeniería de Sistemas porque
permite al estudiante ambientarse, apropiarse y conocer la Ingeniería
del Software como una disciplina, área de la informática o ciencias de la
computación, que ofrece método y técnicas para desarrollar y
mantener software de calidad que contribuye a resolver problemas de
todo tipo.
•
• Este curso le sirve al estudiante para que pueda apropiarse y disponer
del conocimiento esencial sobre la aplicación de los conceptos
fundamentales, técnicas y metodologías que existen para el desarrollo
de aplicativos de Software con las exigencias del mercado moderno.
•
5. • Macrocompetencia:
• Desarrollar sistemas informáticos aplicando el enfoque sistémico
para proponer alternativas de solución a los problemas de las
organizaciones.
• Unidad de competencia
• Analizar los requerimientos de los sistemas informáticos para
diseñar software de acuerdo a las necesidades del usuario
utilizando normas, estándares y metodologías vigentes.
6. METODOLOGÍA
Clase Dirigida:
Escenario orientado a la comprensión teórica, conceptual y practica
de la temas contenidos en la formación tanto el docente como el
estudiante aporta de forma proactiva y participativa a la construcción de
un discurso orientado a aprender la importancia del diseño de interfaces
en el desarrollo de un aplicativo.
Se solicita que el ingenierio de Sistemas en formación asista con
una preparación previa del material, recursos y saberes necesarios para el
desarrollo optimo de la sesión, contribuyendo de manera participativa al
desarrollo de ésta.
Las lecturas, materiales y recursos serán colgados en el ambiente virtual
de aprendizaje.
7. METODOLOGIÍA
Laboratorio
Constituye el ambiente de formación fisico, dado como
una estrategia de aprendizaje formativa donde se
ejecutan actividades de aprendizaje que requieren del
apoyo de equipos e instrumentos especializados. La
actividad fundamental en estos laboratorios es aplicar los
conceptos vistos en el desarrollo de sistemas de
información
8. METODOLOGÍA
Talleres
Estrategia didáctica de aprendizaje que consta de ejercicios practicos
enfocados a actividades de diseño, planeación, ejecución y manejo de
herramientas y/o equipos especializados.
El estudiante desarrolla ejercicios planteados en el taller en función del
conocimiento adquirido para demostrar habilidades y destrezas en una
temática especifica.
Proyecto de Aula:
Proyecto que reúne de forma teórica y practica los conocimientos
adquiridos en el curso, resolviendo una problemática especifica.
9. RECURSOS
RECURSOS FÍSICOS REQUERIDOS:
• Para impartir el curso es necesario además de los
implementos para realizar las actividades en el aula de
clase, los elementos siguientes:
• El soporte de una sala de cómputo
• Equipo audiovisual: video beam y computador
• Herramienta Case: enterprise Architect , star UML
10. Contenido del Curso
• Relacionar la metodología adecuada para el desarrollo
de diferentes productos de software.
Código ético del ingeniero Software
Crisis del software
Ingeniería de requerimientos
Documentación de requerimientos
Técnicas para ingeniería de requerimiento
11. Contenido del Curso
• Analizar técnicas y procedimientos que permiten
determinar los elementos necesarios de un proyecto
de software y representar el dominio de la
información.
o Ciclo de vida para el desarrollo de software
o Metodologías para desarrollo de software
o Metodologías para ingeniería de requerimientos
12. Contenido del Curso
• Desarrollar soluciones de software considerando los
aspectos del modelo de negocios, mediante la
aplicación de la metodología adecuada a la naturaleza
del problema.
o Herramientas CASE para ingeniería de requerimientos
o Ingeniería del software (definiciones generales)
o Documentación de la metodología
o Reingeniería
13. Cuando el software de computadora triunfa (al satisfacer las necesidades de las personas
que lo usan, trabajar sin fallos durante largos periodos, será fácil de modificar e incluso
más fácil de usar) puede y debe cambiar las cosas a fin de mejorar. Pero cuando el
software fracasa (cuando sus usuarios no están satisfechos, es proclive al error, es difícil de
cambiar
e incluso más difícil de usar) pueden ocurrir, y ocurren, cosas malas. Todo mundo quiere
construir software que haga mejor las cosas y que evite las malas que acechan en la
sombra de los
esfuerzos fallidos. Para triunfar, se necesita disciplina al momento de diseñar y construir el
software. Es necesario un enfoque de ingeniería (Pressman, 2005)
Roger Pressman
14. Introducción a la ingeniería del software
Preguntas fundamentales sobre la ingeniería del software
• Preguntas fundamentales sobre la ingeniería del software
• ¿Que es el software?
• Programas de ordenador y la documentación asociada. Los productos de software se
pueden desarrollar para algún cliente en particular o para un mercado general.
• ¿Que es la ingeniería del software? La ingeniería del software es una disciplina de
ingeniería que comprende todos los aspectos de la producción de software. ¿Cuál es la
diferencia entre ingeniería de software y ciencia de la computación? La ciencia de la
computación comprende la teoría y los fundamentos; la ingeniería del software
comprende las formas practicas para desarrollar y entregar un software útil. ¿Cuál es la
diferencia entre la ingeniería del software y la ingeniería de sistemas? La ingeniería de
sistemas se refiere a todos los aspectos del desarrollo de sistemas informáticos,
incluyendo hardware, Software e ingeniería de procesos. IS es parte de este proceso.
15. Introducción a la ingeniería del software
Preguntas fundamentales sobre la ingeniería del software
• ¿Que es un proceso de software?
• Un conjunto de actividades cuya meta es el desarrollo o evolución del
software.
• ¿Cuales son los costos de la ingeniería del software?
• A grandes rasgos, el 60% de los costos son de desarrollo, el 40%
restante son de pruebas. En el caso del software personalizado , los
costos de evolución a menudo exceden los de desarrollo.
• Que es CASE (Ingenieria del software Asistida por Ordenador)?
• Sistemas de software que intentan proporcionar ayuda autimatiza da a
las actividades el proceso de software. Los sistemas CASE a menud se
utilizan como apoyo al metodo
16. Evolución Histórica del Desarrollo de Sw
Boom
TIC
¿Cómo hemos llegado hasta aquí?
4ª Era
Tecnología OO
3ª Era
• Procesamiento distribuido.
• Usuarios demandan grandes PC.
• Surgen LAN y WAN.
• Nace Arpanet.
• Ordenadores Personales (avance de
microprocesadores).
• Crecimiento del mercado cliente.
• El Sw marca la diferencia:
- errores.
+ fácil de mantener.
•Cambios en el Hw.
•Sw un añadido más:
2ª Era
HW de bajo coste
• Ordenador: un
electrodoméstico más.
• Inteligencia Artificial.
• Nuevos paradigmas de diseño:
Técnicas OO
Herramientas CASE
Poca metodología.
Sw a medida.
Distribución limitada.
1 persona.
Documentar ¿Para qué?
1ª Era
• S.O. Multiusuario.
• Sistemas de tiempo real.
• Venta Hw y Sw, ¿NEGOCIO?
• CRISIS del Sw:
Cambios por fallos/Nuevos requisitos.
Incorporación dispositivos hardware.
SW como producto
SW a medida
1.950 1.960 1.970 1.980
Mantenimiento elevado y costoso.
SW Personal e intransferible.
Imposible de mantener
1.990 2.000 2.010
17. Evolución Histórica del Desarrollo de Sw
¿Cómo hemos llegado hasta aquí?
INFRAESTRUCTURA DE COMUNICACIONES
□ Servidores de comunicaciones, switches, elementos activos sobre IP, software de comunicaciones,
dispositivos móviles, etc.
Boom
TIC
Herramientas PERSONALES SISTEMAS CORPORATIVOS
ERPs (Enterprise Resource Planing).
CRM (Customer relationship
Management).
BI Tools (Scoreboard, Dashboard).
Correo electrónico (e-mail)
Agenda (Planificación de citas)
Directorio de contactos
Confección de documentos (MS Word), Hojas de
Cálculo (Excel), Presentaciones (MS Power Point),
Notas (One note).
Voz sobre IP (Skype, VoipBuster)
Blog
Herramientas TRABAJO EN GRUPO
MS SharePoint (Gestión de Contenidos, Gestión
documental, workflow de aprobaciones, Listas
Navegador
Internet: Páginas de información, videos (YouTube),
enseñanza on-line, diccionarios, mapas, enciclopedia.
Aplicaciones de movilidad sobre smartphones: iPhone,
Nexus, HTC.
personalizadas)
Web 2.0 (Redes sociales)
Project Server
Intranet (Internal Network)
18. Evolución Histórica del Desarrollo de Sw Retos Pendientes
Si hemos ido subiendo de nivel de abstracción en los
lenguajes de programación, ¿nos permite la tecnología
actual dar otro salto más?.
¿Existe alguna manera de construir software más rápida y con
menos errores?.
La integración sigue siendo un problema difícil.
Integrar sistemas y tecnologías
Seguimos teniendo dificultades para entender bien a los
clientes/usuarios.
Muchos proyectos técnicamente correctos fracasan (el software
no sirve a los supuestos destinatarios o no lo usan).
El software es la red.
El concepto clásico cerrado de “aplicación” software está
desapareciendo.
19. La Problemática del Desarrollo de Sw
¿Qué es SOFTWARE?
Programas Datos Documentación
Líneas de Código Estructura de
Datos
Manual de Usuario
Modelos de
Construcción
20. La Problemática del Desarrollo de Sw
Características. Es…
• Es un elemento lógico y no físico.
• Es desarrollado, no se “fabrica”.
• No se estropea, pero se degrada:
Curva de bañera para fallos del Hw.
Curva ideal de fallos del Sw.
Curva real de fallos del Sw.
• No hay piezas de repuesto.
• Se construye a medida Reusabilidad.
21. La Problemática del Desarrollo de Sw
Características. Y además, debería ser…
• Mantenible.
Construido y documentado para permitir cambios.
• Fiable.
Debe hacer lo que se espera de él, no debe fallar más a menudo de
lo que se acordó en la especificación.
• Eficiente.
No debe hacer uso innecesario de recursos.
• Usable.
Interfaz de usuario adecuada.
22. La Problemática del Desarrollo de Sw
• ¿A qué se parece el software?
A un frigorífico (que se fabrica).
A un libro (que se idea y se escribe).
A una receta de cocina (que se inventa y se anota).
A un servicio de un abogado en un juicio (que nos ayuda con su
conocimiento especializado).
• ¿Producto o Servicio?.
• Entonces, ¿la gente que hace software qué clase de
habilidades y capacidades debe tener?
Arquitecto
Albañil
Jardinero
Artista
23. La Problemática del Desarrollo de Sw
Problemas, problemas, problemas…
• Planificación imprecisa ¿Cuándo entregamos?
• Baja Productividad ¿Es rentable?
• Calidad “dudosa” ¿Alguna vez se ve?
• Insatisfacción del cliente ¿Es esto lo que quería?
• Mantenimiento ineficaz ¿Siempre desarrollando?
Hay que actuar sobre…
Calidad.
Productividad.
Es necesario
aplicar conceptos
de Ingeniería
Control y Seguimiento.
Metodología.
Plazo y Coste.
1.23
24. Contexto de la Ingeniería del Sw
1.24
Perspectiva de Ingeniería
• Ingeniería (DRAE)
Estudio y aplicación, por especialistas, de las diversas
ramas de la tecnología.
• Ingeniero/a
Persona que aplica los conocimientos de una o varias
ramas de la ciencia para resolver cierto tipo de
necesidad de la gente,
Mediante el diseño, construcción u operación de algún tipo de
artefacto o sistema.
25. Contexto de la Ingeniería del Sw Perspectiva de Ingeniería
sistema proceso
INGENIERO/A
palabras clave
proyecto
1.25
usu¿a?rio
26. Contexto de la Ingeniería del Sw Perspectiva de Ingeniería
• Cualquier ingeniería se caracteriza porque:
Se necesitan conocimientos avanzados para diseñar y
construir el tipo de sistemas que la caracteriza.
Diferencia entre técnico e ingeniero.
Existen dos “momentos”:
Primero, conocer el problema, y
Sólo después, podemos diseñar y construir la solución.
Para conseguir buenos resultados (en calidad, tiempo y
costes) es necesario trabajar de forma organizada y
sistemática.
La creatividad es necesaria (diseño), pero no es suficiente,
Diferencia entre artista e ingeniero.
1.26
27. Contexto de la Ingeniería del Sw
1.27
Perspectiva de Ingeniería
• El sentido común es muy importante.
Ley del Mínimo Esfuerzo
Entre las opciones correctas elegir la más sencilla.
Reutilización (código, artefactos software y del conocimiento).
No inventar la rueda
Emplear estándares.
Aprender de la experiencia (nuestra o de otros).
Utilizar “buenas prácticas” y “lecciones aprendidas”.
“E sentid comú e e art d resolve lo
problemas, no de plantearlos.” Yoritomo Tashi
28. Contexto de la Ingeniería del Sw
1.28
Perspectiva de Ingeniería
• La ingeniería existe porque las personas diseñan y
construyen artefactos/sistemas cada vez más complejos.
• El mayor nivel de complejidad que el ser humano ha
enfrentado a lo largo de su historia se encuentra en algunos
de los sistemas software actuales (Windows Vista, Linux, MS
Office, …).
• Un indicador de la complejidad de un sistema es el número
de variables independientes que afectan al comportamiento
del sistema.
En un sistema físico (automóvil) son decenas o cientos.
En un sistema software (Windows) pueden ser miles o decenas de
miles.
29. Contexto de la Ingeniería del Sw Definición
“Aplicación de un enfoque sistemático disciplinado
y cuantificable al desarrollo, operación
(funcionamiento) y mantenimiento del software; es
deci aplicació d o principio hábito d
ingeniería al software.”
(IEEE,1993)
1.29
30. Contexto de la Ingeniería del Sw ¿Es hacer Sw una Profesión?
Distribución de los ocupados en
perfiles TIC en la Unión Europea 15
(miles), Career-Space.
Ocupaciones T
otal
Puest
os
%
Incr.
2000-
(SOC90) TIC 2004
Analistasy
Programa
dores
1.885 +6,1
IngenierosdeSoftware 1.306 +10,0
Administradoresde
Sistemas
Informáticos
1.019 +4,1
OperadoresInformáticos 696 -0,5
ConsultoresyGestores 437 +3,7
IngenierosdeDiseñoy
DesarrolloTIC
399 +0,2
Ingenieros
de
Computa
dores
348 +6,5
IngenierosEléctricos 203 -0,5
IngenierosElectrónicos 196 +3,0
TotalTIC 6.489 +4,7
TotalEmpleo 166.696 +0,8
1.30
31. Contexto de la Ingeniería del Sw ¿Es hacer Sw una Profesión?
Informe PAFET (2002): Evolución profesional habitual de los profesionales TIC.
Experiencia
Evolución
hacia gestión
de negocios
Evolución hacia
dirección técnica
de proyectos
Evolución
técnica
Tiempo
1-3 años 3-5 años
Recién
egresados
> 5 años
1.31
32. Contexto de la Ingeniería del Sw
1.32
¿Es hacer Sw una Profesión?
• Características de una Profesión:
1. Campo duradero de preocupación/interés humano.
2. Cuerpo de conocimientos codificado (Conocimiento conceptual)
3. Cuerpo de prácticas codificado (Conocimiento experimental)
4. Estándares de competencia, ética y práctica (Responsabilidad
profesional)
¿Cómo está la Informática?
• P. Denning. El Futuro de la Profesión de TI. Novática, nº
147.
Aprender de otros campos ya consolidados.
MEDICINA vs SALUD.
ABOGACÍA vs DERECHO.
33. Contexto de la Ingeniería del Sw ¿Es hacer Sw una Profesión?
• En Informática todavía se confunden tres cosas
diferentes:
Sector Económico – Profesión – Puesto de Trabajo
Salud Médico Cirujano
• Un título académico forma para una o varias profesiones
dentro de un cierto sector económico
• ¿Cuál de las tres cosas es Informática?
Sector Económico – Profesión – Puesto de Trabajo
¿?
¿?
Informática
1.33
¿?
Informática
Ing. Software
Informática
Ing. Software
Analista
34. Contexto de la Ingeniería del Sw
1.34
¿Es hacer Sw una Profesión?
• ¿Y Hacer Software?
Construir edificios no es una profesión. La profesión
es arquitecto, albañil.
Profesiones relacionadas con Hacer Software:
Ingeniero de Software
Programador
….
! HAGAMOS QUE NUESTROS TITULADOS SEAN MÁS
INGENIEROS DE SOFTWARE Y MENOS PROGRAMADORES
DE SOFTWARE !
35. Contexto de la Ingeniería del Sw
1.35
Conclusiones
• Hacer Software es un problema complejo y seguirá siéndolo.
• La Ingeniería del Software pretende resolverlo mediante la aplicación de
maneras sistemáticas y metódicas de trabajar (igual que hicieron hace
tiempo otras ingenierías).
• Existe una creciente opinión internacional para que se separe de la
Informática tradicional (Ciencia de la Computación).
• Es vital para el futuro (profesional, laboral y académico) de la Informática
que se incida más en la perspectiva de ingeniería.
Más arquitecto, menos albañil.
• La carrera de Ingeniería Informática prepara para los trabajos más
cualificados dentro de un sector económico, que está llamado a tener
varias profesiones diferenciadas.
• Una de las profesiones será ingeniería de software.
36. Cuerpo de Conocimientos - SWEBOK
Software Engineering Body of Knowledge
http://www.swebok.org/
1.36
37. Cuerpo de Conocimientos - SWEBOK
1.37
• Proyecto conjunto de IEEE-CS y ACM.
• Versión actual de 2004.
Aprobada oficialmente como ISO/IEC TR 19759:2005.
• Los objetivos principales de SWEBOK son cinco:
Promover una visión consistente del mundo de la IS.
Clarificar el papel –y delimitar las fronteras- de la IS con respecto a otras
disciplinas asociadas: ciencia de la computación, gestión de proyectos,
ingeniería de computadores, y matemáticas.
Caracterizar los contenidos de la disciplina.
Proveer acceso a los contenidos del cuerpo de conocimientos.
Proveer las bases para desarrollar planes de estudios o materiales para
certificaciones individuales.
38. Cuerpo de Conocimientos -
SWEBOK
Guía para el Cuerpo de Conocimientos de Ingeniería del Software (IS)
SWEBOK (versión 2004)
Mantenimiento Gestión de la
IS
Proceso de IS
Herramientas y
Métodos
Gestión de la
Configuración Calidad
Pruebas
Construcción
Diseño
Requisitos
* Fundamentos
* Aspectos
clave
*Iniciación y
definición del
alcance
* Planificación
*Implementación
y cambio del
proceso
* Definición del
* Herramientas
softwarepara:
- requisitos
- diseño
- construcción
* Fundamentos
*Procesos de
gestión de la
calidad
* Fundamentos
* Nivelesde
prueba
* Fundamentos
*Gestión de la
construcción
* Fundamentos
* Aspectos
clave
* Fundamentos
* Proceso
* Elicitación
* Proceso
*Técnicas
del proyecto
*Realización
del proyecto
*Revisión y
evaluación
proceso
*Evaluación del
proceso
*Medición del
proceso
y el producto
- pruebas
- mantenimiento
-gestión de la
configuración
- gestión de la IS
- el proceso de IS
- calidad
- problemas
* Consideracio-
nes prácticas
* Técnicas
* Mediciones
relacionadas
* Proceso
* Consideracio-
nes prácticas
* Estructura y
arquitectura
software
* Análisis y
evaluación de
la calidad de un
diseño
* Análisis
* Especificación
* Validación
* Consideracio-
* Cierre
* Medición en IS
varios
* Métodos de
desarrollo de
software:
* Gestión
del
proceso
* Identificación
de la
configuración
*Control dela
configuración
*Contabilidad
del estado de la
configuración
* Auditoría dela
configuración
* Gestión y
entrega de
versiones
1.38
* Notaciones
nes prácticas
- heurísticos
- formales
- prototipado
39. Cuerpo de
Conocimientos -
SWEBOK
Guía para el Cuerpo de Conocimientos de Ingeniería del Software (IS)
SWEBOK (versión 2004)
Mantenimiento
Pruebas
Construcción
Diseño
Requisitos
* Fundamentos
* Aspectos
clave
* Proceso
*Técnicas
* Fundamentos
* Gestión de la
construcción
* Consideracio-
nes prácticas
* Fundamentos
* Niveles de
prueba
* Técnicas
* Mediciones
relacionadas
* Proceso Fases en el proceso de
desarrollo de software
1.30
* Fundamentos
* Aspectos
clave
* Estructuray
arquitectura
software
* Análisis y
evaluación de
la calidad de un
diseño
* Notaciones
* Fundamentos
* Proceso
* Elicitación
* Análisis
* Especificación
* Validación
* Consideracio-
nes prácticas
Juan Hernández, Francisco Ruiz - IS1
40. Cuerpo de Conocimientos -
SWEBOK
Guía para el Cuerpo de Conocimientos de Ingeniería del Software (IS)
SWEBOK (versión 2004)
Gestión de la
IS
Proceso de IS
Herramientas y
Métodos
Gestión de la
Configuración Calidad
*Herramientas
software para:
- requisitos
- diseño
- construcción
- pruebas
- mantenimiento
*
Implementaci
ón y cambio
del
proceso
* Definición
del proceso
* Evaluación del
proceso
* Medición
del
proceso
y el producto
- gestión de la
configuración
- gestión de la IS
- el proceso de IS
- calidad
- problemas
varios
* Fundamentos
*Procesosde
gestión de la
calidad
* Consideracio-
nes prácticas
Incorporación de la
* Iniciación
y definición
del
alcance
*
Planificación
del proyecto
* Realización
del proyecto
*Revisión
y
evaluación
* Cierre
* Medición en IS
* Métodosde
desarrollo de
software:
perspectiva de
ingeniería
- heurísticos
- formales
- prototipado
* Gestión del
proceso
*
Identificación
de la
configuración
* Control de la
configuración
*Contabilidad
del estado de
la
configuración
* Auditoría de
la
configuración
* Gestión
y entrega
de
versiones
41. Cuerpo de Conocimientos - SWEBOK
Descripción de un Área de Conocimiento
Clasificación de
Tópicos
Matriz de Tópicos y
Referencias
Referencias
Descripciones
de Tópicos
Clasificación
Taxonomía de
Vincenti
Clasificación
Taxonomía de
Bloom
Referencias a
Disciplinas
Relacionadas
42. Cuerpo de Conocimientos -
SWEBOK
Diseño del Software
Notaciones
Análisis
Cualitativo y
Evaluación
Estructura y
Arquitectura
Aspectos
Clave
Fundamentos
Estrategias y
Métodos
* Descripciones
estructurales
* Atributos de
calidad
* Conceptos
generales
(vista estática)
* Descripciones
del
comportamiento
(vista dinámica)
* Técnicas de
análisis y
evaluación de
la Calidad
* Contexto
* Proceso
* Técnicas
* Mediciones
facilitadoras
* Concurrencia
* Control y
manejo
de
eventos
* Distribución
de
Componentes
* Manejo de
errores y
excepciones, y
tolerancia a
fallos
* Interacción
y
presentación
* Persistencia
de datos
*
Estrategi
as
generales
* D. orientado
a funciones
(estructurado)
*D. orientado a
objetos
*D. centrado en
las estructuras
de datos
*D. basado en
componentes
)
* Otros
métodos
* Estructuras
y puntos de
vista
arquitecturales
* Estilos
arquitecturale
s (patrones
macro-
arquitecturales)
* Patrones
de diseño
(patrones micro-
arquitecturales)
* Familias
de
programas
y
marcos
(frameworks)
43. Áreas de Conocimiento
• Fases del Proceso de Desarrollo
Requisitos
Diseño
Construcción
Pruebas
Mantenimiento
• Perspectiva de Ingeniería
Gestión de la Configuración (gestión de productos)
Gestión de la Ingeniería (gestión de proyectos)
Proceso de Ingeniería (orientación a procesos)
Herramientas y Métodos (tecnología de soporte)
Calidad
44. Áreas de Conocimiento
1.35
• Requisitos
Elicitación, análisis, especificación y validación de los requisitos sw.
En la industria del software existe el consenso en que los proyectos de
I.S. son muy vulnerables cuando estas actividades se realizan de forma
pobre.
Los requisitos sw expresan las necesidades y restricciones que debe
satisfacer un producto software para contribuir a la solución de un
problema real.
• Diseño
El proceso de diseño de software consiste en analizar los requisitos
con el fin de producir una descripción de la estructura interna del
software que sirva como base para su construcción.
Un diseño software (resultado) debe describir:
La arquitectura (cómo está descompuesto y organizado en componentes)
y las interfaces entre dichos componentes; y
Los componentes con el nivel de detalle adecuado para poder
construirlos.
45. Áreas de
Conocimiento
• Construcción
Se refiere a la creación detallada de software mediante la
combinación de codificación, verificación, pruebas unitarias, pruebas
de integración y depuración.
• Pruebas
Sirve para evaluar la calidad de un producto software o para
mejorarlo, mediante la identificación de sus defectos y problemas.
Consiste en la verificación dinámica del comportamiento real de un
programa frente al comportamiento esperado, para un conjunto finito
de casos de prueba (convenientemente seleccionados entre las
usualmente infinitas posibilidades de ejecución) .
46. Áreas de
Conocimiento
•Mantenimiento
Todo producto software, después de su despliegue o entrega, “está destinado”
a cambiar o evolucionar.
Algunas causas de ello son:
Defectos descubiertos durante su uso,
Cambios en el entorno operativo,
Nuevos requisitos del usuario, ..
En SWEBOK este área se refiere a las actividades requeridas para proveer un
adecuado soporte al software, sea antes o después del despliegue o entrega.
47. Áreas de Conocimiento
1.38
• Gestión de la Configuración
Es la disciplina de identificar la configuración de un sistema en
distintos momentos en el tiempo con el fin de controlar
sistemáticamente los cambios y mantener la integridad y trazabilidad.
Una configuración de un sistema es una colección de versiones
específicas de sus elementos (items de configuración) combinados de
acuerdo a procedimientos de construcción adecuados a los propósitos
buscados.
• Gestión de la Ingeniería
Consiste en aplicar actividades de gestión (planificar, coordinar, medir,
supervisar, controlar e informar) para asegurar que el desarrollo y
mantenimiento de software se realizan de forma sistemática,
disciplinada y cuantificable.
Básicamente, engloba dos clases de esfuerzos:
Gestión de Proyectos (Project Management)
Medición (futura nueva área en SWEBOK) Juan Hernández, Francisco Ruiz - IS1
48. Áreas de Conocimiento
• Proceso de Ingeniería
Se refiere a la definición, implementación, evaluación, medición,
gestión, cambio y mejora de los propios procesos del ciclo de vida del
software.
Engloba aspectos con fuerte impacto en la industria:
Madurez de las organizaciones (CMMI, SPICE)
Mejora de Procesos
Por ello, ha surgida la llamada Ingeniería de Procesos Software
• Herramientos y Métodos
Las herramientas (basadas en computador) ayudan a realizar los
procesos del ciclo de vida del software.
Los métodos imponen una manera o estructura para realizar las
actividades de ingeniería del software, de forma que el trabajo sea
más sistemático y mas exitoso.
49. Áreas de Conocimiento
• Calidad
En este área se abordan las técnicas estáticas para alcanzar la calidad
del software.
Las técnicas dinámicas (ejecutar el software) son parte de las Pruebas.
Este campo también ha tenido un fuerte desarrollo en la industria:
Aseguramiento de la Calidad
Verificación y validación
Auditoría
52. Actividad para la próxima sesión
• Realice un infograma que sustente el Código ético del
ingeniero Software
• https://padlet.com/deliamarherazo/duo136e6x3haajnn
53. Bibliografía
• Software Requeriments. Objects, functions, & States. Alan Davis. Prentice
Hall 1993.+
• Requeriments Engineering, Agood practice guide. Wileyt 1997.
• The Mythical Man Month. Frederick Brooks. Addison Wesley 1995.
• Ingeniería de Software. Ian Sommerville. Addison Weslesy. 2002
• Ingeniería de Software. Teoría y Práctica. Shari Pflegger. Addision
Wesley. 2002
• Ingeniería de Software, un enfoque práctico. Roger Pressman. McGraw
1998.
• Francisco Ruiz, Universidad de Cantabria, introducción a la ingeniería del
software