Subido por victor.zeji.2627

01 Material

Anuncio
Capítulo 1
Ciclo de vida del software
Objetivo
Al finalizar el capítulo, el alumno podrá:




Sitúa su trabajo dentro del ciclo de vida de un proyecto.
Verifica qué modelo de ciclo de vida emplean en su organización.
Conoce el concepto y filosofía de las metodologías Ágiles.
Conoce los principios y actividades principales de Scrum.
Temas
1.
2.
3.
Ciclo de vida de un proyecto de software
Metodologías de desarrollo de software
Metodologías Ágiles de software, el manifiesto Ágil, Scrum.
Cibertec Perú S.A.C - Java 8.0 Advanced Developer
Ciclo de vida del software
2
Importancia
Un sistema de software es una entidad “viva”, es algo orgánico ya que no permanece
estático en el tiempo; es por ello que podemos decir que un proyecto de software tiene
siempre un ciclo de vida, su desarrollo está ligado, quiera o no, a un ciclo de vida.
A lo largo de la historia del desarrollo de software, se han propuesto diferentes
paradigmas o ciclos de vida para el software. Hemos tenido ciclos de vida tradicionales
como el modelo en cascada o espiral, y recientemente con el auge de las metodologías
ágiles, tenemos modelos de ciclos de vida para los proyectos ágiles.
Como siempre ocurre con estos temas, las organizaciones profesionales, así como
organismos internacionales de envergadura en el mundo de software, se han ido
reuniendo para estudiar esto a fondo, publicando lo encontrado y normas para poder
comprender los ciclos y poder manejarlos.
Cibertec Perú S.A.C - Java 8.0 Advanced Application Developer
Ciclo de vida del software
3
1. Ciclo de vida de un proyecto de software
El ciclo de vida del software abarca toda la vida del sistema, comenzando en una idea
y finalizando cuando ya no se utiliza: Definimos el ciclo de vida del software como la
sucesión de etapas por las que pasa el sistema desde que el proyecto del sistema es
concebido hasta que se deja de usar.
En la norma ISO 12207-1 se establece que durante el ciclo de vida se pueden realizar
actividades agrupadas en procesos principales, procesos de soporte y procesos
generales, sin importar el modelo de ciclo de vida que se tenga en cuenta.
Cibertec Perú S.A.C - Java 8.0 Advanced Developer
Ciclo de vida del software
4
1.1. Modelos de ciclo de vida
Los modelos son representaciones de las relaciones entre las etapas del ciclo de vida para
que los equipos de desarrollo puedan atacar la problemática del sistema y lograr el
cumplimiento de los objetivos planteados para el proyecto de software.
La elección del modelo de ciclo de vida para proyecto es de vital importancia: se tiene que
escoger uno acorde a la naturaleza del proyecto.
C
as
En la actualidad existen dos tipos de proyecto según la metodología que se emplee:
tradicionales y ágiles. Para estos tipos también se tienen sus correspondientes
modelos de ciclo de vida.
En el caso de los modelos tradicionales, tenemos el modelo en cascada, en espiral,
entre otros. Las fases de estos modelos están bien definidas y son secuenciales.
En el caso de los modelos ágiles, tenemos el modelo ágil de Unified Process (UP),
Scrum y otros no muy conocidos basados en el Manifiesto Ágil.
Cibertec Perú S.A.C - Java 8.0 Advanced Application Developer
Ciclo de vida del software
5
Las fases que normalmente se consideran en los modelos de ciclo de vida son la
captura de requerimientos, la implementación, el despliegue y el aseguramiento de
calidad.
El manifiesto Agile
Conjunto de buenas prácticas e ideas orientadas al desarrollo de software.
Toman como base la metodología de desarrollo de software Lean, basada en la
metodología de manufactura Lean, esta última basada en el sistema de
producción Toyota (TPS). El sistema de producción Toyota a diferencia del
sistema de producción americano representado en esa época por Ford impulsa
las siguientes directrices:
Cibertec Perú S.A.C - Java 8.0 Advanced Developer
Ciclo de vida del software



6
Todos los miembros de la cadena de desarrollo son responsables y
participan en la toma de decisiones. A diferencia del método americano
donde el conocimiento y decisiones se reducen a los mandos altos.
Frente a la existencia de un problema se detiene la cadena de desarrollo
y todos los miembros analizan juntos el problema.
Se basa en el principio de eliminación de desperdicio. Entiéndase
desperdicio como:
- Pérdida de tiempo.
- Mal uso de los recursos.
- Documentación engorrosa que nadie sigue.
- Defectos.
- Tiempos muertos.
Dado que las metodologías ágiles toman como base Lean, mantienen similitudes
entre ellas, estas similitudes están fielmente representadas por el manifiesto ágil:




Individuos e interacciones sobre procesos y herramientas.
Software funcional sobre documentación extensiva.
Colaboración con los clientes sobre contratos de negociación.
Respuestas al cambio sobre un plan fijo a seguir.
Las ideas del manifiesto son, a su vez, la síntesis de un conjunto de principios:











Nuestra más alta prioridad es satisfacer a nuestros clientes a través de
entrega de software con valor desde un inicio y de manera continua.
Los cambios de requerimientos son bienvenidos, aun en etapas
avanzadas del desarrollo.
Entrega de software funcional frecuentemente, desde un par de semanas
a un par de meses.
Gente de negocios y desarrolladores deben trabajar juntos diariamente
durante todo el proyecto.
Construir proyectos alrededor de individuos motivados y confiar en su
capacidad de entregar su trabajo terminado.
El método más eficiente y efectivo para obtener información para y dentro
de un equipo de desarrollo es la conversación cara a cara.
Software funcionando es la medida primaria de progreso.
Atención continua a la excelencia técnica y buen diseño, mejora la
agilidad.
Simplicidad es esencial.
Las mejores arquitecturas, requerimientos y diseños emergen de equipos
auto organizados.
Durante cada intervalo de tiempo, el equipo reflexiona sobre cómo ser
más efectivo, entonces tunea y ajusta sus acciones de manera
concordante.
De la gran variedad de metodologías ágiles la más aceptada y adoptada, tanto por la
comunidad de desarrolladores como por organizaciones, es Scrum.
Cibertec Perú S.A.C - Java 8.0 Advanced Application Developer
Ciclo de vida del software
3.
7
SCRUM
Es la certificación ágil más desarrollada a nivel empresarial, cuenta con gran mayoría
de adeptos, así como de certificaciones internacionales. Scrum maneja una
determinada terminología. Conocerla es de vital importancia para poder moverse con
facilidad dentro de un proyecto Scrum. El proceso de desarrollo de un proyecto en
Scrum es el siguiente:

Roles que intervienen:
- Product Owner: Es la persona con mayor conocimiento de negocio del
proyecto. Por lo general es un miembro del cliente, aunque también
podría serlo algún miembro del equipo de desarrollo con sólidos
conocimientos del negocio. Es el encargado de dar las aprobaciones de
los Sprint y los vistos buenos a las demos.
- Scrum Master: Es el director de orquesta y facilitador en los proyectos
Scrum siendo además quién guía las reuniones diarias. Ese rol lo juega,
por lo general, un miembro del equipo de desarrollo.
- Stakeholder: Cualquier persona interesada en el proyecto.
Desarrolladores, personal del cliente, etc.

El proceso de desarrollo Scrum empieza con definir el Product Backlog que
contiene todas las User Stories a desarrollar a lo largo del proyecto.
El desarrollo de un proyecto Scrum se divide en Sprints, cuya duración son entre
1 a 4 semanas. El tiempo recomendado y más utilizado es de 2 semanas.
El Sprint inicia con una reunión de planificación de Sprint (Sprint Planning)
donde se definen las User Stories que se desarrollarán en el Sprint; creándose


Cibertec Perú S.A.C - Java 8.0 Advanced Developer
Ciclo de vida del software



el Sprint Backlog. El equipo procede a estimar y asignar las diferentes User
Stories, la estimación se realiza, por lo general, en Story Points. Existe una
equivalencia entre Story Points y una cantidad de horas que lo puede definir el
propio equipo. Puede en este momento o más adelante definirse las tareas que
compondrán cada User Story. El Product Owner aprueba el contenido del Sprint
y se da inicio al desarrollo del Sprint.
Durante el Sprint se realizan reuniones diarias (Daily Meetings) donde todos los
miembros de equipo indican las tareas que hicieron el día anterior y lo que
planifican hacer en el día; así también informan si están teniendo algún problema
que pudiera poner en peligro el desarrollo del Sprint. La idea de estas reuniones
es que todo el equipo esté enterado del trabajo de los demás y puedan
solucionar problemas juntos.
Una vez pasado el tiempo del Sprint, se procede con la reunión de entrega del
Sprint o demo donde se muestra al Product Owner, la funcionalidad desarrollada
y funcionando. El Product Owner procede con la aceptación o indica sus
observaciones con lo realizado.
Finalmente, el Sprint termina con una reunión de Restrospectiva, donde todo el
equipo indica:
-

8
Lo que se hizo bien.
Lo que se hizo mal o se pudo hacer mejor.
Acciones de corrección.
Luego de la retrospectiva se da por concluido el Sprint y se inicia un nuevo Sprint
Planning. Se repite este proceso hasta dar por concluido el proyecto.
Cibertec Perú S.A.C - Java 8.0 Advanced Application Developer
Descargar