PARADIGMAS DE LA INGENIERIA EN SOFTWARE
La
Ingeniería
de Software es reconocida como una disciplina legítima, digna de tener una
investigación seria, un estudio cuidadoso y ha generando una gran controversia.
En la industria el Ingeniero del software ha sustituido al programador como
titulo de trabajo preferente. Los modelos de procesos de software, métodos de
ingeniería de software y herramientas se han adoptado con éxito en el amplio
espectro de las aplicaciones industriales. Los gestores y usuarios reconocen la
necesidad de un enfoque más disciplinado del software.
Un paradigma de programación es un
modelo básico de diseño y desarrollo de programas, que permite producir
programas con una directriz específica, tales como: estructura modular, fuerte
cohesión, alta rentabilidad, etc.
Existen tres categorías de paradigmas
de programación:
a)
Los
que soportan técnicas de programación de bajo nivel (ejemplo: copia de ficheros
frente estructuras de datos compartidos)
b)
Los
que soportan métodos de diseño de algoritmos (ejemplo: divide y vencerás,
programación dinámica, etc.)
c)
Los
que soportan soluciones de programación de alto nivel, como los descritos en el
punto anterior
Los paradigmas relacionados con la
programación de alto nivel se agrupan en tres categorías de acuerdo con la
solución que aportan para resolver el problema:
a)
Solución
procedimental u operacional. Describe etapa a etapa el modo de construir la
solución. Es decir señala la forma de obtener la solución.
b)
Solución
demostrativa. Es una variante de la procedimental. Especifica la solución
describiendo ejemplos y permitiendo que el sistema generalice la solución de
estos ejemplos para otros casos. Aunque es fundamentalmente procedimental, el
hecho de producir resultados muy diferentes a ésta, hace que sea tratada como
una categoría separada.
c)
Solución
declarativa. Señala las características que debe tener la solución, sin
describir cómo procesarla. Es decir señala qué se desea obtener pero no cómo
obtenerlo.
La
ingeniería de software tiene varios modelos o paradigmas de desarrollo
en los cuales se puede apoyar para la realización de software, de los
cuales podemos destacar a éstos por ser los más utilizados y los más
completos:
• Modelo en cascada o Clásico (modelo tradicional)
• Modelo en espiral (modelo evolutivo)
• Modelo de prototipos
• Desarrollo por etapas
En
Ingeniería de software el desarrollo en cascada, también llamado modelo
en cascada, es el enfoque metodológico que ordena rigurosamente las
etapas del ciclo de vida del software, de forma tal que el inicio de
cada etapa debe esperar a la finalización de la inmediatamente anterior.
Un ejemplo de una metodología de desarrollo en cascada es:
1. Análisis de requisitos
2. Diseño del Sistema
3. Diseño del Programa
4. Codificación
5. Pruebas
6. Implantación
7. Mantenimiento
El
Desarrollo en Espiral es un modelo de ciclo de vida desarrollado por
Barry Boehm en 1985, utilizado generalmente en la Ingeniería de
software. Las actividades de este modelo se conforman en una espiral,
cada bucle epresenta un conjunto de actividades. Las actividades no
están fijadas a priori, sino que las siguientes se eligen en función del
análisis de riesgo, comenzando por el bucle interior
Determinar o fijar objetivos
• Fijar también los productos definidos a obtener: requerimientos, especificación, manual de usuario.
• Fijar las restricciones.
• Identificación de riesgos del proyecto y estrategias alternativas para evitarlos.
• Hay una cosa que solo se hace una vez: planificación inicial o previa.
Análisis del riesgo
• Se
estudian todos los riesgos potenciales y se seleccionan una o varias
alternativas propuestas para reducir o eliminar los riesgos.
Desarrollar, verificar y validar (probar)
• Tareas de la actividad propia y de prueba.
• Análisis de alternativas e identificación resolución de riesgos.
Planificar
• Revisamos
todo lo hecho, evaluándolo, y con ello decidimos si continuamos con las
fases siguientes y planificamos la próxima actividad.
Modelo de prototipos
En
Ingeniería de software el desarrollo con prototipación, también llamado
modelo de prototipos que pertenece a los modelos de desarrollo
evolutivo, se inicia con la definición de los objetivos globales para el
software, luego se identifican los requisitos conocidos y las áreas del
esquema en donde es necesaria más definición. Entonces se plantea con
rapidez una iteración de construcción de prototipos y se presenta el
modelado (en forma de un diseño rápido).
Desarrollo por etapas
El
modelo de desarrollo de software por etapas es similar al Modelo de
prototipos ya que se muestra al cliente el software en diferentes
estados sucesivos de desarrollo, se diferencia en que las
especificaciones no son conocidas en detalle al inicio del proyecto y
por tanto se van desarrollando simultáneamente con las diferentes
versiones del código.
Pueden distinguirse las siguientes fases:
• Especificación conceptual
• Análisis de requerimientos
• Diseño inicial
• Diseño detallado, codificación, depuración y liberación
Estas diferentes fases se van repitiendo en cada etapa del diseño.
No hay comentarios:
Publicar un comentario