Upload
internet
View
106
Download
0
Embed Size (px)
Citation preview
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
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.
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?
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.
““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.
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).
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.
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.
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.
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.
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.
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
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
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
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
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
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.
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
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
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
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
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.
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.
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