Documentos de Académico
Documentos de Profesional
Documentos de Cultura
El desarrollo de software consta de varias etapas, y dos de las etapas principales son el diseño de
software y la codificación. Estas dos etapas son distintas y tienen objetivos diferentes:
El diseño de software es una especificación o representación del sistema que se desea construir,
que puede incluir diagramas, modelos, descripciones narrativas, etc. Es una representación
abstracta del sistema, no un programa en sí mismo.
Estudie el conjunto de tareas presentado para el diseño. ¿Dónde se evalúa la calidad en dicho
conjunto?
¿Cómo se logra? ¿Cómo se consiguen los atributos de calidad estudiados en la sección 8.2.1?
8.4. La calidad en el conjunto de tareas presentado para el diseño se evalúa en la etapa de revisión
y evaluación del diseño. Esto implica revisar si el diseño cumple con los atributos de calidad
requeridos y realizar ajustes o mejoras en caso necesario.
8.5 Dé ejemplos de tres abstracciones de datos y de las abstracciones de procedimiento que se
usan para manipularlas.
Ejemplos de abstracciones de datos son: lista, pila y cola. Las abstracciones de procedimiento para
manipularlas podrían ser: agregar un elemento a la lista, eliminar un elemento de la pila o encolar
un elemento en la cola.
Sugiera un patrón de diseño que encuentre en una categoría de objetos cotidianos (por ejemplo,
electrónica de consumo, automóviles, aparatos, etc.). Describa el patrón en forma breve.
8.7. Patrón de diseño sugerido: "Fábrica". Este patrón se encuentra en la categoría de electrónica
de consumo. Consiste en una entidad (la fábrica) que produce y devuelve objetos de un tipo
específico (productos) sin que el cliente conozca el proceso de creación.
Describa con sus propias palabras la separación de problemas. ¿Hay algún caso en el que no sea
apropiada la estrategia de divide y vencerás? ¿Cómo afecta esto al argumento a favor de la
modularidad?
8.8. La separación de problemas se refiere a dividir un problema complejo en subproblemas más
manejables. Sin embargo, hay casos en los que no es apropiada la estrategia de divide y vencerás,
especialmente cuando los subproblemas están muy interconectados o cuando los costos de
comunicación y coordinación superan los beneficios.
¿Cuándo debe implementarse un diseño modular como software monolítico? ¿Cómo se logra
esto? ¿El rendimiento es la única justificación para la implementación de software monolítico?
8.9. Un diseño modular debe implementarse como software monolítico cuando el rendimiento es
crucial o cuando los costos de separar el software en módulos independientes superan los
beneficios de la modularidad. Esto se logra mediante una cuidadosa planificación y diseño de la
arquitectura del sistema.
¿Cómo se relacionan los conceptos de acoplamiento y portabilidad del software? Dé ejemplos que
apoyen su punto de vista
8.11. El acoplamiento y la portabilidad del software están relacionados en el sentido de que un
bajo acoplamiento entre los módulos facilita la portabilidad, ya que los módulos pueden ser
reemplazados o adaptados con menor impacto en el resto del sistema. Un ejemplo sería un
sistema que utiliza una interfaz bien definida para comunicarse entre módulos, lo que permite
intercambiar módulos fácilmente sin afectar el funcionamiento del sistema.
8.13. Considere el software requerido para implementar la capacidad de navegación (con un GPS)
en un dispositivo móvil de comunicación portátil. Describa dos o tres preocupaciones de
interferencia que se presentarían. Analice la manera en la que se representaría como aspecto una
de estas preocupaciones.
8.13. Preocupaciones de interferencia en la navegación GPS en un dispositivo móvil:
- Interferencia electromagnética de otros dispositivos cercanos.
- Interferencia de la topografía o estructuras que bloquean las señales GPS.
- Representación como aspecto: Se podría utilizar un módulo de control de interferencias que
analice las señales recibidas y tome decisiones para mitigar o evitar problemas de interferencia.
. ¿”Rediseñar” significa que se modifica todo el diseño en forma iterativa? Si no es así, ¿qué
significa?
8.14. "Rediseñar" no implica modificar todo el diseño en forma iterativa. Significa revisar y
actualizar solo las partes necesarias del diseño para mejorar aspectos específicos o corregir
problemas identificados.
8.15 Describa en breves palabras cada uno de los cuatro elementos del modelo del diseño.
Los cuatro elementos del modelo del diseño son:
- Abstracción: Representación de conceptos complejos mediante modelos simplificados.
- Modularidad: Dividir el sistema en módulos independientes y cohesivos.
- Ocultamiento de información: Exponer solo lo necesario, ocultando detalles internos.
- Jerarquía: Organización en niveles que representan distintos niveles de detalle y abstracción.
Significados
- Resistencia: un programa no debe tener ningún error que impida su funcionamiento
- Funcionalidad: un programa debe se apropiado para los fines que persigue
- Belleza: la experiencia de usar el programa debe ser placentera
¿Qué es la abstracción?
Se refiere a la capacidad de representar un objeto, idea o entidad compleja mediante un conjunto
de características esenciales y omitiendo los detalles irrelevantes. En otras palabras, es el proceso
de simplificar la realidad para facilitar su comprensión y manipulación.
abstracción de datos para puerta agruparía un conjunto de atributos que describirían la puerta
(tipo, dirección del abatimiento, mecanismo de apertura, peso, dimensiones,
¿Cuál es el conjunto de propiedades que deben especificarse como parte del diseño de la
arquitectura?
¿Qué es un problema?
es una característica o comportamiento que se especifica en el modelo de los requerimientos para
el software.
¿Qué es la modularidad?
es la manifestación más común de la división de problemas
¿Qué es la cohesión?
es un indicador de la fortaleza relativa funcional de un módulo
¿Qué es el acoplamiento?
es de la independencia relativa entre módulos
¿Qué es el refinamiento?
Se encarga de ayudar revelar los detalles que la abstracción oculta a medida que avanza el diseño
¿Qué es un aspecto?
es una representación de una preocupación de interferencia
¿Qué es el rediseño?
Se le conoce como la técnica de reorganización que simplifica el diseño (o código) de un
componente sin cambiar su función o comportamiento