Escolar Documentos
Profissional Documentos
Cultura Documentos
Tecnologia em Anlise e Desenvolvimento de Sistemas Disciplina: Processo de Desenvolvimento de Software Prof. Fellipe Aleixo fellipe@cefetrn.br
O que o OpenUP?
OpenUP um processo de desenvolvimento de software de cdigo aberto projetado para equipes pequenas e centralizadas que querem ter uma abordagem gil para desenvolvimento O OpenUP um processo iterativo que Mnimo, Completo e Extensvel, valorizando a colaborao entre a equipe e os benefcios aos interessados ao invs da formalidade e entregveis desnecessrios Referncias:
OpenUp/Basic http://epf.eclipse.org/wikis/openuppt/ OpenUp http://epf.eclipse.org/wikis/openup/
OpenUp e OpenUp/Basic
OpenUp representa a famlia de plugins do processo unificado aberto Eclipse Proccess Framework OpenUp/Basic uma derivao bsica o OpenUP voltada para equipes pequenas e centralizadas Ser usado como base o curso o OpenUP/Basic, sero acrescidas algumas informaes do OpenUP Ser denominado daqui por diante simplesmente de OpenUP
reas do OpenUP
organizado em quatro grandes reas de contedo: Comunicao e Colaborao, Objetivo, Soluo e Gerncia
Princpios do OpenUP
Colaborar para alinhar interesses e compartilhar entendimento Equilibrar as Prioridades concorrentes para maximizar o valor para os stakeholders Focar na evidenciao da arquitetura
Facilitar
de desenvolvimento de software (desenvolvedores, gerentes de projeto, analistas e testadores) que trabalham juntos como uma equipe de projeto Interessados Engenheiros de processo de software Instrutores
Viso Geral
de trabalho Work product: o que produzido Tarefa Task: como executar o trabalho Papel Role: quem executa o trabalho Processo Process: usado para definir uma estrutura e um fluxo de trabalho Guias Guidance: templates, checklists, exemplos, orientaes, conceitos, e assim por diante
Elementos de Organizao
Prticas: uma abordagem documentada para a soluo de problemas comuns Configurao: seleo dos contedos a serem publicados Detalhes e exemplos
Produtos
de trabalho
Papel
Tarefa Processo:
Glossrio Bsico
Iterao
Uma
iterao um perodo de tempo definido dentro de um projeto em que voc produz uma verso estvel e executvel do produto, junto com toda a documentao de apoio, scripts de instalao ou similares, necessrios para usar a liberao caso de uso define uma seqncia de aes executadas pelo sistema que geram um resultado de valor observvel para um ator em particular
Caso de Uso
Um
Glossrio Bsico
Risco
Na
vida cotidiana um risco uma exposio perda ou dano; um fator, coisa, elemento ou um caminho que envolve perigo incerto. Similarmente, no desenvolvimento de software um risco algo que pode comprometer o sucesso de um projeto
arquitetura de software representa a estrutura ou as estruturas do sistema, que consiste em componentes de software, propriedades externamente visveis dos componentes e os relacionamentos entre eles
Arquitetura de Software
A
Ciclo de Vida
Fase de Concepo
O propsito desta fase conseguir entendimento simultneo entre todos os stakeholders dos objetivos de ciclo de vida para o projeto H quatro objetivos na fase de Concepo que clarificam o escopo, os objetivos do projeto, e a viabilidade da soluo pretendida:
Entenda o que construir. Determine a Viso, o escopo do sistemas, e seus limites. Identifique quem stakeholder do sistema e porque Identifique as funcionalidades chave do sistema. Decida quais requisitos so mais crticos Determine pelo menos uma soluo possvel. Identifique pelo menos uma arquitetura candidata e sua aplicao prtica Entenda o custo, cronograma, e os riscos associados ao projeto
Fase de Concepo
Objetivos da fase Atividades que endeream os objetivos
Fase de Concepo
Os projetos podem ter uma ou mais iteraes na fase de Concepo. Entre algumas razes para ter mltiplas iteraes na fase de Concepo, voc encontra:
O
projeto grande, e difcil definir seu escopo Sistema sem precedentes Muitos stakeholders com necessidades conflitantes e relacionamentos complexos Grandes riscos tcnicos que demandam a criao de um prottipo ou prova de conceito
Fase de Elaborao
O propsito desta fase estabelecer uma linha de base da arquitetura do sistema e prover uma base estvel para o volume de esforo de desenvolvimento na prxima fase H objetivos para a fase de Elaborao que ajudam a resolver os riscos associados com requisitos, arquitetura, custos, e cronograma:
Obtenha um entendimento mais detalhado dos requisitos. Ter um bom entendimento dos principais requisitos permite a voc criar um plano mais detalhado e obter comprometimento dos stakeholders. Tenha certeza de obter um entendimento detalhado dos requisitos mas crticos que sero validados pela arquitetura Projete, implemente, valide, e estabelea uma linha de base para a arquitetura. Projete, implemente, e teste um esqueleto da estrutura do sistema. Apesar da funcionalidade no estar completa ainda, a maior parte das interfaces entre os blocos sendo construdos implementada e testada. Isto conhecido como uma arquitetura executvel Mitigue os riscos essenciais e produza um cronograma e uma estimativa de custos precisos. Muitos riscos tcnicos so resolvidos como resultado do detalhamento dos requisitos e do projeto, implementao e teste da arquitetura. Refine e detalhe o plano de projeto de alto nvel
Fase de Elaborao
Objetivos da fase Atividades que endeream os objetivos Obtenha um entendimento mais detalhado (1) Gerenciar Requisitos dos requisitos Projete, implemente, valide, e estabelea uma linha de base para a arquitetura (2) Definir a Arquitetura (3) Desenvolver a Soluo (para o requisito)(no contexto) (4) Validar o Build (5) Gerenciar a Iterao
Fase de Elaborao
O nmero de iteraes na fase de Elaborao dependente de, mas no limitada por, fatores como desenvolvimento de um novo produto versus ciclo de manuteno, sistema sem precedentes versus tecnologia e arquitetura conhecidas, e etc. Tipicamente, na primeira iterao, voc deve projetar, implementar, e testar um pequeno nmero de cenrios crticos para identificar que tipo de arquitetura e mecanismos de arquitetura voc precisa, ento voc pode mitigar os riscos mais cruciais. Voc tambm detalha os requisitos de alto risco que devem ser resolvidos antecipadamente no projeto. Voc deve testar o suficiente para validar que os riscos arquiteturais esto mitigados Nas prximas iteraes, voc corrige o que no estiva correto na iterao anterior. Voc projeta, implementa, e testa os cenrios arquiteturalmente significantes que restaram, garantindo que voc verifique todas as reas principais do sistema (cobertura arquitetural), assim os riscos potenciais escondidos aparecem o mais cedo possvel
Fase de Construo
A finalidade desta fase terminar o desenvolvimento do sistema baseado na arquitetura colocada na linha de base Existem objetivos para a fase de Construo que nos ajudam a ter o desenvolvimento com custo eficiente de um produto completo:
Desenvolver de forma iterativa um produto completo que esteja pronto para ser entregue comunidade de usurios. Descreva os requisitos restantes, preencha os detalhes do projeto, termine a implementao e teste o software. Libere a primeira verso operacional (beta) do sistema e determine se os usurios j esto prontos para que a aplicao possa ser implantada Minimizar os custos de desenvolvimento e conseguir algum grau de paralelismo. Otimize os recursos e aumente o paralelismo de desenvolvimento entre os desenvolvedores ou as equipes de desenvolvimento, como por exemplo, atribuindo os componentes que podem ser desenvolvidos independentemente para desenvolvedores distintos
Fase de Construo
Objetivos da fase Atividades objetivos que se relacionam aos
Desenvolver de forma iterativa um produto completo que esteja pronto para ser entregue comunidade de usurios Minimizar os custos de desenvolvimento e conseguir algum grau de paralelismo
(1) Gerenciar Requisitos (2) Desenvolver a Soluo (para os requisitos) (dentro do contexto) (3) Validar a Construo (4) Gerenciar a Iterao (5) Desenvolver a Soluo (para os requisitos) (dentro do contexto) (6) Validar a Construo
Fase de Construo
Normalmente, a fase de Construo tem mais iteraes (de duas a quatro) do que as outras fases, dependendo dos tipos de projetos:
Projeto
simples: Uma iterao para construir o produto (para uma liberao beta) Projeto mais substancial: Uma iterao para expor um sistema parcial e uma para amadurec-lo para o teste beta Projeto grande: Trs ou mais iteraes, dependendo do tamanho do projeto (quantidade de requisitos implementar para uma liberao beta)
Fase de Transio
A finalidade desta fase assegurar que o software esteja pronto para ser entregue aos usurios Existem objetivos na fase de Transio que lhe ajudam fazer um ajuste-fino na funcionalidade, no desempenho e na qualidade total do produto beta oriundo da fase precedente:
Executar o teste Beta para validar se as expectativas dos usurios foram atendidas. Isto normalmente requer algumas atividades de ajuste fino, tais como reparao de erros e melhorias no desempenho e na usabilidade Obter a concordncia dos stakeholders de que a distribuio est completa. Isto pode envolver vrios nveis de testes para a aceitao do produto, incluindo testes formais, informais e testes beta Melhorar o desempenho de projetos futuros com as lies aprendidas. Documente as lies aprendidas e melhore o ambiente de processos e ferramentas para o projeto
Fase de Transio
Objetivos da fase Atividades objetivos que se relacionam aos
Executar o teste Beta para validar se as (1) Tarefas Contnuas expectativas dos usurios foram atendidas (2) Desenvolver a Soluo (para os requisitos) (dentro do contexto) (3) Validar a Construo Obter a concordncia dos stakeholders de (4) Gerenciar a Iterao que a distribuio est completa (5) Validar a Construo Melhorar o desempenho de projetos futuros com as lies aprendidas (6) Gerenciar a Iterao
Fase de Transio
A fase de Transio pode incluir a execuo paralela de sistemas antigos e novos, migrao de dados, treinamento de usurios e ajustes nos processos de negcio A quantidade de iteraes na fase de Transio varia de uma iterao para um sistema simples que necessita primeiramente de reparos de pequenos erros, at muitas iteraes para um sistema complexo, envolvendo a adio de caractersticas e a execuo de atividades para fazer a transio, no negcio, do uso do sistema antigo para o sistema novo Quando os objetivos da fase de Transio so alcanados, o projeto est pronto para ser encerrado. Para alguns produtos, o fim do ciclo de vida atual do projeto pode coincidir com o comeo do ciclo de vida seguinte, conduzindo nova gerao do mesmo produto
Disciplinas
Representam agrupamentos de tarefas que compartilham de um mesmo propsito So seis as disciplinas do OpenUP:
Anlise
sistema Desenvolver uma arquitetura robusta para o sistema Adaptar o projeto para corresponder com ambiente de implementao
disciplina de Requisitos prov a primeira entrada para a Anlise e Projeto A disciplina de Implementao implementa o projeto A disciplina de Teste testa o projeto do sistema durante a Anlise e Projeto A disciplina de Gesto de Projetos planeja o projeto e cada iterao
Conceitos:
Mecanismos de Anlise Mecanismos Arquiteturais Significantes Requisitos Arquiteturais Padres de Negcios Componentes Mecanismos de Design Mecanismos de Implementao Padro Modelagem Visual Padro Entidade-Controle-Fronteira
Diretrizes:
Abstrao para Afastar a Complexidade Viso Arquitetural Desenvolver a Arquitetura Dividir em Camadas Representando Interfaces para Sistemas Externos Usando Padres Analise os Requisitos Arquiteturais Design Modelagem de Dados Fsicos Representao dos Componentes do Projeto Projetando Visualmente Realizaes de Casos de Uso
um conjunto de produtos de trabalho consistente a medida que evolui Manter construes de software consistentes Fornecer meios eficientes para se adaptar s mudanas, replanejando o trabalho adequadamente Fornecer dados para a medio do progresso
Refere-se habilidade de manter verses e configuraes consistentes dos artefatos Refere-se ao processo de controlar mudanas nos artefatos controlados pela configurao Os produtos de trabalho de interesse primrio so o Artefato: Implementao e o Artefato: Construo As mudanas so controladas atravs da Tarefa: Solicitar Mudana e a subseqentes priorizao e disposio dos pedidos de mudana, atravs do Artefato: Lista de Itens de Trabalho
Conceitos:
Solicitaes de Mudana Integrao Contnua Ambiente de Trabalho
Diretrizes:
Submeter Solicitaes de Mudana Integrao Contnua Promovendo Builds Atribuir Mudanas a uma Iterao Lista de Itens de Trabalho
Disciplina de Implementao
o sistema de forma incremental Verificar que as unidades tcnicas usadas para construir o sistema funcionem como especificado
Em cada iterao, as tarefas nesta disciplina faro com que uma Construo evolua sempre com mais funcionalidades e com mais estabilidade Ao trabalhar no sistema, o Desenvolvedor usar a arquitetura e tambm ser restringido por ela
Disciplina de Implementao
Disciplina de Implementao
Conceitos:
Integrao Contnua Teste de Desenvolvedor Projeto dos Testes Primeiro Refatorao Padro de Codificao
Diretrizes:
Implementao Tipos de Teste de Desenvolvedor Integrao Contnua Promoo de Builds
O gerenciamento de projeto age como uma ponte entre os Stakeholders e a equipe de desenvolvimento. importante que as atividades da gerenciamento de projeto adicionem valor ao criar um ambiente de trabalho de elevado desempenho onde
Os Stakeholders tenham confiana na habilidade da equipe de conhecer as capacidades e restries da plataforma tcnica e de entregar com sucesso algo valoroso Os membros da equipe de projeto compreendam os desejos dos Stakeholders e confirmem que compreenderam, produzindo continuamente um produto de software para avaliao
O Gerente de Projeto trabalha com os Stakeholders para criar um Plano de Projeto inicial baseado na Viso. Este plano de projeto descreve os tamanhos e os objetivos das quatro Fases e das Iteraes de cada fase No comeo de cada iterao, o gerente de projeto trabalha com os Stakeholders e com a equipe de desenvolvimento para priorizar os requisitos, as solicitaes de mudana e os defeitos na Lista de Itens de Trabalho e aloca-los na iterao que est comeando O gerente de projeto trabalha ento com a equipe de desenvolvimento para criar um Plano de Iterao mais refinado, baseado nos objetivos descritos no plano de projeto e nos itens de trabalho atribudos iterao. Os membros da equipe oferecem-se para executar os itens de trabalho alocados e fornecer ao gerente de projeto as tarefas e as estimativas de tempo necessrias para entregar estes itens de trabalho
A equipe demonstra que entendeu os desejos dos Stakeholders durante cada iterao pela construo de um produto de software que demonstrado aos Stakeholders para confirmar o entendimento e incentivar o feedback. Ao final de cada iterao, a avaliao da Construo final deve incluir os resultados dos testes, deve ser registrada em uma Avaliao de Estado e deve ser comunicada a todos os Stakeholders e membros da equipe A equipe de desenvolvimento demonstra o progresso contnuo aos Stakeholders reportando os itens de trabalho terminados em cada iterao atravs do Project Burndown. A equipe pode usar a Iteration Burndown para demonstrar o progresso durante uma iterao O gerenciamento de projeto precisa considerar as incertezas que o projeto enfrentar (isto os Riscos) e trabalhar de forma proativa com os Stakeholders e a equipe para adaptar-se continuamente s mudanas nos requisitos do negcio, nos requisitos de sistema, e nas capacidades tcnicas O gerenciamento de projeto uma disciplina tipo guarda-chuva que impacta e impactada por todas as outras disciplinas
Disciplina de Requisitos
o problema a ser resolvido Entender as necessidades dos Stakeholders Definir os requisitos para a soluo Definir os limites (escopo) do sistema Identificar interfaces externas ao sistema Identificar restries tcnicas na soluo Fornecer a base para o planejamento das iteraes Fornecer a base inicial para a estimativa de custo e cronograma
Disciplina de Requisitos
Para conseguir os objetivos, importante compreender a definio e o escopo do problema que estamos tentando resolver Os Stakeholders so identificados e o problema a ser resolvido definido Concordando com o problema a ser resolvido, os Requisitos para o sistema so eliciados, organizados, analisados, validados e especificados Durante todo o ciclo de vida, as mudanas nos requisitos so gerenciadas
Disciplina de Requisitos
Disciplina de Requisitos
Conceitos:
Requisitos
Suplementares Casos de Uso Atributos de Requisitos Requisitos Rastreamento Modelo de Casos de Uso Ator
Disciplina de Requisitos
Diretrizes:
Detalhamento
de Casos de Uso e Cenrios Reviso Efetiva de Requisitos Encontrar e registrar atores e casos de uso Tcnicas de Obteno de Requisitos Erros comuns na Definio e Escrita de Requisitos Requisitos Suplementares Formatos de Casos de Uso Escrevendo Bons Requisitos Modelo de Casos de Uso
Disciplina de Teste
e documentar defeitos Validar e provar as suposies feitas no projeto e requisitos especificados atravs de demonstraes concretas Validar que o produto de software foi feito como projetado Validar que os requisitos esto apropriadamente implementados
Disciplina de Teste
Um esforo de teste bom est baseado na filosofia de testes breves e testes freqentes Orientaes:
Como
este software poderia quebrar? Em que possveis situaes poderia estar este software para trabalhar de maneira previsvel?
Testar desafia as suposies, riscos e incertezas inerente no trabalho de outras disciplinas, e trata dessas preocupaes que usam demonstrao concreta e avaliao imparcial
Disciplina de Teste
A disciplina de Requisitos captura requisitos para o produto de software, que um das contribuies primrias para identificar que testes executar A disciplina de Anlise e Projeto determina o projeto apropriado para o produto de software, que outra contribuio importante por identificar que testes executar A disciplina de Implementao produz construes do produto de software que validado pela disciplina de Teste. Dentro de uma iterao, sero testadas construes mltiplas - tipicamente um por ciclo de teste A disciplina de Gerncia de Projeto planeja o projeto e o trabalho necessrio em cada iterao. Descrito em um Plano de Iterao, este artefato uma contribuio importante usada quando voc definir a misso de avaliao correta para o esforo de teste A disciplina de Gerncia de Configurao e Mudana controla mudanas dentro do projeto. O esforo de teste verifica se cada mudana foi completada adequadamente. Ativos de teste so mantidos abaixo da gerncia de configurao
Disciplina de Teste
Conceitos:
Idia
Diretrizes:
Manter
o Conjunto de teste Automatizado Idias de Teste Conjunto de Teste Testes Programados Automaticamente