O processo de engenharia de software define quem faz o quê, quando e como
para atingir um determinado objetivo. Neste trabalho, iremos dissertar sobre o Rational
Unified Process, ou RUP, que é uma plataforma de processo de desenvolvimento de
software configurável que oferece melhores práticas comprovadas e uma arquitetura
configurável, abordando os seguintes tópicos:
· LINHAS MESTRAS;
· FASES;
· DISCIPLINAS;
· PRINCÍPIOS E MELHORES PRÁTICAS.
4
1. CONCEITOS
RUP, abreviação de Rational Unified Process (ou Processo Unificado da Rational), é
um processo de Engenharia de software criado pela Rational Software Corporation(a
qual foi incorporada pela IBM), utilizandose da abordagem da orientação a objetos em
sua concepção, é projetado e documentado utilizando a notação UML (Unified
Modeling Language), para ilustrar os processos. Como qualquer metodologia, é
composta de conceitos, práticas e regras.
Praticamente RUP, está fundamentada em três princípios básicos:
Orientação a Casos de Uso: pois orientam todo o processo de desenvolvimento;
5
2. LINHAS MESTRAS
2.1. Gestão de r equisitos
Uma documentação apropriada é essencial para qualquer grande projeto; o RUP
descreve como documentar a funcionalidade, restrições de sistema, restrições de projeto
e requisitos de negócio.Os casos de uso e os cenários são exemplos de artefatos
dependentes do processo, que têm sido considerados muito mais eficazes na captura de
requisitos funcionais, com esse material fica mais fácil e desenvolver o projeto.
A arquitetura baseada em componentes cria um sistema que pode ser facilmente
extensível, promovendo a reutilização de software e um entendimento intuitivo. Um
componente normalmente se relaciona com um objeto na POO (Programação Orientada
a Objetos).
O RUP oferece uma forma sistemática para construir este tipo de sistema,
focandose em produzir uma arquitetura executável nas fases iniciais do projeto, ou seja,
identificando no início do projeto algum possível problema, que se fosse percebido
posteriormente, iria causar problemas em maior escala. Estes componentes são
normalmente incluidos em infraestruturas existentes como o CORBA (Arquitetura
criada para estabelecer e simplificar a troca de dados em sistemas distribuidos e
heterogêneos).
2.3. Uso de softwar e de modelos visuais
Ao abstrair a programação do seu código e representála utilizando blocos de
construção gráfica, o RUP consegue uma maneira efetiva de se ter uma visão geral de
uma solução, facilitando assim o entendimento de todos os Stakeholderes (em
português: parte interessada) como o próprio diz: toda a equipe que está envolvida,
6
desde o Gerente do projeto até os desenvolvedores. A linguagem da UML (Linguagem
de Modelagem Unificada) tornouse um padrão industrial para representar projetos, e é
amplamente utilizada pelo RUP.
2.4. Ver ificação da qualidade do software
Não assegurar a qualidade do software é a falha mais comum em muito dos
projetos de sistemas computacionais, certo que também temos que considerar a regra do
negócio, na maioria das vezes os sistemas são reflexo do investimento do cliente. O
RUP visa auxiliar no controle do planejamento da qualidade, verificandoa na
construção de todo o processo e envolvendo todos os membros da equipe de
desenvolvimento.
2.5. Gestão e Controle de Mudanças do Software
Em todos os projetos de software a existência de mudanças é inevitável. O RUP
define métodos para controlar e monitorar mudanças. Como uma pequena mudança
pode afetar aplicações de formas inteiramente imprevisíveis, o controle de mudanças é
essencial para o sucesso de um projeto. O RUP também define áreas de trabalho
seguras, garantindo a um programador que as mudanças efetuadas em outro sistema não
afetarão o sistema.
7
3. FASES
As fases indicam a ênfase que é dada no projeto em um dado instante. Para
capturar a dimensão do tempo de um projeto, o RUP divide o projeto em quatro fases
diferentes:
Estr utura básica do RUP
Inception entendimento da necessidade e visão do projeto. A fase de concepção
contém os workflows (abstração do trabalho real em sequência de etapas) necessários
para que os stakeholders concordem com os objetivos, arquitetura e o planejamento do
projeto. Se as partes interessadas tiverem bons conhecimentos, então, pouca análise será
requerida. Como cita o RUP, o ideal é que sejam feitas iterações, porém estas devem ser
bem definidas quanto a sua quantidade e objetivos.
Elaboration especificação e abordagem dos pontos de maior risco, na arquitetura do
projeto. A fase de elaboração será apenas para o projeto do sistema, buscando
complementar o levantamento e documentação dos casos de uso, revisando a
modelagem do negócio para os projetos e iniciando a versão do manual do usuário.
8
Constr uction – ênfase no desenvolvimento principal do sistema. Na fase de construção,
começa o desenvolvimento físico do software e produção de códigos. É onde os
programadores tem uma responsabilidade maior na execução do projeto.
Transition – ênfase nos ajustes, implantação e transferência de propriedade do sistema.
Nesta fase ocorre a entrega do software, é realizado o plano de implantação e entrega,
acompanhamento e qualidade do software, além da capacitação dos usuários.
9
4. DISCIPLINAS
4.1. Disciplina de Modelagem de Negócios
As organizações estão cada vez mais dependente de sistemas de TI, tornandose
imperativo que os engenheiros de sistemas de informação saibam como as aplicações
em desenvolvimento se inserem na organização. As empresas investem em TI, quando
entendem a vantagem competitiva do valor acrescentado pela tecnologia. O objetivo de
modelagem de negócios é, primeiramente, estabelecer uma melhor compreensão e canal
de comunicação entre engenharia de negócios e engenharia de software. Compreender o
negócio significa que os engenheiros de software devem compreender a estrutura e a
dinâmica da empresa alvo (o cliente), os atuais problemas na organização e possíveis
melhorias. Eles também devem garantir um entendimento comum da organizaçãoalvo
entre os clientes, usuários finais e desenvolvedores.
Modelagem de negócios, explica como descrever uma visão da organização na
qual o sistema será implantado e como usar esta visão como uma base para descrever o
processo, papéis e responsabilidades.
4.2. Disciplina de Requisitos
Esta disciplina explica como levantar pedidos dos stakeholders e transformálos
em um conjunto de requisitos que os produtos funcionam no âmbito do sistema a ser
construído e fornecem requisitos detalhados para o que deve fazer o sistema.
4.3. Disciplina de Análise e Pr ojeto
O objetivo da análise e projeto é mostrar como o sistema vai ser realizado. O
objetivo é construir um sistema que:
· Execute, em um ambiente de execução específica, as tarefas e funções
especificadas nas descrições de casos de uso;
· Cumpra todas as suas necessidades ;
· Seja fácil de manter quando ocorrerem mudanças de requisitos funcionais.
O modelo de design serve como uma abstração do códigofonte, isto é, o projeto
atua como um modelo de "gabarito" de como o códigofonte é estruturado e escrito. O
10
modelo de projeto consiste em classes de design estruturado em pacotes e subsistemas
com interfaces bem definidas, representando o que irá se tornar componentes da
aplicação. Ele também contém descrições de como os objetos dessas classes colaboram
para desempenhar casos de uso do projeto.
4.4. Disciplina de Implementação
Os efeitos da implementação são:
Sistemas são realizados através da aplicação de componentes. O processo descreve
como a reutilização de componentes existentes ou implementar novos componentes
com responsabilidades bem definidas, tornando o sistema mais fácil de manter e
aumentar as possibilidades de reutilização.
4.5. Disciplina de Teste
As finalidades da disciplina de teste são:
· Verificar a interação entre objetos;
· Verificar a integração adequada de todos os componentes do softwares;
· Verificar se todos os requisitos foram corretamente implementados;
· Identificar e garantir que os defeitos são indentificados antes da implantação do
software;
· Garantir que todos os defeitos são corrigidos e reanalisados.
O Rational Unified Process propõe uma abordagem iterativa, o que significa que
devese testar todo o projeto. Isto permite encontrar defeitos tão cedo quanto possível, o
que reduz radicalmente o custo de reparar o defeito.
11
Os testes são realizados ao longo de quatro dimensões da qualidade:
confiabilidade, funcionalidade, desempenho da aplicação, e o desempenho do sistema.
Para cada uma destas dimensões da qualidade, o processo descreve como você passar
pelo teste do ciclo de planejamento, projeto, implementação, execução e avaliação.
4.6. Disciplina de Implantação
O objetivo da implantação é o de produzir com sucesso lançamentos de produtos
e entregar o software para seus usuários finais. Ele cobre uma vasta gama de atividades,
incluindo a produção de releases externos do software, a embalagem do software e
aplicativos de negócios, distribuição do software, instalação do software e prestação de
ajuda e assistência aos usuários. Embora as atividades de implantação estão
principalmente centradas em torno da fase de transição, muitas das atividades devem ser
incluídas nas fases anteriores para se preparar para a implantação, no final da fase de
construção. Os processos workflows de "Implantação e Ambiente" do RUP contêm
menos detalhes do que outros workflows.
4.7. Três Disciplinas de Apoio/Suporte
4.7.1. Disciplina de Ambiente
O ambiente enfoca as atividades necessárias para configurar o processo para um
projeto. Ele descreve as atividades necessárias para desenvolver as diretrizes de apoio a
um projeto. A proposta das atividades de ambiente é prover à organização de
desenvolvimento de software. Se os usuários do RUP não entendem que ele é um
framework de processo, eles podem percebêlo como um processo pesado e caro. No
entanto, um conceitochave dentro do RUP foi que o processo pode muitas vezes ser
refinado. Inicialmente foi feito manualmente, um documento de "caso de
desenvolvimento" que especificou o processo refinado para ser utilizado.
Posteriormente, o produto IBM Rational Method Composer foi criado para ajudar a
tornar esta etapa mais simples, engenheiros de processo e gerentes de projeto poderiam
mais facilmente personalizar o RUP para suas necessidades de projeto. Muitas das
variações posteriores do RUP, incluindo OpenUP/Basic, a versão opensource e leve do
RUP, são agora apresentados como processos distintos, por direito próprio e atendem a
diferentes tipos de tamanhos de projetos, tendências e tecnologias de desenvolvimento
12
de software. Historicamente, como o RUP, muitas vezes é personalizado para cada
projeto por um perito do processo, o sucesso total do projeto pode ser um pouco
dependente da capacidade desta pessoa.
4.7.2. Disciplina de Configuração e Ger ência de Mudança
A disciplina de Gestão e mudança em negócios com RUP abrange três
gerenciamentos específicos: de configuração, de solicitações de mudança, e de status e
medição.
· Ger enciamento de configuração: A gestão de configuração é responsável pela
estruturação sistemática dos produtos. Artefatos, como documentos e modelos,
precisam estar sob controle de versão e essas alterações devem ser visíveis. Ele
também mantém o controle de dependências entre artefatos para que todos os
artigos relacionados sejam atualizados quando são feitas alterações ;
· Ger enciamento de solicitações de mudança: Durante o processo de
desenvolvimento de sistemas com muitos artefatos existem diversas versões.
· Ger enciamento de status e medição: Os pedidos de mudança têm os estados:
novo, conectado, aprovado, cedido e completo. A solicitação de mudança
também tem atributos como a causa raiz, ou a natureza (como o defeito e
valorização), prioridade, etc. Esses estados e atributos são armazenados no
banco de dados para produzir relatórios úteis sobre o andamento do projeto.
4.7.3. Disciplina de Ger ência de projeto
O planejamento do projeto no RUP ocorre em dois níveis. Há uma baixa
granularidade ou planos de Fase que descreve todo o projeto, e uma série de alta
granularidade ou planos de Iteração que descrevem os passos iterativos. Esta disciplina
concentrase principalmente sobre os aspectos importantes de um processo de
desenvolvimento iterativo: Gestão de riscos; Planejamento um projeto iterativo através
do ciclo de vida e para uma iteração particular; E o processo de acompanhamento de um
projeto iterativo, métricas. No entanto, esta disciplina do RUP não tenta cobrir todos os
aspectos do gerenciamento de projetos.
Por exemplo, não abrange questões como:
13
· Gestão de Pessoas: contratação, treinamento, etc
· Orçamento Geral: definição, alocação, etc
· Gestão de Contratos: com fornecedores, clientes, etc.
14
5. PRINCÍPIOS E MELHORES PRÁTICAS
RUP é baseado em um conjunto de principios de desenvolvimento de software e
melhores práticas, por exemplo:
1. Desenvolvimento de software iterativo
2. Gerenciamento de requisitos
3. Uso de artetura baseada em componentes
4. Modelagem visual de software
5. Verificação da qualidade do software
6. Controle de alteração no software
5.1. Desenvolvimento interativo
O RUP usa desenvolvimento interativo e incremental pelas seguintes razões:
15
Usando iterações, um projeto terá um plano geral, como também múltiplos
planos de iteração. O envolvimento dos stakeholders é freqüentemente encorajado a
cada entrega. Desta maneira, as entregas servem como uma forma de se obter o
comprometimento dos envolvidos, promovendo também uma constante comparação
entre os requisitos e o desenvolvimento da organização para as pendências que surgem.
O Gerenciamento de requisitos no RUP está concentrado em encontrar as
necessidades do usuário final pela identificação e especificação do que ele necessita e
identificando aquilo que deve ser mudado. Isto traz como benefícios:
· A correção dos requisitos gera a correção do produto, desta forma as
necessidadades dos usuários são encontradas.
· As características necessárias serão incluídas, reduzindo o custo de
desenvolvimentos posteriores.
RUP sugere que o gerenciamento de requisitos tem que seguir as atividades:
· Análise do problema é concordar com o problema e criar medições que irão
provar seu valor para a organização
· Entender as necessidades de seus stakeholders é compartilhar o problema e
valores com os stakeholderschave e levantar quais as necessidades que estão
envolvidas na elaboração da ideia
· Definir o problema é a definição das características das necessidades e
esquematização dos casos de uso, atividades que irão facilmente mostrar os
requerimentos de altonível e esboçar o modelo de uso do sistema
· Gerenciar o escopo do sistema trata das modificações de escopo que serão
comunicadas baseadas nos resultados do andamento e selecionadas na ordem na
qual os fluxogramas de casos de uso são atacados
· Refinar as definições do sistema trata do detalhamento dos fluxogramas de caso
de uso com os stakeholders de forma a criar uma especificação de requerimentos
de software que pode servir como um contrato entre o seu grupo e o do cliente e
poderá guiar as atividades de teste e projeto
16
· Gerenciamento das mudanças de requisitos trata de como identificar as chegadas
das mudanças de requerimento num projeto que já começou
5.3. Uso de arquitetura baseada em componentes
Arquitetura de software aumenta de importância quando um sistema se torna
maior e mais complexo. RUP foca na produção da arquitetura básica nas primeiras
iterações. Esta arquitetura então se torna um protótipo nos ciclos iniciais de
desenvolvimento. A arquitetura desenvolvese em cada iteração para se tornar a
arquitetura final do sistema. RUP também propõe regras de projeto e restrições para
capturar regras de arquitetura. Pelo desenvolvimento iterativo é possível identificar
gradualmente componentes os quais podem então ser desenvolvidos, comprados ou
reusados. Estes componentes são freqüentemente construídos em infraestruturas
existentes tais como CORBA e COM, JavaEE, ou PHP.
5.4. Modelagem visual de softwar e
Abstraindo sua programação do seu código e representandoa usando blocos de
construção gráfica constituise de uma forma efetiva de obter uma visão geral de uma
solução. Usando esta representação, recursos técnicos podem determinar a melhor
forma para implementar a dado conjunto de interdependências lógicas. Isto também
constrói uma camada intermediária entre o processo de negócio e o código necessário
através da tecnologia da informação. Um modelo neste contexto é uma visualização e ao
mesmo tempo uma simplificação de um projeto complexo. RUP especifica quais
modelos são necessários e porque.
A Linguagem de modelagem unificada (UML) pode ser usada para modelagem
de casos de uso, diagrama de classes e outros objetos. RUP também discute outras
formas para construir estes modelos.
17
5.5. Ver ificar qualidade de software
Garantia da qualiade de software é o ponto mais comum de falha nos projetos de
software, desde que isto é freqüentemente algo que não se pensa previamente e é
algumas vezes tratado por equipes diferentes. O RUP ajuda no planejamento do controle
da qualidade e cuida da sua construção em todo processo, envolvendo todos os
membros da equipe. Nenhuma tarefa é especificamente direcionada para a qualidade; o
RUP assume que cada membro da equipe é responsável pela qualidade durante todo o
processo. O processo foca na descoberta do nível de qualidade esperado e provê testes
nos processos para medir este nível.
5.6. Controle de alterações no software
Em todos os projetos de software, mudanças são inevitáveis. RUP define
métodos para controlar, rastrear e monitorar estas mudanças. RUP também define
espaços de trabalho seguros (do inglês secure workspaces), garantindo que um sistema
de engenharia de software não será afetado por mudanças em outros sistemas. Este
conceito é bem aderente com arquiteturas de software baseados em componentização.
18
CONCLUSÃO
O RUP prova ser um processo de desenvolvimento robusto e bem definido, que
oferece melhores práticas e uma arquitetura configurável para execução de um projeto
de software. Através de suas disciplinas ele organiza e facilita a compreensão de todas
as partes interessadas para o sucesso do projeto, é um processo considerado pesado e
preferencialmente aplicável a grandes equipes de desenvolvimento e a grandes projetos,
porém o fato de ser amplamente customizável torna possível que seja adaptado para
projetos de qualquer escala. Para a gerência de projeto, o RUP provê uma solução
disciplinada de como assinalar tarefas e responsabilidades dentro de uma organização
de desenvolvimento de software.
O RUP é, por si só, um produto de software. É modular e automatizado, e toda a
sua metodologia é apoiada por diversas ferramentas de desenvolvimento integradas e
vendidas pela IBM.
Métodos concorrentes no campo da engenharia de software incluem o " Cleanroom"
(considerado pesado) e os Métodos Ágeis (leves) como a Programação extrema (XP
Extreme Programming), Scrum e outros.
19
REFERÊNCIAS BIBLIOGRÁFICAS
20