Sistemas de Informação - Início -...

62
1 Sistemas de Informação Hyggo Oliveira de Almeida Laboratório de Sistemas Embarcados e Computação Pervasiva Centro de Engenharia Elétrica e Informática Universidade Federal de Campina Grande Apresentação do curso Motivação para o curso Objetivos do curso Conteúdo Resultado esperado Bibliografia Dúvidas???

Transcript of Sistemas de Informação - Início -...

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

62

Pós-Engenharia de Software - FAT 123

Processo

Sigam o modelo do ChronoFaçam a proposta e me apresentem daqui a uma hora

VisãoPlanoRiscosNegócio

Mostrem-me o andamento a cada marco