Está en la página 1de 8

Ingeniería de

Software

Taller de
Ingeniería de
Software

1
Ingeniería de Software

Concepto de Ingeniería de Software

Frases introductorias

“Ingeniería de Software es la aplicación de un enfoque sistemático,


disciplinado y cuantificable al desarrollo, funcionamiento y mantenimiento
del software: es decir, la aplicación de ingeniería al software. (IEEE-
Institute of Electrical and Electronics Engineers, 1993)

Existen varias definiciones de Ingeniería de Software, para poder


analizarlas es necesario conocerlas por lo que a continuación presento las
más relevantes:

• “Ingeniería del Software es el estudio de los principios y


metodologías para desarrollo y mantenimiento de sistemas de
software”. [Zelkovitz, 1978], Ingeniería del Software: un enfoque
práctico de Roger Pressman

• “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, operar y mantenerlos. Se conoce también como
desarrollo de software o producción de software”. [Bohem, 1976].

1
• “Ingeniería del 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”. [Bauer, 1972]

• “Es una disciplina 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 éste después
de que se pone en operación”. [Sommerville, 2001]

Como podemos observar todas las definiciones tienen el mismo tipo de


mensaje, la ingeniería de software implica orden, metodología,
documentación en el proceso de desarrollo del software. Para lograrlo es
importante conocer las bases científicas, de conocimiento y herramientas
que nos permitan operar correctamente para obtener un producto de
calidad.

La elección de los modelos y normas a crear tiene mucha influencia


sobre cómo se aborda el problema y cómo se da forma
a la solución.
Esto quiere decir que hay que elegir bien los modelos y normas; es
por ello que la Ingeniería de Software nos indica las buenas prácticas para
que el desarrollo de un producto de software no sea un arte como
sucedió durante varias décadas en las que esto aparejó muchos
inconvenientes y clientes disconformes.

Hay muchos tipos de sistemas de software, desde los simples


sistemas embebidos hasta los más complejos que, al ser abstractos e
intangibles, no están restringidos por las leyes físicas ni por procesos de
fabricación que sí son contemplados en las otras ingenierías. Si bien
esto simplifica la ingeniería de software, al no existir límites naturales,
el riesgo es que rápidamente se vuelvan muy complejos, difíciles de
entender con una mantención muy costosa, falta de portabilidad y de
reuso, dificultando la interoperatividad entre sistemas y proclive a ser
ineficientes.

2
La Ingeniería de software es una subdisciplina de la Ingeniería, considerada
dentro de la Ingeniería en Sistemas, que se interesa por todos los aspectos
de la construcción de software, desde la especificación de requerimientos
para el sistema hasta el mantenimiento del mismo una vez instalado para
su operación o uso.

Ian Sommerville en su libro Ingeniería de software presenta dos frases


claves en su definición de Ingeniería de Software:

1) Disciplina de software, relacionada con la actividad de los ingenieros


que hacen que las cosas funcionen aplicando teorías, métodos y
herramientas. Es común que en esta actividad se trabaje con
restricciones organizacionales y/o financieras que obligan a buscar
soluciones dentro de los parámetros establecidos.
2) Todos los aspectos de la producción de software, esto incluye
procesos, etapas, tecnología a utilizar, administración del proyecto,
teorías, métodos, o sea todo aquello que colabore y apoye la
construcción del software.

Dentro de los objetivos que busca la ingeniería de software podemos


mencionar:

- Obtener un producto de calidad dentro de la fecha y presupuesto


previsto.

Este objetivo lleva aparejado una seria de acciones muy importantes y


objetivos específicos a lograr para llegar al éxito del proyecto.

Diversidad de la Ingeniería de software


El tema lo encontrará en el capítulo 1 de Ingeniería de Software de Ian
Sommerville.

En la actualidad la Ingeniería de Software es un enfoque sistemático para la


construcción del mismo que tiene en cuenta los costos, fechas de entrega,
confiabilidad, la calidad del producto, las necesidades del cliente, los
dispositivos en los que puede aplicarse, la tecnología en comunicaciones,
proveedores de software que pueden interactuar, individuos que
intervienen en el proceso de construcción, entre otros.

Este enfoque sistémico requiere de una metodología, un orden y buenas


prácticas; teniendo en cuenta que no existen métodos y técnicas

3
universales que se apliquen a todo tipo de software, es que es necesario
basarse en los principios de la ingeniería de software para lograr un
producto de calidad, que satisfaga al cliente y que se entregue en término.

Para elegir las técnicas y métodos más apropiados es importante tener en


cuenta los distintos tipos de aplicación que están siendo desarrolladas en la
actualidad, reconociendo que en esta disciplina el avance tecnológico puede
presentar nuevos tipos o alternativas para las aplicaciones.

No obstante, es conveniente identificar estos tipos. Entre ellos podemos


citar los que Ian Sommerville presenta en su libro Ingeniería de Software:
- Aplicaciones independientes. Normalmente son monousuarios,
instaladas en una computadora sin necesidad de conexión o
interacción con otros componentes de hardware y software.

- Aplicaciones interactivas basadas en transacciones. Normalmente


son aplicaciones que se ejecutan en una computadora remota,
server, a los que los usuarios acceden desde sus terminales, las
cuales pueden ser servidores de otras aplicaciones o servicios.
- Sistemas de control embebido. Son sistemas de control de software
que regulan y gestionan dispositivos de hardware. En la actualidad
son los que les resultarán más familiares, ya que nos referimos al
software de celulares, de los automóviles, los electrodomésticos,
entre otros.
- Sistemas de procesamiento en lotes. Si bien no son los más
comunes, en este momento aún se utilizan; son los que procesan
grandes cantidades de datos en un momento determinado, o sea,
no son en tiempo real, como puede ser los sistemas de pago de
salario, facturaciones de servicios, entre otros.
- Sistema de entretenimiento. Son juegos que pueden ser de uso
personal únicamente o de interactividad con otros jugadores.

- Sistemas de modelado y simulación. Sistemas que modelan procesos


o situaciones físicas donde interactúan muchos objetos. Por lo
general son diseñados de forma conjunta entre ingenieros,
científicos y profesionales o técnicos de otras disciplinas; por
ejemplo, la simulación de un torno requiere de ingenieros de
distintas disciplinas, diseñadores industriales, diseñadores gráficos,
programadores, especialistas, entre otros.
- Sistemas de adquisición de datos. Son sistemas que requieren de
dispositivos que obtienen los datos y los envían para su
procesamiento a otros sistemas. Algunos ejemplos son los que
utilizan censores, ya sea de humedad, sonido, calor, también
pueden considerarse los GPS, lectores de barra, entre otros.

4
- Sistemas de sistemas. Son sistemas compuestos por un conjunto de
sistemas de software pudiendo ser parte del sistema genérico o no.
Ten en cuenta que un componente no es un sistema por lo que
requiere de la funcionalidad de unir, relacionar estos sistemas en uno
solo.
Los sistemas de software no pertenecen por lo general a una sola
clasificación de las planteadas anteriormente, pueden estar en dos o más
de ellas, por ejemplo un juego para celular, las aplicaciones para
Smartphone, SmartTV, entre otras.

Software en la web

Con el avance de Internet, las empresas no solo presentaron sus productos


con la intención de ampliar su cartera de clientes al salir de las fronteras
locales hacia las nacionales o internacionales, sino que los avances han
llevado en los últimos años al concepto de “Software como servicio”.

¿Qué es software como servicio?

La tendencia llevó a que el software no corriera en una computadora local,


ni en un servidor local, sino en la “nube” a las que necesariamente se
accede por internet. Este avance cambia el concepto de compra de
software por el de uso con un pago por el servicio, también puede ser
gratuito con publicidades que se visualizan en el sitio.

Esta situación condujo al desarrollo de nuevos productos con servicios


innovadores que se integran desde la web y dan la posibilidad de que
otros actores del negocio pudieran acceder al sistema, como los
proveedores y clientes de las empresas a través de lo que se conoce
como "autogestión". Estos servicios también se incorporaron en las
instituciones educativas para autogestión de alumnos y de docentes, en la
administración pública para seguimiento de trámites, entre otros.

Para acceder a estas aplicaciones los usuarios del sistema necesitan un


navegador en su pc, notebook, tablet o teléfono celular y una conexión a
Internet. Estas tecnologías, hardware de dispositivos, software de
navegadores y comunicación a Internet, fueron evolucionando hasta
permitir que los usuarios de lugares fuera de las grandes ciudades puedan
disponer de estas tecnologías y acceder a los sistemas.

Una nube de computación es un enorme número de sistemas de


computación vinculados entre sí que comparten muchos usuarios.

La novedad en la comercialización es que los clientes no compran el


software sino que pagan el servicio durante su uso, mientras que sus
clientes acceden siempre que cuenten con la tecnología necesaria para
acceder.

5
Este avance cambia el concepto de realizar una aplicación empresarial; no
se programa desde cero, sino que requieren de componentes y programas
reutilizables.

¿Se puede usar la misma ingeniería?

El cambio en la organización del software condujo a modificaciones


importantes:

- Reutilización del software. Si bien el concepto y la utilización ya


estaban presentes, para la web se torna indispensable el uso de
componentes que se ensamblan y se reutilizan.
- Especificación de requerimientos. Es dinámico, por lo que debe
hacerse progresivamente, no es posible tener el 100% de los
requerimientos para comenzar a desarrollar la aplicación web.

- Interfaz de usuario. No solo cambió sino que se encuentran


restringidas por los navegadores. Las normas de usabilidad de la
interfaz de sistemas locales o en red de escritorio cambian a las
normas de usabilidad de la interfaz web.

- Dispositivo de hardware. Las aplicaciones web se pueden utilizar


desde computadoras, teléfonos móviles (Smartphone), desde
tablet, televisores (SmartTV), relojes y no tenemos dimensión del
futuro, por lo que requiere una mirada muy cuidadosa al respecto.

6
Bibliografías de referencia
Ian Sommerville, “Ingeniería de Software”, Novena edición, 2011, Editorial
Pearson.

Capítulos: 1, 2, 9

También podría gustarte