PREGUNTAS!

1.       ¿En que se basa cada una de las generaciones  de las metodologías?


-          Programación estructurada sol desde 1969: Es un paradigma de programación orientado a mejorar la claridad, calidad y tiempo de desarrollo de un programa de computadora, utilizando únicamente subrutinas y tres estructuras: secuencia, selección (if y switch) e iteración (bucles for y while), considerando innecesario y contraproducente el uso de la instrucción de transferencia incondicional (GOTO), que podría conducir a "Código espagueti", que es mucho más difícil de seguir y de mantener, y era la causa de muchos errores de programación.
Todo empieza desde algo pequeño :)
-          Programación estructurada Jackson desde 1975: es un método para programación estructurada fundamentada sobre las correspondencias que se establecen entre la estructura de flujo de datos y la estructura de un programa. JSP programas y estructuras de datos en términos de secuencias, iteraciones y selecciones, y como consecuencia es aplicado cuando se diseña la estructura de control detallada de un programa, por debajo del nivel en el que los metodos orientados a objetos se vuelven importantes.
-          Structured Systems Analysis and Design Methodology (SSADM) desde 1980: Originalmente publicado como metodología, es un enfoque de sistemas para el análisis y diseño de sistemas de información. SSADM fue producido para la Central Computer and Telecommunications Agency, una oficina gubernamental del Reino Unido que se ocupa del uso de la tecnología en el gobierno, desde 1980 en adelante.
-          Structured Analysis and Design Technique (SADT) desde 1980: El análisis estructurado y técnicas de diseño es en ingeniería de sistemas y proceso para el desarrollo de software para la descripción de sistemas como una jerarquía de funciones.
-          Ingeniería de la información (IE/IEM) desde 1981: Contempla una amplia área de trabajo. Su trabajo profesional tiende hacia puestos directivos, principalmente en el área administrativa y de las TIC, como dirección de diversos tipos de proyectos, investigación y desarrollo de sistemas, asesoría, consultoría e informática funcional de la organización; para apoyar la automatización de toma de decisiones y procesos operativos.
-          Rapid application development (RAD) desde 1991:  El desarrollo rápido de aplicaciones o RAD (acrónimo en inglés de rapid application development) es un proceso de desarrollo de software, desarrollado inicialmente por James Martin en1980.
-          Programación orientada a objetos (OOP) a lo largo de la década de los 90's: es un paradigma de programación que viene a innovar la forma de obtener resultados. Los objetos manipulan los datos de entrada para la obtención de datos de salida específicos, donde cada objeto ofrece una funcionalidad especial.
-          Virtual finite state machine (VFSM) desde 1990s: es una máquina de estados finitos (FSM) definida en un entorno virtual. El concepto de VFSM proporciona un método de especificación de software para describir el comportamiento de un sistema de control que utiliza nombres asignados de propiedades de control de entrada y de acciones de salida. El método VFSM introduce un modelo de ejecución y facilita la idea de una especificación ejecutable. Esta tecnología se utiliza principalmente en aplicaciones complejas de control de máquinas, instrumentación y telecomunicaciones.
-          Dynamic Systems Development Method desarrollado en UK desde 1995. en la última parte de los 90's: es un método que provee un framework para el desarrollo ágil de software, apoyado por su continua implicación del usuario en un desarrollo iterativo y creciente que sea sensible a los requerimientos cambiantes, para desarrollar un sistema que reúna las necesidades de la empresa en tiempo y presupuesto. Es uno de un número de métodos de desarrollo ágil de software y forma parte de la alianza ágil.
-          Scrum (desarrollo) 1999:   un tipo de desarrollo de software.
-          Rational Unified Process (RUP) desde 1999: es un proceso de desarrollo de software desarrollado por la empresa Rational Software, actualmente propiedad de IBM.1​ Junto con el Lenguaje Unificado de Modelado (UML), constituye la metodología estándar más utilizada para el análisis, diseño, implementación y documentación de sistemas orientados a objetos.
-          Extreme Programming(XP) desde 1999: es una metodología de desarrollo de la ingeniería de software formulada por Kent Beck, autor del primer libro sobre la materia, Extreme Programming Explained: Embrace Change (1999). Es el más destacado de los procesos ágiles de desarrollo de software. Al igual que éstos, la programación extrema se diferencia de las metodologías tradicionales principalmente en que pone más énfasis en la adaptabilidad que en la previsibilidad. Los defensores de la XP consideran que los cambios de requisitos sobre la marcha son un aspecto natural, inevitable e incluso deseable del desarrollo de proyectos. Creen que ser capaz de adaptarse a los cambios de requisitos en cualquier punto de la vida del proyecto es una aproximación mejor y más realista que intentar definir todos los requisitos al comienzo del proyecto e invertir esfuerzos después en controlar los cambios en los requisitos. Se puede considerar la programación extrema como la adopción de las mejores metodologías de desarrollo de acuerdo a lo que se pretende llevar a cabo con el proyecto, y aplicarlo de manera dinámica durante el ciclo de vida del software.

Nuevo milenio
-          Enterprise Unified Process (EUP) extensiones RUP desde 2002: es una variante extendida del Proceso Unificado y fue desarrollado por Scott W. Ambler y Larry Constantine en 2000, reelaborado en 2005 por Ambler, John Nalbone y Michael Vizdos. EUP fue introducido originalmente para superar algunas carencias de RUP, a saber, la falta de producción y la eventual retirada de un sistema de software. Se agregaron dos fases y varias disciplinas nuevas. EUP considera que el desarrollo de software no es una actividad independiente, sino que está integrado en el ciclo de vida del sistema (para ser construido o mejorado o reemplazado), el ciclo de vida de TI de la empresa y el ciclo de vida empresarial / empresarial de la propia empresa. Se trata de desarrollo de software como se ve desde el punto de vista del cliente.
-          Constructionist design methodology (CDM) desde 2004 por Kristinn R. Thórisson: es un enfoque para la construcción de sistemas altamente modulares de muchos componentes que interactúan. La fuerza del MDL consiste en simplificar el modelo de sistemas complejos y multifuncionales que requieren una evolución arquitectónica de las jerarquías de flujo de datos y de control enmarañadas.
-          Agile Unified Process (AUP) desde 2005 por Scott Ambler: en inglés es una versión simplificada del Proceso Unificado de Rational (RUP). Este describe de una manera simple y fácil de entender la forma de desarrollar aplicaciones de software de negocio usando técnicas ágiles y conceptos que aún se mantienen válidos en RUP. El AUP aplica técnicas ágiles incluyendo Desarrollo Dirigido por Pruebas (test driven development - TDD), Modelado Ágil, Gestión de Cambios Ágil, y Refactorización de Base de Datos para mejorar la productividad.


2.       ¿Cuáles son las principales metodologías existentes en el mercado; explique los aspectos positivos y negativos de cada una de ellas?

-          Método de prototipo


-          Aspecto Positivo:
Permiten el desarrollo de un sistema a partir de requisitos poco claros o cambiantes. Esto ocurre con cierta frecuencia en muchos proyectos de software.
Como información complementaria a los requisitos constituyen un gran apoyo a las estimaciones de esfuerzo de todas las áreas, incluyendo proveedores.
Son más fáciles de abordar con los usuarios finales.
El usuario participa más activamente en la construcción del producto de software (La Solución), ya que “lo puede ver” y, dependiendo del tipo de prototipo,  “utilizar” desde el primer momento.
Se reduce el riesgo o la incertidumbre sobre la implementación del software.
Su uso redunda en una mayor satisfacción del usuario con el producto final, ya que él o ella han participado activamente de su diseño.
Proporciona al usuario un mayor conocimiento del sistema con una curva menor de aprendizaje.
Permite a todos los involucrados entender bien y mejor el problema antes de la implementación final.
-          Aspectos Negativos:
El usuario quiere empezar a trabajar desde el primer momento con el prototipo para solucionar su problema particular, cuando el prototipo es solo un modelo de lo que será el producto.
Los prototipos generan o pueden generar otro tipo de problemas si su presentación y discusión con los usuarios no es controlada: puesto que son modelos inconclusos, los usuarios suelen enfocarse en aspectos “superficiales” del prototipo que los pueden dejar inconformes luego de verlos por primera vez. También es posible que se pierda mucho tiempo, innecesariamente, tratando de hacer entender al usuario la finalidad real de los prototipos.
Requiere participación activa del usuario, al menos, para evaluar el prototipo. Y mucho más involucramiento si queremos que participe en su creación.
Una desventaja importante a tener en cuenta es la falta de experiencia que tienen muchos Analistas Funcionales en programación y en actividades de diseño de interfaces de usuario.

-          Metodología en cascada: 


Aspecto Positivos:
Diseño de sistema
Diseño de programa
Modificación
Ejecución de pruebas
Codificación
Mantenimiento

Aspectos Negativos:
el problema no es que tenga muchas fases nada Eso el verdadero inconveniente con la metodología lineal es que una vez que pasas un proceso no puedes volver a la fase anterior.

Comentarios

Entradas populares de este blog

Ciclos de Vida de Llorrens Fabregas, James A. Senn y Kendall x Kendall

METODOLOGÍAS DE DESARROLLO DE SOFTWARE

METODOLOGÍA DE DESARROLLO DE SOFTWARE