Slide-Software Sesión 1 Semana 1.

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 25

CICLO III:

Desarrollo de software
Sesión 1:
Desarrollo
Software
Introducción y Metodologías
para el desarrollo de software
Objetivos de la sesión
Al finalizar esta sesión estarás en capacidad de:

1. Explicar el ciclo de vida del software.


2. Explicar las diferentes metodologías existentes para el desarrollo de software, en particular
metodologías ágiles.
3. Diseñar un sistema de software basado en una metodología de desarrollo a partir de requerimientos
funcionales de un tercero
INTRODUCCIÓN A
LA PROGRAMACIÓN
Introducción P

● Software : Es la programación lógica que todo sistema de cómputo necesita para funcionar
correctamente y permitir al usuario disfrutar de aspectos como una interfaz amigable y rápida, así las
funciones que el programa realice.
● Desarrollo de software: estudia los componentes necesarios para la creación, gestión, mantenimiento
y testeo de software computacional

Cuando se va desarrollar un software intervienen muchas personas como lo es el cliente quien es el


que tiene el problema en su empresa y desea que sea solucionado, para esto existe el analista de
sistema quien es el encargado de hacerle llegar todos los requerimientos y necesidades que tiene el
cliente a los programadores quienes son las personas encargadas de realizar lo que es la
codificación y diseño del sistema para después probarlo y lo instalan al cliente.
Ciclo de Desarrollo
Definición
“Una aproximación lógica a la adquisición, el suministro, el desarrollo, la
explotación y el mantenimiento del software” IEEE 1074

“Un marco de referencia que contiene los procesos, las actividades y las tareas
involucradas en el desarrollo, la explotación y el mantenimiento de un producto
de software, abarcando la vida del sistema desde la definición de los requisitos
hasta la finalización de su uso” ISO 12207-1
Ciclo de Desarrollo de Software
Análisis
● Entrada
○ Conocimiento de la aplicación, actividades de los usuarios, mercado, etc.
● Actividades
○ Identificar las necesidades del usuario
○ Realizar análisis de viabilidad
○ Establecer los requerimientos de la aplicación
● Salida
○ Documento con los requerimientos del software.
Diseño
● Entrada
○ Documento con los requerimientos del software
● Actividades
○ Crear estrategia de solución
○ Analizar alternativas y Formalizar la solución
○ Dividir y organizar la aplicación en módulos
○ Establecer descripciones de cada módulo
● Salida
○ Documento con el diseño del software
○ UML (Universal Modeling Language)
Codificación
● Entrada
○ Documento con el diseño del software
● Actividades
○ Creación del código fuente
○ Pruebas y testing
● Salida
○ Código de módulos, probado
Pruebas - Validación
● Entrada
○ Código de módulos, probado
○ Documento de requerimientos del software (validación)
● Actividades
○ Pruebas de integración
○ Pruebas de validación
● Salida
○ Software finalizado y listo para usar
Mantenimiento
● Entrada
○ Software listo para usar
● Actividades
○ Instalación
○ Uso en paralelo
○ Implementación
○ Nuevos requerimientos, correcciones y modificaciones
○ Soporte de usuarios
● Salida
○ Aplicación respondiendo a las necesidades actuales
Modelos de ciclo de vida
Los modelos de ciclo de vida se han actualizado a tal punto, que facilitan
una metodología común entre el cliente y la compañía de software, esto con
el fin de reflejar las etapas de desarrollo involucradas y la documentación
requerida, de tal forma que cada etapa se valide antes de continuar con la
siguiente.
Modelo en cascada Ventajas:
Análisis
● La cantidad de recursos necesarios es mínimo.
● La documentación se produce en cada etapa del
desarrollo.
Diseño
● Después de cada etapa importante de la codificación
de software, las pruebas se realizan para comprobar el
correcto funcionamiento del código.
Codificación Inconvenientes:

● Rígido

Integración ● Difícil de rectificar

● La documentación inicial se vuelve obsoleta

Mantenimiento
Modelo en Espiral
Solución
Construcción Ventajas
E C • Los factores de riesgo son reducidos.
A D • El desarrollo es iterativo y se pueden
E C incorporar funcionalidades progresivamente.
A D
Inconvenientes
E C • La duración de la ejecución no es concreta.
Evaluación Diseño
A D • Fallos en el análisis de riesgos podría influir
E C negativamente a todo el proyecto.
A D

Análisis Prototipado Iterativo


o Diseño Espiral
Diseño Centrado en el Usuario
Ventajas:
• Son económicas tanto en tiempo como en
dinero.
• Pueden aplicarse en fases muy tempranas
de desarrollo.
Inconvenientes:
• Es necesario un criterio sólido por parte de
los evaluadores y expertos en experiencia
de usuario.
• No cuenta con la opinión del usuario con
respecto al contexto de uso o a las
expectativas del mismo, lo cual no
necesariamente afecta a la usabilidad,
pero sí a la experiencia de usuario.
Metodologías de Desarrollo de
Software
● Las metodologías emplean un proceso disciplinado sobre el desarrollo de
software con el objetivo de hacerlo más predecible y eficiente.
● Dicho proceso es detallado con un gran énfasis en la planificación.
● El ritmo entero del desarrollo se retrasa a causa de lo mucho que se debe hacer
para seguir la metodología.
Metodologías de Desarrollo de Software
Ágiles
Metodologías de Desarrollo de
Software Ágiles
● Son métodos que buscan un justo equilibrio entre ningún proceso y demasiado
proceso, proporcionando simplemente suficiente proceso para que el esfuerzo
valga la pena.
● El resultado de todo esto es que los métodos ágiles cambian significativamente
algunos de los énfasis de los métodos antes usados.
● La gran diferencia es que son menos orientados al documento, lo que conlleva a
disminuir la documentación para una tarea dada.
● En general, son más bien orientados al código, teniendo en cuenta que:
“la parte importante de la documentación es el código fuente”
Beneficios de Metodologías de Desarrollo
de Software Ágiles
● Calidad: Realizando pruebas desde el principio e iterando sobre el producto tras recibir
el feedback.
● Resultados: Entregando algo tangible y que aporte valor desde la primera iteración.
● Flexibilidad: Permitiendo cambios de alcance, estimando y planificando de manera
ágil.
● Mantenibilidad: Creando un software de calidad, con casos de prueba y una
documentación asumible.
● Eliminación de riesgos: Validando cada entrega en sprints cortos y asegurando la
calidad con casos de pruebas.
● Motivación: Trabajando de manera conjunta con el cliente, viendo crecer el producto
final tras cada iteración.
Metodologías Ágiles más comunes
● SCRUM

● KANBAN

● Extreme Programming (XP)


Metodología de Desarrollo de Software
Agile - SCRUM
Roles
Scrum Master
Dueño del producto
Equipo

Artefactos
Backlog del producto
Backlog de sprint
Incremento de funcionalidad

Procesos
Planificación
Reunión diaria (15 min)
Revisión
Retrospectiva
Metodología de Desarrollo de Software
Agile - KANBAN Reglas
Mostrar el proceso
Limitar el trabajo en curso (WIP)
Optimizar el flujo de trabajo

Tableros físicos con columnas


Cola de espera
Análisis
En cola
En curso
Desarrollo
En cola
En curso
Implementación
En cola
En curso
Metodología de Desarrollo de Software Agile -
eXtreme Programming (XP)
Valores:
• Comunicación
• Simplicidad
• Retroalimentación
Planificación Diseño • Respeto
• Coraje
Prácticas
Cliente in-situ
Metáfora
Refactoring
Entregas cortas
Semana de 40 horas
Lanzamiento Pruebas Codificación Propiedad colectiva
Código Estándar
Programación de a pares
Integración continua
Juego de planificación

También podría gustarte