Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Métodologiass

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

Metodología de Ciclo de Vida del Software

La Metodología de Ciclo de Vida del Software (también conocida como SDLC, por sus siglas
en inglés, Software Development Life Cycle) es un enfoque sistemático utilizado para
desarrollar y mantener software de manera eficiente. Proporciona una estructura y un
conjunto de etapas que guían a los ingenieros en sistemas a través del proceso de desarrollo
de software, desde la concepción de la idea hasta la entrega final.

Las etapas comunes del ciclo de vida del software:

1. Requisitos y análisis: En esta etapa, se definen los requisitos del software en función
de las necesidades del cliente o del sistema. Los ingenieros en sistemas trabajan en
colaboración con los usuarios y las partes interesadas para comprender los requisitos
funcionales y no funcionales del sistema. Esto implica la identificación de las
necesidades del sistema, el análisis de riesgos y la elaboración de un documento de
especificaciones.

2. Diseño del sistema: En esta etapa, se desarrolla la arquitectura del sistema en base a
los requisitos identificados. Los ingenieros en sistemas diseñan la estructura del
sistema, definen los componentes principales y establecen las interfaces necesarias.
También consideran aspectos como la seguridad, el rendimiento y la integración con
otros sistemas.

3. Implementación: En esta etapa, los ingenieros en sistemas desarrollan y codifican el


software siguiendo los estándares y las mejores prácticas de programación. Utilizan
diferentes lenguajes de programación y herramientas de desarrollo para crear el
software según el diseño establecido.

4. Pruebas: En esta etapa, se llevan a cabo pruebas exhaustivas para identificar errores
y verificar que el software cumpla con los requisitos establecidos. Los ingenieros en
sistemas diseñan casos de prueba, realizan pruebas de unidad, pruebas de integración
y pruebas de sistema para garantizar que el software funcione correctamente en
diferentes situaciones y escenarios.
5. Despliegue: Una vez que el software ha pasado por las pruebas y se ha validado su
calidad, se procede al despliegue en el entorno de producción. Los ingenieros en
sistemas se encargan de la instalación, configuración y puesta en marcha del software
en el sistema objetivo.

6. Mantenimiento: Después del despliegue, el software puede requerir actualizaciones,


mejoras o correcciones de errores a lo largo de su ciclo de vida. Los ingenieros en
sistemas son responsables de mantener el software, solucionar problemas y garantizar
su funcionamiento continuo.

Mobile-D
El objetivo de esta metodología es conseguir ciclos de desarrollo muy rápidos en equipos
muy pequeños. Se basa en metodologías para el desarrollo de aplicaciones móviles conocidas
pero aplicadas de forma estricta como: extreme programming, Crystal Methodologies y
Rational Unified Process. Tiene distintas fases: exploración, inicialización, fase de producto,
fase de estabilización y la fase de pruebas. Cada una tiene un día de planificación y otro de
entrega.

Etapas:
1.Fase exploración: se centra la atención en la planificación y en los conceptos básicos del
proyecto. Aquí es donde se define el alcance del proyecto y su establecimiento con las
funcionalidades donde se quiere llegar.

2.Fase de iniciación: configuramos el proyecto identificando y preparando todos los recursos


necesarios como hemos comentado anteriormente en esta fase la dedicaremos un día a la
planificación y el resto al trabajo y publicación.

3.Fase de producto: se repiten iterativamente las subfases. Se usa el desarrollo dirigido por
pruebas (TDD), antes de iniciar el desarrollo de una funcionalidad debe existir una prueba
que verifique su funcionamiento. En esta fase podemos decir que se lleva a acabo toda la
implementación.

4.Fase de estabilización: se realizan las acciones de integración para enganchar los posibles
módulos separados en una única aplicación.
5.Fase de pruebas: una vez parado totalmente el desarrollo se pasa una fase de testeo hasta
llegar a una versión estable según lo establecido en las primeras fases por el cliente. Si es
necesario se reparan los errores, pero no se desarrolla nada nuevo.

Metodología Objectory

La Metodología Objectory es un enfoque de desarrollo de software orientado a objetos que


fue desarrollado por Ivar Jacobson como parte del Rational Unified Process (RUP). Aunque
el RUP ha evolucionado y no se utiliza ampliamente en la actualidad, la Metodología
Objectory sigue siendo relevante y puede ser útil para los ingenieros en sistemas que trabajan
en el desarrollo de software orientado a objetos.

Etapas:

1. Análisis de requisitos: En esta etapa, los ingenieros en sistemas trabajan en


colaboración con los usuarios y las partes interesadas para comprender y capturar los
requisitos del sistema. Utilizan técnicas como entrevistas, talleres y casos de uso para
identificar las funcionalidades clave y los objetivos del sistema.

2. Análisis de dominio: En esta etapa, se realiza un análisis más profundo del dominio
del problema y se identifican los conceptos, las clases y las relaciones clave. Los
ingenieros en sistemas utilizan técnicas de modelado, como diagramas de clases y
diagramas de interacción, para visualizar y comprender la estructura y el
comportamiento del sistema.

3. Diseño: En esta etapa, se elabora el diseño detallado del sistema a partir de los
requisitos y el análisis de dominio. Los ingenieros en sistemas definen la arquitectura
del sistema, diseñan los componentes y las interacciones entre ellos. También se
pueden utilizar patrones de diseño para resolver problemas comunes y mejorar la
reutilización y la mantenibilidad del sistema.

4. Implementación: En esta etapa, los ingenieros en sistemas traducen el diseño en


código fuente utilizando un lenguaje de programación orientado a objetos, como Java
o C++. Se siguen las mejores prácticas de codificación y se aplican estándares de
calidad y estilo de programación.
5. Pruebas: En esta etapa, se llevan a cabo pruebas para verificar que el software
funcione según lo esperado y cumpla con los requisitos. Los ingenieros en sistemas
diseñan casos de prueba y realizan pruebas unitarias, pruebas de integración y pruebas
de aceptación para asegurar la calidad del sistema.

6. Despliegue: Una vez que el software ha pasado por las pruebas y se ha validado su
calidad, se procede al despliegue en el entorno de producción. Los ingenieros en
sistemas se encargan de la instalación, configuración y puesta en marcha del sistema
en el ambiente objetivo.

Es importante destacar que Objectory hace hincapié en la iteración y la retroalimentación


continua a lo largo del ciclo de vida del desarrollo del software. Los ingenieros en sistemas
deben estar preparados para realizar ajustes y mejoras en el sistema a medida que se obtiene
más información y se comprenden mejor los requisitos y las necesidades de los usuarios.

Metodología Scrum

La Metodología Scrum es un enfoque ágil ampliamente utilizado en el desarrollo de software


y puede ser especialmente relevante para los ingenieros en sistemas. Scrum se basa en la
colaboración, la transparencia y la adaptabilidad, y se enfoca en la entrega incremental y
continua de software de alta calidad.

1. Roles en Scrum:
- Product Owner: Es responsable de definir y priorizar los requisitos del sistema, gestionar
el backlog del producto y garantizar que el equipo de desarrollo esté trabajando en las
funcionalidades más valiosas para el negocio.
- Scrum Master: Es el facilitador del equipo, asegurando que se sigan los principios y
prácticas de Scrum. El Scrum Master ayuda a eliminar los obstáculos, promueve la
colaboración y garantiza que el equipo tenga un ambiente de trabajo productivo.
- Equipo de desarrollo: Está formado por los ingenieros en sistemas y otros profesionales
necesarios para entregar el software. Trabajan juntos para desarrollar, probar e implementar
el software de acuerdo con las necesidades del producto.
2. Artefactos en Scrum:
- Backlog del producto: Es una lista priorizada de todas las funcionalidades, mejoras y
correcciones que se desean en el sistema. El Product Owner es responsable de mantener y
priorizar este backlog.
- Backlog del sprint: Es una selección de elementos del backlog del producto que el equipo
se compromete a desarrollar durante un sprint específico. Estos elementos se dividen en
tareas más pequeñas y se estiman en función de su complejidad.
- Incremento: Es el resultado tangible del sprint, es decir, el software funcional y probado
que se entrega al final de cada sprint.

3. Eventos en Scrum:
- Sprint Planning: Es una reunión en la que el equipo selecciona los elementos del backlog
del producto que se trabajarán durante el sprint y los desglosa en tareas más pequeñas.
- Daily Scrum: Es una reunión diaria corta en la que el equipo de desarrollo se sincroniza,
comparte el progreso, identifica obstáculos y planifica el trabajo para el día.
- Sprint Review: Es una reunión al final de cada sprint en la que el equipo demuestra el
incremento al Product Owner y otras partes interesadas, recibe comentarios y actualiza el
backlog del producto según sea necesario.
- Sprint Retrospective: Es una reunión al final de cada sprint en la que el equipo reflexiona
sobre el sprint pasado, identifica mejoras y crea un plan de acción para implementar esas
mejoras en el siguiente sprint.

Para los ingenieros en sistemas, Scrum proporciona una estructura clara para el desarrollo de
software. Les ayuda a colaborar de manera efectiva en un equipo multidisciplinario, a
enfocarse en objetivos claros y a entregar software de alta calidad en forma iterativa e
incremental. Además, Scrum fomenta la comunicación y la transparencia, lo que permite a
los ingenieros en sistemas compartir su progreso, identificar problemas rápidamente y
adaptarse a medida que avanza el proyecto.

Metodología XP

La Metodología XP (Extreme Programming) es una metodología ágil de desarrollo de


software que se centra en la calidad, la flexibilidad y la satisfacción del cliente. Fue creada
para abordar los desafíos del desarrollo de software en entornos cambiantes y colaborativos.
1. Valores de XP:
- Comunicación: Fomenta una comunicación constante y efectiva entre los miembros del
equipo de desarrollo y los clientes. Los ingenieros en sistemas deben estar preparados para
colaborar de manera cercana y continua con todas las partes interesadas, para entender
claramente los requisitos y cambios necesarios.

- Simplicidad: Promueve la simplicidad en el diseño y la implementación del


software. Los ingenieros en sistemas deben buscar soluciones simples y claras
que cumplan con los requisitos y eviten la complejidad innecesaria.

- Retroalimentación: Busca obtener retroalimentación temprana y frecuente del


cliente y de otros miembros del equipo. Los ingenieros en sistemas deben
estar abiertos a recibir comentarios y realizar ajustes continuos en el software.

- Valentía: Implica tomar decisiones audaces y asumir riesgos para lograr los
objetivos del proyecto. Los ingenieros en sistemas deben estar dispuestos a
asumir desafíos y experimentar con nuevas soluciones técnicas.

- Respeto: Promueve el respeto mutuo y la colaboración entre todos los


miembros del equipo. Los ingenieros en sistemas deben ser respetuosos y
considerados en su interacción con los demás.

2. Prácticas de XP:
- Programación en pareja (Pair Programming): Los ingenieros en sistemas trabajan en
parejas, donde uno es el conductor (quien escribe el código) y el otro es el observador (quien
revisa y brinda retroalimentación). Esta práctica promueve el intercambio de conocimientos,
la revisión continua del código y la mejora de la calidad del software.

- Desarrollo guiado por pruebas (Test-Driven Development): Los ingenieros en


sistemas escriben pruebas automatizadas antes de implementar una
funcionalidad. Esto ayuda a garantizar que el software funcione correctamente
y permite realizar cambios sin introducir errores.
- Integración continua (Continuous Integration): Los ingenieros en sistemas
integran el código frecuentemente y realizan pruebas automáticas para
detectar problemas de manera temprana. Esto asegura una mayor calidad del
software y facilita la detección y resolución de conflictos.

- Diseño simple (Simple Design): Los ingenieros en sistemas siguen principios


de diseño simple, buscando soluciones elegantes y fáciles de entender. Evitan
la complejidad innecesaria y buscan la claridad en la estructura del software.

- Entrega continua (Continuous Delivery): Los ingenieros en sistemas trabajan


para entregar el software de manera continua y frecuente, en incrementos
pequeños y manejables. Esto permite obtener rápidamente retroalimentación
del cliente y adaptar el desarrollo en consecuencia.

3. Proceso de XP:
- Planificación: Los ingenieros en sistemas trabajan junto con los clientes para identificar
las funcionalidades prioritarias y establecer una hoja de ruta. Utilizan historias de usuario
para describir los requisitos y estimar el tiempo necesario para completarlas.

- Iteraciones: Los ingenieros en sistemas trabajan en iteraciones cortas y


enfocadas, generalmente de una a dos semanas. Al final de cada iteración, se
presenta el software funcional al cliente y se obtiene retroalimentación para
guiar el desarrollo futuro.

- Mejora continua: Los ingenieros en sistemas revisan y mejoran


constantemente su proceso y prácticas, buscando oportunidades de
optimización y adaptación a medida que avanzan en el proyecto.

Metodología UWE:

La Metodología UWE (Unified Process for Web Engineering) es un enfoque específico para
el desarrollo de aplicaciones web y sistemas basados en la web. Fue desarrollada por el Dr.
Birgit Pröll y el Dr. Stefan Biffl como una extensión de RUP (Rational Unified Process) para
abordar las particularidades del desarrollo web. UWE se basa en principios de ingeniería de
software y metodologías ágiles.

1. Modelado de Requisitos: En esta etapa, los ingenieros en sistemas trabajan en


colaboración con los usuarios y las partes interesadas para identificar y comprender
los requisitos del sistema web. Utilizan técnicas de modelado, como diagramas de
casos de uso, diagramas de actividades y diagramas de clases, para visualizar y
especificar los requisitos.

2. Diseño Web: En esta etapa, los ingenieros en sistemas diseñan la arquitectura y la


estructura del sistema web. Se definen los componentes, las interfaces y las
interacciones del sistema utilizando diagramas y herramientas de diseño web.
También se consideran aspectos como la usabilidad, la accesibilidad y la seguridad.

3. Implementación: En esta etapa, los ingenieros en sistemas desarrollan y codifican el


software utilizando tecnologías web como HTML, CSS, JavaScript y lenguajes de
programación del lado del servidor como PHP o Java. Se siguen las mejores prácticas
de desarrollo web y se utilizan frameworks y herramientas relevantes.

4. Pruebas y Validación: En esta etapa, se realizan pruebas exhaustivas para verificar el


funcionamiento correcto del sistema web. Los ingenieros en sistemas diseñan y
ejecutan pruebas de unidad, pruebas de integración, pruebas de rendimiento y pruebas
de usabilidad para garantizar la calidad del sistema.

5. Despliegue y Mantenimiento: Una vez que el sistema web ha sido probado y validado,
se procede al despliegue en el entorno de producción. Los ingenieros en sistemas se
encargan de la instalación, configuración y puesta en marcha del sistema web.
Además, también se encargan del mantenimiento continuo del sistema, realizando
actualizaciones, correcciones de errores y mejoras según sea necesario.

La Metodología UWE se enfoca en la iteración y la entrega incremental, lo que permite a los


ingenieros en sistemas obtener retroalimentación temprana de los usuarios y adaptar el
desarrollo en consecuencia. Además, UWE considera aspectos específicos del desarrollo
web, como la usabilidad, la accesibilidad y la seguridad, para garantizar la calidad y la
satisfacción del usuario.

Es importante destacar que la Metodología UWE se basa en RUP, por lo que comparte
muchos principios y conceptos con esta metodología más amplia. Los ingenieros en sistemas
pueden beneficiarse de la estructura y las prácticas establecidas por UWE para desarrollar
aplicaciones web de manera efectiva, asegurando la calidad y la satisfacción del usuario en
proyectos de desarrollo web.

Metodología Incremental:
La Metodología Incremental es un enfoque de desarrollo de software que se basa en la entrega
incremental y progresiva de funcionalidades. En lugar de desarrollar y entregar el software
completo de una sola vez, la metodología incremental divide el proyecto en partes más
pequeñas y manejables llamadas incrementos. Cada incremento entrega una funcionalidad
adicional al software, lo que permite una mayor flexibilidad y adaptabilidad a medida que se
avanza en el proyecto.

1. División en Incrementos: Los ingenieros en sistemas dividen el proyecto en


incrementos basados en la funcionalidad. Cada incremento representa una parte
completa y funcional del sistema que se puede desarrollar y entregar de manera
independiente. Esta división permite una mayor flexibilidad y permite a los
ingenieros en sistemas priorizar y enfocarse en las funcionalidades más críticas o de
alto valor para el negocio.

2. Planificación de Incrementos: Los ingenieros en sistemas planifican los incrementos


en función de la prioridad y la complejidad. Cada incremento tiene una duración y un
alcance determinados, y se establecen objetivos claros para cada incremento. La
planificación se realiza en colaboración con los clientes y las partes interesadas para
garantizar que las funcionalidades más importantes se entreguen de manera temprana
y se obtenga retroalimentación temprana.

3. Desarrollo y Entrega de Incrementos: Los ingenieros en sistemas desarrollan cada


incremento de manera iterativa e incremental. Cada incremento implica el análisis de
requisitos, el diseño, la implementación y las pruebas necesarias para entregar la
funcionalidad definida. Al finalizar cada incremento, se realiza una evaluación y se
entrega el software al cliente para su revisión y retroalimentación.
4. Retroalimentación y Adaptación: La Metodología Incremental fomenta la
retroalimentación temprana y frecuente del cliente y de las partes interesadas. Los
ingenieros en sistemas reciben comentarios y sugerencias sobre cada incremento
entregado, lo que les permite adaptar y ajustar el desarrollo en función de las
necesidades y requisitos cambiantes.

5. Integración y Pruebas Continuas: A medida que se desarrollan nuevos incrementos,


los ingenieros en sistemas integran y prueban continuamente el software. Esto
asegura la calidad y la estabilidad del sistema a medida que se agregan nuevas
funcionalidades.

6. Mantenimiento y Mejora: Después de entregar los incrementos iniciales, los


ingenieros en sistemas pueden continuar desarrollando y mejorando el software en
incrementos posteriores. Esto permite abordar cambios en los requisitos, corregir
errores y agregar nuevas funcionalidades a medida que se obtiene más información y
retroalimentación.

La Metodología Incremental proporciona a los ingenieros en sistemas una forma de


desarrollar software de manera flexible y adaptativa. Les permite entregar funcionalidades
en etapas y recibir retroalimentación temprana del cliente, lo que les ayuda a identificar y
corregir problemas rápidamente. Además, la entrega incremental también puede ayudar a
reducir los riesgos asociados con el desarrollo de software al abordar los problemas a medida
que se presentan.

Metodología OMT:

La Metodología OMT (Object Modeling Technique) es un enfoque de desarrollo de software


orientado a objetos que se centra en el modelado y diseño de sistemas basados en objetos.
Fue desarrollada por James Rumbaugh, Michael Blaha, William Premerlani, Frederick Eddy
y William Lorensen. La Metodología OMT se basa en el análisis y diseño estructurado, y
proporciona una guía para el modelado de sistemas complejos en términos de objetos,
atributos y relaciones.
1. Análisis de Requisitos: En esta etapa, los ingenieros en sistemas trabajan con los
usuarios y las partes interesadas para identificar y comprender los requisitos del
sistema. Utilizan técnicas de recopilación de información, como entrevistas y talleres,
para capturar los requisitos funcionales y no funcionales del sistema.

2. Modelado de Objetos: En esta etapa, los ingenieros en sistemas utilizan el lenguaje


de modelado de la Metodología OMT para representar los objetos, las clases y las
relaciones del sistema. Utilizan diagramas de objetos, diagramas de clases y
diagramas de relaciones para visualizar la estructura del sistema y la interacción entre
los objetos.

3. Modelado de Dinámica: En esta etapa, los ingenieros en sistemas modelan el


comportamiento y las interacciones dinámicas entre los objetos. Utilizan diagramas
de secuencia y diagramas de estado para representar los escenarios de interacción
entre los objetos y cómo cambian de estado en respuesta a eventos.

4. Modelado de Funcionalidad: En esta etapa, los ingenieros en sistemas modelan la


funcionalidad y el flujo de control del sistema. Utilizan diagramas de actividades para
representar los procesos y los flujos de trabajo del sistema, identificando las acciones
y las decisiones que se deben tomar.

5. Diseño de Sistemas: En esta etapa, los ingenieros en sistemas utilizan los modelos
creados anteriormente para diseñar la arquitectura del sistema y definir los
componentes y las interfaces. También consideran aspectos como la seguridad, el
rendimiento y la escalabilidad del sistema.

6. Implementación: En esta etapa, los ingenieros en sistemas traducen el diseño en


código fuente utilizando un lenguaje de programación orientado a objetos, como Java
o C++. Siguen las mejores prácticas de codificación y aplican estándares de calidad
y estilo de programación.

7. Pruebas y Validación: En esta etapa, se llevan a cabo pruebas para verificar que el
software funcione según lo esperado y cumpla con los requisitos establecidos. Los
ingenieros en sistemas diseñan casos de prueba y realizan pruebas unitarias, pruebas
de integración y pruebas de sistema para garantizar la calidad del sistema.

8. Despliegue y Mantenimiento: Una vez que el software ha pasado por las pruebas y se
ha validado su calidad, se procede al despliegue en el entorno de producción. Los
ingenieros en sistemas se encargan de la instalación, configuración y puesta en
marcha del sistema. También son responsables del mantenimiento continuo del
sistema, solucionando problemas y realizando actualizaciones y mejoras.

La Metodología OMT proporciona a los ingenieros en sistemas una forma estructurada de


analizar, modelar y diseñar sistemas orientados a objetos. Les ayuda a comprender la
estructura y el comportamiento del sistema, así como a identificar y gestionar los requisitos
del sistema. Al seguir esta metodología, los ingenieros en sistemas pueden desarrollar
sistemas de software orientados a objetos de manera efectiva, asegurando la calidad y la
satisfacción del cliente.

También podría gustarte