segunda-feira, 10 de fevereiro de 2014

A disciplina de gerenciamento de projeto no RUP

O gerenciamento de projeto é uma disciplina que persiste em todas as fases do RUP, Ele é uma disciplina de apoio que da suporte as fases principais do RUP. Como toda disciplina, ela tem várias atividades artefatos e responsabilidades envolvidas.
O fluxo de atividade do gerenciamento de projeto é aberto e o RUP não estabelece diretrizes para isso, por isso o fluxo das atividades de pendem da cultura da empresa e das características do projeto. O RUP também não cobre a gestão de pessoas: contratação, treinamento, acompanhamento. A gestão de orçamentos e a gestão de contratos com fornecedores e clientes.
O papel do gerente de projeto irá planejar e coordenar o desenvolvimento do sistema, acompanhar métricas e atendendo a necessidades de recursos. Suas atribuições também visam o gerenciamento dos riscos, sua sensibilidade e o controle das equipes. A seguir vamos detalhar um pouco mais de suas atribuições:

  • Desenvolver o estudo de viabilidade: Atividade que tem como objetivo elaborar um estudo de viabilidade do projeto gerando o documento de estudo de viabilidade. Ele deve descrever o produto, seus objetivos e o contexto. Identificar os riscos e restrições bem como definir os requisitos de construções e operações. O documento também deve abordar o custo/benefício, a estimativa preliminar e a viabilidade sugerida.
  • Identificar Riscos: O objetivo é identificar e priorizar os riscos do projeto e suas ações necessárias para evitar ou minimiza-los.
  • Desenvolver plano de projeto: Elaborar o documento com a as informações necessárias para o desenvolvimento, incluindo os principais marcos e datas para geração dos produto. O documento irá conter as principais datas e marcos para o projeto e a alocação das funções e responsáveis.
  • Desenvolver plano de Iterações: Esse plano define as iterações para atender os objetivos definidos no plano do projeto. É necessário nesse plano determinar os módulos a ser desenvolvida nas iterações o critérios de avaliação das iterações e definir a estrutura de atividades e a distribuição de recursos humanos.
  • Executar plano de iterações: Acompanhar e coordenar a evolução das atividades proposta em cada iteração trabalhando para minimizar os riscos identificados.
  • Avaliação de iterações: Portante atividade que identifica pontos problemáticos do processo, determinando se a iteração atendeu as metas propostas e sua avaliação e impacto no projeto.
  • Reavaliar Riscos: A reavaliação precisa manter a lista de riscos atualizadas de forma que a mesma reflita o estado do projeto atual.
  • Finalizar projeto: É necessário certificar a conclusão do projeto e escrever o relatório final do projeto, ele precisa analisar documentos disponíveis, analisar a entrega do produto e elavorar a análise dos benefícios produzindo o relatório final.

Há também o envolvimento de outros papéis como do arquiteto que poderemos abordar em outro post.

Abraço

quinta-feira, 6 de fevereiro de 2014

Plano de Projeto de Software ControlArt - Final

Pessoal, bom tarde.

Segue abaixo versão final do Plano de Projeto de Software ControlArt (Sistema para Controle de Acervo de Arte).

segunda-feira, 3 de fevereiro de 2014

O produto RUP

Pessoal, boa noite.

Sabemos que o RUP é um processo de desenvolvimento de software iterativo e incremental, orientado a casos de uso e centrado na arquitetura. Neste post mostraremos, basicamente, do que é formado o produto RUP: 

- Uma base de conhecimento web voltada a buscas, utilizada por todos os membros de uma equipe para obter guias, templates e assistentes de ferramentas para todas as atividades de desenvolvimento. Essa base de conhecimento pode ser dividida em:
  • Extensos guias disponíveis (via web) para todos os membros da equipe;
  • Assistentes de ferramentas - Guias web de como utilizar as ferramentas suportadas;
  • Rational Rose (ferramenta Rational para modelagem visual) - Exemplos e templates que servem como guias de como estruturar a informação no Rational Rose;
  • Templates SoDA (Rational’s Document Automation Tool) - Auxiliam no processo de automação da documentação do software. De acordo com a rational, existem mais de 10 modelos disponíveis;
  • Templates Microsoft Word - Auxiliam na criação da documentação durante o decorrer das disciplinas. De acordo com a Rational, existem mais de 30 modelos disponíveis.
- Templates para o Microsoft Project, utilizados como exemplos para criar planos de projeto que refletem uma abordagem iterativa;
- Kit de Desenvolvimento. Fornece ferramentas que possibilitam entender, customizar e estender o RUP de acordo com as necessidades específicas de uma organização ou projeto;
- Acesso ao centro de recursos que contêm as últimas atualizações, técnicas, dicas e quaisquer informações úteis para gerenciar produtos e serviços; 
- Um livro chamado “Rational Unified Process – An Introduction” (escrito por Philippe Kruchten e publicado por Addison-Wesley) que fornece uma boa introdução ao RUP e à base de conhecimento.


Nota 1: As informações descritas acima podem sofrer modificações. Tudo depende da implementação do RUP que será utilizada.
Nota 2: Caso alguém esteja interessado, no material fonte deste post (item 2) existe um caso de uso empresa VOLVO IT) de implementação do RUP. Lá vocês podem analisar o que eles utilizaram.
Nota 3: Não mencionamos anteriormente, mas a Rational foi a empresa que desenvolveu o RUP. Atualmente, depois de comprada pela IBM, ela ainda é responsável por manter o processo.


Isso é tudo pessoal.
Obrigado.
Até a próxima!

Fonte

[1] IBM Rational Unified Process | Último acesso em 03/02/2014
[2] Caso de uso VOLVO IT | Último acesso em 03/02/2014

quinta-feira, 30 de janeiro de 2014

quarta-feira, 29 de janeiro de 2014

Plano de Projeto de Software ControlArt - Rascunho

Pessoal, boa noite.

Segue abaixo rascunho do Plano de Projeto de Software ControlArt (Sistema para Controle de Acervo de Arte).

terça-feira, 14 de janeiro de 2014

RUP: Boas Práticas para o Desenvolvimento de Software

Pessoal, boa noite!

   O termo boas práticas (derivado do inglês, best practices) denomina o melhor conjunto de técnicas para realizar uma determinada tarefa. O Rational Unified Process (RUP) engloba muitas das boas práticas do desenvolvimento de software moderno, tornando-se adequado para uma grande quantidade de projetos e organizações que desejam obter valores precisamente quantificados e, ao mesmo tempo, padrões comprovados de sucesso. 

   Hoje falaremos um pouco sobre algumas dessas práticas incorporadas pelo RUP:

  • Desenvolvimento de software iterativo: Os sofisticados produtos de software da atualidade não são compatíveis com o modelo tradicional de desenvolvimento sequencial. Dependendo da abordagem utilizada, a necessidade de refinamentos sucessivos (com o intuito de aprimorar a lógica de negócio), mudanças nos requisitos e no calendário, que podem gerar diversas versões finais (releases) de um produto de software, requerem uma abordagem iterativa de desenvolvimento. O RUP descreve como utilizar esse modelo e como gerir os riscos provenientes desse novo enfoque;
  • Gerenciamento de requisitos: O RUP possui ferramentas que permitem criar, organizar e documentar requisitos e restrições de um produto de software. O objetivo desse intento é garantir coerência e precisão durante a etapa de desenvolvimento (e suas diversas fases) e de entrega do produto (verificar se o produto entregue era realmente o esperado);
  • Utilização de uma arquitetura baseada em componentes: O RUP apresenta um modelo que procura construir uma arquitetura robusta e ao mesmo tempo flexível, com o foco na reutilização de componentes complexos (ou criação de novos). O intuito dessa abordagem é acomodar mudanças e torná-las facilmente entendíveis, afim de viabilizar a reutilização de software;
  • Modelagem visual do software: O Processo Unificado Rational também descreve como modelar software visualmente para melhorar a estrutura e o comportamento da arquitetura e dos componentes de um produto de software. A UML (Unified Modeling Language), por exemplo, é muito utilizada para esses propósitos;
  • Análise da qualidade do software: Garantir a qualidade do software é uma preocupação de que está presente em todas as fases do processo de construção. O RUP assegura, em todas as suas atividades, que exista o controle da garantia da qualidade do software. Esse papel não é executado por uma ferramenta à parte;
  • Controle das mudanças do software: Uma modificação em um produto de software só é aceitável se as suas consequências forem previamente conhecidas. Um sistema que atua em um ambiente inconstante, deve estar preparado para suportar mudanças. O Processo Unificado Rational descreve como controlar, rastrear e monitorar com êxito tais mudanças, assegurando que possa existir um ambiente iterativo real.

Isso é tudo pessoal.
Um forte abraço a todos. 
Até a próxima!

Fonte:

[1] IBM Rational Unified Process | Último acesso em 14/01/2014.

sábado, 11 de janeiro de 2014

Reengenharia de sistemas com RUP

Boa tarde pessoal,
 
Vou falar hoje sobre uma experiência que terminou como TCC de estudantes da Universidade Federal de Florianópolis, é a utilização do RUP aplicado a reengenharia de sistema.
 
O trabalho trada da experiência no uso da metodologia de desenvolvimento RUP em um processo de reengenharia de sistemas. O RUP foi escolhido devido a suas característica altamente adaptativa. e que se mostrou útil ao caso de uso proposto pelo trabalho.
A reengenharia foi aplicada ao sistema da Associação de Professores da UFSC desenvolvido em Microsoft Access e com pouca documentação.
Pressman como um dos prisma da reengenharia a criação de um produto com funcionalidades adicionais e melhoras no sistema e na forma de manutenção dele, sendo utilizado para a migração de sistemas legados com pouca documentação ou migração de sistemas locais para sistemas baseados na internet.
Muitos pensam no RUP para utilização em projetos novos onde existem bem definidas todas as fases do projeto porém como é mostrado no trabalho muitos artefatos podem ser utilizados no processo de reengenharia.
 O documento utiliza a ideia do Business Process Reengineering que é você fazer a avaliação crítica  de todo negócio existente e tentar encontrar meios novos para sua reconstrução.
Também explica que projetos de reengenharia tem grandes chances de fracasso, entre 50% a 70% segundo Jacobson, e o documento abordar segundo Pressman os principais motivos desse fracasso.
Para utilização do RUP nesse cenário ou em qualquer outro é preciso manter os princípios do RUP.
 
  • Suavização antecipada de riscos/mudanças;
  • desenvolvimento iterativo;
  • avaliação progressiva;
  • organização em pequenos times;
  • verificação contínua de qualidade;
  • gerenciamento de escopo;
  • produção apenas dos artefatos necessários.
Também mesmo em um projeto de reengenharia deve-se criar os documentos de Visão, Planejamento do Projeto, Avaliação de Riscos entre os outros artefatos mínimos para projetos e definir os artefatos do sistema legado. 
O levantamento de requisitos tem uma fase para identificação dos requisitos dos sistema legado e sua adaptação para os requisitos atuais.
Durante a analise em que é feito a expansão dos casos de usos e eventos do sistemas caso o sistema legado tenha interface definida a expansão do caso de uso pode utilizar os casos de uso reais. Wazlawick aborda a falta de necessidade para projetos de reengenharia já que a versão de caso de uso essencial é para explorar sistemas desconhecido em que se precisa ter um aprendizado para a construção de telas. Em projetos de reengenharia é indicado manter a interface compatível com a antiga.
Quando se está no projeto os principais artefatos são os diagramas de interação baseado nos diagramas de classe sendo construindo da mesma forma que um processos de projeto baseado em engenharia normal.
Após o projeto é feita a implantação, durante a implantação encontra-se mais dificuldades comparados a um projeto novo. Para Kruchten, sistemas feitos de reengenharias trazem problemas como a conversão de dados, continuidade de operação e re-treinamento do pessoal bem como a confiança do usuário no novo sistema.
 
Kruchten alinha o fluxo de trabalho de reengenharia com as fases do RUP e os documentos necessários a mais para cada fase.
 
concepção - documento dos artefatos a serem reconstruídos e iniciação do processo de engenharia reversa para os artefatos de requisitos e análise.
elaboração – A elaboração aproveita os artefatos antigos e todos devem ser revisados e incorporados.
construção - A fase de construção do RUP segue como a de um projeto de software de engenharia normal. Os artefatos legados são implementados e atualizados.
transição - A fase de transição encontram-se os elementos mais delicados. Necessários atenção para a migração de dados, a desativação do sistema que está sendo substituído.
No estudo de caso do trabalho os autores descrevem as atividades de todas as fases do RUP que permitiu a reengenharia minimizando as chances de falhas ou erros durantes o projeto.
A baixo vou reproduzir a conclusão que os autores tiveram sobre o estudo realizado.
Conclusão

Um processo de reengenharia pode ser visto sob dois diferentes prismas, a reengenharia de negócios e a reengenharia de sistemas. A primeira, também chamada de BPR, é muito mais abrangente, envolve toda uma organização e acaba, em última instancia, levando também à segunda.

A reengenharia de sistemas, foco deste trabalho, pode ser vista como uma atividade composta, basicamente, dos seguintes passos: conhecer o software existente e as razões que levam à necessidade de uma reengenharia; fazer a engenharia reversa do sistema existente a fim de se obter conhecimento e documentação o bastante sobre ele para se realizar a construção de um novo sistema; e, realizar a construção do novo sistema partindo-se da documentação gerada com a engenharia reversa e dos requisitos que levaram ao processo de reengenharia.

Neste trabalho verificou-se o poder de adaptação do Rational Unified Process quando este pôde ser perfeitamente utilizado em um processo de reengenharia. Num primeiro momento, usou-se a fase de concepção do RUP para se estudar o sistema existente e levantar os requisitos que motivaram a realização da reengenharia.

Em seguida, foi possível se utilizar, com algumas pequenas adaptação, os fluxos de levantamento de requisitos, análise e projeto de RUP para se estudar e documentar o sistema existente a fim de preparar a base para a construção do novo sistema. Dentre as adaptação feitas pode-se citar:

• identificação de requisitos a partir da análise do sistema já existente; • identificação de conceitos a partir da estrutura de dados ou banco de dados do sistema legado;

• identificação dos casos de uso e consultas a partir da estrutura e dos processos dos sistema;

• expansão dos casos de uso diretamente para casos de uso reais utilizando-se como modelo de interface gráfica a interface do próprio sistema existente;

• elaboração dos contratos usando-se como base, além dos casos de uso, as funções do sistema legado.

A construção do sistema a partir dos artefatos gerados com o auxílio de uma engenharia reversa acaba sendo praticamente igual à construção de um sistema qualquer. Um dos grandes desafios de uma reengenharia surge no final, na implantação do sistema, quando deve-se tomar cuidado com a estratégia utilizada afim de se evitar problemas com os usuários finais.

O processo de reengenharia do sistema da APUFSC não foi completado principalmente por dois motivos: o pouco tempo de desenvolvimento deste trabalho e a falta de mão- de-obra para o desenvolvimento. Porém, mesmo não se tendo feito o processo todo, foi possível avaliar bem o uso do RUP em um projeto dessa natureza e algumas adaptações interessantes foram propostas.