Introdução ao RUP – Rational Unified Process
O que é Um processo (de engenharia) de software é a definição de um conjunto completo de actividades necessárias para transformar os requisitos do utilizador num conjunto consistente de artefactos que representam um produto de software e, mais tarde, transformar alterações nesses requisitos num novo conjunto consistente de artefactos [Jacobson 1999] define quem faz o quê, quando e como para atingir um determinado objectivo A presença de um processo bem definido e bem gerido é um aspecto determinante de diferenciação entre projectos produtivos e projectos mal-sucedidos
Características principais do RUP Sustentado em UML Iterativo e incremental Conduzido por casos de utilização A identificação de casos de utilização e cenários típicos de utilização é a actividade que conduz todo o processo de desenvolvimento, desde a análise de requisitos até ao teste do sistema final Centrado numa arquitectura Promove a definição inicial de uma arquitectura de software robusta, que facilita a paralelização do desenvolvimento, a reutilização e a manutenção
Conceitos principais Fases Trabalhadores (workers) Actividades cada ciclo resulta numa nova geração do produto e divide-se em fases cada fase divide-se em iterações a definir em cada projecto concreto Trabalhadores (workers) são perfis a que correspondem competências para a realização de actividades Actividades são tarefas que podem ser entregues a trabalhadores individuais Artefactos são inputs e outputs de actividades Workflows agrupam actividades relacionadas genéricos ou especializados por fases Modelos agrupam artefactos desenvolvidos num workflow
Fases e Workflows Actividades são agrupadas em workflows O desenvolvimento é expresso em ciclos, fases e iterações
Fases Iniciação (Inception) Elaboração Construção Transição Delimitação do âmbito do projecto e do business case. Identificação dos actores e casos de utilização e descrição dos mais significativos. Elaboração Análise do domínio do problema. Definição de uma arquitectura estável e robusta para todo o sistema, tendo em consideração os seus requisitos. Construção Desenvolvimento iterativo e incremental do produto completo para ser entregue aos utilizadores como uma primeira versão. Transição Desenvolvimento adicional para ajuste do sistema às alterações de requisitos suscitadas pela sua utilização concreta.
Iterações Cada fase pode ser decomposta em iterações Iterações são definidas e planeadas em cada projecto concreto Cada iteração resulta num incremento ao produto Tipicamente é analisado e implementado um grupo de casos de utilização ou de variantes de casos de utilização Cada iteração passa, em cascata, pelos workflows técnicos Importância relativa dos workflows varia com as fases
Modelos e Workflows Captura de Requisitos
Captura de Requisitos Objectivos O objectivo deste workflow é conseguir o acordo, entre os utilizadores finais e quem desenvolve, sobre a descrição do que o sistema deve fazer. Principal resultado é o modelo de casos de utilização Um caso de utilização é um documento narrativo que descreve a sequência de eventos de um actor sobre um sistema com o objectivo de dele obter um resultado observável e de interesse. O modelo de casos de utilização é a base de todo o processo de desenvolvimento, o que facilita a avaliação da concordância do sistema final com os requisitos iniciais para os quais foi construído.
Captura de Requisitos Actividades from Rational Unified Process
Captura de Requisitos Artefactos from Rational Unified Process
Análise e Projecto (Design) Objectivos Modelos de classes e objectos ideais, para uma melhor compreensão dos requisitos Principal resultado é o modelo de análise classes e colaborações ideais Projecto ou Concepção (Design): O objectivo desta componente é mostrar como o sistema será construído por forma a satisfazer todos os requisitos, tarefas e funções descritas nos modelos de casos de utilização. O sistema deve ser projectado de modo a que possua uma arquitectura robusta e facilmente adaptável a mudanças de requisitos. O principal resultado é o modelo de projecto (design) classes (da implementação) agrupadas em sub-sistema colaborações necessárias para realizar os casos de utilização Também modelo de distribuição (deployment)
Análise e Projecto Actividades from Rational Unified Process
Análise e Projecto Artefactos from Rational Unified Process
Implementação e Teste Objectivos O objectivo é construir o sistema, produzindo todo o código necessário para a criação do sistema executável. Os modelos de projecto são a base da implementação. A implementação inclui o teste de classes e módulos separados, mas não a verificação do seu funcionamento integrado. Sub-produto: modelo da implementação (componentes, dependências e interacções) Teste O objectivo é verificar o sistema na sua totalidade. Inicialmente verifica-se cada caso de uso separadamente e posteriormente o sistema na sua totalidade. No final desta componente, o sistema está pronto para ser utilizado. Sub-produto: modelo de teste, com especificação de casos de teste e procedimentos de teste
Teste Artefactos
Gestão do Projecto Actividades
Gestão de Versões e Configurações Actividades
Bibliografia The Rational Unified Process: An Introduction Philie Kruchten Addison-Wesley, 1999 The Unified Software Develoment Process Ivar Jacobson, Grady Booch, James Rumbaugh Addison-Wesley, 1999 www.rational.com