You are on page 1of 7

INTRODUCCION

La ingeniería de software es la aplicación de un enfoque sistemático, disciplinado


y cuantificable al desarrollo, operación y mantenimiento de software, y el estudio
de estos enfoques, es decir, el estudio de las aplicaciones de la ingeniería
al software Integra matemáticas, ciencias de la computación y prácticas cuyos
orígenes se encuentran en la ingeniería. A creación del software es un proceso
intrínsecamente creativo y la ingeniería del software trata de sistematizar este
proceso con el fin de acotar el riesgo de fracaso en la consecución del objetivo,
por medio de diversas técnicas que se han demostrado adecuadas sobre la base de
la experiencia previa.
Proceso de desarrollo de software

El Proceso para el desarrollo de software, también denominado ciclo de vida del


desarrollo de software es una estructura aplicada al desarrollo de un producto
de software. Hay varios modelos a seguir para el establecimiento de un proceso
para el desarrollo de software, cada uno de los cuales describe un enfoque
diferente para diferentes actividades que tienen lugar durante el proceso. Algunos
autores consideran un modelo de ciclo de vida un término más general que un
determinado proceso para el desarrollo de software. Por ejemplo, hay varios
procesos de desarrollo de software específicos que se ajustan a un modelo de ciclo
de vida de espiral.

Modelos de proceso de desarrollo de software

Los modelos de desarrollo de software son una representación abstracta de una


manera en particular. Realmente no representa cómo se debe desarrollar el
software, sino de un enfoque común. Puede ser modificado y adaptado de acuerdo
a las necesidades del software en proceso de desarrollo. Hay varios modelos para
perfilar el proceso de desarrollo, cada uno de las cuales cuenta con pros y contras.
El proyecto debería escoger el más apropiado para sus necesidades. En ocasiones
puede que una combinación de varios modelos sea apropiado

 Modelo cascada: El modelo de cascada define las siguientes etapas que


deben cumplirse de forma sucesiva:

1. Especificación de requisitos
2. Diseño del software
3. Construcción o Implementación del software
4. Integración
5. Pruebas (o validación)
6. Despliegue (o instalación)
7. Mantenimiento
Siguiendo el modelo de cascada de forma estricta, sólo cuando se finaliza una
fase, comienza la otra. En ocasiones se realiza una revisión antes de iniciar la
siguiente fase, lo que permite la posibilidad de cambios (lo que puede incluir un
proceso de control formal de cambio).

 Modelo espiral: El modelo de cascada define las siguientes etapas que


deben cumplirse de forma sucesiva:

1. Especificación de requisitos.
2. Diseño del software.
3. Construcción o Implementación del software.
4. Integración.
5. Pruebas (o validación).
6. Despliegue (o instalación).
7. Mantenimiento.

Siguiendo el modelo de cascada de forma estricta, sólo cuando se finaliza una


fase, comienza la otra. En ocasiones se realiza una revisión antes de iniciar la
siguiente fase, lo que permite la posibilidad de cambios (lo que puede incluir un
proceso de control formal de cambio).

 Desarrollo iterativo e incremental: El desarrollo iterativo recomienda la


construcción de secciones reducidas de software que irán ganando en
tamaño para facilitar así la detección de problemas de importancia antes de
que sea demasiado tarde. Los procesos iterativos pueden ayudar a desvelar
metas del diseño en el caso de clientes que no saben cómo definir lo que
quieren.

 Desarrollo ágil: El desarrollo ágil de software utiliza un desarrollo


iterativo como base para abogar por un punto de vista más ligero y más
centrado en las personas que en el caso de las soluciones tradicionales. Los
procesos ágiles utilizan retroalimentación en lugar de planificación, como
principal mecanismo de control. La retroalimentación se canaliza por
medio de pruebas periódicas y frecuentes versiones del software.

 Codificación y corrección: El desarrollo de codificación y corrección (en


inglés "Code and fix") es, más que una estrategia predeterminada, el
resultado de una falta de experiencia o presión que se ejerce sobre los
desarrolladores para cumplir con una fecha de entrega.6 Sin dedicar tiempo
de forma explícita para el diseño, los programadores comienzan de forma
inmediata a producir código. Antes o después comienza la fase de pruebas
de software (a menudo de forma tardía) y los inevitables errores que se
encuentran han de eliminarse antes de poder entregar el software.

Orientado a la reutilización: La reutilización de software es un proceso donde se


recurre al uso de activos de software en las especificaciones de análisis, diseños,
implementación y pruebas de una aplicación o sistemas de software.

La reutilización tiene ciertos Indicadores por ejemplo:

1. Entre el 40% y 60% de una aplicación es re-utilizable en otra.

2. Aproximadamente el 0% de una aplicación administrativa es re-utilizable.

3. Aproximadamente el 75% de las funciones son comunes a más de un programa.

4. Solo el 15% del código encontrado en muchos sistemas es único y novedoso a


una aplicación específica.

El rango general de uso recurrente está entre el 15% y 85%.

La complejidad de los sistemas de software


Según Grady Booch, la complejidad de los sistemas de software se deriva de
cuatro elementos:

1.-La complejidad del dominio del problema. Los problemas que se intentan
resolver son inherentemente complejos, con una gran cantidad de requisitos que
compiten entre sí.

2.-La dificultad de gestionar el proceso de desarrollo. Los desarrolladores de


software enfrentan el reto de dar a los usuarios la impresión de simplicidad, esto
es reducir al mínimo la complejidad externa. Este reto les obliga a incrementar el
tamaño de los sistemas, a inventar mecanismos ingeniosos, o a reutilizar diseños y
código ya existentes.

3.- La flexibilidad que se puede alcanzar a través del software. La elaboración de


software es una actividad muy laboriosa porque empuja al desarrollador a
construir por sí mismo prácticamente todos los bloques fundamentales sobre los
que se apoyan las abstracciones de más alto nivel. Esto es propiciado, en gran
medida, por la existencia de pocos estándares para el control de calidad.

4.- Los problemas de caracterizar el comportamiento de sistemas discretos.


Los comportamientos de la mayoría de los objetos se representan por sistemas
analógicos en los que, a través de funciones continuas, pequeños cambios en las
entradas siempre producen pequeños cambios en las salidas. Por el contrario,
puesto que el software se ejecuta en computadoras digitales, se tienen sistemas
con un número finito de estados discretos. En sistemas grandes, este número
puede crecer a cantidades enormes. Como no existen herramientas matemáticas
para modelar el comportamiento completo de los grandes sistemas discretos, se
debe aceptar la pérdida de cierto grado de confianza en cuanto a que las salidas
sean correctas.
Recursos de software en sistemas complejos

Desde una perspectiva más amplia, un sistema se considera como sistema de


software cuando sus recursos software constituyan su elemento básico y la fuente
de su funcionalidad básica. Dicho de otro modo, cuando en el proceso de
desarrollo sean los recursos software lo que determine el proceso general de
desarrollo de todo el sistema y cuando su ejecución pueda realizarse sobre una
plataforma hardware genérico.

Característica de los sistemas de software

Su objetivo es desvincular adecuadamente al usuario y al programador de los


detalles del sistema informático en particular que se use, aislándolo especialmente
del procesamiento referido a las características internas de: memoria, discos,
puertos y dispositivos de comunicaciones, impresoras, pantallas, teclados, etc.
CONCLUSION

Los cambios radicales en hardware a partir de la última mitad del siglo anterior
causaron una forzada evolución del software, lo cual ha generado el
establecimiento de modelos, estándares y redefinición de conceptos que ratifican
un establecimiento cada vez más fuerte de la Ingeniería del Software a nivel
mundial.

La gestión de proyectos de desarrollo de software es motor esencial para el éxito


de cualquier proyecto de este tipo. La gestión debe fraccionarse en las etapas
definidas claramente, manteniendo en cuenta los 4 requisitos indispensables: las
personas, el producto, el proceso y el proyecto. La programación orientada a
objetos es una extensión actual de la tecnología que si bien ha evolucionado desde
mediados del siglo pasado, presenta hoy día un enfoque nuevo y distinto al
tradicional.

El diseño de la arquitectura es parte fundamental de los principios de la Ingeniería


del Software y es único en el sentido de que se organiza en función de los objetos
y clases que se definirán.

You might also like