Академический Документы
Профессиональный Документы
Культура Документы
02
As apresentaes desta srie baseiam-se nas apresentaes disponibilizadas por Ian Sommerville, tendo sido alteradas e adaptadas primeiro por Anders Lyhne Christensen e finalmente por Manuel Menezes de Sequeira.
Na aula anterior
Processos de software
Modelos de processos de software
Iterao de processos Actividades de processo
Engineering)
2009/2010
Engenharia do Software I
2009/2010
Engenharia do Software I
Sumrio
2009/2010
Engenharia do Software I
Objectivos
Explicar como processo de desenvolvimento iterativo e incremental leva a entregas mais rpidas do software e a software mais til Discutir essncia de mtodos geis de desenvolvimento Explicar princpios e prticas do Extreme Programming Explicar papis da prototipagem no processo de software
Engenharia do Software I 5
2009/2010
Alteraes rpidas do contexto dos negcios obrigam empresas a responder a novas oportunidades e competio Necessrio software e seu rpido desenvolvimento Empresas podem estar dispostas a aceitar software de menor qualidade se isso tornar possvel a entrega rpida de funcionalidades essenciais
2009/2010
Engenharia do Software I
Requisitos
Contexto em alterao impossibilita conjunto estvel e consistente de requisitos de sistema Modelo de desenvolvimento em cascata impraticvel Entrega rpida de software possvel apenas com desenvolvimento baseado em especificao e entrega iterativas
Engenharia do Software I 7
2009/2010
2009/2010
Engenharia do Software I
Sistema desenvolvido numa srie de incrementos Utilizadores finais avaliam cada incremento e fazem propostas para incrementos posteriores Interfaces de utilizao usualmente desenvolvidas usando sistema de desenvolvimento iterativo
Engenharia do Software I 9
2009/2010
Desenhar arquitectura
Especificar incremento no
Construir incremento
Validar incremento
sim
Completo?
Validar
Integrar incremento
2009/2010
Engenharia do Software I
10
2009/2010
Engenharia do Software I
11
2009/2010
Engenharia do Software I
12
Prototipagem
Desenvolvimento e entrega iterativos e incrementais Prototipagem descartvel Pode ser impraticvel para sistemas de grande dimenso, especialmente quando h mltiplas equipas trabalhando em mltiplos locais. uma possibilidade. Desenvolve-se um sistema experimental como base para formular os requisitos. Este sistema descartado assim que a especificao do sistema tenha sido acordada.
2009/2010
Engenharia do Software I
13
Sistema entregue
2009/2010
Engenharia do Software I
14
Diferentes objectivos
Desenvolvimento incremental Prototipagem descartvel Entregar aos utilizadores finais um sistema funcional. Desenvolvimento comea pelos requisitos mais importantes. Validar ou derivar os requisitos do sistema. Processo de prototipagem comea pelos requisitos pior compreendidos.
2009/2010
Engenharia do Software I
15
Mtodos geis
Insatisfao com custos fixos associados a mtodos de desenho levou a mtodos geis
Foco no cdigo e no no desenho Com abordagem iterativa ao desenvolvimento Com objectivo de entregar e fazer evoluir
rapidamente o software
Provavelmente melhor adequados a sistemas empresariais de pequena e mdia dimenso ou a produtos para computador pessoal
Engenharia do Software I 16
2009/2010
2009/2010
Engenharia do Software I
17
Pode ser difcil manter interesse dos clientes envolvidos Membros da equipa podem no ser adequados a envolvimento intenso de mtodos geis
2009/2010
Engenharia do Software I
18
XP (Extreme Programming)
vezes por dia Entrega de incrementos a clientes cada duas semanas Todos os testes executados em todas as construes; construes aceites se testes executarem com sucesso
2009/2010
Engenharia do Software I
19
Ciclo de entregas do XP
Seleccionar estrias do utilizador para esta entrega Dividir estrias em tarefas Planear entrega
Avaliar sistema
Entregar sistema
2009/2010
Engenharia do Software I
20
Prticas do XP
Planeamento incremental Registam-se requisitos em Cartes de Estrias e determinam-se estrias a incluir numa entrega segundo tempo disponvel e prioridade relativa. Dividem-se estrias em tarefas de desenvolvimento. Desenvolve-se primeiro conjunto mnimo de funcionalidades que fornecem valor ao negcio. Entregas do sistema frequentes incrementam funcionalidades. Desenha-se apenas o necessrio para cumprir requisitos correntes. Nada mais. Usa-se infra-estrutura de testes unitrios para desenvolver testes para cada nova funcionalidade antes mesmo de a implementar.
Refactorizao Espera-se que todos os desenvolvedores refactorizem o cdigo sempre que depararem com possveis melhorias, de modo a manter o cdigo simples e mantenvel.
2009/2010 Engenharia do Software I 21
Prticas do XP
Programao em pares Propriedade colectiva Desenvolvedores trabalham aos pares, verificando trabalho um do outro e suportando realizao de um bom trabalho. Pares trabalham em todos o sistema. No h ilhas de percia. Todos possuem todo o cdigo que todos podem alterar.
Integrao contnua
Ritmo sustentvel Cliente in situ
Logo que trabalho em tarefa termina, integra-se no sistema completo. Depois de qualquer integrao, todos os testes unitrios tm de executar com sucesso.
No se aceita muito trabalho para alm do tempo normal: reduz qualidade do cdigo e produtividade a mdio prazo. Representante do utilizador final do sistema (Cliente) disponvel a tempo inteiro para equipa XP. Cliente membro da equipa de desenvolvimento responsvel por disponibilizar requisitos para equipa implementar.
2009/2010
Engenharia do Software I
22
Princpios XP e geis
Entregas pequenas e frequentes suportam desenvolvimento incremental Cliente a tempo inteiro com equipa nfase em pessoas e no processos
Programao em pares Propriedade colectiva Processo que evita tempo excessivo de trabalho
2009/2010
Cenrios de requisitos em XP
Requisitos do utilizador expressos como cenrios ou estrias de utilizador Estrias escritas em cartes e divididas em tarefas de implementao por equipa de desenvolvimento Estrias usadas para estimar custos e esforo
Cliente escolhe estrias para entrega seguinte de acordo com prioridades e esforos estimados
Engenharia do Software I 24
2009/2010
2009/2010
Engenharia do Software I
25
XP e mudana
Desenhar para a mudana senso comum: investir tempo e esforo antecipando alteraes proveitoso, pois reduzir custos futuros no ciclo de vida do sistema
2009/2010
Testes em XP
Envolvimento do utilizador no desenvolvimento e validao de testes Sistemas de teste automtico para executar todos testes de componentes sempre que nova entrega construda
Engenharia do Software I 27
2009/2010
Cartes de tarefa para descarregamento de documento de trabalho principal Tarefa 1: Implementar fluxo
Tarefa 2: Implementar catlogo de artigos e seleco de artigo Tarefa 3: Implementar recolha de pagamento
O pagamento pode ser realizado de trs formas diferentes. O utilizador escolhe de que forma pretende pagar. Se o utilizador tiver uma assinatura, ento pode introduzir a respectiva chave, que ser verificada pelo sistema. Alternativamente, pode introduzir um nmero de conta organizacional. Se o nmero for vlido, o preo do artigo ser debitado nessa conta. Finalmente, pode introduzir o nmero do carto de crdito, com 16 dgitos, e a sua data de validade. Estes dados sero validados e, se vlidos, ser enviado um dbito para a conta do carto de crdito.
2009/2010
Engenharia do Software I
28
Hmmmm.
29
Escrever testes antes do cdigo clarifica os requisitos a implementar Testes escritos de forma a se poderem executar automaticamente e no na forma de dados Testes reportam seu resultado
Testes passados e novos testes executados quando se adiciona nova funcionalidade, verificando-se se se introduziu algum erro
Engenharia do Software I 30
2009/2010
Programao em pares
Programadores aos pares, sentando-se juntos durante desenvolvimento Favorece sentimento de posse comum do cdigo e dissemina conhecimento
Processo de reviso informal: cdigo visto por mais que uma pessoa
Encoraja refactorizao: equipa toda beneficia Experincias sugerem que produtividade de desenvolvimento semelhante a trabalho individual
2009/2010
Engenharia do Software I
31
Mtodos geis tm recebido muita ateno, mas h outras abordagens ao RAD em uso h muitos anos Essas abordagens foram desenhadas para desenvolver aplicaes empresariais dataintensive Baseiam-se em programao e apresentao de informao a partir de uma base de dados
2009/2010
Engenharia do Software I
32
Ferramentas RAD
Linguagens de programao de bases de dados Geradores de interfaces Ligaes a aplicaes de escritrio Geradores de relatrios
Engenharia do Software I 33
2009/2010
Prototipagem de software
Prottipo: verso inicial do sistema para demonstrar conceitos e experimentar opes de desenho Pode usar-se
Processo de engenharia de requisitos: ajuda
eliciao e validao de requisitos Processos de desenho: ajuda explorar opes e desenvolver design da interface com utilizador Processo de testes: executar testes comparativos (back-to-back)
2009/2010 Engenharia do Software I 34
Benefcios da prototipagem
Melhor usabilidade do sistema Melhor correspondncia com necessidades reais dos utilizadores
2009/2010
Engenharia do Software I
35
Testes comparativos
Dados de teste
Prottipo do sistema
Sistema
Comparador de resultados
Processo de prototipagem
Estabelecer objectivos
Definir funcionalidade
Desenvolver
Avaliar
Plano de prototipagem
Prottipo executvel
Relatrio de avaliao
2009/2010
Engenharia do Software I
37
Prottipos descartveis
cumprir requisitos no funcionais Prottipos normalmente no documentados Estrutura de prottipos usualmente degradada devido a alteraes rpidas Prottipo provavelmente no cumpre normas de qualidade da organizao
2009/2010
Engenharia do Software I
38
A reter
Abordagem iterativa a desenvolvimento de software leva a entregas mais rpidas Mtodos geis so mtodos de desenvolvimento iterativo destinados a reduzir custos fixos de desenvolvimento e assim a produzir software mais rapidamente XP inclui prticas como testes sistemticos, melhoria contnua e envolvimento do cliente A abordagem aos testes no XP uma das suas foras; testes executveis desenvolvidos antes da escrita do cdigo
Engenharia do Software I 39
2009/2010
A reter
Prottipos descartveis usados para explorar requisitos e opes de desenho Ao implementar prottipo descartvel, comear com requisitos menos compreendidos
2009/2010
A ler
2009/2010
Engenharia do Software I
41