conceptos básicos de ingeniería del software
TRANSCRIPT
Conceptos Básicos de Ingeniería del Software 26/09/2014
IR 1
1. Proyecto Software
2. Informe CHAOS
3. Entregables de un Proyecto Software
4. Ciclos de Vida de un Proyecto Software
5. Sistemas de Información
© D
iseño d
e A
mador
Durá
n T
oro
, 2011
© D
iseño d
e A
mador
Durá
n T
oro
, 2011
Conceptos Básicos de Ingeniería del Software
Grupo de Ingeniería del Software y Bases de Datos
Departamento de Lenguajes y Sistemas Informáticos
Universidad de Sevilla
septiembre 2014
1. Proyecto Software
2. Informe CHAOS
3. Entregables de un Proyecto Software
4. Ciclos de Vida de un Proyecto Software
5. Sistemas de Información
© D
iseño d
e A
mador
Durá
n T
oro
, 2011
Conceptos Básicos de Ingeniería del Software
• Objetivos del tema
– Revisar los conceptos básicos de la Ingeniería del
Software:
• Proyecto software
• Causas de éxito y fracaso de proyectos software
• Entregables en proyectos software
• Ciclos de vida de los proyectos software
– Revisar los niveles de gestión de un sistema de
información.
septiembre 2014 Ingeniería de Requisitos 1
Conceptos Básicos de Ingeniería del Software 26/09/2014
IR 2
1. Proyecto Software
2. Informe CHAOS
3. Entregables de un Proyecto Software
4. Ciclos de Vida de un Proyecto Software
5. Sistemas de Información
© D
iseño d
e A
mador
Durá
n T
oro
, 2011
Conceptos Básicos de Ingeniería del Software
• El concepto de proyecto software
– Esfuerzo temporal acometido para crear un único
producto o servicio software.
– Es realizado por personas.
– Debe ser limitado en tiempo y coste.
– Debe ser planificado, ejecutado y controlado.
septiembre 2014 Ingeniería de Requisitos 2
1. Proyecto Software
2. Informe CHAOS
3. Entregables de un Proyecto Software
4. Ciclos de Vida de un Proyecto Software
5. Sistemas de Información
© D
iseño d
e A
mador
Durá
n T
oro
, 2011
Conceptos Básicos de Ingeniería del Software
• Roles en un proyecto software
septiembre 2014 Ingeniería de Requisitos 3
Director de proyecto
Responsable de la ejecución del proyecto con capacidad ejecutiva para tomar decisiones sobre el mismo de acuerdo con el cliente.
Ingeniero de requisitos
También denominado analista. Responsable de interactuar con clientes y usuarios para obtener sus necesidades y de desarrollar y gestionar los requisitos.
Equipo de desarrollo
Conjunto de personas implicadas en el desarrollo del software: arquitecto software, diseñador de IU, programador, responsable de pruebas, administrador de BD, etc.
Equipo de calidad
Conjunto de personas responsables de la calidad de los productos obtenidos, tanto documentación como software. Suelen ocuparse también de la calidad de los procesos.
Cliente Responsable de la financiación del proyecto con capacidad ejecutiva para tomar decisiones sobre el mismo. Suele tener una visión global del modelo de negocio.
Usuario Usuario potencial del software a desarrollar en el proyecto con una visión detallada, aunque puede que parcial, del modelo de negocio.
Responsable TIC del Cliente
Responsable del entorno tecnológico del cliente, sobre el que se debe integrar el sistema a desarrollar.
Conceptos Básicos de Ingeniería del Software 26/09/2014
IR 3
1. Proyecto Software
2. Informe CHAOS
3. Entregables de un Proyecto Software
4. Ciclos de Vida de un Proyecto Software
5. Sistemas de Información
© D
iseño d
e A
mador
Durá
n T
oro
, 2011
Conceptos Básicos de Ingeniería del Software
• Los informes CHAOS (1996 2012)
September 2014 Requirements Engineering 4
Fuente: http://www.griddynamics.com/mobile-app-design-part-1-management-principles-with-scrum/
1. Proyecto Software
2. Informe CHAOS
3. Entregables de un Proyecto Software
4. Ciclos de Vida de un Proyecto Software
5. Sistemas de Información
© D
iseño d
e A
mador
Durá
n T
oro
, 2011
Conceptos Básicos de Ingeniería del Software
• Los informes CHAOS (1996 2012)
– Factores de éxito
• Implicación de los usuarios
• Apoyo de los directivos
• Enunciado claro de los requisitos
• Planificación adecuada
• Expectativas realistas
• Hitos de proyecto pequeños
• Personal competente
• Sentimiento de propiedad
• Visión y objetivos claros
• Trabajo duro y personal concentrado
septiembre 2014 Ingeniería de Requisitos 5
Conceptos Básicos de Ingeniería del Software 26/09/2014
IR 4
1. Proyecto Software
2. Informe CHAOS
3. Entregables de un Proyecto Software
4. Ciclos de Vida de un Proyecto Software
5. Sistemas de Información
© D
iseño d
e A
mador
Durá
n T
oro
, 2011
Conceptos Básicos de Ingeniería del Software
• Los informes CHAOS (1996 2012)
– Causas de problemas
• Falta de información por parte de los usuarios
• Especificaciones y requisitos incompletos
• Especificaciones y requisitos cambiantes
• Falta de apoyo de los directivos
• Incompetencia tecnológica
• Falta de recursos
• Expectativas no realistas
• Objetivos poco claros
• Plazos temporales no realistas
• Nueva tecnología
septiembre 2014 Ingeniería de Requisitos 6
1. Proyecto Software
2. Informe CHAOS
3. Entregables de un Proyecto Software
4. Ciclos de Vida de un Proyecto Software
5. Sistemas de Información
© D
iseño d
e A
mador
Durá
n T
oro
, 2011
Conceptos Básicos de Ingeniería del Software
• Los informes CHAOS (1996 2012)
– Causas de fracasos
• Requisitos incompletos
• Falta de implicación de los usuarios
• Falta de recursos
• Expectativas no realistas
• Falta de apoyo de los directivos
• Especificaciones y requisitos cambiantes
• Falta de planificación
• Ya no lo necesito
• Falta de gestión de TIC
• Desconocimiento de la tecnología
septiembre 2014 Ingeniería de Requisitos 7
Conceptos Básicos de Ingeniería del Software 26/09/2014
IR 5
1. Proyecto Software
2. Informe CHAOS
3. Entregables de un Proyecto Software
4. Ciclos de Vida de un Proyecto Software
5. Sistemas de Información
© D
iseño d
e A
mador
Durá
n T
oro
, 2011
Conceptos Básicos de Ingeniería del Software
• Los informes CHAOS (1996 2012)
September 2014 Requirements Engineering 8
2011
2013
1. Proyecto Software
2. Informe CHAOS
3. Entregables de un Proyecto Software
4. Ciclos de Vida de un Proyecto Software
5. Sistemas de Información
© D
iseño d
e A
mador
Durá
n T
oro
, 2011
Conceptos Básicos de Ingeniería del Software
• Coste de un cambio en un proyecto
septiembre 2014 Ingeniería de Requisitos 9
tiempo
€
inicio
Detectar los problemas al
comienzo de los proyectos
ahorra mucho dinero
Conceptos Básicos de Ingeniería del Software 26/09/2014
IR 6
1. Proyecto Software
2. Informe CHAOS
3. Entregables de un Proyecto Software
4. Ciclos de Vida de un Proyecto Software
5. Sistemas de Información
© D
iseño d
e A
mador
Durá
n T
oro
, 2011
Conceptos Básicos de Ingeniería del Software
• Software como producto de ingeniería
– El conjunto de productos que deben desarrollarse
y entregarse al cliente durante un proyecto se
denominan entregables.
septiembre 2014 Ingeniería de Requisitos 10
1. Proyecto Software
2. Informe CHAOS
3. Entregables de un Proyecto Software
4. Ciclos de Vida de un Proyecto Software
5. Sistemas de Información
© D
iseño d
e A
mador
Durá
n T
oro
, 2011
Conceptos Básicos de Ingeniería del Software
• Productos previos al comienzo del proyecto
– Petición de Propuestas (Request for Proposals)
– Pliego de Prescripciones Técnicas (AA. PP.)
– Oferta
– Contrato
• Deben dejar claro…
– Las necesidades a satisfacer por el sistema.
– Los entregables del proyecto.
– El presupuesto y plazo de ejecución.
– Restricciones técnicas.
– Penalizaciones por retrasos.
– …
septiembre 2014 Ingeniería de Requisitos 11
Conceptos Básicos de Ingeniería del Software 26/09/2014
IR 7
1. Proyecto Software
2. Informe CHAOS
3. Entregables de un Proyecto Software
4. Ciclos de Vida de un Proyecto Software
5. Sistemas de Información
© D
iseño d
e A
mador
Durá
n T
oro
, 2011
Conceptos Básicos de Ingeniería del Software
• Entregables habituales de un proyecto
• Plan de proyecto
• Informes de seguimiento
• Especificación de requisitos
• Documento de diseño
• Plan de pruebas
• Código fuente
• Software ejecutable
• Manuales de usuario
septiembre 2014 Ingeniería de Requisitos 12
1. Proyecto Software
2. Informe CHAOS
3. Entregables de un Proyecto Software
4. Ciclos de Vida de un Proyecto Software
5. Sistemas de Información
© D
iseño d
e A
mador
Durá
n T
oro
, 2011
Conceptos Básicos de Ingeniería del Software
• ¿Qué es el ciclo de vida del software?
– El ciclo de vida de un proyecto especifica el
enfoque general del desarrollo, indicando los
procesos, actividades y tareas que se van a
realizar y en qué orden, y los productos que se
van a generar, los que se van a entregar al cliente
y en qué orden se van a entregar.
septiembre 2014 13 Ingeniería de Requisitos
Conceptos Básicos de Ingeniería del Software 26/09/2014
IR 8
1. Proyecto Software
2. Informe CHAOS
3. Entregables de un Proyecto Software
4. Ciclos de Vida de un Proyecto Software
5. Sistemas de Información
© D
iseño d
e A
mador
Durá
n T
oro
, 2011
Conceptos Básicos de Ingeniería del Software
• Ciclo de vida clásico (en cascada)
– Cada fase comienza cuando termina la anterior.
– Asume que se conocen todos los requisitos.
– Se tarda mucho en disponer del software.
– Es mejor que no seguir ningún ciclo de vida.
– Es el más fácil de planificar, es el ciclo ideal.
septiembre 2014 Ingeniería de Requisitos 14
Análisis
Diseño
Implementación
Pruebas
Mantenimiento
Requisitos
1. Proyecto Software
2. Informe CHAOS
3. Entregables de un Proyecto Software
4. Ciclos de Vida de un Proyecto Software
5. Sistemas de Información
© D
iseño d
e A
mador
Durá
n T
oro
, 2011
Conceptos Básicos de Ingeniería del Software
• El ciclo de vida evolutivo
– Obtener todos los requisitos al comienzo es
prácticamente imposible.
– Las necesidades de clientes y usuarios
evolucionan durante el desarrollo.
– Ciclos requisitos-desarrollo-evaluación.
– El resultado de la evaluación permite
evolucionar hacia la siguiente
versión.
septiembre 2014 15
Evaluación
Versiones
Dr. Barry Boehm Creador del modelo espiral
Ingeniería de Requisitos
Conceptos Básicos de Ingeniería del Software 26/09/2014
IR 9
1. Proyecto Software
2. Informe CHAOS
3. Entregables de un Proyecto Software
4. Ciclos de Vida de un Proyecto Software
5. Sistemas de Información
© D
iseño d
e A
mador
Durá
n T
oro
, 2011
Conceptos Básicos de Ingeniería del Software
• Ciclo de vida en los métodos ágiles
septiembre 2014 16 Ingeniería de Requisitos
1. Proyecto Software
2. Informe CHAOS
3. Entregables de un Proyecto Software
4. Ciclos de Vida de un Proyecto Software
5. Sistemas de Información
© D
iseño d
e A
mador
Durá
n T
oro
, 2011
• Ciclo de vida en los métodos ágiles
– Son ciclos de vida evolutivos con iteraciones de
corta duración para favorecer la comunicación con
clientes y usuarios.
– En cada iteración se incorporan nuevas peticiones
de clientes y usuarios (requisitos).
Conceptos Básicos de Ingeniería del Software
septiembre 2014 17
Análisis
Diseño
Implementación
Pruebas
Iteración 1
Versión 1
Análisis
Diseño
Implementación
Pruebas
Análisis
Diseño
Implementación
Pruebas
Requisitos Requisitos
Requisitos
Iteración 2
Versión 2
Iteración 3
Versión 3
Ingeniería de Requisitos
Conceptos Básicos de Ingeniería del Software 26/09/2014
IR 10
1. Proyecto Software
2. Informe CHAOS
3. Entregables de un Proyecto Software
4. Ciclos de Vida de un Proyecto Software
5. Sistemas de Información
© D
iseño d
e A
mador
Durá
n T
oro
, 2011
• Ciclo de vida en cascada vs. ágil
Conceptos Básicos de Ingeniería del Software
septiembre 2014 18 Ingeniería de Requisitos
1. Proyecto Software
2. Informe CHAOS
3. Entregables de un Proyecto Software
4. Ciclos de Vida de un Proyecto Software
5. Sistemas de Información
© D
iseño d
e A
mador
Durá
n T
oro
, 2011
Conceptos Básicos de Ingeniería del Software
• El modelo en V
– Asocia un tipo de pruebas a cada producto de
cada fase según su nivel de abstracción.
septiembre 2014 19
Requisitos de Cliente
Requisitos Software
Diseño Arquitectura
Implementación Componentes
Pruebas Unitarias
Pruebas de Integración
Pruebas de Sistema
Pruebas de Aceptación
validan
validan
validan
validan
Ingeniería de Requisitos
Conceptos Básicos de Ingeniería del Software 26/09/2014
IR 11
1. Proyecto Software
2. Informe CHAOS
3. Entregables de un Proyecto Software
4. Ciclos de Vida de un Proyecto Software
5. Sistemas de Información
© D
iseño d
e A
mador
Durá
n T
oro
, 2011
Conceptos Básicos de Ingeniería del Software
• Niveles de gestión de una organización
– Un sistema de información ayuda a…
• Tomar decisiones estratégicas de competitividad.
• Tomar decisiones tácticas de negocio.
• Llevar a cabo los procesos de negocio y sus
operaciones asociadas.
septiembre 2014 Ingeniería de Requisitos 20
Fuente: O’Brien and Marakas, Introduction to Information Systems, 15th edition,
1. Proyecto Software
2. Informe CHAOS
3. Entregables de un Proyecto Software
4. Ciclos de Vida de un Proyecto Software
5. Sistemas de Información
© D
iseño d
e A
mador
Durá
n T
oro
, 2011
Conceptos Básicos de Ingeniería del Software
• Niveles de gestión de una organización
– El software para sistemas de información…
• Es el que más se desarrolla a medida
• Es al que se orientan casi todas las metodologías
• Es en el que más importancia tienen los requisitos
septiembre 2014 Ingeniería de Requisitos 21
Fuente: O’Brien and Marakas, Introduction to Information Systems, 15th edition,
Conceptos Básicos de Ingeniería del Software 26/09/2014
IR 12
1. Proyecto Software
2. Informe CHAOS
3. Entregables de un Proyecto Software
4. Ciclos de Vida de un Proyecto Software
5. Sistemas de Información
© D
iseño d
e A
mador
Durá
n T
oro
, 2011
Conceptos Básicos de Ingeniería del Software
• Comentarios, sugerencias, …
Ingeniería de Requisitos 22 septiembre 2014