Sei sulla pagina 1di 5

Arquitectura del Software

1-Definiciones mas importantes de Arquitectura del Software.


Arquitctura del software: Una arquitectura de software, también denominada arquitectura lógica,
consiste en un conjunto de patrones y abstracciones coherentes que proporcionan un marco definido y
claro para interactuar con el código fuente del software. En este se se selecciona y diseña con base en
objetivos (requisitos) y restricciones.

Arquitctura del software: puede ser vista como la estructura del sistema en funcion de las definiciones
de los componentes y sus interesaciones.

Arquitctura del software: define de manera abstracta, los componentes que llevan a cabo alguna tarea
de computacion,sus interfaces y la comunicacion entre ellos.

2-Importancia y elementos que la componen.


Es de suma importancia ya nos permite entender la complejidad de los sistemas para su previo
desarrollo ya que los Sistemas de software crecen de forma tal que resulta muy complicado que sean
diseñados, especificados y entendidos por un solo individuo. Uno de los aspectos que motivan el estudio
en este campo es el factor humano, en términos de aspectos como inspecciones de diseño,
comunicación a alto nivel entre los miembros del equipo de desarrollo, reutilización de componentes y
comparación a alto nivel de diseños alternativos.

Se distinguen tres tipos de componentes (Perry y Wolf, 1992), denominadostambién elementos, que
son:

· Elementos de Datos: contienen la información que será transformada.

· Elementos de Proceso: transforman los elementos de datos.

· Elementos de Conexión: llamados también conectores, que bien pueden ser elementos de
datos o de proceso, y mantienen unidas las diferentes piezas de la arquitectura.

Una relación es la conexión entre los componentes (Buschman et al., 1996). Puede definirse también
como una abstracción de la forma en que los componentes interactúan en el sistema a través de los
elementos de conexión. Es importante distinguir que una relación se concreta mediante conectores.

Entre otros elementos de la Arquitectura del Sotfware se encuentran:

· Clientes y servidores.

· Niveles de sistemas jerarquico.

· Bases de datos.
· Filtros.

En relacion a todos estos elementos se pueden fijar : guiones de uso críticos, clases principales,
mecanismos comunes, entre otros, en oposición a todos los elementos presentes en el modelo.

*Guiones de uso críticos: Este artefacto define un conjunto de instancias de guión de uso, donde cada
instancia es una secuencia de acciones que lleva a cabo un sistema que producen un resultado
observable de valor para un actor concreto.

· Clases de producto de trabajo: Elemento de modelo

· Amplía: Requisito de software

El objetivo principal del guión de uso es capturar el comportamiento del sistema necesario desde la
perspectiva del usuario final para alcanzar uno o más objetivos deseados. Los guiones de uso se utilizan
para muchos roles diferentes para muchos objetivos, que incluyen:

· Por clientes para describir, o como mínimo para aprobar, la descripción del comportamiento del
sistema.

· Por usuarios potenciales para comprender el comportamiento del sistema.

· Por arquitectos de software para identificar las funcionalidades arquitectónicamente


significativas.

· Por personas que analizan, diseñan e implementan el sistema para comprender el


comportamiento del sistema necesario y para perfeccionar la definición del sistema.

· Por diseñadores para identificar clases de los flujos de sucesos de los guiones de uso.

· Por verificadores como base desde la cual se identifica un subconjunto de los guiones de prueba
necesarios.

· Por gestores para planear y valorar el trabajo para cada iteración.

· Por escritores de documentación para comprender el comportamiento del sistema desde la


perspectiva de la secuencia de uso que debe describirse en la documentación (como el manual
de usuario del sistema).

Clases principales: Este producto de trabajo es una descripción de un conjunto de objetos que
comparten las mismas responsabilidades, relaciones, operaciones, atributos y semánticas.

· Clases de producto de trabajo: Elemento de modelo


Las personas siguientes utilizan las clases:

· Implementadores de una especificación cuando implementan las clases.

· Diseñadores de otros componentes del sistema para comprender cómo se puede utilizar su
funcionalidad, y qué significan sus relaciones.

· Diseñadores de guión de uso, para crear una instancia en las ejecuciones del guión de uso.

· Quiénes diseñan la versión siguiente del sistema para comprender la funcionalidad del modelo
de diseño.

· Quiénes prueban las clases para planificar las actividades de prueba.

3-Especificaciones. Vistas Arquitectonicas.


De acuerdo al nivel de responsabilidad dentro del desarrollo de un sistema y la relación que se
establezca con el mismo, son muchas las partes involucradas e interesadas en la arquitectura de
software (Kruchten, 1999), a saber:

· El analista del sistema, quien la utiliza para organizar y expresar claramente los requerimientos y
entender las restricciones de tecnología y los riesgos.

· Usuarios finales y clientes, que necesitan conocer el sistema que están adquiriendo.

· El gerente de proyecto, que la utiliza para organizar el equipo y planificar el desarrollo.

· Los diseñadores, que lo utilizan para entender los principios subyacentes y localizar los límites
de su propio diseño.

· Otras organizaciones desarrolladoras (si el sistema es abierto), que la utilizan para entender
cómo interactuar con el sistema.

· Las compañías subcontratadas, que la utilizan para entender los límites de su sección de
desarrollo.

· Los arquitectos, quienes velan por la evolución del sistema y la reutilización de componentes.

Hemos decidido representar la arquitectura de software en varias vistas de la arquitectura. Cada vista de
la arquitectura trata un conjunto concreto de problemas, específico de interesados en el proceso de
desarrollo: usuarios, diseñadores, gestores, ingenieros de sistemas, mantenedores, etc. Existen al menos
tres vistas absolutamente fundamentales en cualquier arquitectura:

La visión estática: describe qué componentes tiene la arquitectura.


La visión funcional: describe qué hace cada componente.

La visión dinámica: describe cómo se comportan los componentes a lo largo del tiempo y como
interactúan entre sí.

4-Niveles de Diseño de Software.


Diseño arquitectónico - El Diseño arquitectónico, es la versión más abstracta del sistema. Identifica el
software como un sistema con distintos componentes que interactuan entre ellos. En este momento es
cuando los diseñadores conciben la idea de posibles solucionesde dominio.

Diseño de alto nivel- El Diseño de alto nivel, rompe con el concepto de diseño arquitectónico que se
refiere a ‘Componente de única entidad múltiple', por lo contrario tiene un punto de vista menos
abstracto de los sub sistemas y módulos y representa la existente interacción entre ellos. El Diseño de
alto nivel se centra en cómo el sistema junto con todos sus componentes se puede implementar en
forma de módulos. Reconoce estructuras modulares de cada sub sistema y su relación e interaccion
entre las mismas.

Diseño detallado- El Diseño detallado diseña acuerdos con la parte de implementación de lo que se ve
como sistema y sus sub sistemas con los dos tipos de diseño mencionados con anterioridad. Es más
detallado en cuanto a los módulos y a su implementación. Define estructuras lógicas de cada módulo y
de sus interfaces para comunicarse con los otros módulos.

5-Estado Actual de la Tecnologia.


Actualmente estamos viviendo una gran revolución de la información sin darnos cuenta y sin conocer
totalmente la tecnología que nos rodea. Nuevos cambios hacen que tengamos que actualizarnos
constantemente en conocimientos relacionados con las nuevas tecnologías

Las personas, tanto las que están estudiando como las que ya han finalizado su etapa de aprendizaje,
tenemos la obligación de conocer cada vez más sobre el funcionamiento de las nuevas tecnologías. ¿Por
qué?, realmente si queremos competir en un futuro en un mercado laboral como en el que nos
encontramos hoy en día es fundamental estar actualizado.

Tenemos, es más, necesitamos, desarrollar nuevas capacidades para poder "competir" en el mercado
laboral, ademas de aprender a manejar diferentes equipos tecnológicos ya que estos forman parte de
nuestra vida cotidiana.

Las nuevas tecnologías, relacionadas con nuestro entorno, están agilizando, optimizando y
perfeccionando algunas actividades que realizamos en nuestro día a día. La comunicación en la
actualidad es algo que ha avanzado mucho, una comunicación que es mucho más rápida que antes. Un
ejemplo de comunicación actual, en concreto a través de Internet, en el caso de transmitir mensajes,
imágenes, vídeos y todo tipo de documentos desde diferentes partes del mundo durante las 24 horas del
día es algo que ha desplazado definitivamente el envío de documentos por otros medios, como el
servicio postal convencional.
La inteligencia artificial, el aprendizaje automático y el diseño generativo han comenzado a dar forma a
la arquitectura tal como la conocemos. Como sistemas y herramientas para reimaginar el entorno
construido, presentan diversas oportunidades para repensar los flujos de trabajo tradicionales. Los
diseñadores también temen que puedan afectar inversamente la práctica, limitando los servicios del
arquitecto. Buscando nuevas tecnologías, las nuevas compañías están creando softwares y proyectos
para explorar el futuro del diseño.

Asi tambien tomando en cuenta que a medida que las ciudades continúan desarrollándose, surgen
nuevas herramientas para cambiar la forma en que arquitectos, contratistas y consumidores visualizan y
crean el entorno construido. Los datos y códigos de construcción son cada vez más accesibles y, a su vez,
han comenzado a llegar a un punto en el que los propietarios y desarrolladores pueden ingresar un
conjunto de información y se produce un diseño optimizado. Una startup ha llegado tan lejos como para
decir que pueden "darle la casa que desea sin contratar a un arquitecto". Entonces, ¿en qué situación
estamos ahora?

Por ahora, los arquitectos están definiendo objetivos y parámetros de diseño, mientras que la
inteligencia artificial y los algoritmos de aprendizaje automático producen opciones para su
consideración. A estos aun les falta considerar más variables, pero cada vez están más avanzados. Al
trabajar con patrones funcionales y de programación, el aprendizaje automático puede extenderse a
patrones socioeconómicos, estéticos e ideológicos. Como un punto de inflexión en la historia de la
arquitectura, los avances en el diseño de la IA y el aprendizaje automático han comenzado a impactar
profundamente la forma en que configuramos el entorno construido. Los siguientes artículos exploran
estas ideas y las nuevas tendencias de construtech.

Pequeña Conclucion
La arquitectura de software puede considerarse entonces como el “puente” entre los requerimientos
del sistema y la implementación . Las actividades que culminan en la definición de la arquitectura
pueden ubicarse en las fases tempranas del ciclo de desarrollo del sistema: luego del análisis de los
requerimientos y el análisis de riesgos, y justo antes del diseño detallado. Desde esta perspectiva, la
arquitectura constituye un artefacto de la actividad de diseño , que servirá de medio de comunicación
entre los miembros del equipo de desarrollo, los clientes y usuarios finales, dado que contempla los
aspectos que interesan a cada uno. Además, pasa a ser la base del diseño del sistema a desarrollar,
razón por la cual en la literatura la arquitectura es considerada como plan de diseño del sistema ,
debido a que es usada como guía para el resto de las tareas del desarrollo. Todo esto sumado que el
avanze tecnologico es cada vez de mas ayuda para estos procesos,se desarrollan mejores entornos de
trabajos y metodologias para alcanzar dicho fin,es decir la arquitectura del software crece de la mano
de los avanzes tecnologicos.

Potrebbero piacerti anche