<< Chapter < Page | Chapter >> Page > |
O propósito da criação do padrão ISO/IEEE 1471-2000 [link] foi o de ajudar no consenso entre autores, estudantes eprofissionais sobre o que é e para que serve arquitetura de software. Assim, essepadrão não só define arquitetura de software, mas também introduz um arcabouço conceitualpara descrição arquitetural. Sua definição de arquitetura de software, a qual nósadotaremos ao longo do livro, é a seguinte:
Podemos perceber que a definição acima é consistente com as anteriores portambém mencionar que arquitetura compreende estrutura (ou elementos ou componentes),relações, e decisões (ou princípios). No entanto, ela vai além adicionando maisuma preocupação à arquitetura: conduzir a evolução do software.
Evolução de software é o fenômeno de mudança que ocorre no softwareao longo dos anos e das múltiplas versões, desde seu início até o completo abandonodo sistema. Essa mudança não está só relacionada com a adição e remoção de funcionalidades,mas também está relacionada com a manutenção do código ao longo do ciclo de vida dosoftware. Essa manutenção pode melhorar ou deteriorar tanto atributos externosde qualidade do software, os quais são percebidos pelos usuários (e.g., desempenho,tolerância a falhas, disponibilidade), quanto atributos internos de qualidadedo software, os quais são percebidos pelos envolvidos no desenvolvimento (e.g., testabilidade,legibilidade, reusabilidade).
Uma vez que um dos principais objetivos de se projetar uma arquiteturaé o de atingir a qualidade desejada pelos interessados no sistema, se torna claroo papel da arquitetura em conduzir a evolução do software, uma vez que ela conterá decisõesque contribuirão para a preservação da qualidade do sistema durante seu ciclode vida.
Antes de entrarmos em detalhes sobre os diversos aspectos de arquiteturade software, devemos entrar em consenso sobre o termo “componente de software”.Em Engenharia de Software, “componentes” têm vários significados divergentes. Umsignificado, de acordo com o Standard Computer Dictionary [link] , é que um componente é uma das partes que compõem o sistema.Dessa maneira, “componente” pode ser substituído por “módulo”, “unidade”, ou mesmo “elemento”de software. É esse o significado de “componente” usado no padrão ISO/IEEE 1471-2000 e queserá usado ao longo deste livro.
Notification Switch
Would you like to follow the 'Arquitetura de software' conversation and receive update notifications?