Subido por David Oswaldo Pacassi Ramirez

METODOLOGIAS TRADICIONALES

Anuncio
METODOLOGIAS TRADICIONALES DEL DESARROLLO DE
SOFTWARE
INTRODUCCION
Teniendo en cuenta la filosofía de desarrollo de las metodologías, aquellas con mayor énfasis en
la planificación y control del proyecto, en especificación precisa de requisitos y modelado,
reciben el apelativo de Metodologías Tradicionales o Pesadas
Estas metodologías tradicionales imponen una disciplina de trabajo sobre el proceso de
desarrollo del software, con el fin de conseguir un software más eficiente. Para ello, se hace
énfasis en la planificación total de todo el trabajo a realizar y una vez que está todo detallado,
comienza el ciclo de desarrollo del producto software. Se centran especialmente en el control
del proceso, mediante una rigurosa definición de roles, actividades, artefactos, herramientas y
notaciones para el modelado y documentación detallada. Además, las metodologías
tradicionales no se adaptan adecuadamente a los cambios, por lo que no son métodos
adecuados cuando se trabaja en un entorno, donde los requisitos no pueden predecirse o bien
pueden variar.
Para el desarrollo de cualquier producto de software se desarrollan una serie de tareas entre la
idea inicial y el producto final.
Un modelo de desarrollo establece el orden en el que se harán las cosas en el proyecto, nos
provee de requisitos de entrada y salida para cada una de las actividades.
Al modelo o proceso de desarrollo de software se le conoce como ciclo de vida del software,
porque describe la vida de un producto de software desde su concepción hasta su implantación,
entrega, utilización y mantenimiento. Un modelo es una representación abstracta de un
proceso.
¿Qué es un proceso del software? Cuando se trabaja para construir un producto o un sistema,
es importante seguir una serie de pasos predecibles – un mapa de carreteras que ayude a
obtener el resultado oportuno de calidad -. El mapa de carreteras a seguir es llamado proceso
del software o modelo de desarrollo. ¿Quién lo hace? Los ingenieros de software y sus gestores,
es decir, los analistas de sistemas, los programadores, adaptan el proceso a sus necesidades y
entonces lo siguen. Además, las personas que han solicitado el software tienen un papel a
desempeñar en el proceso del software.
¿Por qué es importante? Porque proporciona estabilidad, control y organización a una actividad
que puede, si no se controla, volverse caótica.
¿Cuáles son los pasos? A un nivel detallado, el proceso que adoptemos depende del software
que estamos construyendo. Un proceso puede ser apropiado para crear software de un Sistema
de aviación, mientras que un proceso diferente por completo puede ser adecuado para la
creación de un sitio web.
¿Cuál es el producto obtenido? Los productos obtenidos son programas, documentos y datos
que se producen como consecuencia de las actividades de ingeniería del software definidas por
el proceso o modelo de desarrollo.
Pero sin dudas adaptarse a la agitada sociedad actual implica ser “ágil”, es decir, tener la
capacidad de proveer respuestas rápidas y ser adaptables al cambio. Ambas cualidades siempre
han sido deseables, pero en el entorno de negocio actual resultan indispensables. Este
requerimiento de agilidad en las empresas, gobiernos y cualquier otra organización provoca que
el software también deba ser desarrollado de manera ágil.
Las necesidades de un cliente pueden sufrir cambios importantes del momento de contratación
de un software al momento de su entrega; y es mucho más importante satisfacer estas últimas
que las primeras. Esto requiere procesos de software diferentes que en lugar de rechazar los
cambios sean capaces de incorporarlos.
Los procesos ágiles son una buena elección cuando se trabaja con requisitos desconocidos o
variables. Si no existen requisitos estables, no existe una gran posibilidad de tener un diseño
estable y de seguir un proceso totalmente planificado, que no vaya a variar ni en tiempo ni en
dinero. En estas situaciones, un proceso adaptativo será mucho más efectivo que un proceso
predictivo. Por otra parte, los procesos de desarrollo adaptativos también facilitan la generación
rápida de prototipos y de versiones previos a la entrega final, lo cual agradará al cliente.
NECESIDAD DE UNA METODOLOGIA
Cuando surgió la necesidad de adaptar los sistemas informáticos a las exigencias del mercado,
el programador realizaba un relevamiento de las solicitudes de quien necesitaba cierto
programa o producto software, y con aquellos requerimientos bajo el brazo comenzaba la dura
tarea de codificar. Esta tarea no estaba administrada, supervisada o gestionada de ningún modo,
por lo que se iba corrigiendo a medida que surgían los errores, tanto los lógicos provenientes de
la codificación, como los de requerimientos solicitados por el cliente o usuario final.
En la década de 1970 los programas fueron creciendo en complejidad, por lo que la antigua
técnica de “Code and Fix” (codificar y corregir) terminó quedando obsoleta. Esta técnica se
basaba en requerimientos ambiguos y sin especificaciones puntuales. Al no seguir normas para
el proyecto, el cliente o usuario sólo impartían especificaciones muy generales del producto
final. Se programaba, se corregía y se volvía a programar sobre la misma marcha del proyecto.
El ciclo de vida de éste tipo de proyectos finalizaba cuando se satisfacían las especificaciones, no
sólo las primeras por las cuales nació la necesidad del programa, sino también todas aquellas
que fueron surgiendo sobre la marcha.
Esta técnica tiene ventajas de no gastar recursos en análisis, planificación, gestión de recursos,
documentación, etc., también es muy cómoda y muchas veces recomendable cuando el
proyecto es muy pequeño y es llevado adelante por uno o dos programadores. Por otro lado,
cuando el sistema no es pequeño o es más complejo (y tengamos en cuenta que no hubo
análisis) nos trae desventajas en lo que se refiere a costo de recursos, que siempre será mayor
del previsto; aumentará el tiempo de desarrollo y la calidad del código será bastante dudosa.
DEFINICION DE METODOLOGIA
La metodología para el desarrollo de software es un modo sistemático de realizar, gestionar y
administrar un proyecto para llevarlo a cabo con altas posibilidades de éxito. Esta
sistematización nos indica cómo dividiremos un gran proyecto en módulos más pequeños
llamados etapas y las acciones que correspondan en cada una de ellas, nos ayuda a definir
entradas y salidas para cada una de las etapas y, sobre todo, normaliza el modo en que se
administrará el proyecto. Una metodología para el desarrollo del software son los procesos a
seguir sistemáticamente para idear, implementar y mantener un producto software desde que
surge la necesidad del producto hasta que se cumple con el objetivo por el cual fue creado. Una
metodología está compuesta por:





Cómo dividir un proyecto en etapas.
Qué tareas se llevan a cabo en cada etapa.
Qué restricciones deben aplicarse.
Qué técnicas y herramientas se emplean.
Cómo se controla y gestiona un proyecto.
VENTAJAS DEL USO DE UNA METODOLOGIA
Son muchas las ventajas que puede aportar el uso de una metodología de desarrollo de
software, desde distintos puntos de vista éstas son:
a) Desde el punto de vista de gestión:






Facilitar la tarea de planificación.
Facilitar la tarea del control y seguimiento de un proyecto.
Mejorar la relación coste/beneficio.
Optimizar el uso de recursos disponibles.
Facilitar la evaluación de resultados y cumplimiento de los objetivos.
Facilitar la comunicación efectiva entre usuarios y desarrolladores.
b) Desde el punto de vista de los ingenieros del software:




Ayudar a la comprensión del problema.
Optimizar el conjunto y cada una de las fases del proceso de desarrollo.
Facilitar el mantenimiento del producto final.
Permitir la reutilización de partes del producto.
c) Desde el punto de vista del cliente o usuario:



Garantía de un determinado nivel de calidad en el producto final.
Confianza en los plazos de tiempo fijados en la definición del proyecto.
Definir el ciclo de vida que más se adecue a las condiciones y características del
desarrollo.
FASES O ETAPAS COMUNES EN EL CICLO DE VIDA DEL DESARROLLO DEL SOFTWARE
El ciclo de vida del desarrollo Software, es una secuencia estructurada y bien definida de las
etapas en Ingeniería de software para desarrollar el producto software deseado. Aporta una
serie de pasos a seguir con la finalidad de diseñar y desarrollar un producto software de manera
eficiente.
1.
Comunicación
Este es el primer paso donde el usuario inicia la petición de un producto software determinado.
Contacta al proveedor de servicios e intenta negociar las condiciones. Presenta su solicitud al
proveedor de servicios aportando la organización por escrito.
2.
Recolección de solicitudes
A partir de éste paso y en adelante el equipo de desarrollo software trabaja para llevar adelante
el proyecto. El equipo se reúne con varios depositarios de dominio del problema, e intentan
conseguir la máxima cantidad de información posible sobre lo que requieren. Los requisitos se
contemplan y agrupan en requisitos del usuario, requisitos funcionales y requisitos del sistema.
La recolección de todos los requisitos se lleva a cabo como se especifica a continuación:




3.
Estudiando el software y el sistema actual o obsoleto
Entrevistando a usuarios y a desarrolladores de Software
Consultando la base de datos o
Recogiendo respuestas a través de cuestionarios.
Estudio de viabilidad
Después de la recolección de requisitos, el equipo idea un plan para procesar el software. En
esta fase, el equipo analiza si el software puede hacerse para cubrir todos los requisitos del
usuario y si hay alguna posibilidad de que el software ya no sea necesario. Se investiga si el
proyecto es viable a nivel financiero, práctico, y a nivel tecnológico para que la organización
acepte la oferta. Hay varios algoritmos disponibles, los cuales ayudan a los desarrolladores a
concluir si el proyecto software es factible o no.
4.
Análisis del sistema
En éste paso los desarrolladores trazan su plan e intentan crear el mejor y más conveniente
modelo de software para el proyecto. El análisis del sistema incluye el entendimiento de las
limitaciones del producto Software; el aprendizaje de los problemas relacionados con el sistema;
los cambios que se requieren en sistemas ya existentes con antelación, identificando y dirigiendo
el impacto del proyecto a la organización y al personal, etc. El equipo del proyecto analiza las
posibilidades del proyecto y planifica la temporalización y los recursos correspondientes.
5.
Diseño de Software
El siguiente paso es diseñar el producto software con la ayuda de toda la información recogida
sobre requisitos y análisis. Los inputs (aportaciones) de los usuarios y los resultados de la
recogida de información hecha en la fase anterior serán las aportaciones base de la fase actual.
El output (o resultado) de esta etapa toma la forma de 2 diseños; El diseño lógico y el diseño
físico. Los ingenieros crean meta-data (Metadatos), base de datos, Diagramas dialógicos,
diagramas de flujo de datos, y en algunos casos pseudocódigos.
6.
Codificación
Esta fase también se puede denominar 'fase de programación'. La implementación del diseño
de software empieza con el lenguaje de programación más conveniente, y desarrollando
programas ejecutables y sin errores de manera eficiente.
7.
Pruebas
Se estima que el 50% de todos los procesos de desarrollo de software deberían ser evaluados.
Los errores pueden arruinar el software tanto a nivel crítico y hasta el punto de ser eliminado.
Las pruebas de Software se hacen mientras se codifica y suelen hacerlo los desarrolladores y
otros expertos evaluadores a varios niveles. Esto incluye evaluación de módulos, evaluación del
programa, evaluación del producto, evaluación interna y finalmente evaluación con el
consumidor final. Encontrar errores y su remedio a tiempo es la llave para conseguir un software
fiable.
8.
Integración
El Software puede necesitar estar integrado con las bibliotecas, Bases de datos o con otro u
otros programas. Esta fase se focaliza en la integración del software con las entidades del mundo
exterior.
9.
Implantación
Aquí se instala el software en máquinas de clientes. A veces, el software necesita instalar
configuraciones para el consumidor final con posterioridad. El Software se evalúa por su
adaptabilidad y su portabilidad, en cuanto a las cuestiones relacionadas con la integración y
conceptos asociados, se resuelven durante la implementación.
10.
Mantenimiento y Funcionamiento
Esta fase confirma el funcionamiento del software en términos de más eficiencia y menos
errores. Si se requiere, los usuarios se forman, o se les presta documentación sobre como operar
y como mantenerlo en funcionamiento. El software se mantiene de forma temprana
actualizando el código en acorde a los cambios que tienen lugar en entornos del usuario o
tecnológicos. Esta fase puede que tenga que encarar retos originados por virus ocultos o
problemas no identificados del mundo real.
11.
Disposición
Con el paso del tiempo, puede que el software falle en su ejecución. Puede que se vuelva
totalmente obsoleto o que necesite actualizaciones. De ahí surge una necesidad urgente de
eliminar una parte importante del sistema.
Esta fase incluye archivar datos y componentes software requerido, cierre del sistema,
planificación de la actividad de disposición y terminación de sistema en el momento final del
sistema.
METODOLOGIAS DE DESARROLLO DE SOFTWARE
Para resolver los problemas reales de una industria, un ingeniero del software y su equipo deben
incorporar una estrategia de desarrollo que acompañe al proceso, métodos y herramientas. Esta
estrategia a menudo se llama modelo de proceso o metodología de desarrollo o paradigma de
ingeniería del software. Se selecciona un modelo de proceso para la ingeniería del software
según la naturaleza del proyecto y de la aplicación, los métodos y las herramientas a utilizarse,
y los controles y entregas que se requieren.
Descargar