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

9-4-2019

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

Materia: Diseño y arquitectura de software

Unidad 1: Arquitectura de software

Alumno: Omar Asael Hernández Montiel

Matricula: es1611302341
Tabla de contenido
Importancia del desarrollo de una arquitectura de software................................................................. 2
Relación de la arquitectura de software con diseño de software ......................................................... 2
Arquitecto de software ........................................................................................................................... 3
Rol del arquitecto en el desarrollo de software ................................................................................. 3
Actividades del arquitecto de software .............................................................................................. 3
Concepción del proyecto: ............................................................................................................... 3
Requerimientos: .............................................................................................................................. 3
Diseño del sistema: ......................................................................................................................... 3
Construcción y pruebas del sistema: .............................................................................................. 4
Liberación: ....................................................................................................................................... 4
La Arquitectura de software se compone de: ..................................................................................... 4
Conceptos de arquitectura de software ................................................................................................. 4
Phaniraj Adabala ................................................................................................................................. 4
Christophe Alviset ............................................................................................................................... 4
Clements ............................................................................................................................................. 4
Propio .................................................................................................................................................. 4
Conclusión ............................................................................................................................................... 5
Fuentes de investigación:........................................................................................................................ 5
Importancia del desarrollo de una arquitectura de software
El desarrollo de software es una actividad humana que hace poco tiempo no existía, sin embargo, a
pesar de ser una actividad “joven”, ha evolucionado a un ritmo impresionante, en parte debido a la
demanda impaciente de la tecnología por software con mayores capacidades, así como la necesidad
de desarrollar productos de alta calidad y con mejor capacidad de adaptabilidad en sus fases de
mantenimiento. (UNADM, 2017)

En sus inicios, el porcentaje de software exitoso (en base a lo que se esperaba del mismo) era muy
pobre, tras reflexionar acerca del fracaso constante en esta disciplina, se determinó que la falta de
planeación y diseño era la causante. La arquitectura de software tiene sus orígenes en la década de
los 60’s, pero es hasta los 90’s cuando toma fuerza como una necesidad en el desarrollo de
software.

En la actualidad, cuando se va a construir una casa, es necesario contar con los planos
arquitectónicos, para ello es necesario que el arquitecto considere el sustrato del suelo, las
condiciones geológicas del entorno, etc. De manera analógica surge el concepto de arquitectura de
software, como una necesidad de diseñar las especificaciones que se necesitan tomar en cuenta para
el desarrollo de un software, tomando en cuenta muchos factores como: necesidades del cliente,
condiciones actuales del sustrato (hardware), condiciones del entorno (tendencias de tecnología,
tendencias de usuarios, dispositivos en los que se usara, colaboradores que participaran en la
construcción, seguridad, capacidad de adaptarse a las futuras necesidades de mantenimiento, etc. ).

En general, se considera a la arquitectura de software como un visionario de un producto a partir de


la comprensión de las necesidades del cliente, este visionario detalla su solución a través de “planos”
que se le conoce como la escritura en “papel” de la obra terminada, y es necesario que lleve a cabo
un trabajo de alto nivel de abstracción para lograr que sus compañeros de proyecto logren construir
el software de acuerdo a las especificaciones plasmadas por el arquitecto. Aunque como se
mencionará en el rol del arquitecto su función va mas allá, pues debe ser capaz de considerar el
equilibrio entre seguridad, vistas del proyecto, funciones y rendimiento, tomando en cuenta todos
los factores pueden tener un impacto en el resultado final.

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

Aunque pudiese para muchos ser parte del diseño, no lo es. Reynoso menciona que de acuerdo a
Shaw & Garlan, la AS (arquitectura de software) es el primer paso en la producción de un diseño de
software, incluso se considera una secuencia de tres pasos:

1) Arquitectura. Asocia las capacidades del sistema especificadas en el requerimiento con los
componentes del sistema que habrán de implementarla. La descripción arquitectónica
incluye componentes y conectores (en términos de estilos) y la definición de operadores que
crean sistemas a partir de subsistemas o, en otros términos, componen estilos complejos a
partir de estilos simples.
2) Diseño del código. Comprende algoritmos y estructuras de datos; los componentes son aquí
primitivas del lenguaje de programación, tales como números, caracteres, punteros e hilos de
control. También hay operadores primitivos.
3) Diseño ejecutable. Remite al diseño de código a un nivel de detalle todavía más bajo y trata
cuestiones tales como la asignación de memoria, los formatos de datos, etcétera.
2
(Reynoso, 2005)

Arquitecto de software

Fuente: https://sg.com.mx/revista/33/el-rol-del-arquitecto-software#.WevtjGhSzIU

Rol del arquitecto en el desarrollo de software


De acuerdo a Microsoft, un arquitecto “requiere una amplia gama de habilidades tanto generales
como técnicas”. Durante la recolección del análisis de requisitos y posteriormente en la revisión, la
comunicación entre el cliente y equipo de desarrollo son fundamentales, por lo que el arquitecto en el
desarrollo de software es fundamental, pues debe lograr explicar detalladamente para lograr que
ambas partes se entiendan y queden satisfechos con los acuerdos tomados acerca del proyecto.
(Microsoft, 2017)

El arquitecto traza un plan de trabajo considerando todo el panorama desde el punto de vista del
cliente, como la forma de atender el problema planteado del equipo de desarrollo, tomando en
cuenta las tendencias tecnológicas, con una visión amplia de las necesidades que pueden surgir en un
futuro próximo debido a los avances que se van dando y la tendencia del mercado; al mismo tiempo
debe atender los factores de redes, sistema operativo, tomar en cuenta hasta que punto el diseño
puede empezar a afectar el rendimiento, como utilizar la base existente en caso de que el cliente ya
tenga un sistema funcionando, etc.

Actividades del arquitecto de software


Concepción del proyecto:
El papel del arquitecto de software en esta etapa es muy importante, porque debe entender las
necesidades del cliente, encontrar una solución óptima y presentar un estimado técnico y
económico. También debe tener alta habilidad comunicativa para convencer al cliente de que la
solución presentada es la mejor opción.

Requerimientos:
Debe levantar requerimientos del programa en una primera instancia, cuando presenta la visión del
proyecto, es necesario que haga uso de sus habilidades de negociación para no comprometer la
calidad del proyecto al ceder ante las solicitudes del cliente, aunque en algunas ocasiones podrá
aceptar algunas exigencias, sabiendo ceder en las peticiones que solicite el cliente siempre y cuando
no comprometa la visión de solución del problema.

Diseño del sistema:


El arquitecto debe saber participar adecuadamente en el diseño del sistema, aunque es bien sabido
que cada arquitecto tiene su propio enfoque acerca de la arquitectura de software ideal para el
proyecto, por ello es necesario que sepa tener alta abstracción para plasmar su visión del producto
en las distintas vistas para obtener un resultado lo más cercano al diseño.

3
Construcción y pruebas del sistema:
En este punto el trabajo del arquitecto baja, pues debe solo vigilar que se logre llevar a cabo la
ejecución de los planos y hacer las modificaciones pertinentes previo a su construcción para
satisfacer las necesidades del cliente sin que esto altere la productividad del equipo.

Liberación:
Es necesario en ocasiones llevar a cabo algunos ajustes cuando se implementa el sistema en un
ambiente productivo, con la finalidad de lograr que funcione como se había previsto, es necesario
que el arquitecto siga de cerca este paso para darle seguridad al cliente de que el producto logrará
satisfacer las necesidades que llevaron a su compra.

La Arquitectura de software se compone de:


1) Clientes y servidores.
2) Bases de datos.
3) Filtros.
4) Niveles en sistemas jerárquico.

Conceptos de arquitectura de software


Los siguientes conceptos fueron extraídos de: Software Enginnering Institute

Phaniraj Adabala
La arquitectura de software se define como un estilo que ha sido probado científicamente y
adoptado por la disciplina de ingeniería, con la cual se desarrolla un software para sustentar y
adaptarse a las crecientes necesidades de la industria de vez en cuando.

Christophe Alviset
Una arquitectura de sistemas es el conjunto de componentes, sus atributos y las formas de usarlos
que son necesarios para construir un sistema o un conjunto de sistemas. Depende del conjunto de
personas que trabajan para construir los sistemas, sus habilidades y el estado del arte actual. Les
ayuda a ponerse de acuerdo sobre sus respectivos roles. Su objetivo es lograr algunas
funcionalidades deseables en los sistemas que se construyen, como la evolución, robustez,
redundancia, etc.

Clements
“Una definición reconocida es la de Clements [Cle96a]: La AS es, a grandes rasgos, una vista del
sistema que incluye los componentes principales del mismo, la conducta de esos componentes
según se la percibe desde el resto del sistema y las formas en que los componentes interactúan y se
coordinan para alcanzar la misión del sistema. La vista arquitectónica es una vista abstracta,
aportando el más alto nivel de comprensión y la supresión o diferimiento del detalle inherente a la
mayor parte de las abstracciones” (Reynoso, 2004)

Propio
Es la aplicación de la ingeniería para obtener un sistema de componentes que trabajan con
interrelaciones para lograr de manera sistemática que los componentes se acoplen y coordinen para
lograr el resultado para el cual fueron diseñados. Dichos componentes son una representación
abstracta al más alto nivel.
4
Conclusión
La arquitectura de software es parte fundamental para lograr un buen diseño de software, pero no
se deben confundir los conceptos, en el caso de arquitectura de software, se requiere de mucha
visión, imaginación, creatividad, inteligencia, para lograr obtener un resultado de alta abstracción
que modele el producto final antes de iniciar su construcción, logrando una comunicación eficiente
con los clientes, socios y equipo de desarrollo.

Fuentes de investigación:
Sommerville, I. (2005). Ingeniería del software. Pearson Educación.
Reynoso, C. B. (2004). Introducción a la Arquitectura de Software. Universidad de Buenos Aires, 33.
Cervantes, Humberto, (2011), Revista: SG BUZZ, El rol del arquitecto, https://sg.com.mx/revista/33/el-
rol-del-arquitecto-software#.WevtjGhSzIU
UNADM, Arquitectura de software, 2017
Software Engineering Institute, 2017, Community Software Architecture Definitions
https://www.sei.cmu.edu/architecture/start/glossary/community.cfm

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