Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Metodologías para El Desarrollo de Software PDF
Metodologías para El Desarrollo de Software PDF
Etapas o Fases:
Análisis
Diseño
Codificación
Prueba
Mantenimiento
El análisis de requisitos del software puede dividirse en cinco áreas de esfuerzo, que son:
1. Reconocimiento del problema. Reconocer los elementos básicos del problema tal y como
los perciben los usuarios finales.
2. Evaluación y síntesis. Definir todos los objetos de datos observables externamente,
evaluar el flujo y contenido de la información, definir y elaborar todas las funciones del
software, entender el comportamiento del software en el contexto de acontecimientos
que afectan al sistema.
3. Modelado. Crear modelos del sistema con el fin de entender mejor el flujo de datos y
control, el tratamiento funcional y el comportamiento operativo y el contenido de la
información.
4. Especificación. Realizar la especificación formal del software.
5. Revisión. Un último chequeo general de todo el proceso.
ANALISIS Y DISEÑO DE SISTEMAS
Etapa II - Diseño: Según Pressman, el diseño del software es realmente un proceso de muchos
pasos pero que se clasifican dentro de uno mismo. En general, la actividad del diseño se refiere al
establecimiento de las estructuras de datos, la arqui tectura general del software,
representaciones de interfaz y algoritmos. El proceso de diseño traduce requisitos en una
representación de software.
El diseño de interfaz describe cómo se comunica el software consigo mismo, con los sistemas que
operan con él, y con los operadores que lo emplean.
Etapa III - Generación de Código: Esta actividad consiste en traducir el diseño, en una forma
legible por la máquina. La generación de código se refiere tanto a la parte de generación de los
ambientes virtuales, como a la parte en la cual se añadirá comportamiento a estos ambientes. Por
ejemplo, el lenguaje de programación VRML 2.0 es un lenguaje de modelado en 3D en el cuál se
dibuja por medio de generar código de programación de formato y marcado para especificar las
características del objeto u objetos que se van agregando a un mundo o entorno virtual. El
comportamiento de las escenas virtuales es decir, su funcionalidad, se puede construir a través de
algún otro lenguaje de programación, como clases Java o scripts especificados en JavaScript. Todas
estas actividades implican generar código.
Etapa IV - Pruebas: Una vez que se ha generado código, comienzan las pruebas del software o
sistema que se ha desarrollado. De acuerdo con Pressman, el proceso de pruebas se centra en los
procesos lógicos internos del software, asegurando que todas las sentencias se han comprobado, y
en los procesos externos funcionales, es decir, la realización de las prue ba para la detección de
errores. En el caso de una herramienta de software, es necesario tener etapas de pruebas tanto
para la parte funcional del software, como para la parte aplicativa del mismo.
Codificar y corregir
Este es el modelo básico utilizado en los inicios del desarrollo de software. Contiene dos pasos:
Escribir código.
Corregir problemas en el código.
Se trata de primero implementar algo de código y luego pensar acerca de requisitos, diseño,
validación, y mantenimiento.
Este modelo tiene tres problemas principales:
Después de un número de correcciones, el código puede tener una muy mala estructura,
hace que los arreglos sean muy costosos.
Frecuentemente, aún el software bien diseñado, no se ajusta a las necesidades del usuario,
por lo que es rechazado o su reconstrucción es muy cara.
El código es difícil de reparar por su pobre preparación para probar y modificar.
Modelo en cascada
El primer modelo de desarrollo de software que se publicó se derivó de otros procesos de
ingeniería. Éste toma las actividades fundamentales del proceso de especificación, desarrollo,
validación y evolución y las representa como fases separadas del proceso.
ANALISIS Y DISEÑO DE SISTEMAS
Desarrollo evolutivo
La idea detrás de este modelo es el desarrollo de una implantación del sistema inicial, exponerla a
los comentarios del usuario, refinarla en N versiones hasta que se desarrolle el sistema adecuado.
En la Figura 6 se observa cómo las actividades concurrentes: especificación, desarrollo y
validación, se realizan durante el desarrollo de las versiones hasta llegar al producto final.
Una ventaja de este modelo es que se obtiene una rápida realimentación del usuario, ya que las
actividades de especificación, desarrollo y pruebas se ejecutan en cada iteración.
Especificación
Código
Informal
Tranformación Transformación Fuente
Especificación
Especificación Interactiva Especificación Automática
de alto nivel de bajo nivel
(prototipo)
Optimización
Validación de
Especificación
Mantenimiento
Procesos iterativos
A continuación se expondrán dos enfoques híbridos, especialmente diseñados para el soporte de
las iteraciones:
Desarrollo Incremental.
Desarrollo en Espiral.
ANALISIS Y DISEÑO DE SISTEMAS
Desarrollo incremental
Mills [9] sugirió el enfoque incremental de desarrollo como una forma de reducir la repetición del
trabajo en el proceso de desarrollo y dar oportunidad de retrasar la toma de decisiones en los
requisitos hasta adquirir experiencia con el sistema (ver Figura 10). Es una combinación del
Modelo de Cascada y Modelo Evolutivo.
Reduce el rehacer trabajo durante el proceso de desarrollo y da oportunidad para retrasar las
decisiones hasta tener experiencia en el sistema.
Durante el desarrollo de cada incremento se puede utilizar el modelo de cascada o evolutivo,
dependiendo del conocimiento que se tenga sobre los requisitos a implementar. Si se tiene un
buen conocimiento, se puede optar por cascada, si es dudoso, evolutivo.
Desarrollo en espiral
El modelo de desarrollo en espiral es actualmente uno de los más conocidos y fue propuesto por
Boehm. El ciclo de desarrollo se representa como una espiral, en lugar de una serie de actividades
sucesivas con retrospectiva de una actividad a otra.
ANALISIS Y DISEÑO DE SISTEMAS
El ciclo de vida inicia con la definición de los objetivos. De acuerdo a las restricciones se
determinan distintas alternativas. Se identifican los riesgos al sopesar los objetivos contra las
alternativas. Se evalúan los riesgos con actividades como análisis detallado, simulación, prototipos,
etc. Se desarrolla un poco el sistema y se planifica la siguiente fase.
BIBLIOGRAFIA
Royce, W., Managing the development of large software systems: concepts and technique,
IEEE Westcon, 1970.
Pressman, R, Ingeniería del Software: Un enfoque práctico, McGraw Hill 1997.
Sommerville, I., Ingeniería de Software, Pearson Educación, 2002.
Boehm, B. W., A Spiral Model of Software Development and Enhancement, IEEE
Computer, 1988.
Mills, H., O´Neill, D. The Management of Software Engineering, IBM Systems, 1980.