Sei sulla pagina 1di 7

Identificar la importancia del uso de los elementos de la arquitectura de software en el desarrollo de sistemas de

software, para ello, sigue estos pasos:


Investiga en diversas fuentes a tu alcance un caso de aplicacin de arquitectura de software.
Analiza brevemente en qu consiste y el objetivo de aplicacin.
Investiga en qu consiste el rol de un arquitecto de software y cul es la importancia de adquirir este tipo de
conocimientos para el desarrollo de proyectos de software
Integra el desarrollo de tu actividad en un documento con cartula y los datos de identificacin completos,
posteriormente guarda tu actividad con el nombre DDRS_U1_A1_XXYZ. Sustituye las XX por las dos primeras letras
de tu primer nombre, la Y por tu primer apellido y la Z por tu segundo apellido.
Lee detenidamente los criterios de evaluacin de la actividad para que los consideres en el desarrollo de tu
actividad.
Ingresa al Foro y participa respondiendo a los planteamientos y lneas de discusin que publique tu Docente en
lnea mediante el tema abierto por l. Redacta en el cuadro de texto una breve resea de tu actividad no mayor a
cinco renglones y a continuacin adjunta tu archivo. Al finalizar da clic en enviar para publicarlo y est accesible a
tus compaeros y docente en lnea.
Ingresa a la participacin de uno de tus compaeros como mnimo, y lee detenidamente su actividad, analzala y
realiza un comentario mencionando las aportaciones de su investigacin a tu comprensin del tema.
Espera y atiende la retroalimentacin correspondiente.
Lee detenidamente la participacin de por lo menos dos de tus compaeros(as) y aporta una breve observacin
respecto a sus planteamientos.

Ingresa una segunda participacin integrando la retroalimentacin de tu Docente en lnea y de tus compaeros(as).

En estos tiempos las necesidades actuales que tiene toda organizacin para
alcanzar sus objetivos, exigen la construccin de grandes y complejos sistemas de
software que requieren de la combinacin de diferentes tecnologas y plataformas
de hardware y software. Requiere poner especial atencin y cuidado al diseo de
la arquitectura de software, la cual estar soportado el funcionamiento de sus
sistemas.

Si una arquitectura de software se encuentra deficiente en su concepto o diseo,


tendremos grandes posibilidades de construir un sistema que no alcanzar el total
de los requerimientos establecidos. Esto, provocar tener que realizar el doble de
trabajo, se traducir en fracaso del sistema de software cuando se encuentre en
operacin.

Es necesario conocer y comprender los elementos que deben abordar al disear


una arquitectura de software, de lo contrario se tiende a caer en el crculo vicioso
de un diseo somero y a la codificacin del sistema.

El diseo de software se divide en dos partes importantes:


Diseo arquitectnico (diseo de alto nivel)
El diseo de la arquitectura de software ocurre inmediatamente despus de la
especificacin de los requerimientos de software y considera como elementos
principales los siguientes: componentes de software, propiedades de dichos
componentes y la comunicacin entre ellos.
Diseo detallado. El diseo detallado se lleva a cabo justo antes de la
codificacin, y forma parte de las primeras tareas del desarrollador; describe la
lgica, el control jerrquico, estructura de datos, empacado de componentes.

El desarrollo de la arquitectura de software es una de las etapas fundamentales y,


en muchos casos, la ms importante en el desarrollo de software, pues es aqu
donde los profesionales aportan todos sus conocimientos, creatividad y
experiencia para crear la mejor propuesta de solucin que se dar al cliente que
cumpla con los requerimientos funcionales y no funcionales establecidos para el
sistema en desarrollo, as como sus preocupaciones principales de lo que esperan
del sistema.

Desarrollar una arquitectura de software es como llevar a cabo el diseo


arquitectnico de un edificio que ser construido. Para construir, los ingenieros,
albailes, plomeros, electricistas, etc. requieren estudiar y comprender los planos
de los cimientos, la estructura, y de toda la infraestructura necesaria para que
cuente con servicios tales como: luz, agua, telfono, red de datos, etc. Cuando no
existen estos planos que nos guen, estaremos construyendo algo que se nos
viene a la imaginacin justo en el momento de realizarlo. Por ello, tambin es
importante que los diferentes interesados en el sistema se involucren en el diseo
de la arquitectura pues, con ello, se podr acordar y consensuar de una mejor
manera la solucin a la que se llegue despus de conocer los requerimientos.

Definicin arquitectura de software.


Es la estructura o estructuras del sistema, lo cual abarca componentes de
software, las propiedades visibles externamente de esos componentes, y las
relaciones entre ellas. De esta manera, la arquitectura de software permite
representar de forma concreta la estructura y funcionamiento interno de un
sistema.
.
Para comenzar el desarrollo de la arquitectura de software es necesario partir de
un documento de especificacin de requerimientos, en caso contrario, deberemos
trabajar de manera formal en una etapa de requerimientos para definir de manera
detallada lo que se espera del sistema. El documento debe contener
requerimientos funcionales (del negocio, de usuario, de sistema, entre otros) y
requerimientos no funcionales (reglas de negocio, atributos de calidad del sistema,
interfaces externas y polticas, por mencionar algunas).

Un elemento crtico y muy importante que se debe considerar en una arquitectura


de software, y en lo que precisamente est basado el diseo, son los
requerimientos no funcionales del sistema, especficamente los atributos de
calidad establecidos para el mismo, es decir, atributos como: desempeo,
confiabilidad, seguridad, facilidad de modificacin, facilidad de uso, robustez,
portabilidad, escalabilidad, reutilizacin, disponibilidad, etctera.

Ahora bien, resulta imposible aceptar todos los atributos de calidad para un
sistema; cada interesado en dicho sistema (usuario, cliente, desarrollador,
arquitecto, patrocinador, etc.) estar preocupado por alguno en especfico, pero es

imposible alcanzar todos, pues es sabido que alcanzar ciertos atributos de calidad
impide que se logren otros, y es cuando se dice que entran en conflicto. El secreto
est en priorizarlos y en determinar cules son los verdaderamente importantes
para el cliente y cules est dispuesto a sacrificar para alcanzar su objetivo.

De no considerar lo anterior cometeremos un error grave, pues ningn sistema


puede cumplir con todos los atributos de calidad al 100%, resultara incoherente
por el conflicto que puede existir entre ellos. Es por esto que, en muchas
ocasiones, los usuarios y clientes quedan insatisfechos con un sistema, pues
esperaban todos los atributos de calidad que acordaron con el proveedor. Muy
probablemente el analista y arquitecto, por desconocimiento, aceptaron y se
comprometieron a cumplir con todos ellos sin analizarlos.

En ese sentido, podemos determinar que la arquitectura de software se encuentra


influenciada por los involucrados o interesados en el desarrollo del sistema de
software, la organizacin para la que est siendo desarrollado, los requerimientos
no funcionales, el ambiente tcnico y la experiencia del arquitecto.

De manera concreta, al disear una arquitectura de software debemos crear y


representar componentes que interacten entre ellos y tengan asignadas tareas
especficas, adems de organizarlos de forma tal que se logren los requerimientos
establecidos. Podemos partir con patrones de soluciones ya probados, con la
intencin de no comenzar de cero las propuestas y utilizar modelos que han
funcionado. Estas soluciones probadas se conocen como estilos arquitectnicos,
patrones arquitectnicos y patrones de diseo, que van de lo general a lo
particular. Un estilo arquitectnico consiste de una coleccin de tipos de
componentes con una descripcin del patrn o interaccin a travs de ellos.

El estilo afecta a toda la arquitectura de software y puede combinarse en la


propuesta de solucin. Un patrn arquitectnico se enfoca a dar solucin a un
problema en especfico, de un atributo de calidad, y abarca solo parte de la
arquitectura. Un patrn de diseo ayuda a disear la estructura interna de un
componente especfico, es decir, su detalle. Aunque estos estilos y patrones se
pueden adoptar, tambin pueden adaptarse con objeto de lograr alguna
funcionalidad concreta esperada.

Un aspecto importante en el diseo de la arquitectura es que los atributos de


calidad establecidos, determinan los estilos arquitectnicos que pueden ser

utilizados o adoptados, en tanto pueden contribuir o afectar el logro de dichos


atributos de calidad.

Otro elemento importante dentro de la arquitectura de software es que debe


definirse a travs de vistas, que representan las diferentes perspectivas de nuestro
diseo, como mostrar el diseo de la estructura general de un edificio, junto con el
plano de la instalacin hidrulica, el plano de la instalacin elctrica, o de la
instalacin de la red de voz y datos.

Las vistas arquitectnicas pueden representarse mediante lenguajes de modelado,


como UML, aunque tambin existen lenguajes especializados de descripcin
arquitectnica (ADLs) como ACME, para especificar de manera sintctica y grfica
los componentes de una arquitectura de software.

La definicin de las vistas de la arquitectura de software debe documentarse de


manera completa, incluyendo toda la explicacin de su diseo, es decir, lo que se
ha representado grficamente, as como las justificaciones de porqu se lleg, fue
mejor o se omitieron partes de la propuesta de solucin. De la misma manera que
existe un documento de especificacin de requerimientos de software, se debe
crear un documento de la arquitectura de software del sistema deseado, que
servir para generar el diseo detallado de dicho sistema.

Un vez generada y documentada la arquitectura de software, sta debe evaluarse


para verificar que cumpla con todos los requerimientos; especficamente con los
atributos de calidad establecidos. Dicha evaluacin puede realizarse mediante
tcnicas cualitativas, como cuestionarios o escenarios, o a travs de tcnicas
cuantitativas, como simulaciones o modelos matemticos. En la literatura existen
diferentes mtodos de evaluacin para verificar desde mltiples atributos de
calidad hasta algunos en especfico. Ejemplos de estos mtodos de evaluacin
son ATAM, ABAS, SAAM, SNA, ALMA, RMA, teora de colas, teora de
confiabilidad, entre otras.

Tareas realizadas para el desarrollo de una arquitectura de software son:


--Identificacin de los requerimientos arquitectnicos
--Diseo de la arquitectura
-- Documentacin de la arquitectura
--Evaluacin de la arquitectura
-- Validacin de la arquitectura con los diferentes interesados en el sistema que se
encuentre en desarrollo.
Considerando lo anterior, podemos observar que el rol del arquitecto de software
es crtico y sumamente importante, puesto que requiere de una gran variedad de
conocimientos, tales como: ingeniera de requerimientos, teora de arquitecturas
de software, codificacin, tecnologas de desarrollo, plataformas de hardware y
software.

De igual manera, requiere de saber negociar intereses encontrados de mltiples


involucrados en el desarrollo de un sistema de software; promover la colaboracin
entre el equipo; entender la relacin entre atributos de calidad y estructuras; ser
capaz de transmitir claramente la arquitectura a los equipos; escuchar, y entender
mltiples puntos de vista. El arquitecto de software debe interaccionar con todos
los involucrados en el desarrollo de un sistema de software, y ser capaz de
dialogar con el analista para obtener los requerimientos significativos, disearlos y
transmitirlos al programador para su codificacin.

En conclusin el diseo de una arquitectura de software debe considerarse una


parte fundamental, crtica e indispensable en el desarrollo de un sistema de
software, ya que es precisamente en esta fase en donde recae toda la creatividad,
experiencia y creacin de la propuesta de solucin que ms se adecue a las
necesidades de nuestro cliente y le permita lograr sus objetivos.

Se trata de un concepto que naci hace ya varios aos, no obstante, emerge


recientemente como concepto formal, como un proceso de ingeniera. En general,
la mayora no tiene un proceso formal definido para desarrollar la industria de
software y, aunque no es una tarea sencilla el adoptar la creacin de una
arquitectura de software, se requiere romper paradigmas en la forma de trabajo de
las personas. Los profesionales de la industria de software y, especficamente,

quienes estn dedicados al diseo de sistemas, deben capacitarse ampliamente


en el campo de la arquitectura de software para cumplir con esta importante etapa
del ciclo de vida de un sistema. .

Traducido y modificado de White, Sharon A.; Lemus-Olalde, Cuauhtmoc. The


Software Architecture Process, 1997.
Traducido de Clements, P.; Bass, L.; Kazman, R. Software Architecture in Practice.
Edited by SEI Series, first edition, SEI Series in Software Engineering: Addison
Wesley, 2003.
Traducido de Clements, P.; Bass, L.; Kazman, R. Software Architecture in Practice.
Edited by SEI Series, first edition, SEI Series in Software Engineering: Addison
Wesley, 2003.
Modificado de Bosh, Jan. Design and Use of Software Architectures, Adopting and
Evolving a Product-Line Approach, first edition, London: Addison Wesley, 2000.

Potrebbero piacerti anche