análise e projeto prof. erinaldo sanches nascimento · características e qualidade. metodologias...
TRANSCRIPT
Análise e Projeto
Prof. Erinaldo Sanches Nascimento
2
Objetivos
● Apresentar o ciclo de vida de desenvolvimento de sistemas.
● Descrever as metodologias de desenvolvimento de sistemas.
3
Introdução
● Programação
● Engenharia de software
É uma parte do desenvolvimento de software, mas isso não é tudo.
4
Introdução● Programação
● Engenharia de software
Desenvolvimento de software é o processo de tomar um conjunto de requisitos de um usuário, analisá-los, projetar uma solução para o problema, e então implementar aquela solução no computador.
É uma parte do desenvolvimento de software, mas isso não é tudo.
5
Introdução● Programação:
– Projeto e implementação
● Engenharia de software:– Processo
– Gerenciamento da criação de um programa de computador
– Cronograma
– Estimativa
– Gerenciamento de pessoas
O desenvolvimento de softwaredesenvolvimento de software é a parte da engenharia de software preocupada com a criação do software real. Inclui análise, projeto e liberação de versão.
6
Introdução
● Desenvolvimento de software é difícil.● Desenvolver software eficiente, corretamente e
bem é difícil.● É uma habilidade que requer muita prática.
7
Introdução● Desenvolvimento de software é difícil.● Desenvolver software eficiente, corretamente e
bem é difícil.● É uma habilidade que requer muita prática.
● Por que esse sistema falhou?● Por que uma empresa gastou tempo e dinheiro em
um projeto e depois o cancelou?● O que poderia ter sido feito para evitar isso?
8
Introdução● Como desenvolver software?
– Uma equipe pequena e bem integrada;
– Boa comunicação entre os membros da equipe;
– Boa comunicação entre a equipe e o cliente;
– Um processo que todos sigam;
– A habilidade em ser flexível a respeito de um determinado processo;
– Um planejamento que todos sigam;
– Saber onde você está em todos os tempos (cronograma);
– As ferramentas certas e as práticas corretas para esse projeto.
9
Ciclo de Vida do Desenvolvimento de Sistemas
1)Concepção
2)Coleta de requisitos, exploração e modelagem
3)Projeto
4)Codificação e depuração
5)Teste
6)Liberação
7)Manutenção e evolução do software
8)Aposentadoria
10
Metodologias de Desenvolvimento de Sistemas
11
Metodologias de Desenvolvimento de Sistemas
● Uma metodologiametodologia é uma abordagem formalizada para a implementação do ciclo de vida de desenvolvimento de sistemas.– Padrões formais utilizados em agências
governamentais.
– Desenvolvido por empresas de consultoria para vender aos seus clientes.
– Metodologias aprimoradas ao longo dos anos por muitas organizações.
12
Metodologias de Desenvolvimento de Sistemas
● Categorizar metodologias:– Metodologia centrada no processo
– Metodologia centrada nos dados
– Metodologias orientadas a objetos
13
Metodologias de Desenvolvimento de Sistemas
● Codifica e corrige– Não é propriamente um modelo.
– Remete aos primórdios da computação.
– Os programadores passavam rapidamente da fase de planejamento para as fases de construção e execução.
– Não há formalidade no levantamento dos requisitos, nem documentação.
– Sem garantia de qualidade ou formalidade de teste.
14
Metodologias de Desenvolvimento de Sistemas
● Projeto estruturado– Desenvolvimento em cascata
– Desenvolvimento paralelo
● Desenvolvimento rápido de aplicações (RAD)– Desenvolvimento em fases
– Prototipagem
– Prototipagem descartável
● Desenvolvimento ágil– Programação extrema (XP)
– Scrum
15
Metodologias de Desenvolvimento de Sistemas
● Desenvolvimento em Cascata– Foi criada em 1970 por Winston Royce;
– Requer documentação detalhada de cada estágio;
– É um modelo de processo orientado a plano.
16
Metodologias de Desenvolvimento de Sistemas
● Desenvolvimento Paralelo– Tenta resolver o problema de longos atrasos entre a
fase de análise e a entrega do sistema.
– Executa um projeto geral para todo o sistema e então divide o projeto em uma série de subprojetos distintos que podem ser projetados e implementados em paralelo.
– Quando todos os subprojetos estiverem concluídos, há uma integração final das peças separadas, e o sistema é entregue.
17
Metodologias de Desenvolvimento de Sistemas
18
Metodologias de Desenvolvimento de Sistemas
● Desenvolvimento Rápido de Aplicações (RAD)– Surgiu nos anos 1990.
– Tenta ajustar o ciclo de vida do desenvolvimento de sistemas de maneira a entregar ao usuário parte do sistema desenvolvido mais rapidamente.
– O usuário pode entender melhor e sistema e sugerir revisões.
– Recomenda o uso de técnicas e ferramentas computacionais especiais: JAD, ferramentas CASE, linguagens como Visual Basic, etc.
– Categorias da abordagem RAD: centrada nos processos, centrada nos dados e orientada a objetos.
19
Metodologias de Desenvolvimento de Sistemas
● Desenvolvimento em Fases– Quebra um sistema global em uma série de versões.
– Os requisitos mais importantes e fundamentais são empacotados na primeira versão do sistema.
– Uma vez que a versão 1 esteja implementada começa a versão 2; e assim para as próximas versões até que o sistema esteja completo.
20
Metodologias de Desenvolvimento de Sistemas
21
● Prototipagem– As fases de análise, projeto e implementação são
executadas repetidamente em um ciclo até que o sistema esteja completo.
– O primeiro protótipo fornece o mínimo de recursos.
– Os comentários dos usuários e patrocinadores são usados para reanalisar, reprojetar e reimplementar.
– Esse processo continua até que os analistas, usuários e patrocinadores concordem que o protótipo fornece funcionalidades suficientes para ser instalado e utilizado na organização.
Metodologias de Desenvolvimento de Sistemas
22
Metodologias de Desenvolvimento de Sistemas
23
● Prototipagem Descartável– Semelhante à metodologia baseada em protótipos.
– A fase de análise é praticamente completa.
– Por meio da análise constrói-se um protótipo do projeto.
– Os protótipos são utilizados para diminuir os riscos associados ao sistema.
– Nessa metodologia os protótipos evoluem para o sistema final.
Metodologias de Desenvolvimento de Sistemas
24
Metodologias de Desenvolvimento de Sistemas
25
● Desenvolvimento Ágil– Teve seu início em meados dos anos 1990.
– Metodologia centrada na programação.
– Elimina grande parte das tarefas de modelagem e documentação.
– Enfatiza o desenvolvimento de aplicativos simples e iterativos.
– A abordagem de desenvolvimento ágil é normalmente usada em conjunto com metodologias orientadas a objetos.
Metodologias de Desenvolvimento de Sistemas
26
● Programação Extrema (XP)– Foi criada por Kent Beck e Ward Cunningham (1995).
– É uma maneira leve, eficiente, de baixo risco, flexível, previsível e científica de desenvolver software.
– Se baseia em quatro ideias fundamentais: ● Envolvimento pesado do cliente.● Teste de unidade contínuo.● Programação pareada.● Ciclos curtos de iteração e lançamentos frequentes.
– Minimiza riscos, controlando custo, tempo, características e qualidade.
Metodologias de Desenvolvimento de Sistemas
27
Metodologias de Desenvolvimento de Sistemas
28
● Scrum– Deriva de um nome do rugby.
– A ideia surgiu a partir de um artigo de Takeuchi e Nonaka (1986).
– Utiliza equipes com não mais de 10 desenvolvedores.
– É caracterizado por uma iteração entre uma e quatro semanas (sprint). Sempre proporciona um produto utilizável.
– Projetos scrum tem reuniões diárias de 15 a 30 minutos de duração.
Metodologias de Desenvolvimento de Sistemas
29
Metodologias de Desenvolvimento de Sistemas
30
● Processo Unificado– É uma metodologia específica que mapeia quando e
como utilizar as várias técnicas UML para análise e projeto orientado a objetos.
– UML fornece suporte estrutural para desenvolver a estrutura e comportamento de um sistema de informação.
– Processo unificado fornece o suporte comportamental.
– O processo unificado é orientado a casos de uso, centrado na arquitetura, iterativo e incremental.
Metodologias de Desenvolvimento de Sistemas
31
Metodologias de Desenvolvimento de Sistemas
32
Exercício:Exercício:Suponha que você é um analista na empresa XPTO, uma grande empresa de consultoria com escritórios em todo o mundo. A empresa quer construir um novo sistema de gestão de conhecimento que pode identificar e rastrear a expertise dos consultores individuais em todo o mundo com base na sua educação e os vários projetos de consultoria em que eles trabalharam.Assuma que se trata de uma ideia nova que nunca antes foi tentada na XPTO ou em qualquer outro lugar. A XPTO tem uma rede internacional, mas os escritórios em cada país podem usar software e hardware um pouco diferente. A gerência da XPTO quer o sistema instalado e funcionando dentro de um ano.
Metodologias de Desenvolvimento de Sistemas
33
Exercício:Exercício:
Você pretende desenvolver um software seguindo os estágios do modelo em cascata, em razão de ponderações que faz em relação a outros modelos quanto à solução de um problema que se apresenta. Desta forma como você definiria em seu cronograma as etapas do ciclo de vida de software?
Metodologias de Desenvolvimento de Sistemas
34
Exercícios:Exercícios:No processo unificado, cinco workflows acompanham o conjunto das fases de desenvolvimento de software. Cada workflow é um conjunto de atividades executadas por vários membros do projeto. Considerando o desenvolvimento de um sistema integrado de gestão (ERP), que workflow descreve o empacotamento em componentes de software dos elementos do modelo de projeto – tais como arquivo de código-fonte, biblioteca de ligação dinâmica e componentes executáveis ?
Metodologias de Desenvolvimento de Sistemas
35
Conclusão
● Ciclo de vida de desenvolvimento de sistemas● Metodologias de desenvolvimento de sistemas