Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Arquiecturas de SW

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 8

PRACTICA DE LABORATORIO No.

Documento presentado a:
Ingeniero Wilson Libardo Pantoja Yépez
En la materia, Laboratorio de Ingeniería de Software II

Presentado por:
Jhayber Esneider Melo Estrella
Oscar Yovany Chauza Narváez

Universidad del Cauca


Facultad de Ingeniería Electrónica y Telecomunicaciones
Programa de Ingeniería de Sistemas
Popayán, septiembre de 2019
1. ¿Qué es una arquitectura de software?
El término de arquitectura en un contexto global hace referencia a la técnica de proyectar y
construir algo nuevo a través de un proceso colaborativo. En la ingeniería de sistemas, el término
arquitectura de software hace referencia a un conjunto de patrones los cuales proporcionan una
base para guiar la construcción de un software, permitiendo así a programadores, analistas y
todo el conjunto de desarrolladores compartir una misma línea de trabajo además de poder
cumplir con los requerimientos de una aplicación.
La arquitectura de software se la puede considerar

2. ¿Cuál es el papel de un arquitecto de software?

Un arquitecto de software es el responsable de la definición y diseño de la arquitectura que tendrá


el sistema que se quiere desarrollar. Algunas de las funciones de un arquitecto de software son:
● Definir la arquitectura del sistema, tomando decisiones de diseño de alto nivel y
estableciendo estándares técnicos, incluyendo plataformas, herramientas y estándares
de programación, teniendo en cuenta los requisitos funcionales, no funcionales y las
necesidades del negocio.
Todo arquitecto de software debe contar con las siguientes características:
● Experiencia: Debe tener una experiencia muy amplia en el dominio del problema, a
través de una comprensión precisa de los requisitos, y el dominio de ingeniería de
software.
● Liderazgo: Para dirigir el esfuerzo técnico entre los diferentes equipos, y para tomar
decisiones críticas bajo presión y adherirse a estas decisiones. Para ser efectivos, el
arquitecto de software y el gestor de proyectos deben trabajar conjuntamente, con el
arquitecto de software dirigiendo las cuestiones técnicas y el gestor de proyectos
dirigiendo las cuestiones administrativas. El arquitecto de software debe tener autoridad
para tomar decisiones técnicas.
● Comunicación: Para ganar confianza, persuadir, motivar y orientar. El arquitecto de
software no puede dirigir por decreto, sólo con el consentimiento del resto del proyecto.
Para ser efectivos, el arquitecto de software debe ganar el respeto del equipo de proyecto,
el gestor del proyecto, el cliente y la comunidad de usuarios, así como del equipo de
gestión.
● Orientación a objetivos y proactividad centrándose exclusivamente en los resultados.
El arquitecto de software es la fuerza técnica dirigente detrás del proyecto, no un
visionario o un soñador. La carrera de un arquitecto de software con éxito es una larga
serie de decisiones sub-óptimas efectuadas en momentos de incertidumbre y bajo
presión. Sólo quienes puedan centrarse en lo que se debe hacer tendrán éxito en este
entorno del proyecto.

Imagen 1

3. Estilos Arquitectónicos
Tuberías y filtros
Es el estilo que se definió más temprano y el que puede identificarse topológica, procesual y
taxonómicamente con menor ambigüedad.
Ha prevalecido el nombre de tubería-filtros por más que se sabe muy bien que los llamados filtros
no realizan forzosamente tareas de filtrado, como ser eliminación de campos o
registros, sino que ejecutan formas variables de transformación, una de las cuales puede ser el
filtrado.
Una tubería (pipeline) es una arquitectura que conecta componentes computacionales (filtros) a
través de los conectores (pipes) y las comunicaciones se ejecutan como un flujo. Los datos se
transportan a través de las tuberías entre los filtros, transformando gradualmente las entradas en
salidas.
El sistema tubería-filtros se percibe como una serie de transformaciones sobre sucesivas piezas
de los datos de entrada. Los datos entran al sistema y fluyen a través de los componentes.
La aplicación típica del estilo es un procesamiento clásico de datos: el cliente hace un
requerimiento; el requerimiento se valida; un Web Service toma el objeto de la base de datos; se
lo convierte a HTML; se efectúa la representación en pantalla. El estilo tubería-filtros propiamente
dicho enfatiza la transformación incremental de los datos por sucesivos componentes. El caso
típico es la familia UNIX de Sistemas operativos, pero hay otros ejemplos como la secuencia de
procesos de los compiladores (sobre todo los más antiguos), el tratamiento de documentos XML
como ráfaga en SAX.
Modelo Vista Controlador (MVC)
Modelo Vista Controlador (MVC) es un estilo de arquitectura de software usado principalmente
en aplicaciones que manejan gran cantidad de datos y transacciones complejas donde se
requiere una mejor separación de conceptos para que el desarrollo esté estructurado de una
mejor manera, para ello se separa los datos de una aplicación, la interfaz de usuario, y la lógica
de control en tres componentes distintos.
Se trata de un modelo muy maduro y que ha demostrado su validez a lo largo de los años en
todo tipo de aplicaciones, y sobre multitud de lenguajes y plataformas de desarrollo.

● El Modelo que contiene una representación de los datos que maneja el sistema, su lógica
de negocio, y sus mecanismos de persistencia.
● La Vista, o interfaz de usuario, que compone la información que se envía al cliente y los
mecanismos interacción con éste.
● El Controlador, que actúa como intermediario entre el Modelo y la Vista, gestionando el
flujo de información entre ellos y las transformaciones para adaptar los datos a las
necesidades de cada uno.

El modelo se encarga de:

● Acceder a la capa de almacenamiento de datos. Lo ideal es que el modelo sea


independiente del sistema de almacenamiento.
● Define las reglas de negocio (la funcionalidad del sistema). Un ejemplo de regla puede
ser: "Si la mercancía pedida no está en el almacén, consultar el tiempo de entrega
estándar del proveedor".
● Lleva un registro de las vistas y controladores del sistema.
● Si estamos ante un modelo activo, notificará a las vistas los cambios que en los datos
pueda producir un agente externo (por ejemplo, un fichero por lotes que actualiza los
datos, un temporizador que desencadena una inserción, etc.).

El controlador es responsable de:

● Recibe los eventos de entrada (un clic, un cambio en un campo de texto, etc.).
● Contiene reglas de gestión de eventos, del tipo "SI Evento Z, entonces Acción W". Estas
acciones pueden suponer peticiones al modelo o a las vistas. Una de estas peticiones a
las vistas puede ser una llamada al método "Actualizar()". Una petición al modelo puede
ser "Obtener_tiempo_de_entrega ( nueva_orden_de_venta )".

Las vistas se encargan de: Recibir datos del modelo y los muestra al usuario.

● Tienen un registro de su controlador asociado (normalmente porque además lo instancia).


● Pueden dar el servicio de "Actualización()", para que sea invocado por el controlador o
por el modelo (cuando es un modelo activo que informa de los cambios en los datos
producidos por otros agentes).

Arquitectura Tuberías y Filtros Modelo Vista Controlador


● La implementación se realiza de forma
modular, lo que logra separar los
datos, de su representación visual.
● Sus vistas muestran información
actualizada.
● Permite que el sistema sea escalable
● Simple de entender e
si es requerido.
implementar.
● Facilita el manejo de errores
● Facilidad de
● Es posible agregar múltiples
mantenimiento y mejora.
Ventajas representaciones de los datos.
● Facilidad de diagnóstico.
● Permite crear un software más robusto
● Fuerza un procesamiento
con un ciclo de vida más adecuado.
secuencial.
● Se potencia la facilidad de
● Ejecución concurrente.
mantenimiento, reutilización de código
y separación de conceptos.
● Facilidad para la realización de
pruebas unitarias de los componentes,
así como de aplicar desarrollo guiado
por pruebas.
● Su separación en capas, aumenta la
complejidad del sistema.
● MVC es un patrón de diseño orientado
● Demasiado simplista.
a objetos por lo que su implementación
● No maneja condicionales,
es sumamente costosa y difícil en
bucles y otras lógicas de
lenguajes que no siguen este
control de flujo.
paradigma.
● No apto para situaciones
Desventajas ● MVC requiere la existencia de una
interactivas.
arquitectura inicial sobre la que se
● Problemas de
deben construir clases e interfaces
rendimiento (los datos se
para modificar y comunicar los
transmiten de forma
módulos de una aplicación. Esta
completa).
arquitectura inicial debe incluir, por lo
menos, un mecanismo de eventos
para poder proporcionar las
notificaciones que genera el modelo de
aplicación; una clase Modelo, otra
clase Vista y una clase Controlador
genéricas que realicen todas las tareas
de comunicación, notificación y
actualización que serán luego
transparentes para el desarrollo de la
aplicación.
Cuando se
En aplicaciones que requieran
lo Aplicativos webs
multitarea.
recomienda

4. Según la página del DANE, el censo de población y vivienda realizado en 2018, consistió en
contar y caracterizar las personas residentes en Colombia, así como las viviendas y los hogares
del territorio nacional.
¿Como se realiza?
El censo nacional, abarcó la totalidad del territorio nacional, correspondiente a 32 departamentos,
1.101 municipios, 20 áreas no municipalizadas y el Archipiélago de San Andrés, Providencia y
Santa Catalina. Para esta ocasión los métodos utilizados fueron:
Electrónico: Corresponde a la recolección de información mediante el diligenciamiento del
cuestionario censal a través de la interacción con una aplicación web, directamente por la fuente
primaria.
Barrido: Consiste en realizar un recorrido sistemático de la totalidad de las unidades de
observación asignadas en un área de trabajo, regresando periódicamente al centro operativo
municipal a entregar información y los reportes diarios del personal de censista en campo.
Ruta: Consiste en recoger la información a través del personal de censistas en campo, sobre un
recorrido estructurado a lo largo de un río y sus afluentes; o vías con sus caminos y senderos,
generando un área de influencia en la cual se encuentra localizada la población. Este método se
caracteriza por la permanencia en el área de trabajo del personal de censistas en campo, hasta
la finalización del recorrido.
Mixto: Se refiere a la recolección de la información a través del personal de censistas en campo,
aplicando de manera combinada tanto el método de barrido como de ruta, en municipios
caracterizados por condiciones diferenciales de acceso a los territorios donde se asienta la
población residente en el área rural disperso.
¿Qué información debe arrojar?
A través del censo, el país obtiene datos de primera mano sobre el número de habitantes, su
distribución en el territorio y sus condiciones de vida.
Un censo permite generar información estadística a partir de los datos obtenidos, con lo que
diferentes organismos públicos y privados pueden tomar decisiones de política pública, de
desarrollo económico, bienestar social, empleo, vivienda, salud, migración, entre otros.
¿Qué atributos de calidad debe tener?
Pensamos que algunos de los atributos que debería tener un desarrollo de software de un censo
son:
● La seguridad debe ser uno de los atributos más importantes, ya que se va a tratar la
información de toda la población colombiana,
● Usabilidad, ya que el sistema será utilizado por varias personas las cuales son las
encargadas de realizar el censo a nivel nacional.
● Facilidad de mantenimiento, ya que en un futuro debe poder evolucionar para adaptarse
a nuevas necesidades de un nuevo censo.
● Eficiencia en ejecución, ya que será un sistema en el que interactúan muchos usuarios al
mismo tiempo.
● Tenga integridad, que los resultados que arroje sean correctos con un alto grado de
exactitud.
¿Considera que alguna de las arquitecturas estudiadas sería útil para esta tarea?
Consideramos que la arquitectura Modelo Vista Controlador (MVC) es la más apropiada útil para
esta tarea, ya que conociendo que se deben manejar una gran cantidad de datos esta
arquitectura nos permite tener una mejor organización, separando así las funciones de la
aplicación en modelos, vistas y controladores lo que permite que una aplicación sea ligera. Para
este caso, esta característica nos parece muy importante, ya que como se mencionaba
anteriormente el sistema será utilizado por varias personas al mismo tiempo, ya que el censo se
lleva a cabo en unos días específicos en todo el país. Además, desde el 2018 el DANE
implementó una nueva forma de realizar el censo, a través de eCenso, por lo que el sistema debe
ser soportado en la WEB, y con la arquitectura MVC se podrá trabajar de una forma más rápida.
REFERENCIAS
• https://platzi.com/blog/que-es-arquitectura-de-software/
• https://cgrw01.cgr.go.cr/rup/RUP.es/SmallProjects/core.base_rup/roles/rup_software_ar
chitect_DB0BF177.html
• https://medium.com/@maniakhitoccori/los-10-patrones-comunes-de-arquitectura-de-
software-d8b9047edf0b
• https://si.ua.es/es/documentacion/asp-net-mvc-3/1-dia/modelo-vista-controlador-
mvc.html
• http://carlosreynoso.com.ar/archivos/arquitectura/Estilos.PDF
• http://www.juntadeandalucia.es/servicios/madeja/contenido/recurso/122
• https://www.dane.gov.co/index.php/estadisticas-por-tema/demografia-y-
poblacion/censo-nacional-de-poblacion-y-vivenda-2018

También podría gustarte