Upload
haxuyen
View
231
Download
0
Embed Size (px)
Citation preview
1
Sistemas de InformaçãoHyggo Oliveira de Almeida
Laboratório de Sistemas Embarcados e Computação PervasivaCentro de Engenharia Elétrica e Informática
Universidade Federal de Campina Grande
Apresentação do cursoMotivação para o curso
Objetivos do cursoConteúdo
Resultado esperadoBibliografia
Dúvidas???
2
Pós-Engenharia de Software - FAT 3
Motivação para o curso
Vocês já estudaram RUP!FasesFluxos de trabalhoPapéisDisciplinasArtefatos
Mas como juntar tudo isso e pôr em prática???
Pós-Engenharia de Software - FAT 4
Objetivo do curso
Desenvolver projetos de software simples utilizando o ciclo completo de RUP
Dando ênfase ao ciclo, não à modelagem!Dando ênfase ao entendimento das fases, não ao software desenvolvidoConsiderando o tempo que nós temos: 15hsPossivelmente desconsiderando algumas disciplinas:
Ambiente, Gerência de configuração, Gerência de projeto, Testes...
3
Pós-Engenharia de Software - FAT 5
Conteúdo do curso (Parte I)Relembrando RUP
Estrutura do ProcessoElementos de RUPPapéis, Atividades, Artefatos e Disciplinas Entendendo as fases do RUPConcepção, Elaboração, Construção e Transição
Pós-Engenharia de Software - FAT 6
Conteúdo do curso (Parte II)Projeto Exemplo
RUP para um time composto por apenas... você!Descrição do projetoFase de ConcepçãoFase de ElaboraçãoFase de ConstruçãoFase de Transição
4
Pós-Engenharia de Software - FAT 7
Conteúdo do curso (Parte III)Exercício
O problemaEquipesProcesso
Pós-Engenharia de Software - FAT 8
Ao terminar o curso vocês devem...
Saber aplicar o processo a um projeto de desenvolvimento
Com restrições de fases e disciplinas específicas, como mencionado anteriormente
Ter muito o que aprender ainda sobre o processo e possíveis artefatos gerados
5
Pós-Engenharia de Software - FAT 9
Bibliografia I
LivrosThe Rational Unified Process Made Easy: A Practitioner's Guide to the RUP. Per Kroll, Philippe Kruchten, Addison Wesley, 2003. The Rational Unified Process: An Introduction, Second Edition, Philippe Kruchten, Addison Wesley, 2000Adopting the Rational Unified Process: Success with the RUP, Stefan Bergström, Lotta Råberg, Addison-Wesley, 2003UML – Guia do usuário, James Rambaugh, Campus, 2000
ApresentaçõesRational Unified Process. Sergio Akio Tanaka. II SECOMP - Semana de Computação da Universidade Estadual de Londrina. 2005.
Pós-Engenharia de Software - FAT 10
Bibliografia II
ArtigosA simplified approach to RUP. Gary Evans. 2003. http://www.evanetics.comRational Unified Process: Best Practices for Software Development Teams, Rational Software Report. Winter Course. 2000.
SitesUnified Modeling Languagehttp://www.uml.org/IBM Rational Unified Process Supporthttp://www-306.ibm.com/software/awdtools/rup/support/
6
Pós-Engenharia de Software - FAT 11
Dúvidas sobre o curso???
Dúvidas sobre o conteúdo...É só isso???Isso tudo professor?!?E vai dar tempo???
Meu e-mail de contato:[email protected]
Relembrando RUPEstrutura do Processo
Elementos de RUPPapéis, Atividades, Artefatos e Disciplinas
Entendendo as fases do RUPConcepção, Elaboração, Construção e Transição
1
7
Pós-Engenharia de Software - FAT 13
Estrutura do processo
Duas dimensõesVertical
Estrutura estática do processoDescreve como elementos do processo – atividades, artefatos e papéis – são logicamente agrupados em disciplinas (ou fluxos de trabalho)
HorizontalEstrutura dinâmica ou de tempo do processoExpressa em termos de ciclos, fases, iterações e marcos ao longo do ciclo de vida de um projeto
Pós-Engenharia de Software - FAT 14
Estrutura do processoDimensões horizontal e vertical
Concepção Elaboração Construção Transição
Fases
Modelagem de negóciosRequisitos
Análise e ProjetoImplementação
TesteImplantação
Ger. de Configuração eMudança
Gerência de projetoAmbiente
Disciplinas
Conc.1
Conc.2
Elab.1
Elab.2
Cons.1
Cons.n
Trans.1
Trans.2
Iterações
Horizontal - Tempo
Ver
tical
-A
tivid
ades
8
Pós-Engenharia de Software - FAT 15
Elementos de RUP
Estrutura estática: quatro elementos chavePapéis (ou trabalhadores)
Quem?Atividades
Como?Artefatos
O que?Fluxos de trabalho (workflows)
Quando? Em que seqüência?
Pós-Engenharia de Software - FAT 16
Elementos de RUP
Papéis (ou trabalhadores)Como um chapéu usado por um indivíduo (ou grupo) durante o projetoUm indivíduo pode usar vários chapéus...... desempenhando vários papéis
Projetista
Arquiteto
Analista
Revisorde projeto
9
Pós-Engenharia de Software - FAT 17
Elementos de RUP
AtividadesUnidade de trabalho a ser realizado por um indivíduo que desempenha um determinado papelEm geral, possui um propósito claro, expresso em termos da criação ou atualização de artefatos, tais como modelos, componentes ou planos.De poucas horas a poucos diasEm geral, envolve uma pessoa
Pós-Engenharia de Software - FAT 18
Elementos de RUP
ArtefatosPedaços de informação produzidos, modificados ou usados no processoPodem ser:
Um modelo, como um diagrama de casos de usoUm elemento de modelo, como uma classeUm documento, como um guia de usuárioCódigo fonteExecutáveis, como um protótipo do software
10
Pós-Engenharia de Software - FAT 19
Elementos de RUP
Fluxos de trabalhoSeqüência de atividades e interação entre papéis que produzem artefatosFluxos de trabalho de alto nível são chamados de Disciplinas
• Modelagem de negócio• Requisitos• Análise e projeto (design)• Implementação• Teste• Implantação (deployment)
Principais
• Gerência de configuraçãoe mudança• Gerência de projeto• Ambiente
Complementares
Pós-Engenharia de Software - FAT 20
Elementos de RUPDisciplinas
Disciplina: Modelagem de negócioEntender a estrutura e a dinâmica da organização na qual um sistema deve ser implantado (a organização alvo).Entender os problemas atuais da organização alvo e identificar as possibilidades de melhoria.Assegurar que os clientes, usuários e desenvolvedores tenham um entendimento comum da organização alvo.Derivar os requisitos de sistema necessários para sustentar a organização alvo.
Custo, tempo, esforço!!! Lucro???
11
Pós-Engenharia de Software - FAT 21
Elementos de RUPDisciplinas
Disciplina: RequisitosEstabelecer e manter concordância com os clientes e outros envolvidos sobre o que o sistema deve fazer.Oferecer aos desenvolvedores do sistema uma compreensão melhor dos requisitos do sistema.Definir as fronteiras do sistema (casos de uso).Fornecer uma base para planejar o conteúdo técnico das iterações.Fornecer uma base para estimar o custo e o tempo de desenvolvimento do sistema.Definir uma interface de usuário para o sistema, focando nas necessidades e metas dos usuários.
Pós-Engenharia de Software - FAT 22
Elementos de RUPDisciplinas
Disciplina: Análise e projetoTransformar os requisitos em um projeto/desenho do sistema a ser criado.Desenvolver uma arquitetura sofisticada para o sistema.Adaptar o design para que corresponda ao ambiente de implementação, projetando-o para fins de desempenho.
12
Pós-Engenharia de Software - FAT 23
Elementos de RUPDisciplinas
Disciplina: ImplementaçãoDefinir a organização do código em termos de subsistemas de implementação organizados em camadas.Implementar classes e objetos em termos de componentes (arquivos-fonte, binários, executáveis e outros).Testar os componentes desenvolvidos como unidades.Integrar os resultados produzidos por implementadoresindividuais (ou equipes) ao sistema executável.
Pós-Engenharia de Software - FAT 24
Elementos de RUPDisciplinas
Disciplina: TesteLocalizar e documentar defeitos na qualidade do software.Avisar de forma geral sobre a qualidade observada no software.Validar as suposições feitas nas especificações de projeto e requisito através de demonstração concreta.Validar as funções do software conforme projetadas.Verificar se os requisitos foram implementados de forma adequada.
13
Pós-Engenharia de Software - FAT 25
Elementos de RUPDisciplinas
Disciplina: ImplantaçãoDescreve as atividades que garantem que o produto de software será disponibilizado a seus usuários finais.
Produzir versões de entrega (releases)Empacotar, distribuir e instalar o softwareProver assistência ao usuárioMigração de software e dados
Pós-Engenharia de Software - FAT 26
Elementos de RUPDisciplinas
Disciplina: Gerência de configuração e mudançaControle de versãoGerenciamento de mudanças
Equipes distribuídas???Rastreamento de bugs
Notificação???Existem várias ferramentas específicas
Fora do escopo do cursoMaven, CVS, SVN, Bugzilla, Cruise Control...
14
Pós-Engenharia de Software - FAT 27
Elementos de RUPDisciplinas
Disciplina: Gerência de projetoFornecer um modelo para gerenciar projetos intensivos de software.Fornecer diretrizes práticas para planejar, montar a equipe, executar e monitorar os projetos.Fornecer um modelo de gerenciamento de risco.Ferramentas:
IBM Rational, MS Project...
Pós-Engenharia de Software - FAT 28
Elementos de RUPDisciplinas
Disciplina: AmbienteA meta das atividades dessa disciplina é oferecer à organização o ambiente de desenvolvimento de software que dará suporte à equipe de desenvolvimento.
Ferramentas: IDEs (Eclipse, NetBeans), ferramentas de modelagem, gerenciadores de banco de dados...
15
Pós-Engenharia de Software - FAT 29
Entendendo as fases do RUP
Orientadas a marcos (milestones)Não é uma partição de atividades: análise, projeto, codificação...Cada fase possui necessidades dirigidas por risco!!!
Concepção Elaboração Construção Transição
• Os riscos técnicosforam amenizados?• Existe um plano detalhado do projeto?
• Os riscos lógicosforam amenizados?• O sistema é usável?• Pode-se liberar uma versão beta?
• Estamos prontos para entregar um produtoCompleto e robusto?
• Os riscos de negócioforam amenizados?• O projeto é viável e rentável?
Pós-Engenharia de Software - FAT 30
Entendendo as fases do RUP
Não há fluxos de trabalho fixosRUP não é uma receita fixaDeve ser adaptado pela equipe de desenvolvimento de acordo com suas necessidadesCom base no contexto do projeto, define-se o que é necessário para atingir os marcos de cada fase
16
Pós-Engenharia de Software - FAT 31
Entendendo as fases do RUP
Não há artefatos “congelados”Nem todos os artefatos são necessáriosDepende do sistema e da equipe em questãoDeve ser adaptado a necessidades específicas
Pós-Engenharia de Software - FAT 32
Entendendo as fases do RUP
Fase de ConcepçãoEntender o que construirIdentificar funcionalidades chaveDeterminar pelo menos uma possível soluçãoEntender os custos, agenda e riscosDecidir que processo seguir e que ferramentas usar
Concepção Elaboração Construção Transição
Tempo Objetivos do ciclo de vida
Arquitetura do ciclo de vida
Capacidadeoperacional
inicial
Lançamentodo produto
Aqui
17
Pós-Engenharia de Software - FAT 33
Entendendo as fases do RUPFase de Concepção
Entender o que construirProduzir um Documento de Visão
Benefícios e oportunidades; o problema a ser resolvido; usuários-alvo; descrição de alto nível das funcionalidades; alguns requisitos não funcionais essenciaisNão tem formato específico!
Prover uma descrição superficial do sistemaIdentificar e descrever resumidamente os principais atores e casos de uso
Detalhar atores e casos de usoDe acordo com a necessidade, detalhar os principais casos de uso e atores
Pós-Engenharia de Software - FAT 34
Entendendo as fases do RUPFase de Concepção
Identificar funcionalidades chaveCliente deve ser requisitado para elucidar os casos de uso
Deve-se ter em mente um conjunto de funcionalidades que formem um todo “entregável” ao usuário final
Não dá para entregar um sistema de cadastro de alunos, se não é possível adicionar um novo aluno no cadastro!
18
Pós-Engenharia de Software - FAT 35
Entendendo as fases do RUPFase de Concepção
Determinar pelo menos uma possível solução...Que outro sistema similar foi construído? Que tecnologia e arquitetura foi usada? Qual foi o seu custo?No caso de sistema em evolução, a arquitetura ainda é satisfatória?Que tecnologias deverão ser usadas no sistema? Alguma tecnologia deverá ser adquirida? Quais os custos e riscos associados?Quais componentes de software são necessários no sistema? Eles podem ser comprados/obtidos?Podem ser reutilizados de outro projeto? Quais são os custos e riscos estimados?
Pós-Engenharia de Software - FAT 36
Entendendo as fases do RUPFase de Concepção
... de preferência, várias!!!
Servidores de Banco de dados
Cliente AAplicaçãodesktop
Objeto/Relacional
Servidor deaplicação
Objeto/Relacional
Cliente B
Aplicaçãodesktop
Servidor WebHTML,CGI, Java
Objeto/Relacional
Cliente CNavegador
Cliente simples, servidor robusto
19
Pós-Engenharia de Software - FAT 37
Entendendo as fases do RUPFase de Concepção
Entender os custos, agenda e riscosVale a pena continuar no projeto?Quais os custos relacionados?Quanto tempo você levará para concluir o projeto?Qual o valor econômico do produto? Qual o retorno de investimento?
Pós-Engenharia de Software - FAT 38
Entendendo as fases do RUPFase de Concepção
Revisão do projeto: Marco de objetivos do ciclo de vidaA equipe concorda com a definição de escopo do sistema e a estimativa inicial de tempo e custo?Há um acordo de que o conjunto certo de requisitos foi capturado e compartilha-se o entendimento dos mesmos?Há acordo de que as prioridades, riscos e processo são apropriados?Há acordo sobre a estratégia de eliminação dos riscos?
O projeto pode ser abortado ou reconsiderado se falhar neste marco
Reconsiderado = Nova iteração
20
Pós-Engenharia de Software - FAT 39
Entendendo as fases do RUP
Fase de ElaboraçãoDetalhar os requisitosProjetar, implementar e validar a arquiteturaDetalhar riscos, agenda e custosRefinar processo e ambiente
Concepção Elaboração Construção Transição
Tempo Objetivos do ciclo de vida
Arquitetura do ciclo de vida
Capacidadeoperacional
inicial
Lançamentodo produto
Aqui
Pós-Engenharia de Software - FAT 40
Entendendo as fases do RUPFase de Elaboração
Detalhar os requisitosResultado da fase anterior: uma visão e 20% dos principais casos de usoNo fim da fase de elaboração, você deveria descrever de forma completa a maioria dos casos de uso (80%)Protótipo de interface gráfica para os principais casos de uso
21
Pós-Engenharia de Software - FAT 41
Entendendo as fases do RUPFase de Elaboração
Projetar, implementar e validar a arquiteturaDefinir os blocos mais importantes e suas interfaces, assim como a decisão de construi-los, reutilizá-los ou comprá-losDescrever como os blocos interagem para implementar as funcionalidadesImplementar e testar um protótipo da arquitetura... arquitetura executável
Pós-Engenharia de Software - FAT 42
Entendendo as fases do RUPFase de Elaboração
Detalhar riscos, agenda e custosCom o detalhamento dos requisitos, aprimora-se a visão
Sabe-se com maior grau de certeza o que o software é!Com a arquitetura executável, boa parte do trabalho está pronto
Você já sabe “o que falta fazer”A maioria dos riscos foi eliminada
Isto reduz possíveis erros de estimativa de tempo e custo
22
Pós-Engenharia de Software - FAT 43
Entendendo as fases do RUPFase de Elaboração
Refinar processo e ambienteNa elaboração, você fez algum projeto, implementação e teste da arquiteturaO código já está sob gerência de configuraçãoEntende-se melhor as ferramentas, pessoas e o processo
RefinamentoConfiguração mais precisa do ambiente
Pós-Engenharia de Software - FAT 44
Entendendo as fases do RUPFase de Elaboração
Revisão do projeto: Marco de arquitetura do ciclo de vidaA visão e requisitos são estáveis? A arquitetura é estável?Testes e avaliação demonstraram que os principais riscos foram eliminados?Os planos para construção estão suficientemente detalhados para prosseguir? As estimativas têm credibilidade?A equipe concorda que a visão pode ser alcançada?A relação gasto ocorrido x planejado é aceitável?
Se falhar neste marco... nova iteraçãoO prejuízo de abortar já é bem maior... e a possibilidade bem menor
23
Pós-Engenharia de Software - FAT 45
Entendendo as fases do RUP
Fase de ConstruçãoMinimizar o custo de desenvolvimentoDesenvolver um produto pronto para a transição
Concepção Elaboração Construção Transição
Tempo Objetivos do ciclo de vida
Arquitetura do ciclo de vida
Capacidadeoperacional
inicial
Lançamentodo produto
Aqui
Pós-Engenharia de Software - FAT 46
Entendendo as fases do RUPFase de Construção
Minimizar o custo de desenvolvimentoAtingir algum grau de paralelismoOrganizar o desenvolvimento em torno da arquitetura e equipe de arquitetosGerência de configuraçãoPlanejamento de integraçãoProgresso contínuo
24
Pós-Engenharia de Software - FAT 47
Entendendo as fases do RUPFase de Construção
Desenvolver um produto pronto para a transição Para ser implantado na comunidade do usuário finalDescrever os requisitos restantesCompletar o projetoProjetar o banco de dadosImplementar código de testes de unidadeIntegrar e testar o sistemaPreparar para a implantação
Pós-Engenharia de Software - FAT 48
Entendendo as fases do RUPFase de Construção
Revisão do projeto: Marco de capacidade operacional inicial
O release do produto é maduro o suficiente para ser entregue ao usuário final?Toda a equipe está preparada para a transição para a comunidade do usuário?A relação gasto ocorrido x planejado é aceitável?
Se falhar neste marco... nova iteraçãoO prejuízo de abortar já é absurdo... mas a possibilidade é mínima
25
Pós-Engenharia de Software - FAT 49
Entendendo as fases do RUP
Fase de transiçãoPreparar empacotamento, produção e distribuiçãoPreparar local de implantaçãoTreinar usuários e mantenedoresMelhorar projetos futuros com lições aprendidasTestes beta para avaliar aceitação do usuário
Concepção Elaboração Construção Transição
Tempo Objetivos do ciclo de vida
Arquitetura do ciclo de vida
Capacidadeoperacional
inicial
Lançamentodo produto
Aqui
Pós-Engenharia de Software - FAT 50
Entendendo as fases do RUPFase de Transição
Preparar empacotamento, produção e distribuiçãoTornar o software um produtoPreparar o marketing do softwarePreparar material auxiliar para vendaDistribuir o software para ser vendido
26
Pós-Engenharia de Software - FAT 51
Entendendo as fases do RUPFase de Transição
Preparar local de implantaçãoCaso haja a troca de sistemas, a transição é mais complexaDados precisam ser transferidos dos sistemas antigosNovos gastos podem ser necessários para implantar o sistema: desempenho, disponibilidade...
Pós-Engenharia de Software - FAT 52
Entendendo as fases do RUPFase de Transição
Treinar usuários e mantenedoresTreinar todos os usuários, chefia operacional e equipes de manutenção apropriadamenteTreinamento diminui dependência da equipe de desenvolvimentoUsuários auto-sustentáveis
27
Pós-Engenharia de Software - FAT 53
Entendendo as fases do RUPFase de Transição
Melhorar projetos futuros com lições aprendidasQue refinamentos são indicados para o processo e as ferramentas?Quais são as lições aprendidas?Como melhor adaptar o RUP de acordo tais lições?
Pós-Engenharia de Software - FAT 54
Entendendo as fases do RUPFase de Transição
Testes beta para avaliar aceitação do usuárioTestes de transição: ambiente alvoCapturar, analisar e implementar requisições de mudançasPatches
28
Pós-Engenharia de Software - FAT 55
Entendendo as fases do RUPFase de Transição
Revisão do projeto: Marco de lançamento do produtoOs usuários finais estão satisfeitos?A relação gasto ocorrido x planejado é aceitável? Se não, como melhorar no futuro para resolver o problema?
Se falhar neste marco... nova iteraçãoImpossível abortar... já está pronto!
Projeto ExemploDescrição do projetoFase de ConcepçãoFase de ElaboraçãoFase de Construção
Fase de Transição
2
29
Pós-Engenharia de Software - FAT 57
Descrição do projeto
A oportunidade...Você encontra e conversa com um grande amigo seu, chamado Bill, que trabalha em uma pequena empresa de desenvolvimento de software
Sábado à noite
Pós-Engenharia de Software - FAT 58
Descrição do projeto
O problema...Nesta empresa, Bill precisa manter um registro do tempoque ele gasta em cada atividade, tais como requisitos, projeto, testes...
Sábado à noite
30
Pós-Engenharia de Software - FAT 59
Descrição do projeto
O problema...Bill conta que cada desenvolvedor usa uma técnica diferente para este registro: arquivo texto, post it, caderno, guardanapo...
Testes2 hs
Análise3 hs
Projeto: 2 hs
Sábado à noite
Pós-Engenharia de Software - FAT 60
Descrição do projeto
O problema...No fim de semana, os dados são reunidos... definindo as métricas de produtividade da empresa, usadas como base para planejar futuros projetos.
Testes2 hs
Análise3 hs
Projeto: 2 hs
Sábado à noite
31
Pós-Engenharia de Software - FAT 61
Descrição do projeto
A idéia de solução...Você sugere que Bill automatize a tarefa de registrar o tempo de cada atividade usando um softwareDesenvolvedores poderiam ter pequenos cronômetrosna tela que poderiam ser:
ativados ao iniciar uma tarefa;interrompidos caso necessário (almoço, por exemplo)reativados para continuar a contagem;fechados ao encerrar a tarefa.
Sábado à noite
Pós-Engenharia de Software - FAT 62
Descrição do projeto
“- Grande idéia!!!” Diz, Bill!“- Desenvolva o software para mim!!!”“- Diga-me quanto custa e em quanto tempo me entrega”“- Diga-me como ele funcionará.”“- Segunda, às 11hs da manhã... no meu escritório!!!”
Sábado à noite
32
Pós-Engenharia de Software - FAT 63
Descrição do projeto
E agora???Você passa o domingo inteiro pensando em...
... possíveis implementações para o software?
... o que vai construir?
... quanto de recursos vai precisar?
... quanto tempo vai gastar?
... quanto vai cobrar pelo software?
Você chega à conclusão de que precisa de um processoRUP!!!
Domingo
Pergunta clássica:
Desenvolver esse software simples com RUP não é o mesmo que atirar em uma
formiga com uma bazuca? ?
Resposta: não
33
Pós-Engenharia de Software - FAT 65
Resposta: Não!
RUP não é uma receita acabada de engenhariaDeve ser adaptado a projetos específicosDesconsiderando algumas disciplinas e fluxosDesconsiderando alguns artefatos
Respeitando, porém, seu ciclo e filosofia!!!
Fase de ConcepçãoIteração 1
VisãoPlano
RiscosCaso de negócio
Processo e ferramentasArquitetura???
Concepção Elaboração Construção Transição
Aqui
34
Pós-Engenharia de Software - FAT 67
Fase de Concepção (1)Visão
Criando o documento de visãoDescrição do problemaEstabelecimento da visãoPrincipais partes envolvidasCasos de uso
Fase: Concepção
Disciplina(s):- Requisitos
Segunda, 8hs
Analista
Pós-Engenharia de Software - FAT 68
Fase de Concepção (1) Visão
Chrono: VisãoProblemaPara a organização de Bill, reunir dados consistentes para fazer estimativas de progresso depende da habilidade de cada desenvolvedor em registrar o tempo gasto em cada atividade no projeto.
A VisãoUma ferramenta pessoal de cronometragem que mede o tempo gasto em cada atividade, coleta e armazena estes dados para posterior classificação e extração permite facilmente à organização fazer medidas e estimativas sistemáticas.
Principais partes envolvidas• Desenvolvedores• Assistentes administrativos• Gerentes de projeto
Casos de uso• Medir tempo para uma atividade• Extrair planilhas de tempo semanais• Consolidar dados do projeto• Configurar o banco de dados e ferramenta
Fase: Concepção
Disciplina(s):- Requisitos
Segunda, 8hs
Analista
35
Pós-Engenharia de Software - FAT 69
Fase de Concepção (1) Casos de uso
Fase: Concepção
Disciplina(s):- Requisitos
Segunda, 8hs
Analista
Desenvolvedor
GerenteAssitente
administrativo
Medir tempo para uma atividade
Extrair planilhas de tempo semanais
Consolidar dados do projeto
Configurar o banco de dados
e ferramenta
Pós-Engenharia de Software - FAT 70
Fase de Concepção (1) Plano
Criando o plano/agendaQual a estimativa de tempo para cada fase?Em quanto tempo o projeto estará pronto?Quando inicio a construção do software?
Fase: Concepção
Disciplina(s):- Gerência de
projeto
Segunda, 8:30h
Gerente
36
Pós-Engenharia de Software - FAT 71
TransiçãoMelhorias
Projeto, código, testes
ElaboraçãoProtótipo
ConcepçãoVisão, plano, negócio, risco
Protótipo, testes, riscos
ConstruçãoProjeto, código, testes
Projeto, código, testes
Bill: M1 OK! Bill: M2 OK! 1ª ver. beta Segunda
Entrega
Fase de Concepção (1) Plano
Chrono: Plano
Fase: Concepção
Disciplina(s):- Gerência de
projeto
Segunda, 8:30h
Gerente
Segunda Terça Quarta Quinta Sexta Sábado
Pós-Engenharia de Software - FAT 72
Fase de Concepção (1) Riscos
Analisando os riscosO que poderia fazer o projeto falhar...?...ou atrasar?...ou extrapolar seu orçamento inicial?
Fase: Concepção
Disciplina(s):- Requisitos
Segunda, 9:30h
Analista
37
Pós-Engenharia de Software - FAT 73
Fase de Concepção (1) Riscos
Fase: Concepção
Disciplina(s):- Requisitos
Segunda, 9:30h
Analista
Chrono: Riscos
A licença para a ferramenta de desenvolvimento de que eu precisoexpirouBanco de dados é muito caro
A organização de Bill não suporta comunicação entre nós de rede
Algumas das máquinas da organização utilizadas para programação não têm acesso à rede
Pós-Engenharia de Software - FAT 74
Fase de Concepção (1) Caso de negócio
Discutindo o negócioQuanto do dia de trabalho será gasto?O que deve ser adquirido para iniciar a construção?Qual a estimativa de retorno?
Fase: Concepção
Disciplina(s):- Modelagem
de negócio
Segunda, 10hs
AnalistaNegócio
38
Pós-Engenharia de Software - FAT 75
Fase de Concepção (1) Caso de negócio
Segunda, 10hs
Duração estimada - Tempo de trabalho - Valor estimado:• 4 dias, 8hs/dia = R$ 32 x VHT (Valor por Hora de Trabalho)
Possíveis investimentos:• Atualização do compilador e IDE Java (a ser determinado)• Banco de dados (a ser determinado)
Estimativa de retorno (minha perspectiva):• Imediato. O custo do software deve cobrir as despesas.
Estimativa de retorno (perspectiva do Bill):• Se Bill perdia meia hora por desenvolvedor e mais duas horas para entrada e consolidação dos dados, terá retorno em menos de seis meses.
Chrono: Caso de negócio
Fase: Concepção
Disciplina(s):- Modelagem
de negócio
AnalistaNegócio
Pós-Engenharia de Software - FAT 76
Fase de Concepção (1) Processo e ferramentas
Definindo o processo e o ambienteQue processo será utilizado?Que adaptações serão feitas no RUP?Que ferramentas serão necessárias?
Fase: Concepção
Disciplina(s):- Gerência de
projeto, Ambiente
Segunda, 10:30h
Esp. Fer.
Gerente
39
Pós-Engenharia de Software - FAT 77
Fase de Concepção (1) Processo e ferramentas
Over-engineering??? Jamais!!!A forma mais simples possível do RUP e seus artefatos será utilizadaNenhum artefato será gerado a não ser que seja estritamente necessárioNão são necessárias ferramentas de modelagemSó preciso do Eclipse e de algumas folhas de papel!
Fase: Concepção
Disciplina(s):- Gerência de
projeto, Ambiente
Segunda, 10:30h
Esp. Fer.
Gerente
Pós-Engenharia de Software - FAT 78
Fase de Concepção (1) Arquitetura???
Só um desenho!!!Bill conhece arquitetura software!Um desenho pode esclarecer melhor qual minha idéia de solução!Estou adiantando outra fase? Besteira! O que importa é o software!!!
Fase: Concepção
Disciplina(s):- Análise e projeto
Segunda, 10:55h
Arquiteto
40
Pós-Engenharia de Software - FAT 79
Fase de Concepção (1) Arquitetura???
Fase: Concepção
Disciplina(s):- Análise e projeto
Segunda, 10:55h
Arquiteto
Applet
Navegador
Máquina do desenvolvedor
Servidor Web
Banco de dadosMáquina da organização
Pós-Engenharia de Software - FAT 80
Fase de Concepção (1) Arquitetura???
Fase: Concepção
Disciplina(s):- Análise e projeto
Segunda, 10:55h
Arquiteto
Como descrever em UML?Diagramas de implementação
ServidorWeb
MáquinaCliente
1*
Diagrama de implantação
TCP/IP
ChronoApplet.class
Navegador
Servidor Web
chrono.jarDia
gram
a de
com
pone
ntes
41
Pós-Engenharia de Software - FAT 81
Fase de Concepção (1)O acordo
Resumindo...Bill gostou da idéia e aprovou o desenvolvimento!!!Mas fez algumas ponderações:
Os desenvolvedores devem acumular os dados em um único banco de dados para evitar problemas com a reunião dos dadosDesenvolvedores não trabalham sempre na mesma máquina, todas estão em redeÉ necessário um administrador para manter o banco de dados MySQL
Segunda, 11hs
Fase de ConcepçãoIteração 2
Atualizando a VisãoAtualizando o Plano
Atualizando os RiscosAtualizando o Caso de negócio
Concepção Elaboração Construção Transição
Aqui
42
Pós-Engenharia de Software - FAT 83
Fase de Concepção (2) Visão
Chrono: VisãoProblemaPara a organização de Bill, reunir dados consistentes para fazer estimativas de progresso depende da habilidade de cada desenvolvedor em registrar o tempo gasto em cada atividade no projeto.
Principais partes envolvidas• Desenvolvedores• Assistentes administrativos• Gerentes de projeto• Administrador do banco de dados
Casos de uso• Medir tempo para uma atividade• Extrair planilhas de tempo semanais• Consolidar dados do projeto• Configurar o banco de dados e ferramenta
Fase: Concepção
Disciplina(s):- Requisitos
Segunda, 11:30h
Analista
A VisãoUma ferramenta pessoal de cronometragem que mede o tempo gasto em cada atividade, coleta e armazena estes dados para posterior classificação e extração permite facilmente à organização fazer medidas e estimativas sistemáticas. Desenvolvedores podem estar em máquinas diferentes da rede e os dados são armazenados no mesmo banco de dados.
Pós-Engenharia de Software - FAT 84
Fase de Concepção (2) Casos de uso
Fase: Concepção
Disciplina(s):- Requisitos
Segunda, 11:30h
Analista
Desenvolvedor
Gerente
Medir tempo para uma atividade
Extrair planilhas de tempo semanais
Configurar o banco de dados
e ferramentaAdministrador dobanco de dados
Assitenteadministrativo
Consolidar dados do projeto
43
Pós-Engenharia de Software - FAT 85
TransiçãoMelhorias
1ª ver. beta
ConstruçãoProjeto, código, testes
Entrega
TransiçãoMelhorias
Projeto, código, testes
Projeto, código, testes
Protótipo, testes, riscos
ElaboraçãoProtótipo
ConcepçãoVisão, plano, negócio, risco
Protótipo, testes, riscos
ConstruçãoProjeto, código, testes
Bill: M1 OK! Segunda
Fase de Concepção (2) Plano
Chrono: Plano
Fase: Concepção
Disciplina(s):- Gerência de
projeto
Segunda, 11:30h
Gerente
Segunda Terça Quarta Quinta Sexta Sábado
Bill: M2 OK!
Bill: M2 OK! Entrega
1ª ver. beta
Pós-Engenharia de Software - FAT 86
Fase de Concepção (2) Riscos
Fase: Concepção
Disciplina(s):- Requisitos
Segunda, 11:30h
Analista
Chrono: Riscos
A licença para a ferramenta de desenvolvimento de que eu precisoexpirouBanco de dados é muito caro
A organização de Bill não suporta comunicação entre nós de rede
Algumas das máquinas da organização utilizadas para programação não têm acesso à rede
Eclipse
MySQL
Todos os nós em rede
44
Pós-Engenharia de Software - FAT 87
Fase de Concepção (2) Riscos
Fase: Concepção
Disciplina(s):- Requisitos
Segunda, 11:30h
Analista
Chrono: RiscosSincronização de atualizações para o banco de dados
Consistência de atividades, projetos e usuários considerando múltiplas máquinasPolíticas de acesso para usuários e administradores
Maior risco? Se tudo der errado, o fim de semana será perdido!
Pós-Engenharia de Software - FAT 88
Fase de Concepção (2) Caso de negócio
Segunda, 11:30h
Duração estimada - Tempo de trabalho – Valor estimado:• 1 semana, valor fixado: R$ 32 x VHT
Possíveis investimentos:• Atualização do compilador e IDE Java (a ser determinado)• Banco de dados (a ser determinado)
Estimativa de retorno (minha perspectiva):• Imediato. O custo do software deve cobrir as despesas. Bill prometeu pagar 20% terça à noite (M2).
Estimativa de retorno (perspectiva do Bill):• Se Bill perdia meia hora por desenvolvedor e mais duas horas para entrada e consolidação dos dados, terá retorno em cerca de oito meses e meio.
Chrono: Caso de negócio
Fase: Concepção
Disciplina(s):- Modelagem
de negócio
AnalistaNegócio
45
Pós-Engenharia de Software - FAT 89
Fase de ConcepçãoMarco de objetivos do ciclo de vida
Revisão do projetoA equipe concorda com a definição de escopo do sistema e a estimativa inicial de tempo e custo?Há um acordo de que o conjunto certo de requisitos foi capturado e compartilha-se o entendimento dos mesmos?Há acordo de que as prioridades, riscos e processo são apropriados?Há acordo sobre a estratégia de eliminação dos riscos?
Segunda, 12:00h
Gerente
Fase: Concepção
Disciplina(s):- Gerência de
projeto
Concepção Elaboração Construção Transição
Objetivos do ciclo de vida
Fase de ElaboraçãoIteração 1
Detalhar os requisitosProjetar, implementar e validar a arquitetura
Detalhar riscos, agenda e custosRefinar processo e ambiente
Concepção Elaboração Construção Transição
Aqui
46
Pós-Engenharia de Software - FAT 91
Fase de Elaboração (1)Detalhar os requisitos
Criando um modelo conceitualQuais entidades fazem parte do sistema e como se relacionam?
Detalhando os principais casos de usoMedir tempo para uma atividadeExtrair planilhas de tempo semanais
Conceitual + casos de usoDiagramas de interação
Segunda à tarde
Projetista
Fase: Elaboração
Disciplina(s):- Análise e projeto
Analista
Pós-Engenharia de Software - FAT 92
Fase de Elaboração (1)Detalhar os requisitos
Modelo conceitual Segunda à tarde
Projetista
Fase: Elaboração
Disciplina(s):- Análise e projeto
AnalistaDesenvolvedor Atividade*
nome: Stringduracao: intdata: Date
Usuarionome: String
GerenteAssistente
ListaDeDesenvolvedores
*
47
Pós-Engenharia de Software - FAT 93
Fase de Elaboração (1)Detalhar os requisitos
Principais casos de uso estendidos Segunda à tarde
Projetista
Fase: Elaboração
Disciplina(s):- Análise e projeto
Analista
Caso de uso: Medir tempo para uma atividadeAtores: DesenvolvedorDescrição: O desenvolvedor solicita ao sistema que uma nova atividade seja registrada de acordo com seu tempo de duração.Seqüência de ações
Ator Sistema
1. O desenvolvedor determina o nome e o tempo de duração da atividade e encaminha ao sistema.
2. O sistema armazena a informação e retorna OK para o desenvolvedor.
3. O desenvolvedor recebe OK do sistema
Pós-Engenharia de Software - FAT 94
Fase de Elaboração (1)Detalhar os requisitos
Principais casos de uso estendidos Segunda à tarde
Projetista
Fase: Elaboração
Disciplina(s):- Análise e projeto
Analista
Caso de uso: Extrair planilhas de tempo semanaisAtores: Gerente de projeto, Assistente administrativoDescrição: O gerente/assistente solicita ao sistema a planilha de atividades de todos os desenvolvedores durante a semana atual.Seqüência de ações
Ator Sistema
1. O gerente/assistente solicita a planilha de tempo ao sistema.
2. O sistema recupera todos os usuários e suas atividades.
3. O sistema cria uma planilha única e retorna para o gerente/assistente.
4. O gerente/assistente recebe a planilha de tempo da semana.
48
Pós-Engenharia de Software - FAT 95
Fase de Elaboração (1)Detalhar os requisitos
Diagramas de interação (Seqüência)Medir tempo para uma atividade
Segunda à tarde
Projetista
Fase: Elaboração
Disciplina(s):- Análise e projeto
Analista
:Atividade :Desenvolvedor
criar(“Teste”)
registrar(atividade)
setDuracao(120)
ok
Desenvolvedor
Pós-Engenharia de Software - FAT 96
Fase de Elaboração (1)Detalhar os requisitos
Diagramas de interação (Colaboração)Extrair planilhas de tempo semanais
Segunda à tarde
Projetista
Fase: Elaboração
Disciplina(s):- Análise e projeto
Analista:Desenvolvedor
:Atividade
1:extrairPlanilhaGeral() 2:extrairPlanilha()
3:planilha
2.1:getNome()2.3:getDuracao()
2.2:nome2.4:duracao
4:consolidarPlanilha()
:ListaDeDesenvolvedores
5:planilhaGeral
Gerente/Assitente
49
Pós-Engenharia de Software - FAT 97
Fase de Elaboração (1)Detalhar os requisitos
Criando a interfaceComo receber retorno do cliente?
Fazendo-o interagir com o sistemaModelo e implementação de interface gráfica
Ajuda a refinar os requisitos
Terça de manhã
Implem.
Fase: Elaboração
Disciplina(s):- Análise e projeto,
Implementação
ProjetistaInterface
Projetista
Pós-Engenharia de Software - FAT 98
Fase de Elaboração (1)Detalhar os requisitos
Terça de manhã
Fase: Elaboração
Disciplina(s):- Análise e projeto,
Implementação
Chrono
Atividade:
Tempo gasto:
OK Cancelar Sair
Implem.
ProjetistaInterface
Projetista
50
Pós-Engenharia de Software - FAT 99
Fase de Elaboração (1)Projetar, implementar e validar a arquitetura
Prototipando a arquitetura executável!!!Projeto, implementação e testes
Projeto de baixo nível: classesImplementação em JavaTestes...A arquitetura funciona!!!
Terça à tarde
Implem.
Fase: Elaboração
Disciplina(s):- Análise e projeto,
Implementação, Teste
Projetista
Testador
Pós-Engenharia de Software - FAT 100
Fase de Elaboração (1)Diagrama de classes
A partir dos diagramas de interação e modelo conceitual
Terça à tarde
Fase: Elaboração
Disciplina(s):- Análise e projeto
Projetista
:Desenvolvedor
registrar(atividade)Desenvolvedor
Método implementadopela entidade alvo Desenvolvedor
registrar(Atividade):boolean
ok
Invocação e retorno de método
Desenvolvedorregistrar(Atividade):boolean
51
Pós-Engenharia de Software - FAT 101
Fase de Elaboração (1)Diagrama de classes
A partir dos diagramas de interação e modelo conceitual
Terça à tarde
Fase: Elaboração
Disciplina(s):- Análise e projeto
ProjetistaAtividade*
nome: Stringduracao: intdata: Date
Usuarionome: String
GerenteAssistente
ListaDeDesenvolvedores
*
Desenvolvedorregistrar(Atividade):booleanextrairPlanilha():List
getNome():StringgetDuracao():intsetDuracao(int)
extrairPlanilhaGeral():ListconsolidarPlanilha()
Pós-Engenharia de Software - FAT 102
Fase de Elaboração (1)Implementação em Java
De posse do diagrama de classes, basta implementar as classes em Java
+ Camada de banco de dados+ Integração com a interface gráfica
Terça à tarde
Fase: Elaboração
Disciplina(s):- Implementação
Implem.
52
Pós-Engenharia de Software - FAT 103
Fase de Elaboração (1)Testes
Realizar poucos testes...Alguns poucos testes dos principais casos de uso... ... afinal, é só um protótipo de aceitação pré-construção... mesmo o cliente não será tão exigente neste momento
Terça à tarde
Fase: Elaboração
Disciplina(s):- Teste
Testador
Pós-Engenharia de Software - FAT 104
Fase de Elaboração (1)Detalhar riscos, agenda e custos
Agenda e custos mantidos Terça à tarde
Analista
Fase: Elaboração
Disciplina(s):- Requisitos
Chrono: RiscosSincronização de atualizações para o banco de dados
Consistência de atividades, projetos e usuários considerando múltiplas máquinasPolíticas de acesso para usuários e administradores
Só na fase de transição!
53
Pós-Engenharia de Software - FAT 105
Fase de Elaboração (1)Refinar processo e ambiente
Agenda cumprida...Processo de acordo com as expectativas
Ambiente OK, por enquantoDurante a construção...
Gerência de configuraçãoValidação da IDE Eclipse
Terça à tarde
Gerente
Fase: Elaboração
Disciplina(s):- Gerência de
projeto, Ambiente
Pós-Engenharia de Software - FAT 106
Fase de Elaboração (1)
Resumindo...Bill aprovou o funcionamento e a interface gráficaDeterminou que o sistema fosse completamente desenvolvidoAgora começa-se a trabalhar no software como um produto!!!Vamos à construção!!!
Terça à noite
54
Pós-Engenharia de Software - FAT 107
Fase de ElaboraçãoMarco de arquitetura do ciclo de vida
Revisão do projetoA visão e requisitos são estáveis? A arquitetura é estável?Testes e avaliação demonstraram que os principais riscos foram eliminados?Os planos para construção estão suficientemente detalhados para prosseguir? As estimativas têm credibilidade?A equipe concorda que a visão pode ser alcançada?A relação gasto ocorrido x planejado é aceitável?
Terça à noite
Gerente
Fase: Elaboração
Disciplina(s):- Gerência de
projeto
Concepção Elaboração Construção Transição
Arquitetura do ciclo de vida
Fase de Construçãon iterações
Minimizar o custo de desenvolvimento Desenvolver um produto pronto para a transição
Concepção Elaboração Construção Transição
Aqui
55
Pós-Engenharia de Software - FAT 109
Fase de Construção (n)Minimizar o custo de desenvolvimento
Desenvolvimento profissional!Ferramentas de gerência de configuração
Repositório! Sem riscos de perder trabalho!Se a arquitetura é executável, tudo é desenvolvido e integrado à arquitetura!Projeto e implementação de todos os casos de uso
Quarta
Analista
Fase: Construção
Disciplina(s):- Análise e projeto,
Implementação, Teste, Gerência de Conf.
Projetista
Arquiteto
GerenteConfig.
Pós-Engenharia de Software - FAT 110
Fase de Construção (n)Desenvolver um produto pronto para a transição
Testes e documentaçãoRealização de testes com base nos casos de uso
Aceitação, integração, unidadeDocumentação dos casos de uso restantes, caso necessárioSimulação do ambiente-alvo
Preparação para implantação
Quinta
Testador
Fase: Construção
Disciplina(s):- Teste, Análise e
projeto
Analista
56
Pós-Engenharia de Software - FAT 111
Fase de ConstruçãoMarco de capacidade operacional inicial
Revisão do projetoO release do produto é maduro o suficiente para ser entregue ao usuário final?Toda a equipe está preparada para a transição para a comunidade do usuário?A relação gasto ocorrido x planejado é aceitável?
Quinta à noite
Gerente
Fase: Construção
Disciplina(s):- Gerência de
projeto
Concepção Elaboração Construção Transição
Capacidade operacional
inicial
Fase de TransiçãoIteração 1
Preparar empacotamento, produção e distribuiçãoPreparar local de implantação
Treinar usuários e mantenedores Melhorar projetos futuros com lições aprendidasTestes beta para avaliar aceitação dos usuários
Concepção Elaboração Construção Transição
Aqui
57
Pós-Engenharia de Software - FAT 113
Fase de Transição (1)Preparar empacotamento, produção e distribuição
Como o software será disponibilizado?As classes são empacotadas em um arquivo .jarCria-se um guia do usuário em HTMLCria-se um instalador para os arquivos do guia e os arquivos .jar
Cria-se o produto chrono
Cria-se uma página com domínio para a venda do produto
www.chrono-software.com.br
Sexta de manhã
GerenteImplant.
Fase: Transição
Disciplina(s):- Implantação
Chrono
EscritorTécnico
Pós-Engenharia de Software - FAT 114
Fase de Transição (1)Preparar local de implantação
Onde o software será instalado?Instalação e configuração de banco de dados
MySQLInstalação do Chrono nas máquinas dos desenvolvedores
Utilizando o produto
Sexta de manhã
Fase: Transição
Disciplina(s):- Implantação
GerenteImplant.
58
Pós-Engenharia de Software - FAT 115
Fase de Transição (1)Treinar usuários e mantenedores
Quem usará o software?Cursos de treinamento dos usuários do Chrono
Para desenvolvedoresPara administradores de banco de dadosPara gerentes e assistentes
Sexta de manhã
Desenv.Cursos
Fase: Transição
Disciplina(s):- Implantação
GerenteImplant.
Pós-Engenharia de Software - FAT 116
Fase de Transição (1)Melhorar projetos futuros com lições aprendidas
Da próxima vez...Entregar mais rápido a versão inicial!Ser menos formal na documentação pré-elaboraçãoUsar ferramentas de modelagem
Sexta de manhã
Fase: Transição
Disciplina(s):- Implantação
GerenteImplant.
59
Pós-Engenharia de Software - FAT 117
Fase de Transição (1)Testes beta para avaliar aceitação dos usuários
Reunião da equipe de usuáriosTestes de desempenhoTestes de estresseTestes de aceitação Todos os testes sem intervenção da equipe de desenvolvimento do Chrono: você!
Sexta de manhã
Testador
Fase: Transição
Disciplina(s):- Implantação, Teste
GerenteImplant.
Pós-Engenharia de Software - FAT 118
Fase de TransiçãoMarco de lançamento do produto
Revisão do projetoOs usuários finais estão satisfeitos?A relação gasto ocorrido x planejado é aceitável? Se não, como melhorar no futuro para resolver o problema?
Sexta, 12hs
Gerente
Fase: Transição
Disciplina(s):- Gerência de
projeto
Concepção Elaboração Construção Transição
Lançamentodo produto
60
Sexta à tardeEntrega do software!!!
Concepção Elaboração Construção Transição
Cliente feliz... ...e você também!
ExercícioO problema
Equipes Processo
3
61
Pós-Engenharia de Software - FAT 121
O problema
Agenda de contatosUso uma agenda na Web e pago 30 reais por mês pelo serviçoPreciso de uma agenda:
SimplesNa WebQue possa exportar/importar contatos em CSVNão quero montar uma infra-estrutura de banco de dados
Pós-Engenharia de Software - FAT 122
Equipes
Equipes de 3 pessoasDefinam e registrem papéis nas equipesSigam as fasesSelecionem disciplinas (registrem a cada passo)Escolham as ferramentas