SlideShare una empresa de Scribd logo
1 de 20
Eduardo José Avila Portillo
Instructores - DEVNET Associate
Modulo 3
Desarrollo y Diseño de Software
Laboratorio – 01
• La tendencia en el mundo de las redes es que los
especialistas de TI desarrollen sus propios programas para
automatizar muchas tareas de administración de redes.
• Existen distintas metodologías de desarrollo de software
(no solo lenguajes de programación) y antes de elegir una
de ellas es necesario que conozcas lo que te ofrecen cada
una de ellas
Título del módulo:
Desarrollo y diseño de software
Objetivo del módulo : Utilizar las mejores prácticas de diseño y
desarrollo de software.
Título del tema Objetivo del tema
Desarrollo de software
Comparar las metodologías de
desarrollo de software.
Patrones de diseño de
software
Describir los beneficios de varios
patrones de diseño de software.
Sistemas de control de
versiones
Implementar el control de versiones de
software mediante GIT.
Conceptos básicos de
codificación
Explicar las mejores prácticas de
codificación.
Revisión y prueba de código
Utilizar Python UnitTest para evaluar
el código.
Comprensión de los formatos
de datos
Utilizar Python para analizar diferentes
formatos de mensajes y datos.
• Ciclo de vida del software (SDLC)
• Metodología para gestionar el SDLC
• Cascada
• Agile
• Lean
• Fase 1. Requisitos y análisis
• Fase 2. Diseño
• Fase 3. Implementación
• Fase 4. Prueba
• Fase 5. Despliegue
• Fase 6. Mantenimiento
Nota: el SDLC es una descripción no una receta
• Determinar de manera completa el problema a resolver en
general y necesidades especificas
• Recopilar requisitos y definir arquitecturas
• Calcular viabilidad, riesgos en cronograma, métodos para
probar el software, lugar y fecha de entrega del software
• Genera un reporte de Especificacion de Requisitos de
Software (SRS)
• Se toma el SRS para generar el diseño mas adecuado.
• Crea documentos de Diseño de alto nivel (HLD) y Diseño de bajo nivel (LLD).
• HLD implica descomponer un sistema en módulos y representar las interfaces y relaciones
de invocación entre módulos.
• LLD, también conocido como diseño detallado, se utiliza para diseñar las partes internas
de los módulos individuales identificados durante HLD.
• Recibe como entrada los reportes HLD y LLD.
• También es llamada fase de codificación o Desarrollo.
• Se escribe el plan de pruebas.
• Esta fase genera el código funcional que satisface la
necesidades del usuario.
• Recibe como entrada el código fuente de la
fase de implementación y el plan de pruebas.
• Además los ingenieros de pruebas realizan:
• Pruebas de integración
• Pruebas de rendimiento
• Pruebas de seguridad
• Al identificar errores, el código es enviado a los
ingenieros de desarrollo y cuando el error es
solventado se vuelven a ejecutar las pruebas.
• La fase de despliegue trabaja con el software ya verificado en la fase
de pruebas, y de inmediato se instala en el entorno de producción.
• El producto final de esta fase es la entrega a los clientes del software
funcionando.
• La fase de mantenimiento consiste en brinda soporte a los clientes,
corrige errores encontrados en producción, trabajar en mejoras de
software y recoge nuevas solicitudes del cliente
• Al concluir la fase de mantenimiento, el equipo está listo para trabajar en
la siguiente iteración y versión del software
CASCADA
LEAN
AGILE
• Usado históricamente, incluso hoy en día
todavía es utilizado
• Su objetivo es cumplir con cada fase de
manera optima y no regresar a la
anterior
• Cada fase se puede subdividir en
distintas fases y estas sub fases
ejecutarse por separado o en paralelo
• Se dice que el modelo de cascada
original fue creado por Winston W.
Royce.
• En 2001 un grupo de desarrolladores decidió crear un manifiesto a seguir para superar sus
frustraciones respecto a lo engorroso y tardío que era concluir el desarrollo de un software.
• Los valores del manifiesto ágil son:
 Individuos e interacciones sobre procesos y herramientas
 Software de trabajo sobre documentación completa
 Colaboración con el cliente sobre la negociación de contratos
 Responde al cambio sobre el siguiente plan
• Principios del manifiesto ágil
Enfoque
al cliente
Adoptar
el cambio
Entrega
frecuente
Colaboración
Equipos
Motivados
Comunicación
Cara a Cara
Software
De trabajo
Trabajo a ritmo
Constante
Entorno
Ágil
Simplicidad Equipos
Auto - organizados
Mejora
continua
• Luego de popularizar el manifiesto, pero sin definir una metodología especifica, distintos
grupos de programadores se dedicaron crear distintos métodos de programación que
cumplieran con el manifiesto ágil.
Scrum Ágil
Se enfoca en equipos pequeños auto
organizados, reuniones y entregables
diarios, adaptaciones constante y
trabaja bien con requisitos cambiantes
Lean
Enfatiza en la reducción del esfuerzo
que se realiza en la planificación y
ejecución, también busca reducir la
carga cognitiva del desarrollador
Programación Extrema
Comparable a Scrum ágil, pero es un
poco mas estricto respecto a las
mejores practicas a utilizar
Desarrollo basado en funciones (FFD)
Se basa en la primicia de que el
desarrollo debe de ser meticuloso,
desglosado, planificado y construido
característica por característica
• Conceptos importantes
Sprints:
Periodo de tiempo en
especifico en el que
se recorre un ciclo del
SDLC
Backlog:
Es una lista priorizada
con todas las
funciones del software
User stories:
Es la subdivisión de las
funciones del backlog, debe
ser una tarea suficientemente
pequeña para poder ser
hecha en un sprint
Equipos Scrum:
Son multifuncionales
y capaces de cumplir
un user story en un
solo sprint
Standup:
Reunión diaria de
cada equipo de scrum,
no mas de 15 min,
siempre a la misma
hora.
• Se basa en Lean manufacturing, que a su
vez se basa en la mejora continua.
• El método lean tiene 7 principios básicos:
• Eliminar residuos
• Amplificar el aprendizaje
• Decidir lo mas tarde posible
• Entregar lo mas rápido posible
• Empoderar al equipo
• Desarrollar integridad
• Optimizar el todo
Eliminar residuos Eliminar todo lo que no aporte valor directo al cliente
Este es el principio básico de Lean y del cual se deriva toda la metodología
Procesos adicionales
Características adicionales
Cambiar la tarea
Defectos
Movimiento
Tiempos de espera
Trabajo inconcluso
Hay Siete
desperdicios en el
desarrollo de
software
PRÁCTICA DE LABORATORIO:
EXPLORE LAS HERRAMIENTAS
DE DESARROLLO DE PYTHON
Eduardo José Avila Portillo
Facebook.com/gio.Eduardo
www.avilaware.com
@EduardoAvila_SV

Más contenido relacionado

La actualidad más candente

LP II clase05 - SCRUM
LP II clase05 - SCRUMLP II clase05 - SCRUM
LP II clase05 - SCRUMAngelDX
 
Ciclo de vida del software.pptx
Ciclo de vida del software.pptxCiclo de vida del software.pptx
Ciclo de vida del software.pptxJasonPadilla9
 
Diferencias entre scrum y xp
Diferencias entre scrum y xp Diferencias entre scrum y xp
Diferencias entre scrum y xp deborahgal
 
Metodos agiles de software
Metodos agiles de softwareMetodos agiles de software
Metodos agiles de softwareGeovani AG
 
Metodologías de desarrollo ágiles: Scrum, XP
Metodologías de desarrollo ágiles: Scrum, XPMetodologías de desarrollo ágiles: Scrum, XP
Metodologías de desarrollo ágiles: Scrum, XPejordi
 
Desarrollo ágil de software
Desarrollo ágil de softwareDesarrollo ágil de software
Desarrollo ágil de softwareAl Ex
 
Metodologías ágiles de desarrollo de software
Metodologías ágiles de desarrollo de softwareMetodologías ágiles de desarrollo de software
Metodologías ágiles de desarrollo de softwareJuan Jain
 
Procesos agiles de desarrollo de software
Procesos agiles de desarrollo de softwareProcesos agiles de desarrollo de software
Procesos agiles de desarrollo de softwareJose Risso
 
Díme que desarrollas y te diré que metodología usar
Díme que desarrollas y te diré que metodología usarDíme que desarrollas y te diré que metodología usar
Díme que desarrollas y te diré que metodología usarKiberley Santos
 
Modelos de ciclo de vidas del desarrollo del software
Modelos de ciclo de vidas del desarrollo del softwareModelos de ciclo de vidas del desarrollo del software
Modelos de ciclo de vidas del desarrollo del softwareMoises Castillo
 
Metodologías Ágiles - Scrum y XP
Metodologías Ágiles - Scrum y XPMetodologías Ágiles - Scrum y XP
Metodologías Ágiles - Scrum y XPJose I. Honrado
 

La actualidad más candente (20)

El proceso del software
El proceso del softwareEl proceso del software
El proceso del software
 
LP II clase05 - SCRUM
LP II clase05 - SCRUMLP II clase05 - SCRUM
LP II clase05 - SCRUM
 
Ciclo de vida del software.pptx
Ciclo de vida del software.pptxCiclo de vida del software.pptx
Ciclo de vida del software.pptx
 
Diferencias entre scrum y xp
Diferencias entre scrum y xp Diferencias entre scrum y xp
Diferencias entre scrum y xp
 
Metodos agiles de software
Metodos agiles de softwareMetodos agiles de software
Metodos agiles de software
 
Metodologías de desarrollo ágiles: Scrum, XP
Metodologías de desarrollo ágiles: Scrum, XPMetodologías de desarrollo ágiles: Scrum, XP
Metodologías de desarrollo ágiles: Scrum, XP
 
Desarrollo ágil de software
Desarrollo ágil de softwareDesarrollo ágil de software
Desarrollo ágil de software
 
Desarrollo Agil de Software
Desarrollo Agil de SoftwareDesarrollo Agil de Software
Desarrollo Agil de Software
 
Modelo cliente servidor
Modelo cliente servidorModelo cliente servidor
Modelo cliente servidor
 
Rup vs. xp
Rup vs. xpRup vs. xp
Rup vs. xp
 
Presentacion fdd
Presentacion fddPresentacion fdd
Presentacion fdd
 
Refactor y deuda técnica
Refactor y deuda técnicaRefactor y deuda técnica
Refactor y deuda técnica
 
Metodologías ágiles de desarrollo de software
Metodologías ágiles de desarrollo de softwareMetodologías ágiles de desarrollo de software
Metodologías ágiles de desarrollo de software
 
Procesos agiles de desarrollo de software
Procesos agiles de desarrollo de softwareProcesos agiles de desarrollo de software
Procesos agiles de desarrollo de software
 
Díme que desarrollas y te diré que metodología usar
Díme que desarrollas y te diré que metodología usarDíme que desarrollas y te diré que metodología usar
Díme que desarrollas y te diré que metodología usar
 
Modelos de ciclo de vidas del desarrollo del software
Modelos de ciclo de vidas del desarrollo del softwareModelos de ciclo de vidas del desarrollo del software
Modelos de ciclo de vidas del desarrollo del software
 
2.modelos del proceso
2.modelos del proceso2.modelos del proceso
2.modelos del proceso
 
Modelos del software
Modelos del softwareModelos del software
Modelos del software
 
Proceso del software
Proceso del softwareProceso del software
Proceso del software
 
Metodologías Ágiles - Scrum y XP
Metodologías Ágiles - Scrum y XPMetodologías Ágiles - Scrum y XP
Metodologías Ágiles - Scrum y XP
 

Similar a Desarrollo y diseño de software

Modelos de proceso del software
Modelos de proceso del softwareModelos de proceso del software
Modelos de proceso del softwareDiego Llusco
 
Modelos de ciclo de vida en el desarrollo de software
Modelos de ciclo de vida en el desarrollo de softwareModelos de ciclo de vida en el desarrollo de software
Modelos de ciclo de vida en el desarrollo de softwareRonald A Cortez B
 
Los modelos de desarrollo de software (hendrick rodriguez )
Los modelos de desarrollo de software (hendrick rodriguez )Los modelos de desarrollo de software (hendrick rodriguez )
Los modelos de desarrollo de software (hendrick rodriguez )Hendrick Rodriguez
 
Ingeniería de software Definicion,inicion,importancia y utilidad
Ingeniería de software Definicion,inicion,importancia y utilidadIngeniería de software Definicion,inicion,importancia y utilidad
Ingeniería de software Definicion,inicion,importancia y utilidadXKWDX
 
Metodologias modernas para el desarrollo de software
Metodologias modernas para el desarrollo de softwareMetodologias modernas para el desarrollo de software
Metodologias modernas para el desarrollo de softwareDeisy Sapaico
 
Fundamentos de ingenieria de software - metodologias.pdf
Fundamentos de ingenieria de software - metodologias.pdfFundamentos de ingenieria de software - metodologias.pdf
Fundamentos de ingenieria de software - metodologias.pdfBibliotecaenlineaUNI
 
Mariajosehernandezcardenas 233101 9_agosto
Mariajosehernandezcardenas 233101 9_agostoMariajosehernandezcardenas 233101 9_agosto
Mariajosehernandezcardenas 233101 9_agostoMariaJoshernandezcar
 
METODOLOGIA RUP.pptx
METODOLOGIA RUP.pptxMETODOLOGIA RUP.pptx
METODOLOGIA RUP.pptxjuan gonzalez
 
Modelos de desarrollo del software
Modelos de desarrollo del softwareModelos de desarrollo del software
Modelos de desarrollo del softwareGenesis Mamani
 
Modelos de-procesos-del-software
Modelos de-procesos-del-softwareModelos de-procesos-del-software
Modelos de-procesos-del-softwareGrupo_9
 
Modelos de-procesos-del-software
Modelos de-procesos-del-softwareModelos de-procesos-del-software
Modelos de-procesos-del-softwareGrupo_9
 
Modelos de-procesos-del-software
Modelos de-procesos-del-softwareModelos de-procesos-del-software
Modelos de-procesos-del-softwareGrupo_9
 

Similar a Desarrollo y diseño de software (20)

Modelos de proceso del software
Modelos de proceso del softwareModelos de proceso del software
Modelos de proceso del software
 
Modelos de ciclo de vida en el desarrollo de software
Modelos de ciclo de vida en el desarrollo de softwareModelos de ciclo de vida en el desarrollo de software
Modelos de ciclo de vida en el desarrollo de software
 
Modelos de Desarrollo de Software - INF162 - 2017
Modelos de Desarrollo de Software - INF162 - 2017Modelos de Desarrollo de Software - INF162 - 2017
Modelos de Desarrollo de Software - INF162 - 2017
 
Los modelos de desarrollo de software (hendrick rodriguez )
Los modelos de desarrollo de software (hendrick rodriguez )Los modelos de desarrollo de software (hendrick rodriguez )
Los modelos de desarrollo de software (hendrick rodriguez )
 
Ingeniería de software Definicion,inicion,importancia y utilidad
Ingeniería de software Definicion,inicion,importancia y utilidadIngeniería de software Definicion,inicion,importancia y utilidad
Ingeniería de software Definicion,inicion,importancia y utilidad
 
Modelos de software
Modelos de softwareModelos de software
Modelos de software
 
Metodologías de Desarrollo de Software
Metodologías de Desarrollo de SoftwareMetodologías de Desarrollo de Software
Metodologías de Desarrollo de Software
 
Metodologias modernas para el desarrollo de software
Metodologias modernas para el desarrollo de softwareMetodologias modernas para el desarrollo de software
Metodologias modernas para el desarrollo de software
 
Fundamentos de ingenieria de software - metodologias.pdf
Fundamentos de ingenieria de software - metodologias.pdfFundamentos de ingenieria de software - metodologias.pdf
Fundamentos de ingenieria de software - metodologias.pdf
 
Mariajosehernandezcardenas 233101 9_agosto
Mariajosehernandezcardenas 233101 9_agostoMariajosehernandezcardenas 233101 9_agosto
Mariajosehernandezcardenas 233101 9_agosto
 
Rup
RupRup
Rup
 
METODOLOGIA RUP.pptx
METODOLOGIA RUP.pptxMETODOLOGIA RUP.pptx
METODOLOGIA RUP.pptx
 
Presentacion grupo9
Presentacion grupo9Presentacion grupo9
Presentacion grupo9
 
El proceso
El procesoEl proceso
El proceso
 
Modelos de desarrollo del software
Modelos de desarrollo del softwareModelos de desarrollo del software
Modelos de desarrollo del software
 
Modelos de-procesos-del-software
Modelos de-procesos-del-softwareModelos de-procesos-del-software
Modelos de-procesos-del-software
 
Modelos de-procesos-del-software
Modelos de-procesos-del-softwareModelos de-procesos-del-software
Modelos de-procesos-del-software
 
Modelos de-procesos-del-software
Modelos de-procesos-del-softwareModelos de-procesos-del-software
Modelos de-procesos-del-software
 
Metodología RUP
Metodología RUPMetodología RUP
Metodología RUP
 
Rup
RupRup
Rup
 

Desarrollo y diseño de software

  • 1. Eduardo José Avila Portillo Instructores - DEVNET Associate Modulo 3 Desarrollo y Diseño de Software Laboratorio – 01
  • 2. • La tendencia en el mundo de las redes es que los especialistas de TI desarrollen sus propios programas para automatizar muchas tareas de administración de redes. • Existen distintas metodologías de desarrollo de software (no solo lenguajes de programación) y antes de elegir una de ellas es necesario que conozcas lo que te ofrecen cada una de ellas
  • 3. Título del módulo: Desarrollo y diseño de software Objetivo del módulo : Utilizar las mejores prácticas de diseño y desarrollo de software. Título del tema Objetivo del tema Desarrollo de software Comparar las metodologías de desarrollo de software. Patrones de diseño de software Describir los beneficios de varios patrones de diseño de software. Sistemas de control de versiones Implementar el control de versiones de software mediante GIT. Conceptos básicos de codificación Explicar las mejores prácticas de codificación. Revisión y prueba de código Utilizar Python UnitTest para evaluar el código. Comprensión de los formatos de datos Utilizar Python para analizar diferentes formatos de mensajes y datos.
  • 4. • Ciclo de vida del software (SDLC) • Metodología para gestionar el SDLC • Cascada • Agile • Lean
  • 5. • Fase 1. Requisitos y análisis • Fase 2. Diseño • Fase 3. Implementación • Fase 4. Prueba • Fase 5. Despliegue • Fase 6. Mantenimiento Nota: el SDLC es una descripción no una receta
  • 6. • Determinar de manera completa el problema a resolver en general y necesidades especificas • Recopilar requisitos y definir arquitecturas • Calcular viabilidad, riesgos en cronograma, métodos para probar el software, lugar y fecha de entrega del software • Genera un reporte de Especificacion de Requisitos de Software (SRS)
  • 7. • Se toma el SRS para generar el diseño mas adecuado. • Crea documentos de Diseño de alto nivel (HLD) y Diseño de bajo nivel (LLD). • HLD implica descomponer un sistema en módulos y representar las interfaces y relaciones de invocación entre módulos. • LLD, también conocido como diseño detallado, se utiliza para diseñar las partes internas de los módulos individuales identificados durante HLD.
  • 8. • Recibe como entrada los reportes HLD y LLD. • También es llamada fase de codificación o Desarrollo. • Se escribe el plan de pruebas. • Esta fase genera el código funcional que satisface la necesidades del usuario.
  • 9. • Recibe como entrada el código fuente de la fase de implementación y el plan de pruebas. • Además los ingenieros de pruebas realizan: • Pruebas de integración • Pruebas de rendimiento • Pruebas de seguridad • Al identificar errores, el código es enviado a los ingenieros de desarrollo y cuando el error es solventado se vuelven a ejecutar las pruebas.
  • 10. • La fase de despliegue trabaja con el software ya verificado en la fase de pruebas, y de inmediato se instala en el entorno de producción. • El producto final de esta fase es la entrega a los clientes del software funcionando. • La fase de mantenimiento consiste en brinda soporte a los clientes, corrige errores encontrados en producción, trabajar en mejoras de software y recoge nuevas solicitudes del cliente • Al concluir la fase de mantenimiento, el equipo está listo para trabajar en la siguiente iteración y versión del software
  • 12. • Usado históricamente, incluso hoy en día todavía es utilizado • Su objetivo es cumplir con cada fase de manera optima y no regresar a la anterior • Cada fase se puede subdividir en distintas fases y estas sub fases ejecutarse por separado o en paralelo • Se dice que el modelo de cascada original fue creado por Winston W. Royce.
  • 13. • En 2001 un grupo de desarrolladores decidió crear un manifiesto a seguir para superar sus frustraciones respecto a lo engorroso y tardío que era concluir el desarrollo de un software. • Los valores del manifiesto ágil son:  Individuos e interacciones sobre procesos y herramientas  Software de trabajo sobre documentación completa  Colaboración con el cliente sobre la negociación de contratos  Responde al cambio sobre el siguiente plan • Principios del manifiesto ágil Enfoque al cliente Adoptar el cambio Entrega frecuente Colaboración Equipos Motivados Comunicación Cara a Cara Software De trabajo Trabajo a ritmo Constante Entorno Ágil Simplicidad Equipos Auto - organizados Mejora continua
  • 14. • Luego de popularizar el manifiesto, pero sin definir una metodología especifica, distintos grupos de programadores se dedicaron crear distintos métodos de programación que cumplieran con el manifiesto ágil. Scrum Ágil Se enfoca en equipos pequeños auto organizados, reuniones y entregables diarios, adaptaciones constante y trabaja bien con requisitos cambiantes Lean Enfatiza en la reducción del esfuerzo que se realiza en la planificación y ejecución, también busca reducir la carga cognitiva del desarrollador Programación Extrema Comparable a Scrum ágil, pero es un poco mas estricto respecto a las mejores practicas a utilizar Desarrollo basado en funciones (FFD) Se basa en la primicia de que el desarrollo debe de ser meticuloso, desglosado, planificado y construido característica por característica
  • 15. • Conceptos importantes Sprints: Periodo de tiempo en especifico en el que se recorre un ciclo del SDLC Backlog: Es una lista priorizada con todas las funciones del software User stories: Es la subdivisión de las funciones del backlog, debe ser una tarea suficientemente pequeña para poder ser hecha en un sprint Equipos Scrum: Son multifuncionales y capaces de cumplir un user story en un solo sprint Standup: Reunión diaria de cada equipo de scrum, no mas de 15 min, siempre a la misma hora.
  • 16. • Se basa en Lean manufacturing, que a su vez se basa en la mejora continua. • El método lean tiene 7 principios básicos: • Eliminar residuos • Amplificar el aprendizaje • Decidir lo mas tarde posible • Entregar lo mas rápido posible • Empoderar al equipo • Desarrollar integridad • Optimizar el todo
  • 17. Eliminar residuos Eliminar todo lo que no aporte valor directo al cliente Este es el principio básico de Lean y del cual se deriva toda la metodología
  • 18. Procesos adicionales Características adicionales Cambiar la tarea Defectos Movimiento Tiempos de espera Trabajo inconcluso Hay Siete desperdicios en el desarrollo de software
  • 19. PRÁCTICA DE LABORATORIO: EXPLORE LAS HERRAMIENTAS DE DESARROLLO DE PYTHON
  • 20. Eduardo José Avila Portillo Facebook.com/gio.Eduardo www.avilaware.com @EduardoAvila_SV