Prof. MSc. Larissa Luz Gomes [email protected] Aula 5 Análise e Projeto de Sistemas I.

26
Prof. MSc. Larissa Luz Gomes [email protected] Aula 5 Análise e Projeto de Sistemas I

Transcript of Prof. MSc. Larissa Luz Gomes [email protected] Aula 5 Análise e Projeto de Sistemas I.

Page 1: Prof. MSc. Larissa Luz Gomes lariluz@yahoo.com.br Aula 5 Análise e Projeto de Sistemas I.

Prof. MSc. Larissa Luz Gomes

[email protected]

Aula 5

Análise e Projeto de Sistemas I

Page 2: Prof. MSc. Larissa Luz Gomes lariluz@yahoo.com.br Aula 5 Análise e Projeto de Sistemas I.

Desenvolvimento Tradicional

O termo desenvolvimento tradicional, é utilizado para identificar as metodologias que de alguma forma adotam o Desenvolvimento em Cascata.

No desenvolvimento em cascata, o software é construído seguindo uma seqüência de fases, sendo que cada fase, com exceção da primeira, depende da conclusão da fase anterior para ser iniciada.

Page 3: Prof. MSc. Larissa Luz Gomes lariluz@yahoo.com.br Aula 5 Análise e Projeto de Sistemas I.

Desenvolvimento em Cascata

Page 4: Prof. MSc. Larissa Luz Gomes lariluz@yahoo.com.br Aula 5 Análise e Projeto de Sistemas I.

Desenvolvimento em Cascata

O desenvolvimento em cascata, vem sendo amplamente nos processos de desenvolvimento de software. Por esse motivo, é chamado de Desenvolvimento Tradicional.

Alguns processos de desenvolvimento de software que não são em cascata, como o RUP (Rational Unified Process), são adotados em grande parte dos projetos, de uma forma semelhante ao modelo em cascata.

Page 5: Prof. MSc. Larissa Luz Gomes lariluz@yahoo.com.br Aula 5 Análise e Projeto de Sistemas I.

Desenvolvimento RUP

No desenvolvimento RUP o processo é empregado de forma iterativa e incremental, mas ainda existe uma forte linearidade no desenvolvimento, caracterizada por cascatas menores dentro de cada iteração.

O termo desenvolvimento tradicional também engloba estes casos [TELES, 2004].

Page 6: Prof. MSc. Larissa Luz Gomes lariluz@yahoo.com.br Aula 5 Análise e Projeto de Sistemas I.

Desenvolvimento RUP

Page 7: Prof. MSc. Larissa Luz Gomes lariluz@yahoo.com.br Aula 5 Análise e Projeto de Sistemas I.

Desenvolvimento Ágil

Desenvolvimento Ágil de software (Agile software development) ou Método Ágil é um conjunto de metodologias de desenvolvimento de software.

O desenvolvimento ágil, tal como qualquer metodologia de software, providencia uma estrutura conceitual para reger projetos de engenharia de software.

Page 8: Prof. MSc. Larissa Luz Gomes lariluz@yahoo.com.br Aula 5 Análise e Projeto de Sistemas I.

Desenvolvimento Ágil

Existem inúmeros métodos de desenvolvimento de software rápido. A maioria dos métodos ágeis tenta minimizar o risco pelo desenvolvimento do software em curtos períodos, chamados de iteração, os quais gastam tipicamente menos de 1 semana a até 4 semanas.

Cada iteração é como um projeto de software em miniatura e inclui todas as tarefas necessárias para implantar os mini-incrementos de cada iteração, passando pelas seguintes etapas: Planejamento, Análise de Requisitos, Projeto, Codificação, Teste e Documentação.

Page 9: Prof. MSc. Larissa Luz Gomes lariluz@yahoo.com.br Aula 5 Análise e Projeto de Sistemas I.

Desenvolvimento Ágil

Enquanto em um processo convencional, cada iteração não está necessariamente focada em adicionar um novo conjunto significativo de funcionalidades, um projeto de software ágil busca a capacidade de implantar uma nova versão do software ao fim de cada iteração.

Desenvolvimento Ágil enfatiza a comunicação face-a-face, por isso produzem pouca documentação em relação a outros métodos, sendo este um de seus pontos negativos.

Page 10: Prof. MSc. Larissa Luz Gomes lariluz@yahoo.com.br Aula 5 Análise e Projeto de Sistemas I.

Desenvolvimento Ágil

Eliminam grande parte do excesso de modelos e de documentação e o tempo gasto nestas tarefas;

Enfatizam um desenvolvimento de aplicação simples e iterativo, normalmente usado com a orientação a objeto;

Exemplos: Extreme Programming (1996), DSDM (Método de Desenvolvimento de Sistemas Dinâmicos) (1995) e o Scrum (1986).

Page 11: Prof. MSc. Larissa Luz Gomes lariluz@yahoo.com.br Aula 5 Análise e Projeto de Sistemas I.

Diferentes Métodos(Cascata, RUP, XP)

Tempo

Escopo

Clássico Iterativo XP

Page 12: Prof. MSc. Larissa Luz Gomes lariluz@yahoo.com.br Aula 5 Análise e Projeto de Sistemas I.

Extreme Programming (XP)

Usa codificação simples e teste contínuo executado por dois desenvolvedores;

Interações estreitas com os usuários finais para construir o sistema rapidamente, conversas face-a-face;

Planejamento superficial executam as fases de análise, projeto e implementação iterativamente. A funcionalidade do sistema cresce ao longo do tempo.

Page 13: Prof. MSc. Larissa Luz Gomes lariluz@yahoo.com.br Aula 5 Análise e Projeto de Sistemas I.

Extreme Programming (XP)

Planejamento superficial executam as fases de análise, projeto e implementação iterativamente. A funcionalidade do sistema cresce ao longo do tempo.

Page 14: Prof. MSc. Larissa Luz Gomes lariluz@yahoo.com.br Aula 5 Análise e Projeto de Sistemas I.

Extreme Programming (XP)

As práticas de teste e codificação são o ponto-chave da XP;

XP conta pesadamente com refactoring (que é um modo disciplinado de reestruturar código para mantê-los simples);

A metodologia trabalha bem com projetos que têm agendas muito curtas ou prazos críticos.

Page 15: Prof. MSc. Larissa Luz Gomes lariluz@yahoo.com.br Aula 5 Análise e Projeto de Sistemas I.

Extreme Programming (XP)

Um projeto XP começa com:– Histórias de usuários que descrevem o que o sistema deve

fazer;– Depois os programadores codificam módulos e testes

pequenos e simples para atender as necessidades do sistema em questão;

– Usuários devem estar sempre disponíveis para esclarecer questões e tópicos à medida que surgirem;

– Os padrões são importantes para minimizar a confusão por isso as equipes usam um conjunto de nomes, descrições e práticas de codificação comuns.

Page 16: Prof. MSc. Larissa Luz Gomes lariluz@yahoo.com.br Aula 5 Análise e Projeto de Sistemas I.

Extreme Programming (XP)

Os projetos XP entregam resultados mais cedo que os outros e raramente têm problemas para reunir os requisitos do sistema

O XP trabalha muito com orientação a objeto e são indicados para agendas muito curtas ou prazos críticos.

Contudo, o XP requer muita disciplina, senão o projeto perde seu foco;

Recomendada para pequenos grupos de desenvolvimento, não mais que doze desenvolvedores trabalhando em dupla;

Não é recomendada para grandes aplicações.

Page 17: Prof. MSc. Larissa Luz Gomes lariluz@yahoo.com.br Aula 5 Análise e Projeto de Sistemas I.

Sobre o processo proposto pelo XP– Ele se inicia com o cliente escolhendo as funcionalidades que

serão implementadas. Estas funcionalidades são chamadas de estórias do usuário (user stories). A escolha leva em conta a estimativa de custo/tempo feita pelos programadores;

– O desenvolvimento é fortemente guiado a testes (TDD: Test-Driven Development). Os programadores escrevem testes unitários, que são classes que automatizam seqüências de testes sobre outras classes. São escritos antes do código estar completo;

– Normalmente no par de programadores procura-se unir um com muita experiência em TDD e outro com pouca ou nenhuma experiência nesta técnica.

Extreme Programming (XP)

Page 18: Prof. MSc. Larissa Luz Gomes lariluz@yahoo.com.br Aula 5 Análise e Projeto de Sistemas I.

Sobre as estórias dos usuários– Uma estória do usuário é uma unidade funcional– Ela deve ser entendida pelos clientes e usuários,

deve ser testável, deve ter valor para o cliente e deve ser pequena o bastante para que os programadores possam construir dúzias delas em um ciclo de iteração;

– Ela é formada por uma ou duas sentenças que descrevem algo com valor para o cliente:

o sistema deve verificar se o CPF do cliente é um número válido

Extreme Programming (XP)

Page 19: Prof. MSc. Larissa Luz Gomes lariluz@yahoo.com.br Aula 5 Análise e Projeto de Sistemas I.

Sobre as estórias dos usuários– Os programadores deverão ser capazes de estimar o

custo/tempo para implementar a estória. Caso isto não seja possível, a estória deve ser subdividida em estórias menores, para que possam ser então estimadas;

Extreme Programming (XP)

Page 20: Prof. MSc. Larissa Luz Gomes lariluz@yahoo.com.br Aula 5 Análise e Projeto de Sistemas I.

Reportando o progresso de um projeto XP– O progresso de cada iteração é medido e reportado por

uma pessoa chamada tracker;– A cada programador, o tracker faz duas perguntas básicas:

Quantos dias ideais você já trabalhou nesta tarefa?Mais quantos dias ideais você precisa para completar a

tarefa?– Se o tracker descobre que um programador não vai

conseguir terminar sua tarefa, ele tenta redistribui o encargo para outro programador que esteja com alguma folga. Caso isto não seja possível, o cliente deve ser informado;

Extreme Programming (XP)

Page 21: Prof. MSc. Larissa Luz Gomes lariluz@yahoo.com.br Aula 5 Análise e Projeto de Sistemas I.

Reportando o progresso de um projeto XP– As iterações no XP terminam na data estimada. As

estórias implementadas, são apresentadas aos clientes, que decidirá se está adequada, a qual, neste caso, será considerada completa. As estórias incompletas serão consideradas para a próxima iteração.

Extreme Programming (XP)

Page 22: Prof. MSc. Larissa Luz Gomes lariluz@yahoo.com.br Aula 5 Análise e Projeto de Sistemas I.

Abordagem Tradicional x XP

Tenta prever todos os problemas e criar defesas contra eles.– Análise de Requisitos;– Arquiteturas pensadas para aceitar aquilo que vai ser

preciso no futuro;– Os erros só são um problema senão aparecer uma

mensagem que explique;– O projeto nunca depende de um elemento particular da

equipe, todos são substituíveis.

Page 23: Prof. MSc. Larissa Luz Gomes lariluz@yahoo.com.br Aula 5 Análise e Projeto de Sistemas I.

Abordagem Tradicional x XP

A abordagem XP pretende ser mais flexível; Não se baseia em prever e proteger-se contra

todas as eventualidades; Procura garantir que o sistema é facilmente

alterável para se conformizar com a nova realidade.

Page 24: Prof. MSc. Larissa Luz Gomes lariluz@yahoo.com.br Aula 5 Análise e Projeto de Sistemas I.

Exercício

Descreva as fases principais do ciclo de vida de desenvolvimento de sistemas (SDLC).

Compare e contraste as metodologias centradas em processo, as centradas em dados e as orientadas a objeto.

Descreva os principais elementos e questões do desenvolvimento em cascata.

Quais são os principais fatores na seleção de uma metodologia.

Em que se concentram as metodologias do desenvolvimento Ágil?

Page 25: Prof. MSc. Larissa Luz Gomes lariluz@yahoo.com.br Aula 5 Análise e Projeto de Sistemas I.

Dúvidas e Perguntas

Page 26: Prof. MSc. Larissa Luz Gomes lariluz@yahoo.com.br Aula 5 Análise e Projeto de Sistemas I.

Próxima Aula

Gerência de Projeto