Baixe o app para aproveitar ainda mais
Prévia do material em texto
Atividade Prática Supervisionada - APS Engenharia de software Luiz Alberto da Silva Melin Para-Assú Maurício Ludovico Guilherme de Freitas Raio Matheus Moreira Lima Ciclo Iterativos O ciclo de vida de um projeto que usa desenvolvimento iterativo contém várias iterações. A iteração combina um conjunto quase contínuo de tarefas em proporções quase diferentes em modelagem de negócios, requisitos, análise e design, implementação, teste e implementação, dependendo de sua posição no ciclo de desenvolvimento. As iterações nas fases inicial e de design enfocam o gerenciamento, requisitos e atividades de design. A iteração durante a fase de construção se concentra no projeto, implementação e teste. As iterações da fase de transição se concentram em testes e implementação. As iterações devem ser gerenciadas em um estilo de frame de tempo, ou seja, o plano de iteração deve ser considerado fixo, e o escopo do conteúdo da iteração deve ser gerenciado ativamente para estar em conformidade com este plano. Ciclo Incrementais O processo incremental refere-se ao processo de construção / distribuição de software / produtos. Cada bloco ou incremento representa um subconjunto da função completa. O incremento pode ser pequeno ou grande, por exemplo, ele só pode mudar de uma tela de relatório simples para um conjunto de telas de gerenciamento de dados altamente flexível. Cada incremento foi completamente codificado e testado, e geralmente se espera que este trabalho possa tirar as conclusões mais completas. Os métodos ágeis são iterativos e incrementais. São iterativos, pois o trabalho concluído é sempre aprimorado nos ciclos subsequentes. Eles também são incrementais porque o trabalho planejado é entregue em partes, que foram adicionadas a todo o projeto. Métodos agile que são iterativos ● Scrum; ● Scaled Agile Framework (SAFe); ● Feature Driven-Development (FDD); ● Test Driven Development (TDD); ● eXtreme Programming (XP); ● Entre outros. Métodos agile que são incrementais ● Dynamic Systems Development Method (DSDM); ● Microsoft Solutions Framework (MSF); ● Adaptative Software Development (ASD); ● Entre outras. Métodos tradicionais que são iterativos ● Modelos básicos que requerem um estudo mais amplo e demoram mais, porém vão sendo desenvolvidos junto com a opinião do consumidor. Métodos tradicionais que são incrementais ● Modelos básicos que requerem um estudo mais amplo e demoram mais, são sendo lançados aos poucos sempre que tiver atualização Quais as empresas usam que usam modelos de desenvolvimento agile ● Zara; ● Appe; ● FaceBook; ● PayPal; ● Globo; ● Yahoo; ● Locaweb; ● Google; ● Entre outros. Quais as empresas usam que usam modelos de desenvolvimento Interativos ● Rumo; ● Pormade; ● SulAmérica; ● Renault; ● Gazeta do Povo; ● Entre outros. Agile Desenvolvimento Ágil de Software também conhecido como Método ágil estuda um conjunto de comportamentos, processos, práticas ferramentas utilizados para a criação de produtos e sua subsequente disponibilização para os usuários finais. O Manifesto Ágil é uma declaração de princípios que fundamentam o desenvolvimento ágil de software, o mesmos nos traz 12 princípios que são : ● Garantir a satisfação do cliente, entregando rápida e continuamente software funcional; ● Até mesmo mudanças tardias de escopo no projeto são bem-vindas. ● Software funcional é entregue frequentemente (semanal ou mensal - o menor intervalo possível); ● Cooperação constante entre as pessoas que entendem do 'negócio' e os desenvolvedores; ● Projetos surgem por meio de indivíduos motivados, devendo existir uma relação de confiança. ● A melhor forma de transmissão de informação entre desenvolvedores é através da conversa 'cara a cara' ● Software funcional é a principal medida de progresso do projeto; ● Novos recursos de software devem ser entregues constantemente. Clientes e desenvolvedores devem manter um ritmo até a conclusão do projeto. ● Design do software deve prezar pela excelência técnica; ● Simplicidade – a arte de maximizar a quantidade de trabalho que não é feito – é essencial; ● As melhores arquiteturas, requisitos e designs emergem de equipes auto-organizáveis. ● Em intervalos regulares, a equipe reflete sobre como se tornar mais eficaz e então refina e ajusta seu comportamento. Os métodos ágeis enfatizam comunicações em tempo real, preferencialmente cara a cara, a documentos escritos. A maioria dos componentes de um grupo ágil deve estar agrupada em uma sala. Isso inclui todas as pessoas necessárias para terminar o software: no mínimo, os programadores e seus clientes (clientes são as pessoas que definem o produto, eles podem ser os gerentes, analistas de negócio, ou realmente os clientes). Nesta sala devem também se encontrar os testadores, projetistas de iteração, redatores técnicos e gerentes. Métodos ágeis também enfatizam o software funcional como uma medida primária de progresso. Combinado com a comunicação cara-a-cara, métodos ágeis produzem pouca documentação em relação a outros métodos, sendo este um dos pontos que podem ser considerados negativos, mas reduzindo o tempo de produção de documentação mais útil. Comparativo A metodologia tradicional tem etapas bem definidas sendo o planejamento do projeto, uma estimativa em termos de prazo e orçamento, a execução e entrega no final. Por exemplo, em um desenvolvimento de software financeiro, teríamos o seguinte fluxo: ● Planejamento do software (como ele ficará no final) ● Planejamento das atividades que serão necessárias (programação, design, etc) ● Definição de prazos e custos ● Execução ● Testes ● Implantação A metodologia ágil apesar do nome, a palavra ágil aqui não significa agilidade e sim o poder de “quebrar” o projeto em partes menores. Ao contrário da metodologia tradicional que você faz apenas uma entrega já com o projeto final, aqui você faz entregas constantemente até entregar todo o projeto. A preocupação com custo, qualidade e prazos são as mesmas da metodologia tradicional, porém você consegue controlar e gerenciar as mudanças que provavelmente irão aparecer no decorrer do projeto. Na metodologia ágil o foco principal é a entrega de valor ao cliente, por isso é priorizado a entrega à documentação, por exemplo. Mas isso não quer dizer que não é documentado, não planejado, assim como na tradicional. Na metodologia ágil também existem esses aspectos, mas de maneiras diferentes. Por exemplo, o planejamento da metodologia ágil é de forma iterativa e incremental enquanto a da tradicional planeja com muita antecedência como será cada etapa do projeto. Dentro desta metodologia o mais utilizado e que provavelmente você já ouviu falar é o Scrum. Cascata O modelo de cascata é um modelo sequencial no qual o processo é visto como um fluir constante para frente (como uma cascata). O modelo em cascata apresenta uma grande vantagem quando o escopo do trabalho é claramente definido, como licitações e serviços específicos para órgãos públicos, neste cenário o modelo em cascata leva vantagem. Entretanto percebe-se a fragilidade do modelo nos dias dehoje em virtude da pouca ou quase nenhuma flexibilidade do modelo. Para seguir um modelo em cascata, o progresso de uma fase para a próxima se dá de uma forma puramente sequencial. Espiral O modelo de espiral é um modelo de voltas onde cada volta no espiral percorre todas as fases do processo, as voltas devem ser repetidas quantas vezes forem necessárias até que o projeto possa ser finalizado. Se 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. Todas as vantagens podem se tornar desvantagens caso não for aplicado adequadamente, não tendo uma avaliação dos riscos de um analista com experiência, se um risco importante não for descoberto e gerenciado corretamente, fatalmente ocorrerão problema RUP O modelo RUP ou IRUP (Após ser adquirido pela IBM) utiliza uma abordagem de orientação a objetos em sua concepção e é projetado e documentado utilizando a notação UML para ilustrar os processos em ação. Contém características como iterativo (quando ocorre processo com tentativas sucessivas) e incremental. Utilizando o RUP, é possível obter: Qualidade de software, produtividade no desenvolvimento, operação e manutenção de software, controle sobre desenvolvimento dentro de custos, prazos e níveis de qualidade desejados, estimativa de prazos e custos com maior precisão. O RUP utiliza pequenos ciclos de projeto (mini-projetos) que correspondem a uma iteração e que resultam em um incremento no software. Iterações referem-se a passos e incrementos a evolução do produto, cada ciclo de vida possui 4 fases: Concepção, elaboração, construção e transição. Bibliografia https://pt.wikipedia.org/wiki/Modelo_em_cascata https://medium.com/contexto-delimitado/o-modelo-em-espiral-de-boehm-ed1d85b7df https://www.treinaweb.com.br/blog/o-que-e-rup-rational-unified-process/ http://walderson.com/IBM/RUP7/LargeProjects/core.base_rup/guidances/supporting materials/develop_iteratively_1F6AE780.html https://wiki.sj.ifsc.edu.br/index.php/Ciclo_de_Vida_Iterativo_e_Incremental https://www.culturaagil.com.br/o-que-e-safe/ https://www.euax.com.br/2019/04/metodologias-ageis/ https://administradores.com.br/artigos/metodologias-ageis-ou-tradicionais-qual-e-a- melhor-para-meu-projeto https://www.jornalcontabil.com.br/o-modelo-tradicional-de-desenvolvimento-de-empr esas-nao-funciona-mais/ https://www.treinaweb.com.br/blog/metodologias-agil-x-tradicional-quais-as-diferenc as/ https://pt.wikipedia.org/wiki/Desenvolvimento_%C3%A1gil_de_software https://pt.wikipedia.org/wiki/Manifesto_%C3%81gil https://pt.wikipedia.org/wiki/Modelo_em_cascata https://medium.com/contexto-delimitado/o-modelo-em-espiral-de-boehm-ed1d85b7df https://www.treinaweb.com.br/blog/o-que-e-rup-rational-unified-process/ http://walderson.com/IBM/RUP7/LargeProjects/core.base_rup/guidances/supportingmaterials/develop_iteratively_1F6AE780.html http://walderson.com/IBM/RUP7/LargeProjects/core.base_rup/guidances/supportingmaterials/develop_iteratively_1F6AE780.html https://wiki.sj.ifsc.edu.br/index.php/Ciclo_de_Vida_Iterativo_e_Incremental https://www.culturaagil.com.br/o-que-e-safe/ https://www.euax.com.br/2019/04/metodologias-ageis/ https://administradores.com.br/artigos/metodologias-ageis-ou-tradicionais-qual-e-a-melhor-para-meu-projeto https://administradores.com.br/artigos/metodologias-ageis-ou-tradicionais-qual-e-a-melhor-para-meu-projeto https://www.jornalcontabil.com.br/o-modelo-tradicional-de-desenvolvimento-de-empresas-nao-funciona-mais/ https://www.jornalcontabil.com.br/o-modelo-tradicional-de-desenvolvimento-de-empresas-nao-funciona-mais/ https://www.treinaweb.com.br/blog/metodologias-agil-x-tradicional-quais-as-diferencas/ https://www.treinaweb.com.br/blog/metodologias-agil-x-tradicional-quais-as-diferencas/ https://pt.wikipedia.org/wiki/Desenvolvimento_%C3%A1gil_de_software https://pt.wikipedia.org/wiki/Manifesto_%C3%81gil
Compartilhar