FUNDAMENTOS DE LA INGENIERÍA DE SOFTWARE

Conceptos

Más que una disciplina o un cuerpo de conocimiento, la ingeniería es un verbo, una palabra de acción, una manera de abordar un problema.

Antecedentes de la ingeniería de software

La Ingeniería del Software, término utilizado por primera vez por Fritz Bauer en la primera conferencia sobre desarrollo de software patrocinada por el Comité de Ciencia de la OTAN celebrada en Garmisch, Alemania.

en octubre de 1968, puede definirse según Alan Davis como “la aplicación inteligente de principios probados, técnicas, lenguajes y herramientas para la creación y mantenimiento, dentro de un coste razonable, de software que satisfaga las necesidades de los usuarios”…

El término ingeniería del software empezó a usarse a finales de la década de los sesenta, para expresar el área de conocimiento que se estaba desarrollando en torno a las problemáticas que ofrecía el software en ese momento.

La crisis del software pasó, no tanto por la mejora en la gestión de los proyectos, sino en parte porque no es razonable estar en crisis más de veinte años, y en parte porque se estaban haciendo progresos en los procesos de diseño y metodologías.

En combinación con las herramientas, también se han hecho esfuerzos por incorporar los métodos formales al desarrollo de software

argumentando que si se probaba formalmente que los desarrollos hacían lo que se les requería, la industria del software sería tan predecible como lo son otras ramas de la ingeniería.

Actividades de desarrollo de la ingeniería de software

 Obtención de requerimientos

 Análisis y diseño del sistema

 Diseño de objetos

 Implementación

Personal y sus roles

 Usuario final

 Usuario Líder

 Personal de Mantenimiento

 Analistas y programadores

 Personal de pruebas

Modelos de procesos y sus ciclos de vida

 Proceso

Figura 1: Proceso de desarrollo de software

Figura 1: Proceso de desarrollo de software

Figura 2: Elementos del proceso del software

Figura 2: Elementos del proceso del software

 Definición: Ingeniería

La ingeniería es el estudio y la aplicación de las distintas ramas de la tecnología.

Esto quiere decir que, a través de técnicas, diseños y modelos, y con el conocimiento proveniente de las ciencias, la ingeniería puede resolver problemas y satisfacer necesidades humanas. La ingeniería también supone la aplicación de la inventiva y del ingenio para desarrollar una cierta actividad.

 Definición: Software

Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados que forman parte de las operaciones de un sistema de computación.

El software de computadora es el producto que los ingenieros de software construyen y después mantienen en el largo plazo.

El software se forma con:

(1) las instrucciones (programas de computadora) que al ejecutar se proporcionan las características, funciones y el grado de desempeño deseados.

(2) las estructuras de datos que permiten que los programas manipulen información de manera adecuada.

(3) los documentos que describen la operación y uso de los programas.

 Definiciones: Ingeniería del Software

Zelkovitz, 1978 es el estudio de los principios y metodologías para desarrollo y mantenimiento de sistemas de software

Bohem, 1976 Ingeniería del Software es la aplicación práctica del conocimiento científico en el diseño y construcción de programas de computadora y la documentación asociada requerida para desarrollar y operar (funcionar) y mantenerlos. Así como también desarrollo de software o producción de software

Bauer, 1972 La Ingeniería del Software es el establecimiento y uso de principios solidos de la ingeniería para obtener económicamente un software confiable y que funcione de modo eficiente en máquinas reales

IEEE, 1993 Ingeniería de Software es la aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo operación (funcionamiento) y mantenimiento del software: es decir, la aplicación de ingeniería al software

Sommerville, 2004 Es una disciplina de la ingeniería que comprende todos los aspectos de la producción de software desde las etapas iniciales de la especificación del sistema hasta el mantenimiento de este después que se utiliza.

Pressman, 2005 es una disciplina que integra el proceso, los métodos, y las herramientas para el desarrollo de software de computadora

Fallas de la ingeniería de software

Según un documento escrito por Keith F. Kelly, son:

1) La solución es más problemática que el problema que intenta resolver.

2) Basar el diseño en motivos propios, en vez de las necesidades del usuario.

3) Neglicencia para tomar en cuenta todas las posibles fallas.

4) Fallar al proteger la privacía de los usuarios.

5) Esperar que el usuario leerá (o debería) leer todo.

6) Esperar que el usuario procesará (o debería) todo el conocimiento (o habla) técnico.

7) Esperar que el usuario configurará (o debería) algo antes de usarlo.

8) Intentar o tratar de adivinar las intenciones del usuario.

9) Desconocer cuándo hacer re-ingeniería (también hacerlo inapropiadamente, o evitarla cuando es necesario).

10) Fracasar al hacer una implementación lo más mantenible y entendiblemente posible.

Conceptos relacionados con la ingeniería de software

Participantes

Papeles

Sistemas

Modelos

Productos de trabajo

Actividades

Subtopic

Tareas

Recursos

Objetivo

Requerimientos

Notaciones

Método

Metodología