fbpx

Artigos Rem soft Sistemas

Capacidades da Arquitetura Ideal

 
 
Gostaria de abordar hoje sobre as capacidades que uma arquitetura bem planejada deve contemplar para proporcionar bons índices de qualidade. Este tema se torna extremamente importante se olharmos sob a ótica de que a qualidade afeta diretamente a satisfação do cliente e envolvidos com o sistema, sendo um ponto fundamental para o sucesso de um projeto de software.
 
Foram eleitas basicamente as seguintes 11 capacidades:
 
Disponibilidade
 
É a capacidade do sistema se manter no ar para uso devido. Diz-se que o sistema possui alta disponibilidade quando se mantém disponível a maior parte do tempo. Quando se contrata serviços de infra-estrutura, geralmente é acorda um percentual de disponibilidade que tal infra deve garantir, podendo pagar multas caso não cumpra o acordo, são as chamadas SLA’s de disponibilidade.
 
 
 Robustez
 
É a característica pela qual se mede o nível de tolerância a falhas do sistema. O software deve ser capaz de prever situações inusitadas vindas de seus usuários e reagir com medidas que o mantenha estável, ou seja, sem apresentar falhas.
 
 
Gerenciabilidade
 
É a capacidade que mede o quão um sofware é configurável. A configuração dos níveis de logs gerados por um determinado software é um bom exemplo disso.
 
 
 Flexibilidade
 
Característica inerente à maneira em como um determinado software se comporta à mudanças, tanto arquiteturais quanto funcionais. Por exemplo, se um software hoje acessa uma base de dados Oracle, diz-se que ele é flexível caso seja possível mudá-lo para acessar uma base de dados SQL Server sem que para isso sejam necessárias grandes alterações em seu código-fonte.
 
 
 Desempenho
 
Esta característica está relacionada à utilização de recursos, como por exemplo, o tempo de processamento de uma grande quantidade de mensagens em uma fila JMS ou o tempo de processamento de uma consulta no banco de dados.
 
 
 Capacidade
 
Se refere às limitações impostas ao sistema, com o que o sistema deve suportar. Por exemplo: um sistema deve suportar 500 acessos simultâneos.
 
 
Resiliência
 
Este nome um tanto quanto “exótico” se refere ao grau de estabilidade do sistema mediante a picos de processamentos. Exemplo: um determinado sistema tem que suportar uma carga durante 3 horas e depois voltar ao seu estado normal sem sofrer quedas ou gerar defeitos.
 
 
Escalabilidade
 
É a capacidade de um determinado sistema ser flexível a ponto de prever o seu crescimento, ou seja, possbilita o seu incremento de funcionalidade e capacidades sem se tornar obsoleto, acompanhando sempre as necessidades do usuário.
 
 
Extensibilidade
 
É a capacidade que o sistema tem de crescer pela adição de novos componentes e que, muitas vezes, permita ao sistema fazer algo que ele já faz, mas de forma diferente. O polimorfismo em classes é um bom exemplo de extensibilidade em sistemas orientados a objetos, sendo possível através do uso de programação para interfaces e  nunca para classes com implementação concreta.
 
 
 Reusabilidade
 
Permite que um determinado sistema seja usado em contextos diferentes, ou então, que seus componentes sejam usados também em outras aplicações. Este tipo de reusabilidade de componentes facilita muito o desenvolvimento de aplicações corporativas, pois, proporciona uma maior facilidade de manutenção e ganho na produtividade do software.
 
 
Segurança
 
É a característica que permite avaliar o quanto um sistema é protegido, dadas as suas condições de exposição, contra ataques ou falhas internas ou externas que gerem inconsistências em suas informações ou outros tipos de defeitos, compromentendo a todas as outras capacidades aqui citadas.
Um bom sistema deve prover condições de segurança nos quisitos autenticidade,  confidencialidade,  integridade e disponibilidade.
 
 
 
Fico por aqui pessoal. Para qualquer dúvida ou complemento das informações aqui postadas, não deixem de postar os seus comentários.   😉
 
Um grande abraço e até o próximo post!
 
.
  • Rem Soft Sistemas

    REM SOFT é uma abreviação de REMOTE SOFTWARE, pois somos especialistas em prover soluções digitais com larga experiência no trabalho remoto. Pensamos sempre “fora da caixa” quando se trata de inovação. Nossa equipe é apaixonada por tecnologia e atendimento diferenciado aos clientes. Nossas equipes são organizadas em Squads multidisciplinares e temos o HOME OFFICE no nosso DNA.

Escrito por:

Está gostando do conteúdo? Compartilhe!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Artigos Recentes

Design Pattern Bridge

O Design Pattern Bridge é um padrão de projeto estrutural que ajuda a dividir a abstração (o que algo faz) da implementação (como algo é feito). Essa separação permite que ambas possam evoluir de forma independente, ou seja, você pode mudar ou expandir tanto a parte abstrata quanto a parte

Leia Mais »

Armazenamento ODS com 3D nanoscale

O que é o ODS ? ODS ou armazenamento de dados ópticos, basicamente são os CDs, DVDs e Blu-ray que usávamos tanto no inicio dos anos 2000 para assistirmos filmes, jogar vídeo games, ouvir musicas e etc. mas que vem perdendo o espaço para as novas tecnologias de armazenamento como

Leia Mais »

Saúde Mental no Trabalho e Boas Práticas para Códigos Limpos

Introdução: Começar na carreira de desenvolvimento pode ser desafiador. A pressão para aprender novas tecnologias, resolver problemas complexos e entregar código de qualidade pode impactar a saúde mental. Uma das formas de reduzir o estresse no trabalho é adotar boas práticas de programação, como escrever código limpo e organizado, o

Leia Mais »

Como Algoritmos de Integração Melhoram a Eficiência das APIs

Como Algoritmos de Integração Melhoram a Eficiência das APIs? No mundo digital de hoje, as APIs (Interfaces de Programação de Aplicações) são como as veias que conectam diferentes sistemas, aplicativos e serviços. Para desenvolvedores e engenheiros de software, garantir que essas interfaces sejam rápidas, eficientes e resilientes é fundamental. Uma

Leia Mais »

Automação de Processos no Desenvolvimento de Software

Automação de Processos A automação de processos envolve o uso de softwares e/ou tecnologias para tornar os processos no desenvolvimento de produtos automáticos, reduzindo a necessidade de intervenção direta por parte dos humanos. O principal objetivo é melhorar a produtividade, aumentar a eficiência e diminuir a taxa de erros causada

Leia Mais »

Sobre o Autor

Mais sobre tecnologia

Gostou do Artigo?

Recebemos sua Assinatura com Sucesso!

Obrigado por assinar nossa newsletter!

Enviamos um e-mail para você confirmar sua assinatura, assim que confirmar passará a receber novidades em tecnologia da Rem Soft Sistemas.

Lembre-se sempre se caso não receber nosso e-mail na caixa de entrada,
Observe sua caixa de spam em seu e-mail.