lunes, 28 de septiembre de 2020

Conclusiones Herramientas de Simulación

 Luego del laboratorio y la tarea de manejo del simulador GNS3 ¿qué conclusiones quedan?


Tras haber realizado la tarea de manejo del simulador de redes de datos GNS3 y luego de tener varias experiencias en el pasado con otro simulador como Cisco Packet Tracer puedo decir que son herramientas las cuales deben ser aprendidas y manejadas. El conocimiento del funcionamiento de las redes de datos es una obligación para cualquier ingeniero de software o de soporte tecnológico, luego  por las características de nuestro trabajo la comunicación por internet y el mantenimiento de las redes es importante saber usar GNS3.

El manejo de la herramienta es al principio poco amigable ya que si no se tiene experiencia en la consola de comandos para configurar los equipos, routers, etc. Se tendrán que realizar multiples consultas para lograr entender como usar los diferentes objetos simulados y también obtener librerías necesarias ya que el programa solo viene con unos pocos dispositivos disponibles para experimentar. La pagina de documentación de GNS3 es de mucha ayuda para el inicio y permite realizar un recorrido fácil y rápido por toda la funcionalidad del software.

Las una de las ventajas de esta herramienta es que se puede adquirir de manera gratuita y es a la vez robusta. Debido a que es de distribución libre el software cuenta con una comunidad de usuarios, desarrolladores y colaboradores muy importante, entonces debido a esto la información sobre el manejo, tutoriales y soporte es extenso y no presenta un inconveniente. Otra ventaja que podemos agregar es que es una herramienta gratuita que permite realizar experimentos que en la vida real impedirían que las personas se formaran como ingenieros de redes de datos y seria inaccesible el conocimiento.

Los simuladores de rede de datos permiten en nuestro trabajo tener la habilidad de resolver problemas de comunicación que se pueden presentar en el hogar o la oficina, además el conocimiento de las redes de datos le permite a un desarrollador de software estar al tanto de las seguridad, eficiencia y confiabilidad de la transmisión de datos, que muchas veces pueden ser sensibles.





Laboratorio 1 - GNS3

 video:





jueves, 24 de septiembre de 2020

Resumen: conceptos básicos de investigación

 Antecedentes de la metodología de la investigación para el desarrollo del conocimiento

El mundo lo podemos explicar desde diferentes puntos de vista, es la manera como el ser humano reconoce su entorno y da batalla contra el miedo que produce la ignorancia. Durante el desarrollo sociocultural del hombre se han elaborado diferentes tipos de pensamientos dependiendo el grado de avance de la sociedad.

Distintas formas de conocer:

tipos de pensamientos

El pensamiento es un proceso de cognición generalizada de la realidad. En este desarrollamos conceptos y estos expresan los diferentes objetos y fenómenos de la realidad. 

  • Pensamiento mágico
  • Pensamiento mítico
  • Pensamiento religioso
  • Pensamiento científico
  • Pensamiento crítico
  • Pensamiento complejo
  • Pensamiento estratégico
  • Pensamiento prospectivo

Pensamientos mágico, mítico y religioso

El hombre en la necesidad de explicar los diferentes fenómenos de los que era parte actor y parte víctima, si hablamos de el milagro de la maternidad que da vida o de una inundación o sequia  que pone en riesgo a toda la comunidad, son hechos que se debieron haber buscado explicación hace miles de años como ahora lo hacemos. Para explicar estos diversos fenómenos el pensamiento mágico, mítico y religioso han permanecido aun hasta nuestros días y coinciden en otorgar poderes sobrenaturales a objetos comunes u otorgar personalidades y características humanas a las diferentes interrogantes, es por esto que en todas las religiones hay un sin número de imágenes y estatuillas con forma humana representando a deidades que dominan las fuerzas de la naturaleza, el destino o el pensamiento humano.

Desde el animismo sencillo y tribal se avanzó hasta organizaciones religiosas estructuradas y que representan la fe y creencia de millones de personas. En la baja edad media, la religión dominante en Europa asumió la tarea de atesorar el conocimiento escrito ante la caída del imperio romano y las constantes invasiones de pueblos desconocidos para los europeos de esa época. El dominio de la religión sobre el conocimiento impidió y retraso el avance de las sociedades occidentales debido a que las iglesia no acepta posiciones contrarias al dogma que sigue la biblia y usó la violencia para detener o perseguir a los pensadores que seguían metodologías de pensamiento en base a la razón y no a la fe.

Pensamiento filosófico

La necesidad del hombre de resolver problemas y buscar explicaciones para los diferentes fenómenos también le permitió cuestionar el pensamiento mágico, mítico y religioso. Estos pensadores, los filósofos reflexionan de manera permanente sobre los orígenes, la posibilidad y la esencia del conocimiento. Pasaban horas discutiendo enigmas que hasta la fecha no han resuelto como el que dice: ¿qué fue primero, la gallina o el huevo? ¿Tú qué opinas?

El ocaso del dominio de la iglesia sobre la razón permitió el surgimiento de otras corrientes de pensamiento como son los científicos. 

Pensamiento científico

Conocer es una relación que se establece entre el sujeto que conoce y el objeto conocido. En el proceso del conocimiento, el sujeto se apropia, en cierta forma, del objeto conocido.
Si procede de él mismo, es decir, de sus propias facultades, el conocimiento puede tener origen en:

  • La experiencia, entendiendo por tal las percepciones de los sentidos.
  • La razón, en cuanto a capacidad de razonamiento, que permite inferir lógicamente de unos conceptos y enunciados y otros.
  • La intuición o comprensión profunda de algo por una especie de visión rápida intelectual, sin necesidad de razonamiento deductivo.

Pensamiento crítico

La necesidad de comprender la totalidad en que se insertan las distintas disciplinas y sus esfuerzos interdisciplinarios ha llevado a la generación de un nuevo tipo de pensamiento cuyos objetivos consistirá en articular las distintas especialidades del saber para ver qué escapa al saber hegemónico que sea significativo cuando se quiere conocer algo.


Pensamiento complejo

 Complejidad es un concepto que pretende análisis holísticos, integradores, porque ya no es posible entender al mundo de otra manera, ni con una sola lupa disciplinaria.


Pensamiento estratégico

Son ocho elementos los que debemos tomar en cuenta para desarrollar un pensamiento estratégico:

  1. Considerar el sistema en su totalidad, no en sus partes. Esto implica una visión holística, integradora.

  2.  Hay una relación entre el orden y el desorden y cambios de autoorganización ocurren como resultado de sus interacciones. Situaciones caórdicas (del caos al orden o viceversa).

  3. Un pequeño evento en un sector puede causar tremenda turbulencia en otro (el efecto mariposa).

  4. Mapas, modelos e imágenes visuales hacen más fácil ver las conexiones relaciones y patrones de interacción. (Visualización creativa, síntesis del conocimiento de manera gráfica, gramática visual.)

  5. Identificar condiciones emergentes, cambios en los paradigmas y oportunidades de innovación (en vez de ver problemas, pensar que son oportunidades).

  6. El pensamiento no lineal es fundamental para reconocer las claves sobre los cambios en el ambiente.

  7. La perspectiva es importante cuando vemos los eventos caóticos (ver más allá de donde ven los ojos, no perdamos de vista el contexto).

  8. Piensa en seis imposibilidades diarias.

Investigación científica y los tipos de investigación

 La investigación es:

  • Búsqueda, para encontrar
  • Búsqueda de información sobre algo
  • Búsqueda de una respuesta de manera sistemática a una pregunta específica
El científico, busca contestar mediante experimentación los ¿qué?, ¿quién?, ¿cuándo?, ¿dónde?, ¿cómo? y ¿por qué? de los hechos.

La investigación no busca solo en el pasado las preguntas en este nuevo contexto son:

  • ¿Qué está pasando?
  • ¿Qué podría pasar?
  • ¿Qué podemos hacer si pasa? 

Investigación y solución de problemas

La investigación es una actividad encaminada a la solución de problemas. Su objetivo consiste en hallar respuestas a preguntas mediante el empleo de procesos científicos. La investigación científica orienta a la resolución de problemas pero no todo problema es científico; para que lo sea debe reunir las siguientes condiciones que a su vez pueden servir de criterios de evaluación:

  •  Que esté dentro de un marco conceptual sólido.
  •  Debe contener tantos interrogantes como aspectos se requiere investigar.
  • Debe formularse en una proposición o conjunto de proposiciones en que se expresen claramente las variables contempladas o incógnitas.
  • Debe ser resoluble o investigable.
  •  Está dentro de un campo definido del conocimiento.
  • El investigador debe contar con los recursos humanos, materiales y económicos que permitan llevar a cabo la investigación dentro de un periodo apropiado.

Lo que ha cambiado en la Investigación científica. Tipos

Se define a la investigación científica como una actividad encaminada a la solución de problemas. Su objetivo consiste en hallar respuestas a preguntas mediante procesos científicos.  Desde los años setenta los cambios de la humanidad se dieron de manera vertiginosa y cada vez más acelerada, identificada por seis “C”: el caos, la complejidad, el cambio, las contradicciones, la crisis, los conflictos. Pero tras décadas de avance  la ciencia no ha podido dar las respuestas que la humanidad necesita. 

La ciencia en la ultima década del siglo XX entra entonces en una crisis debido a las siguientes causas:
  • Porque la ciencia no ha podido responder a las búsquedas de una humanidad hacia mayor calidad de vida, y con una transformación social y de la naturaleza en beneficio recíproco.
  • Porque los métodos, las corrientes y las metodologías hasta entonces conocidas, se mostraron insuficientes para resolver los problemas complejos y para desentrañar las problemáticas que presentaban las estructuras sistémicas que ya se presentaban al finalizar el siglo.
  • Por la excesiva compartimentalización del conocimiento.
  • Por la arterioesclerosis disciplinaria que incapacita para explicar la realidad.
  • Se han roto muchos de los paradigmas científicos que sostenían las investigaciones.
  • Velocidad e inmediatez.
  • La capacidad y velocidad que le imprime una computadora al trabajo artesanal anterior es impresionante.
  • Se le ha dado nueva importancia a los métodos cualitativos, en particular los surgidos de la antropología.
  • Se atiende al estudio de la percepción y su influencia en la investigación.
  •  Se aceptan elementos no probados científicamente como válidos entre ellos, se trata de recuperar el pensamiento del hombre común, y los saberes no científicos.
  • Se estudia al futuro como manera de enfrentar los nuevos problemas.

La ciencia

La ciencia en su estructura posee dos partes fundamentales lógicamente interrelacionadas:
  1. Un sistema de ideas establecido provisionalmente y denominado conocimiento científico.
  2. Una actividad productora de nuevas ideas, llamada investigación científica. 

En la medida que acumulamos más conocimientos provocamos que la ciencia se desenvuelva más velozmente. El desarrollo de las ciencias exige que se dé un enriquecimiento e intercambio de saberes entre las distintas ramas que pudieran parecer lejanas unas con otras. La desaparición de barreras es inminente. La ciencia es un conjunto sistemático de conocimientos sobre la realidad observable, basada en referencias empíricas, obtenidas mediante el método científico, acerca de los fenómenos y procesos que se producen en la naturaleza, la sociedad y el pensamiento.



Lo que distingue a la ciencia es la producción del conocimiento obtenido a partir del método científico. De hecho tiene como objetivos aquellos que están en razón de su objeto de estudio; es decir, saber cómo es la realidad, qué elementos la forman y cuáles son sus características.

La ciencia se constituye por verdades demostradas, cuyos distintos niveles las pueden volver leyes o teorías.


Leyes

Las leyes son generalizaciones que describen comportamientos uniformes. Se expresan por medio de enunciados que expresan regularidades. Se identifican las irregularidades cuando se comparan muchas observaciones. 

Las leyes se usan en dos formas:
  • Para explicar hechos ya conocidos.
  • Para predecir hechos aún desconocidos
Las leyes tienen una importancia básica en la investigación científica. Su objetivo no es descubrir simples hechos, sino regularidades y recurrencias.

Las características de las leyes son:
  1. Enuncian hechos generales y se refieren a conjuntos o clases de hechos.
  2. Establecen relaciones entre hechos observables. No explican, por ello requieren de las teorías.
  3. Son sintéticos, se refieren a la realidad aunque no son totalmente verificables.
Para llegar a establecer una ley científica existen tres etapas principales:
  1. Observar los hechos significativos.
  2. Sentar hipótesis que, si son verdaderas, expliquen aquellos hechos.
  3. Deducir de estas hipótesis, consecuencias que puedan ser puestas a prueba por la observación. 

Investigación científica

Conocimiento e investigación científica integran el contenido de una totalidad estructurada y con leyes propias llamada ciencia.

Las características de toda investigación científica son:
  • Es un conocimiento ordenado y sistemático.
  • Las reflexiones y demostraciones son claras y precisas.
  • Trata de dar explicaciones generales, objetivas y válidas usando las leyes que existen para la propia disciplina.
  •  Permite el desarrollo de la disciplina.
  • Contribuye a integrar el cuerpo teórico de la ciencia con mayor solidez acumulando conocimiento.
  • Resuelve problemas tanto de manera utilitaria o inmediata como de niveles teóricos de la ciencia.  
  • Es conocimiento sin dogmas o creencia en verdades absolutas. 
  • Da pauta a un ejercicio reflexivo continuo.
  • Conforma en el investigador un sentido crítico y analítico.
  • Impulsa la capacidad creativa.
  • Es abierta, explica los hechos en términos de leyes y éstas en términos de principios.
  • Es predictiva.

Una tipología de investigación

Hay distintas formas de indagar, los resultados pueden llevar a la investigación pura y/o a la investigación aplicada y de acuerdo con los procedimientos por emplear. 

Los tipos de investigación se agrupan en tres grandes divisiones, la investigación documental, la investigación de campo y la investigación experimental. Entre ellas pueden complementarse o pueden trabajarse de modo independiente.

Investigaciones pura o teórica, aplicada o práctica y experimental

Investigación pura es el estudio de un problema, destinado exclusivamente a la búsqueda de conocimiento. Las ciencias puras son las que se proponen conocer las leyes generales de los fenómenos estudiados, elaborando teorías de amplio alcance para comprenderlos.

La investigación pura desarrolla la disciplina en términos abstractos y desarrolla principios generales.

La investigación aplicada, también llamada utilitaria puede integrar una teoría antes existente. Esta se plantea problemas concretos que requieren soluciones inmediatas e iguales de específicas. La investigación aplicada concentra su atención en las posibilidades concretas de llevar a la práctica las teorías generales, y destina sus esfuerzos a resolver las necesidades que se plantean la sociedad y los hombres. La investigación aplicada 

La resolución de problemas prácticos se circunscribe a lo inmediato, por lo cual su resultado no es aplicable a otras situaciones.  

Investigación experimental. Esta se presenta mediante la manipulación de una variable experimental no comprobada, en condiciones rigurosamente controladas, con el fin de describir de qué modo o por qué causa se produce una situación o acontecimiento particular.

En los diseños experimentales, el investigador no sólo se encuentra en condiciones prácticas de llevar a cabo un experimento sino que conoce también, en buena medida, la naturaleza del fenómeno que investiga.

Referencias:

Baena, P. G. M. E. (2017). Metodología de la investigación (3a. ed.). 
Tomado de: http://ebookcentral.proquest.com

lunes, 7 de septiembre de 2020

Diseño de una metodología ágil

 Resumen de los temas estudiados.

Metodologías ágiles de proyectos de software.

Las evolución de los sistemas de software esta en un continuo perfeccionamiento y una búsqueda de eficiencia en los métodos de producción. Siguiendo la ley de Moore los componentes de hardware acaban duplicando su capacidad al doble cada año, entonces cada vez tenemos equipos más avanzados, más potentes con una alta capacidad de procesamiento. Por tanto se  reducen los costos de producción de hardware y a su vez esto acelera la popularización del uso de los computadores sacándolos de los laboratorios académicos y militares.

Durante la época de los 80's la necesidad de procesos de desarrollo ágil son cada vez mayores debido a la necesidad de aumentar la adaptabilidad de los proyectos a los cambios frecuentes de los requerimientos del mercado y así mismo basar los sistemas de producción y adecuarlos al cambio constante.

Debido a que las metodologías de producción industria estas no se pueden usar de la misma manera en personas que en máquinas, ya que la producción de software incluye a los primeros y el desarrollo de un producto requiere mayormente de máquinas. Las metodologías tradicionales estaban basadas en grandes esfuerzos divididos en etapas y que se basan en la producción de documentación extensa que comunica cada etapa del proceso y presenta un manejo rígido que hace que las personas y equipos se adecuen a la necesidad del proyecto aumentando las posibilidades de fracaso debido a la incompatibilidad de los procesos de producción.

En algunos tipos de software, como los sistemas de control críticos para la seguridad, donde es esencial un análisis completo del sistema, resulta oportuno un enfoque basado en un plan. Sin embargo, en un ambiente empresarial de rápido movimiento, esto llega a causar verdaderos problemas. Al momento en que el software esté disponible para su uso, la razón original para su adquisición quizás haya variado tan radicalmente que el software sería inútil a todas luces. Por lo tanto, para sistemas empresariales, son esenciales en particular los procesos de diseño que se enfocan en el desarrollo y la entrega de software rápidos.

En la década de 1980 IBM introdujo el desarrollo incremental. La entrada de los llamados lenguajes de cuarta generación, también en la misma década, apoyó la idea del software de desarrollo y entrega rápidos. Sin embargo, la noción prosperó realmente a finales de la década de 1990, con el desarrollo de la noción de enfoques ágiles como el DSDM, Scrum y la programación extrema. Los procesos de desarrollo del software rápido se diseñan para producir rápidamente un software útil. El software no se desarrolla como una sola unidad, sino como una serie de incrementos, y cada uno de ellos incluye una nueva funcionalidad del sistema.



En este contexto en 2001, 17 representantes de nuevas metodologías y críticos de los modelos de mejora basados en procesos se reunieron, convocados por Kent Beck, para discutir sobre el desarrollo de software. Estos profesionales, con una dilatada experiencia como aval, llevaban ya alrededor de una década utilizando técnicas que les fueron posicionando como líderes de la industria del desarrollo software. Conocían perfectamente las desventajas del clásico modelo en cascada donde primero se analiza, luego se diseña, después se implementa y, por ´ultimo (en algunos casos), se escriben algunos tests automáticos y se martiriza a un grupo de personas para que ejecuten manualmente el software, una y otra vez hasta la saciedad. En esta reunion se compone un documento llamado El manifiesto ágil que se compone de cuatro principios. Es pequeño pero bien cargado de significado:

Estamos descubriendo mejores formas para desarrollar software, al hacerlo y al ayudar a otros a hacerlo. Gracias a este trabajo llegamos a valorar:

  • A los individuos y las interacciones sobre los procesos y las herramientas.
  • Al software operativo sobre la documentación exhaustiva.
  • La colaboración con el cliente sobre la negociación del contrato.
  • La respuesta al cambio sobre el seguimiento de un plan.
Esto es, aunque exista valor en los objetos a la derecha, valoraremos más los de la izquierda.

 Probablemente el método ágil más conocido sea la programación extrema. Otros enfoques ágiles incluyen los de Scrum, Crystal Methodologies, Desarrollo de Software Adaptativo, DSDM y el desarrollo dirigido por características. El éxito de dichos métodos condujo a cierta integración con métodos más tradicionales de desarrollo, basados en el modelado de sistemas, lo cual resulta en la noción de modelado ágil y ejemplificaciones ágiles del Proceso Racional Unificado.

Principios y políticas del desarrollo ágil.

Los enfoques ágiles en el desarrollo de software consideran el diseño y la implementación como las actividades centrales en el proceso del software. Incorporan otras actividades en el diseño y la implementación, como la adquisición de requerimientos y pruebas. En contraste, un enfoque basado en un plan para la ingeniería de software identifica etapas separadas en el proceso de software con salidas asociadas a cada etapa. Las salidas de una etapa se usan como base para planear la siguiente actividad del proceso. La figura muestra las distinciones entre los enfoques ágil y el basado en un plan para la especificación de sistemas.


En un enfoque basado en un plan, la iteración ocurre dentro de las actividades con documentos formales usados para comunicarse entre etapas del proceso. Por ejemplo, los requerimientos evolucionarán y, a final de cuentas, se producirá una especificación de aquéllos. Esto entonces es una entrada al proceso de diseño y la implementación. En un enfoque ágil, la iteración ocurre a través de las actividades. Por lo tanto, los requerimientos y el diseño se desarrollan en conjunto, no por separado.

Un proceso de software dirigido por un plan soporta el desarrollo y la entrega incrementales. Es perfectamente factible asignar requerimientos y planear tanto la fase de diseño y desarrollo como una serie de incrementos. Un proceso ágil no está inevitablemente enfocado al código y puede producir cierta documentación de diseño. Para cierta parte del proyecto el equipo de desarrollo ágil puede incluir un “pico” de documentación donde, en vez de producir una nueva versión de un sistema, el equipo generará documentación del sistema.

De hecho, la mayoría de los proyectos de software incluyen prácticas de los enfoques ágil y basado en un plan. Para decidir sobre el equilibrio entre un enfoque basado en un plan y uno ágil, se deben responder algunas preguntas técnicas, humanas y organizacionales:

  1. ¿Es importante tener una especificación y un diseño muy detallados antes de dirigirse a la implementación? Siendo así, probablemente usted tenga que usar un enfoque basado en un plan.
  2. ¿Es práctica una estrategia de entrega incremental, donde se dé el software a los clientes y se obtenga así una rápida retroalimentación de ellos? De ser el caso, considere el uso de métodos ágiles.
  3.  ¿Qué tan grande es el sistema que se desarrollará? Los métodos ágiles son más efectivos cuando el sistema logra diseñarse con un pequeño equipo asignado que se comunique de manera informal. Esto sería imposible para los grandes sistemas que precisan equipos de desarrollo más amplios, de manera que tal vez se utilice un enfoque basado en un plan.
  4. ¿Qué tipo de sistema se desarrollará? Los sistemas que demandan mucho análisis antes de la implementación (por ejemplo, sistema en tiempo real con requerimientos de temporización compleja), por lo general, necesitan un diseño bastante detallado para realizar este análisis. En tales circunstancias, quizá sea mejor un enfoque basado en un plan.
  5. ¿Cuál es el tiempo de vida que se espera del sistema? Los sistemas con lapsos de vida prolongados podrían requerir más documentación de diseño, para comunicar al equipo de apoyo los propósitos originales de los desarrolladores del sistema. Sin embargo, los defensores de los métodos ágiles argumentan acertadamente que con frecuencia la documentación no se conserva actualizada, ni se usa mucho para el mantenimiento del sistema a largo plazo. 
  6. ¿Qué tecnologías se hallan disponibles para apoyar el desarrollo del sistema? Los métodos ágiles se auxilian a menudo de buenas herramientas para seguir la pista de un diseño en evolución. Si se desarrolla un sistema con un IDE sin contar con buenas herramientas para visualización y análisis de programas, entonces posiblemente se requiera más documentación de diseño.
  7. ¿Cómo está organizado el equipo de desarrollo? Si el equipo de desarrollo está distribuido, o si parte del desarrollo se subcontrata, entonces tal vez se requiera elaborar documentos de diseño para comunicarse a través de los equipos de desarrollo. Quizá se necesite planear por adelantado cuáles son. 
  8. ¿Existen problemas culturales que afecten el desarrollo del sistema? Las organizaciones de ingeniería tradicionales presentan una cultura de desarrollo basada en un plan, pues es una norma en ingeniería. Esto requiere comúnmente una amplia documentación de diseño, en vez del conocimiento informal que se utiliza en los procesos ágiles. 
  9. ¿Qué tan buenos son los diseñadores y programadores en el equipo de desarrollo? Se argumenta en ocasiones que los métodos ágiles requieren niveles de habilidad superiores a los enfoques basados en un plan, en que los programadores simplemente traducen un diseño detallado en un código. Si usted tiene un equipo con niveles de habilidad relativamente bajos, es probable que necesite del mejor personal para desarrollar el diseño, siendo otros los responsables de la programación. 
  10. ¿El sistema está sujeto a regulación externa? Si un regulador externo tiene que aprobar el sistema (por ejemplo, la Agencia de Aviación Federal [FAA] estadounidense aprueba el software que es crítico para la operación de una aeronave), entonces, tal vez se le requerirá documentación detallada como parte del sistema de seguridad.

Importancia de las metodologías ágiles.

Las empresas operan ahora en un entorno global que cambia rápidamente. En ese sentido, deben responder frente a nuevas oportunidades y mercados, al cambio en las condiciones económicas, así como al surgimiento de productos y servicios competitivos. El software es parte de casi todas las operaciones industriales, de modo que el nuevo software se desarrolla rápidamente para aprovechar las actuales oportunidades, con la finalidad de responder ante la amenaza competitiva. En consecuencia, en la actualidad la entrega y el desarrollo rápidos son por lo general el requerimiento fundamental de los sistemas de software. De hecho, muchas empresas están dispuestas a negociar la calidad del software y el compromiso con los requerimientos, para lograr con mayor celeridad la implementación que necesitan del software.

Debido a que dichos negocios funcionan en un entorno cambiante, a menudo es prácticamente imposible derivar un conjunto completo de requerimientos de software estable. Los requerimientos iniciales cambian de modo inevitable, porque los clientes encuentran imposible predecir cómo un sistema afectará sus prácticas operacionales, cómo interactuará con otros sistemas y cuáles operaciones de usuarios se automatizarán. Es posible que sea sólo hasta después de entregar un sistema, y que los usuarios adquieran experiencia con éste, cuando se aclaren los requerimientos reales. Incluso, es probable que debido a factores externos, los requerimientos cambien rápida e impredeciblemente. En tal caso, el software podría ser obsoleto al momento de entregarse.

Los procesos de desarrollo del software rápido se diseñan para producir rápidamente un software útil. El software no se desarrolla como una sola unidad, sino como una serie de incrementos, y cada uno de ellos incluye una nueva funcionalidad del sistema.

Los métodos de desarrollo ágil presentan las siguientes caracteristicas:

1. Los procesos de especificación, diseño e implementación están entrelazados. No existe una especificación detallada del sistema, y la documentación del diseño se minimiza o es generada automáticamente por el entorno de programación que se usa para implementar el sistema. El documento de requerimientos del usuario define sólo las características más importantes del sistema.

2. El sistema se desarrolla en diferentes versiones. Los usuarios finales y otros colaboradores del sistema intervienen en la especificación y evaluación de cada versión. Ellos podrían proponer cambios al software y nuevos requerimientos que se implementen en una versión posterior del sistema.

3. Las interfaces de usuario del sistema se desarrollan usando con frecuencia un sistema de elaboración interactivo, que permita que el diseño de la interfaz se cree rápidamente en cuanto se dibujan y colocan iconos en la interfaz. En tal situación, el sistema puede generar una interfaz basada en la Web para un navegador o una interfaz para una plataforma específica, como Microsoft Windows.

Métodos (Marcos de las metodologías ágiles).

XP.


Desarrollo adaptativo de software (DAS).



Scrum.


Método de desarrollo de sistemas dinámicos (MDSD) o (DSDM en Ingles)


Crystal Methods.




Desarrollo impulsado por las características (DIC) o (FDD en Ingles)



Bibliografia y referencias:

Jurado Carlos. Diseño ágil con TDD, iExpertos. 2010.
Pressman Roger. S, Ingeniería de Software, McGraw Hill, 2010.
Sommerville, Ian. Ingeniería de Software, Pearson Education, 2011.
Cockburn, A., Agile Software Development, Addison-Wesley, 2002.