Que es la Arquitectura de Software?
Cuando un proyecto cuenta con una Arquitectura de sistema
este llegará crecer y desarrollarse como se espera ya que esta es requerida
tanto para el proceso de desarrollo como de mantenimiento del sistema.
Es necesario explorar el valor de la arquitectura de
software como influye esta en el desarrollo de un proyecto y el valor retornado
a la empresa.
Se podria definir la Aquitectura de Sistemas de
Software de computador como la estructura o estructuras del sistema que implica
elementos de software, estos siempre con propiedades visibles y las reaciones
entre estos.
La arquitectura es una abstraccion de un sistema que
suprime los detalles de los elementos que no afecta al modo en que se utiliza, y
nos da claridad sobre los sistemas que
pueden comprometer mas de una estructura ya que una estructura no es la
arquitectura.
Todos sistema de computador con software tiene una
arquitectura de software porque cada sistema que puede ser mostrado comprende
elementos y una relacion entre ellos y teniendo en cuenta que el comportamiento
de los elementos es lo que permite su interaccion siempre este es parte de la
arquitectura
El estudio de arquitectura de software se ha
desarrollado mediante la observación de los principios de diseño que los
diseñadores han seguido al trabajar en
sistemas reales.
Todos sistema tiene una una arquitectura que puede
ser estudiada independientemente de cualquier conocimiento que se tenga del
proceso en que se diseño o evoluciono su arquitectura.
Las etapas representan el resultado de un conjunto
de decisiones arquitectónicas:
-
Patrón: Un patrón puede ser pensado como un conjunto de
restricciones sobre una arquitectura de los tipos de elementos y sus patrones
de interacción y estas restricciones definen un conjunto o una familia de
arquitecturas que las satisfacen
son conceptos útiles que captan elementos de una
arquitectura. Cada uno es el resultado de las decisiones iniciales del diseño, los patrones presentan atributos de calidad. Esta es
la razón por la arquitecto elige un patrón particular y no una al azar.
- Modelo de Referencia: una descomposición estándar de un problema
conocido en partes que ayudan a resolver el problema.
-
Arquietectura de referencia: es el mapeo de que la funcionalidad a un sistema
de descomposición
Un arquitecto de software debe diseñar un sistema
que ofrece la concurrencia, portabilidad, modificabilidad, usabilidad,
seguridad, y similares, y que refleja la consideración de las ventajas y
desventajas entre estas necesidades.
La arquitectura de software es importante por:
- La comunicación entre las partes interesadas. Arquitectura de software representa una
abstracción de un sistema común donde
todos los actores del sistema pueden usarlo como base para el entendimiento mutuo donde,
diferentes intereses se pueden expresar, negociar y resuelver a un nivel que es
intelectualmente manejable incluso para sistemas grandes y complejos.
Las primeras decisiones de diseño. Arquitectura de software, manifiesta las primeras
decisiones de diseño sobre un sistema.es el primer punto en el que las
decisiones de diseño que rigen el sistema a ser construido pueden ser
analizadas.
Estas primeras decisiones son las más difíciles crear correctamente y
la más difícil de cambiar más adelante en el proceso de desarrollo, y tienen
los efectos más profundos.
-
La abstracción transferible de un sistema. Arquitectura de software constituye una parte
relativamente pequeña, el modelo de intelectual este modelo es transferible a
través de sistemas. En particular, se puede aplicar a otros sistemas que exhiben
atributo de calidad similar y los requisitos funcionales y pueden promover a
gran escala de re-uso.
Las estructuras arquitectonicas se dividen segun la
naturaleza de sus elementos:
-
Estructuras de Modulo: los elementos son los módulos, que son unidades de
ejecución. Los módulos representan una forma basada de considerar el sistema a
través del codigo. Se les asigna áreas de responsabilidad
funcional
• ¿Cómo es el sistema que se estructura como un
conjunto de unidades de código (módulos)?
-
Descomposicion
-
Uso
-
Capas
-
Clases o Generalizacion
-
Estructuras de Componente y conector: los elementos son los componentes de tiempo de
ejecución (que son las principales unidades de computación) y conectores (que
son los vehículos de comunicación entre los componentes).
• ¿Cómo esta estructurado el sistema como un
conjunto de elementos que tienen un comportamiento en tiempo de ejecución (los
componentes) y las interacciones (conectores)?
-Procesos deComunicacio
-Concurrencia
-Datos compartidos
- Cliete-Servidor
-
Estructuras
de Dsitribucion: muestran la relación entre los elementos de
software y los elementos en uno o más entornos externos en el que el software
es creado y ejecutado
• ¿Cómo esta el sistema relaconado con las
estructuras non-software en su entorno (es decir, las CPU, los sistemas de
archivos, redes, equipos de desarrollo, etc)?
-Despliegue
-Implementacion
-Asignacion de Trabajo
En Las estructura del sistema hay propiedades del
sistema, además de su funcionalidad, como la distribución física, el proceso de
comunicación y sincronización, que deben ser considerados a nivel
arquitectónico. Cada estructura ofrece un método para razonar acerca de algunos
de los atributos de calidad pertinentes.
Aunque las estructuras pueden dar diferentes
perspectivas del sistema, estas no son independientes. Los Elementos de una se
relacionan con elementos de otra, y tenemos que razonar acerca de estas
relaciones.
Las estructuras representan los puntos primarios de
ingeniería de apalancamiento de una arquitectura. Las estructuras individuales
traen con ellos el poder de manipular uno o más atributos de calidad. Ellas
representan un poderoso de separación de las preocupacpermiten separar las
necesidades o preocupacion para enfocarlas en la creación de la arquitectura
Metodo Para validar que las estructuras
no estaban en conflicto una con otra:
• Lógico. Los elementos son
abstracciones "clave", que se manifiestan en el mundo orientado a
objetos como objetos o clases de objetos. Esta es una vista en módulo.
• Proceso. Este punto de vista aborda la
concurrencia y la distribución de funciones. Es una vista de
componente-y-conector.
• Desarrollo. Esta vista muestra la
organización de módulos de software, bibliotecas, subsistemas, y unidades de
desarrollo. Es una vista de asignación, el mapeo de software para el entorno de
desarrollo.
• Física. Este punto de vista de otros elementos traza en el procesamiento y
nodos de comunicación y es también un punto de vista de la asignación (que otros llaman el punto de vista de
despliegue).
En la lectura se conocieron diferentes
conceptos sobre las diferentes Arquitecturas que existen, lo que es mas
claro es que la Arquitectura de Software se apropia de todos los procesos y
estructuras que se encuentran en un sistema, estudia
la comunicación y relación entre ellas. La
arquitectura de software define los componentes que llevan a cabo alguna tarea
de computación, sus interfaces y la comunicación entre ellos.
La arquitectura de software nos provee
un lenguaje común que se puede expresar, resolver, negociar, manejar, ordenar y
entender los diferentes tipos de sistemas, esta es muy importante
porque nos permite modelar posibles soluciones y ver los diferentes
procesos y estructuras de un sistema, es por eso que así de esa
manera podemos desarrollar grandes proyectos y dar soluciones rápidas y
eficientes a un problema sistémico.
No hay comentarios:
Publicar un comentario