La ingeniería de software se define como la rama de la ingeniería que crea y mantiene aplicaciones de software siguiendo procesos, métodos y herramientas para asegurar la calidad. El software ha adquirido gran importancia debido a su capacidad para automatizar procesos y brindar servicios confiables en diversos sectores. Existen diferentes categorías de software como el de sistemas, aplicaciones, científico, empotrado y basado en la web, cada una con sus propios retos para los ingenieros de software. El proceso de desarrollo de
2. • Ingeniería del software:
En la actualidad, el software es considerado el
producto más importante dentro del campo
tecnológico mundial, debido a su crecimiento o
desarrollo, se ha hecho tan indispensable en los
diferentes sectores de aplicación organizacional (sistemas
de todo tipo), permitiendo rapidez en la ejecución de los
procesos, confiabilidad al momento de realizar una tarea
específica, seguridad en el manejo de la información,
automatización de los procesos, etcétera.
3. • La ingeniería de software se puede definir como la
rama de la ingeniería que crea y mantiene las
aplicaciones de software aplicando tecnologías y
prácticas de las ciencias computacionales, manejo de
proyectos, el ámbito de la aplicación, y otros
campos. Esta ingeniería abarca un proceso, métodos
y herramientas fundamentados en el desarrollo del
producto bajo normas o estándares que reglamenten
la calidad.
4. • Software e Ingeniería del Software:
En la actualidad, el software de computadora es la
tecnología individual más importante en el ámbito
mundial. Es común darse cuenta que la invención de una
tecnología puede tener efectos profundos e inesperados
en otras tecnologías con las que en apariencia no tiene
ninguna relación. (ESTE FENOMENO SE COMO LA LEY DE
LA S CONSECUENCIAS IMPREVISTAS). El software se ha
convertido a través de los años en una tecnología
indispensable en los negocios, la ciencia y la ingeniería.
5. • El papel evolutivo del software :
El software es tanto un producto como el vehículo
para su entrega. Es el transformador de la información.
El papel del software de computadora ha experimentado
un cambio significativo en un periodo un poco mayor a 50
años. Las mejorías sustanciales en el desempeño del
hardware, los cambios profundos en las arquitecturas de
cómputo, los enormes incrementos en las capacidades de
memoria y almacenamiento, y la amplia variedad de
opciones de salida y de entrada han propiciado el
surgimiento de sistemas más elaborados y complejos
basados en computadoras.
6. • El software entrega el producto más importante de
nuestro tiempo: información. Transforma los datos
personales, por ejemplo las transacciones financieras
de un individuo, de modo que los datos sean más
útiles en un contexto local. Maneja información
de negocio para mejorar la competitividad,
proporciona una vía para las redes de información
alrededor del mundo (Internet) y proporciona los
medios para adquirir información en todas sus formas
(páginas web). Se debe tener presente que el software
es un elemento lógico en lugar de físico, de un
sistema(parte intangible del computador).
7. • La Naturaleza cambiante del software: En la actualidad existen
siete grandes categorías del software de computadora que
presentan retos continuos para los ingenieros de software.
• Software de sistemas: Colección de programas escritos para
servir a otros programas. Ejemplo: los compiladores, editores y
utilerías para la administración de archivos, los cuales
procesar estructuras de información compleja pero
determinada. Otras aplicaciones de sistemas como los
componentes del sistema operativo, controladores, software de
red, procesadores para telecomunicaciones, procesan datos
indeterminados
.
• Software de aplicación: Son programas independientes que
resuelven una necesidad de negocios específica. Ejemplo: el
procesamiento de transacciones en los puntos de venta.
8. • Software científico y de ingeniería: Se caracteriza por algoritmos. Abarca
desde la astronomía hasta la vulcanología, desde el análisis de la tensión
automotriz hasta la dinámica orbital de los transbordadores
espaciales, y desde labiología molecular hasta la manufactura
automatizada. Diseño asistido por computadora.
• Software incrustado o empotrado: Reside en la memoria de solo lectura
del sistema y con él se implementan y controlan características y
funciones para el usuario final y el sistema mismo. Ejemplo: control del
teclado de un horno microondas, las funciones digitales de un automóvil,
como el control de combustible, los sistemas de frenado, entre otros.
• Software de línea de productos: Diseñado para proporcionar una
capacidad específica y la utilización de muchos clientes diferentes, se
puede enfocar en un nicho de mercado limitado. Ejemplo: productos
para el control de inventarios, hojas de cálculos, multimedia,
entretenimiento, manejo de BD, administración de personal y finanzas
en los negocios.
9. • Aplicación basada en Web: Las “WebApps” engloban un espectro amplio
de aplicaciones. En su forma más simple, las WebApps son apenas un
poco más que un conjunto de archivos de hipertexto ligados que
presentan información mediante texto y algunas gráficas. Actualmente
estas aplicaciones están integradas con base de datos y aplicaciones de
negocios, ya que proporcionan características que les permite evolucionar
hacia ambientes computacionales sofisticados.
• Software de inteligencia: Utiliza algoritmos no numéricos en la resolución
de problemas complejos que es imposible abordar por medio de un
análisis directo. Incluye la robótica, el reconocimiento de patrones
(imagen y voz), los juegos de computadoras, entre otros10.
• Software Heredado: Hace referencia al software o programas viejos,
aquellos que utilizan tan solo algunas entidades empresariales,
gubernamentales o individuos. Estos fueron desarrollados hace décadas y
han sido modificados en forma continua (mejorados o innovados) para
cumplir los requerimientos de los cambios en los negocios y en las
plataformas de cómputos. Ejemplo: Unix, FoxPro, Dos, entre otros. Aquí se
puede hacer énfasis a los programas de computadora que hacen parte de
los siete grandes dominios de aplicación que se relacionó en el tema de la
naturaleza cambiante del software.
10. • El proceso del software
Son los pasos predecibles que hay que realizar para crear el
programa o código que permitirá la satisfacción de una de
las necesidades del cliente desde el campo de la
preservación de la información. Es decir, un mapa de
carretera que ayude a crear un resultado de alta calidad y a
tiempo.
(Definirlo, construirlo y probarlo), es importante seguir los
pasos porque ofrece estabilidad, control y organización a una
actividad que puede volverse caótica si no se controla. Este
enfoque debe ser ágil, debe requerir solo aquellas
actividades, controles y documentaciones apropiados para
el equipo del proyecto y el producto que ha de
producirse. Se está seguro de que se ha hecho
correctamente cuando se determina la madurez, la
calidad, la viabilidad del producto que se construye.