Uma arquitetura executável é uma Construção que realiza um subconjunto da arquitetura. Esta construção é utilizada
para validar que um subconjunto dos Requisitos Arquiteturalmente Significantes está corretamente implantada. O
subconjunto irá incluir todos os requisitos arquiteturalmente significantes quando a arquitetura estiver completa. Isto
valida a arquitetura como um todo integrado através dos testes de integração. A equipe obtém feedback, dos analistas de
negócios, a respeito da arquitetura, submetendo a arquitetura executável para verificação. Desta forma a arquitetura
executável ajuda a garantir que a funcionalidade essencial está suficientemente estável para construir o restante do
sistema.
Uma arquitetura executável não é um produto de trabalho. É uma identificação ou um atributo de uma construção indicando
que a construção contém funcionalidade arquiteturalmente significante estável.
Cada versão de uma arquitetura executável deve ser mais completa e robusta do que as versões anteriores. A arquitetura
executável final contém todos os elementos que compõem a arquitetura e deve validar todos os requisitos
arquiteturalmente significantes. Podem existir raras exceções em que uma parte da arquitetura não possa ser
implementada até que incontroláveis circunstâncias como restrições com software de terceiros ou recursos únicos que não
estão disponíveis. Retardar qualquer parte da arquitetura deve ser evitado, uma vez que aumenta significativamente o
risco técnico no fim do projeto. Mas, se as circunstâncias exigirem que algum risco arquitetural não possa ser atenuado
até o final do desenvolvimento, uma decisão consciente pode ser tomada para levar em frente este risco até que a
arquitetura possa ser implementada integralmente. Neste caso, a arquitetura executável não irá conter todo a Arquitetura de Software.
Também é possível incluir elementos não-arquiteturais em uma arquitetura executável. Isto é mais provável de acontecer
quando se aborda questões de alto risco no início do ciclo de desenvolvimento, o que é uma excelente prática. Dois
exemplos de riscos não-técnicos são riscos de recursos e riscos concorrentes. Pode ser desejável obter um recurso
"difícil de ter" o mais cedo possível de forma que eles possam trabalhar em um único componente de software, ao
invés de esperar que o recurso esteja disponível mais tarde. Pense na arquitetura executável como uma forma de
atenuar o risco arquitetural, que é o risco técnico mais importante em um projeto. Deste ponto de vista, é apropriado
atenuar outros riscos na arquitetura executável.
A diferença entre a arquitetura executável e uma construção do final do ciclo de desenvolvimento é que a arquitetura
executável é o resultado de um período de desenvolvimento (por exemplo, uma iteração), que é dedicada para elaborar a
arquitetura. As iterações tardias são construídas sob a arquitetura executável, mas não são assinaladas como
arquitetura executável porque elas estendem a funcionalidade do sistema, além do framework arquitetural.
|