En aquellos años donde se conocía muy poco sobre programación el hecho de diseñar un software era muy complicado, pero la llegada de la arquitectura de software nos permitió hacerlo de una manera más sencilla. Aprende en los siguientes párrafos todo acerca la arquitectura de software, tal vez encuentre algo que no sabías¡¡¡
Indice De Contenido
¿Que es arquitectura de software?
Podemos definir de manera sencilla la arquitectura de software como el diseño de estructuras dentro de un sistema. En sí, la arquitectura de software tiene como objetivo lograr desarrollar un Software (un conjunto de programas), apuntando siempre al mayor potencial y nivel que se pueda conseguir.
La razón por la cual es conocido como “arquitectura” radica en su enorme parecido a los planos que suelen ser utilizados por los ingenieros y arquitectos, al momento de crear el diseño de una construcción. En el caso del software, la arquitectura se encarga de; verificar el funcionamiento y la correcta interacción de diversos programas, presentando sus problemas en algoritmos con la intención de conocer las probables fallas y buscar posibles soluciones.
Conoce un poco más
Entre las muchas personas cultas sobre la arquitectura de software, unos de los más interesantes son los ingenieros de software “Mary Shaw y David Garlan”, quienes son considerados como 2 figuras representativas dentro del mundo de la arquitectura de software.
Para la mayoría de personas el diseño de un software es una acción compleja, llena de códigos binarios y algoritmos digitales, pero para David Garlan y Mary Shaw este tipo de diseño va más allá y definen al arquitectura de software en su libro (“An introduction to Software Architecture“) de la siguiente manera:
>más allá de los algoritmos y estructuras de datos de la computación; el diseño y especificación de la estructura global del sistema es un nuevo tipo de problema<
David Garlan y Mary Shaw
Principios fundamentales de la arquitectura de software
Si bien la arquitectura de software que realice cada persona deberían ser diferentes entre sí, existen unos principios fundamentales que los unen y relacionan. Entre los principios más básicos podemos mencionar
- Lógica y coherencia.
- Objetivos y restricciones.
- Representación física.
Lógica y coherencia
Aquellos que ya posean un poco de conocimiento sobre la arquitectura de software, entenderán la razón por la cual es considerada una arquitectura lógica. Al momento de crear una, es necesario la correlación de un conjunto de patrones, los cuales deben estar abstraídos de manera coherente entre sí para que funcionen.
Al poseer dicho conjunto de patrones, estaremos proporcionando un marco claro y definido para el código fuente de nuestro software. En resumidas cuentas, mantiene organizada nuestra arquitectura de software y permite su correcto funcionamiento.
Objetivos y restricciones
En el momento de estemos listos para crear una arquitectura de software deberemos plantearnos 2 cosas de suma importancia; los objetivos que deseamos alcanzar con nuestro sistema, y las restricciones que dificultan el proceso y el funcionamiento del mismo. Para esto debemos tener en cuenta que algunos tipos de arquitectura son buenos para cumplir algunas tareas, mientras que son obsoletos para desarrollar otras
Un ejemplo simple serían las arquitecturas de software de 3 capas (datos comprimidos y separados entre sí), los cuales son pésimos para sistemas que requieran su uso en tiempo real.
Descubre más sobre los diferentes tipos de software aquí: Conoce todo sobre los software de aplicación
- Objetivos: Son las metas finales que debe ser capaz de cumplir nuestra arquitectura de software. En este campo podremos encontrar objetivos dedicados al: Funcionamiento, Mantenimiento, adaptabilidad, Facilidad de uso, Relación con otros sistemas, Seguridad, entre muchos otros más.
- Restricciones: Serán todas aquellas limitaciones o trabas, las cuales pueden dificultar la obtención de los objetivos. Entre las primeras dificultades podemos encontrar: Fallas de software, limitaciones tecnologías, poco conocimiento sobre el tema, hardware defectuoso, entre otros.
Representación física
Una arquitectura de software es explicada de manera abstracta, ya que los procesos son realizados de manera digital y no pueden ser observados más allá de sus códigos y algoritmos. A pesar de ello, no significa que no exista una representación física de lo anterior, ya que cada proceso de software es realizado por una parte del hardware de la computadora (los componentes físicos).
Dichas representación física determina que parte del dispositivo se encargara de realizar cada función en especifico. Dependiendo de que clase de componente se utilice, pueden llegar a cumplir diferentes funciones y a mayor o menor funcionalidad dependiendo de la calidad del componente electrónico.
Aprende más sobre los distintos tipos de componentes electrónicos en: Conoce Distintos Tipos de Componentes Electrónicos
Historia de la Arquitectura de Software
Cuando apenas se comenzaba a conocer lo básico sobre informática y computación los arquitectos de software eran muy escasos. El desarrollo de software era tan complejo que era considerado un arte, ya que la dificultad y las herramientas no facilitaban para nada el proceso.
Los primeros modelos de una arquitectura de software se remontan a los años 1960, a pesar que comenzaban a desarrollarse de manera sumamente discreta, debido que el intereses publico de esa epoca todavía no conocía su potencial. Los encargados de crear dichos prototipos fue un circulo cerrado de investigadores de software, entre los cuales destacaba “Edsger Dijktra”.
Incluso con su precoz comienzo, las arquitecturas de software se vuelven populares a mediados de los años 90, momento en el cual comienza a existir una crisis por la necesidad de los software. Así mismo, con el paso del tiempo fue aumentando aún más su demanda y al día de hoy es algo cada vez más necesario conocer lo básico acerca de programación.
Diagrama de arquitectura de software
Una de las cosas más importantes al momento de realizar una arquitectura de software es su diagrama, el cual nos permite enumerar sus funciones y limitaciones de manera sencilla.
Un diagrama de arquitectura de software es básicamente un organigrama, en el cual se encuentran todos los patrones arquitectónicos de nuestro software. De cierta manera podemos considerarlo un almacén de información y códigos muy bien organizado, el cual le permite a nuestro sistema operar de manera correcta. En estos diagramas solemos dar una descripción directa de todos los complementos y la relación que tienen entre sí, de manera que puedan ser usados con mayor facilidad.
Desarrollo de la arquitectura de software
A continuación puede observar lo principal que necesita para desarrollar una arquitectura de software.
Requerimientos:
Esta etapa de desarrollo esta enfocada especialmente en el análisis, se encargara de; la investigación, documentación y el valor de prioridad sobre los requerimientos de la arquitectura de software que estemos desarrollando. En estos momentos del diseño algo sobre lo cual se debe hacer énfasis son los “atributos de calidad” los cuales son definidos como aquellos componentes que pueden ser más útiles que otros, jugando un papel importante en sus requerimientos.
Otras cosas muy importantes serían los requerimientos funcionales y los requerimientos primarios, gracias a los cuales podremos apreciar cuales son las Restricciones de nuestra arquitectura de software.
Diseño:
Esta etapa es considerada por muchos como la parte principal y más compleja, además que es la que más se relaciona probablemente con su concepto de arquitectura. Una vez investigado en la etapa anterior, aquí nos encargamos de definir toda la estructura que compondrá nuestro software.
Este diseño se crea utilizando unos patrones fijos, todos relacionados para cumplir una función, para ello suelen usarse distintas tácticas de diseño y elegirse diferentes tecnologías que se adapte a tu arquitectura de software. Al momento de hacer el diseño tendremos que tratar de satisfacer todos los requerimientos de puedan influir dentro de nuestra arquitectura, pero tendremos las complicaciones debido a una multitud de restricciones relacionadas con el material que trabajemos.
Documentación:
Cuando logremos culminar nuestra arquitectura de software y esta funcione correctamente pasaremos al punto de documentarla. Dicha documentación es representada por el hecho de “comunicar” a los demás involucrados, para que conozcan nuestro programa y den sus opiniones respeto a sus funciones. En estos momentos la comunicación que podamos presentar será la clave para el éxito, ya que nadie querrá utilizar un programa que sea demasiado difícil o que este mal explicado.
Un consejo muy recomendable para realizar una correcta documentación sería primero realizar un diagrama de arquitectura de software, ya que este nos permite poder ver una visión general sobre prácticamente todo de nuestro software.
Evaluación:
El punto final luego de haber “culminado” nuestra arquitectura de software sería literalmente auto-evaluarla y asegurarnos que todo lo referente a ella funcione a la perfección. Esta evaluación es mucho más importante de lo que parece, ya que la misma nos permite conocer todo los problemas y posibles riesgos que puedan afectar a nuestro software.
Además de esto, otra ventaja de evaluar nuestro diseño y documentación antes de exponerlo al público en general es que puede modificarse de manera temprana. Aunque para esto se debe tenerse en cuenta que aún no puede haberse codificado nuestro software, ya que esto vuelve el proceso irreversible o al menos muy difícil de corregir. Como algo extra, realizar la evaluación puede permitir realizar estas correcciones por un precio mucho menor que el que costaría cuando nuestro software ya este totalmente construido.
Si has disfrutado la información respecto a las arquitecturas de software, no te puedes perder estos otros artículos relacionados¡¡¡
- Conoce los distintos tipos de Memoria Informática
- Descubre ¿Qué es y Cómo funciona el Optoacoplador?
- Descubre las principales Características del Software de Aplicación