Podcast
Questions and Answers
¿Cuál de las siguientes categorías de software se caracteriza por su alta interacción con el hardware de la computadora?
¿Cuál de las siguientes categorías de software se caracteriza por su alta interacción con el hardware de la computadora?
¿Qué tipo de software se utiliza principalmente para resolver necesidades específicas de negocios?
¿Qué tipo de software se utiliza principalmente para resolver necesidades específicas de negocios?
¿Cuál de los siguientes atributos es crucial para las aplicaciones web (WebApps)?
¿Cuál de los siguientes atributos es crucial para las aplicaciones web (WebApps)?
¿Qué característica define al software de inteligencia artificial según el contenido?
¿Qué característica define al software de inteligencia artificial según el contenido?
Signup and view all the answers
¿Qué desafío se presenta actualmente para los ingenieros en software debido a la computación moderna?
¿Qué desafío se presenta actualmente para los ingenieros en software debido a la computación moderna?
Signup and view all the answers
¿Cuál es una característica distintiva del software en comparación con el hardware?
¿Cuál es una característica distintiva del software en comparación con el hardware?
Signup and view all the answers
¿Qué describe mejor la 'curva de tina' en relación con el hardware?
¿Qué describe mejor la 'curva de tina' en relación con el hardware?
Signup and view all the answers
¿Qué significa que el software no se desgasta?
¿Qué significa que el software no se desgasta?
Signup and view all the answers
¿Qué puede causar el deterioro del software a lo largo del tiempo?
¿Qué puede causar el deterioro del software a lo largo del tiempo?
Signup and view all the answers
¿Qué se entiende por 'defectos ocultos' en el software?
¿Qué se entiende por 'defectos ocultos' en el software?
Signup and view all the answers
¿Cuál de las siguientes características es esencial para un software mantenible?
¿Cuál de las siguientes características es esencial para un software mantenible?
Signup and view all the answers
El costo del software es siempre menor que el costo del hardware.
El costo del software es siempre menor que el costo del hardware.
Signup and view all the answers
¿Cuáles son las etapas del Proceso de Software?
¿Cuáles son las etapas del Proceso de Software?
Signup and view all the answers
El software ___________ debe adaptarse a los cambios requeridos por el cliente y el mercado.
El software ___________ debe adaptarse a los cambios requeridos por el cliente y el mercado.
Signup and view all the answers
Asocia los tipos de productos de software con su descripción:
Asocia los tipos de productos de software con su descripción:
Signup and view all the answers
¿Cuál es la primera actividad en el proceso de ingeniería de software?
¿Cuál es la primera actividad en el proceso de ingeniería de software?
Signup and view all the answers
El proceso de ingeniería de software se puede considerar una serie de pasos rígidos y no adaptables.
El proceso de ingeniería de software se puede considerar una serie de pasos rígidos y no adaptables.
Signup and view all the answers
¿Qué se entiende por 'actividades sombrillas' en el proceso de ingeniería de software?
¿Qué se entiende por 'actividades sombrillas' en el proceso de ingeniería de software?
Signup and view all the answers
En la fase de _____, se genera el código y se llevan a cabo pruebas para detectar errores en el software.
En la fase de _____, se genera el código y se llevan a cabo pruebas para detectar errores en el software.
Signup and view all the answers
Asocia las actividades sombrillas con su propósito:
Asocia las actividades sombrillas con su propósito:
Signup and view all the answers
¿Cuál de los siguientes modelos de desarrollo de software es el más adecuado cuando los requisitos son claros desde el principio?
¿Cuál de los siguientes modelos de desarrollo de software es el más adecuado cuando los requisitos son claros desde el principio?
Signup and view all the answers
El desarrollo iterativo implica crear un sistema inicial y luego refinarlo basado en las necesidades del cliente.
El desarrollo iterativo implica crear un sistema inicial y luego refinarlo basado en las necesidades del cliente.
Signup and view all the answers
¿Qué técnica se centra en la reutilización de componentes existentes en el desarrollo de software?
¿Qué técnica se centra en la reutilización de componentes existentes en el desarrollo de software?
Signup and view all the answers
El modelo de desarrollo __________ permite un desarrollo más flexible y es ideal para proyectos con requisitos no completamente definidos.
El modelo de desarrollo __________ permite un desarrollo más flexible y es ideal para proyectos con requisitos no completamente definidos.
Signup and view all the answers
Asocia cada modelo de desarrollo de software con su característica principal:
Asocia cada modelo de desarrollo de software con su característica principal:
Signup and view all the answers
¿Cuál de las siguientes afirmaciones sobre el modelo en espiral es correcta?
¿Cuál de las siguientes afirmaciones sobre el modelo en espiral es correcta?
Signup and view all the answers
El modelo en espiral es más adecuado para proyectos pequeños y simples.
El modelo en espiral es más adecuado para proyectos pequeños y simples.
Signup and view all the answers
¿Cuáles son las cuatro fases principales de cada ciclo en el modelo en espiral?
¿Cuáles son las cuatro fases principales de cada ciclo en el modelo en espiral?
Signup and view all the answers
El enfoque en la ___________ permite que el proceso sea más adaptable y reduce la probabilidad de problemas graves.
El enfoque en la ___________ permite que el proceso sea más adaptable y reduce la probabilidad de problemas graves.
Signup and view all the answers
Asocia las fases del ciclo en espiral con su descripción:
Asocia las fases del ciclo en espiral con su descripción:
Signup and view all the answers
¿Cuál de los siguientes lenguajes de programación es conocido por su simplicidad y versatilidad?
¿Cuál de los siguientes lenguajes de programación es conocido por su simplicidad y versatilidad?
Signup and view all the answers
El software es un producto tangible que se puede tocar y ver físicamente.
El software es un producto tangible que se puede tocar y ver físicamente.
Signup and view all the answers
¿Qué metodología ha contribuido a hacer el desarrollo de software más colaborativo y rápido en la actualidad?
¿Qué metodología ha contribuido a hacer el desarrollo de software más colaborativo y rápido en la actualidad?
Signup and view all the answers
La __________ es la práctica que permite que nuevas versiones de software se desplieguen rápidamente y sin interrupciones.
La __________ es la práctica que permite que nuevas versiones de software se desplieguen rápidamente y sin interrupciones.
Signup and view all the answers
Empareja los siguientes conceptos con su descripción adecuada:
Empareja los siguientes conceptos con su descripción adecuada:
Signup and view all the answers
¿Cuál fue una de las características destacadas durante la primera era de la Ingeniería de Software (1950-1965)?
¿Cuál fue una de las características destacadas durante la primera era de la Ingeniería de Software (1950-1965)?
Signup and view all the answers
La Ingeniería de Software surgió en la década de 1980 debido a la crisis del software.
La Ingeniería de Software surgió en la década de 1980 debido a la crisis del software.
Signup and view all the answers
¿Cuál fue la evolución dando lugar a la multiprogramación y sistemas multiusuarios?
¿Cuál fue la evolución dando lugar a la multiprogramación y sistemas multiusuarios?
Signup and view all the answers
En la _____________, se comenzó a reconocer el software como un producto y se buscaron procedimientos para su desarrollo.
En la _____________, se comenzó a reconocer el software como un producto y se buscaron procedimientos para su desarrollo.
Signup and view all the answers
Asocia las eras de la Ingeniería de Software con sus características principales:
Asocia las eras de la Ingeniería de Software con sus características principales:
Signup and view all the answers
¿Cuál de los siguientes enunciados describe mejor el propósito de los requerimientos del sistema?
¿Cuál de los siguientes enunciados describe mejor el propósito de los requerimientos del sistema?
Signup and view all the answers
La ingeniería de requerimientos (RE) es solo el proceso de documentación de requerimientos y no incluye verificación.
La ingeniería de requerimientos (RE) es solo el proceso de documentación de requerimientos y no incluye verificación.
Signup and view all the answers
¿Qué diferencia hay entre los requerimientos funcionales y los no funcionales?
¿Qué diferencia hay entre los requerimientos funcionales y los no funcionales?
Signup and view all the answers
Los requerimientos del __________ son declaraciones generales de los servicios que el sistema debe proporcionar.
Los requerimientos del __________ son declaraciones generales de los servicios que el sistema debe proporcionar.
Signup and view all the answers
Asocia cada nivel de requerimiento con su descripción adecuada:
Asocia cada nivel de requerimiento con su descripción adecuada:
Signup and view all the answers
¿Cuál de las siguientes es una ventaja de la observación en la recolección de requisitos?
¿Cuál de las siguientes es una ventaja de la observación en la recolección de requisitos?
Signup and view all the answers
Los prototipos desechables se construyen sobre la arquitectura final del producto.
Los prototipos desechables se construyen sobre la arquitectura final del producto.
Signup and view all the answers
¿Qué se debe documentar para asegurar el éxito de un proyecto de software?
¿Qué se debe documentar para asegurar el éxito de un proyecto de software?
Signup and view all the answers
El _____ es el término utilizado para evaluar y refinar los requisitos obtenidos en un proyecto.
El _____ es el término utilizado para evaluar y refinar los requisitos obtenidos en un proyecto.
Signup and view all the answers
Asocia los términos con sus descripciones adecuadas:
Asocia los términos con sus descripciones adecuadas:
Signup and view all the answers
¿Cuál de las siguientes actividades se realiza durante la preparación para una reunión de requisitos?
¿Cuál de las siguientes actividades se realiza durante la preparación para una reunión de requisitos?
Signup and view all the answers
Menciona dos aspectos que se deben considerar al organizar una reunión con stakeholders.
Menciona dos aspectos que se deben considerar al organizar una reunión con stakeholders.
Signup and view all the answers
¿Cuál de los siguientes es un requisito funcional?
¿Cuál de los siguientes es un requisito funcional?
Signup and view all the answers
Los requisitos no funcionales están directamente relacionados con funciones específicas del software.
Los requisitos no funcionales están directamente relacionados con funciones específicas del software.
Signup and view all the answers
¿Qué técnica se utiliza para recoger información estructurada de un gran número de stakeholders?
¿Qué técnica se utiliza para recoger información estructurada de un gran número de stakeholders?
Signup and view all the answers
La _____ describe la facilidad de uso y la experiencia del usuario en los requisitos no funcionales.
La _____ describe la facilidad de uso y la experiencia del usuario en los requisitos no funcionales.
Signup and view all the answers
Empareja cada tipo de requisito no funcional con su descripción:
Empareja cada tipo de requisito no funcional con su descripción:
Signup and view all the answers
¿Cuál de estas es una técnica común en el proceso de obtención de requisitos?
¿Cuál de estas es una técnica común en el proceso de obtención de requisitos?
Signup and view all the answers
La verificación se asegura de que los requisitos especificados satisfagan las necesidades del cliente.
La verificación se asegura de que los requisitos especificados satisfagan las necesidades del cliente.
Signup and view all the answers
¿Cuál es uno de los objetivos de la planificación en el proceso de ingeniería de requisitos?
¿Cuál es uno de los objetivos de la planificación en el proceso de ingeniería de requisitos?
Signup and view all the answers
¿Cuál de las siguientes afirmaciones describe correctamente la herencia en el paradigma de objetos?
¿Cuál de las siguientes afirmaciones describe correctamente la herencia en el paradigma de objetos?
Signup and view all the answers
Los atributos de un objeto son sinónimos de su estado.
Los atributos de un objeto son sinónimos de su estado.
Signup and view all the answers
¿Qué es un objeto en el contexto de programación orientada a objetos?
¿Qué es un objeto en el contexto de programación orientada a objetos?
Signup and view all the answers
El _______ permite a los objetos responder de diferentes maneras al mismo método.
El _______ permite a los objetos responder de diferentes maneras al mismo método.
Signup and view all the answers
Asocia cada tipo de diagrama UML con su descripción:
Asocia cada tipo de diagrama UML con su descripción:
Signup and view all the answers
¿Cuál de los siguientes es un ejemplo de comportamiento en la clase 'Coche'?
¿Cuál de los siguientes es un ejemplo de comportamiento en la clase 'Coche'?
Signup and view all the answers
Los métodos son funciones asociadas a un objeto o clase.
Los métodos son funciones asociadas a un objeto o clase.
Signup and view all the answers
¿Para qué se utilizan los diagramas UML?
¿Para qué se utilizan los diagramas UML?
Signup and view all the answers
¿Cuál de las siguientes características NO es parte del Proceso Unificado (UP)?
¿Cuál de las siguientes características NO es parte del Proceso Unificado (UP)?
Signup and view all the answers
El enfoque en la arquitectura en el RUP se lleva a cabo solamente en la fase de producción.
El enfoque en la arquitectura en el RUP se lleva a cabo solamente en la fase de producción.
Signup and view all the answers
¿Cuáles son las cuatro 'P' que se consideran en la gestión del proyecto según el contenido?
¿Cuáles son las cuatro 'P' que se consideran en la gestión del proyecto según el contenido?
Signup and view all the answers
Las fases del ciclo de vida incluyen Inicio, Elaboración, __________ y Transición.
Las fases del ciclo de vida incluyen Inicio, Elaboración, __________ y Transición.
Signup and view all the answers
Empareja las fases del ciclo de vida con su objetivo principal:
Empareja las fases del ciclo de vida con su objetivo principal:
Signup and view all the answers
¿Qué aspecto es clave en el proceso iterativo e incremental?
¿Qué aspecto es clave en el proceso iterativo e incremental?
Signup and view all the answers
Las etapas del ciclo de vida incluyen equipos grandes y actividades predecibles principalmente en la fase de Inicio.
Las etapas del ciclo de vida incluyen equipos grandes y actividades predecibles principalmente en la fase de Inicio.
Signup and view all the answers
¿Qué se entiende por 'gestión del riesgo' en el contexto del RUP?
¿Qué se entiende por 'gestión del riesgo' en el contexto del RUP?
Signup and view all the answers
El modelo de arquitectura conocido como __________ permite visualizar, especificar, construir y documentar la arquitectura del sistema.
El modelo de arquitectura conocido como __________ permite visualizar, especificar, construir y documentar la arquitectura del sistema.
Signup and view all the answers
¿Cuál es un objetivo de la fase de Elaboración?
¿Cuál es un objetivo de la fase de Elaboración?
Signup and view all the answers
¿Qué tipo de relación se define como 'parte-de' en el contexto de la agregación?
¿Qué tipo de relación se define como 'parte-de' en el contexto de la agregación?
Signup and view all the answers
La herencia se representa en UML con una flecha cuya punta es un triángulo vacío.
La herencia se representa en UML con una flecha cuya punta es un triángulo vacío.
Signup and view all the answers
¿Cuáles son las cuatro fases del Proceso Unificado de Desarrollo de Software?
¿Cuáles son las cuatro fases del Proceso Unificado de Desarrollo de Software?
Signup and view all the answers
La cardinalidad determina el número de __________ que se asocian a través de una relación.
La cardinalidad determina el número de __________ que se asocian a través de una relación.
Signup and view all the answers
Asocia cada fase del Proceso Unificado con su principal actividad:
Asocia cada fase del Proceso Unificado con su principal actividad:
Signup and view all the answers
¿Cuál es una de las ventajas del Proceso Unificado de Desarrollo?
¿Cuál es una de las ventajas del Proceso Unificado de Desarrollo?
Signup and view all the answers
La composición implica que los componentes pueden pertenecer a varios objetos agregados.
La composición implica que los componentes pueden pertenecer a varios objetos agregados.
Signup and view all the answers
¿Qué se busca optimizar en el Proceso Unificado de Desarrollo?
¿Qué se busca optimizar en el Proceso Unificado de Desarrollo?
Signup and view all the answers
El análisis y _________ establece la estructura técnica del sistema.
El análisis y _________ establece la estructura técnica del sistema.
Signup and view all the answers
Asocia cada disciplina del RUP con su función:
Asocia cada disciplina del RUP con su función:
Signup and view all the answers
¿Cuál de los siguientes diagramas se utiliza para modelar la interacción entre objetos a través de mensajes?
¿Cuál de los siguientes diagramas se utiliza para modelar la interacción entre objetos a través de mensajes?
Signup and view all the answers
¿Cuál es un riesgo asociado a implementar el Proceso Unificado?
¿Cuál es un riesgo asociado a implementar el Proceso Unificado?
Signup and view all the answers
El objetivo de la fase de transición es asegurar que el sistema esté listo para su implementación.
El objetivo de la fase de transición es asegurar que el sistema esté listo para su implementación.
Signup and view all the answers
El diagrama de clases se utiliza exclusivamente para representar el comportamiento dinámico de un sistema.
El diagrama de clases se utiliza exclusivamente para representar el comportamiento dinámico de un sistema.
Signup and view all the answers
¿Qué representa un diagrama de estados en UML?
¿Qué representa un diagrama de estados en UML?
Signup and view all the answers
¿Qué implica la dependencia en el contexto del desarrollo de software?
¿Qué implica la dependencia en el contexto del desarrollo de software?
Signup and view all the answers
La ________ se enfoca en la entrega del software al usuario final.
La ________ se enfoca en la entrega del software al usuario final.
Signup and view all the answers
El modelo dinámico está diseñado para presentar el comportamiento del sistema a través del _____.
El modelo dinámico está diseñado para presentar el comportamiento del sistema a través del _____.
Signup and view all the answers
Empareja el tipo de diagrama con su descripción:
Empareja el tipo de diagrama con su descripción:
Signup and view all the answers
Asocia cada fase del Proceso Unificado con su propósito:
Asocia cada fase del Proceso Unificado con su propósito:
Signup and view all the answers
¿Cuál es el propósito principal de un diagrama de casos de uso?
¿Cuál es el propósito principal de un diagrama de casos de uso?
Signup and view all the answers
Un mensaje en el contexto de UML se considera una comunicación bidireccional entre objetos.
Un mensaje en el contexto de UML se considera una comunicación bidireccional entre objetos.
Signup and view all the answers
¿Qué son las transiciones en un diagrama de estados?
¿Qué son las transiciones en un diagrama de estados?
Signup and view all the answers
El _____ se considera como una caja que contiene elementos de tipo clasificadores en UML.
El _____ se considera como una caja que contiene elementos de tipo clasificadores en UML.
Signup and view all the answers
Asocia los componentes del modelo dinámico con su descripción:
Asocia los componentes del modelo dinámico con su descripción:
Signup and view all the answers
¿Cuál de los siguientes diagramas no forma parte de los diagramas de comportamiento?
¿Cuál de los siguientes diagramas no forma parte de los diagramas de comportamiento?
Signup and view all the answers
Es posible que las clases en un diagrama de clases tengan nombres repetidos en el mismo espacio de nombres.
Es posible que las clases en un diagrama de clases tengan nombres repetidos en el mismo espacio de nombres.
Signup and view all the answers
¿Qué representan los atributos en un diagrama de clases?
¿Qué representan los atributos en un diagrama de clases?
Signup and view all the answers
Los diagramas de _____ son los que tratan más sobre funciones y actividades del sistema.
Los diagramas de _____ son los que tratan más sobre funciones y actividades del sistema.
Signup and view all the answers
El diagrama de despliegue representa el comportamiento dinámico del sistema.
El diagrama de despliegue representa el comportamiento dinámico del sistema.
Signup and view all the answers
En el diagrama de clases, los atributos pueden ser privados o públicos.
En el diagrama de clases, los atributos pueden ser privados o públicos.
Signup and view all the answers
Los diagramas de comportamiento no están enfocados en las funciones y actividades del sistema.
Los diagramas de comportamiento no están enfocados en las funciones y actividades del sistema.
Signup and view all the answers
El diagrama de secuencia se representa a través de un gráfico en tres dimensiones.
El diagrama de secuencia se representa a través de un gráfico en tres dimensiones.
Signup and view all the answers
Un mensaje en UML se define como una comunicación bidireccional entre objetos.
Un mensaje en UML se define como una comunicación bidireccional entre objetos.
Signup and view all the answers
La herencia en programación orientada a objetos permite crear nuevas clases basadas en una clase existente.
La herencia en programación orientada a objetos permite crear nuevas clases basadas en una clase existente.
Signup and view all the answers
Un diagrama de clases en UML muestra los componentes físicos del sistema.
Un diagrama de clases en UML muestra los componentes físicos del sistema.
Signup and view all the answers
El polimorfismo permite que un objeto responda de manera uniforme ante diferentes métodos.
El polimorfismo permite que un objeto responda de manera uniforme ante diferentes métodos.
Signup and view all the answers
Los atributos de un objeto son sus características, como color y velocidad.
Los atributos de un objeto son sus características, como color y velocidad.
Signup and view all the answers
En un objeto, los métodos son contenedores de atributos asociados a la clase.
En un objeto, los métodos son contenedores de atributos asociados a la clase.
Signup and view all the answers
Study Notes
Definición y características del software
- El software es un conjunto de programas que indican a un dispositivo cómo realizar tareas específicas, a diferencia del hardware que es tangible.
- Cumple funciones desde operaciones básicas hasta aplicaciones complejas como videojuegos y sistemas operativos.
- No se desgasta como el hardware, aunque puede deteriorarse por cambios y errores en su código a lo largo del tiempo.
Comparación entre software y hardware
- El software se desarrolla con intelecto y creatividad; no se manufactura físicamente.
- El hardware presenta una tasa de fallas alta al inicio de su vida que tiende a estabilizarse, mientras que el software puede contener defectos ocultos que elevan su tasa de fallas inicialmente.
- En la industria, el hardware generalmente se construye en componentes, mientras que el software se desarrolla para un uso individual.
Categorías de software
- Software de sistema: Programas que sirven a otros programas (ej. sistemas operativos, compiladores).
- Software de aplicación: Diseñados para resolver necesidades específicas de negocios (ej. procesamiento de transacciones).
- Software de ingeniería y ciencia: Uso de algoritmos complejos en campos científicos (ej. astronomía).
- Software incrustado: Reside dentro de dispositivos y controla características específicas (ej. microondas).
- Software de línea de producto: Diseñado para diferentes consumidores (ej. software de finanzas).
- Aplicaciones web: Integradas con bases de datos, permiten el acceso en red (ej. comercio electrónico).
- Software de inteligencia artificial: Soluciona problemas complejos con algoritmos no numéricos (ej. robótica).
Desafíos en la ingeniería de software
- Computación abierta: Desarrollo de software que permita comunicación fluida entre diferentes dispositivos en redes.
- Construcción de redes simples para usuarios finales en el contexto de la web.
- Uso de código fuente abierto para facilitar el desarrollo colaborativo y acceso a aplicaciones.
WebApps: Atributos clave
- Residen en redes (Internet o intranet) y pueden ser accedidas por múltiples usuarios simultáneamente.
- Requieren actualizaciones continuas y son sensibles a la calidad del contenido.
- Deben garantizar seguridad y rapidez, así como ser visualmente atractivas para los usuarios.
Proceso de elaboración de software
- Se necesita un análisis profundo del problema antes del desarrollo para lograr aplicaciones de calidad.
- Diseñar software requiere colaboración de equipos multidisciplinarios debido a la complejidad moderna.
- La alta calidad es fundamental ya que el software afecta operaciones críticas en diversos ámbitos.
Ingeniería de software
- Involucra la aplicación de métodos sistemáticos y disciplinados para el desarrollo y mantenimiento del software.
- Busca la producción de software confiable y eficiente que cumpla con requisitos establecidos.
- Involucra fases como análisis de situación, diseño de proyectos, desarrollo, y pruebas necesarias para su funcionamiento.
- La relación entre las metodologías, herramientas y técnicas es esencial para un proceso de desarrollo sistemático y controlado.
Proceso de Software
- El proceso de software es flexible y adaptable, permitiendo al equipo seleccionar tareas adecuadas para cada proyecto.
- Consta de cinco actividades fundamentales: Comunicación, Planeación, Modelado, Construcción y Despliegue.
- Comunicación: Definición de características y funciones del software con el cliente.
- Planeación: Elaboración de un "plan de proyecto" que describe técnicas, riesgos y recursos necesarios.
- Modelado: Creación de un bosquejo o modelo para entender mejor los requerimientos y el diseño.
- Construcción: Generación de código y pruebas para detectar errores en el software.
- Despliegue: Entrega del software al cliente para evaluación y retroalimentación.
- Las actividades son iterativas, produciendo incrementos del software en cada ciclo.
- Actividades sombrillas: Gestionan seguimiento, control de calidad, riesgos y avance del proyecto.
Tipos de Productos de Software
- Productos genéricos: Desarrollados para ser vendidos en el mercado, implican mayor gasto.
- Productos hechos a medida: Desarrollados bajo pedido, requieren un mayor esfuerzo.
Características del Software
- Mantenible: Capacidad de evolución y cumplimiento de especificaciones.
- Confiable: No debe causar daño en caso de fallos.
- Eficiente: Uso óptimo de recursos del sistema.
- Fácil de usar: Interfaz adecuada y buena documentación.
- La importancia de cada característica varía según el tipo de producto y su entorno de uso.
El Proceso de Software y sus Actividades
- El proceso incluye especificación, diseño, validación y evolución del software.
- Especificación: Definición de software y restricciones operativas por parte de clientes e ingenieros.
- Diseño: Elaboración y programación del software.
- Validación: Comprobación de que el software cumple con los requisitos del cliente.
- Evolución: Modificación del software según cambios requeridos por clientes y mercado.
Métodos y Herramientas en Ingeniería de Software
- Métodos: Estrategias organizadas para producir software que incluyen procesos, notaciones, modelos y pautas de diseño.
- Herramientas CASE: Sistemas diseñados para facilitar tareas del proceso de software como edición y verificación de diagramas.
Características del Proceso
- Definido: Proceso comprensible y bien estructurado.
- Visible: Acceso claro al proceso.
- Asistido: Soporte mediante herramientas CASE.
- Aceptable: Aceptación por parte del personal involucrado.
- Confiable: Detección de errores antes de afectar el producto.
- Robusto: Capacidad de continuar ante problemas inesperados.
- Mantenible: Evolución para cumplir objetivos organizacionales.
- Ágil: Rapidez en la producción del sistema.
Modelo de Ingeniería del Proceso
- Especificación: Establecimiento de requerimientos y restricciones.
- Diseño: Modelado de la solución.
- Construcción: Desarrollo del sistema.
- Prueba: Verificación y validación del sistema.
- Instalación: Entrega y aseguramiento del funcionamiento del sistema.
- Mantenimiento: Reparación de fallos detectados.
Problemas en el Modelo del Proceso
- Especificaciones a menudo incompletas o inexactas.
- Ambigüedad entre especificación, diseño y construcción.
- Imposibilidad de probar un sistema antes de su producción.
- Dificultad para reemplazar software durante el mantenimiento.
Ejemplos de Modelos de Procesos
- Modelo de flujo de trabajo: Muestra la secuencia de actividades con entradas, salidas y dependencias.
- Modelo de flujo de datos: Representa actividades que transforman datos en el proceso.
- Modelo de rol/acción: Representa roles de las personas involucradas y sus responsabilidades en el proceso.
- La mayor parte de los modelos de procesos se basan en paradigmas de desarrollo de software.
MODELOS GENÉRICOS DE DESARROLLO DE SOFTWARE
- Enfoque en Cascada: Fases secuenciales (requerimientos, diseño, implementación, pruebas). Cada etapa es firmada y se avanza a la siguiente.
- Desarrollo Iterativo: Combina especificación, desarrollo y validación. Un sistema inicial se desarrolla y se refina según las necesidades del cliente.
- Ingeniería del Software Basada en Componentes (CBSE): Se centra en la reutilización de partes existencias del sistema, priorizando su interacción.
DETALLES GENERALES DE MODELOS DE DESARROLLO
- Modelo en Cascada: Estructurado para proyectos con requisitos claros. Ventajas: buena visibilidad y documentación. Desventajas: rigidez ante cambios.
- Desarrollo Evolutivo: Especificación y desarrollo concurrentes. Flexible, pero con visibilidad pobre y costes elevados debido a la documentación.
- Prototipado: Útil para clarificar requisitos indefinidos. Permite ajustes temprano, pero riesgo de mala documentación si no se gestiona.
- Transformación Formal: Usa modelos matemáticos para asegurar precisión. Alta seguridad, pero requiere recursos y personal especializado.
- Modelo en Espiral: Incorpora análisis de riesgos en un enfoque iterativo. Excelentes para proyectos complejos y de largo plazo, combinando flexibilidad y control.
- Modelos Ágiles (como Scrum): Adaptativos para requisitos cambiantes, enfocados en entrega rápida y participación continua del cliente.
ORIGEN Y ESTRUCTURA DEL MODELO EN ESPIRAL
- Propuesto por Barry Boehm en 1988. Representa un enfoque flexible en comparación con cascada.
- Fases se dividen en: definición de objetivos, evaluación de riesgos, desarrollo y validación, planeación.
FASES DEL CICLO EN ESPIRAL
- Definición de Objetivos: Establecimiento de metas y planificación con evaluación de riesgos.
- Análisis de Riesgos: Identificación y elaboración de estrategias para mitigar riesgos.
- Desarrollo y Validación: Elección de un modelo de desarrollo según los riesgos evaluados.
- Planeación: Revisión de resultados y preparación para el siguiente ciclo.
MANEJO DE RIESGOS EN EL MODELO EN ESPIRAL
- Evaluación continua de riesgos en cada ciclo para ajustar el enfoque del proyecto antes de avanzar.
DIFERENCIAS CON OTROS MODELOS
- Enfoque explicitado en la gestión de riesgos. Mejora la adaptabilidad y reduce problemas de retrasos y costos.
VENTAJAS DEL MODELO EN ESPIRAL
- Flexibilidad para ajustar planes basada en los riesgos identificados.
- Promueve iteración y mejora continua del producto final.
DESVENTAJAS DEL MODELO EN ESPIRAL
- Complejidad en la gestión de su enfoque iterativo y basado en riesgos.
- Costos y tiempos potencialmente altos por la constante evaluación.
APLICACIÓN DEL MODELO EN ESPIRAL
- Adecuado para proyectos grandes y complejos donde los riesgos son altos. Ejemplos incluyen sistemas críticos como aplicados en defensa o salud.
ASEGURAMIENTO DE CALIDAD
- Se asegura mediante revisiones y pruebas continuas. Evaluación temprana de riesgos que implican calidad del software.
DESAFÍOS EN LA IMPLEMENTACIÓN
- Complejidad, costos elevados y necesidad de experiencia en gestión de riesgos y comunicación.
FINALIZACIÓN DEL DESARROLLO EN EL MODELO EN ESPIRAL
- Se cierra el desarrollo cuando se cumplen todos los objetivos y se mitigan riesgos críticos, garantizando satisfacción del cliente.
CICLO DE VIDA DEL SOFTWARE
- Análisis: Definición de requisitos del usuario y viabilidad.
- Diseño: Estructuración del software según requerimientos. Incluye diseño general y en detalle.
- Desarrollo: Programación de funciones definidas en diseño.
- Pruebas: Verificación de cada componente y métodos de prueba eficaces.
- Implementación: Codificación según diseños y desarrollo en entornos de prueba.
- Mantenimiento: Modificaciones posteriores para corregir errores y mejorar el rendimiento.
Rol en el diseño de sistemas
- La Ingeniería de Software define la interacción entre componentes de software y hardware, asegurando cumplimiento de necesidades y correcta integración.
- Se enfatiza la usabilidad, seguridad, escalabilidad y mantenibilidad del software.
Historia de la Ingeniería de Software
- Surgió en la década de 1960 debido a la "crisis del software", un periodo marcado por la complejidad creciente de proyectos sin metodologías adecuadas.
- Evolucionó a través de varias etapas, incluyendo:
- Primera era (1950-1965): Codificación y corrección básica, sin planificación ni documentación.
- Segunda era (1965-1972): Simplificación de código y aparición del software como producto.
- Tercera era (1972-1985): Impacto del software en redes de información y tecnologías de inteligencia artificial.
- Cuarta era (1985-1995): Período significativo de desarrollo.
- Quinta era (2000 en adelante): Omnipresencia de software en la web y reutilización de componentes.
Cambios desde la primera etapa hasta la actualidad
- Inicios con software básico y lenguajes de bajo nivel:
- Evolución hacia lenguajes más avanzados como C y Java, facilitando desarrollo más complejo.
- Introducción de interfaces gráficas en los 80s que hicieron el uso de computadoras más accesible.
- Actualidad: software omnipresente, disponible en la nube, incluyendo inteligencia artificial y aprendizaje automático.
Desarrollo en la actualidad
- Uso de metodologías ágiles y herramientas de colaboración en línea.
- Empleo de entornos de desarrollo integrados (IDEs) para facilitar programación.
- Fuerte enfoque en seguridad y escalabilidad.
- Prácticas de integración y entrega continuas (CI/CD) permiten despliegue rápido de software.
Lenguajes predominantes en el mercado
- Python: Versátil, popular en ciencia de datos e inteligencia artificial.
- JavaScript: Esencial para desarrollo web (cliente y servidor).
- Java: Muy utilizado en aplicaciones empresariales y Android.
- C#: Principalmente en aplicaciones .NET.
- C++: Común en sistemas de alto rendimiento como videojuegos.
Relación con otras disciplinas
- Conexión con Ciencia de la Computación, Gestión de Proyectos e Ingeniería de Sistemas.
- La Ingeniería de Software se centra en aplicar principios teóricos a la resolución de problemas prácticos en el desarrollo.
Distinción del software con otros productos
- Intangibilidad: El software es un conjunto de instrucciones, no físico.
- Flexibilidad: Modificaciones y mejoras sin cambios en hardware.
- Bajo costo de reproducción y distribución en comparación con productos físicos.
- Dependencia del hardware, ya que requiere especificaciones del equipo para funcionar.
Aplicación de la computación ubicua
- Integración de tecnología en la vida diaria sin ser notada, como en hogares inteligentes.
- Gestión de salud mediante sensores vestibles.
- Ciudades inteligentes optimizando tráfico y recursos a través de datos en tiempo real.
Ejemplos de aplicación
- Hogares Inteligentes: Automatización de tareas domésticas.
- Salud y Bienestar: Monitoreo constante a través de dispositivos portátiles.
- Ciudades Inteligentes: Uso de datos para mejorar seguridad y eficiencia urbana.
Mitos relacionados con el desarrollo de software
- El software libre no es de baja calidad.
- Desarrollo abarca más que solo escribir código.
- El software siempre requiere mantenimiento.
- Más programadores no siempre aceleran el desarrollo.
- Errores en el software son inevitables.
- Pruebas no garantizan ausencia de errores.
- Costo no refleja calidad del software.
- Desarrollo es un esfuerzo colaborativo, no individual.
- No es necesario conocer todos los lenguajes de programación.
- Software personalizado no siempre es superior a soluciones estándar.
Resolución de problemas y principios fundamentales
- La Ingeniería de Software busca diseñar soluciones que sean robustas y escalables, alineadas con necesidades del negocio mediante técnicas de modelado y gestión de riesgos.
Roles en tecnología
- Product Owner (PO): Define y prioriza los requisitos del producto.
- Scrum Master: Facilita el proceso Scrum y mejora la colaboración.
- Project Manager (PM): Planifica y gestiona proyectos de software.
- Analista Funcional: Documenta requisitos y las traduce a especificaciones.
- Desarrollador/Ingeniero de Software: Escribe y mantiene el código.
- Tester/QA: Asegura la calidad del software mediante pruebas.
- Arquitecto de Software: Define la arquitectura del software.
- DevOps Engineer: Automatiza procesos de desarrollo y despliegue.
- Administrador de Bases de Datos (DBA): Gestor de bases de datos y asegura rendimiento.
- Diseñador UX/UI: Crea interfaces de usuario intuitivas.
- Administrador de Sistemas: Mantiene la infraestructura de TI.
- Security Engineer: Protege sistemas y datos de amenazas.
Diferencias entre software de código libre y código cerrado
- Software de código cerrado: Licenciado, no puede ser modificado; ejemplo: IOS y Windows.
- Software de código libre: Modificable y distribuido gratuitamente; ejemplo: Android y Linux.
- El costo, servicio y seguridad varían significativamente entre ambos tipos de software.
Ingeniería de Requisitos
- La ingeniería de requisitos incluye descubrir, analizar, documentar y verificar los requerimientos de software.
- Los requerimientos son descripciones de servicios y restricciones operativas que debe ofrecer un sistema.
- Los requisitos establecen el “qué” de un sistema, mientras que el diseño se centra en el “cómo” se implementará.
Tipos de Requerimientos
- Requerimientos del Usuario: Declaraciones generales sobre las funciones y comportamientos que el sistema debe proporcionar desde la perspectiva del usuario final.
- Requerimientos del Sistema: Describen con detalle las funciones y restricciones operativas; incluyen requerimientos funcionales y no funcionales.
- Requisitos del Software: Específicos para el software, desglosan necesidades técnicas.
Requerimientos Funcionales y No Funcionales
- Requisitos Funcionales: Definen acciones específicas que el software debe realizar, como autenticación de usuario o gestión de inventario.
- Requisitos No Funcionales: Definen los criterios de calidad del sistema, como rendimiento, seguridad, usabilidad y escalabilidad.
Tipos de Requerimientos No Funcionales
- Del Producto: Se refieren a limitaciones del comportamiento del producto, como rendimiento y fiabilidad.
- De la Organización: Derivan de políticas y procedimientos existentes, incluyendo estándares y métodos de diseño.
- Externos: Factores externos como legislativos, éticos y de interoperabilidad.
Proceso de Ingeniería de Requisitos
- Planificación: Establecer objetivos, alcance y recursos necesarios.
- Obtención: Recopilar requisitos mediante técnicas como entrevistas o encuestas.
- Análisis: Estudiar los requisitos para comprender su significado y eliminar ambigüedades.
- Especificación: Documentar los requisitos de manera formal y estructurada.
- Verificación: Comprobar que la especificación sea correcta y coherente.
- Validación: Asegurar que los requisitos cumplen con las necesidades del cliente.
Técnicas de Obtención de Requisitos
- Entrevistas: Conversaciones directas con stakeholders para recolectar información.
- Encuestas y Cuestionarios: Obtención estructurada de datos de un gran número de participantes.
- Workshops: Reuniones colaborativas para discutir y priorizar requerimientos.
- Observación: Análisis de cómo los usuarios trabajan actualmente para identificar sus necesidades.
- Prototipado: Crear versiones preliminares del software para recibir retroalimentación.
Documentación de Requisitos
- Incluir identificación única, descripción clara, prioridad, criterios de aceptación y dependencias.
- Documentación clara es vital para el éxito del proyecto y guía todas las actividades de desarrollo y pruebas.
Participantes en el Proceso de Requisitos
- Clientes y Usuarios: Proporcionan requisitos alineados a sus necesidades.
- Diseñadores: Necesitan comprender los requisitos para satisfacer expectativas en el diseño.
- Gerentes y Supervisores: Asegurar el seguimiento de hitos y comprender el impacto organizacional.
Casos de Uso
- Técnicas para describir requisitos funcionales desde la perspectiva del usuario.
- Incluyen actores externos que interactúan con el sistema y especifican qué debe hacer sin detallar cómo.
- Usados en Fases iniciales para especificar expectativas y funcionalidades del sistema.
Elementos Clave en Casos de Uso
- Actores: Usuarios o sistemas que interactúan con el sistema.
- Relaciones: Indican cómo los actores participan en los casos de uso.
- Diagramas de Casos de Uso: Representan interacciones entre actores y funcionalidades del sistema, útiles para comprender requisitos funcionales.
Paradigmas de Objetos
- Clase: Plantilla que define propiedades y comportamientos de objetos, creando un nuevo tipo de datos.
- Objeto: Instancia de una clase que representa entidades reales como relojes o coches. Interaccionan mediante mensajes.
- Atributos: Características de un objeto, como color y velocidad.
- Estado: Conjunto de datos o atributos y sus valores; incluye la funcionalidad y el comportamiento.
- Métodos: Funciones asociadas a un objeto o clase que detallan sus acciones (ej. avanzar, parar).
- Herencia: Permite crear nuevas clases basadas en clases existentes, reutilizando y extendiendo comportamientos.
- Polimorfismo: Capacidad de los objetos de responder de diferentes maneras a un mismo método (ej. acelerar).
- Diagramas UML: Lenguaje de modelado visual estandarizado para visualizar y documentar sistemas de software.
Tipos de Diagramas UML
Diagramas Estructurales
- Diagrama de Clases: Representa clases, atributos, métodos y relaciones.
- Diagrama de Componentes: Muestra componentes físicos y sus interacciones.
- Diagrama de Objetos: Similar al de clases, enfocado en instancias específicas.
- Diagrama de Despliegue: Representa la disposición física de nodos y componentes.
Diagramas de Comportamiento
- Diagrama de Casos de Uso: Describe interacciones entre actores externos y el sistema.
- Diagrama de Secuencia: Muestra la interacción entre objetos a través de mensajes en secuencia temporal.
- Diagrama de Actividades: Representa flujos de trabajo o procesos dentro del sistema.
- Diagrama de Estados: Muestra estados de un objeto a lo largo del tiempo y las transiciones entre ellos.
Modelo Estático y Dinámico
- Modelo Estático: Describe la estructura de clases y objetos, representando relaciones a lo largo del tiempo.
- Modelo Dinámico: Muestra el comportamiento del sistema a través del tiempo, incluyendo interacciones y estados.
Diagrama de Secuencia
- Representa la interacción entre objetos mediante el intercambio de mensajes ordenados temporalmente.
- Los mensajes se visualizan en un eje vertical, mostrando el flujo de interacción.
Diagrama de Estados
- Muestra los estados de un objeto durante su ciclo de vida y eventos que causan cambios de estado.
- Incluye transiciones que vinculan estados y reflejan acciones realizadas.
Diagrama de Clases
- Describe la organización interna del sistema en términos de clases, atributos y relaciones.
- Establece relaciones como herencia, asociación y agregación.
Procesos de Desarrollo: Proceso Unificado de Desarrollo (RUP)
- RUP es una metodología de desarrollo de software iterativa e incremental, enfocado en la arquitectura.
-
Fases del RUP:
- Inicio: Definición de visión y requisitos, estimación de costos y evaluación de riesgos.
- Elaboración: Refinamiento de requisitos, diseño de arquitectura base y resolución de riesgos.
- Construcción: Desarrollo del sistema completo, integración y pruebas.
- Transición: Preparación del sistema para el usuario final, corrección de errores y capacitación.
Ventajas y Desventajas del RUP
- Ventajas: Iterativo, flexible, enfocado en la arquitectura y control de riesgos.
- Desventajas: Complejidad y necesidad de capacitación extensa, así como documentación considerable.
Componentes del Modelo de Arquitectura
- Los modelos visualizan, especifican y documentan la arquitectura mediante un enfoque iterativo.
- Gestión del Riesgo: Identificación y comprensión de riesgos a través de cada iteración.
Ciclo de Vida del Desarrollo
- Diferenciación de fases del ciclo de vida, que incluyen actividades de gestión y desarrollo en paralelo.
- Hitos son puntos de control para revisar progreso, identificar riesgos y evaluar situaciones.
Paradigmas de Objetos
- Clase: Plantilla que define propiedades y comportamientos de objetos, creando un nuevo tipo de datos.
- Objeto: Instancia de una clase que representa entidades reales como relojes o coches. Interaccionan mediante mensajes.
- Atributos: Características de un objeto, como color y velocidad.
- Estado: Conjunto de datos o atributos y sus valores; incluye la funcionalidad y el comportamiento.
- Métodos: Funciones asociadas a un objeto o clase que detallan sus acciones (ej. avanzar, parar).
- Herencia: Permite crear nuevas clases basadas en clases existentes, reutilizando y extendiendo comportamientos.
- Polimorfismo: Capacidad de los objetos de responder de diferentes maneras a un mismo método (ej. acelerar).
- Diagramas UML: Lenguaje de modelado visual estandarizado para visualizar y documentar sistemas de software.
Tipos de Diagramas UML
Diagramas Estructurales
- Diagrama de Clases: Representa clases, atributos, métodos y relaciones.
- Diagrama de Componentes: Muestra componentes físicos y sus interacciones.
- Diagrama de Objetos: Similar al de clases, enfocado en instancias específicas.
- Diagrama de Despliegue: Representa la disposición física de nodos y componentes.
Diagramas de Comportamiento
- Diagrama de Casos de Uso: Describe interacciones entre actores externos y el sistema.
- Diagrama de Secuencia: Muestra la interacción entre objetos a través de mensajes en secuencia temporal.
- Diagrama de Actividades: Representa flujos de trabajo o procesos dentro del sistema.
- Diagrama de Estados: Muestra estados de un objeto a lo largo del tiempo y las transiciones entre ellos.
Modelo Estático y Dinámico
- Modelo Estático: Describe la estructura de clases y objetos, representando relaciones a lo largo del tiempo.
- Modelo Dinámico: Muestra el comportamiento del sistema a través del tiempo, incluyendo interacciones y estados.
Diagrama de Secuencia
- Representa la interacción entre objetos mediante el intercambio de mensajes ordenados temporalmente.
- Los mensajes se visualizan en un eje vertical, mostrando el flujo de interacción.
Diagrama de Estados
- Muestra los estados de un objeto durante su ciclo de vida y eventos que causan cambios de estado.
- Incluye transiciones que vinculan estados y reflejan acciones realizadas.
Diagrama de Clases
- Describe la organización interna del sistema en términos de clases, atributos y relaciones.
- Establece relaciones como herencia, asociación y agregación.
Procesos de Desarrollo: Proceso Unificado de Desarrollo (RUP)
- RUP es una metodología de desarrollo de software iterativa e incremental, enfocado en la arquitectura.
-
Fases del RUP:
- Inicio: Definición de visión y requisitos, estimación de costos y evaluación de riesgos.
- Elaboración: Refinamiento de requisitos, diseño de arquitectura base y resolución de riesgos.
- Construcción: Desarrollo del sistema completo, integración y pruebas.
- Transición: Preparación del sistema para el usuario final, corrección de errores y capacitación.
Ventajas y Desventajas del RUP
- Ventajas: Iterativo, flexible, enfocado en la arquitectura y control de riesgos.
- Desventajas: Complejidad y necesidad de capacitación extensa, así como documentación considerable.
Componentes del Modelo de Arquitectura
- Los modelos visualizan, especifican y documentan la arquitectura mediante un enfoque iterativo.
- Gestión del Riesgo: Identificación y comprensión de riesgos a través de cada iteración.
Ciclo de Vida del Desarrollo
- Diferenciación de fases del ciclo de vida, que incluyen actividades de gestión y desarrollo en paralelo.
- Hitos son puntos de control para revisar progreso, identificar riesgos y evaluar situaciones.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Description
Este cuestionario trata sobre los conceptos básicos de la ingeniería de software, definiendo qué es el software y su importancia en el funcionamiento de los dispositivos. Se exploran las diferencias entre software y hardware, así como las funciones que el software puede ejecutar en diversas aplicaciones.