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 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