En que
se basa cada de las generaciones de las metodologías
Generaciones
1.
Programación estructurada:
Surgio en el año 1960 por
bohn y jacopini , orientado a mejorar la claridad , calidad y tiempo de
desarrollo utilizando subrutinas .
2.
Programación estructurada
Jackson:
Surgió en el año 1970 por
Michael . A. Jackson, el objetivo de Jackson era hacer los programas de
procesamiento de archivos por lotes COBOL más fácil de modificar y mantener, pero el método se
puede utilizar para diseñar programas para cualquier lenguaje de programación que tenga constructores, lenguajes como C, Java y Perl. A pesar de su edad, JSP está todavía en uso y con el apoyo
de herramientas de diagramación tales como herramientas de Microsoft Visio y
CASE como Jackson Workbench
3.
análisis de los sistemas
estructurados y métodos de diseño:
SSADM es una aplicación en
particular y se basa en el trabajo de las diferentes escuelas de análisis
estructurados métodos y desarrollo, como la de Peter Checkland Metodología
blanda de sistemas, de Larry Constantino diseño estructurado, de Edward Yourdon
Método estructurado de Yourdon , de Michael A. Jackson Programación
Estructurada de Jackson, y Tom DeMarco análisis estructurado.
4.
Ingeniera de sistemas la información:
se origina del desarrollo de
aplicación e influencia de las tecnologías de la información.
5.
Desarrollo rápido de
aplicaciones:
es un proceso de desarrollo
de software, desarrollado inicialmente por James Martin en 1980. El método
comprende el desarrollo iterativo, la construcción de prototipos y el uso de
utilidades CASE. Tradicionalmente, el desarrollo rápido de aplicaciones tiende
a englobar también la usabilidad, utilidad y la rapidez de ejecución.
6.
Programación orientada a objetos:
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.
7.
Máquina de estados finitos
virtual:
a
un modelo de comportamiento de un sistema con entradas y salidas, en donde las
salidas dependen no sólo de las señales de entradas actuales sino también de
las anteriores.
8.
Método de desarrollo de
sistemas dinámicos:
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.
9.
Scrum:
es el nombre con el que se
denomina a los marcos de desarrollo ágiles caracterizados por:
Adoptar una estrategia de
desarrollo incremental, en lugar de la planificación y ejecución completa del
producto.
Basar la calidad del
resultado más en el conocimiento tácito de las personas en equipos auto
organizados, que en la calidad de los procesos empleados.
Solapamiento de las
diferentes fases del desarrollo, en lugar de realizar una tras otra en un ciclo
secuencial o en cascada
10.
Proceso unificado radical:
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.
11.
Programación extrema:
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.
12.
Proceso unificado:
es un marco de desarrollo de
software que se caracteriza por estar dirigido por casos de uso, centrado en la
arquitectura y por ser iterativo e incremental. El refinamiento más conocido y
documentado del Proceso Unificado es el Proceso Unificado de Rational o
simplemente RUP.
El Proceso Unificado no es
simplemente un proceso, sino un marco de trabajo extensible que puede ser
adaptado a organizaciones o proyectos específicos. De la misma forma, el
Proceso Unificado de Rational, también es un marco de trabajo extensible, por
lo que muchas veces resulta imposible decir si un refinamiento particular del
proceso ha sido derivado del Proceso Unificado o del RUP. Por dicho motivo, los
dos nombres suelen utilizarse para referirse a un mismo concepto.
13.
metodologías estructuradas:
en la estructuración y
descomposición funcional de problemas en unidades más pequeñas
interrelacionadas entre sí. Representan los procesos, flujos y estructuras de
datos, de una manera jerárquica y ven el sistema como entradas-proceso-salidas.
Tiene como objetivo emplear las metodologías de análisis y diseño estructurado
para su uso con herramientas CASE, incrementando la productividad en el
desarrollo e implantación de sistemas de información y entre ellas podemos
encontrar a Kendall & Kendall entre otras. Crea los modelos de forma
descendente. Son las orientadas a procesos, a datos y las mixtas. Intentan
aplicar formas ingenieriles para solucionar problemas técnicos al obtener un
sistema de información, proponen la creación de modelos, flujos y estructuras
mediante un top-down. Las metodologías estructuradas hacen fuerte separación
entre los datos y los procesos. Producen una gran cantidad de modelos y
documentación y se basan en ciclos de vida en cascada.
14. proceso unificado ágil:
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.
principales
metodologías existentes en el mercado; aspectos positivos y negativos de cada una
de ellas
Modelo cascada
Lo positivo:
-
Realiza un buen funcionamiento en
equipos débiles y productos maduros, por lo que se requiere de menos capital y
herramientas para hacerlo funcionar de manera óptima.
-
Es un modelo fácil de implantar y entender.
-
Está orientado a documentos.
-
Promueve una metodología de trabajo
efectiva: Definir antes que diseñar, diseñar antes que codificar
Lo negativo:
-
En la vida real, un proyecto rara vez
sigue una secuencia lineal esto crea una mala implementación del modelo, lo
cual hace que lo lleve al fracaso.
-
El proceso de creación del
software tarda mucho tiempo ya que debe pasar por el proceso de prueba y hasta
que el software no esté completo no se opera.
-
Cualquier error de diseño
detectado en la etapa de prueba conduce necesariamente al rediseño y nueva programación
del código afectado, aumentando los costos de desarrollo.
-
Una etapa determinada del proyecto
no se puede llevar a cabo a menos de que se haya culminado la etapa anterior
Modelo Espiral
Lo positivo:
-
Se disminuyen los riesgos.
-
Al final de cada iteración se
obtienen los puntos de verificación.
-
Se obtienen con anterioridad
indicaciones de cualquier riesgo.
Lo negativo:
-
Aumento de costos.
-
Es un modelo complicado de llevar a
cabo por que exige una gestión concienzuda, atenta y unos conocimientos
profundos.
Modelo Incremental
Lo positivo:
-
Construir un sistema pequeño es
menos riesgoso
-
Es más fácil determinar si los
requerimientos son los correctos.
-
Si un error es realizado, solo la última
iteración se descarta ya utiliza incremento previo.
Lo negativo:
-
Se presume que todos los
requisitos se han definido al inicio.
-
Se requiere experiencia para
definir los incrementos.
-
Si el sistema es grande, tomara más
tiempo.
Modelo de prototipos
Lo positivo:
-
Ese modelo es útil cuando el
cliente conoce los objetivos generales para el software, pero no identifica los
requisitos detallados de entrada, procesamiento o salida.
-
También ofrece un mejor enfoque
cuando el responsable del desarrollo del software esta inseguro de la eficacia
de un algoritmo, de la adaptabilidad de un sistema operativo o de la forma que debería
tomar la interacción humano-maquina.
-
Se puede reutilizar el código.
Lo negativo
-
El usuario tiende a crearse unas
expectativas cuando ve el prototipo de cara al sistema final. A causa de la intención
de crear un prototipo de forma rápida, se suelen pasar desatender aspectos
9mpotantes, tales como la calidad y el mantenimiento a largo plazo, lo que
obliga en la mayor parte de los casos a reconstruirlo una vez que el prototipo
ha cumplido su función.
-
En aras de desarrollar rápidamente
el prototipo, el desarrollador suele tomar algunas decisiones de implantación
poco convenientes. Con el paso del tiempo, el desarrollador puede olvidarse de
la razón que le llevo a tomar tales decisiones con los que se corre el riesgo
de que dichas elecciones pasen a formar parte de la decisión final.
Comentarios
Publicar un comentario