Artigo Engenharia de Software 14 - Ciclo de Vida da Gestão em Arquitetura de Software

O artigo apresenta um ciclo de vida para a gestão das atividades de arquitetura de software em um projeto, de forma a gerar maior valor de negócios para um projeto, produto ou empresa.

Esse artigo faz parte da revista Engenharia de Software 14 edição especial. Clique aqui para ler todos os artigos desta edição

 

Arquitetura de Software

Ciclo de Vida da Gestão em Arquitetura de Software

Maximizando a geração de valor de projetos e produtos com arquiteturas de software

 

 

De que trata o artigo:

O artigo apresenta um ciclo de vida para a gestão das atividades de arquitetura de software em um projeto, de forma a gerar maior valor de negócios para um projeto, produto ou empresa.

 

Para que serve:

Conhecer e aplicar as atividades essenciais da arquitetura de software em um projeto, tais como: garantir o alinhamento técnico do projeto à organização, atender às restrições de custo, tempo e qualidade de um projeto, identificar e desenvolver requisitos arquiteturalmente significativos, antecipar e mitigar riscos técnicos, realizar a análise e desenho arquitetural, construir provas de conceito, gerar código executável, orientar e acompanhar o time técnico, validar a estabilidade da arquitetura executável e coletar lições aprendidas para o próximo ciclo de atividades arquiteturais.

 

Em que situação o tema é útil:

No desenvolvimento de projetos de software não triviais, na montagem de novos produtos, na evolução de tecnologias de produtos, em manutenções evolutivas complexas e, sobretudo, em esforço de aumento de alinhamento das ações de TI com as áreas de negócio de uma organização.

 

 

A arquitetura de software é uma área recente dentro da engenharia de software, tendo seus primórdios na literatura no começo da década de 90.  Não obstante, ela tem obtido cada vez mais visibilidade nos projetos de TI no Brasil. É cada vez mais comum que empresas e projetos tenham pessoas ou times exercendo o papel do arquiteto de software e atividades em cronogramas relacionadas ao desenho de uma arquitetura de software. Mas o que é a arquitetura de software e quais são as atividades que devem ser realizadas pelo arquiteto de software? A arquitetura é uma atividade puramente técnica? Criar uma arquitetura de software é apenas modelar diagramas e implementar provas de conceito? A arquitetura de software produz realmente valor de negócio para um projeto? E como poderíamos organizar as atividades de arquitetura de software para gerar valor concreto para um projeto, produto ou organização?

Este artigo endereça estas e outras questões sobre as atividades de arquitetura de software e propõe um ciclo de vida para organização e ordenação temporal destas atividades em projetos de software de qualquer natureza, com o uso de qualquer tipo de processo de software.

À primeira vista, podemos imaginar que arquitetar um software é escolher que tecnologias um projeto irá adotar, como por exemplo, Java EE ou .NET. Esta visão míope, difundida por “arquitetos empilhadores de frameworks”, não pode estar mais longe da realidade. Em uma segunda análise, podemos imaginar que a arquitetura de software consiste de montarmos modelos em linguagens sofisticadas como UML2. Esta visão estrábica difundida por “arquitetos de papel” também está bem longe da verdade.

Coloquemos lentes de correção na visão de arquitetura de software, que foi inicialmente delineada no excelente livro Software Architecture: Perspectives on an Emerging Discipline, ainda em 1996. A arquitetura de software tem por objetivo fazer o melhor uso dos recursos técnicos de um projeto para garantir a maior eficiência possível aos objetivos do projeto, produto e mesmo à visão e missão de uma empresa.

Podemos identificar, nesta visão, atividades tais como:

·        garantir o alinhamento técnico do projeto às diretrizes e estratégias tecnológicas de uma área ou organização, bem como à sua cultura organizacional;

·        atender as restrições gerenciais de um projeto tais como custo, prazo e competências técnicas da equipe;

·        identificar e detalhar requisitos significativos para a arquitetura de software;

·        antecipar e mitigar os riscos técnicos de um projeto;

·        realizar a análise e desenho técnico da arquitetura através de técnicas de modelagem arquitetural;

·        construir provas de conceito e gerar código executável para os principais pontos de risco do projeto;

·        orientar e acompanhar o time técnico para garantir a aderência do código construído às diretrizes arquiteturais do projeto;

·        validar a estabilidade e objetivos da arquitetura do produto;

·        coletar lições aprendidas e promover um novo ciclo de melhorias.

 

Em verdade, o ciclo de vida da arquitetura de software deve ser compreendido através de um processo mais amplo que aspectos puramente técnicos, que denominamos aqui como a gestão da arquitetura de software.

Arquiteturas de software são sempre desenvolvidas dentro de um contexto de negócios como, por exemplo, a criação ou evolução de um produto, a automação de processos de negócio ou a integração entre sistemas de fornecedores distintos. Assim como a arquitetura de software realiza tecnicamente objetivos organizacionais, ela deve prover feedback do mundo real conforme mostrado na Figura 1.

 

Figura 1. " [...] continue lendo...

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados