Métodos de Desarrollo de Software
26 Questions
3 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

¿Cuáles son las fases del ciclo de vida del desarrollo de software?

Planificación, Análisis, Diseño, Implementación, y Mantenimiento.

¿Qué ocurre en la fase de Planificación?

Se identifican los requisitos y se planifica el desarrollo.

¿Qué ocurre en la fase de Análisis?

Se estudian los requisitos para entender las necesidades del sistema.

¿Qué ocurre en la fase de Diseño?

<p>Se crean modelos y arquitecturas del sistema.</p> Signup and view all the answers

¿Qué ocurre en la fase de Implementación?

<p>Se desarrolla el código del software.</p> Signup and view all the answers

¿Qué ocurre en la fase de Mantenimiento?

<p>Se gestionan actualizaciones y mejoras post-implementación.</p> Signup and view all the answers

¿Qué es UML?

<p>Es un lenguaje estándar para visualizar, especificar, construir y documentar sistemas de software.</p> Signup and view all the answers

¿Cuáles son las principales vistas en UML?

<p>Vista de diseño, proceso, implementación, despliegue, y casos de uso.</p> Signup and view all the answers

¿Qué es la vista de diseño en UML?

<p>Representa la estructura y diseño del sistema.</p> Signup and view all the answers

¿Qué es un caso de uso en UML?

<p>Describe los comportamientos y funcionalidades principales del sistema.</p> Signup and view all the answers

¿Qué es el paradigma de Programación Orientada a Objetos (POO)?

<p>Es un paradigma basado en objetos que representan entidades del mundo real.</p> Signup and view all the answers

¿Qué es el encapsulamiento en POO?

<p>Es el proceso de ocultar los detalles internos del objeto, exponiendo solo los métodos públicos.</p> Signup and view all the answers

¿Qué es la herencia en POO?

<p>Es un mecanismo que permite que una subclase herede atributos y métodos de una superclase.</p> Signup and view all the answers

¿Qué es el polimorfismo en POO?

<p>Es la capacidad de un objeto de tomar diferentes comportamientos.</p> Signup and view all the answers

¿Qué es la abstracción en POO?

<p>Es el proceso de simplificar un objeto mostrando solo los detalles relevantes.</p> Signup and view all the answers

¿Qué es una clase en POO?

<p>Una clase es un modelo que define atributos y métodos para los objetos.</p> Signup and view all the answers

¿Qué es una relación de Dependencia entre clases?

<p>Es cuando una clase usa otra clase, y si la clase usada cambia, la clase dependiente también debe cambiar.</p> Signup and view all the answers

¿Qué es una relación de Asociación entre clases?

<p>Es una relación estructural que conecta objetos de una clase con objetos de otra clase.</p> Signup and view all the answers

¿Qué es la visibilidad de una clase?

<p>Es el nivel de acceso que otras clases tienen a los métodos y atributos de una clase.</p> Signup and view all the answers

¿Qué es una clase abstracta?

<p>Es una clase que no puede ser instanciada directamente y debe ser heredada.</p> Signup and view all the answers

¿Qué significa GRASP?

<p>GRASP significa General Responsibility Assignment Software Patterns, y se utiliza para distribuir responsabilidades entre clases.</p> Signup and view all the answers

¿Qué es el patrón Experto en GRASP?

<p>Asigna una responsabilidad a la clase que tiene la información necesaria para cumplirla.</p> Signup and view all the answers

¿Qué es el patrón Creador en GRASP?

<p>Establece que la clase que contiene o utiliza otra clase es responsable de crear instancias de esa clase.</p> Signup and view all the answers

¿Qué es el patrón Bajo Acoplamiento en GRASP?

<p>Minimiza las dependencias entre clases para facilitar el mantenimiento del sistema.</p> Signup and view all the answers

¿Qué es el patrón Alta Cohesión en GRASP?

<p>Mantiene a las clases enfocadas en un conjunto reducido de responsabilidades relacionadas.</p> Signup and view all the answers

¿Qué es el patrón Controlador en GRASP?

<p>Establece una clase que gestiona los eventos externos que ingresan al sistema.</p> Signup and view all the answers

Study Notes

Métodos de Desarrollo de Software

  • Método en Cascada (Waterfall):

    • Es secuencial y lineal, cada fase debe completarse antes de iniciar la siguiente.
    • Fases principales: Requerimientos, diseño, implementación, verificación y mantenimiento.
    • Ventajas: Fácil gestión, ideal para proyectos pequeños con requisitos claros.
    • Desventajas: Poco flexible a cambios, no recomendado para proyectos complejos o inciertos.
  • Método Iterativo-Incremental:

    • El desarrollo se realiza en ciclos (iteraciones) donde se agregan o mejoran funcionalidades.
    • Ventajas: Flexibilidad y ajustes continuos con participación del cliente.
    • Desventajas: Requiere mucha interacción con el cliente, grandes cambios no son deseables durante el proceso.
  • Método en Espiral:

    • Combina elementos del modelo en cascada e iterativo, con enfoque en la gestión de riesgos.
    • Ventajas: Permite cambios durante el desarrollo, adecuado para proyectos grandes.
    • Desventajas: Requiere experiencia en gestión de riesgos, puede generar documentación extensa.
  • Método en V:

    • Similar al modelo en cascada, pero se enfoca en la verificación y validación en cada fase.
    • Ventajas: Reduce riesgos al realizar pruebas tempranas.
    • Desventajas: Estructura rígida, poco flexible para cambios en requisitos.
  • Método de Prototipado:

    • Desarrollo gradual del producto a través de prototipos que se refinan con retroalimentación del cliente.
    • Tipos: Descartable, evolutivo e incremental.
    • Ventajas: Útil para requisitos inciertos o cambiantes.
    • Desventajas: Puede ser costoso si los prototipos son descartados, requiere tiempo.
  • Método Ágil:

    • Fomenta desarrollo rápido y colaborativo con iteraciones frecuentes y participación del cliente.
    • Ventajas: Adaptable a cambios, entrega continua de funcionalidades.
    • Desventajas: Difícil cumplir plazos si hay cambios frecuentes.
  • Scrum:

    • Divide el trabajo en sprints de 2 a 4 semanas, con reuniones de revisión y retrospectivas.
    • Ventajas: Mejora continua con retroalimentación rápida del cliente.
    • Desventajas: Puede aumentar el tiempo y los costos debido a la interacción continua del cliente.
    • Funcionamiento: Sprints comienzan con planificación, reuniones diarias (scrums) de 15 minutos y revisión del progreso. El Scrum Master garantiza la eficiencia de las reuniones.
  • Kanban:

    • Enfocado en visualizar y mejorar el flujo de trabajo con tres prácticas clave: visualización, gestión y mejora.
    • Ventajas: Ayuda a gestionar recursos y mejorar procesos.
    • Desventajas: Puede haber problemas con fluctuaciones en la demanda o falta de recursos.
  • RAD (Rapid Application Development):

    • Busca desarrollar aplicaciones rápidamente mediante prototipos y retroalimentación continua.
    • Ventajas: Reduce riesgos y permite ajustar el desarrollo.
    • Desventajas: Falta de énfasis en requisitos no funcionales, menos escalable para proyectos grandes.
  • Programación Extrema (XP):

    • Centrada en mejorar la calidad del software y la adaptabilidad rápida a cambios.
    • Elementos clave: Programación en pares, desarrollo dirigido por pruebas (TDD).
    • Ventajas: Alta adaptabilidad, reducción de defectos mediante revisiones continuas.
    • Desventajas: Menos documentación formal, la repetición frecuente puede ser tediosa.

Modelo CIA en Seguridad de la Información

  • El modelo CIA asegura la Confidencialidad, Integridad y Disponibilidad de la información.
  • La Confidencialidad garantiza que solo las personas autorizadas puedan acceder a la información.
  • La Integridad protege la información de modificaciones no autorizadas.
  • La Disponibilidad asegura que los usuarios legítimos puedan acceder a la información cuando la necesiten.

Autenticación y No Repudio

  • La autenticación verifica la identidad del usuario.
  • El no repudio evita que un usuario pueda negar haber realizado una determinada acción o transacción.

DevOps y DevSecOps

  • DevOps busca integrar los equipos de desarrollo y operaciones para la entrega continua de software.
  • DevSecOps extiende DevOps incluyendo la seguridad desde el inicio del ciclo de desarrollo.
  • DevSecOps reduce las vulnerabilidades al integrar pruebas de seguridad en cada fase.

Ciclo de Vida del Desarrollo de Software

  • Las fases son Planificación, Análisis, Diseño, Implementación y Mantenimiento.
  • En la Planificación se define el alcance y se planifican las tareas.
  • El Análisis estudia los requisitos para entender las necesidades del sistema.
  • El Diseño crea modelos y arquitectura para el sistema.
  • La Implementación implementa el código del software.
  • El Mantenimiento gestiona las actualizaciones y mejoras post-implementación.

UML (Unified Modelling Language)

  • UML es un lenguaje estándar para visualiza, especificar, construir y documentar sistemas de software.
  • Las vistas principales en UML son: diseño, proceso, implementación, despliegue y casos de uso.
  • La vista de diseño representa la estructura del sistema.
  • Los casos de uso describen el comportamiento y funcionalidades del sistema.

Programación Orientada a Objetos (POO) y Diagramas de Clases

  • POO es un paradigma basado en objetos que representan entidades del mundo real.
  • El encapsulamiento oculta la implementación interna de los objetos, exponiendo solo métodos públicos.
  • La herencia permite a las subclases heredar atributos y métodos de superclases.
  • El polimorfismo permite a un objeto comportarse de diferentes formas.
  • La abstracción simplifica un objeto mostrando solo los detalles relevantes.
  • Una clase define atributos y métodos para los objetos.
  • Una relación de dependencia significa que una clase necesita de otra clase para funcionar, si la clase dependiente cambia, la clase dependiente también debe cambiar.
  • Una relación de asociación conecta objetos de diferentes clases.
  • La visibilidad determina el acceso que otras clases tienen a los métodos y atributos de una clase.
  • Una clase abstracta no puede ser instanciada directamente, debe ser heredada.

GRASP (Patrones de Asignación de Responsabilidades en Software)

  • GRASP significa General Responsibility Assignment Software Patterns, y se utiliza para distribuir responsabilidades entre clases.
  • El patrón Experto asigna responsabilidades a la clase que tiene la información necesaria.
  • El patrón Creador establece que la clase que contiene o utiliza otra clase es responsable de la creación de instancias de esa clase.
  • El patrón Bajo Acoplamiento minimiza las dependencias entre clases para facilitar el mantenimiento.
  • El patrón Alta Cohesión mantiene a las clases enfocadas en un pequeño conjunto de responsabilidades relacionadas.
  • El patrón Controlador establece una clase que gestiona los eventos externos que ingresan al sistema.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

preguntas pds.txt
resumen pds.pdf

Description

Este cuestionario explora diferentes métodos de desarrollo de software, incluyendo el método en cascada, el iterativo-incremental y el en espiral. Cada método tiene sus ventajas y desventajas, lo cual es crucial entender para la correcta gestión de proyectos de software. Ideal para estudiantes y profesionales en el campo de la informática.

More Like This

Software Development Methods
18 questions

Software Development Methods

PlentifulLouisville avatar
PlentifulLouisville
Systems Development Tools and Methods
4 questions
Use Quizgecko on...
Browser
Browser