Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Así, los programadores, diseñadores, ingenieros y analistas pueden trabajar bajo una línea
común que les posibilite la compatibilidad necesaria para lograr el objetivo deseado.
Estas Arquitecturas están definidas muchas veces por el tipo de tecnología a la cual se
enfrenta un programador o grupo de programadores, por lo cual algunos tipos de
arquitectura son más recomendables que otras para ciertas tecnologías.
Cada tarea de computación es asignada a una computadora, por lo cual una Arquitectura
determinada debe ser implementada físicamente y definir de forma abstracta los
componentes que tomarán arte en las tareas y sus interfaces comunicativas.
Todo esto se desarrolla a "alto nivel", ensamblando elementos para lograr la mayor
funcionalidad posible siendo a la vez portable, logrando disponibilidad, escalabilidad y
confiabilidad.
Como ejemplos de Arquitecturas podemos citar las monolíticas (los grupos funcionales del
software están altamente acoplados entre sí), cliente-servidor (se reparte la carga de
cómputo en dos partes independientes), y la arquitectura de tres niveles (la carga se divide
entre tres partes: presentación, cálculo y almacenamiento).
Estilo de la arquitectura
Para que la arquitectura de Software sea posible, es necesario tener en cuenta una serie de
aspectos sin los cuales, no sería posible.
Usuario final. No solo es una meta a la que se tiene que llegar, y para el cual
queremos adaptar el producto, sino que el usuario final en sí, es intuitivo y exigente.
Por lo tanto debemos presentarle un producto fiable, funcional, de fácil uso, con un
buen rendimiento y seguro.
El administrador del sistema. Deberá estar alerta, velando por el comportamiento
intuitivo y la buena administración. Así como de controlar las herramientas que nos
ayudan a sostenerlo.
El vendedor. Tiene que ser consciente en todo momento de cómo se encuentra la
competencia, saber qué es lo que quieren los usuarios, que productos se venden
mejor, cuales son los costes del producto, o cuales son las tendencias.
El cliente. Preocupado en todo momento por su producto, por si será estable, cual
será el coste final y si se cumplirá el calendario de entrega.
El desarrollador. Estará atento a que todos los requisitos se cumplan y que el
diseño sea simple y coherente.
El project Manager. Consciente del presupuesto, los recursos, el coste y el timing
de entrega, su misión es conseguir que todo se cumpla. Para eso, coordina a los
desarrolladores y hace de intermediario con el cliente.
The maintainer. Se preocupa por finalizar el proyecto con contenidos coherentes y
comprensibles. Documenta el diseño para que sea más sencilla su ejecución y que
futuras modificaciones sean más factibles.
Por eso en Apiumhub contamos con ecosistemas de trabajo, guiados por la arquitectura
web, de forma que nuestros proyectos tengan unos resultados más positivos, por menor
coste.
Esperemos que el artículo “importancia de la arquitectura de software” te haya servido de
ayuda. Y que tengan mayores conocimientos sobre todo lo que la arquitectura de software
representa.
Considera como vista arquitectónica y del concepto puntos-de-vista que está muy
relacionado con las vistas, lo cual permitirá tener una precisión de los términos aquí
empleados. Luego se hace un análisis de las propuestas más importantes de los modelos de
las vistas en la arquitectura de software, en función de los criterios considerados para
separar los asuntos de interés (concerns) arquitectónicos. Del resultado de este análisis, se
detectan los principales problemas y se presenta la propuesta para su solución que se hace
en esta tesis. Como primer paso para iniciar con la propuesta se definen las bases del
modelo de vistas que aquí se usa, especificando tanto los elementos y relaciones que lo
constituyen. A continuación, se realiza la especificación del modelo para cada una de las
vistas básica aquí consideras, la cual comprende a sus elementos, relaciones y notación
correspondiente.
49pero esto refleja una idea de dependencia más que de separación de elementos diferentes,
puesto que para crear el plano de elevación se requiere tener primero el de planta (el plano
de elevación es en parte una proyección del de planta), siendo que lo que se pretende con
las vistas es no hacerlas tan dependientes una de la otra (aunque estén relacionadas
El punto-de-vista de ingeniería, trata de los temas del soporte del sistema para las
aplicaciones distribuidas, enfocándose a identificar la funcionalidad de la plataforma
distribuida requerida para el soporte del modelo computacional.
Vista arquitectónica: ‘Es una representación de una estructura arquitectónica que está
compuesta por elementos y de las relaciones asociadas con ellos, dicha estructura
representa al sistema completo y es formada desde la perspectiva de un conjunto de
concerns relacionados que involucra a los actores del sistema’. Una estructura es tomada
aquí como: ‘el conjunto deelementos por sí mismos, tal como ellos existen en el software’
(Clements et al., 2003, pag. 35). Una estructura arquitectónica precisa que el conjunto de
estos elementos de software, corresponde sólo a los que se toman en cuenta en el nivel
arquitectónico, y no a los que están en todos los demás niveles del software.
56el diseño del software. Uno de los medios para llevar a cabo esta separación en varias
dimensiones, es a través de la descomposición del sistema en estructuras que representan
las vistas, pues como se cita en (Courtois, 1985) ‘...la descomposición de un sistema en
estructuras es esencial para un entendimiento del sistema con muchos niveles, y para
resolver los problemas que surgen durante su análisis.
Diseño de software
Ingeniería de requerimientos
Generalmente, cliente y contratista analizan primero los requerimientos que resultan, desde
el punto de vista del cliente, para el software a diseñar. En este contexto, el cliente prepara
el así llamado pliego de condiciones.
Realización
En su estudio anual Trends View sobre los aprendizajes tecnológicos que nos dejó 2017, la
consultora The Cocktail analiza las tendencias que siguen las empresas en su relación con
el consumidor y las nuevas tecnologías a las que los clientes estamos expuestos. La
conclusión es que estamos funcionando a dos velocidades: mientras que las compañías
apuestan por la innovación, la experiencia del cliente y gran cantidad de información y
contenidos, los usuarios aún arrastramos desconfianzas del pasado. The Cocktail resume la
situación tecnológica actual en varios puntos:
Cuidado con lo colaborativo. The Cocktail advierte: "Si en años pasados la economía
colaborativa se presentaba (y era aceptada) como un espacio desintermediado en el que los
ciudadanos intercambiaban de forma autónoma, en 2017 esta percepción se modifica: se
empiezan a sentir los efectos secundarios de la desregulación y se identifican grandes
intereses corporativos detrás de estas plataformas". Buen ejemplo de ello son las protestas
de los conductores de Deliveroo o las asociaciones creadas contra Airbnb y los pisos
turísticos de alquiler.
Adiós al 'early adopter'. La tecnología ya no es solo para jóvenes o expertos. Todos somos
clientes potenciales de las grandes innovaciones del momento. El asistente de voz Alexa
cuenta ya con decenas de millones de usuarios en Estados Unidos con dos años de vida y en
España, Netflix llegó a mediados de 2016 y ya cuenta con más de 1.100.000 de usuarios.
Unidad: II REQUERIMIENTOS FUNCIONALES
-Información: el producto proporciona medios para que los testers puedan aprender
delmismolo que necesiten para realizar su tarea.-Auditoría: ¿pueden el producto y sus
derivadosser validados?
Para ello la ISO-9126 define bastante bien unas caracteristicas que yo nombro como
singularidades que suena mas a Fisica.
Funcionalidad
Singularidad que permite calificar si un software maneja de forma adecuada las funciones
que satisfagan las necesidades para las cuales fue diseñado.
Atributos
Adecuación: Permite medir si el software cuenta con las funciones apropiadas para
efectuar las tareas que fueron especificadas en su diseño.
Interoperabilidad: Permite medir la habilidad del software para interactuar con otros
sistemas específicos.
Confiabilidad
Atributos
Usabilidad
Singularidad que permite calificar el esfuerzo necesario que requiere el usuario para utilizar
el software.
Atributos
Eficiencia
Atributos
Mantenibilidad
Singularidad que permite calificar el esfuerzo necesario que se requiere para realizar
modificaciones al software, ya sea por corrección de errores o por el incremento de
funcionalidad.
Atributos
Portabilidad
Singularidad que permite calificar la habilidad que tiene el software para ser trasladado de
un entorno a otro.
Atributos
Adaptabilidad: Permite medir la oportunidad que tiene el software para ser adaptado
a diferentes entornos especificados sin la aplicación de modificaciones o medios
provistos para este propósito.
ESTILOS ARQUITECTÓNICO
SORGANIZACIONES POR TIPOS DE DATOS ABSTRACTOS Y O-OLa representación
de los datos y sus operaciones primitivas seencapsulan en Tipos de Datos Abstractos
(TDA) u objetos.• Los componentes son objetos (o instancias de tipos de datos abstractos).
Los objetos son ejemplos de un tipo de componente llamado manejador porque es el
responsable de preservar la integridad de un recurso• Los objetos interactúan a través de
invocaciones a funciones y procedimientos.• La implementación de las funciones y
procedimientos está oculta para el objeto cliente, lo cual permite hacer las modificaciones
fácilmente.• Para hacer uso de un servicio se hace necesario conocer la identidad del objeto;
al hacer un cambio en un objeto es necesario modificar todos los objetos que lo invocan.
ESTILOS ARQUITECTÓNICOS
BASADOS EN EVENTOS, INVOCACIÓN IMPLÍCITAEn el estilo anterior, la interfaz de
los componentes (objetos)cuentan con una colección de procedimientos y funciones, y
laintegración entre ellos se logra a través de la invocación explícitade éstos. En este estilo,
se considera una técnica de integraciónconocida como invocación implícita.• Los
componentes son módulos cuyas interfaces proveen una colección de procedimientos y un
conjunto de eventos. Los procedimientos se llaman de la manera usual pero el componente
también puede activar algunos de sus procedimientos con los eventos del sistema. Esto hará
que estos procedimientos sean invocados cuando los eventos ocurren en tiempo de
ejecución.• Los generadores de eventos no saben cuales componentes se afectarán por el
evento. Ejemplos de este estilo son los sistemas de gestión de bases de datos cuando
aseguran la consistencia de los datos, las aplicaciones con interfaces de usuarios al separar
la representación de los datos de las aplicaciones que las gerencia.
ESTILOS ARQUITECTÓNICOS
SISTEMAS EN CAPAS
Están organizados jerárquicamente; cada capa le presta serviciosa la capa superior y es
cliente de la capa inferior. • Los componentes implementan un máquina virtual en alguna
capa dela jerarquía. • Los conectores están definidos en los protocolos que determinan
cómo las capas interactúan. • Los ejemplos más conocidos de este estilo arquitectural son
los protocolos de comunicación.
ESTILOS ARQUITECTÓNICOS
REPOSITORIOS
Consta de dos (2) tipos de componentes: una estructura central de datosque refleja el estado
actual y una colección independiente de compo-nentes que operan sobre el almacén
central.• Las interacciones entre los componentes pueden variar significativamente. El tipo
de control seleccionado puede llevar a dos categorías:– Si el tipo de transacción es una
entrada que dispara la selección del proceso a ejecutarse, se está hablando de las
tradicionales bases de datos.– Si el estado actual de la estructura central de datos es el
principal activador de los procesos a ejecutarse, se habla de un estilo de repositorio tipo
pizarrón (blackboard). Son muy utilizados para aplicaciones que requieren interpretaciones
complejas de procesamiento de señales, tales como reconocimiento del habla y de patrones.
STILOS ARQUITECTÓNICOS
INTÉRPRETES
En una organización intérprete, una máquina virtual es produce-da en software. Un
intérprete incluye el pseudoprograma inter-pretado y la máquina de interpretación misma. •
Los intérpretes son a menudo usados para construir maquinas virtuales que enlazan la
máquina de computación esperada por la semántica y la máquina de computación
disponible en el hardware.