Zusammenfassung der Ressource
ARQUITECTURA DE SOFTWARE
- Uno de los problemas fundamentales del
software y la computación
- Refiere la especificación de la estructura del sistema, entendida
como la organización de componentes y relaciones entre ellos;
los requerimientos que debe satisfacer el sistema y las
restricciones a las que está sujeto, así como las propiedades no
funcionales del sistema y su impacto sobre la calidad del
mismo; las reglas y decisiones de diseño que gobiernan esta
estructura y los argumentos que justifican las decisiones
tomadas.
- Importancia
- Antecedentes
- Edsger Dijkstra, propuso que se establezca una
estructuración correcta de los sistemas de
software antes de lanzarse a programar,
escribiendo código de cualquier manera.
- P. I. Sharp... “Lo que sucede es que las especificaciones de
software se consideran especificaciones funcionales. Sólo
hablamos sobre lo que queremos que haga el programa.”
- David Parnas: “ ... las decisiones tempranas de
desarrollo serían las que probablemente permanecerían
invariantes en el desarrollo ulterior de una solución.”
Estas “decisiones tempranas” constituyen lo que hoy
se conoce como “decisiones arquitectónicas”.
- Perry y Wolf modelo para la arquitectura de
software que consiste en tres componentes:
elementos, forma y razón (rationale)
- Componentes
- Elementos
- Forma
- Razón
- Caracteristicas
- Nivel del diseño de software donde
se definen la estructura y
propiedades globales del sistema.
- Incluye modelos, lenguajes y herramientas
para la descripción y desarrollo práctico
de arquitecturas de software.
- Objetivos
- Comprender (abstracción) y
mejorar la estructura de las
aplicaciones complejas.
- Planificar la evolución de la
aplicación, identificando las
partes mutables e inmutables
de la misma, así como los
costos de los posibles cambios.
- Reutilizar dicha estructura
(o partes de ella) para
resolver problemas
similares.