PDF de programación - Compendio de Ingeniería del Software rev. 07

Imágen de pdf Compendio de Ingeniería del Software rev. 07

Compendio de Ingeniería del Software rev. 07gráfica de visualizaciones

Publicado el 15 de Enero del 2017
1.391 visualizaciones desde el 15 de Enero del 2017
27,5 MB
662 paginas
Creado hace 5a (05/06/2014)
Compendio de Ingeniería del Software

Rev. 1.0 Mayo 2014

Juan Palacio

Tabla de contenido

 Prólogo

 Verificación y validación

 Introducción a la ingeniería del software

 Mantenimiento

 Gestión de proyectos predictiva

 Producción basada en procesos

 Ingeniería de procesos de software

 Gestión de la configuración

 Agilidad

 Conocimiento

 Modelo de procesos CMMI

 Síntesis entre procesos y agilidad

 Modelo de procesos ISO IEC 15504

 Ciclo de vida del software

 Scrum: el marco

 Scrum: Métricas

 Ciclos de desarrollo y patrones de gestión de

 Scrum: prácticas

proyectos

 Los requisitos del software

 Diseño del software

 Documentación de usuario

 Kanban

 Gestión en organizaciones ágiles

Prólogo

Este Compendio de Ingeniería del Software recopila apuntes preparados por el autor para
formación, que resumen aspectos pragmáticos de Ingeniería del Software.

Se comparten con una licencia abierta1 para su uso en autoformación, o en foros que requieran la
exposición de alguna de las áreas de la Ingeniería del Software que cubren, con un enfoque
ejecutivo o general, sin la densidad propia del texto académico:


 Formación de Ingeniería del Software como asignatura complementaria en programas de

estudio técnicos.

 Formación continua de gestores intermedios o directivos de empresas de software.
 Presentaciones de asesoría y formación profesional durante la implantación de procesos de

mejora.

 Etc.

Este no es un trabajo completo, y por su carácter general no pretende cubrir todos los modelos,
técnicas o líneas de trabajo de la Ingeniería del Software, sino las más pragmáticas para la industria
del software.

Si resulta posible, en futuras versiones, además de la revisión de este contenido, se incluirán temas
que por razones de tiempo y prioridad se quedan fuera.



3

Juan Palacio

(1) Para consultar los usos autorizados de este trabajo o contactar con el autor:

http://www.safecreative.org/work/1401289956290

Introducción a la

Ingeniería del Software

1.0

4

Introducción Ingeniería del Software

1952

5

Introducción Ingeniería del Software

6

1965

Crisis del software

Introducción Ingeniería del Software

1950

1960

1970

1980

1990

1990

2000

Crisis

Software ?

del

7

Crisis del software

Introducción Ingeniería del Software

Este problema se identificó por primera vez en 1968, año en el que la organización NATO desarrolló
la primera conferencia sobre desarrollo de software, y en la que se acuñaron los términos “crisis
del software” para definir a los problemas que surgían en el desarrollo de sistemas de software, e
“ingeniería del software” para describir el conjunto de conocimientos que existían en aquel
estado inicial.

Algunas referencias útiles para comprender cuáles eran los conocimientos estables para el
desarrollo de software en 1968 son:



 En 1962 se publicó el primer algoritmo para búsquedas binarias.

 C. Böhm y G. Jacopini publicaron en 1966 el documento que creaba una fundación para la

eliminación de “GoTo” y la creación de la programación estructurada.

 En 1968 los programadores se debatían entre el uso de la sentencia GoTo, y la nueva idea

de programación estructurada; ese era el caldo de cultivo en el que Edsger Dijkstra escribió
su famosa carta “GoTo Statement Considered Harmful” en 1968.

 La primera publicación sobre programación estructurada no vio la luz hasta 1974, publicada

por Larry Constantine, Glenford Myers y Wayne Stevens.

 El primer libro sobre métrica de software fue publicado en 1977 por Tom Gilb.

 El primero sobre análisis de requisitos apareció en 1979

8

LA PRIMERA SOLUCIÓN A LA CRISIS DEL SOFTWARE

Introducción Ingeniería del Software

INGENIERÍA DEL SOFTWARE

Aplicación de un enfoque sistemático, disciplinado y cuantificable en el
desarrollo, operación y mantenimiento de software.

INGENIERÍA DE PROCESOS
(Producción basada en procesos / mejora continua del proceso)

Aplicación del principio de calidad de Jurán empleado en la producción
industrial a la producción de sotware: “La calidad del resultado depende de
la calidad del proceso” -> modelos de procesos: CMMI, ISO 15504…

GESTIÓN DE PROYECTOS

(Aplicación del modelo de gestión de proyectos predictivo en los proyectos de software)

Aplicación de procesos de planificación, ejecución y control para alcanzar un
objetivo final en un plazo de tiempo determinado con el coste y nivel de
calidad previstos

9

Introducción Ingeniería del Software

10

1980

Introducción Ingeniería del Software

11

1986

Introducción Ingeniería del Software

12

1990

Introducción Ingeniería del Software

13

2000

Introducción Ingeniería del Software

14

2005

Introducción Ingeniería del Software

15

2010

Crisis del software

Proyectos para desarrollo de sistemas de software

Introducción Ingeniería del Software

Fracaso

24%

19%

23%

Problemático

44%

53%

49%

28%

46%

40%

31%

33%

53%

2009

2004

2000

1998

1995

1994

16

Éxito

32%

29%

28%

26%

27%

16%

Fuente: Standish Group Survey,

Crisis del software

Proyectos para desarrollo de sistemas de software

Introducción Ingeniería del Software

Fracaso

24%

19%

23%

Problemático

44%

53%

49%

28%

46%

40%

31%

33%

53%

2009

2004

2000

1998

1995

1994

17

Éxito

32%

29%

28%

26%

27%

16%

Fuente: Standish Group Survey,

Introducción Ingeniería del Software

Ingeniería del software

Definición original:


“Establecimiento y uso de principios de ingeniería para obtener software
económico que trabaje de forma eficiente en máquinas reales”.


Fritz Baver, 1968 (conferencia NATO)

Otras definiciones


“Disciplina para producir software de calidad desarrollado sobre las agendas y
costes previstos y satisfaciendo los requisitos”.


S. Schach 1990, Software Engineering

“(1) La aplicación de métodos sistemáticos, disciplinados y cuantificables para el
desarrollo, operación y mantenimiento de software; esto es, la aplicación de la
ingeniería al software.
(2) El estudio de (1)”.


IEEE 1993

18

Ingeniería del software

Introducción Ingeniería del Software

Desde 1968 hasta la fecha han sido muchos los esfuerzos realizados por los departamentos de
informática de las universidades, y por organismos de estandarización (SEI, IEEE, ISO) para
identificar las causas del problema y definir pautas estándar para la producción y mantenimiento del
software.

Los esfuerzos se han encaminado en tres direcciones principales.

 Identificación de los factores clave que determinan la calidad del software.

 Identificación de los procesos necesarios para producir y mantener software.

 Acotación, estructuración y desarrollo de la base de conocimiento necesaria para la

producción y mantenimiento de software.

El resultado ha sido la necesidad de profesionalizar el desarrollo, mantenimiento y
operación de los sistemas de software, introduciendo métodos y formas de trabajo
sistemáticos, disciplinados y cuantificables.

La forma de trabajo de programadores individuales surgida por la necesidad de los primeros
programas, ha creado una cultura de la programación heroica, para el desarrollo de software que es
la principal causa de los problemas apuntados, y en la actualidad una de las principales resistencias
a la implantación de técnicas de ingeniería para el desarrollo de sistemas

19

Ingeniería del software

Introducción Ingeniería del Software

La Ingeniería del Software es una ingeniería muy joven que necesitaba:

 Definirse a sí misma: ¿Cuáles son las áreas de conocimiento que la comprenden?

 Definir los procesos que intervienen en el desarrollo, mantenimiento y operación

del software

 De las mejores prácticas, extraer modelos de cómo ejecutar esos procesos para

evitar los problemas de la “crisis del software”

 Definir criterios unificadores para las tareas de requisitos, pruebas, gestión de la

configuración, etc.

Los estándares son útiles porque:


 Agrupan lo mejor y más apropiado de las buenas prácticas y usos del desarrollo de

software.

 Engloban los “conocimientos”.

 Proporcionan un marco para implementar procedimientos de aseguramiento de la calidad.

 Proporcionan continuidad y entendimiento entre el trabajo de personas y organizaciones

distintas.

20

Ingeniería del software

Introducción Ingeniería del Software

Desde la identificación del fenómeno “crisis del software”, han sido muchas las organizaciones que
han abordado, con mayor o menor rigor, el análisis de problemas en el desarrollo de sistemas de
software. Sus trabajos se han encaminado a la localización de las causas; y a la exposición en
textos didácticos, normativos o estándares de procesos o prácticas necesarias para abordar el
desarrollo, mantenimiento y operación con las mayores garantías de éxito.

Han sido muchos los departamentos de universidades, organismos de normalización o investigación
nacionales o internacionales, sociedades de profesionales, departamentos de defensa,
departamentos de calidad y procesos de empresas los que han ido generando normas y estándares.

Este compendio considera como entidades de mayor reconocimiento internacional, por sus trabajos
y esfuerzos realizados para la normalización, y reconocimiento de la Ingeniería del software a: ISO,
IEEE- Computer Society y SEI.

21

Introducción Ingeniería del Software

Ingeniería del software

 ISO

Organización Internacional para la Estandarización. Fundada en 1947

Son miembros 87 países.

En 1987 la Organización Internacional para la Estandarización (ISO) y la Comisión
Internacional Electrotécnica (IEC), establecieron un Comité Internacional (JTC1) para las
Tecnologías de la Información. La misión del JTC1 es la “estandarización en el campo de
campo de los sistemas
  • Links de descarga
http://lwp-l.com/pdf1899

Comentarios de: Compendio de Ingeniería del Software rev. 07 (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad