Trabalho elaborado por: Srgio Reis, n 3844 Helder Caoila, n 3845 Gonalo Martins, n 3945 Introduo Num ambiente de constante aparecimento de novas tecnologias de informao, 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 evoluo tecnolgica onde as ferramentas so mais rpidas e eficientes e onde o hardware est em constante evoluo tal situao no seria de esperar. Na maior parte das vezes a causa do problema no a tecnologia.
Introduo(2) Claro que existem erros e incompatibilidades mas no so estes os factores crticos de sucesso que justificam os atrasos e fracassos. Antes de culpar a tecnologia por um projecto mal sucedido, existem questes importantes a responder:
A funcionalidade do sistema suporta o objectivo proposto inicialmente?
A tecnologia escolhida a mais adequada para o negcio 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 comunicao?
Ser o processo de desenvolvimento de software flexvel mudana?
Introduo(3) Fig.1. O RUP mostra como aplicar vrias prticas de engenharia de software. Tambm providencia ensinamentos de como fazer uso de vrias ferramentas para automatizar processos de software de engenharia especficos.
Actualmente este o dilema dos profissionais na produo e desenvolvimento de projectos de software, com repercusses imediatas na problemtica da modelao organizacional.
Afinal, o que o RUP?
O RUP, abreviao de Rational Unified Process um processo de engenharia de software criado pela Rational Software Corporation. um mtodo de desenvolvimento de software que contempla tcnicas a serem seguidas pelos membros da equipa de desenvolvimento de software com o objectivo de aumentar a sua produtividade. Constituio do RUP O RUP usa a abordagem da orientao a objectos em sua concepo, e projectado e documentado utilizando a notao UML (Unified Modeling Language) para ilustrar os processos em aco. Utiliza tcnicas e prticas provadas comercialmente.
Embora seja amplamente mutvel, um processo considerado pesado, sendo preferencialmente aplicvel a grandes equipas de desenvolvimento e a grandes projetos. Para a gerncia do projecto, o RUP contempla uma soluo disciplinada de como assinalar tarefas e responsabilidades dentro de uma organizao de desenvolvimento de software.
O RUP , por si s, um produto de software. modular e electrnico, e toda a sua metodologia apoiada por diversas ferramentas de desenvolvimento integradas e vendidas pela Rational atravs dos seus "Rational Suites".
Mtodos concorrentes no campo da engenharia de software incluem o "Cleanroom" (considerado pesado) e os Modelos geis (leves) como a Programao Extrema (XP). Linhas Mestras Gesto de requisitos
Uma documentao apropriada essencial para qualquer grande projecto; note-se que o RUP descreve como documentar a funcionalidade, restries de sistema, restries de projecto e requisitos de negcio.
Os casos de uso e os cenrios so exemplos de factores dependentes do processo, que tm vindo a ser considerados bastante mais eficazes no reconhecimento de requisitos funcionais.
Linhas Mestras (2) Uso de arquitectura baseada em componentes
A arquitectura baseada em componentes cria um sistema que pode ser facilmente extensvel, promovendo a reutilizao de software e um entendimento intuitivo. Um componente normalmente relaciona-se com um objecto na programao orientada a objectos.
O RUP oferece uma forma sistemtica para construir este tipo de sistema, focando-se em produzir uma arquitectura executvel nas fases iniciais do projecto, antes de comprometer recursos em larga escala.
Linhas Mestras (3) Uso de software de modelos visuais
Ao abstrair a programao do seu cdigo e represent-la utilizando blocos de construo grfica, o RUP consegue uma maneira efectiva de se ter uma viso geral de uma soluo. O uso de modelos visuais tambm pode permitir que indivduos de perfil menos tcnico (como clientes) tenham um melhor entendimento de um dado problema, e assim se envolvam mais no projecto.
A linguagem de modelao UML tornou-se um padro industrial para representar projetos e amplamente utilizada pelo RUP. Linhas Mestras (4) Verificao da qualidade do software
No assegurar a qualidade do software a falha mais comum em todos os projetos de software. Normalmente, pensa-se em qualidade de software aps o trmino dos projetos, ou a qualidade responsabilidade por uma equipa diferente da equipa de desenvolvimento. O RUP tenciona dar assistncia no controle do planeamento da qualidade, verificando-a na construo de todo o processo e envolvendo todos os membros da equipa de desenvolvimento. Linhas Mestras (5) Gesto e Controlo de Mudanas do Software Em todos os projectos de software a mudana inevitvel. O RUP define mtodos para controlar e monitorizar mudanas. Como uma pequena mudana pode afectar aplicaes de formas inteiramente imprevisveis o controlo de mudanas essencial para o sucesso de um projecto.
O RUP tambm define reas de trabalho seguras, garantindo a um programador que as mudanas efectuadas noutro sistema no iro afectar o seu sistema. Fases At agora estas linhas mestras so gerais, a serem cumpridas no percorrer do ciclo de vida de um projecto. As fases indicam a nfase que dada no projecto em um dado instante. Para capturar a dimenso do tempo de um projecto, o RUP divide o projecto em quatro fases diferentes:
Concepo: nfase no escopo do sistema Elaborao: nfase na arquitectura Construo: nfase no desenvolvimento Transio: nfase na implantao
Concepo Objectivos
Entender o mbito geral do projecto e os seus objectivos
Colher informaes sobre o que deve ser feito
Decidir sobre a continuidade do projecto
Concepo (2) Actividades Essenciais
Entender o que produzir Identificar os pontos chave do sistema Determinar no mnimo uma soluo possvel Planear custos, agenda e riscos Decidir qual processo seguir e quais ferramentas OBS: Podem (devem) ser feitos em paralelo
Elaborao Objectivos
Desenvolver a arquitectura do sistema, tendo em conta:
Requisitos mais significantes
Avaliao dos riscos Elaborao (2) Actividades Essenciais Obter uma compreenso detalhada dos requisitos. Casos de uso mais detalhados Prottipos de interface validados pelo utilizador Glossrio Modelar, implementar, validar e definir as linhas base da arquitectura. Mais importantes blocos de construo, interfaces, decises de implementao e reutilizao Descrio da interaco dos blocos nos cenrios mais importantes Implementao e validao da arquitectura. Faa os casos de teste unitrios Elaborao (3) Actividades Essenciais Minimizar os riscos essenciais e produzir uma agenda mais precisa e estimativas de custo. Requisitos detalhados. A implementao do esqueleto minimiza os problemas mais difceis. Os riscos j foram quase todos minimizados. Nessa fase a potencialidade da equipe e das ferramentas j pode ser avaliada Melhorar o Development Case e a implantao Esta etapa define o modo de usar o RUP. Construo Objectivos
Minimizar custos de desenvolvimento Alcanar um determinado grau de paralelismo de desenvolvimento Desenvolver iterativamente um produto completo que esteja pronto para a transio Construo (2) Actividades Essenciais
Descrever Casos de Uso remanescentes Completar o projecto de componentes e subsistemas Completar o projecto do base de dados Implementar e fazer testes de unidade Integrao e testes do sistema Feedback dos clientes Prerelease e verso final do sistema
Transio Objectivos
Validar o sistema de acordo com a especificao do utilizador Treinar utilizadores e Administradores Preparar o local de implantao ... Assegurar disponibilidade do software para os utilizadores finais
Transio (2) Actividades essenciais Executar planos de deployment Facultar material de suporte ao utilizador Testar, no ambiente de desenvolvimento, o produto pronto para entrega Gerar o release do produto (beta) Recolher informao de feedback do utilizador Ajustar o produto de acordo com o feedback Disponibilizar o produto para os utilizadores finais
Concluso O RUP com a sua ferramenta de suporte uma poderosa plataforma para Processos de Engenharia, que configurvel e extensvel. O correcto processo de desenvolvimento para um determinado projecto depende de inmeros factores, incluindo tamanho do projecto, formalidade, tecnologia, tcnicas aplicadas e filosofia de desenvolvimento. Para outros, podemos configurar um processo adequado atravs da seleco de plug- ins disponveis e componentes. Em suma, um RUP plug-in um componente especfico de um processo para uma determinada tecnologia, ferramenta, plataforma ou domnio contendo linhas orientadoras em texto ou em grficos, exemplos e templates. Esta arquitectura permite uma fcil configurao de um processo de acordo com as suas necessidades especficas.
Concluso (2) O RUP pode ser estendido por plug-ins criados por ns utilizando o Process Rational Workbench, e podem ser partilhados utilizando o RUP Exchange da Rational Developer Network. Na maior parte dos casos, deveremos considerar a construo de Thin RUP plug-ins utilizando o RUP Organizer. Os Thin Plug-ins permitem que adicionemos, modifiquemos, ou apaguemos, exemplos, templates, e assets reutilizveis. Os clientes mais experientes com necessidades especficas podem tambm produzir Structural RUP Plug-in utilizando o RUP Modeller, bem como o RUP Organizer. Os Structural Plug-ins permitem maiores alteraes no RUP. O resultado final so um ou mais processos de desenvolvimento de software, adaptado s necessidades actuais do projecto e organizao, e permitir responder a novas necessidades futuras.
Referncias
Rational Unified Process, version 2003, IBM Rational Software
Tool Mentor: Packaging Project Specific assets into Thin RUP Plug Ins with RUP Organizer