Prévia do material em texto
‘ CÂMPUS VERANÓPOLIS ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ENGENHARIA DE SOFTWARE I IV SEMESTRE LEANDRO ANTONIO ZARDO MODELO INCREMENTAL MODELO ESPIRAL MODELO DE MONTAGEM DE COMPONENTES MODELO DE DESENVOLVIMENTO CONCORRENTE VERANÓPOLIS 2021 2 Sumário 1 INTRODUÇÃO ........................................................................................................ 3 2 MODELO INCREMENTAL .................................................................................... 4 2.1 Vantagens ........................................................................................................ 4 2.2 Desvantagens ............................................................................................... 5 3 MODELO ESPIRAL ................................................................................................ 5 3.1 Vantagens ........................................................................................................ 6 3.2 Desvantagens ................................................................................................ 6 4 MODELO MONTAGEM DE COMPONENTES ........................................................ 6 4.1 Vantagens ......................................................................................................... 7 4.2 Desvantagens ............................................................................................... 7 5 MODELO DE DESENVOLVIMENTO CONCORRENTE ........................................ 7 5.1 Vantagens ......................................................................................................... 7 5.2 Desvantagens ........................................................................................... 8 6 COMPARATIVO ....................................................................................................... 9 7 CONCLUSÂO ..........................................................................................................10 8 REFERÊNCIA BIBLIOGRÁFICAS ........................................................................11 3 1 INTRODUÇÃO Um Modelo de Processo de Software ou Paradigmas de Processo é a representação genérica dos processos de desenvolvimento. Para desenvolver softwares em equipe de forma organizada é preciso seguir uma série de práticas e passos bem definidos, conhecidos como processos de software. 4 2 MODELO INCREMENTAL O Modelo Incremental é uma melhoria do Modelo em Cascata. Este modelo trabalha com incrementos, através de pequenos pedaços de software entregues de cada vez. Os elementos aplicados de maneira iterativa, ou seja, de forma que o progresso aconteça através de sucessivos refinamentos, melhorados a cada iteração. Cada parte é desenvolvido de forma linear, como no Modelo em Cascata, após é exposto aos comentários dos clientes. Se for necessário alterar algo nessa implementação, é desenvolvido um novo incremento e o resultado é novamente apresentado. Cada aprimoramento é lançado como uma versão. Novas versões são criadas até que o sistema fique completo e adequado, para então, ser lançada a versão final. Os clientes podem estabelecer as prioridades das partes do sistema a serem desenvolvidas, especificando as mais úteis primeiro. Após o cliente estabelecer as funcionalidades necessárias, são criados os estágios (incrementos) de entrega, onde cada estágio fornece um conjunto de funcionalidades do sistema. 2.1 Vantagens • Segundo Pressman, 2016, é particularmente útil quando não há mão-de-obra disponível para uma implementação completa, dentro do prazo comercial de entrega estabelecido pelo projeto; • O cliente não precisa receber todo o sistema para poder usá-lo. Como a implementação é feita por pedaços ordenados por prioridades, o cliente pode ter acesso às partes mais importantes antes, podendo utilizá-las imediatamente; • O custo de acomodar as mudanças nos requisitos do cliente é reduzido. A quantidade de análise e documentação a ser refeita é muito menor do que o necessário no modelo em cascata. • É mais fácil obter feedback dos clientes sobre o desenvolvimento que foi feito. Os clientes podem fazer comentários sobre as demonstrações do software e ver o quanto foi implementado. Os clientes têm dificuldade em avaliar a evolução por meio de documentos de projeto de software. • É possível obter entrega e implementação rápida de um software útil ao cliente, mesmo se todas as funcionalidades não forem incluídas. Os clientes podem usar e 5 obter ganhos a partir do software inicial antes do que seria possível com um processo em cascata. 2.2 Desvantagens • Os problemas são particularmente críticos para os sistemas grandes, complexos e com vida-longa, onde várias equipes desenvolvem diferentes partes do sistema; • Sistemas de grande porte necessitam de um framework ou arquitetura estável, e as responsabilidades das diferentes equipes de trabalho do sistema precisam ser claramente definidas, respeitando essa arquitetura, mas devem ser planejadas com antecedência, e não pode ser desenvolvida de forma incremental; • Nesse modelo o progresso não é visível e os gerentes precisam de entregas regulares para mensurar o progresso. Se os sistemas forem desenvolvidos com rapidez, não será economicamente viável produzir documentos que reflitam cada uma das versões do sistema; • A estrutura do sistema tende a se degradar com a adição dos novos incrementos. Tempo e dinheiro devem ser direcionados para refatoração e melhorias do software, pois as constantes mudanças sem previsão do futuro tendem a corromper sua estrutura. A incorporação de mudanças do software torna-se cada vez mais difícil e custosa. 3 MODELO ESPIRAL Criado por Barry Boehm em 1988, o Modelo em Espiral é uma melhoria do Modelo Incremental e possui esse nome por causa de sua representação, onde cada volta no espiral percorre todas as fases do processo de software. As voltas devem ser repetidas quantas vezes forem necessárias até que o software possa ser completamente entregue. É um processo evolucionário, ou seja, adequado para softwares que precisam passar por inúmeras evoluções na medida que o desenvolvimento acontece. Esta concepção tende a criar um roteiro de atividades e etapas para que se alcance uma maturidade do processo evolutivo de desenvolvimento de sistemas complexos e obter, ao final, um produto em sua forma mais completa possível. 6 3.1 Vantagens: • Como o modelo exige a consideração dos riscos técnicos em todos os estágios de evolução, se for aplicado adequadamente, reduzirá os riscos antes que se tornem problemáticos; • As estimativas se tornam mais realistas e o tempo de implementação é reduzido; • Mais versátil para testar e lidar com mudanças; • Não faz distinção entre desenvolvimento e manutenção. 3.2 Desvantagens: • Difícil convencer os clientes que o processo de evolução é controlável, pois ele exige competência considerável na avaliação dos riscos e depende dessa competência para ser bem-sucedido; • Se um risco importante não for descoberto e gerenciado corretamente, fatalmente ocorrerão problemas; • A avaliação dos riscos exige um analista com experiência; • Aplica-se melhor a sistemas de grande porte; • Erros na avaliação de riscos podem impactar o projeto. 4 MODELO MONTAGEM DE COMPONENTES O modelo de desenvolvimento baseado em componentes compõe aplicações a partir de componentes de software previamente preparados: as classes. Esse modelo permite a criação de classes que encapsulam tanto os dados quanto os algoritmos usados para manipulá-los. Essas classes são armazenadas em uma biblioteca ou repositório de classes e podem ser reusáveis ao longo de diferentes aplicações e arquiteturas de sistemas baseados em computador.Utiliza tecnologias orientadas a objeto, pois quando projetadas e implementadas propriamente as classes orientadas a objeto são reutilizáveis em diferentes aplicações e arquiteturas de sistema. O modelo de montagem de componentes incorpora muitas das características do modelo espiral. O modelo de montagem de componentes conduz ao reuso do software a reusabilidade fornece uma série de benefícios: redução de 70% no tempo de desenvolvimento, redução de 84% no custo do projeto, índice de produtividade de 7 26.2 (normal da indústria é de 16.9), esses resultados dependem da robustez da biblioteca de componentes. 4.1 Vantagens: • Capaz de quebrar o paradigma de que menos ciclos conduziriam a menores tempos de montagem, pois apesar de ter aumentado número de ciclos. • Montagem de componentes em menor tempo dentre todos os métodos analisados. 4. 2 Desvantagens: • O tempo de processamento até a convergência para uma solução satisfatória é um parâmetro que pode oscilar. • Pode-se obter convergência tanto com poucas iterações, com a rapidez da ordem de poucos segundos, quanto em um número extremamente grande de iterações, elevando o tempo de processamento para muitos minutos, como foi o caso para alcançar os resultados. 5 MODELO DE DESENVOLVIMENTO CONCORRENTE O modelo de desenvolvimento concorrente apresenta os processos de desenvolvimento de software na forma de estados que podem ocorrer de forma concorrente e iterativa. Neste modelo concorrente uma tarefa pode se encontrar em qualquer determinado estado a qualquer momento de seu ciclo de vida. Uma tarefa pode iniciar como inativa, passar ao estágio de desenvolvimento e, caso existam alterações nos requisitos, a atividade pode ir para o estado em que aguarda modificações ou para exame do que foi executado. Caso seja necessário, uma tarefa também pode voltar ao ponto de partida, caso contrário é dada como concluída até que novas alterações sejam necessárias. 5.1 Vantagens • Pode ser aplicado a todos os tipos de desenvolvimentos do software (uso do modelo). • Fornece uma imagem precisa do estado atual de um projeto. 8 5.2 Desvantagens • Processos evolucionários em geral, não estabelecem a velocidade máxima da evolução do projeto. 6 COMPARATIVO Diferente do Modelo Incremental, que entrega partes prontas uma de cada vez, o Modelo Espiral é mais iterativo e tenta fazer sucessivos refinamentos. Outras novidades são os novos conceitos de Prototipagem e Gerenciamento de Riscos. O modelo em Espiral combina prevenção e tolerância a mudanças, assume que mudanças são um resultado de riscos de projeto e inclui atividades explícitas de gerenciamento de riscos para sua redução. O modelo de montagem de componentes compõe aplicações a partir de componentes de software previamente preparados: as classes. Esse modelo permite a criação de classes que encapsulam tanto os dados quanto os algoritmos usados para manipulá-los O modelo de desenvolvimento concorrente apresenta os processos de desenvolvimento de software na forma de estados que podem ocorrer de forma concorrente e iterativa 9 7 REFERÊNCIAS BIBLIOGRÁFICAS ENGHOLM, Hélio. Engenharia de Software na Prática. Novatec Editora. São Paulo, Brasil, 2010. PRESSMAN, Roger S. Engenharia de Software, 7ª Edição. Editora MCGrawHill: Porto Alegre, 2011. SOMMERVILLE, Ian. Engenharia de Software. 9ª Edição. Pearson Education, 2011. O modelo incremental. DIAS, Ricardo Pereira. Disponível em: <https://medium.com/contexto- delimitado/o-modelo-incremental-b41fc06cac04>. Acessado em: 21/02/2021 Modelos Incremental, espiral e de Prototipação. 06/12/2012. Disponível em:: <http://engenhariadesoftwareuesb.blogspot.com/2012/12/blog-post.html>. Acessado em: 21/02/2021. Artigo: Introdução aos Processos de Software e o Modelo Incremental e Evolucionário. Disponível em: <https://www.devmedia.com.br/introducao-aos-processos-de-software-e-o-modelo-incremental-e- evolucionario/29839>. Acessado em: 21/02/2021 O modelo em Espiral de Boehm. DIAS, Ricardo Pereira. 23/08/2019. Disponível em: <https://medium.com/contexto-delimitado/o-modelo-em-espiral-de-boehm-ed1d85b7df>. Acessado em: 21/02/2021. O modelo Espiral. LEITE, Jair C. 02/03/2007. Disponível em: <http://engenhariade software.blogspot.com/2007/03/o-modelo-espiral.html>. Acessado em: 21/02/2021. Modelo Espiral. Disponível em: <https://noisprograma.wordpress.com/2018/03/21/modelo-espiral/>. Acessado em: 21/02/2021. Metodologia Clássicas. Disponível em:: <http://metodologiasclassicas.blogspot.com/p/blog- page.html>. Acessado em: 22/02/2021. Otimização da seqüência de montagem de componentes para programação de insersoras automáticas usando o método de subida em encosta. Disponível em:: <https://fei.edu.br/sbai/SBAI2009/artigos/APLICA%C3%87%C3%95ES%20EM%20AUTOMA%C3%8 7%C3%83O/55778.pdf>. Acessado em: 22/02/2021. Componentes de software para sistemas colaborativos. GEROSA, Marco Aurélio. STEINMACHER, Igor. Disponível em: <https://sistemascolaborativos.uniriotec.br/wp- content/uploads/sites/18/2019/06/SC-cap22-componentes.pdf>. Acessado em: 22/02/2021. Modelos de Processo de Software. RAMOS, Ricardo Argenton. Disponível em: <http://www.univasf.edu.br/~ricardo.aramos/disciplinas/ES_I_2013_2/ModelosProcessos.pdf>. Acessado em: 22/02/2021. Modelos de Processos. NAKAGAWA, Elisa Yumi. Disponível em: <https://edisciplinas.usp.br/pluginfile.php/839466/mod_resource/content/1/Aula02_ModelosProcessos .pdf>. Acessado em: 22/02/2021 Desenvolvimento de Software Baseado em Componentes. MASIERO, Paulo C. Disponível em: <https://edisciplinas.usp.br/pluginfile.php/4095300/mod_resource/content/1/Aula3a- DSBC_UML_Components_1-2-3.pdf>. Acessado em: 22/02/2021. Disponível em: MINERAÇÃO DE DADOS APLICADA AO CONTROLE DE PRAZOS E PRIORIDADES EM PROJETOS DE SOFTWARE. NASCIMENTO, André Luan Chiquetto. Disponível em: <http://repositorio.roca.utfpr.edu.br/jspui/bitstream/1/7423/1/PG_COADS_2017_1_02.pdf>. Acessado em: 22/02/2021. Modelo de Desenvolvimento Concorrente. FRANCHI, Juliana Campos e SANTOS, Leonardo Ternes. Disponível em: <https://docplayer.com.br/36146484-Modelo-de-desenvolvimento-concorrente.html>. Acessado em: 22/02/2021. https://medium.com/contexto-delimitado/o-modelo-incremental-b41fc06cac04 https://medium.com/contexto-delimitado/o-modelo-incremental-b41fc06cac04 http://engenhariadesoftwareuesb.blogspot.com/2012/12/blog-post.html https://www.devmedia.com.br/introducao-aos-processos-de-software-e-o-modelo-incremental-e-evolucionario/29839 https://www.devmedia.com.br/introducao-aos-processos-de-software-e-o-modelo-incremental-e-evolucionario/29839 https://noisprograma.wordpress.com/2018/03/21/modelo-espiral/ https://fei.edu.br/sbai/SBAI2009/artigos/APLICA%C3%87%C3%95ES%20EM%20AUTOMA%C3%87%C3%83O/55778.pdf https://fei.edu.br/sbai/SBAI2009/artigos/APLICA%C3%87%C3%95ES%20EM%20AUTOMA%C3%87%C3%83O/55778.pdf https://sistemascolaborativos.uniriotec.br/wp-content/uploads/sites/18/2019/06/SC-cap22-componentes.pdf https://sistemascolaborativos.uniriotec.br/wp-content/uploads/sites/18/2019/06/SC-cap22-componentes.pdf http://www.univasf.edu.br/~ricardo.aramos/disciplinas/ES_I_2013_2/ModelosProcessos.pdf https://edisciplinas.usp.br/pluginfile.php/4095300/mod_resource/content/1/Aula3a-DSBC_UML_Components_1-2-3.pdf https://edisciplinas.usp.br/pluginfile.php/4095300/mod_resource/content/1/Aula3a-DSBC_UML_Components_1-2-3.pdf http://repositorio.roca.utfpr.edu.br/jspui/bitstream/1/7423/1/PG_COADS_2017_1_02.pdf https://docplayer.com.br/36146484-Modelo-de-desenvolvimento-concorrente.html