SlideShare una empresa de Scribd logo
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 1
Modelos de Proceso de Software
Ingeniería de Software I
FIEC03046
Sesión 03
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 2
Agenda
• Terminología
• Ciclo de vida para desarrollo de software
• Actividades de un proceso de software
• Modelos de proceso de software
• Modelo en cascada
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 3
Terminología
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 4
Terminología
• Un proceso de software es un conjunto
relacionado de actividades que están
involucrados en el desarrollo y evolución de
un producto de software.
• El modelo de un proceso de software es una
representación simplificada del proceso desde
una perspectiva en particular.
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 5
Terminología
• Un producto Commercial-off-the-shelf [COTS]
es un sistema de software que puede ser
adaptado para las necesidades de diferentes
clientes sin la necesidad de modificar el
código fuente del sistema. Por ejemplo: Un
ERP.
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 6
Ciclo de vida para desarrollo de software
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 7
Ciclo de vida para desarrollo de software
• Existen varios procesos de software. Sin
embargo, todos ellos incluyen cuatro actividades
fundamentales para la ingeniería de software:
– Especificación de software: se deben definir las
funcionalidades del software y sus restricciones de
operación.
– Diseño e implementación de software: se debe
producir un software que cumpla sus especificaciones.
– Validación de software: se debe validar el software a
fin de asegurar que este hace lo deseado por el
cliente.
– Evolución de software: el software debe evolucionar
para cumplir con los cambios producto de las
cambiantes necesidades del cliente.
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 8
Ciclo de vida para desarrollo de software
• Los procesos dividen estas actividades en subactividades.
• Las descripciones de estas actividades también pueden
incluir:
– Productos: los cuales son los resultados de una actividad. Por
ejemplo: en una actividad de diseño de arquitectura el resultado
podría ser el modelo de la arquitectura del software.
– Roles: reflejan las responsabilidades de los involucrados en el
proceso. Por ejemplo: director de proyectos, programador,
gestor de la configuración, etc.
– Pre y post condiciones: hechos que son verdaderos antes y
después de procesar la actividad. Por ejemplo: para el inicio del
diseño de la arquitectura se tiene como pre-condición que los
requerimientos hayan sido aprobados por el cliente y una post-
condición sería que se haya revisado los modelos UML que
describen la arquitectura.
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 9
Ciclo de vida para desarrollo de software
• No existen procesos de software ideales,
dependen del buen juicio y criterio de las
personas.
• Los procesos deben evolucionar para tomar
ventaja de las capacidades de los integrantes
de la organización.
• Los procesos de software se saben categorizar
en:
– Plan-driven processes
– Agile processes
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 10
Ciclo de vida para desarrollo de software
• Plan-driven processes: procesos en los cuales
sus actividades son planeadas con antelación
y sus avances son medidos con respecto al
plan.
• Agile processes: la planeación es incremental
y es más fácil cambiar el proceso pra reflejar
cambios en los requerimientos del cliente.
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 11
Actividad de especificación de software
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 12
Especificación del software
• También conocido como Ingeniería de
requerimientos.
• Es el proceso de entender y definir qué
servicios son requeridos desde el sistema e
identificar sus restricciones de operación y
desarrollo.
• Es un actividad crítica en vista que errores en
esta inevitablemente generarán problemas en
el diseño e implementación.
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 13
Especificación del software
• Las principales cuatro actividades en el
proceso de ingeniería de requerimientos son:
1. Estudio de factibilidad
2. Análisis y elicitación de requerimientos
3. Especificación de requerimientos
4. Validación de requerimientos
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 14
Especificación del software
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 15
Especificación del software
• Estudio de factibilidad
– Estimar si las necesidades del usuario pueden ser
satisfechas con la tecnología disponible,
– Estimar si el sistema es costo-efectivo desde un
punto de vista económico
– Estimar si se puede llevar a cabo el desarrollo
dentro del presupuesto establecido
– Producir un informe relativamente barato y rápido
si se debe o no continuar con un análisis
detallado.
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 16
Actividad de especificación del software
• Análisis y elicitación de requerimientos
– Es el proceso de derivar los requerimientos del
sistema a través de la observación del proceso
existente
– Entrevistas con los potenciales usuarios
– Contruir prototipos
– Entre otras técnicas…
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 17
Especificación del software
• Especificación de requerimientos
– Traducir los requerimientos recopilados durante la
actividad de análisis en un documento que define
un conjunto de requerimientos
– Dos tipos de requerimientos se incluyen en el
documento:
• Requerimientos de usuario: oraciones en lenguaje
natural de los servicios que el sistema debe proveer y
sus restricciones de operación.
• Requerimientos de sistema: descripciones detalladas
de la funciones, servicios y restricciones operativas del
sistema.
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 18
Especificación del software
• Especificación de requerimientos
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 19
Especificación del software
• Validación de requerimientos
– Comprobar que los requerimientos seas reales,
consistentes y completos.
– Durante el proceso se descubren errores en el
documento, los cuales son modificados para
corregir estos problemas.
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 20
Actividad de diseño e implementación de software
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 21
Diseño e implementación de software
• Convertir las especificación del sistema en un sistema
ejecutable.
• Implica diseño e implementación.
• En un proceso de diseño se llevan a cabo las siguientes
actividades:
– Diseño de arquitectura: identificar la estructura general del
sistema, sus principales componentes o módulos y la relación
distribución de los mismos.
– Diseño de interface: definir las interfaces entre los
componentes del sistema. Así, los componentes pueden ser
usados sin conocer su implementación.
– Diseño de componentes: diseñar la operación de cada
componente. Alternativamente, podría contemplar los cambios
a los componentes reutilizados.
– Diseño de base de datos: diseñar las estructuras de base de
datos y su representación en la base de datos.
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 22
Diseño e implementación de software
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 23
Actividad de validación de software
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 24
Validación de software
• Validación de software o más generalmente
verificación y validación tiene por objeto mostrar
que un sistema cumple con su especificación y a
la vez cumple con las expectativas del cliente.
• Las pruebas de software son la principal técnica
de validación.
• La fase formal de testing y sus costos de
validación se llevan a cabo luego de la fase de
implementación.
• Las pruebas llevadas a cabo por los
desarrolladores son parte de la implementación.
Lo veremos en detalle en el próximo curso…
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 25
Validación de software
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 26
Actividad de evolución de software
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 27
Evolución de software
• También conocida como actividad de
mantenimiento de software.
• Cambios en el software pueden ser hechos
durante o después de la fase de
implementación. Sin embargo, históricamente
se ha dividido el proceso de desarrollo del
proceso de evolución o mantenimiento.
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 28
Modelos de proceso de software
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 29
Modelos de proceso de software
• Los modelos de procesos de software son
frameworks que pueden ser extendidos y
adaptados para crear procesos de ingeniería
de software más específicos.
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 30
Modelos de proceso de software
• Cubriremos los siguientes modelos:
– Modelo en cascada: fases separadas para especificación de
requerimientos, diseño de software, implementación, pruebas, etc.
– Modelo de desarrollo incremental: intercala las actividades de
especificación, desarrollo y validación. El sistema se desarrolla en una
serie de versiones en donde cada una de ellas agrega funcionalidad.
– Modelo de desarrollo iterativo: no se inicia con una especificación de
requerimientos completa. Se especifica parte del software y se inicia
un ciclo de desarrollo. Al final de este, se repite el proceso con un
nuevo ciclo identificando nuevos requerimientos.
– Modelo de espiral de Boehm: es un tipo de proceso de software
iterativo, generalmente implementado en proyectos de alto riesgo.
Cada lazo en el espiral representa un fase de desarrollo.
– Modelo orientado al reuso: basado en la existencia de un número
significativo de componentes reusables. El desarrollo se centra en la
integración de los mismos en vez de empezar desde cero.
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 31
Modelo en cascada
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 32
Modelo en cascada
• Es un modelo de proceso de software que incluye
las etapas de desarrollo: especificación, diseño,
implementación, pruebas y mantenimiento.
• La etapa previa debe finalizar antes de iniciar la
siguiente.
• Es un ejemplo de plan-driven process ya que
primero se debe planificar y programar todas las
actividades del proceso antes de empezar a
trabajar en ellas.
• Se producen y aprueban documentos al final de
cada etapa.
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 33
Modelo en cascada
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 34
Modelo en cascada
– Fuente: http://istqbexamcertification.com
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 35
Actividades del modelo en cascada
1. Definición y análisis de requerimientos: Los servicios,
restricciones y objetivos del sistema son establecidos con los
usuarios del sistema.
2. Diseño de software y del sistema: Se define la arquitectura del
sistema. Se diseñan los componentes de software.
3. Implementación y pruebas unitarias: El diseño es transformado
en un conjunto de programas. Las pruebas unitarias consisten en
verificar que el sistema cumpla su especificación.
4. Pruebas de integración y de sistema: Los programas individuales
son integrados y probadas como un sistema completo. Luego de
las pruebas el software es entregado al cliente.
5. Operación y mantenimiento: El sistema es instalado y puesto en
producción. El mantenimiento implica la corrección de errores
que no fueron descubiertos en las etapas preliminares, además las
mejoras al sistema a partir de los nuevos requerimientos.
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 36
Ventajas del modelo en cascada
• Simple y fácil de entender y usar.
• Fácil de manejar dado que cada fase tiene
entregables específicos.
• Cada fase es procesada una por una.
• Funciona en proyectos pequeños o en
aquellos en que los requerimientos están
claros.
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 37
Desventajas del modelo en cascada
• Es muy difícil regresar a una fase previa.
• El software no es entregado sino hasta el final
del ciclo de vida.
• No es apropiado para proyectos complejos o
aquellos en los que los requerimientos tienen
alta probabilidad de cambio.
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 38
Modelo en cascada
• Conveniente cuando…
– Los requerimientos están bien entendidos, claros
y fijos.
– La definición del producto es estable.
– Se entiende la tecnología.
– No hay requerimientos ambiguos.
– Proyectos pequeños.
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 39
Puntos para recordar
• Significado de modelo de proceso de software
• Actividades de un proceso de software
• Ventajas y desventajas del modelo en cascada
• Los modelos no son mutuamente excluyentes.
Se pueden combinar las mejores
características de cada uno en proyectos
grandes.
Ingeniería de Software I
© MSc. Carlos Mera Gómez
2013
Modelos / 40
Próxima Sesión
• Modelo incremental
• Modelo iterativo
• Modelo espiral de Boehm
• Modelo orientado a reuso
• Otros modelos…
• Cómo escoger el mejor ciclo de vida para un
proyecto

Más contenido relacionado

PDF
Investigación de modelos
PDF
Curso de Ingeniería de Software - Capitulo4
PPT
Sesion2 Procesos del Software
PDF
Fundamentos de ingenieria de software - metodologias.pdf
PDF
Modelo en cascada pemo
DOCX
Modelo de cascadaa
PPTX
Fases del rup
PPT
PROCESOS DE INGENIERIA DEL SW
Investigación de modelos
Curso de Ingeniería de Software - Capitulo4
Sesion2 Procesos del Software
Fundamentos de ingenieria de software - metodologias.pdf
Modelo en cascada pemo
Modelo de cascadaa
Fases del rup
PROCESOS DE INGENIERIA DEL SW

La actualidad más candente (19)

PPT
Modelos Prescriptivos de Proceso
PPTX
Metodología rup final
PPTX
Modelos y capas de la ingenieria de software
PDF
Fases de RUP - PDF
PPT
Sesion1 Introducción Ingeniería Software
PDF
Metodologia rup
PDF
Procesos De Ingenieria Del Software
PPTX
METODOLOGÍAS RUP
ODT
Modelo en cascada
PPTX
Proceso del software
PPTX
Sesión 1: Introduccion. ¿Qué es ingeniería de software?
PPT
4.1 Proceso Unificado De Rational
PPT
LA INGENIERÍA DE SOFTWARE Y RUP
PPTX
Sesión 3: Modelos prescriptivos de proceso
DOCX
Etapas del Proceso de la Ingeniería del Software
PDF
Modelos del software
PPTX
Metodologías de desarrollo de software
Modelos Prescriptivos de Proceso
Metodología rup final
Modelos y capas de la ingenieria de software
Fases de RUP - PDF
Sesion1 Introducción Ingeniería Software
Metodologia rup
Procesos De Ingenieria Del Software
METODOLOGÍAS RUP
Modelo en cascada
Proceso del software
Sesión 1: Introduccion. ¿Qué es ingeniería de software?
4.1 Proceso Unificado De Rational
LA INGENIERÍA DE SOFTWARE Y RUP
Sesión 3: Modelos prescriptivos de proceso
Etapas del Proceso de la Ingeniería del Software
Modelos del software
Metodologías de desarrollo de software
Publicidad

Destacado (20)

PPSX
Diseño estructurado
DOC
Modelo del proceso_software yan martinez
PPTX
Sistema de gestión de competencias
PPT
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
PPS
Clase3 Caso Practico
PDF
Modelo espiral win win
PDF
Especificación de Arquitectura de Software
PPT
Unidad 3 Modelo De Negocio
PDF
Iar (1)
PDF
Bootcamp Irapuato Welcome
PDF
Formation disp ot v4 meublés et 7j glissants
PPTX
Diabetes mellitus tipo 2 en el paciente anciano institucionalizado
PPTX
Présentation du BEP CSS
PDF
Revuepresse06.06
PDF
Desplazamiento Forzado en Colombia. Marcia Dalto
PDF
montage du chapiteau
PPTX
Droit de l'économie numérique
PDF
My Sql High Availability With A Punch Drbd 83 And Drbd For Dolphin Express
PPTX
Presentacion docentes upc
Diseño estructurado
Modelo del proceso_software yan martinez
Sistema de gestión de competencias
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
Clase3 Caso Practico
Modelo espiral win win
Especificación de Arquitectura de Software
Unidad 3 Modelo De Negocio
Iar (1)
Bootcamp Irapuato Welcome
Formation disp ot v4 meublés et 7j glissants
Diabetes mellitus tipo 2 en el paciente anciano institucionalizado
Présentation du BEP CSS
Revuepresse06.06
Desplazamiento Forzado en Colombia. Marcia Dalto
montage du chapiteau
Droit de l'économie numérique
My Sql High Availability With A Punch Drbd 83 And Drbd For Dolphin Express
Presentacion docentes upc
Publicidad

Similar a 03 cicloprocesodesoftware isi (20)

PPTX
IS1_01_02.pptx Ingenieria de Software Powerpoint 2
PPTX
Proceso, modelos y metodos de ingenieria de software
PPTX
Proceso, modelos y metodos de ingenieria de software
PPTX
Ingenieria de Software
PDF
titulo de pdf
PPTX
Ingeniería de software
PPTX
Ingeniería de software
PPTX
Clase 11
PPTX
Ingeniería%20de%20 software[1], maryy
PPTX
Ingenier%c3%ada de software
PPTX
Ingeniería de software
PPTX
Ingeniería de software16
PPTX
Ingen de software
PDF
Ciclo de de_desarrollo_de_software
PPTX
SQM Lifecycle models
PDF
04 modelosdeprocesodesoftware isi
PPTX
Paula guia
PPTX
Unidad 1 Ingenieria de software
IS1_01_02.pptx Ingenieria de Software Powerpoint 2
Proceso, modelos y metodos de ingenieria de software
Proceso, modelos y metodos de ingenieria de software
Ingenieria de Software
titulo de pdf
Ingeniería de software
Ingeniería de software
Clase 11
Ingeniería%20de%20 software[1], maryy
Ingenier%c3%ada de software
Ingeniería de software
Ingeniería de software16
Ingen de software
Ciclo de de_desarrollo_de_software
SQM Lifecycle models
04 modelosdeprocesodesoftware isi
Paula guia
Unidad 1 Ingenieria de software

Último (9)

PPTX
Fundamentos de Python - Curso de Python dia 1
PPTX
Conceptos basicos de Base de Datos y sus propiedades
PDF
AutoCAD Herramientas para el futuro, Juan Fandiño
PPTX
Tratará sobre Grafos_y_Arboles_Presentacion.pptx
PPTX
Implementación equipo monitor12.08.25.pptx
PDF
Clase 3 - Presentación visual (Insertando objetos visuales) POWER POINT.pdf
PPTX
ORIGEN DE LA IA - GRADO 1102 INTELIGENCIA
PDF
Presentacion de compiladores e interpretes
PPTX
Control de seguridad en los sitios web.pptx
Fundamentos de Python - Curso de Python dia 1
Conceptos basicos de Base de Datos y sus propiedades
AutoCAD Herramientas para el futuro, Juan Fandiño
Tratará sobre Grafos_y_Arboles_Presentacion.pptx
Implementación equipo monitor12.08.25.pptx
Clase 3 - Presentación visual (Insertando objetos visuales) POWER POINT.pdf
ORIGEN DE LA IA - GRADO 1102 INTELIGENCIA
Presentacion de compiladores e interpretes
Control de seguridad en los sitios web.pptx

03 cicloprocesodesoftware isi

  • 1. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 1 Modelos de Proceso de Software Ingeniería de Software I FIEC03046 Sesión 03
  • 2. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 2 Agenda • Terminología • Ciclo de vida para desarrollo de software • Actividades de un proceso de software • Modelos de proceso de software • Modelo en cascada
  • 3. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 3 Terminología
  • 4. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 4 Terminología • Un proceso de software es un conjunto relacionado de actividades que están involucrados en el desarrollo y evolución de un producto de software. • El modelo de un proceso de software es una representación simplificada del proceso desde una perspectiva en particular.
  • 5. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 5 Terminología • Un producto Commercial-off-the-shelf [COTS] es un sistema de software que puede ser adaptado para las necesidades de diferentes clientes sin la necesidad de modificar el código fuente del sistema. Por ejemplo: Un ERP.
  • 6. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 6 Ciclo de vida para desarrollo de software
  • 7. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 7 Ciclo de vida para desarrollo de software • Existen varios procesos de software. Sin embargo, todos ellos incluyen cuatro actividades fundamentales para la ingeniería de software: – Especificación de software: se deben definir las funcionalidades del software y sus restricciones de operación. – Diseño e implementación de software: se debe producir un software que cumpla sus especificaciones. – Validación de software: se debe validar el software a fin de asegurar que este hace lo deseado por el cliente. – Evolución de software: el software debe evolucionar para cumplir con los cambios producto de las cambiantes necesidades del cliente.
  • 8. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 8 Ciclo de vida para desarrollo de software • Los procesos dividen estas actividades en subactividades. • Las descripciones de estas actividades también pueden incluir: – Productos: los cuales son los resultados de una actividad. Por ejemplo: en una actividad de diseño de arquitectura el resultado podría ser el modelo de la arquitectura del software. – Roles: reflejan las responsabilidades de los involucrados en el proceso. Por ejemplo: director de proyectos, programador, gestor de la configuración, etc. – Pre y post condiciones: hechos que son verdaderos antes y después de procesar la actividad. Por ejemplo: para el inicio del diseño de la arquitectura se tiene como pre-condición que los requerimientos hayan sido aprobados por el cliente y una post- condición sería que se haya revisado los modelos UML que describen la arquitectura.
  • 9. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 9 Ciclo de vida para desarrollo de software • No existen procesos de software ideales, dependen del buen juicio y criterio de las personas. • Los procesos deben evolucionar para tomar ventaja de las capacidades de los integrantes de la organización. • Los procesos de software se saben categorizar en: – Plan-driven processes – Agile processes
  • 10. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 10 Ciclo de vida para desarrollo de software • Plan-driven processes: procesos en los cuales sus actividades son planeadas con antelación y sus avances son medidos con respecto al plan. • Agile processes: la planeación es incremental y es más fácil cambiar el proceso pra reflejar cambios en los requerimientos del cliente.
  • 11. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 11 Actividad de especificación de software
  • 12. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 12 Especificación del software • También conocido como Ingeniería de requerimientos. • Es el proceso de entender y definir qué servicios son requeridos desde el sistema e identificar sus restricciones de operación y desarrollo. • Es un actividad crítica en vista que errores en esta inevitablemente generarán problemas en el diseño e implementación.
  • 13. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 13 Especificación del software • Las principales cuatro actividades en el proceso de ingeniería de requerimientos son: 1. Estudio de factibilidad 2. Análisis y elicitación de requerimientos 3. Especificación de requerimientos 4. Validación de requerimientos
  • 14. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 14 Especificación del software
  • 15. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 15 Especificación del software • Estudio de factibilidad – Estimar si las necesidades del usuario pueden ser satisfechas con la tecnología disponible, – Estimar si el sistema es costo-efectivo desde un punto de vista económico – Estimar si se puede llevar a cabo el desarrollo dentro del presupuesto establecido – Producir un informe relativamente barato y rápido si se debe o no continuar con un análisis detallado.
  • 16. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 16 Actividad de especificación del software • Análisis y elicitación de requerimientos – Es el proceso de derivar los requerimientos del sistema a través de la observación del proceso existente – Entrevistas con los potenciales usuarios – Contruir prototipos – Entre otras técnicas…
  • 17. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 17 Especificación del software • Especificación de requerimientos – Traducir los requerimientos recopilados durante la actividad de análisis en un documento que define un conjunto de requerimientos – Dos tipos de requerimientos se incluyen en el documento: • Requerimientos de usuario: oraciones en lenguaje natural de los servicios que el sistema debe proveer y sus restricciones de operación. • Requerimientos de sistema: descripciones detalladas de la funciones, servicios y restricciones operativas del sistema.
  • 18. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 18 Especificación del software • Especificación de requerimientos
  • 19. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 19 Especificación del software • Validación de requerimientos – Comprobar que los requerimientos seas reales, consistentes y completos. – Durante el proceso se descubren errores en el documento, los cuales son modificados para corregir estos problemas.
  • 20. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 20 Actividad de diseño e implementación de software
  • 21. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 21 Diseño e implementación de software • Convertir las especificación del sistema en un sistema ejecutable. • Implica diseño e implementación. • En un proceso de diseño se llevan a cabo las siguientes actividades: – Diseño de arquitectura: identificar la estructura general del sistema, sus principales componentes o módulos y la relación distribución de los mismos. – Diseño de interface: definir las interfaces entre los componentes del sistema. Así, los componentes pueden ser usados sin conocer su implementación. – Diseño de componentes: diseñar la operación de cada componente. Alternativamente, podría contemplar los cambios a los componentes reutilizados. – Diseño de base de datos: diseñar las estructuras de base de datos y su representación en la base de datos.
  • 22. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 22 Diseño e implementación de software
  • 23. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 23 Actividad de validación de software
  • 24. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 24 Validación de software • Validación de software o más generalmente verificación y validación tiene por objeto mostrar que un sistema cumple con su especificación y a la vez cumple con las expectativas del cliente. • Las pruebas de software son la principal técnica de validación. • La fase formal de testing y sus costos de validación se llevan a cabo luego de la fase de implementación. • Las pruebas llevadas a cabo por los desarrolladores son parte de la implementación. Lo veremos en detalle en el próximo curso…
  • 25. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 25 Validación de software
  • 26. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 26 Actividad de evolución de software
  • 27. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 27 Evolución de software • También conocida como actividad de mantenimiento de software. • Cambios en el software pueden ser hechos durante o después de la fase de implementación. Sin embargo, históricamente se ha dividido el proceso de desarrollo del proceso de evolución o mantenimiento.
  • 28. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 28 Modelos de proceso de software
  • 29. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 29 Modelos de proceso de software • Los modelos de procesos de software son frameworks que pueden ser extendidos y adaptados para crear procesos de ingeniería de software más específicos.
  • 30. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 30 Modelos de proceso de software • Cubriremos los siguientes modelos: – Modelo en cascada: fases separadas para especificación de requerimientos, diseño de software, implementación, pruebas, etc. – Modelo de desarrollo incremental: intercala las actividades de especificación, desarrollo y validación. El sistema se desarrolla en una serie de versiones en donde cada una de ellas agrega funcionalidad. – Modelo de desarrollo iterativo: no se inicia con una especificación de requerimientos completa. Se especifica parte del software y se inicia un ciclo de desarrollo. Al final de este, se repite el proceso con un nuevo ciclo identificando nuevos requerimientos. – Modelo de espiral de Boehm: es un tipo de proceso de software iterativo, generalmente implementado en proyectos de alto riesgo. Cada lazo en el espiral representa un fase de desarrollo. – Modelo orientado al reuso: basado en la existencia de un número significativo de componentes reusables. El desarrollo se centra en la integración de los mismos en vez de empezar desde cero.
  • 31. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 31 Modelo en cascada
  • 32. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 32 Modelo en cascada • Es un modelo de proceso de software que incluye las etapas de desarrollo: especificación, diseño, implementación, pruebas y mantenimiento. • La etapa previa debe finalizar antes de iniciar la siguiente. • Es un ejemplo de plan-driven process ya que primero se debe planificar y programar todas las actividades del proceso antes de empezar a trabajar en ellas. • Se producen y aprueban documentos al final de cada etapa.
  • 33. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 33 Modelo en cascada
  • 34. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 34 Modelo en cascada – Fuente: http://istqbexamcertification.com
  • 35. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 35 Actividades del modelo en cascada 1. Definición y análisis de requerimientos: Los servicios, restricciones y objetivos del sistema son establecidos con los usuarios del sistema. 2. Diseño de software y del sistema: Se define la arquitectura del sistema. Se diseñan los componentes de software. 3. Implementación y pruebas unitarias: El diseño es transformado en un conjunto de programas. Las pruebas unitarias consisten en verificar que el sistema cumpla su especificación. 4. Pruebas de integración y de sistema: Los programas individuales son integrados y probadas como un sistema completo. Luego de las pruebas el software es entregado al cliente. 5. Operación y mantenimiento: El sistema es instalado y puesto en producción. El mantenimiento implica la corrección de errores que no fueron descubiertos en las etapas preliminares, además las mejoras al sistema a partir de los nuevos requerimientos.
  • 36. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 36 Ventajas del modelo en cascada • Simple y fácil de entender y usar. • Fácil de manejar dado que cada fase tiene entregables específicos. • Cada fase es procesada una por una. • Funciona en proyectos pequeños o en aquellos en que los requerimientos están claros.
  • 37. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 37 Desventajas del modelo en cascada • Es muy difícil regresar a una fase previa. • El software no es entregado sino hasta el final del ciclo de vida. • No es apropiado para proyectos complejos o aquellos en los que los requerimientos tienen alta probabilidad de cambio.
  • 38. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 38 Modelo en cascada • Conveniente cuando… – Los requerimientos están bien entendidos, claros y fijos. – La definición del producto es estable. – Se entiende la tecnología. – No hay requerimientos ambiguos. – Proyectos pequeños.
  • 39. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 39 Puntos para recordar • Significado de modelo de proceso de software • Actividades de un proceso de software • Ventajas y desventajas del modelo en cascada • Los modelos no son mutuamente excluyentes. Se pueden combinar las mejores características de cada uno en proyectos grandes.
  • 40. Ingeniería de Software I © MSc. Carlos Mera Gómez 2013 Modelos / 40 Próxima Sesión • Modelo incremental • Modelo iterativo • Modelo espiral de Boehm • Modelo orientado a reuso • Otros modelos… • Cómo escoger el mejor ciclo de vida para un proyecto