Aula 2 - Modelos de Processo - cascata, iterativo e incremental e ágil Análise de Sistemas Prof. Filipe Arantes Fernandes filipe.arantes@ifsudestemg.edu.br
2
Vale a pena ver de novo O que é um processo? O que é um processo de desenvolvimento de software? Quais são as principais atividades durante o processo de desenvolvimento de software? 3
Vale a pena ver de novo O que é um processo? Processo nada mais é que uma série de ações, ou passos, que são realizados para se alcançar determinados objetivos Willian Edwards Deming O que é um processo de desenvolvimento de software? Quais são as principais atividades durante o processo de desenvolvimento de software? 4
Vale a pena ver de novo O que é um processo? O que é um processo de desenvolvimento de software? Um processo de software é um conjunto de atividades relacionadas que levam à produção de um produto de software. (PRESSMAN, 2011) Quais são as principais atividades durante o processo de desenvolvimento de software? 5
Vale a pena ver de novo O que é um processo? O que é um processo de desenvolvimento de software? Quais são as principais atividades durante o processo de desenvolvimento de software? Levantamento de requisitos; Análise; Projeto (design); Implementação; Testes; Implantação; Evolução. 6
Outline Modelos de Processo: Definição; O modelo em cascata. 7
Definição de Modelo de Processo 8
9
Significado de Modelo: Imagem, desenho ou objeto que serve para ser imitado (desenhando ou esculpindo) (DICIONÁRIO AURÉLIO, 2017) 10
O que é um Modelo de Processo? Um modelo de processo é uma representação simplificada de um processo de software; Modelos são abstrações que podem ser usadas para explicar diferentes abordagens de desenvolvimento de software. 11
O que é um Modelo de Processo? Um modelo de processo é uma representação simplificada de um processo de software; Modelos são abstrações que podem ser usadas para explicar diferentes abordagens de desenvolvimento de software. Alguns tipos de modelos: Cascata; Iterativo e incremental; Desenvolvimento ágil; Dentre outros. 12
O modelo em cascata http://bit.ly/2vy8vrl 13
O modelo em cascata Primeiro modelo de processo de desenvolvimento de software a ser publicado foi derivado de processos mais gerais da engenharia de sistemas; Por causa do encadeamento entre uma fase e outra, esse modelo é conhecido como Modelo em Cascata, ou Ciclo de Vida de Software; O modelo em cascata é um exemplo de um processo dirigido a planos, ou seja, primeiro deve-se planejar e programar todas as atividades do processo antes de começar a trabalhar nelas. 14
O modelo em cascata http://bit.ly/2f0ma1h 15
O modelo em cascata 1. Análise e definição de requisitos: 2. Projeto de sistema e software: 3. Implementação e teste unitário: 4. Integração e teste de sistema: 5. Operação e manutenção: 16
O modelo em cascata 1. Análise e definição de requisitos: Os serviços, restrições e metas do sistema são estabelecidos por meio de consulta aos usuários. Em seguida, são definidos detalhes e funcionam como uma especificação do sistema. 2. Projeto de sistema e software: 3. Implementação e teste unitário: 4. Integração e teste de sistema: 5. Operação e manutenção: 17
O modelo em cascata 1. Análise e definição de requisitos: 2. Projeto de sistema e software: O processo de projeto de sistemas aloca os requisitos tanto para sistemas de hardware como para sistemas de software, por meio da definição de uma arquitetura geral do sistema. O projeto de software envolve identificação e descrição das abstrações fundamentais do sistema de software e seus relacionamentos. 3. Implementação e teste unitário: 4. Integração e teste de sistema: 5. Operação e manutenção: 18
O modelo em cascata 1. Análise e definição de requisitos: 2. Projeto de sistema e software: 3. Implementação e teste unitário: Durante este estágio, o projeto do software é desenvolvido como um conjunto de programas ou unidades de programa. O teste unitário envolve a verificação de que cada unidade atenda a sua especificação. 4. Integração e teste de sistema: 5. Operação e manutenção: 19
O modelo em cascata 1. Análise e definição de requisitos: 2. Projeto de sistema e software: 3. Implementação e teste unitário: 4. Integração e teste de sistema: As unidades individuais do programa ou programas são integradas e testadas como um sistema completo para assegurar que os requisitos do software tenham sido atendidos. Após o teste, o sistema de software é entregue ao cliente. 5. Operação e manutenção: 20
O modelo em cascata 1. Análise e definição de requisitos: 2. Projeto de sistema e software: 3. Implementação e teste unitário: 4. Integração e teste de sistema: 5. Operação e manutenção: Normalmente (embora não necessariamente), essa fase é a mais longa do ciclo de vida. O sistema é instalado e colocado em uso. A manutenção envolve a correção de erros que não foram descobertos em estágios iniciais do ciclo de vida, com melhoria da implementação das unidades do sistema e ampliação de seus serviços em resposta às descobertas de novos requisitos. 21
O modelo em cascata na prática 22
O modelo em cascata 1. Análise e definição de requisitos: 2. Projeto de sistema e software: 3. Implementação e teste unitário: 4. Integração e teste de sistema: 5. Operação e manutenção: 23
1. Análise e definição de requisitos Contexto: José está encarregado de enfeitar sua enorme casa para o Natal. Devido ao tamanho da casa, é necessário antecipar os preparativos. Considerando a sustentabilidade, José irá confeccionar grande parte dos enfeites reutilizando papéis. Objetivo: O principal objetivo é criar uma estrela de papel. Mais informações (é necessário?): 24
2. Projeto de sistema e software Desenhar o formato da estrela. 25
3. Implementação e teste unitário Produzir a estrela e testar se ela corresponde aos requisitos básicos. 26
4. Integração e teste de sistema A integração de outros componentes é necessária? Se sim, deve ser integrado e testado. 27
5. Operação e manutenção O produto deve ser entregue e usado pelo cliente. 28
http://bit.ly/2ucsuvn 29
5. Operação e manutenção O produto deve ser entregue e usado pelo cliente. O cliente pode indicar possíveis erros e falhas do produto produzido. 30
#1 Correção José não consultou a sua esposa e ela determinou que a estrela tenha exatamente seis pontas! 31
#2 Correção A estrela deve ter aproximadamente o tamanho entre 12 e 15 cm! 32
#3 Correção A estrela deve ter um efeito 3D! 33
Considerações finais Em princípio, o resultado de cada estágio é a aprovação de um ou mais documentos ( assinados ); O estágio seguinte não deve ser iniciado até que a fase anterior seja concluída; Na prática, esses estágios se sobrepõem e alimentam uns aos outros de informações; Durante o projeto, os problemas como os requisitos são identificados; durante a codificação, problemas de projeto são encontrados e assim por diante; 34
Considerações finais O processo de software não é um modelo linear simples, mas envolve o feedback de uma fase para outra; Assim, os documentos produzidos em cada fase podem ser modificados para refletirem as alterações feitas em cada um deles; 35
Algumas desvantagens Por causa dos custos de produção e aprovação de documentos, as iterações podem ser dispendiosas e envolver significativo retrabalho; Assim, após um pequeno número de iterações, é normal se congelarem partes do desenvolvimento, como a especificação, e dar-se continuidade aos estágios posteriores de desenvolvimento; A solução dos problemas fica para mais tarde, ignorada ou programada, quando possível; O congelamento prematuro dos requisitos pode significar que o sistema não fará o que o usuário quer; Também pode levar a sistemas mal estruturados, quando os problemas de projeto são contornados por artifícios de implementação. 36
O estágio final do ciclo de vida Nesta fase, o software é colocado em uso; Erros e omissões nos requisitos originais do software são descobertos; Os erros de programa e projeto aparecem e são identificadas novas necessidades funcionais; O sistema deve evoluir para permanecer útil; Fazer alterações (manutenção de software) pode implicar repetição de estágios anteriores do processo. 37
Conclusões Em princípio, o modelo em cascata deve ser usado apenas quando os requisitos são bem compreendidos e pouco provavelmente venham a ser radicalmente alterados durante o desenvolvimento do sistema; No entanto, este modelo é usado para criar outas variações, tal como o desenvolvimento formal. O método B, é um tipo de desenvolvimento formal, no qual é adotado para requisitos rigorosos de segurança, confiabilidade e proteção; O formalismo se dá na transformação matemática dos requisitos. 38
Leitura recomendada SOMMERVILLE, 2017: Páginas 18 a 22. 39
Referências DICIONÁRIO AURÉLIO. Acessado em 31 de julho de 2017. Disponível em https://dicionariodoaurelio.com/modelo. 2017. SOMMERVILLE. Engenharia de Software, São Paulo: Addison-Wesley, 9 ed., 2011. ISBN-10: 8579361087 ISBN-13: 9788579361081. 40