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.
Relacionado: Uma visão geral sobre Metodologia Ágil
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.
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.
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:
- Desenvolver o sistema iterativamente;
- Gerenciar requisitos;
- Arquiteturas baseadas em componentes;
- Modelar o software visualmente;
- Verificar a qualidade do software;
- 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 ...