Buscar

Casos de uso uml

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 39 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 39 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 39 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

i
Primeiros Elogios a Use a Cabeça Desenvolvimento de Software
“Use a Cabeça Desenvolvimento de Software é uma série de diagramas informativos e ilustrações inteligentes 
extravagante, mas muito bem planejada, projetada para transmitir informações de maneira precisa e clara 
diretamente para SEU cérebro. É um tipo de livro totalmente novo”.
- Scott Hanselman
Desenvolvedor de Softwares, Orador, Autor de 
Scott Hanselman’s Computer Zen (A filosofia zen de Scott Hanselman para computadores).
“Este é um daqueles livros que desenvolvedores experientes gostariam de ter quando começaram. Sei disso, sou 
um deles”.
- Burk Hufnagel, Desenvolvedor de Softwares Sênior
“Poderia ter evitado muitos problemas se tivesse lido este livro antes de meu último projeto!”
- Essa desenvolvedora pediu para manter-se anônima, para que o gerente de seu último 
projeto não ficasse preocupado!
“Use a Cabeça Desenvolvimento de Software ensina muitas lições valiosas que ajudarão qualquer pessoa a distribuir 
softwares de qualidade a tempo e dentro do orçamento. Seguir os princípios básicos ensinados neste livro ajudará 
a manter seu projeto sob controle do início ao fim. Independente de há quanto tempo você vem desenvolvendo 
softwares, Use a Cabeça Desenvolvimento de Software lhe dará ferramentas essenciais para o desenvolvimento de 
projetos bem-sucedidos do início ao fim”.
- Adam Z. Szymanski, Gerente de Projetos de Software, Laboratório de Pesquisa Naval
“As idéias deste livro podem ser usadas por gerentes iniciantes e experientes que quiserem melhorar imediatamente 
o processo geral de desenvolvimento de softwares”.
- Dan Francis, Gerente de Engenharia de Softwares, uma das 50 maiores empresas da Fortune
“Uma perspectiva totalmente nova do processo de desenvolvimento de softwares. Uma ótima introdução ao 
gerenciamento de uma equipe de desenvolvimento desde os requisitos até a distribuição”.
- McClellan Francis, Engenheiro de Software
ii
Elogios a Use a Cabeça – Análise e Projeto Orientado a Objeto
“Use a Cabeça Análise & Projeto Orientado ao Objeto é uma abordagem inovadora da A&POO (Análise & Projeto Orientado 
ao Objeto). O que torna este livro diferente é seu enfoque no aprendizado. Há livros demais no mercado que desperdiçam 
muito tempo explicando razões, mas não habilitam realmente o praticante para começar a trabalhar em um projeto. Estes 
livros são muito interessantes, mas não são tão práticos. Tenho certeza de que o futuro da prática de desenvolvimento 
de softwares terá como enfoque o executor. Os autores tornaram o conteúdo sobre A&POO acessível e utilizável para o 
praticante”.
- Ivar Jacobson, Consultoria Ivar Jacobson
“Acabei de ler UC A&POO e adorei! O livro consegue percorrer os aspectos essenciais da análise e projeto 
orientados a objetos com UML e casos de uso, e até mesmo com várias aulas sobre um bom projeto de software, 
tudo de uma maneira veloz e fácil de aprender. O que mais gostei neste livro foi seu enfoque nas razões para 
trabalharmos com a A&POO – criar software de qualidade! Ao definir o que é um software de qualidade e mostrar 
como cada etapa do processo de A&POO leva a esse objetivo, o livro consegue ensinar até mesmo ao mais antigo 
programador de Java porque a A&POO é importante. Este é um ótimo “primeiro livro” sobre projeto para 
qualquer pessoa iniciante em Java, ou até para os que já são programadores de Java há algum tempo, mas ficam 
assustados com os grossos livros sobre Análise e Projeto OO”.
- Kyle Brown, Famoso Engenheiro, IBM
“Finalmente um livro sobre A&POO que reconhece que a UML é apenas uma notação e que o que importa no 
desenvolvimento de softwares é passar algum tempo analisando os problemas”.
- Pete McBreen, Autor, Software Craftsmanship (A Arte de Criar Softwares)
“O livro faz um bom trabalho ao usar aquele estilo de redação interessante, visualmente orientado da série ‘Use a 
Cabeça’. Mas por trás das figuras divertidas e das fontes extravagantes temos uma apresentação séria, inteligente e 
extremamente bem-elaborada da Análise e Projeto OO. Este livro apresenta uma opinião sólida de como projetar 
programas e a comunica efetivamente. Adoro a maneira como ele usa exemplos em andamento para conduzir o 
leitor pelos diversos estágios do processo de projetar. Ao ler o livro, me senti como se olhasse sobre os ombros de 
um projetista experiente que estivesse me explicando que questões são importantes em cada etapa e por quê”.
- Edward Sciore, Professor Associado, Departamento de Ciência da Computação, 
Boston College
“Este é um livro bem-projetado que oferece o que promete para seus leitores: como analisar, projetar e criar 
softwares de qualidade orientados a objetos. Seu conteúdo flui facilmente da aplicação de casos de uso para a 
coleta de requisitos à análise, projeto, implementação, teste e iteração. Cada etapa do desenvolvimento de softwares 
orientados a objetos é apresentada à luz de sólidos princípios de engenharia de softwares. Os exemplos são claros e 
ilustrativos. Trata-se de um livro consistente e inovador sobre desenvolvimento de softwares orientados a objetos”.
- Dung Zung Nguyen, Orador, 
Rice University
iii
Elogios a Use a Cabeça – Padrões de Projetos 
“Recebi o livro ontem e comecei a ler no caminho para casa... e não consegui parar. Levei para a academia e acho que as 
pessoas me viram rindo bastante enquanto me exercitava e lia. Realmente muito ‘arrojado’. Além de divertido, os autores 
abordam muitos assuntos e vão direto ao ponto. Fiquei realmente impressionado”.
- Erich Gamma, engenheiro de renome da IBM 
e co-autor de Padrões de Projetos
“‘Use a Cabeça – Padrões de Projeto’ consegue combinar diversão, gargalhadas, discernimento, profundidade 
técnica e ótimos conselhos práticos em uma leitura interessante e contemplativa. Sendo iniciante em padrões de 
projeto, ou se já os usa há anos, certamente você vai trazer algo de sua visita a Objectville”.
- Richard Helm, co-autor de Padrões de Projeto com o resto da Gangue dos Quatro – Erich 
Gamma, Ralph Johnson e John Vlissides
“Sinto como se o peso de milhares de livros tivesse sido tirado de minha cabeça”.
- Ward Cunningham, inventor do Wiki e fundador do Hillside Group
“Este livro chega perto da perfeição, pela maneira como combina perícia e facilidade de leitura. Ele se expressa 
com autoridade e é de leitura simples. É um dos poucos livros de software que já li que me parece indispensável. 
(Colocaria cerca de 10 livros nessa categoria)”.
- David Gelernter, Professor de Ciência da Computação, Universidade de Yale, e Autor de 
“Mirror Worlds” (Mundos Espelhados) e “Machine Beauty” (A Beleza das Máquinas)
“Um mergulho de cabeça no universo dos padrões, um espaço em que coisas complexas passam a ser simples, 
mas coisas simples também passam a ser complexas. Não consigo pensar em guias turísticos melhores do que os 
Freeman”.
- Miko Matsumura, Analista Industrial, Ex-Instrutor Chefe de Java da Middleware Company, 
Sun Microsystems
“Ri, chorei, mexeu comigo”.
- Daniel Steinberg, Editor-Chefe, java.net
“Minha primeira reação foi rolar no chão de rir. Após me recompor, percebi que além do livro ser tecnicamente 
apurado, é a introdução aos padrões de projeto mais fácil de entender que já vi”.
- Dr. Timothy A. Budd, Professor Associado de Ciência da Computação na Universidade do 
Estado do Oregon e autor de vários livros, inclusive C++ for Java Programmers (C++ para 
Programadores de Java)
“Jerry Rice percorre padrões melhor do que qualquer recebedor da NFL, mas os Freeman o venceram. É sério... 
este é um dos livros mais divertidos e inteligentes sobre projeto de softwares que já li”.
- Aaron LaBerge, VP Technology, ESPN.com
Outros livros relacionados da O’Reilly
iv
Outros livros da série Use a Cabeça da O’Reilly
Use a Cabeça Java
Use a Cabeça Análise e Projeto Orientado a Objeto (A&POO)
Use a Cabeça Ajax(Iniciação rápida)
Use a Cabeça HTML com CSS & XHTML
Use a Cabeça Padrões de Projetos
Use a Cabeça Servlets & JSP
Use a Cabeça EJB
Use a Cabeça PMP
Use a Cabeça SQL
Use a Cabeça JavaScript
vii
A todos que trabalham em algum projeto conosco e nos 
apontaram onde erramos, onde acertamos e que livros ler... aqui 
está nossa retribuição.
ix
Conteúdo (Sumário)
 Introdução xxv
1 desenvolvimento de softwares de qualidade: Satisfazendo seu cliente 1
2 coletando requisitos: Sabendo o que o cliente quer 25
3 planejamento do projeto: Planejando para o sucesso 57
4 roteiros de usuário e tarefas: Dando ênfase ao trabalho 93
5 um projeto satisfatório: Colocando em prática um projeto de qualidade 129
6 controle de versões: Desenvolvimento defensivo 151
6.5 construindo seu código: Inserir a tabulação de a no espaço b... 183
7 teste e integração contínua: As coisas dão errado 195
8 desenvolvimento baseado em testes: Mantendo seu código coeso 233
9 terminando uma iteração: Está tudo se encaixando... 267
10 a próxima iteração: Se não tiver falhas... aperfeiçoe assim mesmo 293
11 erros: Eliminando erros como um profissional 321
12 o mundo real: Usando um processo no dia-a-dia 349
Conteúdo (a coisa real)
Introdução
Seu cérebro e o Desenvolvimento de Softwares. Você está sentado 
tentando aprender algo, mas seu cérebro continua a lhe dizer que todo esse aprendizado 
não tem importância. Seu cérebro está dizendo “É melhor deixar espaço para coisas 
mais importantes, como que animais selvagens evitar e se praticar alpinismo pelado é 
uma má idéia”. Portanto, como fazê-lo achar que sua vida depende do conhecimento 
de como desenvolver softwares de qualidade?
Para quem é este livro? xxvi
Sabemos o que você está pensando xxvii
Meta-cognição xxix
Veja o que você pode fazer para seu cérebro lhe obedecer xxxi
Leia-me xxxii
A equipe de revisão técnica xxxiv
Agradecimentos xxxv
sumário
xii
planejamento do projeto
Planejando para o sucesso
Qualquer software de peso começa com um grande plano. 
Neste capítulo você vai aprender a criar esse plano. Você vai aprender a trabalhar com o cliente 
para priorizar seus requisitos. Também DEFINIRÁ ITERAÇÕES que guiarão você e sua equipe. 
Para concluir, criará um plano de desenvolvimento exequível que você e sua equipe possam 
executar e monitorar confiantemente. Ao terminar, saberá exatamente como ir dos requisitos ao 
marco 1.0.
Os clientes querem seu software IMEDIATAMENTE! 58
Priorize com o cliente 60
Sabemos o que encontrar no Marco 1.0 (bem, talvez) 60
Se os recursos forem excessivos, re-priorize 61
Às vezes mais pessoas significam retornos menores 63
Construa seu caminho de modo a chegar a um marco 1.0 sensato 64
As iterações devem ser curtas e simples 70
Comparando seu plano com a realidade 71
A velocidade compensará os excedentes em suas estimativas 73
Os programadores pensam em dias UTÓPICOS... 74
Os desenvolvedores pensam em dias do... 75
Em que momento sua iteração demora demais? 76
Considere a velocidade ANTES de dividir em iterações 77
Hora de fazer uma avaliação 81
Gerenciando clientes irritados 82
A Lousa em sua parede 84
Certo, não há problema, posso 
fazer isso em dois dias.
Eu vou enfrentar uma batalha nessa ida para 
casa, programar até as 3 da manhã, dar uma 
paradinha, e voltar a trabalhar. Durmo algumas 
horas, chamo o pessoal para fazer ajustes 
comigo e termino à meia-noite. Se nada der 
errado... e mamãe não precisar de mim no jantar.
Isso é o que um programador diz...
...mas é isso o que ele está pensando
 3
sumário
xxvi
como usar este livro
Para quem é este livro?
Se você puder responder “sim” a todas essas perguntas:
Tem acesso a um computador e alguma experiência em 
programação?
Quer aprender técnicas para a construção e distribuição de 
softwares de qualidade? Quer entender os princípios existentes 
por trás das iterações e do desenvolvimento baseado em testes?
Prefere conversas estimulantes na hora do jantar a palestras 
secas, chatas e técnicas?
este livro é para você.
Quem provavelmente deve ficar longe deste livro?
Se você puder responder “sim” a qualquer das perguntas abaixo:
Você é totalmente iniciante em Java?
(Não é preciso ser experiente e se souber C++ ou C# entenderá 
bem os exemplos de código).
Você é um gerente de desenvolvimento experiente procurando 
um livro de referência?
Tem medo de tentar algo diferente? Prefere fazer um tratamento 
de canal a misturar listras e xadrez? Acredita que um livro técnico 
não pode ser sério se as iterações forem representadas na forma 
humana?
este livro não é para você.
1
2
3
3
1
2
[nota do pessoal de marketing: este livro serve para qualquer pessoa que tenha um cartão de crédito.]
Usamos Java no livro, mas você pode fazer vista grossa e fingir que é C#. Porém, não adianta fazer vista grossa para fingir que é Perl.
introdução
xxix
Meta-cognição: entendendo o pensamento.
Se você quiser realmente aprender, e quiser fazê-lo mais rápida e eficientemente, 
preste atenção em como sua atenção é atraída. Pense em como você pensa. 
Entenda como aprende.
Quase ninguém fez cursos de meta-cognição ou teoria do aprendizado quando 
estava crescendo. Esperavam que aprendêssemos, mas raramente nos ensinavam a 
aprender.
Mas presumimos que por você estar segurando este livro, deseja realmente 
aprender a desenvolver softwares de qualidade. E é provável que não queira 
demorar muito. Se quiser usar o que se encontra neste livro, terá que lembrar o 
que leu. E para isso, tem que entender. Para aproveitar este livro ao máximo, ou 
qualquer livro ou experiência de aprendizagem, tome as rédeas de seu cérebro. 
Dedique-se a esse conteúdo.
O truque é fazer seu cérebro ver o novo material que você está aprendendo 
como Realmente Importante. Crucial para seu bem-estar. Tão importante 
quantoum tigre. Caso contrário, você estará em uma batalha constante, com seu 
cérebro fazendo o que pode para não deixar o novo conteúdo ser memorizado.
Mas como fazer seu cérebro tratar o desenvolvimento de softwares como 
se fosse um tigre faminto?
Há a maneira tediosa e lenta ou a mais rápida e efetiva. A maneira lenta é por 
meio da repetição contínua. É claro que você sabe que pode aprender e lembrar até 
o mais chato dos tópicos se continuar insistindo nisso. Com um nível suficiente 
de repetição, seu cérebro pensará “Isso não parece importante, mas ele continua se 
dedicando à mesma coisa repetidamente, portanto, suponho que deva ser”.
A maneira mais rápida é fazer qualquer coisa que aumente a atividade 
cerebral, principalmente tipos diferentes de atividade cerebral. Os itens da 
página anterior são grande parte da solução e todos comprovadamente ajudarão 
seu cérebro a trabalhar a seu favor. Por exemplo, estudos mostram que inserir 
palavras dentro das figuras que elas descrevem (e não em algum outro local da 
página, como em uma legenda ou no corpo do texto) fará com que seu cérebro 
tente descobrir como as palavras e a figura estão relacionadas e isso ocasionará 
o acionamento de mais neurônios. Maior acionamento de neurônios = mais 
chances de seu cérebro perceber que isso é algo em que vale a pena prestar 
atenção e possivelmente memorizar.
O estilo coloquial ajuda porque as pessoas tendem a prestar mais atenção 
quando percebem que estão em uma conversa, já que espera-se que elas 
acompanhem e exponham sua opinião. O interessante é que seu cérebro não 
está necessariamente preocupado com o fato da “conversa” ser entre você e um 
livro! Por outro lado, se o estilo da redação for formal e seco, ele perceberá 
como se você estivesse assistindo a uma palestra enquanto senta em uma sala 
cheia de espectadores passivos. Não é preciso ficar acordado.
Mas figuras e um estilo coloquial são apenas o começo...
a introdução
Estou pensando em como 
vou fazer meu cérebro 
lembrar disso...
você está aqui
xxxii
como usar este livro
Leia-me
Essa é uma experiência de aprendizado e não um livro de consulta. Eliminamos deliberadamente tudo que pudesse 
atrapalhar o aprendizado independente do que estivéssemos abordando nesse ponto do livro. E na primeira leitura, 
você precisa começar desde o início, porque o livro faz suposições sobre o que você já viu e aprendeu.
Presumimos que você esteja familiarizado com a programação orientada a objetos.
Seria necessário um livro inteiro para lhe ensinarmos a programação orientada a objetos (como em, digamos, Use 
a Cabeça – A&POO). Preferimos enfocar neste livro os princípios de desenvolvimento de softwares em vez 
dos fundamentos de projetos ou linguagens. Usamos Java em nossos exemplos porque é uma linguagem muito 
comum e bem auto-explicativa; mas todos os assuntos sobre os quais falamos são aplicáveis independente de 
você estar usando Java, C#, C++ ou Visual Basic (ou Ruby, ou...). No entanto, se nunca programou usando uma 
linguagem orientada a objetos, você pode ter algum problema para seguir partes do código. Nesse caso é altamente 
recomendável que se familiarize com uma dessas linguagens antes de se aventurar por alguns dos últimos capítulos 
do livro.
Não abordamos todos os processos de desenvolvimento de software existentes.
Há livros inteiros sobre diferentes maneiras de criar softwares. Não tentamos incluir todas as abordagens 
possíveis de desenvolvimento de código. Em vez disso, enfocamos técnicas que sabemos que funcionam e se 
complementam na produção de softwares de qualidade. O Capítulo 12 especificamente fala sobre maneiras de 
adaptar o processo para a manipulação de elementos exclusivos de um projeto.
As atividades NÃO são opcionais.
Os exercícios e atividades não são complementos; fazem parte do conteúdo principal do livro. Alguns deles são para 
ajudar na memorização, outros para a compreensão e alguns o ajudarão a aplicar o que você aprendeu. Alguns são 
apenas para fazê-lo pensar sobre como resolveria o problema. Não salte os exercícios. As palavras-cruzadas são a 
única coisa que você não precisa fazer, mas são um bom exercício para dar a seu cérebro uma chance de pensar nas 
palavras e termos do aprendizado em um contexto diferente.
A redundância é intencional e importante.
Uma diferença que se destaca em um livro Use a Cabeça é que queremos que você realmente aprenda. E queremos que 
termine o livro lembrando o que aprendeu. A maioria dos livros de referência não tem a retenção e a lembrança como 
objetivos, mas este livro é sobre aprendizado, portanto, você verá alguns dos conceitos aparecem mais de uma vez.
Os exemplos são tão simples quanto possível
Nossos leitores nos dizem que é frustrante percorrer 200 linhas de um exemplo procurando por duas linhas que eles 
precisam entender. A maioria dos exemplos deste livro é mostrada dentro do menor contexto possível, para que a 
parte que você estiver tentando aprender se apresente de maneira clara e simples. Não espere que todos os exemplos 
sejam robustos, ou até mesmo completos – eles foram criados especificamente para o aprendizado e nem sempre são 
totalmente funcionais.
Inserimos o código completo dos projetos na Web para você poder copiar e colá-los em seu editor de texto. Você os 
encontrará em:
http://www.headfirstlabs.com/books/hfsd/.
Os exercícios ‘Poder do cérebro’ não têm respostas.
Para alguns deles, não há resposta certa, e em outros, parte da experiência de aprendizado das atividades é para você 
decidir se e quando suas respostas estão corretas. Em alguns dos exercícios você encontrará dicas que o conduzirão na 
direção correta.
introdução
desenvolvimento de softwares de qualidade
37você está aqui
A maioria dos projetos tem duas preocupações básicas
Converse com a maioria dos clientes e, além de sua grande idéia, provavelmente 
eles terão duas preocupações básicas:
Quanto custará?
Isso não é surpresa. A maioria dos clientes quer saber a quantia que eles terão que 
gastar. Nesse caso, no entanto, Tom tem bastante dinheiro, logo, esse não é um 
grande problema para ele.
Quanto tempo vai demorar?
A outra grande restrição é tempo. Quase nenhum cliente diz “Demore quanto 
quiser!”. E quase sempre o cliente quer seu software pronto em uma data ou 
evento específico.
No caso de Tom, ele quer seu site da Web disponível em três meses, pronto para a 
grande Conferência TrailMix que está chegando.
Geralmente, dinheiro é uma limitação. Nesse caso, Tom tem dinheiro para gastar e um orçamento do que ele vai precisar vai aumentar ainda mais o montante.
A Conferência 
TrailMix 
Esse também é seu dia depagamento... se terminar a tempo.

Outros materiais