Afinal como a Gestão de projetos pode ser útil?

Este artigo é útil a todas as pessoas que buscam desenvolver um software com base no RUP. O artigo inicia-se conceituando o desenvolvimento de software, o método Rational Unified Process (RUP) com suas fases, disciplinas e papéis e, feito isso, realiza-se a simulação de um projeto de controle de estoque para a empresa fictícia Comercial Ribeiro. Na simulação, criam-se os artefatos do RUP: visão, caso de negócio, lista de riscos e plano de desenvolvimento de sistemas.

Os métodos ágeis existentes hoje adotam os valores e os princípios citados no manifesto ágil e exemplos desses processos são Scrum, Extreme Programming (XP), Lean Development, Feature Driven Development (FDD), Kanban e Crystal. As metodologias ágeis procuram utilizar iterações curtas, tempo estabelecido e despreza o uso excessivo de documentação. Geralmente possuem pouca formalidade, uma vez que a formalidade em excesso tende a dificultar as alterações ao longo do processo.

RUP

O RUP, de propriedade da IBM, é um framework de processo da engenharia de software que fornece práticas testadas na indústria de software e gerência de projetos. Por ser um framework de processo, pode ser customizado conforme as necessidades organizacionais e do projeto, dessa forma, pode-se trabalhar um RUP mais “leve e ágil” ou “mais pesado”.

O RUP permite que a equipe do projeto escolha as atividades e os artefatos para serem produzidos, reduzindo assim, o excesso de documentação para torná-lo mais ágil. Outra característica interessante dele é a aplicação do modelo de ciclo de vida iterativo e incremental. Na metodologia iterativa, em cada iteração, parte do software é desenvolvida, sendo os artefatos da nova iteração superior à iteração anterior. O desenvolvimento iterativo e incremental permite aos desenvolvedores o aprendizado em relação ao software, possibilitando assim, a localização de futuros problemas em fases iniciais.

O RUP é descrito a partir de três perspectivas. Na perspectiva dinâmica, o RUP identifica o ciclo de desenvolvimento do projeto em quatro fases sequenciais sendo, cada fase, finalizada por um marco principal. As fases do RUP são iniciação, elaboração, construção e transição. A Figura 1 apresenta as fases do RUP.

Fases do RUP
Figura 1. Fases do RUP

A iniciação, também conhecida como concepção, é a fase em que se estabelece o escopo do projeto de software, levantando-se uma visão geral do produto final. A iniciação tem como objetivo estabelecer o escopo, detalhar os casos de uso crítico do software, estimar o custo, os riscos e preparar o ambiente para o projeto. Se o projeto for de pouca importância ou inviável, ele pode ser cancelado após essa fase.

Na elaboração, identificam-se os casos de uso principais e elaboram-se o sistema em iterações. A elaboração tem como objetivo garantir que a arquitetura, os requisitos e os planos estejam estáveis, que os riscos identificados sejam reduzidos, permitindo a criação de protótipos e estabelecer um ambiente de suporte.

A construção é a etapa do desenvolvimento do software. Nela, produzem-se o código fonte do produto na linguagem de programação escolhida pela equipe do projeto. Os objetivos principais da construção compreendem reduzir os custos da implementação, obter a qualidade, concluir a análise, o design, a implementação e os testes das funcionalidades necessárias, desenvolver o produto de software, bem como, verificar se as funcionalidades foram finalizadas e se os usuários estão prontos para receber o sistema em ambiente de produção.

A transição é a fase final do RUP. Nela, ocorre a validação e a entrega definitiva do software para o cliente. Essa etapa normalmente inclui a entrega do sistema, teste beta para validação das funcionalidades, conversão de bancos de dados operacionais, treinamento com os usuários, ajustes no sistema e a avaliação do produto.

A perspectiva estática do RUP enfoca as atividades que acontecem no processo de desenvolvimento. Elas são denominadas workflows na descrição do framework. O RUP oferece seis workflows de processos principais e três workflows de apoio principais. Os workflows estão representados na Figura 2.

Workflows do RUP
Figura 2. Workflows do RUP

Os workflows são definidos da seguinte maneira:

  • Modelagem de negócios: os processos de negócios são modelados com a utilização de casos de uso de negócio;
  • Requisitos: os casos de usos são criados para modelar os requisitos do software;
  • Análise e projeto: cria-se um modelo de projeto com base em modelos de arquitetura, de componente, de objeto e de sequência;
  • Implementação: os componentes do software são implementados;
  • Teste: o teste é um processo iterativo e é efetuado em conjunto com a implementação do sistema;
  • Implantação: cria-se uma versão do produto e instala-a no local de trabalho dos usuários;
  • Gerenciamento de configuração e mudanças: esse workflow serve como apoio à gerência do projeto em relação às mudanças no sistema;
  • Gerenciamento de projetos: esse workflow de apoio gerencia o processo de desenvolvimento do software;
  • Ambiente: este workflow relaciona-se à disponibilização de ferramentas de software adequadas para a equipe de desenvolvimento.

A perspectiva prática do RUP enfoca as boas práticas de engenharia de software recomendadas para o desenvolvimento de sistemas. São recomendadas seis melhores práticas:

  1. Desenvolver o sistema iterativamente;
  2. Gerenciar requisitos;
  3. Arquiteturas baseadas em componentes;
  4. Modelar o software visualmente;
  5. Verificar a qualidade do software;
  6. Controlar as mudanças do software.

Papéis no RUP

No RUP, a equipe é formada por papéis que se desdobram em outros papéis necessários para efetuar as atividades das etapas do processo. Os papéis são: analistas, desenvolvedor, testador e gerente. Os analistas atuam na identificação e investigação de requisitos para diferentes aspectos do projeto. Os desenvolvedores trabalham no design e no desenvolvimento para diferentes aspectos do projeto. Os testadores atuam na avaliação do sistema. Eles trabalham com habilidades específicas para testes. O testador tem como papel os testadores. Os gerentes estabelecem os papéis de gerenciamento e configuração do processo de engenharia de software.

A prática com o RUP

Para iniciar um projeto de software com o RUP é preciso entender alguns elementos do processo como visão, caso de negócio, lista de riscos, plano de desenvolvimento do projeto, arq ...

Quer ler esse conteúdo completo? Tenha acesso completo