Vous êtes sur la page 1sur 9

SECRETARIA DE EDUCACION PUBLICA

UNIVERSIDAD ABIERTA Y A DISTANCIA DE MEXICO

INGENIERÍA EN DESARROLLO DE SOFTWARE

Diseño y Arquitectura de
software
Unidad 1. Arquitectura de Software

Actividad 1:

Foro.

El diseño arquitectónico en el desarrollo de software.

Presenta:
LUIS ALBERTO PATIÑO ALCAZAR

DOCENTE: ALFREDO OROZCO ESCOBAR

SEMESTRE: TERCERO BLOQUE:2

Colima. domingo, 6 de
octubre de 2019
LUIS ALBERTO PATIÑO ALCAZAR
6-10-19
ACTIVIDAD 1. EL DISEÑO ARQUITECTÓNICO EN EL DESARROLLO DE SOFTWARE

Unidad 1
Actividad 1:
Foro. El diseño arquitectónico en el desarrollo de
software.

Tabla de contenido
Instrucciones: ...................................................................................................................................... 3

Arquitectura de software y su importancia. ....................................................................................... 4

Relación de la arquitectura de software con el diseño de software................................................... 5

Rol de un arquitecto de software. ...................................................................................................... 6

Concepto de arquitectura de software. .............................................................................................. 7

Concepto propio de arquitectura de software. ........................................................................ 8

Conclusiones. ...................................................................................................................................... 8

Referencias .......................................................................................................................................... 9

pág. 2
LUIS ALBERTO PATIÑO ALCAZAR
6-10-19
ACTIVIDAD 1. EL DISEÑO ARQUITECTÓNICO EN EL DESARROLLO DE SOFTWARE

Instrucciones:

En un documento d Word, realiza lo siguiente:

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


arquitectura de software.
2. Identifica su relación con el diseño de software.
3. Identifica y explica en qué consiste el rol de un arquitecto de software y cuáles 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.

pág. 3
LUIS ALBERTO PATIÑO ALCAZAR
6-10-19
ACTIVIDAD 1. EL DISEÑO ARQUITECTÓNICO EN EL DESARROLLO DE SOFTWARE

Arquitectura de software y su importancia.


La arquitectura como tal, cobra importancia a medida que el sistema de software en cuestión
aumenta de complejidad. Por defecto cualquier sistema de software tendrá una arquitectura de
forma automática, aunque no se decida una, pero esta podría generar resultados no deseados o no
cumplir con los requerimientos para los que fue creado.

Según (Pressman, 2010) se define como:

La arquitectura del software de un programa o sistema de cómputo es la estructura o


estructuras del sistema, lo que comprende a los componentes del software, sus
propiedades externas visibles y las relaciones entre ellos.

Es una representación que permite 1) analizar la efectividad del diseño para cumplir los
requerimientos establecidos, 2) considerar arquitecturas arquitectónicas en una etapa
en la que hacer cambios al diseño todavía es relativamente fácil y 3) reducir los riesgos
asociados con la construcción del software.

Por tal motivo la propia concepción de la arquitectura de software lleva implícita su


importancia, ya que de ella dependen factores como el cumplimiento de los requerimientos
encontrados, la propia integridad y funcionalidad del sistema de software. Como se menciona en
Sommerville (2011), La arquitectura de software es importante porque afecta el desempeño y la
potencia, así como la capacidad de distribución y mantenimiento de un sistema (Bosch, 2000).

De esta manera la arquitectura del software determina en gran medida del propio destino del
proyecto de software. Según (Pressman, 2010) la arquitectura adquiere su importancia de acuerdo
a los tres siguientes puntos:

 Permiten la comunicación entre todos los participantes interesados en el desarrollo


del sistema.
 Resalta las primeras decisiones que tendrán efecto profundo en todo el proceso y el
resultado final.
 Constituye un modelo relativamente fácil de entender de cómo está estructurado y
como trabajan los componentes juntos dentro del sistema que se está creando.

pág. 4
LUIS ALBERTO PATIÑO ALCAZAR
6-10-19
ACTIVIDAD 1. EL DISEÑO ARQUITECTÓNICO EN EL DESARROLLO DE SOFTWARE

Es así como llegamos a la conclusión de que la arquitectura del software involucra el definir
qué estructuras tendrá el sistema, así como las responsabilidades de los componentes, sus
cualidades, todo para implementar la funcionalidad deseada. Así de ella depende el alcanzar los
estándares de calidad, ya que sirve como guía dentro del diseño, determinando así las cualidades
del producto, aunque el mejorar alguna cualidad suele afectar otras, suele permitir mas no
garantizar que cualquier otro requisito de calidad sea alcanzado.

Otro punto importante del desarrollo, es que este requiere ser guiado por las decisiones de su
arquitectura, para lo cual es necesario e indispensable contar con la información de los
requerimientos esenciales del sistema para diseñar la arquitectura que apoyara esos
requerimientos. Por lo tanto, una arquitectura de software sirve también como plan de diseño para
negociar los requerimientos del sistema y como medio para establecer discusiones del futuro del
proyecto con clientes, desarrolladores y administradores.

Relación de la arquitectura de software con el diseño


de software.
A principios de la década de los 90, la comunidad de profesionales relacionados con la
producción de software se comenzó a plantear la necesidad de expresar la estructura del sistema en
un nivel de abstracción superior al del diseño, al que llamaron Arquitectura de Software (Cristiá,
2007).

Como podemos ver en el párrafo anterior se entiende que la arquitectura de software se


sobrentendería como algo análogo al diseño, pero en un nivel de abstracción mayor. Para entender
mejor esta relación revisemos algunos conceptos.

La arquitectura de software de una programa o sistema de cómputo es la estructura o


estructuras del sistema que comprenden elementos de software, las propiedades visibles
externamente de esos elementos y las relaciones entre ellos. El nivel arquitectónico de la estructura
de un sistema es aquella descripción donde se utilizan conectores diferentes a llamada a
procedimiento y/o se imponen restricciones importantes entre los componentes y/o aparecen
distintos tipos de componentes en la descripción(Cristiá, 2007).

pág. 5
LUIS ALBERTO PATIÑO ALCAZAR
6-10-19
ACTIVIDAD 1. EL DISEÑO ARQUITECTÓNICO EN EL DESARROLLO DE SOFTWARE

Un diseño de software se entiende como una descripción de la estructura del software que se
va a implementar, los modelos y las estructuras de datos utilizados por el sistema, las interfaces
entre componentes del sistema y, en ocasiones, los algoritmos usados (Sommerville, 2011).

Como podemos observar las definiciones coinciden en decir que ambos procesos se presentan
como una descripción y presentan las mismas actividades, la diferencia se presenta en el nivel de
abstracción, que en el nivel arquitectónico implica el uso de elementos de software que no tiene
una representación directa en lenguajes de programación, “es decir, elementos abstractos con los
que trabaja el arquitecto y que los programadores deberán de refinar y proyectar sobre la tecnología
de implementación disponible”(Cristiá, 2007).

Es decir, se realizan más menos dependiendo de la metodología utilizada los mismos procesos
tanto en diseño como en arquitectura, requerimientos, diseño, la documentación y la validación.

Rol de un arquitecto de software.


Al tomar la arquitectura de software como una serie de decisiones de diseño encaminadas a
definir la estructura fundamental de un sistema de software, podemos por defecto atribuir que las
tareas propias de la arquitectura de software recaen sobre el arquitecto de software. En cuanto a
esa afirmación podría no ser del todo realista, sobre todo en proyectos donde la complejidad es tal
que es mucho más practico dejar esa responsabilidad a los especialistas en determinadas áreas, en
parte esto debido a que la arquitectura como tal es un área emergente, y por tal razón muchas veces
se carece de personal plenamente capacitado, ya que son pocos los arquitectos que han recibido
una formación teórica completa sobre el tema.

Principalmente el rol que juega un arquitecto y que requieren de habilidades particulares, son
las referentes a una serie de actividades que son responsabilidades del mismo. Estas actividades
son:
 Los requerimientos, que se enfocan en la captura, documentación, y priorización de
los requerimientos y cómo influyen estos dentro de la arquitectura del sistema.
 Diseño, que es la etapa crítica y la más compleja del proceso donde se definen las
estructura que compone la arquitectura, en base a patrones de diseño, tácticas de
diseño y la elección de tecnologías.

pág. 6
LUIS ALBERTO PATIÑO ALCAZAR
6-10-19
ACTIVIDAD 1. EL DISEÑO ARQUITECTÓNICO EN EL DESARROLLO DE SOFTWARE

 Documentación, del diseño realizado para poder comunicarlo a los interesados del
desarrollo del sistema. Generalmente se comunica por medio de vistas, que son
diagramas e información adicional que permiten su total comprensión.
 Evaluación, permite de manera temprana identificar posibles problemas y riesgos,
antes de comenzar a escribir el código, lo que permite reducir riesgos y costos que de
lo contrario tendrían un mayor costo económico, de tiempo y humano, en su
corrección.

Como responsable de estas tareas, el arquitecto de software debe cumplir ciertas


características muy deseable, entre ellas el de ser un líder técnico, para ello debe tener amplio
conocimiento de los principios de la arquitectura, las tecnologías a utilizar, además de excelentes
habilidades de comunicación.

Concepto de arquitectura de software.


Pero que es la arquitectura de software, según varias concepciones de diversos autores es:

 UML define la arquitectura como el conjunto de decisiones significativas acerca de la


organización de un sistema de software; la selección de los elementos estructurales a
partir de los cuales se compondrá el sistema y sus interfaces, junto con la descripción del
comportamiento de dichas interfaces en las colaboraciones que se producen entre los
elementos del sistema; la composición de esos elementos estructurales y de
comportamiento para formar subsistemas de tamaño cada vez mayor; y el estilo o patrón
arquitectónico que guía esta organización: los elementos y sus interfaces, las
colaboraciones y su composición (RUMBAUGH, JACOBSON, & BOOCH, 2007).

 Podemos considerar como arquitectura la estructura de alto nivel de un sistema de


software, lo que incluye sus componentes, las propiedades observables de dichos
componentes y las relaciones que se establecen entre ellos (Bass et al., 1998).

 Un nivel de diseño que involucra la descripción de los elementos estructurales sobre los
cuales se construyen los sistemas (componentes), las interacciones entre esos elementos
(conectores), los patrones que guían su composición y las restricciones sobre esos patrones
(Román, Medrano, & Mohnen, 2006).

pág. 7
LUIS ALBERTO PATIÑO ALCAZAR
6-10-19
ACTIVIDAD 1. EL DISEÑO ARQUITECTÓNICO EN EL DESARROLLO DE SOFTWARE

 La arquitectura de software de una programa o sistema de cómputo es la estructura o


estructuras del sistema que comprenden elementos de software, las propiedades visibles
externamente de esos elementos y las relaciones entre ellos. El nivel arquitectónico de la
estructura de un sistema es aquella descripción donde se utilizan conectores diferentes a
llamada a procedimiento y/o se imponen restricciones importantes entre los componentes
y/o aparecen distintos tipos de componentes en la descripción (Cristiá, 2007).

 “La Arquitectura Software de un programa o sistema de información es la estructura o


estructuras del sistema, las cuales comprenden los componentes software, las propiedades
visibles externamente de dichos componentes y las relaciones entre ellos.” Bass, Clements,
y Kazman, Software Architecture in Practice (Pérez & Campanero , 2010)

Como podemos observar todos los conceptos, aunque difieren un poco en sus contextos, de
fondo aluden a un mismo proceso. Como podemos ver tienen en común algunos términos como
descripción, estructura, componentes y relaciones, mientras que otras las complementas con
algunos términos como propiedades, restricciones, decisiones, que complementan en algunos casos
a los conceptos, pero que por omisión se encuentran contenidos en términos como descripción o
estructura y relaciones.

Tomando en cuenta los conceptos anteriores podríamos definir la arquitectura de software


como:

Concepto propio de arquitectura de software.

La arquitectura de software, es el conjunto de decisiones significativas tomadas sobre la


estructura de alto nivel de un sistema de software, sobre un nivel de diseño que involucra la
selección y descripción de los componentes estructurales, así como sus propiedades y las
relaciones que existen entre ellos.

Conclusiones.
Como podemos observar los aspectos arquitectónicos del software son en la actualidad de
suma importancia, sobre todo en niveles de complejidad en que es imperativo su uso, ya que de ello
dependerá puntos tan importantes como, el documentar de forma apropiada la arquitectura
diseñad, que permitirá facilitar y hacer más fluido el proceso de discusión del proceso de diseño del
sistema. Puntos de diseño que repercutirán en el rendimiento, seguridad y estabilidad del sistema
al momento de ser funcional.

pág. 8
LUIS ALBERTO PATIÑO ALCAZAR
6-10-19
ACTIVIDAD 1. EL DISEÑO ARQUITECTÓNICO EN EL DESARROLLO DE SOFTWARE

Referencias
Canal Velasco, C. (Diciembre de 2000). Un Lenguaje para la Especificación y Validación de
Arquitecturas de Software, Tesis Doctoral. Obtenido de Departamento de Lenguajes y
Ciencias de la Computación, Ingeniería Informática de la Universidad de Málaga,
www.lcc.uma.es: http://www.lcc.uma.es/~canal/papers/tesis/canal_tesis.pdf

Cristiá, M. (2007). Introducción a la Arquitectura de Software. Obtenido de Facultad de Ciencias


Exactas, Ingeniería y Agrimensura, Universidad Nacional de Rosario:
https://www.researchgate.net/publication/251932352_Introduccion_a_la_Arquitectura_d
e_Software

Pérez, J. A., & Campanero , A. (Septiembre de 2010). Desarrollo de Software y de las Arquitecturas
Software. Obtenido de UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA, Escuela
Técnica Superior de Ingeniería Informática.

Pressman, R. S. (2010). Ingeniería del Software. Un enfoque practico (Séptima edición ed.). (V.
Campos Olguín, & E. Brito, Trads.) Mexico, D.F.: McGraw-Hill INTERAMERICANA EDITORES
S.A. DE C.V.

Román, G., Medrano, R., & Mohnen, L. (2006). Definición e Implementaciión de un lenguaje de
Descripción de Arquitecturas de Software. Obtenido de Departamento de Computación,
Universidad de Buenos Aires, www.dc.uba.ar: https://www.dc.uba.ar/academica/tesis-de-
licenciatura/2006/galiana.pdf

RUMBAUGH, J., JACOBSON, I., & BOOCH, G. (2007). EL LENGUAJE UNIFICADO DE MODELADO
MANUAL DE REFERENCIA (Segunda edición ed.). (H. Castán Rodríguez, Ó. Sanjuán
Martínez, & M. de la Fuente Alarcón, Trads.) Madrid: PEARSON EDUCACIÓN, S.A.

Schenone , M. H. (2004). Diseño de una Metodología Ágil de Desarrollo de Software. Tesis de


Grado en Ingeniería en Informática. Obtenido de Facultad de Ingeniería, Universidad de
Buenos Aires,openlibra.com: https://openlibra.com/es/book/download/diseno-de-una-
metodologia-agil-de-desarrollo-de-software

Sommerville, I. (2011). Ingeniería de Software (9a edición ed.). (L. M. Castillo, Ed., & V. C. Olguín,
Trad.) México: PEARSON EDUCACIÓN. Obtenido de
https://dl.dropboxusercontent.com/content_link/WdwtV2bkkTAL41CYVByUC81QhHacShp
CaGEgf15ITYp1l6uWii36xBiuoMBKAtl6/file?dl=1

pág. 9

Vous aimerez peut-être aussi