A Tríade Vitruviana na Arquitetura de Software

Como leitor do nosso blog, possivelmente deve conhecer a inspiração do nome “De Architectura”, apesar de nossa pretensão ser muito menor que a de Vitruvius. Marcus Vitruvius publicou uma obra entitulada “De Architectura”, no século I d.C., com o objetivo de compilar o conhecimento arquitetônico da época, acrescentando sua visão pessoal à disciplina e dedicando-a a seu patrono e imperador.

 

Fonte de Trevi - Foto de Jacqueline Fouche

Fonte de Trevi - Foto de Jacqueline Fouche

“Todas (construções) devem possuir firmeza, utilidade e beleza.” – Marcus Vitruvius

A tríade vitruviana é composta pelos três elementos fundamentais da arquitetura: firmitas (estrutura), utilitas (utilidade) e venustas (estética). Através de citações da moderna arquitetura de software, apontaremos como esses elementos são igualmente aplicáveis para sistemas de software.

Firmitas

  • “A arquitetura de software para um sistema é a estrutura do sistema que compreende elementos, relações entre eles e as propriedades visíveis de tais elementos e relações.” – Bass, Clements e Kazman
  • “Arquitetura de software é a organização fundamental de um sistema.” – IEEE 1471
  • “Arquitetura de software trata do projeto e implementação da estrutura de alto nível do software” – Philippe Krutchen, em “The ‘4+1′ View Model of Software Architecture”

Utilitas

  • “Ela (a arquitetura de software) é o resultado da montagem de certo número de elementos arquiteturais em algumas formas bem escolhidas para satisfazer os principais requisitos de funcionalidade e performance do sistema tão bem quanto outros, os requisitos não funcionais tais quais confiabilidade, escalabilidade, portabilidade e disponibilidade.” – Philippe Kruchten, em “The ‘4+1′ View Model of Software Architecture”
  • “A arquitetura de software também envolve: funcionalidade, usabilidade, superação, performance, reuso, facilidade de compreensão, restrições econômicas e tecnológicas (…)”- Grady Booch
  • “As opções de design devem estar associadas aos requisitos, tanto funcionais quanto suplementares, e a outras restrições.” – RUP

Venustas

  • “A arquitetura de software também envolve (…) preocupações estéticas.”- Grady Booch
  • “(Sobre a) Beleza: Elegância não é uma aproximação para encontrar uma solução para um problema, é a etiqueta que nos colamos na solução ótima. Elegância é fazer mais com menos. Elegância significa simplicidade e menos código novo. Uma solução elegante resolve o problema inteiro. [Fisher & Gipson]” – Grady Booch
  • “Está claro que o critério estético participa de um papel determinante na coesão e composição do software (…) Além disso, aparentemente há uma notável interação entre o desenho do software e o software de desenho – e que esta autorreferência posteriormente é dirigida pela necessidade da estruturação estética de sistema de operações computacionais.” – IS-MCA

Referências:


1 comment to A Tríade Vitruviana na Arquitetura de Software

  • Sobre o elemento Venustas:

    “Most computer technologists don’t like to discuss it, but the importance of beauty is a consistent (if sometimes inconspicuous) thread in the software literature. Beauty is more important in computing than anywhere else in technology…Beauty is important in engineering terms because software is so complicated…Beauty is our most reliable guide to achieving software’s ultimate goal: to break free of the computer, to break free conceptually. Software is stuff unlike any other…Software’s goal is to escape this gravity field, and every key step in software history has been a step away from the computer, toward forgetting about the machine and its physical structure and limitations – forgetting that it can hold only so many bytes, that its memory is made of fixed size cells, that you refer to each cell by a numerical address. Software needn’t accept those rules and limitations. But as we throw off the limits, what guides us? How do we know where to head? Beauty is the best guide we have.”, David Gelernter, from “Machine Beauty: Elegance and the Heart of Computing”, Discover 09/97

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>