O design de arquiteturas de software não é diferente do design em geral:

O design de arquiteturas de software envolve a tomada de decisões, trabalhando com os skills e técnicas disponíveis, para satisfazer requisitos e restrições.

No design arquitetônico, tomamos decisões para transformar os requisitos, restrições e preocupações arquiteturais, que chamamos de drivers arquiteturais, em estruturas de uma solução de software. Estas estruturas são então usadas para orientar o projeto. Elas orientam a análise e a construção e servem de base para capacitar um novo membro do time. Elas também orientam o custo e estimativa de cronograma, formação de equipes, análise e mitigação de riscos, e claro, a implementação do software.

O design de arquiteturas de software é, portanto, um passo fundamental para alcançar as suas metas de produtos e projetos. Alguns desses são objetivos técnicos (por exemplo, obter uma latência baixa e previsível em um site de e-commerce), e alguns são não-técnicos (por exemplo, manter a força de trabalho alocada, entrar num novo mercado ou cumprir um prazo). As decisões que você fizer como arquiteto vão ter implicações para a realização destes objetivos e podem, em alguns casos, estar em conflito. A escolha de uma arquitetura de referência particular (por exemplo, um aplicativo desktop) pode prover uma boa base para alcançar os seus objetivos de latência baixa e irá manter a sua força de trabalho alocada, porque eles já estão familiarizados com a arquitetura de referência e sua pilha de tecnologia de apoio. Mas esta escolha pode não ajudá-lo a entrar em um novo mercado mobile, por exemplo.


Em geral, ao fazer a alteração de alguma estrutura para alcançar um atributo de qualidade, ela pode ter efeitos negativos sobre outros atributos de qualidade. Estes tradeoffs são um fato da vida para cada arquiteto praticante em todos os domínios. Assim, o trabalho do arquiteto não é encontrar uma solução ideal, mas sim satisfatória buscando através de um espaço potencialmente grande de alternativas de design e decisões até que uma solução viável e estável seja encontrada.

E você, como tem feito o design das suas arquiteturas?   

Fonte:

Exibições: 485

Comentar

Você precisa ser um membro de PanGea para adicionar comentários!

Entrar em PanGea

Comentário de Adriano Tavares em 31 maio 2016 às 20:19

O livro fala de ADD 3.0. Essa nova versão do método aborda algumas melhorias como o design no contexto de pré-vendas e no contexto de projetos e como fazer o design em iterações no contexto de projetos ágeis.

Os autores apresentaram o ADD 3.0  no SATURN 2015. Segue o link da apresentação - http://resources.sei.cmu.edu/asset_files/Presentation/2015_017_101_... Tem um exemplo muito bacana mostrando o que fazer em cada iteração e como utilizar o Microsoft Architeture Guide como arquitetura de referência. Top demais!!

Comentário de Adriano Tavares em 31 maio 2016 às 20:16

Valeu Paulo,

obrigado também pelos links. 

Comentário de Adriano Tavares em 31 maio 2016 às 20:16

Isso Kiko, 

vc reforçou pontos importantes que o design pode e deve endereçar. Obrigado pela indicação do livro sobre riscos. 

Comentário de Paulo Vitor Pereira Cotta em 31 maio 2016 às 12:07

Massa, um bom design arquitetural facilita muita nas criações de suas API's e componentes. Gostei da referencia do livro. Segue mais alguns links de estudo meus.

http://users.ece.utexas.edu/~perry/work/papers/swa-sen.pdf

http://www.tutorialspoint.com/software_architecture_design/key_prin...

Comentário de Henrique Lobo Weissmann em 31 maio 2016 às 10:34

Muito bacana mencionar os objetivos não técnicos da arquitetura Adriano,

pessoalmente, sinto muita falta de literatura que aborde os aspectos que chamo de "aspectos excel" da Arquitetura e que também deveriam ser mais levados a sério:

* Estudos econômicos (CapEx/OPex - quanto custa para fazer, quanto custa para manter?)

* Análise de risco (sobre isto, existe um livro fantástico que terminei agora, chamado "O Risco de TI", da editora Makron Books - http://www.mbooks.com.br/cgi-bin/e-commerce/busca_e-commerce.cgi?lv...)

* Ainda relacionado ao risco, a questão da segurança da informação (modelagem de ameaças, por exemplo, que inclusive devemos lançar um guia gratuito por agora pela itexto)

* Análise da própria capacidade da equipe que irá implementar a arquitetura

Bacana a indicação de leitura, vou ler (suas indicações sempre foram muito boas pra mim), valeu!

Evento TDC2016

Badge

Carregando...

© 2017   Criado por Adriano Tavares.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço