RUP Rational Unified Process Engenharia de Software Trabalho elaborado por: Sérgio Reis, nº 3844...

24
RUP RUP Rational Unified Rational Unified Process Process Engenharia de Software Engenharia de Software Trabalho elaborado por: Trabalho elaborado por: Sérgio Reis, nº 3844 Sérgio Reis, nº 3844 Helder Caçoila, nº 3845 Helder Caçoila, nº 3845 Gonçalo Martins, nº 3945 Gonçalo Martins, nº 3945

Transcript of RUP Rational Unified Process Engenharia de Software Trabalho elaborado por: Sérgio Reis, nº 3844...

Page 1: RUP Rational Unified Process Engenharia de Software Trabalho elaborado por: Sérgio Reis, nº 3844 Helder Caçoila, nº 3845 Gonçalo Martins, nº 3945.

RUPRUPRational Unified ProcessRational Unified Process

Engenharia de SoftwareEngenharia de Software

Trabalho elaborado por:Trabalho elaborado por:

Sérgio Reis, nº 3844Sérgio Reis, nº 3844

Helder Caçoila, nº 3845Helder Caçoila, nº 3845

Gonçalo Martins, nº 3945Gonçalo Martins, nº 3945

Page 2: RUP Rational Unified Process Engenharia de Software Trabalho elaborado por: Sérgio Reis, nº 3844 Helder Caçoila, nº 3845 Gonçalo Martins, nº 3945.

IntroduçãoIntrodução

Num ambiente de constante aparecimento de novas tecnologias de informação, fabricantes e produtos, continuamos a debater-nos com problemas nos projectos de software, verificando-se por exemplo que grande parte destes projectos sofrem atrasos ou revelam-se mais dispendiosos, ultrapassando os limites inicialmente planeados.

Num contexto de evolução tecnológica onde as ferramentas são mais rápidas e eficientes e onde o hardware está em constante evolução tal situação não seria de esperar. Na maior parte das vezes a causa do problema não é a tecnologia.

Page 3: RUP Rational Unified Process Engenharia de Software Trabalho elaborado por: Sérgio Reis, nº 3844 Helder Caçoila, nº 3845 Gonçalo Martins, nº 3945.

Introdução(2)Introdução(2)

Claro que existem erros e incompatibilidades mas não são estes os factores críticos de sucesso que justificam os atrasos e fracassos. Antes de culpar a tecnologia por um projecto mal sucedido, existem questões importantes a responder:

A funcionalidade do sistema suporta o objectivo proposto inicialmente?

A tecnologia escolhida é a mais adequada para o negócio do cliente?

A Equipa de projecto e o cliente falam a mesma linguagem?

A Equipa de projecto trabalha de forma integrada e sem problemas de comunicação?

Será o processo de desenvolvimento de software flexível à mudança?

Page 4: RUP Rational Unified Process Engenharia de Software Trabalho elaborado por: Sérgio Reis, nº 3844 Helder Caçoila, nº 3845 Gonçalo Martins, nº 3945.

Introdução(3)Introdução(3)

Fig.1. O RUP mostra como aplicar várias práticas de engenharia de software. Também providencia ensinamentos de como fazer uso de várias ferramentas para automatizar processos de software de engenharia específicos.

Actualmente é este o dilema dos profissionais na produção e desenvolvimento de projectos de software, com repercussões imediatas na problemática da modelação organizacional.

Page 5: RUP Rational Unified Process Engenharia de Software Trabalho elaborado por: Sérgio Reis, nº 3844 Helder Caçoila, nº 3845 Gonçalo Martins, nº 3945.

““Afinal, o que é o RUP?”Afinal, o que é o RUP?”

O O RUPRUP, abreviação de , abreviação de Rational Unified ProcessRational Unified Process é um é um processo de engenharia de software criado pela Rational processo de engenharia de software criado pela Rational Software Corporation. É um método de desenvolvimento Software Corporation. É um método de desenvolvimento de software que contempla técnicas a serem seguidas de software que contempla técnicas a serem seguidas pelos membros da equipa de desenvolvimento de pelos membros da equipa de desenvolvimento de software com o objectivo de aumentar a sua software com o objectivo de aumentar a sua produtividade.produtividade.

Page 6: RUP Rational Unified Process Engenharia de Software Trabalho elaborado por: Sérgio Reis, nº 3844 Helder Caçoila, nº 3845 Gonçalo Martins, nº 3945.

Constituição do RUPConstituição do RUP O RUP usa a abordagem da orientação a objectos em sua O RUP usa a abordagem da orientação a objectos em sua

concepção, e é projectado e documentado utilizando a concepção, e é projectado e documentado utilizando a notação UML (notação UML (Unified Modeling LanguageUnified Modeling Language) para ilustrar os ) para ilustrar os processos em acção. Utiliza técnicas e práticas provadas processos em acção. Utiliza técnicas e práticas provadas comercialmente.comercialmente.

Embora seja amplamente mutável, é um processo Embora seja amplamente mutável, é um processo considerado pesado, sendo preferencialmente aplicável a considerado pesado, sendo preferencialmente aplicável a grandes equipas de desenvolvimento e a grandes projetos. grandes equipas de desenvolvimento e a grandes projetos. Para a gerência do projecto, o RUP contempla uma solução Para a gerência do projecto, o RUP contempla uma solução disciplinada de como assinalar tarefas e responsabilidades disciplinada de como assinalar tarefas e responsabilidades dentro de uma organização de desenvolvimento de software.dentro de uma organização de desenvolvimento de software.

O RUP é, por si só, um produto de software. É modular e O RUP é, por si só, um produto de software. É modular e electrónico, e toda a sua metodologia é apoiada por diversas electrónico, e toda a sua metodologia é apoiada por diversas ferramentas de desenvolvimento integradas e vendidas pela ferramentas de desenvolvimento integradas e vendidas pela Rational através dos seus "Rational Suites".Rational através dos seus "Rational Suites".

Métodos concorrentes no campo da engenharia de software Métodos concorrentes no campo da engenharia de software incluem o "Cleanroom" (considerado pesado) e os Modelos incluem o "Cleanroom" (considerado pesado) e os Modelos Ágeis (leves) como a Programação Extrema (XP).Ágeis (leves) como a Programação Extrema (XP).

Page 7: RUP Rational Unified Process Engenharia de Software Trabalho elaborado por: Sérgio Reis, nº 3844 Helder Caçoila, nº 3845 Gonçalo Martins, nº 3945.

Linhas MestrasLinhas Mestras

Gestão de requisitosGestão de requisitos

Uma documentação apropriada é essencial para Uma documentação apropriada é essencial para qualquer grande projecto; note-se que o RUP qualquer grande projecto; note-se que o RUP descreve como documentar a funcionalidade, descreve como documentar a funcionalidade, restrições de sistema, restrições de projecto e restrições de sistema, restrições de projecto e requisitos de negócio.requisitos de negócio.

Os casos de uso e os cenários são exemplos de Os casos de uso e os cenários são exemplos de factores dependentes do processo, que têm vindo factores dependentes do processo, que têm vindo a ser considerados bastante mais eficazes no a ser considerados bastante mais eficazes no reconhecimento de requisitos funcionais.reconhecimento de requisitos funcionais.

Page 8: RUP Rational Unified Process Engenharia de Software Trabalho elaborado por: Sérgio Reis, nº 3844 Helder Caçoila, nº 3845 Gonçalo Martins, nº 3945.

Linhas Mestras (2)Linhas Mestras (2)

Uso de arquitectura baseada Uso de arquitectura baseada em componentesem componentes

A arquitectura baseada em componentes cria um A arquitectura baseada em componentes cria um sistema que pode ser facilmente extensível, sistema que pode ser facilmente extensível, promovendo a reutilização de software e um promovendo a reutilização de software e um entendimento intuitivo. Um componente entendimento intuitivo. Um componente normalmente relaciona-se com um objecto na normalmente relaciona-se com um objecto na programação orientada a objectos.programação orientada a objectos.

O RUP oferece uma forma sistemática para O RUP oferece uma forma sistemática para construir este tipo de sistema, focando-se em construir este tipo de sistema, focando-se em produzir uma arquitectura executável nas fases produzir uma arquitectura executável nas fases iniciais do projecto, antes de comprometer iniciais do projecto, antes de comprometer recursos em larga escala.recursos em larga escala.

Page 9: RUP Rational Unified Process Engenharia de Software Trabalho elaborado por: Sérgio Reis, nº 3844 Helder Caçoila, nº 3845 Gonçalo Martins, nº 3945.

Linhas Mestras (3)Linhas Mestras (3)

Uso de software de modelos Uso de software de modelos visuaisvisuais

Ao abstrair a programação do seu código e Ao abstrair a programação do seu código e representá-la utilizando blocos de construção representá-la utilizando blocos de construção gráfica, o RUP consegue uma maneira efectiva de gráfica, o RUP consegue uma maneira efectiva de se ter uma visão geral de uma solução. O uso de se ter uma visão geral de uma solução. O uso de modelos visuais também pode permitir que modelos visuais também pode permitir que indivíduos de perfil menos técnico (como indivíduos de perfil menos técnico (como clientes) tenham um melhor entendimento de um clientes) tenham um melhor entendimento de um dado problema, e assim se envolvam mais no dado problema, e assim se envolvam mais no projecto.projecto.

A linguagem de modelação UML tornou-se um A linguagem de modelação UML tornou-se um padrão industrial para representar projetos e é padrão industrial para representar projetos e é amplamente utilizada pelo RUP.amplamente utilizada pelo RUP.

Page 10: RUP Rational Unified Process Engenharia de Software Trabalho elaborado por: Sérgio Reis, nº 3844 Helder Caçoila, nº 3845 Gonçalo Martins, nº 3945.

Linhas Mestras (4)Linhas Mestras (4)

Verificação da qualidade do Verificação da qualidade do softwaresoftware

Não assegurar a qualidade do software é a falha Não assegurar a qualidade do software é a falha mais comum em todos os projetos de software. mais comum em todos os projetos de software. Normalmente, pensa-se em qualidade de software Normalmente, pensa-se em qualidade de software após o término dos projetos, ou a qualidade é após o término dos projetos, ou a qualidade é responsabilidade por uma equipa diferente da responsabilidade por uma equipa diferente da equipa de desenvolvimento. O RUP tenciona dar equipa de desenvolvimento. O RUP tenciona dar assistência no controle do planeamento da assistência no controle do planeamento da qualidade, verificando-a na construção de todo o qualidade, verificando-a na construção de todo o processo e envolvendo todos os membros da processo e envolvendo todos os membros da equipa de desenvolvimento.equipa de desenvolvimento.

Page 11: RUP Rational Unified Process Engenharia de Software Trabalho elaborado por: Sérgio Reis, nº 3844 Helder Caçoila, nº 3845 Gonçalo Martins, nº 3945.

Linhas Mestras (5)Linhas Mestras (5)

Gestão e Controlo de Gestão e Controlo de Mudanças do SoftwareMudanças do Software Em todos os projectos de software a Em todos os projectos de software a

mudança é inevitável. O RUP define métodos mudança é inevitável. O RUP define métodos para controlar e monitorizar mudanças. para controlar e monitorizar mudanças. Como uma pequena mudança pode afectar Como uma pequena mudança pode afectar aplicações de formas inteiramente aplicações de formas inteiramente imprevisíveis o controlo de mudanças é imprevisíveis o controlo de mudanças é essencial para o sucesso de um projecto.essencial para o sucesso de um projecto.

O RUP também define áreas de trabalho O RUP também define áreas de trabalho seguras, garantindo a um programador que seguras, garantindo a um programador que as mudanças efectuadas noutro sistema não as mudanças efectuadas noutro sistema não irão afectar o seu sistema.irão afectar o seu sistema.

Page 12: RUP Rational Unified Process Engenharia de Software Trabalho elaborado por: Sérgio Reis, nº 3844 Helder Caçoila, nº 3845 Gonçalo Martins, nº 3945.

FasesFases

Até agora estas linhas mestras são gerais, Até agora estas linhas mestras são gerais, a serem cumpridas no percorrer do ciclo a serem cumpridas no percorrer do ciclo de vida de um projecto. As fases indicam a de vida de um projecto. As fases indicam a ênfase que é dada no projecto em um ênfase que é dada no projecto em um dado instante. Para capturar a dimensão dado instante. Para capturar a dimensão do tempo de um projecto, o RUP divide o do tempo de um projecto, o RUP divide o projecto em quatro fases diferentes:projecto em quatro fases diferentes:

Concepção: ênfase no escopo do sistema Concepção: ênfase no escopo do sistema Elaboração: ênfase na arquitectura Elaboração: ênfase na arquitectura Construção: ênfase no desenvolvimento Construção: ênfase no desenvolvimento Transição: ênfase na implantação Transição: ênfase na implantação

Page 13: RUP Rational Unified Process Engenharia de Software Trabalho elaborado por: Sérgio Reis, nº 3844 Helder Caçoila, nº 3845 Gonçalo Martins, nº 3945.

ConcepçãoConcepção

ObjectivosObjectivos

Entender o âmbito geral do projecto e os Entender o âmbito geral do projecto e os seus objectivosseus objectivos

Colher informações sobre o que deve ser Colher informações sobre o que deve ser feitofeito

Decidir sobre a continuidade do projectoDecidir sobre a continuidade do projecto

Page 14: RUP Rational Unified Process Engenharia de Software Trabalho elaborado por: Sérgio Reis, nº 3844 Helder Caçoila, nº 3845 Gonçalo Martins, nº 3945.

Concepção (2)Concepção (2)

Actividades EssenciaisActividades Essenciais

Entender o que produzirEntender o que produzir Identificar os pontos chave do sistemaIdentificar os pontos chave do sistema Determinar no mínimo uma solução Determinar no mínimo uma solução

possívelpossível Planear custos, agenda e riscosPlanear custos, agenda e riscos Decidir qual processo seguir e quais Decidir qual processo seguir e quais

ferramentasferramentas OBS: Podem (devem) ser feitos em paraleloOBS: Podem (devem) ser feitos em paralelo

Page 15: RUP Rational Unified Process Engenharia de Software Trabalho elaborado por: Sérgio Reis, nº 3844 Helder Caçoila, nº 3845 Gonçalo Martins, nº 3945.

ElaboraçãoElaboração

ObjectivosObjectivos

Desenvolver a arquitectura do Desenvolver a arquitectura do sistema, tendo em conta:sistema, tendo em conta:

Requisitos mais significantesRequisitos mais significantes

Avaliação dos riscosAvaliação dos riscos

Page 16: RUP Rational Unified Process Engenharia de Software Trabalho elaborado por: Sérgio Reis, nº 3844 Helder Caçoila, nº 3845 Gonçalo Martins, nº 3945.

Elaboração (2)Elaboração (2)

Actividades EssenciaisActividades Essenciais Obter uma compreensão detalhada dos Obter uma compreensão detalhada dos

requisitos.requisitos. Casos de uso mais detalhadosCasos de uso mais detalhados Protótipos de interface validados pelo utilizadorProtótipos de interface validados pelo utilizador GlossárioGlossário

Modelar, implementar, validar e definir as Modelar, implementar, validar e definir as linhas base da arquitectura.linhas base da arquitectura.

Mais importantes blocos de construção, interfaces, Mais importantes blocos de construção, interfaces, decisões de implementação e reutilizaçãodecisões de implementação e reutilização

Descrição da interacção dos blocos nos cenários Descrição da interacção dos blocos nos cenários mais importantesmais importantes

Implementação e validação da arquitectura.Implementação e validação da arquitectura. Faça os casos de teste unitáriosFaça os casos de teste unitários

Page 17: RUP Rational Unified Process Engenharia de Software Trabalho elaborado por: Sérgio Reis, nº 3844 Helder Caçoila, nº 3845 Gonçalo Martins, nº 3945.

Elaboração (3)Elaboração (3) Actividades EssenciaisActividades Essenciais

Minimizar os riscos essenciais e Minimizar os riscos essenciais e produzir uma agenda mais precisa e produzir uma agenda mais precisa e estimativas de custo.estimativas de custo.

Requisitos detalhados.Requisitos detalhados. A implementação do esqueleto minimiza os A implementação do esqueleto minimiza os

problemas mais difíceis.problemas mais difíceis. Os riscos já foram quase todos Os riscos já foram quase todos

minimizados.minimizados. Nessa fase a potencialidade da equipe e Nessa fase a potencialidade da equipe e

das ferramentas já pode ser avaliadadas ferramentas já pode ser avaliada Melhorar o Melhorar o Development CaseDevelopment Case e a e a

implantaçãoimplantação Esta etapa define o modo de usar o Esta etapa define o modo de usar o

RUP.RUP.

Page 18: RUP Rational Unified Process Engenharia de Software Trabalho elaborado por: Sérgio Reis, nº 3844 Helder Caçoila, nº 3845 Gonçalo Martins, nº 3945.

ConstruçãoConstrução

ObjectivosObjectivos

Minimizar custos de desenvolvimentoMinimizar custos de desenvolvimento Alcançar um determinado grau de Alcançar um determinado grau de

paralelismo de desenvolvimentoparalelismo de desenvolvimento Desenvolver iterativamente um produto Desenvolver iterativamente um produto

completo que esteja pronto para a transiçãocompleto que esteja pronto para a transição

Page 19: RUP Rational Unified Process Engenharia de Software Trabalho elaborado por: Sérgio Reis, nº 3844 Helder Caçoila, nº 3845 Gonçalo Martins, nº 3945.

Construção (2)Construção (2)

Actividades EssenciaisActividades Essenciais

Descrever Casos de Uso remanescentesDescrever Casos de Uso remanescentes Completar o projecto de componentes e Completar o projecto de componentes e

subsistemassubsistemas Completar o projecto do base de dadosCompletar o projecto do base de dados Implementar e fazer testes de unidadeImplementar e fazer testes de unidade Integração e testes do sistemaIntegração e testes do sistema FeedbackFeedback dos clientes dos clientes Prerelease Prerelease ee versão final do sistemaversão final do sistema

Page 20: RUP Rational Unified Process Engenharia de Software Trabalho elaborado por: Sérgio Reis, nº 3844 Helder Caçoila, nº 3845 Gonçalo Martins, nº 3945.

TransiçãoTransição

ObjectivosObjectivos

Validar o sistema de acordo com a Validar o sistema de acordo com a especificação do utilizadorespecificação do utilizador

Treinar utilizadores e AdministradoresTreinar utilizadores e Administradores Preparar o local de implantação Preparar o local de implantação ......

Assegurar disponibilidade do software para os Assegurar disponibilidade do software para os utilizadores finaisutilizadores finais

Page 21: RUP Rational Unified Process Engenharia de Software Trabalho elaborado por: Sérgio Reis, nº 3844 Helder Caçoila, nº 3845 Gonçalo Martins, nº 3945.

Transição (2)Transição (2)

Actividades essenciaisActividades essenciais Executar planos de Executar planos de deploymentdeployment Facultar material de suporte ao utilizadorFacultar material de suporte ao utilizador Testar, no ambiente de desenvolvimento, o Testar, no ambiente de desenvolvimento, o

produto pronto para entregaproduto pronto para entrega Gerar o Gerar o releaserelease do produto (beta) do produto (beta) Recolher informação de Recolher informação de feedbackfeedback do do

utilizadorutilizador Ajustar o produto de acordo com o Ajustar o produto de acordo com o

feedbackfeedback Disponibilizar o produto para os utilizadores Disponibilizar o produto para os utilizadores

finaisfinais

Page 22: RUP Rational Unified Process Engenharia de Software Trabalho elaborado por: Sérgio Reis, nº 3844 Helder Caçoila, nº 3845 Gonçalo Martins, nº 3945.

ConclusãoConclusão O RUP com a sua ferramenta de suporte é uma O RUP com a sua ferramenta de suporte é uma

poderosa plataforma para Processos de Engenharia, poderosa plataforma para Processos de Engenharia, que é configurável e extensível.que é configurável e extensível.

O correcto processo de desenvolvimento para um O correcto processo de desenvolvimento para um determinado projecto depende de inúmeros factores, determinado projecto depende de inúmeros factores, incluindo tamanho do projecto, formalidade, incluindo tamanho do projecto, formalidade, tecnologia, técnicas aplicadas e filosofia de tecnologia, técnicas aplicadas e filosofia de desenvolvimento. Para outros, podemos configurar desenvolvimento. Para outros, podemos configurar um processo adequado através da selecção de um processo adequado através da selecção de plug-plug-ins ins disponíveis e componentes.disponíveis e componentes.

Em suma, um RUP Em suma, um RUP plug-in plug-in é um componente é um componente específico de um processo para uma determinada específico de um processo para uma determinada tecnologia, ferramenta, plataforma ou domínio tecnologia, ferramenta, plataforma ou domínio contendo linhas orientadoras em texto ou em contendo linhas orientadoras em texto ou em gráficos, exemplos e templates.gráficos, exemplos e templates.

Esta arquitectura permite uma fácil configuração de Esta arquitectura permite uma fácil configuração de um processo de acordo com as suas necessidades um processo de acordo com as suas necessidades específicas.específicas.

Page 23: RUP Rational Unified Process Engenharia de Software Trabalho elaborado por: Sérgio Reis, nº 3844 Helder Caçoila, nº 3845 Gonçalo Martins, nº 3945.

Conclusão (2)Conclusão (2)

O RUP pode ser estendido por plug-ins criados por O RUP pode ser estendido por plug-ins criados por nós utilizando o Process Rational Workbench, e nós utilizando o Process Rational Workbench, e podem ser partilhados utilizando o RUP Exchange da podem ser partilhados utilizando o RUP Exchange da Rational Developer Network. Na maior parte dos Rational Developer Network. Na maior parte dos casos, deveremos considerar a construção de casos, deveremos considerar a construção de Thin Thin RUP RUP plug-ins plug-ins utilizando o RUP Organizer. Os utilizando o RUP Organizer. Os Thin Thin Plug-ins Plug-ins permitem que adicionemos, modifiquemos, permitem que adicionemos, modifiquemos, ou apaguemos, exemplos, templates, e ou apaguemos, exemplos, templates, e assets assets reutilizáveis.reutilizáveis.

Os clientes mais experientes com necessidades Os clientes mais experientes com necessidades específicas podem também produzir Structural RUP específicas podem também produzir Structural RUP Plug-in Plug-in utilizando o RUP Modeller, bem como o RUP utilizando o RUP Modeller, bem como o RUP Organizer.Organizer.

Os Structural Os Structural Plug-ins Plug-ins permitem maiores alterações permitem maiores alterações no RUP.no RUP.

O resultado final são um ou mais processos de O resultado final são um ou mais processos de desenvolvimento de software, adaptado ás desenvolvimento de software, adaptado ás necessidades actuais do projecto e organização, e necessidades actuais do projecto e organização, e permitir responder a novas necessidades futuras.permitir responder a novas necessidades futuras.

Page 24: RUP Rational Unified Process Engenharia de Software Trabalho elaborado por: Sérgio Reis, nº 3844 Helder Caçoila, nº 3845 Gonçalo Martins, nº 3945.

ReferênciasReferências

Rational Unified Process, version 2003, IBM Rational Unified Process, version 2003, IBM Rational SoftwareRational Software

Tool Mentor: Tool Mentor: Packaging Project Specific assets Packaging Project Specific assets into Thin RUP Plug Ins with RUP Organizerinto Thin RUP Plug Ins with RUP Organizer