Вы находитесь на странице: 1из 41

Manuel Menezes de Sequeira DCTI, ISCTE-IUL Manuel.Sequeira@iscte.pt, D6.

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

RUP (Rational Unified Process)


CASE (Computer-Aided Software

Engineering)

2009/2010

Engenharia do Software I

2009/2010

Engenharia do Software I

Sumrio

Desenvolvimento rpido de software


Mtodos geis
XP (Extreme Programming) Desenvolvimento rpido de aplicaes

(RAD) Prototipagem de software

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

Desenvolvimento rpido de software

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

Caractersticas de processos RAD

Especificao, desenho e implementao so processos concorrentes

Sem especificao pormenorizada


Documentao mnima

2009/2010

Engenharia do Software I

Caractersticas de processos RAD

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

Um processo de desenvolvimento iterativo


Definir entregveis

Desenhar arquitectura

Especificar incremento no

Construir incremento

Validar incremento

Entregar sistema final

sim

Completo?

Validar

Integrar incremento

2009/2010

Engenharia do Software I

10

Vantagens do desenvolvimento incremental


Entrega acelerada de servios ao cliente Maior comprometimento dos utilizadores com o sistema Cada incremento entrega ao cliente a funcionalidade com maior prioridade. Os utilizadores tm de ser envolvidos no desenvolvimento, o que significa que mais provvel que o sistema cumpra os seus requisitos e que os utilizadores se comprometam mais com o sistema.

2009/2010

Engenharia do Software I

11

Problemas do desenvolvimento incremental


Problemas de gesto Progresso pode ser difcil de avaliar e problemas podem ser difceis de descobrir, uma vez que no h documentao que demonstre o que j foi realizado. O contrato normal pode incluir a especificao. Sem especificao, formas diferentes de contrato tm de ser usadas. Sem uma especificao, em relao a qu se testa o sistema? Mudanas contnuas tendem a corromper a estrutura do software, tornando-o mais oneroso de alterar e de fazer evoluir de modo a cumprir novos requisitos.

Problemas contratuais Problemas de validao Problemas de manuteno

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

Desenvolvimento incremental e prototipagem

Desenvolvimento incremental Viso geral dos requisitos Prototipagem descartvel

Sistema entregue

Prottipo executvel e especificao do sistema

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

Princpios dos mtodos geis


Envolvimento do cliente Entrega incremental Pessoas e no processos Abrace a mudana Mantenha a simplicidade Cliente envolvido ao longo do processo de desenvolvimento. Seu papel disponibilizar e prioritizar novos requisitos do sistema e avaliar iteraes do sistema. Software desenvolvido em incrementos com o cliente a especificar que requisitos incluir em cada incremento. Competncias da equipa de desenvolvimento reconhecidas e exploradas. Equipa desenvolve as suas prprias formas de trabalho sem que se prescrevam processos. Devem esperar-se mudanas nos requisitos do sistema e deve desenhar-se sistema de modo a acomodar mudanas. Enfoque na simplicidade, quer no software em desenvolvimento, quer no processo de desenvolvimento usado. Sempre que possvel contribuir para eliminar complexidade do sistema.

2009/2010

Engenharia do Software I

17

Problemas dos mtodos geis

Pode ser difcil manter interesse dos clientes envolvidos Membros da equipa podem no ser adequados a envolvimento intenso de mtodos geis

Prioritizao de mudanas pode ser difcil com mltiplas partes interessadas


Manter simplicidade requer trabalho adicional Contratos podem ser problemticos, tal como noutras abordagens a desenvolvimento iterativo

2009/2010

Engenharia do Software I

18

XP (Extreme Programming)

Mtodo gil mais conhecido e usado? Abordagem extrema a desenvolvimento iterativo


Novas verses podem ser construdas mltiplas

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

Desenvolver, integrar e testar software

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.

Pequenas entregas Desenho simples Testes primeiro

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

Entregas regulares suportam mudana


Refactorizao contnua sustenta simplicidade
Engenharia do Software I 23

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

Carto de estria para descarregamento de documento Descarregamento e impresso de um artigo


O utilizador selecciona o artigo desejado a partir da lista que lhe for mostrada. Depois diz ao sistema como deseja pagar: atravs de uma assinatura, de uma conta empresarial ou usando carto de crdito. De seguida, o sistema pede ao utilizador para preencher um formulrio de direitos de autor. Depois de submetido o formulrio, o artigo desejado descarregado para o computador do utilizador. O utilizador escolhe uma impressora e uma cpia do artigo impressa. O utilizador informa o sistema acerca do sucesso da impresso. Se o artigo estiver marcado apenas para impresso, o utilizador no poder preservar a verso PDF, sendo ela removida automaticamente do seu computador.

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

XP acha que no vale a pena: alteraes no so antecipveis com confiana


XP prope melhoria contnua do cdigo (refactorizao): alteraes mais fceis quando implementadas
Engenharia do Software I 26

2009/2010

Testes em XP

Desenvolvimento com testes primeiro Desenvolvimento incremental de testes partindo de cenrios

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

Descrio de caso de teste


Teste 4: Verificar validade do carto de crdito Entrada: Cadeia de caracteres representando o nmero do carto de crdito e dois inteiros representando o ms e o ano limites da validade do carto. Testes: Verificar que todos os caracteres da cadeia so dgitos. Verificar que o ms tem valor entre 1 e 12 e que o ms e ano de validade so posteriores ou iguais ao ms e ano correntes. Usando apenas os primeiros quatro dgitos do nmero do carto de crdito, verificar, consultando a tabela de emissores de cartes, que a entidade emissora vlida. Verificar validade do carto submetendo o seu nmero e data de validade entidade emissora. Sada: OK ou mensagem de erro indicando que o carto invlido.
2009/2010 Engenharia do Software I

Hmmmm.
29

Desenvolvimento com testes primeiro

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

Desenvolvimento rpido de aplicaes

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

Melhor qualidade do desenho


Melhor manutenibilidade Menor esforo de desenvolvimento

2009/2010

Engenharia do Software I

35

Testes comparativos
Dados de teste

Prottipo do sistema

Sistema

Comparador de resultados

Relatrio das diferenas


2009/2010 Engenharia do Software I 36

Processo de prototipagem

Estabelecer objectivos

Definir funcionalidade

Desenvolver

Avaliar

Plano de prototipagem

Definio da estrutura geral

Prottipo executvel

Relatrio de avaliao

2009/2010

Engenharia do Software I

37

Prottipos descartveis

Prottipos descartados depois de desenvolvidos: no so boa base para sistema de produo


Pode ser impossvel ajustar sistema para

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

No desenvolvimento incremental, comear com requisitos mais compreendidos


Engenharia do Software I 40

2009/2010

A ler

Ian Sommerville, Software Engineering, 8. edio, Addison-Wesley, 2006


Captulo 17

2009/2010

Engenharia do Software I

41

Вам также может понравиться