Análise e Projeto Prof. Erinaldo Sanches Nascimento
Objetivos Apresentar o ciclo de vida de desenvolvimento de sistemas. Descrever as metodologias de desenvolvimento de sistemas. 2
Introdução Programação Engenharia de software É uma parte do desenvolvimento de software, mas isso não é tudo. 3
Introdução Programação Engenharia de software É uma parte do desenvolvimento de software, mas isso não é tudo. 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. 4
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 software é a parte da engenharia de software preocupada com a criação do software real. Inclui 5 análise, projeto e liberação de versão.
Introdução Desenvolvimento de software é difícil. Desenvolver software eficiente, corretamente e bem é difícil. É uma habilidade que requer muita prática. 6
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? 7
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. 8
Ciclo de Vida do 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 9
Desenvolvimento de Sistemas 10
Uma metodologia é 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. 11
Categorizar metodologias: Metodologia centrada no processo Metodologia centrada nos dados Metodologias orientadas a objetos 12
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. 13
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 14
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. 15
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. 16
17
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. 18
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. 19
20
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. 21
22
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. 23
24
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. 25
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. 26
27
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. 28
29
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. 30
31
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. 32
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? 33
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? 34
Conclusão Ciclo de vida de desenvolvimento de sistemas desenvolvimento de sistemas 35