La ingeniería de software es
una disciplina formada por un conjunto de métodos, herramientas y técnicas que
se utilizan en el desarrollo de los programas informáticos (software).
Esta disciplina trasciende la actividad de programación, que es el pilar
fundamental a la hora de crear una aplicación. El ingeniero de software se
encarga de toda la gestión del proyecto para que éste se pueda desarrollar en
un plazo determinado y con el presupuesto previsto.
La
ingeniería de software, por lo tanto, incluye el análisis previo de la
situación, el diseño del proyecto, el desarrollo del software, las pruebas
necesarias para confirmar su correcto funcionamiento y la implementación del sistema.
Cabe destacar que el
proceso de desarrollo de software implica lo que se conoce como ciclo de vida del software,
que está formado por cuatro etapas: concepción, elaboración, construcción y
transición.
La
concepción fija el alcance del proyecto y desarrolla el modelo de negocio; la elaboración define
el plan del proyecto, detalla las características y fundamenta la arquitectura;
la construcción es el desarrollo del producto; y la transición es la transferencia
del producto terminado a los usuarios.
Una
vez que se completa este ciclo, entra en juego el mantenimiento del software. Se trata de una fase de
esta ingeniería
donde se solucionan los errores descubiertos (muchas veces advertidos por los
propios usuarios) y se incorporan actualizaciones para hacer frente a los nuevos requisitos. El proceso de
mantenimiento incorpora además nuevos desarrollos, para permitir que el
software pueda cumplir con una mayor cantidad de tareas.
Un
campo directamente relacionado con la ingeniería de software es la arquitectura de sistemas, que consiste en determinar y
esquematizar la estructura general del proyecto, diagramando su esqueleto con un grado relativamente alto de
especificidad y señalando los distintos componentes que serán necesarios para
llevar a cabo el desarrollo, tales como aplicaciones complementarias y bases de
datos. Se trata de un punto fundamental del proceso, y es muchas veces la clave
del éxito de un producto informático.
La primera de todas
las etapas del trabajo que realizan los ingenieros de software consiste en
estudiar minuciosamente las características que se creen necesarias para el
programa a desarrollar,
y es éste el punto en el cual deben encontrar un equilibrio (cada vez más
difícil de alcanzar) entre las demandas excesivas de los malos consumidores y
las posibilidades de la compañía. El tiempo es dinero, y las empresas del mundo
informático lo saben muy bien.
Cada función de
un programa, cada rasgo que lo vuelva más cómodo, más inteligente, más
accesible, se traduce en una cantidad determinada de tiempo, que a su vez
acarrea los sueldos de todas las personas involucradas en su desarrollo. Pero
además del costo de producción necesario para realizar cada una de las piezas de un programa, la ingeniería de
software debe decidir cuáles de ellas tienen sentido, son coherentes con el
resto y son necesarias para comunicar claramente la esencia y los objetivos de
la aplicación.
La ingeniería de sistemas es una carrera universitaria que se
encarga del diseño,
la programación, la implantación y el mantenimiento de sistemas. A diferencia de otras ramas de la ingeniería,
esta disciplina no se ocupa de productos tangibles (los ingenieros civiles, por
ejemplo, construyen edificios), sino de productos lógicos.
La
ingeniería de sistemas permite transformar una necesidad operativa en una
descripción de los parámetros del rendimiento de un sistema, con su
correspondiente configuración. Por otra parte, posibilita la integración de los parámetros técnicos relacionados de modo tal que las
interfaces de programa y funcionales sean compatibles y se garantice el
funcionamiento del sistema total.
En concreto, el ingeniero de sistemas puede dedicarse al
desarrollo e implementación de redes complejas, a la programación de aplicaciones informáticas y al manejo de base de datos, por
ejemplo.
CAPAS EN LA INGENIERÍA DE SOFTWARE
HERRAMIENTAS: proporciona un enfoque automático o semiautomático
para el proceso y para los métodos cuando se integran herramientas para la información
creada por una herramienta la puede utilizar otra, se establece un sistema de
soporte para el desarrollo de software llamado Ingeniería de Software asistida
por computadora.
METODO: Los métodos de la ingeniería de software indican cómo se debe construir técnicamente el software abarcan una gran gama de tareas, que incluyen:
- Análisis de requisitos.
- Diseño
- Construcción de programas
- Pruebas
- Mantenimiento.
Dependen de un conjunto de principios básicos que gobiernan cada área de la tecnología e incluyen actividades del modelado otras técnicas descriptivas.
PROCESO: Define un marco del trabajo para un conjunto de áreas claves de proceso que se deben establecer para la entrega efectiva de la tecnología de la ingeniería de software las áreas claves forman la base del control del proyecto.
METODO: Los métodos de la ingeniería de software indican cómo se debe construir técnicamente el software abarcan una gran gama de tareas, que incluyen:
- Análisis de requisitos.
- Diseño
- Construcción de programas
- Pruebas
- Mantenimiento.
Dependen de un conjunto de principios básicos que gobiernan cada área de la tecnología e incluyen actividades del modelado otras técnicas descriptivas.
PROCESO: Define un marco del trabajo para un conjunto de áreas claves de proceso que se deben establecer para la entrega efectiva de la tecnología de la ingeniería de software las áreas claves forman la base del control del proyecto.
¿Qué es un Proceso del Software?
Conjunto de actividades y resultados asociados
que producen un producto de software. Estas actividades son llevadas a cabo por
los ingenieros de software, son las siguientes:
1. Especificación del
software donde los clientes e ingenieros definen el software a producir y
las restricciones sobre su operación.
2. Desarrollo del
software donde el software se diseña y programa.
3. Validación del
software donde el software se valida para asegurar que es lo que el cliente
requiere.
4. Evolución del
software donde el software se modifica para adaptarlo a los cambios requeridos
por el cliente y el mercado.
Enfoques de desarrollo de software
Cada metodología de desarrollo de software tiene
más o menos su propio enfoque para el desarrollo de software. Estos son los enfoques más generales,
que se desarrollan en varias metodologías específicas. Estos enfoques son los
siguientes:
· - Modelo en cascada: Framework lineal.
· - Prototipado: Framework iterativo.
· - Incremental: Combinación de framework lineal e
iterativo.
· - Espiral: Combinación de framework lineal e
iterativo.
· - RAD: Rapid
Application Development, framework iterativo.
Es un proceso secuencial de desarrollo en el que
los pasos de desarrollo son vistos hacia abajo (como en una cascada de agua) a
través de las fases de análisis de las necesidades, el diseño, implementación,
pruebas (validación), la integración, y mantenimiento.
Prototipado
El prototipado es el framework de actividades
dedicada al desarrollo de software prototipo, es decir, versiones incompletas
del software a desarrollar.
Los principios básicos son:
- La atención se centra en la evaluación y
reducción del riesgo del proyecto dividiendo el proyecto en segmentos más
pequeños y proporcionar más facilidad de cambio durante el proceso de
desarrollo, así como ofrecer la oportunidad de evaluar los riesgos y con un
peso de la consideración de la continuación del proyecto durante todo el ciclo
de vida.
- Cada viaje alrededor de la espiral atraviesa
cuatro cuadrantes básicos: (1) determinar objetivos, alternativas, y
desencadenantes de la iteración; (2) Evaluar alternativas; Identificar y
resolver los riesgos; (3) desarrollar y verificar los resultados de la
iteración, y (4) plan de la próxima iteración.
· - Cada ciclo comienza con la identificación de los
interesados y sus condiciones de ganancia, y termina con la revisión y
examinación.
Rapid Application Development (RAD)
El desarrollo rápido de aplicaciones (RAD)
es una metodología de desarrollo de software, que implica el desarrollo
iterativo y la construcción de prototipos.
· - Objetivo clave es para un rápido desarrollo y
entrega de una alta calidad en un sistema de relativamente bajo coste de
inversión.
· - Intenta reducir los riesgos inherentes del
proyecto partiéndolo en segmentos más pequeños y proporcionar más facilidad de
cambio durante el proceso de desarrollo.
· - Orientación dedicada a producir sistemas de alta
calidad con rapidez, principalmente mediante el uso de iteración por prototipos
(en cualquier etapa de desarrollo), promueve la participación de los usuarios y
el uso de herramientas de desarrollo computarizadas
· - Control de proyecto implica el desarrollo de
prioridades y la definición de los plazos de entrega.
REFERENCIAS BIBLIOGRÁFICAS.
- Ian Sommerville. Ingenieria de
Software. Pearson. 2005
- Definición de ingeniería de software -
Qué es, Significado y Concepto http://definicion.de/ingenieria-de-software/#ixzz2LhOI7F9x
No hay comentarios:
Publicar un comentario