Вы находитесь на странице: 1из 9

UNIVERSIDAD ABIERTA Y A

DISTANCIA DE MEXICO
ALFREDO DE JESUS CORDOVA ABARCA
Nombre del alumno

ARQUITECTURA DE SOFTWARE
Materia

El diseo arquitectnico en el desarrollo de software


Tema

INGENIERIA EN DESARROLLO DE SOFTWARE


CARRERA

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.

CONCLUSIONES
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. .

BIBLIOGRAFIAS
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.

Вам также может понравиться