A função de arquiteto de software é responsável pela arquitetura de software, que inclui as principais decisões técnicas que limitam o design e a implementação gerais para o projeto.


Tópicos

 
Sinal
Sinal


Modelo de Implementação
Modelo de
Implementação

           
 
Prova de Conceito Arquitetural
Prova de
Conceito
Arquitetural


Arquitetura de Referência
Arquitetura
de Referência


Modelo de Implementação
Modelo de
Implementação


Modelo de Design
Modelo de
Design


Documento de Arquitetura de Software
Documento
de Arquitetura
de Software


Modelo de Análise
Modelo de
Análise


Evento
Evento


Interface
Interface

 
Responsável por
 

Arquiteto de Software
Arquiteto
de Software


Incorporar Elementos de Design Existentes
Incorporar
Elementos
de Design
Existentes


Estruturar o Modelo de Implementação
Estruturar
o Modelo
de Implementação

           

Descrever a Distribuição
Descrever
a Distribuição


Descrever a Arquitetura em Tempo de Execução
Descrever
a Arquitetura
em Tempo
de Execução


Construir Prova de Conceito Arquitetural
Construir
Prova de
Conceito
Arquitetural


Avaliar Viabilidade de Prova de Conceito Arquitetural
Avaliar
Viabilidade
de Prova
de Conceito
Arquitetural


Análise Arquitetural
Análise
Arquitetural


Priorizar Casos de Uso
Priorizar
Casos de
Uso


Identificar Mecanismos de Design
Identificar
Mecanismos
de Design


Identificar Elementos de Design
Identificar
Elementos
de Design

 
 
Modifica
 
Registro de Revisão
Registro
de Revisão


Classe de Análise
Classe de
Análise


Requisito de Software
Requisito
de Software


Subsistema de Design
Subsistema
de Design


Pacote de Design
Pacote de
Design


Classe de Design
Classe de
Design


EJB (Enterprise Java Bean)
EJB (Enterprise
Java Bean)


Subsistema de Implementação
Subsistema
de Implementação


DescriçãoPara o início da página

O arquiteto de software possui responsabilidade geral pela tomada das principais decisões técnicas, expressas como a arquitetura de software. Isso inclui, normalmente, a identificação e a documentação dos aspectos significativos do ponto de vista da arquitetura do sistema, incluindo "visualizações" de requisitos, de design, de implementação e de organização do sistema.

O arquiteto também é responsável pelo fornecimento de fundamentos para essas decisões, avaliando os interesses dos vários investidores, conduzindo os riscos técnicos e assegurando que as decisões sejam comunicadas, validadas e seguidas efetivamente.

Informações Relacionadas To top of page

Esta seção fornece links para informações adicionais relacionadas a esta função.

 

Criação da Equipe To top of page

Habilidades To top of page

"O arquiteto ideal deve ser uma pessoa erudita, um matemático, familiarizado com estudos históricos, um estudioso aplicado de filosofia, conhecedor de música, que não desconheça medicina, detentor de saber jurídico e familiarizado com astronomia e cálculos astronômicos." - Vitruvius, aproximadamente 25 AC

Em resumo, o arquiteto de software deve ter grande conhecimento geral, possuir maturidade, visão e profunda experiência que permita identificar problemas rapidamente e dar opiniões sensatas e criteriosas na falta de informações completas. Mais especificamente, o arquiteto de software ou os membros da equipe de arquitetura devem combinar as seguintes habilidades:

  • Experiência no domínio do problema, conhecendo totalmente os requisitos e no domínio de engenharia de software. Se há uma equipe, essas qualidades podem se achar distribuídas entre os seus membros, mas deve existir pelo menos um arquiteto de software que ofereça a visão global do projeto.
  • Liderança para conduzir o esforço técnico entre as várias equipes, tomar decisões críticas sob pressão e fazer com que essas decisões sejam cumpridas à risca. Para melhor eficiência, o arquiteto de software e o coordenador de projeto devem trabalhar juntos, com o arquiteto de software responsável pelas questões técnicas e o coordenador de projeto cuidando dos assuntos administrativos. O arquiteto de software deve ter poder para tomar decisões técnicas.
  • Comunicação para conquistar confiança, persuadir, motivar e servir como mentor. O arquiteto de software não pode liderar por decreto, mas somente com o consentimento dos outros membros da equipe do projeto. Para desempenhar sua função com eficiência, o arquiteto de software deve conquistar o respeito da equipe do projeto, do gerente do projeto, do cliente, da comunidade de usuários e da equipe de gerenciamento.
  • Orientação por metas e Proatividade com enfoque inexorável nos resultados. O arquiteto de software é a força técnica orientadora existente por trás do projeto, não um visionário ou sonhador. A carreira de um arquiteto de software bem-sucedido consiste em uma longa série de decisões insatisfatórias, tomadas com incerteza e sob pressão. Somente aqueles que se concentram em fazer o que deve ser feito terão êxito nesse ambiente do projeto.

Do ponto de vista do conhecimento, o arquiteto de software também precisa incluir os recursos de Função: Designer. No entanto, ao contrário do designer, o arquiteto de software:

  • tende a ser generalista, em vez de especialista, conhecendo muitas tecnologias em um nível superior, em vez de algumas tecnologias no nível de detalhe
  • toma decisões técnicas mais amplas e, portanto, amplo conhecimento e experiência, assim como habilidades de comunicação e de liderança, são importantes.
Abordagens de designação da função To top of page

Se o projeto for grande o suficiente para justificar uma equipe de arquitetura, a meta é ter uma boa combinação de talentos que abranjam uma ampla variedade de experiências e tenham um entendimento comum do processo de engenharia de software. A equipe de arquitetura não precisa ser um comitê de representantes de diversas equipes, domínios ou contratados. A arquitetura de software é uma função em período integral, que exige dedicação permanente do pessoal envolvido.

Para projetos menores, uma única pessoa pode agir como coordenador de projeto e como arquiteto de software. No entanto, se for possível, é melhor que essas funções sejam executadas por pessoas separadas para assegurar que a pressão do tempo sobre uma função não cause a negligência da outra função.

Leitura Adicional To top of page

Consulte a página de referências, especialmente as referências sobre Arquitetura de Software.



Rational Unified Process   2003.06.15