|
Sérgio Pinheiro -
Artigos - Arquitetura de Software 
Mas qual é a necessidade de um Arquiteto?
Você deve conhecer algum pedreiro ou um auxiliar muito bom, o Sr. José,
que é amigo de alguém da sua família. Ele assentava pisos, enchia lajes, trocava
janelas, etc. E fazia tudo isto muito bem. Agora pense um pouco sobre o seu local
de trabalho e o edifício onde ele está localizado. Tente pensar em alguns dos detalhes
da sua concepção e construção:
- Iluminação natural, noturna e de emergência;
- Saídas de incêndio e Acesso para deficientes;
- Organização das posições de trabalho, garantindo
equilíbrio entre integração
entre os funcionários e a privacidade necessária a concentração;
- Infra-estrutura de comunicação, incluindo cabeamento, roteadores e pontos
de voz e dados.
Será que aquele Sr. José, estaria capacitado a desenhar este mesmo edifício, levando
em consideração todos estes detalhes, possíveis mudanças futuras e adequação e minimização
de custos?
Arquitetura de Software
A efetividade do uso de arquitetura como estrutura para reuso pode ser vista através
de analogias feitas com campos estabelecidos, tais como engenharia civil e química.
A arquitetura de software serve como uma estrutura que permite o entendimento de
componentes de um sistema e seus inter-relacionamentos, especialmente àqueles atributos
que são consistentes ao longo do tempo e implementações.
Desta forma para o desenvolvimento de software de qualidade, não basta você possuir
gerentes de projeto, desenvolvedores, analistas de negócios e de banco de dados,
envolvidos no processo de construção. Cada um destes profissionais possui
visão limitada às suas áreas de competência, o que torna difícil encontrar respostas
para algumas perguntas:
- Como cada módulo de sua aplicação será integrado ao sistema?
- Como a integração, com outros sistemas da empresa ou sistemas de parceiros,
clientes e fornecedores, afetaria sua aplicação?
- Como utilizar de maneira adequada os recursos de memória, processadores
e discos dos seus servidores?
- Como garantir a escalabilidade necessária à sua aplicação na mesma proporção
das necessidades do seu negócio?
Objetivos do Design de Aplicações
Distribuídas
Aliado a um conhecimento profundo da tecnologia envolvida e conhecimento oportuno
dos processos de negócio e níveis de escalabilidade, disponibilidade, segurança
e manutenibilidade necessárias, o papel da arquitetura de software no processo de
engenharia de software será desenhar uma aplicação que:
- Solucione o problema de negócio que ela foi desenhada para endereçar
de maneira simples e produtiva;
- Considere questões de segurança, desde o inicio, levando em consideração
mecanismos apropriados de autenticação, lógica de autorização e comunicação segura;
- Possua alto desempenho e esteja otimizada para operações comuns em vários
padrões de deployment;
- Seja disponível e resistente, e possa ser distribuída em data centers
redundantes e altamente disponíveis;
- Escale para atingir a demanda esperada, e suporte um grande numero de
transações e usuários com mínima utilização de recursos;
- Seja gerenciável, permitindo aos operadores distribuir, monitorar e
solucionar problemas na aplicação conforme apropriado ao cenário;
- Facilidade de manutenção e incorporação de novos recursos;
Cada peça de funcionalidade deve possuir uma localização e desenho previsível, levando-se
em conta diversos tipos de aplicação, times com diversos níveis de conhecimento
e mudanças nos requisitos técnicos e de negócios;
- Tenha Produtividade no Desenvolvimento do Software;
- Trabalhe em vários cenários de aplicação e padrões de distribuição.
A Dot-Insight possui arquitetos especializados em Microsoft .NET Framework e Windows
DNA, que podem auxiliar a sua empresa no desenho e implementação da arquitetura
mais adequada à sua aplicação, minimizando custos e potencializando resultados através
do uso da tecnologia e software de qualidade.
Saiba mais sobre:
|