Projeto de arquitetura de software[1]

 

 

Jefferson Xenofonte Cardoso [2]

Renato Marques Granja [3]

RESUMO: O artigo a seguir fala sobre a importância da arquitetura de software, quais são os stakeholders que a arquitetura auxilia no projeto para desenvolvimento de um software, objetivo de se criar uma arquitetura de software e suas respectivas vantagens.

Palavras-chave: software, arquitetura, stakeholder, projeto, solução

1 Introdução

A arquitetura de software é uma representação de alto nível de todo o software que está em desenvolvimento, possibilitando uma maior facilidade no entendimento para os stakeholders do que está sendo desenvolvido, assim a arquitetura auxilia na tomada de decisão dos stakeholders, definindo a solução mais eficiente e com o menor custo possível. A arquitetura de software pode ser vista como uma ponte entre a especificação de requisito e a implementação do software.

A arquitetura de software é composto por projeto arquitetural, avaliação arquitetural e documentação arquitetural.

Um projeto arquitetural bem elaborado é de grande importância para se obter sucesso em um projeto de software, possibilitando que o software tenha usabilidade, confiabilidade, desempenho, entre outros.

 

 

2 Projeto arquitetural

No projeto arquitetural é definida a solução para implementação do software e qual arquitetura irá ser utilizada de acordo com os requisitos de qualidade. Durante essa atividade é realizado um pensamento sobre os requisitos e decisões sobre a arquitetura são tomadas, com o objetivo de organizar e identificar os elementos arquiteturais para que os requisitos sejam atendidos.

Segundo Spínola, Barcelos (p.31): “Ao se analisar como essa atividade é realizada nas principais abordagens de especificação arquitetural, observamos a importância dos requisitos de qualidade no projeto de uma arquitetura”.

2.1 Requisitos de qualidade

 

           

Os requisitos de são softwares podem ser classificados como requisitos funcionais e não funcionais, os requisitos funcionais descrevem as funcionalidade que o software deve conter. Os requisitos não funcionais são os comportamentos que o software possui para realizar as funcionalidades, logo os requisitos não funcionais estão diretamente ligados aos requisitos funcionais.

Os requisitos são compostos por várias subcategorias sendo uma delas os requisitos de qualidade, sendo este de suma importância para a criação do projeto arquitetural, pois se acontecer alguma mudança nos requisitos de qualidade, será necessário reestruturar todo o projeto de arquitetural.

Existem vários tipos de requisitos de qualidade que são: Desempenho, Disponibilidade, Modificabilidade, Segurança, Testabilidade e Usabilidade, esses tipos de requisitos influenciam diretamente na construção da arquitetura de software.

2.2 Ferramentas para criar um projeto arquitetural

 

 

            A utilização de ferramentas para a criação de um projeto arquitetural facilita a utilização de regras e métodos, rastreia os componentes de software a partir de seus requisitos, facilita as modificações, gerencia as configurações e suporta simulações se necessárias.

 

 

3 Documentação arquitetural

 

            Na maioria das vezes, a documentação é tratado como algo em que as pessoas fazem porque são obrigadas, porém deve haver a exigência e o comprometimento para a documentação, pois é através desse documento que é realizado todos as avaliações arquiteturais e do software.

            A documentação arquitetural é a representação em documentos do software que está em desenvolvimento, pois como o software não possui algo materializado, esse documento possui a visão de todo o software em alto nível.

O documento arquitetural deve identificar os elementos arquiteturais, descrever o papel de cada elemento, identificado como cada requisito está sendo atendido através da arquitetura documentada e representar os softwares sobre várias perspectivas.

 

 

4 Avaliação arquitetural

 

 

            A avaliação arquitetural é a fase onde é realizado a avaliação dos documentos arquiteturais através de métodos ou procedimentos sistemáticos, avaliando-se a estrutura do software e sua solução de implementação quanto a sua qualidade, verificando se possui consistência nas informações do documento e se a arquitetura apresentada atende aos requisitos.

            A realização dessa atividade acontece sobre a perspectiva dos requisitos de qualidade, permitindo a descoberta de problemas, impedindo a propagação dos defeitos e menor custo na correção desses defeitos.

5 Pessoas interessadas na arquitetura de software

 

 

            Em um projeto de software, existem vários stakeholders, stakeholders são pessoas envolvidas no projeto de software, como cliente, gerente de projeto, programador, testador, entre outros. Todos esses stakeholders utilizam insumos da arquitetura de software para auxiliar em desempenhar suas tarefas.

            Com a linguagem de alto nível da arquitetura o cliente consegue avaliar se o software que vai ser desenvolvido condiz com o que ele deseja ou necessita, assim tanto a empresa desenvolvedora como o cliente evita perder tempo e ter custos desnecessários. Para o gerente de projeto a arquitetura prover auxilio na tomada de decisão durante o projeto. Para o desenvolvedor a arquitetura prover a descrição da solução do que tem que ser implementado. Para o testador a arquitetura fornece uma visão de caixa-preta, onde ele pode verificar a integração de componentes e comportamentos das funcionalidades.

 

                       

6 Vantagens e objetivo da arquitetura de software

           

Em um projeto de software, a arquitetura de software auxilia em todo as fases desse projeto, desde do auxílio em tomada de decisão ao desenvolvimento e teste do software, também auxilia na definição de custos, confiabilidade e manutenibilidade do projeto.

A arquitetura possui uma representação de alto nível de todo o software, assim ela auxilia nas revisões técnicas do projeto, diminuindo as chances dos stakeholders utilizarem documentos inconsistentes.

O principal objetivo da arquitetura de software é prover uma solução de acordo com os requisitos, onde essa solução possui eficiência e o menor custo possível, pois essas são as duas características que mostram se um software tem qualidade ou não.

7 Conclusão

 

 

Decorrente desse trabalho pode-se concluir os objetivos da arquitetura de software, suas vantagens, quem são os interessados, requisitos de qualidade e o processo de especificação arquitetural.

Através do estudo desses conceitos, foi possível a identificação da importância da arquitetura de software dentro de todo o processo de criação e desenvolvimento do software, a composição da especificação da arquitetura e de quais informações serão apresentadas dentro do documento de arquitetural.

           

 

8 Referências

SILVA, Carla. Detalhando o projeto arquitetural no desenvolvimento de software orientado a agentes: O caso Tropos. 2003. UFP. Disponível em: <http://intranet.cin.ufpe.br/ler/Our%20Publications/Dissertations/CarlaSilva2003.pdf>. Acesso em: 10 out. 2012.

BOAVENTURA, Inês. Projeto de Arquitetura. 2005. UEP. Disponível em: <http://www.dcce.ibilce.unesp.br/~ines/cursos/eng_soft/aula08.PDF>. Acesso em: 10 out. 2012.

ROCHA, Allex. Introdução a Arquitetura de Software. CESUPA. Disponível em: <http://www.fabsoft.cesupa.br/site/images/introducao_arquitetura_software.pdf>. Acesso em: 09 out. 2012.

SPÍNOLA, R; BARCELOS, R. Fundamentos de Arquitetura de Software.



[1] Trabalho apresentado ao Curso de Sistemas de Informação da Faculdade Paraíso do Ceará (FAP) para a obtenção de complemento da nota parcial na disciplina de Engenharia de Software II, semestre 2012.02.

[2] Estudante de Graduação do Curso de Sistemas de Informação da Faculdade Paraíso do Ceará (FAP). Rua da Conceição, 1228 – Juazeiro do Norte – CE – Brasil. Endereço eletrônico: [email protected].

[3] Estudante de Graduação do curso de Sistemas de Informação da Faculdade Paraíso do Ceará (FAP). Rua da Conceição, 1228 – Juazeiro do Norte – CE – Brasil. Endereço eletrônico: [email protected]