Ingeniería de software

Ingeniería de software
Información sobre la plantilla
Concepto:Ciencia de la Computación, que ofrece métodos y técnicas para desarrollar y mantener software de calidad que resuelven problemas de todo tipo.

Ingeniería del Software. La Ingeniería del Software es una disciplina o área de la Informática que ofrece métodos y técnicas para desarrollar y mantener software de calidad que resuelven problemas de todo tipo. Existen varias definiciones sobre esta ciencia de la computación que permiten describir este proceso.

Estado del arte de la Ingeniería del Software

La Ingeniería del Software es una disciplina o área de la Informática o Ciencias de la Computación, que ofrece métodos y técnicas para desarrollar y mantener software de calidad que resuelven problemas de todo tipo. Hoy día es cada vez más frecuente la consideración de la Ingeniería del Software como una nueva área de la ingeniería, y el ingeniero del software comienza a ser una profesión implantada en el mundo laboral internacional, con derechos, deberes y responsabilidades que cumplir, junto a una, ya, reconocida consideración social en el mundo empresarial y, por suerte, para esas personas con brillante futuro.

La Ingeniería del Software trata con áreas muy diversas de la Informática y de las ciencias de la computación, tales como construcción de compiladores, sistemas operativos o desarrollos de Intranet/Internet, abordando todas las fases del ciclo de vida del desarrollo de cualquier tipo de sistemas de información y aplicables a una infinidad de áreas tales como: negocios, investigación científica, medicina,producción,logística, banca, control de tráfico, meteorología, el mundo del derecho, la red de redes Internet, redes Intranet y Extranet, etc.

Término Ingeniería del Software

Según Diccionario de la Real Academia Española de la Lengua

El término Ingeniería se define en el Diccionario de la Real Academia Española de la Lengua (DRAE) como: Conjunto de conocimientos y técnicas que permiten aplicar el saber científico a la utilización de la materia y de las fuerzas de energía.

Profesión y ejercicio del ingeniero, y el término ingeniero se define como: Persona que profesa o ejerce la ingeniería.

Según la Real Academia de Ciencias Exactas, Físicas y Naturales

Ingeniería: Es el conjunto de conocimientos y técnicas cuya aplicación permite la utilización racional de los materiales y de los recursos naturales, mediante invenciones, construcciones u otras realizaciones provechosas para el hombre.

Evidentemente, si la Ingeniería del Software es una nueva ingeniería, parece lógico que reúna las propiedades citadas en las definiciones anteriores. Sin embargo, ni el DRAE ni la Real Academia Española de Ciencias han incluido todavía el término es sus últimas ediciones; en consecuencia vamos a recurrir para su definición más precisa a algunos de los autores más acreditados que comenzaron en su momento a utilizar el término o bien en las definiciones dadas por organismos internacionales profesionales de prestigio tales como IEEE o ACM.

Definiciones de Ingeniería de Software

Definición 1: Ingeniería de Software es el estudio de los principios y metodologías para desarrollo y mantenimiento de sistemas de software.

Definición 2: Ingeniería de 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, operar (funcionar) y mantenerlos. Se conoce también como desarrollo de software o producción de software.

Definición 3: Ingeniería de Software trata del establecimiento de los principios y métodos de la Ingeniería a fin de obtener software de modo rentable que sea fiable y trabaje en máquinas reales.

Definición 4: 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.

El producto y el proceso de la Ingeniería del Software

El producto

El software de computadora se ha convertido en el alma máter. Es la máquina que conduce a la toma de decisiones comerciales. Sirve para la investigación científica moderna y de resolución de problemas de ingeniería. Es el factor clave que diferencia los productos y servicios modernos. Está inmerso en sistemas de todo tipo: de transportes, médicos, de telecomunicaciones, militares, procesos industriales, entretenimientos, productos de oficina, la lista es casi interminable. El software es casi ineludible en un mundo moderno. A medida que nos adentremos en el siglo XXI, será el que nos conduzca a nuevos avances en todo, desde la educación elemental a la ingeniería genética.

El software de computadora es el producto que diseñan y construyen los ingenieros del software. Esto abarca programas que se ejecutan dentro de una computadora de cualquier tamaño y arquitectura, documentos que comprenden formularios virtuales e impresos y datos que combinan números y texto y también incluyen representaciones de información de audio, vídeo e imágenes.

Los ingenieros de software lo construyen, y virtualmente cualquier persona en el mundo industrializado lo utiliza, bien directa o indirectamente. Es importante porque afecta muy de cerca cualquier aspecto de la vida y está muy extendido en el comercio y en las actividades cotidianas.

Los pasos son construir software de computadora como construimos cualquier otro producto satisfactorio, aplicando un proceso que conduce a un resultado de alta calidad, que satisface las necesidades de las personas que usarán el producto. Debes aplicar un enfoque de ingeniería de software.

Desde el punto de vista de un ingeniero de software, el producto obtenido son los programas, documentos y los datos que configuran el software de computadora. Pero desde el punto de vista de los usuarios el producto obtenido es la información resultante que de algún modo mejora el mundo de los usuarios.

El proceso

Como el software, al igual que el capital, es el conocimiento incorporado, y puesto que el conocimiento está inicialmente disperso, el desarrollo del software implícito, latente e incompleto en gran medida, es un proceso social de aprendizaje.

El proceso es un diálogo en el que se reúne el conocimiento y se incluye en el software. El proceso proporciona una interacción entre los usuarios y los diseñadores, entre los usuarios y las herramientas de desarrollo, y entre los diseñadores y las herramientas de desarrollo [tecnología]. Es un proceso interactivo donde la herramienta de desarrollo se usa como medio de comunicación, con cada iteración del diálogo se obtiene mayor conocimiento de las personas involucradas.

Cuando se trabaja para construir un producto o un sistema, es importante seguir una serie de pasos predecibles, un mapa de carreteras que le ayude a obtener el resultado oportuno de calidad. El mapa de carreteras a seguir es llamado proceso del software.

Lo construyen los ingenieros del software y sus gestores adaptan el proceso a sus necesidades y entonces lo siguen. Además las personas que han solicitado el software tienen un papel a desempeñar en el proceso del software. Es importante porque proporciona estabilidad, control y organización a una actividad que puede, si no se controla, volverse caótica.

Los pasos son a un nivel detallado, el proceso que adoptemos depende del software que estamos construyendo. Un proceso puede ser apropiado para crear software de un sistema de aviación, mientras que un proceso diferente por completo puede ser adecuado para la creación de un sitio web.

Desde el punto de vista de un ingeniero de software, los productos obtenidos son programas, documentos y datos que se producen como consecuencia de las actividades ingenieriles definidas por el proceso.

Hay una cantidad de mecanismos de evaluación del proceso de software que permiten a las organizaciones determinar la madurez de su proceso. Sin embargo, la calidad, oportunidad y viabilidad a largo plazo del producto que se está construyendo, son los mejores indicadores de la eficiencia del proceso que estamos utilizando.


Modelos de desarrollo de software

Existen varios modelos, paradigmas y filosofías de desarrollo, en los cuales se apoya la ingeniería de software para la construcción del software, entre ellos se puede citar:

  • Modelo de prototipos
  • Desarrollo por etapas
  • Desarrollo iterativo y creciente o Iterativo e Incremental
  • Desarrollo concurrente


Ver además

Fuentes

  • Pressman, Roger S., Ingeniería del Software. Vol. I. 250 p. 2005.