Documentos de Académico
Documentos de Profesional
Documentos de Cultura
8.1. Cuando se “escribe” un programa, ¿se diseña software? ¿En qué difieren el
diseño de software y la codificación?
El diseño del software comienza una vez que se han analizado y modelado los requerimientos,
es la última acción de la ingeniería de software dentro de la actividad de modelado y prepara la
etapa de construcción (generación y prueba de código).
Debe cumplir con todos los requisitos que se evidenciaron al momento que conseguir la
información, es decir debe llevar todo lo que el cliente este solicitando. Calidad de diseño: se
refiere a las características que los diseñadores especifican para un elemento.
El proceso de diseño se evalúa la calidad de este de acuerdo con la serie de revisiones técnicas
las cuales se sugieren tres características que funcionan como guía para evaluar un buen
diseño, se consiguen de la siguiente manera Se deben implementar todos los requerimientos
explícitos contenidos en el modelo de requerimientos y dar cabida a todos los requerimientos
implícitos que desean los practicantes.
Debe ser una guía legible y comprensible para quienes generan el código y para los que lo
prueban y dan el apoyo posterior. Debe proporciona el panorama completo del software y
abordar los dominios de los datos, las funciones y el comportamientos desde el punto de vista
de la implementación.
Ejemplo 1: Abstracción de datos “Televisor” con sus atributos selector de cambios, video,
audio con su abstracción de procedimiento “Encender” que implica una secuencia de pasos del
procedimiento como caminar hacia el televisor, llegar y presionar el botón de
encendido/apagado.
Ejemplo 2: Abstracción de datos “Coche” con sus atributos color, el modelo o la marca con su
abstracción de procedimiento “Ponerse en marcha” que implica una secuencia de pasos del
procedimiento como caminar hacia el coche, llegar, pisar el freno para asegurar el vehículo,
pisarel clutch para preparar el carro para recibir primer cambio en la palanca, asegurarse de
que la palanca esté en neutra, encender el motor y quitar el freno de mano o de emergencias.
Ejemplo 3: Abstracción de datos “Puerta” con sus atributos tipo, dirección del abatimiento,
mecanismo de apertura, peso dimensiones, etc con su abstracción de procedimiento “Abrir”
que implica una secuencia larga de pasos del procedimiento como caminar hacia la puerta,
llegar y tomar el picaporte, girar éste y jalar la puerta, retroceder para que la puerta se abra,
etc.
8.7. 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.
El uso de teléfonos celulares y computadoras para el uso diario, es un patrón de uso cotidiano
puesto directamente o indirectamente necesitamos de ellos en cada momento para facilitar la
comunicación entre diferentes individuos
8.8. 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.9. ¿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?
Para que el software sea portable es decir que el sistema sea fácil de implementar, cuando
pasa de una plataforma a otra, tiene que tener un acoplamiento mínimo aceptable donde la
relación entre módulos sea mínima.
Ejemplos: un sistema operativo como Linux que tiene bajo acoplamiento al ser un sistema
monolítico por lo que es portable al poder se instalar en una computadora de cualquier marca.
Otro ejemplo es el navegador de internet Mozilla Firefox, que se puede ejecutar en cualquier
dispositivo con acceso a internet.
8.12. Aplique un “enfoque de refinamiento stepwise” para desarrollar tres niveles distintos
de abstracciones del procedimiento para uno o más de los programas siguientes:
a) un revisor de la escritura que, dada una cantidad numérica de dinero, imprima ésta en las
palabras que se requieren normalmente en un cheque.
Control.
Datos.
¿Cómo se comunican los datos entre los componentes? ¿El flujo de datos es continuo o los
objetos de datos pasan al sistema en forma esporádica? Servicios de automatización de Word
es una aplicación de servicio de SharePoint Server 2010que tiene tres componentes de
arquitectura únicos:
El modelo de objetos.
La cola de documentos.
Se define el rediseño del modo siguiente: “Es el proceso de cambiar un sistema de software en
forma tal que no se altera el comportamiento externo del código [diseño], pero sí se mejora su
estructura interna.” Cuando se rediseña el software, se examina el diseño existente en busca
de redundancias, elementos de diseño no utilizados, algoritmos ineficientes o innecesarios,
estructuras de datos mal construidas o inapropiadas y cualquier otra falla del diseño que
pueda corregirse para obtener un diseño mejor. El diseño iterativo es una metodología basada
en el proceso cíclico de conceptualizar, diseñar, probar, analizar y refinar un sitio web.
8.15. Describa en breves palabras cada uno de los cuatro elementos del modelo del
diseño.
El diseño es la fase en donde se modela la estructura del sistema, es en esta fase donde se
toma toda la información obtenida en el análisis para crear los cuatro elementos del diseño.
Cuestionario #9
PROBLEMAS Y PUNTOS POR EVALUAR
9.1. Con el uso de la arquitectura de una casa o edificio como metáfora, establezca
comparaciones con la arquitectura del software. ¿En qué se parecen las disciplinas de
la arquitectura clásica y la del software? ¿En qué difieren?
Solución:
9.2. Diga dos o tres ejemplos de aplicaciones para cada uno de los estilos
arquitectónicos mencionados en la sección 9.3.1.
Solución:
Un repositorio pasivo en dado caso se puede tener en cuenta a YouTube, que actúa como un
repositorio pasivo que almacena cierta cantidad de videos y es independiente de los cambios o
las acciones de otros clientes
Una aplicación web ya que está compuesta por una capa de presentación que es la que
interactúa con el usuario, y una capa de negociación que interfiere con el servidor y una capa
de datos que realiza la funcionalidad relacionada con el acceso a datos.
El modelo o si ya que se basa en un modelo por capas, en la capa inferior está el nivel más
básico ye n la capa superior están las aplicaciones que realizan su respectiva funcionalidad. En
donde cada capa realiza una respectiva función que actúa como una responsabilidad para que
la estructura en la red funcione correctamente.
un compilador que realiza un proceso secuencial, iniciando con una entrada donde empieza el
código, después hace una verificación que revisa que el código este bn escrito y tenga un buen
orden, después viene la transformación del código y por último es la generación de código
maquina final que es interpretado por la máquina.
Arquitecturas de llamar y regresar: -el big data ya que necesita realizar una conexión
remota y necesita basarse sobre otras aplicaciones mediante la red para trabajar en
paralelo para realizar diferentes funcionalidades. Ya que si no tiene una red no tiene
un llamado a procedimientos.
9.3. Algunos de los estilos arquitectónicos citados en la sección 9.3.1 tienen naturaleza
jerárquica, mientras que otros no. Elabore una lista de cada tipo. ¿Cómo se implementarían
los estilos arquitectónicos que no son jerárquicos?
Estilos arquitectónicos:
Describen una categoría del sistema que contiene; un conjunto de componentes, que realizan
una función requerida por el sistema, un conjunto de conectores que posibilitan la
comunicación, coordinación y la cooperación entre los componentes; restricciones que definen
como se puede integrar los componentes que forman el sistema; y modelos semánticos que
permiten al diseñador entender las propiedades globales de un sistema analizar las
propiedades conocidas de sus partes constituyentes.
Patrón arquitectónico:
Patrón de capas
Patrón de cliente – servidor
Patrón maestro -esclavo
Patrón de filtro de tubería
Patrón intermediario
Patrón de igual a igual
Patrón de bus de evento
Modelo – vista – controlador
Patrón de pizarra
Patrón de intérprete
Marco de trabajo:
Ejem:
En conclusión, los tres conceptos tienen una similitud ya que en cierto punto tarta de las
tácticas o estrategias conocidas que resuelven los problemas más comunes relacionados con
los requerimientos no funcionales de un sistema.
9.5. Seleccione una aplicación con la que esté familiarizado. Responda cada una de
las preguntas planteadas para el control y los datos de la sección 9.3.3.
DATOS:
Se ejecutan a través de protocolos de comunicación en red TCP/ UDP los cuales validan
la conexión y los datos viajan en tramas de paquetes para la conexión.
Al ser mensajería instantánea es esporádico el envío y recepción de datos ya que no es
continua, teniendo en cuenta, un solo receptor y un solo emisor para evaluar el caso.
Se envía y recibe solamente cuando el usuario ejecuta la acción.
Los datos viajan de un componente para validar su conexión y camino de inicio a fin
por tanto no se supone de ellos globalmente por todos los componentes al mismo
tiempo.
La interacción de los datos con los componentes del sistema, se propicia en el
momento en el que el componente recibe una entrada de datos, es decir, un mensaje
para que sea enviado al receptor.
9.6. Investigue el ATAM (en [Kaz98]) y presente un análisis detallado de los seis
pasos presentados en la sección 9.5.1.
Escenarios de investigación:
Se centra en la descripción de estilos de arquitectura y las vistas que está pueda tener
del sistema. También realiza una recopilación y vista general de los escenarios que se
tuvieron en cuenta por los participantes del proyecto de software. De la misma forma
se identifican los riesgos, se realiza sensibilización acerca de este mismo con el fin de
cumplir a cabalidad con los requerimientos de calidad y seguridad del software.
9.7. Si no lo ha hecho, termine el problema 6.6. Use los métodos de diseño descritos en este
capítulo para desarrollar una arquitectura del software para el SSRB.
Existen muchas razones para que los desarrolladores tomen esta decisión que casi siempre se
debe a que los requisitos son dinámicos, entonces al menos que se utilice un enfoque eficiente
y ágil que haga al equipo versátil en esta tarea.
Otra, puede ser que es una actividad que requiere de un alto grado de análisis, lo que
demanda tiempo, es preferible solo tomar los requisitos que afectaran directamente al
negocio y avanzar en las próximas iteraciones.
También se piensa que retrasa la etapa más divertida que es el modelado y la codificación del
proceso de software, pero se sabe que es fundamental.
9.8. Utilice un diagrama de flujo y una narración del procesamiento para describir un
sistema basado en computadora que tenga distintas características de
transformación del flujo. Defina las fronteras del sistema y mapee el diagrama de
flujo de los datos en una arquitectura del software con el empleo de la técnica
descrita en la sección 9.6.1.
COMPUTADOR