Vous êtes sur la page 1sur 6

1. Investiga en diversas fuentes a tu alcance la importancia del desarrollo de una arquitectura de software.

2. Identifica su relacin con el diseo de software.


3. Identifica y explica en qu consiste el rol de un arquitecto de software y cules son las actividades que
debe realizar en el proceso de desarrollo de un sistema de software.
4. Explica un concepto de arquitectura de software y desarrolla tu propio concepto.
5. Integra el desarrollo de tu actividad en un documento con cartula y los datos de identificacin
completos, posteriormente gurdala con la nomenclatura 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.
6. Lee detenidamente los criterios de evaluacin de la actividad para que los consideres durante su
desarrollo.
7. Ingresa al Foro y participa respondiendo a los planteamientos y lnea 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.
8. Ingresa a la participacin de dos de tus compaeros, y lee detenidamente su actividad, analzala y
realiza un comentario mencionando las aportaciones a tu propia comprensin sobre el tema.

9. Espera y atiende la retroalimentacin correspondiente.


10. Ingresa una segunda participacin en el Foro integrando la retroalimentacin de tu docente en lnea y
de tus compaeros(as).
11. Revisa la Rbrica general de participacin en foros (que puedes consultar en el apartado Material de
apoyo) as como las rbricas de la actividad para que consideres los aspectos a evaluar.
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 alcanz el objetivo, 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. .

BIBLIOGRAFA.

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.

Vous aimerez peut-être aussi