• Nenhum resultado encontrado

4.5 Metodologias Orientadas a Objetos

4.5.3 O Processo Unificado

O Processo Unificado é descrito em seus conceitos básicos no trabalho de Booch et al. (1999). O processo unificado faz uso da UML para preparar a planta-baixa do software.

Esta metodologia é baseada em casos de uso, centrada em arquitetura, iterativa e incremental. Os casos de uso do sistema formam um modelo de casos de uso que descreve a funcionalidade completa do sistema segundo a visão dos clientes ou usuários do sistema. O papel da arquitetura de software é similar ao exercido, em sua natureza, pela arquitetura em uma construção. Ambas arquiteturas permitem que se visualize uma imagem completa do que será construído. De forma resumida, a arquitetura de um sistema pode ser descrita como diferentes visões do sistema que será construído. O desenvolvimento do sistema é dividido em partes menores ou mini-projetos, cada um destes mini-projetos é uma iteração que resulta em um incremento.

Figura 4-3 - O processo Unificado, fonte Booch, 1999.

A Figura 4-3 representa o método que é descrito em duas dimensões: A primeira dimensão é o tempo, e mostra como o desenvolvimento é ordenado e expresso em termos de ciclos, fases, iterações e datas importantes.A segunda dimensão indica as principais atividades a serem trabalhadas. Elas são desenhadas ortogonalmente ao tempo.

A vida de um sistema é constituída por uma série de ciclos, cada ciclo é concluído com uma versão do produto para os clientes. Cada ciclo tem as seguintes fases: concepção, elaboração, construção e transição.

Na fase de concepção é estabelecido o caso de negócio para o sistema e delimitado o escopo do projeto. Para tal, identifica-se os atores que estarão interagindo com o sistema definindo a natureza dessa interação em uma perspectiva de alto nível, ou seja, descrevem-se os casos de uso com caráter mais significativo. O caso de negócio inclui critérios de sucesso, taxa de risco, estimativa de recursos necessários e um plano mostrando as datas principais de entrega de resultados. Neste estágio a arquitetura é temporária, sendo apenas um esboço contendo os subsistemas mais cruciais, a fase seguinte de elaboração deve ser planejada em detalhes. Ao final

desta fase, são examinados os objetivos do ciclo de vida do projeto para se decidir sobre a continuidade ou não de seu desenvolvimento.

Na fase de elaboração faz-se uma análise mais refinada do sistema juntamente com um plano detalhado do trabalho a ser feito. Pesquisa-se o campo ou atividade do qual o sistema fará parte, ao que denominamos domínio do problema. Deve-se estabelecer uma arquitetura com fundação sólida, ou seja, as diferentes visões do sistema devem ser construídas mantendo coerência entre si. As decisões da arquitetura devem ser feitas com a compreensão do sistema como um todo. Isto implica na descrição da maior parte dos requisitos do sistema. Para verificar a arquitetura implementa-se um sistema para demonstrar as escolhas da arquitetura e executar os casos de uso mais significativos. Ao término desta fase, examinam-se os objetivos do sistema, o seu escopo, a escolha da arquitetura, a resolução dos principais riscos e toma-se a decisão de prosseguir ou não com a construção.

Durante a fase de construção, um produto completo é desenvolvido de maneira iterativa e incremental para que esteja pronto para a fase de transição. Nesta fase, a arquitetura torna-se um sistema maduro sendo totalmente estável. Implica na descrição e formatação dos casos de uso remanescente. Entretanto, os desenvolvedores podem descobrir melhores maneiras para estruturar o sistema, possuindo então a liberdade de sugerir pequenas alterações na arquitetura. São feitos testes de software. Ao final desta fase decide-se se o software, local e usuários estão todos prontos para entrar em operação.

Na fase de transição, o software é disponibilizado à comunidade usuária.Esta fase tipicamente começa com o lançamento de uma versão do sistema para teste de validação e aceitação e envolve a correção de defeitos e deficiências. Outras atividades incluídas na fase de transição são treinamento, suporte ao usuário e manutenção do sistema.

As fases podem ser subdivididas em iterações. Cada iteração resulta em um incremento do sistema podendo-se, assim, visualizar a sua evolução e os seus resultados são vistos logo. Cada iteração inclui as diversas atividades, porém com diferentes ênfases dependendo da fase. Durante a concepção o foco é a captura dos requisitos. Na elaboração o foco recai sobre a análise e projeto, na construção a implementação é a atividade central e na transição a atividade central é a distribuição do software. Caso a iteração atinja seus objetivos, o desenvolvimento passa a

próxima iteração caso contrário, os desenvolvedores retomam as decisões prévias e tentam uma nova abordagem.

O processo unificado consiste de nove atividades principais: a modelagem de negócio, levantamento das necessidades, análise e projeto, implementação, teste, distribuição, gerenciamento da configuração, gerenciamento do projeto, ambiente.

A modelagem de negócio descreve a estrutura e dinâmica da organização.

O levantamento de necessidades descreve o método baseado em use cases para elucidar os requerimentos. Deve levar desenvolvedores e usuários a concordarem sobre uma descrição comum. O diagrama de caso de uso é a principal técnica utilizada na fase de levantamento de necessidades, muito embora um diagrama de classe de alto nível possa ser especificado (Furlan, 1998).

A análise e o projeto descrevem as múltiplas visões da arquitetura. A análise e o projeto mostram como o sistema será materializado na fase de implementação. Busca-se construir um sistema estruturado e robusto que execute, em um ambiente de implementação específico, as funções e tarefas descritas nos casos de uso. Para representar este modelo temos o diagrama de objetos, que são divididos em diagramas de classes e diagramas de instâncias. O diagrama de instâncias é utilizado para particularizar situações formando cenários e exemplos para discussão. Um dado diagrama de classes corresponde a um conjunto infinito de diagramas de instâncias. Os diagramas UML mais empregados durante a fase de análise são: caso de uso, classe, seqüência e estado. Por outro lado, o modelo do projeto serve como abstração do código fonte, atuando como esboço de sua estrutura. Os diagramas da UML mais empregados durante a fase de projeto são: Classe, colaboração, atividade, componente e implantação.

A implementação leva em conta o desenvolvimento o teste das unidades e a integração. A fase de implementação ou construção ocorre no instante em que as classes são programadas tomando-se por base o modelo de projeto. O sistema é percebido através da implementação, produzindo-se os arquivos de código fonte que resultarão em um sistema executável.

No Processo unificado as atividades de análise (levantamento dos requisitos, análise e projeto) são mais elaboradas que na XP. Porém, quanto menos estáveis sejam os requisitos,

menos eficaz se torna o trabalho de análise. Nestes casos os métodos ágeis se mostram mais indicados.