programación extrema
DESCRIPTION
presentacion correspondiente a la exposicion de programacion extrema para el curso de analisis y diseño de sistemas del programa de sistemas. Universidad Popular del cesar.TRANSCRIPT
PROGRAMACIÓNEXTREMA (XP)
QUE SE TE OCURRE CUANDO
ESCUCHAS EL TERMINO
PROGRAMACION EXTREMA?
UN POCO DE HISTORIA…
Se reconoce a Kent Beck comoel que articuló y le dio nombrepropio a esta propuesta, perose conocen antecedentes deque Cunningham en 1989 formaun equipo de trabajo queusaba los principios y muchas dela s practicas que despuésadoptaría xp.
Posteriormente, la consolidación de xp se
logra con la publicación del libro de Kent
Beck ¨Extreme Programming Explanied:
embrace Change ¨ en 1999 con el cual
Beck gano el premio Software Development
Jolt Product Excellence.
Kent Beck
DEFINICIÓNLa programación extrema o eXtreme
Programming (xp) es un enfoque de la
ingeniería de software y se diferencia de las
metodologías tradicionales principalmente
en que pone más énfasis en la
adaptabilidad que en la previsibilidad. Los
defensores de XP consideran que los
cambios de requisitos sobre la marcha son
un aspecto natural, inevitable e incluso
deseable del desarrollo de proyectos.
Retraso en la planificación.
Sistemas deteriorados.
Tasa de defectos.
Requisitos mal comprendidos.
Cambios en el negocio.
Falsa riqueza.
Cambio de personal.
PROBLEMAS EN EL
DESARROLLO DE SOFTWARE
OBJETIVOS
Los objetivos xp son muy simples:
La satisfacción del cliente.
Potenciar al máximo el trabajo
en grupo.
VALORES
Simplicidad
Comunicación
Retroalimentación
Coraje
Respeto
SIMPLICIDAD
COMUNICACION
RETROALIMENTACION
O FEEDBACK
CORAJE
RESPETO
CARACTERISTICAS
FUNDAMENTALES
Desarrollo iterativo e incrementado.
Pruebas unitarias continuas.
Programación en pareja.
Integración del equipo de programación con
el cliente.
Propiedad del código compartida.
Simplicidad y comunicación.
ABRIENDO LAS PUERTAS A ALGO NUEVO:
METODOLOGIAS AGILES
ADENTRANDONOS EN EL TEMA.
METODOLOGIAS AGILES • Los individuos y sus interacciones son más
importantes que los procesos.
• El software que funciona es más importante que la documentación exhaustiva.
• La colaboración con el cliente en lugar de la negociación de contratos.
• La respuesta delante del cambio en lugar de seguir un plan aislado.
adapt ab i l idad de cua lqu ie r cambio
ENTREMOS EN CONTEXTO1 . Retroalimentación a escala fina:
El principio de pruebas: se tiene que establecer un
período de pruebas de aceptación del programa
donde se definirán las entradas al sistema y los
resultados esperados de estas entradas.
Ambientes de Prueba (Unit testing frameworks).
¿QUÉ PODEMOS ENCONTRAR EN
EL MERCADO?
GRANDES PROYECTOS Creatividad liberada
Use Visual Studio Team Foundation Server 2010 para administrar los procesos de desarrollo de software y facilitar la colaboración, a fin de liberar a los equipos de trabajo de tareas mundanas de no codificación y brindarles más autonomía para que den rienda suelta a la creatividad.
Simplicidad mediante la integraciónLos analistas, arquitectos, desarrolladores, diseñadores, evaluadores y jefes de proyecto de la empresa pueden hacer uso de sus habilidades actuales para trabajar con herramientas conocidas en un entorno perfectamente integrado para establecer conexiones, comunicarse y colaborar.
Código de calidad aseguradoCaracterísticas eficaces como la automatización de compilación y la entrada validada lo ayudan a asegurarse de que los defectos y regresiones sean detectados con la mayor antelación posible.
¡POCOS RECURSOS!, NUnit es una herramienta que se encarga de analizar ensamblados generados por .NET, interpretar las pruebas inmersas en ellos y ejecutarlas. Utiliza atributos personalizados para interpretar las pruebas y provee además métodos para implementarlas. En general, NUnit compara valores esperados y valores generados, si estos son diferentes la prueba no pasa, caso contrario la prueba es exitosa.
NUnit ofrece una interface simple que informa si una prueba o un conjunto de pruebas falló, pasó o fue ignorada.La última versión disponible de NUnit es la 2.2, que se encuentra en estado beta y la ultima versión estable es la 2.1, se pueden descargar de: http://www.nunit.org/download.html
Proceso de planificación:
El usuario tendrá que escribir sus necesidades,
definiendo las actividades que realizará el
sistema.
Numero de historias ??????
Reuniones periodicas. ????
Semanas de trabajo. ????
El cliente en el sitio: se le dará
poder para determinar los
requerimientos, definir la
funcionalidad.
Programación en parejas: uno
de los principios más radicales y
en el que la mayoría de gerentes
de desarrollo pone sus dudas
2. PROCESO CONTINUO EN LUGAR DE
POR LOTES.
Integración continua: permite al equipo
hacer un rápido progreso
implementando las nuevas
características del software.
Refactorización.
Entregas pequeñas: evaluado en un
ambiente real.
3.Entendimiento compartido
Diseño simple: Se cumplen los requerimientos.
Metáfora vs UML.
Propiedad colectiva del
código.
Estándar de codificación.