Arquitectura de Software Chapter 1
45 Questions
0 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

¿Qué es la arquitectura de software según el Instituto de Ingeniería de Software (SEI)?

  • Conjunto de elementos físicos del sistema.
  • Diseño detallado de cada parte del sistema.
  • Conjunto de estructuras para razonar sobre el sistema. (correct)
  • Relación entre módulos dinámicos.
  • La arquitectura de software juega un papel importante en la capacidad de un sistema para satisfacer los atributos de calidad.

    True

    ¿Qué actividades técnicas se llevan a cabo durante el ciclo de desarrollo de la arquitectura de software?

    Requerimientos, Diseño, Construcción, Pruebas e Implantación

    ¿Qué representan los atributos de calidad y otros requerimientos del sistema?

    <p>Objetivos de negocio</p> Signup and view all the answers

    La arquitectura de software juega un rol crucial en el desarrollo del sistema.

    <p>True</p> Signup and view all the answers

    ¿En qué consiste la etapa de Diseño en el ciclo de desarrollo de la arquitectura de software?

    <p>En definir las estructuras de la arquitectura mediante decisiones de diseño.</p> Signup and view all the answers

    La ____________ permite satisfacer los atributos de calidad de un sistema.

    <p>arquitectura</p> Signup and view all the answers

    Relaciona los beneficios de la arquitectura de software con sus descripciones:

    <p>Aumentar la calidad de los sistemas = Satisfacer los atributos de calidad y reducir defectos Mejorar tiempos de entrega de proyectos = Facilita estimaciones precisas y desarrollo en paralelo Reducir costos de desarrollo = Reutilización y menor cantidad de defectos</p> Signup and view all the answers

    ¿Cuál es el propósito de la identificación de drivers arquitectónicos en el ciclo de desarrollo de la arquitectura de software?

    <p>Reunirse con representantes de la organización que requiere el sistema para registrar información relacionada con los drivers arquitectónicos.</p> Signup and view all the answers

    ¿En la etapa de identificación de drivers arquitectónicos, quiénes podrían participar en la reunión según el texto?

    <p>Todos los anteriores.</p> Signup and view all the answers

    En el taller de drivers arquitectónicos, se realizan seis fases, la primera fase es la introducción y presentación de los participantes. La última fase es el _____ y acciones siguientes.

    <p>resumen</p> Signup and view all the answers

    En el modelo FURPS+, las restricciones físicas del hardware son consideradas como drivers arquitectónicos.

    <p>True</p> Signup and view all the answers

    ¿Qué podría ser especificado en función de las acciones mostradas en el caso de uso 'Comprar boleto (de autobús) en línea'?

    <p>Actualizar el número de asientos disponibles en el viaje correspondiente.</p> Signup and view all the answers

    ¿Qué alternativa arquitectónica sería válida para asignar las acciones de compra de boletos a diferentes componentes?

    <p>Particionamiento en donde algunas funciones independientes puedan asignarse a diferentes componentes.</p> Signup and view all the answers

    Según el taller de atributos de calidad, los escenarios de atributos de calidad son análogos a los casos de uso o historias de usuario funcionales respecto a que especifican requerimientos de _____ de calidad.

    <p>atributos</p> Signup and view all the answers

    ¿Cuál es un indicador acerca de si el sistema se encuentra en una condición operable cuando requiere ser utilizado?

    <p>Disponibilidad</p> Signup and view all the answers

    Las restricciones administrativas describen aspectos que limitan el proceso de desarrollo del sistema.

    <p>True</p> Signup and view all the answers

    ¿Qué indicador se refiere al costo de realizar cambios en el sistema?

    <p>Modificabilidad</p> Signup and view all the answers

    Las ______ especifican políticas, estándares o procedimientos organizacionales que rigen la forma en que se realizan las actividades de una organización. Por ejemplo, durante el desarrollo de un sistema, una regla de negocio que especifica el procedimiento que usa una compañía para calcular un descuento sobre el valor de un boleto de autobús tiene influencia en el establecimiento de los requerimientos funcionales relacionados con la compra de boletos en línea.

    <p>reglas de negocio</p> Signup and view all the answers

    Relacionar los siguientes tipos de drivers con su descripción correspondiente:

    <p>Drivers funcionales = Subconjunto de requerimientos funcionales importantes para la descomposición funcional del sistema. Drivers de atributos de calidad = Requerimientos importantes para satisfacer los objetivos del negocio y la complejidad técnica. Drivers de restricciones = Considerados drivers de arquitectura sin prioridad específica.</p> Signup and view all the answers

    ¿Qué son las tácticas en el desarrollo de sistemas de software?

    <p>Conceptos de diseño que influyen en el control de la respuesta a un atributo de calidad particular.</p> Signup and view all the answers

    ¿En qué libro se encuentra un catálogo de tácticas en el desarrollo de software?

    <p>Software Architecture in Practice</p> Signup and view all the answers

    El desempeño está relacionado con la recepción de eventos y con la generación de una respuesta en un tiempo acotado por determinadas ____.

    <p>restricciones</p> Signup and view all the answers

    Hacer más eficiente un algoritmo puede contribuir a mejorar el desempeño de un sistema.

    <p>True</p> Signup and view all the answers

    ¿Por qué es importante la modularidad en el desarrollo de sistemas de software?

    <p>Facilita la comprensión del sistema.</p> Signup and view all the answers

    La cohesión alta es una característica deseable en el diseño de módulos.

    <p>True</p> Signup and view all the answers

    ¿Qué concepto se refiere a qué tanto depende un módulo de otro en el diseño de software?

    <p>Acoplamiento</p> Signup and view all the answers

    El principio KISS significa 'Mantenlo sencillo y directo' en inglés, donde KISS es un acrónimo de 'Keep it simple and ________.'

    <p>straightforward</p> Signup and view all the answers

    Relaciona los siguientes conceptos de diseño con su descripción:

    <p>Cohesión = Enfocados hacia tareas particulares Acoplamiento = Dependencia entre módulos Principio KISS = Mantener el diseño simple Patrones de diseño = Soluciones conceptuales a problemas recurrentes</p> Signup and view all the answers

    ¿Qué implica que los requerimientos de usuario y los atributos de calidad sean conceptos ortogonales?

    <p>Que son independientes, es decir, uno no afecta necesariamente al otro.</p> Signup and view all the answers

    ¿Qué implicaciones tiene priorizar con una escala alta los drivers de atributos de calidad, seguridad y desempeño en un sistema?

    <p>La implementación del sistema debe satisfacer completamente estos drivers.</p> Signup and view all the answers

    ¿A qué atributo de calidad corresponde la especificación 'El sistema deberá tener una interfaz amigable con pantallas ligeras'?

    <p>Usabilidad</p> Signup and view all the answers

    ¿Cuál(es) podría(n) ser un objetivo(s) de negocio asociado(s) al sistema de análisis automático de comentarios de clientes en redes sociales de una cadena de restaurantes?

    <p>Todos los anteriores</p> Signup and view all the answers

    ¿Por qué es importante la participación del arquitecto de software en la ingeniería de requerimientos?

    <p>El arquitecto debe asegurarse de que la arquitectura diseñada cumpla con los requerimientos identificados.</p> Signup and view all the answers

    El diseño de arquitectura de software se realiza siguiendo un enfoque iterativo.

    <p>True</p> Signup and view all the answers

    ¿Qué implica el principio de modularidad en el diseño de arquitectura de software?

    <p>Descomponer el sistema en partes con interfaces bien definidas asignadas a individuos o equipos de trabajo.</p> Signup and view all the answers

    ¿Qué problemas podrían ocurrir en el desarrollo de software si no se le da importancia a la arquitectura?

    <p>Posibles problemas podrían incluir falta de escalabilidad, dificultad en mantener y evolucionar el sistema, baja calidad y rendimiento deficiente.</p> Signup and view all the answers

    ¿El diseño de la arquitectura cubre todo el diseño que se hace al desarrollar un sistema? En caso negativo, ¿qué otras actividades de diseño no arquitectónico se llevan a cabo en ese desarrollo?

    <p>No</p> Signup and view all the answers

    ¿Qué pasa si las interfaces no son consideradas antes de la construcción del sistema?

    <p>Puede resultar en incompatibilidad, dificultades de uso y falta de integración entre los componentes del sistema.</p> Signup and view all the answers

    ¿Por qué al diseñar la arquitectura conviene hacer uso de soluciones probadas?

    <p>El uso de soluciones probadas reduce riesgos, errores y acorta el tiempo de desarrollo al aprovechar buenas prácticas y patrones conocidos.</p> Signup and view all the answers

    ¿Puede una decisión de diseño impactar de forma positiva un atributo de calidad y, al mismo tiempo, afectar de manera negativa otro atributo de calidad distinto?

    <p>True</p> Signup and view all the answers

    ¿Por qué es importante documentar la arquitectura?

    <p>La documentación permite comprender, mantener, evolucionar y comunicar la arquitectura del sistema a lo largo de su ciclo de vida.</p> Signup and view all the answers

    ¿Por qué los atributos de calidad se llaman así?

    <p>Se denominan así porque representan aspectos esenciales que definen la calidad global del sistema de software.</p> Signup and view all the answers

    ¿Tiene sentido que sea solo una persona, o unas pocas, que juegue el rol de arquitecto? ¿Por qué no realizar el diseño de la arquitectura con todo el equipo de desarrollo?

    <p>La centralización del rol de arquitecto garantiza coherencia, claridad y responsabilidad en las decisiones arquitectónicas, evitando conflictos y facilitando la gobernabilidad del sistema.</p> Signup and view all the answers

    ¿Ha tenido experiencia con algún sistema que no haya podido ser desarrollado adecuadamente debido a problemas relacionados con la arquitectura? ¿Cuáles fueron estos?

    <p>Respuesta abierta.</p> Signup and view all the answers

    Study Notes

    Introducción a la Arquitectura de Software

    • La arquitectura de software está presente en gran cantidad de objetos que nos rodean, desde teléfonos y dispositivos hasta sistemas que controlan operaciones de organizaciones y sondas robóticas.
    • El diseño de la arquitectura de software es clave para el éxito de los sistemas.

    Visión General del Desarrollo de Sistemas de Software

    • El desarrollo de un sistema de software se puede ver como una transformación hacia la solución técnica de una problema o oportunidad.
    • El proceso de desarrollo implica actividades técnicas, como:
      • Requerimientos: identificación de las necesidades de clientes y generación de especificaciones.
      • Diseño: transformación de los requerimientos en un diseño o modelo.
      • Construcción: creación del sistema mediante el desarrollo y prueba individual de las partes.
      • Pruebas: realización de pruebas para verificar si se satisfacen los requerimientos.
      • Implantación: transición del sistema desde el entorno de desarrollo hasta el entorno de producción.

    Definición de Arquitectura de Software

    • La arquitectura de software se refiere al conjunto de estructuras necesarias para razonar sobre el sistema.
    • Incluye elementos de software, relaciones entre ellos y propiedades de ambos.
    • Los elementos de software se refieren a partes del sistema que se deben desarrollar, como módulos.

    Arquitectura, Atributos de Calidad y Objetivos de Negocio

    • La arquitectura de software tiene un impacto directo en la capacidad del sistema para satisfacer los atributos de calidad, como desempeño, usabilidad y modificabilidad.
    • Las decisiones de diseño que se toman para estructurar un sistema permiten o impiden que se satisfagan los atributos de calidad.
    • Los objetivos de negocio son metas que busca alcanzar una compañía y que motivan el desarrollo de un sistema.

    Ciclo de Desarrollo de la Arquitectura

    • El ciclo de desarrollo de la arquitectura implica actividades particulares, como:
      • Requerimientos: captura, documentación y priorización de requerimientos que influyen en la arquitectura.
      • Diseño: definición de las estructuras de la arquitectura mediante la toma de decisiones de diseño.
      • Documentación: comunicación del diseño a través de la creación de vistas que representan las estructuras.
      • Evaluación: identificación de posibles riesgos o problemas en el diseño.
      • Implementación: construcción del sistema según el diseño definido.

    Beneficios de la Arquitectura

    • La arquitectura de software aporta beneficios, como:
      • Aumentar la calidad de los sistemas al satisfacer los atributos de calidad.
      • Mejorar tiempos de entrega de proyectos al facilitar la planificación y el desarrollo en paralelo.
      • Reducir costos de desarrollo al minimizar los defectos y la necesidad de rework.### Mejora del Desarrollo de Software
    • La arquitectura de software ayuda a reducir el tiempo de desarrollo al reutilizar soluciones conceptuales o componentes existentes.
    • La reducción de defectos resultante de un buen diseño da como resultado una necesidad menor de volver a realizar el trabajo, lo que contribuye a que los sistemas se entreguen en los plazos previstos.

    Reducción de Costos del Desarrollo

    • La arquitectura de software es fundamental en la reducción de costos, ya que la reutilización de componentes y soluciones ayuda a disminuir gastos.
    • Un buen diseño también reduce la necesidad de volver a realizar el trabajo y facilita el mantenimiento, lo que conduce a bajar los gastos.

    El Rol del Arquitecto de Software

    • El arquitecto de software es responsable de las actividades del ciclo de desarrollo y debe tener un conocimiento ideal del dominio del problema.
    • El arquitecto debe tomar decisiones de diseño pertinentes para satisfacer los drivers arquitectónicos y demás requerimientos del sistema.
    • El arquitecto también debe comunicar sus decisiones y asegurar que se respeten durante la construcción del sistema.

    Requerimientos del Sistema

    • Un requerimiento es una especificación que describe alguna funcionalidad, atributo o factor de calidad de un sistema de software.
    • Los requerimientos pueden describir también algún aspecto que restringe la forma en que se construye un sistema.
    • La ingeniería de requerimientos es la disciplina que engloba las actividades relacionadas con la obtención, análisis, documentación y validación de los requerimientos.

    Tipos de Requerimientos

    • Requerimientos de usuario: especifican servicios que dan soporte a procesos de negocio que los usuarios podrán llevar a cabo mediante el sistema.
    • Requerimientos funcionales: describen detalles finos de diseño y/o implementación relacionados a los requerimientos de usuario.
    • Atributos de calidad: especifican características útiles para establecer criterios sobre la calidad del sistema.
    • Restricciones: describen aspectos que limitan el proceso de desarrollo del sistema, como restricciones técnicas y administrativas.
    • Reglas de negocio: especifican políticas, estándares, prácticas o procedimientos organizacionales y/o gubernamentales que rigen o restringen la forma en que se realizan las actividades o procesos de una organización.### Reglas de Negocio y Interfaces Externas
    • Las interfaces externas especifícan los detalles sobre las interfaces necesarias para que el sistema pueda comunicarse con componentes externos de software o hardware.
    • Un ejemplo es la comunicación con un elemento externo de negocios electrónicos para procesar pagos en un sistema de compra de boletos de autobús en línea.

    Drivers Arquitectónicos

    • Los drivers arquitectónicos se clasifican en tres clases:
      • Drivers funcionales
      • Drivers de atributos de calidad
      • Drivers de restricciones
    • Los drivers funcionales son un subconjunto de los requerimientos funcionales que describen la funcionalidad del sistema.
    • Los drivers de atributos de calidad se refieren a los requerimientos no funcionales, como la seguridad, la escalabilidad, la performance, etc.

    Influencia de los Drivers Arquitectónicos

    • La información de los drivers influye en las decisiones de diseño tomadas por el arquitecto durante el diseño de la arquitectura.
    • Los drivers funcionales pueden a menudo ser implementados fácilmente si se consideran en un contexto “aislado”.
    • La implementación de los drivers puede no ser trivial cuando se consideran restricciones y expectativas sobre atributos de calidad relacionados.

    Fuentes de Información

    • El documento de visión y alcance contiene información referente a por qué desarrollar un sistema y al alcance de este.
    • El documento de visión y alcance sirve de base y/o resulta complementario durante la identificación de drivers.

    Métodos para la Identificación de Drivers Arquitectónicos

    • Taller de atributos de calidad (QAW)
    • Método de diseño centrado en la arquitectura (ACDM)
    • Funcionalidad, usabilidad, confiabilidad, desempeño, soporte (FURPS+)
    • El taller de atributos de calidad (QAW) es un método desarrollado por el SEI que define un proceso para llevar a cabo de forma sistemática la identificación de drivers de atributos de calidad.

    Taller de Atributos de Calidad (QAW)

    • El taller de atributos de calidad considera la participación activa de los diversos tipos de interesados, como dueños, usuarios directos, dueños, patrocinadores, desarrolladores o los que le darán mantenimiento.
    • El método utiliza escenarios para la especificación de los drivers de atributos de calidad.
    • El taller define un proceso secuencial de ocho etapas, incluyendo la introducción y presentación de los participantes, la presentación de la organización dueña del sistema, la presentación del boceto de la arquitectura, la identificación de los drivers arquitectónicos, la generación de escenarios, etc.

    Studying That Suits You

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

    Quiz Team

    Description

    Quiz sobre la introducción a la arquitectura de software, visión general del desarrollo de software, definición de arquitectura de software y ciclo de desarrollo de la arquitectura.

    More Like This

    Use Quizgecko on...
    Browser
    Browser