cuestionarios 8 y 9

Cuestionario #8 PROBLEMAS Y PUNTOS POR EVALUAR 8.1. Cuando se “escribe” un programa, ¿se diseña software? ¿En qué difie

Views 667 Downloads 13 File size 130KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Cuestionario #8 PROBLEMAS Y PUNTOS POR EVALUAR

8.1. Cuando se “escribe” un programa, ¿se diseña software? ¿En qué difieren el diseño de software y la codificación? R= Al “escribir” un programa no se está diseñando el software, ya que la codificación es para el funcionamiento del software que vayamos a implementar, esto se puede realizar en los distintos tipos de lenguajes que existen. El diseño de software proporciona detalles sobre la arquitectura del software, estructura de datos, interfaces y componentes necesarios para implementar el sistema, esto también nos permite modelar el sistema o producto que se construirá, estableciendo la calidad del software. Participa totalmente en lo que corresponde a la calidad del sistema a desarrollar y no solo para el uso del cliente como tal, si no, en caso de que otro tipo de desarrollador se intente añadir al proyecto.

8.2. Si el diseño del software no es un programa (y no lo es), entonces, ¿qué es? El diseño de software es el proceso por el que un agente crea una especificación de un artefacto de software, pensado para cumplir unos objetivos, utilizando un conjunto de componentes primitivos y sujeto a restricciones. Diseño de software normalmente implica problema solucionando y planeando una solución de software. 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).

8.3. ¿Cómo se evalúa la calidad del diseño del software? 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. Calidad de concordancia: es el grado en el que las especificaciones de diseño se aplican durante la fabricación.

8.4. 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?

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. 8.5. Dé ejemplos de tres abstracciones de datos y de las abstracciones de procedimiento que se usan para manipularlas. 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.6. Describa con sus propias palabras la arquitectura de software. La arquitectura de software forma la columna vertebral para construir un sistema de software, es en gran medida responsable de permitir o no ciertos atributos de calidad del sistema entre los que se destacan la confiabilidad y el rendimiento de software. Además es un modelo abstracto reutilizable que puede transferirse de un sistema a otro y que representa un medio de comunicación entre participantes del proyecto, permitiendo así la interacción e intercambio entre los desarrolladores con el objetivo final de establecer el intercambio de conocimientos y puntos de vista entre ellos. 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? La división de problemas es un concepto de diseño que sugiere que cualquier problema complejo puede manejarse con más facilidad si se subdivide en elementos susceptibles de resolverse u optimizarse de manera independiente.0l separar un problema en sus pie(as más pequeñas y por ello más manejables, se requiere menos es fuer(o y tiempo para resolverlo. El término de divide y vencerá aplica para ya que entre más se divide un problemas más rápido será solucionarlo este se aplica en la vida real 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? La modularidad es la manifestación más común de la división de problemas. El software se divide en componentes con nombres distintos y abordables por separado, en ocasiones llamados módulos, que se integran para satisfacer los requerimientos del problema. 1la modularidad es el único atributo del software que permite que un programa sea manejable en lo intelectual2. El software monolítico no es fácil de entender para un ingeniero de software. El número de trayectorias de control, alcance de referencia, número de variables general haría que comprenderlo fuera casi imposible. En funcione las circunstancias, el diseño debe descomponerse en muchos módulos con la esperan(a de que sea más fácil entenderlos y, en consecuencia, reducir el costo requerido para elaborar el software.

8.10. Analice la relación entre el concepto de ocultamiento de información como atributo de la modularidad efectiva y el de independencia de los módulos. El concepto de ocultamiento de información menciona que se deben especificarse y diseñarse módulos, de forma que la información (algoritmos y datos) contenida en un módulo sea inaccesible para los que no necesiten de ella y que intercambien sólo aquella información necesaria para lograr la función del software; el concepto de independencia de los módulos es el resultado directo del ocultamiento de información ya que trata de evitar la interacción excesiva entre módulos.

8.11. ¿Cómo se relacionan los conceptos de acoplamiento y portabilidad del software? Dé ejemplos que apoyen su punto de vista. 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. b) una resolución en forma iterativa de las raíces de una ecuación trascendente. c) un algoritmo de programación de tareas simples para un sistema operativo. 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. Control. ¿Cómo se administra el control dentro de la arquitectura? ¿Existe una jerarquía decontrol distinta? 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. El motor de Servicios de automatización de Word. No existe una jerarquía de control distinta. Se comunican mediante sub sistemas que intercambian la información de las acciones que se quieren realizar y el flujo de datos es continuo

8.14. ¿”Rediseñar” significa que se modifica todo el diseño en forma iterativa? Si no es así, ¿qué significa? 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. 



 

Elementos del Diseño de datos: El diseño de datos se encarga de modelar las estructuras de datos que se necesitan para dar soporte al software. Propiamente se creen las bases de datos y las relaciones entre las tablas. Elementos del Diseño arquitectónico: Tiene su origen en las especificaciones y requerimientos obtenidos en el análisis, se trata de organizar las funciones que el sistema debe incorporar para cumplir con los requisitos que se han solicitado, asimismo debe mostrar las relaciones entre el sistema, los subsistemas y las interacciones con otros sistemas. Elemento de Diseño de la interfaz: Describe la forma como el sistema interactuar con el usuario más que la apariencia del sistema. Elemento de Diseño a nivel de componente: Es una descripción procedimental de cada una de las partes que fueron especificadas en el diseño arquitectónico.

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: El uso de la arquitectura establecido para el desarrollo de un edificio y un software se caracterizan por lo siguiente:       

Arquitectura en disciplina de un Edificio o casa Arquitectura en disciplina de desarrollo de software se debe de trabajar con múltiples participantes, para tener varios puntos de vista presentes. Necesitan una compresión clara y notable de los aspectos de cada punto de vista diferente por cada uno de los participantes. Su principal preocupación es garantizar un producto estético y rentable. Garantizar que las necesidades satisfagan la necesidades de los negocios Tener los lineamientos claros y decisivos para proceder con el diseño del software. Y realización de seguimiento a procesos realizados en el desarrollo.



 

Implementación de planos que especifiquen las dimensiones del proyecto; mecanismo de levantamiento de requisitos, enfoque de requisito de evaluación de requisitos de calidad. Se realizará una descripción detallada de los actores presentes en el desarrollo. El arquitecto debe desarrollar una descripción acerca de las perspectivas que tendrá el edificio hacia las necesidades del cliente.

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: 

Arquitectura centrada en datos:

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 TDX: Tesis Doctorals en Xarxa:es un repositorio manejado en España especialmente utilizado para el almacenamiento de tesis doctorales leídas de la universidad de Cataluña y otras comunidades autónomas.



Arquitectura por capas:

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. 

Arquitecturas de flujo de datos:

Sistemas operativos basados en unix en el manejo de archivos, en la ejecución de comandos para concatenar textos ya que el proceso que realiza este, es recibir una entrada por medio de comandos, donde por consiguiente realiza un procesamiento y por último tiene una salida que es un archivo con un formato en específico. 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.



Arquitecturas orientadas a objetos: - hacer diseños en Revista, ya que permite realizar un entorno para coordinar los datos y tareas necesarias para la construcción de edificaciones de alta calidad, este permite la creación de planos a los cuales se pueden determinar cómo objetos que se le puedan dar todas las características que se le han dado.

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? Arquitecturas centradas en los datos. En el centro de esta arquitectura se halla un almacenamiento de datos (como un archivo o base de datos) al que acceden con frecuencia otros componentes que actualizan, agregan, eliminan o modifican los datos de cierto modo dentro del almacenamiento. La figura 9.1 ilustra un estilo común centrado en datos. El software cliente accede a un repositorio (depósito) central. En ciertos casos éste es pasivo. Es decir, el software cliente accede a los datos en forma independiente de cualesquiera cambios que éstos sufran o de las acciones del software de otro cliente. Una variante de este enfoque transforma el depósito en un “pizarrón” que envía notificaciones al software cliente cuando hay un cambio en datos de interés del cliente

9.4. Los términos estilo arquitectónico, patrón arquitectónico y marco (que no se estudia en este libro) surgen con frecuencia en los análisis de la arquitectura del software. Investigue y describa en qué difiere cada uno de ellos de los demás. 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. Los estilos arquitectónicos sirven para:   

Sintetizar estructuras de soluciones Pocos estilos encapsulan una enorme variedad de configuraciones concretas. Definen los patrones posibles de las aplicaciones



Permiten evaluar arquitecturas alternativas con ventajas y desventajas conocidas ante diferentes conjuntos de requerimientos no funcionales.

Patrón arquitectónico: Es la solución general y reutilizable a un problema común en la arquitectura de software dentro de un contexto dado. Los patrones arquitectónicos son similares al patrón de diseño de software, pero tiene un alcance más amplio. Entre los patrones arquitectónicos más comunes se encuentran:          

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: Definen una arquitectura adaptada a las particularidades de un determinado dominio de aplicación. Definiendo de forma abstracta una serie de componentes y sus interfaces estableciendo las reglas y mecanismos de interacción entre ellos. Suele incluirse la implementación de algunos de los componentes e incluso varias implementaciones alternativas. Ejem:   

El usuario, selecciona, instancia y reutiliza los componentes del marco. Completa la arquitectura con nuevos componentes específicos dentro de las relaciones estructurales del marco. Básicamente se presentan como un diseño reutilizable de todo o parte de un sistema, representado por un conjunto de componentes abstractos y la forma en que los componentes interactúan.

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. Para el siguiente ejemplo escogeremos la aplicación de WhatsApp app

CONTROL: 





 

Para el control dentro de la arquitectura el sistema emplea una serie de validación al momento de enviar un mensaje o de hacer una llamada, registra que el usuario emisor tenga acceso a internet o, si el mensaje va a ser instantáneo y si no lo almacena para que inmediatamente la tenga pueda ser enviado su receptor por la tanto hay una arquitectura de control de envío y recepción de información donde si no se cumple una condición no se ejecuta la siguiente, y esto funciona en las dos direcciones. Los participantes son los dispositivos móviles que ejecutan la app y los usuarios. Los componentes llegan a ser los validador es de la aplicación cuando se va a enviar un mensaje, ejerciendo control para que se validen distintas normas o requisitos para la comunicación. En una jerarquía los servidores capturan el mensaje y los guardan en memoria caché mientras de válida si existe o no conexión a internet y posteriormente se envía. El receptor debe de igual manera contar con conexión a internet para poder decepcionar el mensaje y de esa manera es entregado satisfactoriamente. A medida que el mensaje va avanzando hacia su destino el rol de control de va pasando de un servidor a otro hasta que se completa la tarea final de llevar el mensaje a si destino. Se ejecuta en forma de cascada ya que se válida que cada paso cumpla con lo requerido para continuar al siguiente. Todos los componentes están debidamente sincronizados para que exista integridad y la información no se desintegre en el proceso de envío y recepción y para que toda la validación se ejecute de la manera correcta.

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.









Obtención de los requerimientos y restricciones, y descripción del ambiente: en primer lugar, se organiza la interacción que se presenta entre los actores, arquitectos y equipo de evaluación para entender mejor la generación de la información. El proceso de evaluación genera todo lo referente a la documentación arquitectónica. Se disminuyen los gastos los cuales dan viabilidad al proyecto. Descripción de los estilos o patrones de arquitectura elegidos para abordar los escenarios y requerimientos: Trade-off sensibilización para generar productos de calidad. Discusión del escenario a explorar para la obtención de información. Realización de lista de cuestiones u opciones que no habían contemplado aún dentro del desarrollo del proyecto. Evaluación de los atributos de calidad, considerando cada atributo por separado: Descripción de las Vistas de Arquitectura y estilos: la arquitectura se presenta en la medida, especificando cada detalle cómo se hace actualmente. Durante este paso, el arquitecto también identifica la calidad y los planteamientos arquitectónicos específicos (atributos y estilos) Identificación de la sensibilidad de los atributos de calidad de varios atributos arquitectónicos para un estilo de arquitectura específico: Identificación de Riesgos / Sensibilidad / soluciones de compromiso: como resultado de la asignación de escenarios y el análisis subsiguiente, los grupos de riesgos, los puntos de sensibilidad, y las compensaciones quedan documentados.

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.

DIAGRAMA DE FLUJO PARA EL MANTENIMIENTO CORRECTIVO DE UN COMPUTADOR