> RUP - Rational Unified Process

O RUP (Rational Unified Process) é um processo de engenharia de software desenvolvido pela Rational Software (IBM). Este processo fornece uma disciplinada atribuição de tarefas e responsabilidades dentro de uma organização de desenvolvimento.

O principal objectivo deste processo é garantir o desenvolvimento de software de alta qualidade que vá de encontro às necessidades dos clientes finais, respeitando calendarizações e orçamentos.

As actividades do RUP criam e actualizam modelos. Em vez de dar foco à produção de papéis e documentos sucessivos, o RUP enfatiza o desenvolvimento e actualização de modelos, semânticas que são representações de um sistema de software em desenvolvimento.

O RUP é um guia de como utilizar o UML. É suportado por ferramentas, as quais automatizam a maior parte dos processos. Estas são utilizadas para criar e manter os modelos gerados pelo processo de engenharia de software: modelação visual, programação, testes, etc.

O RUP é um processo configurável. Nenhum processo único é adequado a desenvolver todo o tipo de software. Baseia-se numa arquitectura de processo simples e clara, que agrega famílias de processos e se ajusta a diferentes situações.

O RUP agrega um conjunto de práticas de desenvolvimento de software que se ajusta a um amplo conjunto de projectos e organizações.

>> RUP - Best Pratices

O RUP descreve como uma equipa de desenvolvimento deve proceder no desenvolvimento de software, através de um conjunto de "best practices":

>>> Desenvolvimento de software iterativo e incremental
Actualmente, com requisitos tão sofisticados, não é possível definir todo o problema, desenhar a solução completa, construir o software e testar o produto até ao final numa só iteração. Um processo iterativo permite um aumento da compreensão do problema através dos sucessivos refinamentos e um crescimento incremental de soluções efectivas de múltiplas iterações.
O RUP neste processo iterativo consegue identificar os riscos mais elevados em todos os estados do ciclo de vida do projecto, permitindo deste modo reduzir significativamente os riscos do projecto. Ajuda a controlar os riscos durante o processo através de versões executáveis que permitem um contínuo envolvimento dos utilizadores e seu feedback. O facto de ser iterativo facilita também alterações necessárias de requisitos, características do projecto e sua calendarização.

>>> Gestão de requisitos
O RUP descreve como organizar e documentar requisitos funcionais, decisões, captar e comunicar com os requisitos de negócio. As noções de casos de uso e cenários tem demonstrado ser um excelente modo de captar os requisitos funcionais e assegurar o desenho, implementação e teste do software, tornando mais fácil e agradável a aproximação às necessidades dos utilizadores finais.

>>> Arquitectura baseada em componentes
O RUP utiliza uma arquitectura baseada em componentes. Descreve como desenhar uma arquitectura flexível, permitindo a mudança, sendo intuitivamente compreensível e permitindo a reutilização de software. O RUP fornece uma sistemática para definir a arquitectura de um sistema utilizando componentes novos e já existentes.

>>> Modelação visual
A modelação visual é o modo como graficamente se pode modelar e capturar a estrutura e os componentes do software. Esta modelação ajuda a capturar os diferentes aspectos de um software, ou seja, como os vários elementos se interligam entre si. Este tipo de modelação, através da utilização do UML permite uma melhor comunicação entre a equipa de desenvolvimento e o cliente, pois é utilizada uma linguagem semi-formal.

>>> Verificação de qualidade
A qualidade do projecto é o factor primordial no processo de desenvolvimento de um projecto e deve ser analisada ao longo de todo o processo. Por exemplo, a fraca performance e pouca segurança são factores comuns que dramaticamente inibem a aceitação do software. Deste modo, a qualidade deverá ser revista tendo em consideração todos os requisitos. O RUP ajuda deste modo ao planeamento, no desenho, na implementação, na execução, e na avaliação de testes durante todo este processo, permitindo uma análise contínua da qualidade do projecto.

>>> Controlo de mudanças
No decurso do desenvolvimento de um projecto, as mudanças são frequentes - raramente os requisitos permanecem inalteráveis até ao fim do processo. O processo unificado fornece métodos que permitem gerir esta mudança, registando, controlando e monitorizando-a ao longo do ciclo de vida do projecto, permitindo um desenvolvimento iterativo com sucesso.