You are on page 1of 8

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

Nombre del Alumno: Montero Campos Angel Jonathan

Profesor: ALFREDO OROZCO ESCOBAR

Tutor: NANCY ROSALINA GUTIÉRREZ SOTO

Materia: Diseño y arquitectura del software.

Actividad 1

Autor: Montero Jonathan


Instrucciones
Investigación y análisis de elementos básicos de comprensión del tema, en colaboración.

Pasos.

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.

Introducción.

Analizar la importancia de la arquitectura de software y el rol del arquitecto en el desarrollo de sistemas de


software. Revisa las instrucciones detalladas en la sección Actividades de aprendizaje de la Unidad 1.

Importancia del desarrollo de de una arquitectura de software.

La importancia de la arquitectura del software, inicia cuando juega un papel fundamental en cualquier
proyecto de desarrollo.

La arquitectura de software se encarga del diseño de elementos que tengan que ver con el software, desde
iniciando con los algoritmos hasta la estructura de los datos. Estos volviéndose conjunto de padrones a
través del cual se define como tendrá el código fuente el funcionamiento.

La arquitectura marca las pautas, restricciones y objetivos teniendo en cuenta los riesgos a los cuales se
puede presentar en el desarrollo de software y el cómo superarlos.

La arquitectura de software es una lista de decisiones que puede alterar el producto final en su totalidad.

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

La relación que tiene en la arquitectura y el diseño del software es muy fácil, ya que mientras la arquitectura
se encarga del desarrollo inicial del equipo electrónico, el diseño de software se encarga de diseñar todo el

Instrucciones - Montero Jonathan 2


sistema operativo y las partes que derivan de este, ya sean controladores, videojuegos o en su caso
programas.

Arquitectura de software

El arquitecto de software es el que tiene el papel técnico, y diseña el sistema inicial del software y hardware.

El arquitecto de software requiere la combinación equilibrada de habilidades técnicas y no técnicas, esto


principalmente ya que lo necesita en toda la etapa del desarrollo del producto.

Tipos de arquitectos y su Rol.

“Arquitecto de Soluciones” participa en la concepción de un proyecto.

“Arquitecto de Software”. participa durante el desarrollo del diseño de software.

“Arquitecto de Sistemas” Se encarga de la toma de decisiones bajo el diseño al cual involucra software y
hardware.

“Arquitecto Empresarial” se especializa en el diseño de una arquitectura empresarial.

“Arquitecto SOA” Especialista de arquitecto, este especialista se encarga de tomar el mando en las tomas de
decisiones que tomar un alto impacto en el software y la arquitectura inicial.

Actividades del arquitecto

Concepción del proyecto. Un proyecto de desarrollo de software, particularmente cuando se trata de un


desarrollo a la medida, inicia generalmente por una etapa en la cual se debe de generar una propuesta
técnica y económica, muchas veces en un periodo corto de tiempo. En ésta etapa, el arquitecto juega un
papel muy importante pues en general en él recae la responsabilidad de realizar una traducción de las
necesidades que expresa un cliente hacia una solución técnica preliminar, que es una pieza clave para
producir una estimación del esfuerzo necesario para realizar el desarrollo. El arquitecto puede, de hecho,
también participar en el trabajo de estimación del sistema. Durante esta etapa del proyecto, el arquitecto
debe hacer uso de habilidades técnicas (“duras”) y no-técnicas (“suaves”). Como parte de las habilidades
técnicas, debe poder identificar estilos arquitectónicos y tecnologías que sean apropiados para resolver el
problema y proponer una solución preliminar. Como parte de las habilidades no-técnicas, debe ser capaz de
realizar un análisis de las necesidades del cliente, especialmente desde una perspectiva de negocio y poder
explicar la solución técnica que propone a los distintos involucrados del proyecto.

Requerimientos. Durante la fase de requerimientos, el arquitecto de software se involucra con los


requerimientos que influyen en la arquitectura (“drivers”) y particularmente con respecto a los atributos de
calidad del sistema. El arquitecto debe preocuparse por que se identifiquen atributos de calidad pertinentes
para el sistema (alineados a los objetivos de negocio) y que las métricas asociadas estén justificadas. En caso
de que el cliente solicite atributos de calidad con métricas muy demandantes (por ejemplo una
disponibilidad del 99.99%) debe ser capaz de entender la justificación de esas métricas y, en caso necesario,
debe poder negociar con el cliente para establecer métricas adecuadas. Nuevamente, el arquitecto debe
emplear aquí una combinación de habilidades “duras” y “suaves” con el fin de lograr una identificación
adecuada de los requerimientos que influirán sobre el diseño arquitectónico.

Instrucciones - Montero Jonathan 3


Diseño del sistema. La etapa de diseño del sistema es aquella donde el arquitecto de software juega el papel
principal, particularmente al momento de diseñar la arquitectura. Aquí el arquitecto debe hacer uso de
todas sus habilidades técnicas con el fin de establecer una solución técnica pertinente que satisfaga, en la
medida de lo posible, los requerimientos que influyen en la arquitectura (ver Figura 1. La realización del
diseño requiere de muchos conocimientos técnicos.

Durante la etapa de diseño, el arquitecto debe también hacer uso de muchas habilidades no-técnicas. La
comunicación durante esta etapa es fundamental, ya que el arquitecto debe ser capaz de comunicar el
diseño, y las decisiones que lo llevaron al mismo, ya sea de forma escrita, como parte de la documentación
de la arquitectura, o bien de forma oral al explicar el diseño de la arquitectura al equipo de desarrollo.
Durante la evaluación del diseño de la arquitectura, el arquitecto debe ser capaz de presentar el contexto del
problema y el diseño de la arquitectura al comité de evaluación, y debe ser capaz de responder a las
preguntas de dicho comité, o bien de aceptar las observaciones que se hacen al diseño.

Construcción y pruebas del sistema. Durante de la construcción del sistema, el esfuerzo técnico del
arquitecto disminuye, aunque ésto no significa que ya no se realizan actividades técnicas. En esta etapa,
desde un punto de vista técnico, el arquitecto debe terminar de completar las partes faltantes del diseño de
la arquitectura y corregir las decisiones previas que hayan resultado ser equivocadas. Desde un punto de
vista no-técnico, el esfuerzo aumenta pues el arquitecto debe enfocarse en cuidar que el sistema se
desarrolle de acuerdo a la arquitectura que se definió para el mismo. Aquí el arquitecto juega un papel de
mentor y muchas veces debe explicar cuestiones del diseño del sistema al equipo de desarrollo. El arquitecto
puede también realizar actividades de aseguramiento de calidad tales como inspecciones de productos de
trabajo, ya que su nivel técnico y conocimiento del dominio del problema le da una ventaja para identificar
problemas que posiblemente podrían no ser identificados por ingenieros con un nivel técnico y
conocimiento del dominio del problema menores. Al momento de realizar pruebas del sistema, la
participación del arquitecto es importante, particularmente al momento de realizar pruebas relativas a los
atributos de calidad del sistema.

Instrucciones - Montero Jonathan 4


Liberación. Al momento de implantar el sistema en el ambiente productivo, muchas veces es necesario
realizar ajustes finos sobre el sistema, en particular una vez que el sistema ya está operando en el ambiente
de uso definitivo. La participación del arquitecto puede estar enfocada a realizar ajustes finos de la
aplicación con el fin de lograr un funcionamiento óptimo de la misma.

Principales características.

 Crea una base solidad del proyecto.


 Consigue que la plataforma creada sea escalable.
 Aumenta el rendimiento de la plataforma.
 Reduce costos y evita duplicación de código.
 La arquitectura del software sirve de manera de garantizar un buen IT (Integración de Tecnologías),
puesto que la arquitectura debe conservarse durante toda la creación, generación una visión del
producto de forma que pueda bajar pequeñas partes de código y saber enlazarlas con el resto.
 Debe mantener una línea lógica y en ocasiones tener un sustento para asegurar el resultado exitoso.
 El arquitecto desarrollador tiene que tener la visión del proceso e incluyendo el producto final, de
igual manera sabe en que aspectos se puede ahorrar gastos lo antes posible, de forma que se pueda
reutilizar procesos y parte de los datos para optimizar el máximo cada proceso evolutivo, buscando a
su vez la perfección de este.
 Lo anterior sirve para identificar el código aun visible y al cual ya se tiene conocimiento sobre el, esto
permite encontrar problemas con mas facilidad y por lo tanto la solución posible (mantenimiento
controlado).

El reutilizar códigos nos ayuda a:

 Mejora de calidad en la plataforma


 Ayuda en tareas complejas.
 Plataformas más rápidas.
 Nos permite mayor adaptabilidad.
 Ayuda en la gestión de riesgos y con ello el porcentaje de fracaso.
 Reduce tiempo y de entrega de proyectos.
 Da prioridad a los conflictos y permite la comunicación entre las partes previas a su implementación.

Aspectos principales que tiene que tomar en cuenta un arquitecto de software


 Usuario final. Se debe de tomar en cuenta al usuario final ya que muchas veces suele ser intuitivo y
exigente. Por tanto, debemos presentar el producto que sea fiable, funcional, de uso muy fácil y con
un buen rendimiento para el usuario.
 El administrador del sistema. Debe estar alerta por el comportamiento del desarrollo, así como
controlas las herramientas que nos ayudaran a sostenerlo.
 El vendedor. Tiene que ser consciente de que la competencia es alta, pero a tal caso debe saber
satisfacer al usuario que el producto cumple expectativas que en otros lados no, cuales son los costo
que benefician al usuario con un producto mejor.

Instrucciones - Montero Jonathan 5


 El cliente. Siempre estará en la defensiva de que en todo momento su producto tiene que estar
estable y que el costo final sea aceptable.
 El desarrollador. Estará siempre atento que los requisitos en donde trabajará cumplan con el diseño
y coherencia necesaria.
 El project Manager. Consciente del presupuesto, los recursos, el coste y el timing de entrega, su
misión es conseguir que todo se cumpla. Para eso, coordina a los desarrolladores y hace de
intermediario con el cliente.
 The maintainer. Se preocupa por finalizar el proyecto con contenidos coherentes y comprensibles.
Documenta el diseño para que sea más sencilla su ejecución y que futuras modificaciones sean más
factibles.

El ciclo de desarrollo de la arquitectura

Requerimientos. La etapa de requerimientos se enfoca en la captura, documentación y priorización de


requerimientos que influencian la arquitectura. Como se mencionó anteriormente, los atributos de calidad
juegan un papel preponderante dentro de estos requerimientos, así que esta etapa hace énfasis en ellos.
Otros requerimientos, sin embargo, son también relevantes para la arquitectura, estos son los
requerimientos funcionales primarios y las restricciones.

Diseño. La etapa de diseño es la etapa central en relación con la arquitectura y probablemente la más
compleja. Durante esta etapa se definen las estructuras que componen la arquitectura. La creación de estas
estructuras se hace en base a patrones de diseño, tácticas de diseño y elecciones tecnológicas. El diseño que
se realiza debe buscar ante todo satisfacer los requerimientos que influencian a la arquitectura, y no
simplemente incorporar diversas tecnologías porque están “de moda”.

Documentación. Una vez creado el diseño de la arquitectura, es necesario poder comunicarlo a otros
involucrados dentro del desarrollo. La comunicación exitosa del diseño muchas veces depende de que dicho
diseño sea documentado de forma apropiada. La documentación de una arquitectura involucra la
representación de varias de sus estructuras que son representadas a través de distintas vistas. Una vista
generalmente contiene un diagrama, además de información adicional, que apoya en la comprensión de
dicho diagrama.

Evaluación. Dado que la arquitectura de software juega un papel crítico en el desarrollo, es conveniente
evaluar el diseño una vez que este ha sido documentado con el fin de identificar posibles problemas y
riesgos. La ventaja de evaluar el diseño es que es una actividad que se puede realizar de manera temprana
(aún antes de codificar), y que el costo de corrección de los defectos identificados a través de la evaluación
es mucho menor al costo que tendría el corregir estos defectos una vez que el sistema ha sido construido.

Concepto de arquitectura de software.

El concepto principal de la arquitectura de software es un diseñador que tenga conocimientos previos


técnicos sobre la estructura de un equipo electrónico, al cual dará gran margen al proyecto y con ello el
inicio del proyecto, al cual se integraran los desarrolladores de software.

Instrucciones - Montero Jonathan 6


INTEGRACION DE RETROALIMENTACION
Los elementos del diseño de software.
 Diseño de datos
Se encarga de modelar la estructura de datos que necesitan dar soporte al software.
 Diseño arquitectónico
El diseño se especifica en requerimiento que se obtienen en base del análisis, esto tratando de
organizar las funciones, a si de esta manera se debe mostrar la relación que tiene el sistema,
subsistema y interacción con otros sistemas.
 Diseño de interfaces
El diseño de interface se caracteriza por interactuar con el usuario que con el mismo sistema.
 Diseño a nivel de componente.
Descripción de procedimientos de cada una de las partes del diseño.

La explicación del objetivo del diseño de software.

Como se comentaba en la importancia de la arquitectura del software, el objetivo principal es


tener en mente y en cuenta los requisitos del sistema antes de la programación, esto utilizando
lenguaje ADL.

Ante todo, esto la construcción y visualización de un diseño permite mejoras de un proyecto al cual
se nos

La ejemplificación mínimo dos principios del diseño de software.

Principio de responsabilidad única

El principio de responsabilidad única nos dice que cada clase tiene que tener una responsabilidad
única y concreta.

Cuando se inicia el desarrollo se tiene que tomar decisiones que derivan en clases, a lo cual con el
paso del desarrollo se empieza a perder coherencia.

Principio de abierto-cerrado

Este principio nos habla de no modificar códigos de una clase o entidad, si no que al querer hacer
esto mejor debemos extenderlas para que esto no se altere y pueda cumplir la función, de igual
manera la función debe de tener coherencia y el código debe estar muy bien diseñado.

Instrucciones - Montero Jonathan 7


Conclusión.

Para terminar con esta actividad se realiza la retroalimentación, a lo cual con las otras actividades me va
quedando mas claro el termino arquitectónico del desarrollo del software.

En la programación la base principal de un excelente software es la reconstrucción de este, a base de


lenguaje ADL, esto sirve para tener un buen diseño y coherencia de proyecto.

Bibliografía

ARQUITECTURA DE SOFTWARE Y SUS BENEFICIOS

Disponible en https://apiumhub.com/es/tech-blog-barcelona/arquitectura-de-software/ Recuperado el día


07-10-2018
El Rol del Arquitecto de Software

Disponible en https://sg.com.mx/revista/33/el-rol-del-arquitecto-software Recuperado el día 07-10-2018


Arquitectura de Software

Disponible en https://sg.com.mx/revista/27/arquitectura-software Recuperado el día 07-10-2018


Arquitectura de software

Disponible en https://es.wikipedia.org/wiki/Arquitectura_de_software Recuperado el día 07-10-2018


U1_concepto_de_arquitectura_de_software.pdf

Disponible en https://unadmexico.blackboard.com/bbcswebdav/institution/DCEIT/2016_S1-
B2/DS/04/DDRS/U1/Descargables/Material_de_apoyo/U1_concepto_de_arquitectura_de_software.pdf
Recuperado el dia 07-10-2018
Principios básicos del diseño de software

Disponible en https://mvpcluster.com/diseno-de-software-2/ Recuperado el dia 07-10-2018

Instrucciones - Montero Jonathan 8

You might also like