e aí os modelos cascata e espiral o olá pessoal sejam bem vindos a nossa sétima aula e agora nós vamos abordar um outros dois modelos não os modelos cascata e espiral nosso modelos para o processo de soft também com uma abordagem um pouco diferente do processo unificado que nós acabamos de ver né então o objetivo dessa aula é nós podemos compartilhar as características das fases os artefatos comentar um pouquinho das diferenças entre estes dois modelos né para apresentar algumas dificuldades também que cada modelo apresenta em colocar e apresentar algumas alguns exemplos reais né de utilização
tão como conteúdo a gente vai falar da característica de cada um desses modelos tanto cascata quanto espiral nós vamos falar das fases né então o modelo cascata ele tá preocupado em fases sequenciais um modelo espiral um pouco diferente a gente tem as fases da oi gente subdivide né o modelo o modelo espiral e regiões na que nós vamos falar em detalhes um pouco mais à frente e como nós podemos compor os artefatos em cada fase o cada região dependendo do modelo que nós estaremos utilizando ou praticando dentro nossa organização as características tá começando com as
características eu vou falar um pouquinho das principais características e também de alguns desafios que cada um desses modelos traz para nós para nós utilização por nosso dia a dia para a organização como um todo é o modelo cascata em um modelo muito clássico muito antigo não é um dos modelos mais antigos utilizados na foi amplamente hoje ainda é muito utilizado ali é um modelo que serviu de base você viu de não de dia estrutura né mas forneceu várias a processos várias atividades para outros modelos então por ser um modelo muito antigo ele acabou servindo de
base para alguns outros modelos né ele tem uma estrutura como eu falei clássica e tem uma sistemática uma forma de trabalhar muito sequence e nem tão diferentemente do que a gente falou recentemente no processo unificado onde você tinha um processo incremental processo de interação aqui nesse modelo cascata nós não temos condições de aplicar essa essa separação essa subdivisão em pedaços menores aqui nós estamos falando de um processo sequencial ou seja eu preciso terminar uma atividade é preciso terminar um desenho uma análise para que depois eu possa continuar na minha construção no meu desenvolvimento então essa
essa é uma uma forma que ele trabalha né que acabou sendo exemplificado apresentada não é maioria das bibliografias como uma fase ou seja uma fazer terminando e começando a outra uma embaixo da outra exatamente por essa apresentação né de uma fase terminando e começando a outra uma abaixo da outra que e eu esse apelido recebeu esse nome de cascata ou alto vai perfoll em inglês aí eu seja parece uma cascata caindo com fome e você vai entregando o cada uma dessas fases quais são as dificuldades né desse modelo o que nós encontramos o que durante
o longo do tempo ele foi apresentando dificuldades é dificilmente a implementação ou desenvolvimento de um produto de software ela segue uma sequência né você não não tem como seguir um fluxo sequencial para todas as vezes você precisa fazer uma correção ou mandar aplicação uma mudança e esse modelo pela sua característica não permite essas interações no meio do processo né ele precisa que a maioria das definições seja feita no início porque todas as fases posteriores dependem da conclusão das fases anterior então eu não tenho como pedaço serem se definindo ao longo do desenvolvimento eu tenho que
definir todo todo o meu requerimento todos os meus requisitos desde o princípio né e por outro lado como eu vou desenvolvendo sequencialmente fase por fase eu só consigo testar o produto aqui no final eu não consigo fazer validações intermediárias para que eu possa tentar e descobrir tentar identificar algum problema antes de eu terminar todo o processo o modelo espiral ele também possui fases mas ele ele é um pouquinho diferente né ele trabalha através de uma de uma forma espiral né e dentro desse desse modelo ele tem um pouquinho do modelo cascata mas ele também já
aplica algumas atividades ou possibilidades de interação ou seja eu consigo começar a quebrar né o meu produto software em pedaço para que cada volta cada fase que o giro dentro da do conceito e eu possa trabalhar com algumas partes do software não seja obrigado como no cascarta trabalhar de forma sequencial então é tem uma forte foco em gerenciamento de risco ou seja esse modelo ele trabalha preocupado em ingressar em eliminar em tratar todos os riscos para que não tenha problemas com o produto final com a qualidade do produto final né e eu não tenho um
como mais ou menos com o processo unificado cada interação pode estar em momentos diferentes as frases ou seja eu não tenho dentro da espiral na eu não tenho obrigação de que todas as etapas todas as interações estejam na mesma fase então ele é um pouco similar a interatividade do processo unificado em diferente né do modelo cascata que nós acabamos de comentar e pela complexidade desse modelo né apesar de ele estar estruturado aí um pouco com modelo cascata um pouco com a parte de interatividade ele é complexo porque você precisa trabalhar nessa estrutura espiral e por
causa dessa complexidade normalmente ele é utilizado mais in projetos mas em produtos né de larga escala ou seja consigo porque ele tem uma complexidade uma hora eu tenho uma ou busters maior e por causa disso eu aplico na em estruturas em projetos maiores da mesma forma eu tenho suas dificuldades né então por ser um modelo mais complexo e exige né que as pessoas que trabalhem com esse modelo eles tenham maior conhecimento eles tenham maiores habilidades ou seja tem que ter mais experiência nesse profissionais para utilizar esse modelo a gente comentou ele aplicado em mim em
larga escala nem produtos de larga escala então em uma um modelo pela pela sua estrutura que aplicada em pequenos softwares em softwares menores em produtos menores então ele não é um modelo hoje amplamente utilizado se nós compararmos por exemplo como um processo unificado e com o modelo cascata aqui ele é amplamente utilizado no mercado não é o modelo espiral ele tem um ambiente ele tem uma estrutura um pouco mais restritiva então isso é uma dificuldade desse modelo que acaba atrapalhando até na disseminação do modelo ou não a larga utilização desse modelo que fazes eu vou
falar um pouquinho das fases nenhum um pouco das fases em relação ao modelo cascata e nós vamos trocar um pouquinho o nome no caso do modelo espiral para regiões né então existem fases no modelo espiral uma essas fases estão sendo executadas dentro da espiral e nós dividimos em regiões para que nós possamos focar em determinadas regiões com determinados tópicos específicos e atividades específicas que vai nos interessar né determinadas etapas daquele processo tão as fases do modelo cascata dependendo do autor dependendo da bibliografia que vocês consultarem vocês verão fases ou modelo cascata com mais fases ou
menos fases né então vocês vão encontrar mais detalhados menos detalhados mas de uma maneira geral e essas cinco fases que nós vamos apresentar durante essa aula são as fases básicas são as fases base para que vocês possam desenvolver possam utilizar o modelo cascata e atender todos os requisitos necessários para que no final né toda a composição desse modelo seja aproveitado e assim vocês garantam ou produto de software não é o a qualidade nesse produto então a primeira a primeira fase desse modelo é a definição dos requisitos né então é nesse momento que a gente vai
estar entendendo o que os usuários o que nosso cliente precisa é nesse momento que nós entendermos as necessidades de negócio é nesse momento que nós entendemos todas as funções todos os processamentos que são requeridos para esse produto de software para que nós possamos a trilhar de detalhar né posteriormente para que nós possamos transformar todos esses quesitos em soluções em possibilidades técnicas em relação ao sistema então é esse é o momento que nós comentamos que para o modelo cascata é crucial porque eu preciso garantir que todas as informações todos os os detalhes de negócio sejam coletados
porque se eu não coletar tudo se eu falhar no momento dessa definição dos requisitos se eu falo ela no momento de identificar o que o usuário necessita eu posso né já que esse modelo tem essa estrutura sequencial eu posso tá propagando toda essa falha durante todas as etapas durante todas as fases do nosso modelo cascata em tv policial que nesse primeiro momento eu tenho um entendimento detalhado e completo de tudo o que nosso nosso a cidade necessita para que eu possa então passar para que para o nosso projeto de sistema de software então aqui é
o momento que eu vou analisar que eu vou entender todos aqui você quiser seus negócios e vou transformar né nas nossas soluções nossa arquitetura em como eu vou estruturar o nosso produto de software para poder atender aqueles requisitos nessa fase eu determino como o meu produto de software trabalhar aqui que eu vou desenhar como ele vai trabalhar então é uma fase que eu tô transformando a nossa identificações não se quisitos de negócios em uma solução técnica em uma solução sistêmica para que eu possa então passar e encaminhar né as informações para próxima fase que é
o face a fase de implementação e teste unitário teste de unidade nessa fase eu tô fazendo o que eu tô codificando não seu produto eu tô desenvolvendo o luto para que eu consiga entregar todos os requisitos de uma forma sistêmica aqui que eu tô verificando se aquele componente aquela parte de soft aquele pedaço do software tá funcionando ou seja faço meus testes unitários e começa a validar se esses esses desenvolvimentes estão atendendo os requisitos e também estão funcionando adequadamente ou seja não estão apresentando erros então nesse momento com esses testes unitários eu válido para desenvolver
para passar para o nosso a nossa próxima fase que é a de integração né e teste de sistema então não é porque esse modelo é sequencial que eu não vou ter uma integração né eu tenho dentro desse modelo assim que só a forma como eu vou trabalhar todas as etapas mas no momento que eu tô codificando eu tô desenvolvendo né não é tão anterior eu posso ter várias equipes trabalhando eu posso ter equipes trabalh e nada parte do nosso tema outras equipes trabalhando em outra determinada a parte mas todos trabalhando no mesmo tempo nessa diferença
cascata faz com que todos trabalhem na mesma fase ao mesmo tempo tão todos trabalhando ao mesmo tempo cada uma dessas equipes fizeram seus testes unitários unidade ou seja validaram o seu pedaço e agora nessa fase nós estamos integrando todas essas partes integrando todos os pacotes para que desenvolveu um sistema e aqui que eu vou fazer o teste em conjunto sério o teste do sistema como um todo validando e garantindo que não não está apresentando o erro que todas as integrações todos os modos que precisam conversar entre si estão transmitindo informações processando informações de maneira adequada
e também que de uma forma global de uma forma sistêmica eu tô atendendo a todos os requisitos nós levantamos lá no início então é nesse momento que eu garanto que toda essa isso é que toda o todo o produto que foi desenvolvido tá e tem a qualidade necessária para que para que eu possa passar para próxima fase que é não chamam de operação e manutenção manutenção mas é nessa fase que nós treinamos o nosso usuário que nós entregamos a documentação que nós passamos a possibilidade dos olhos começar a utilizar o sistema então aqui que ele
vai verificar ele vai verificar está atendendo todas as suas necessidades se é um produto de fácil utilização se necessita alguma correção e vai ter um momento de acompanhamento ou seja esse é um uma um processo uma atividade do ciclo de vida de software aqui no anti é mais longo porque eu tô acompanhando a utilização eu tô suportando a utilização e podem ocorrer necessidade de correção podem ocorrer necessidade de melhoria pode ocorrer necessidade de negócio que o nó sobre é um tipo de modificação algum tipo de mudança nesse produto de software e é nessa fase no
processo de operação e manutenção que as equipes de software fornecem esse suporte para os nossos clientes usuários finais agora mudando um pouquinho e para o modelo espiral né a gente falou da estrutura cascata de fases na que tem o modelo cascata agora nós não falta o modelo espiral então o maior espiral ele realmente segue uma estrutura espiral né circulando e de uma maneira geral vocês também encontrarão autores bibliografias que endereçam este modelo através de três regiões ou até seis regiões então vai depender de como você quer aplicar da forma que você quer aplicar o modelo
dentro da sua organização ou dentro das necessidades que você tenham dentro da organização então essa qual aí depende e vai ser adaptada de acordo com suas necessidades de uma maneira geral o modelo que nós vamos apresentar aqui tem quatro regiões então dentro dessas quatro regiões nós conseguimos endereçar todas as necessidades ou todas as etapas mínimas para que nós possamos executar a utilização do modelo espiral dentro da do nosso processo de software então falando da nossa primeira região que está aqui na parte inferior esquerda né da da espiral então a parte de baixo que não chamamos
e planeja ou seja é região onde eu faço todos os planejamentos aonde eu inicio todo meu processo planejando como vai ser a coleta de requisitos planejando como vai ser o desenvolvimento do software planejando como vai ser o nosso processo de testes ou seja todas as minhas fases iniciam por e aqui eu tô começando a circular a nossa espiral tá e a partir deste planejamento eu vou para segunda parte aqui é a parte superior esquerda ainda que a parte de cima então eu planejei aqui na parte de baixo e agora na parte de cima eu tô
determinando os nossos objetivos eu tô determinando que as alternativas eu tenho para atender os requisitos o nosso cliente do negócio eu tô determinando quais são as restrições então é nessa fase que eu tô fazendo o que nós fazemos outros modelos que analisar todos os requisitos tudo o que foi levantado todas as necessidades negócio e como eu vou estar atendendo essas necessidades então nesse momento eu tô determinando quais as alternativas que eu tenho eu tô determinando possíveis soluções eu tô determinando o possíveis arquiteturas e tô avaliando também se essa soluções se essas se você tem alguma
restrição tem algum impedimento tem algum bloqueio pode de alguma forma não permitir que nós continuemos né com nosso processo de desenvolvimento e nos auxiliando aí a determinar uma solução final nesse momento também a gente começa a olhar a questão de orçamento de custo quanto nós vamos gastar qual que é o vai ser o valor né de cada fase de 10 estruturação desse produto para que nós possamos fazer o acompanhamento para que nós possamos então na próxima região né que a gente tá fazendo a volta então eu tô falando da região que está à direita na
parte superior é onde nós vamos avaliar as alternativas então aqui nós estamos recebendo as alternativas que foram determinadas na região anterior e começamos a avaliar tão essa região é a região onde nós enfatizamos para vocês que esse modelo ele está muito preocupado a mitigar em eliminar riscos em eliminar problemas a gente já avaliou na região anterior todas as restrições possíveis e aqui a gente vai avaliar todas as alternativas a gente vai verificar as alternativas e nesse momento nos criamos também a prototipação tão esse modelo utiliza muito a prototipação para que para que nós possamos validar
que o que nós pensamos o que nós planejamos o que nós desenhamos né na região anterior ele pode efetivamente aplicada então antes de começar a desenvolver antes de começar a criar eu faço uma avaliação eu faço uma validação para garantir que a próxima fase aqui é a fase de desenvolvimento ela consiga atender todas as necessidades então é uma região de proteção onde eu vou avaliar todos os riscos tentar endereçar para que eu não transfira esse seis transferido esse problema para e desce desce modelo tá última região é região efetivamente da produção né ela tá aqui
baseada na parte de baixo da espiral então eu completei uma volta da esperar eu tô aqui na parte de baixo na parte direita inferior e aqui eu tenho um processo de desenvolvimento e teste então é nesse momento que eu recebo tudo que foi planejado eu recebo que foi analisado já validado e o comércio desenvolver então eu tô desenvolvendo os documentos de requisições de requisitos na numa das fases numa segunda fase eu tô desenvolvendo um produto e cia todos envolvendo a codifi cação eu tô desenvolvendo softer numa terceira foz ou seja uma terceira volta dessa espiral
eu tô desenvolvendo e executando os testes validando o produto que eu criei validando se esse produto apresenta erros ou não validando se ele tá atendendo a todas as necessidades bom então eu tenho essa estrutura para garantir aqui a cada fase que eu faço uma volta que eu giro que eu tô executando para cada parte da minha interação eu garanta que eu a vale e que eu tô só desenvolvendo eu só trabalhando com a estrutura que já foi certificada de alguma forma seu julgamento um produto maior de qualidade os artefatos e olhando para essa estrutura né
então pensando nos dois modelos em separados eu posso criar artefatos similares né eu vou ter artefatos similares mas em momentos diferentes né como a gente abordou o modelo cascata tenho várias fases o modelo espiral eu tô falando de regiões então no modelo cascata olhando para cada uma dessas fases olhando para cada uma a cada um desses momentos e aí os artefatos como a gente falou são produtos e sobre produtos que a gente vai gerando durante ciclo de vida do software então já te fatos em si eles podem ser similares para qualquer tipo de modelo tanto
o processo unificado quanto agora por cascata e vai ser similar também no modelo espiral é um momento né da de cada fase ao momento de cada iteração é o momento de cada região que vai ser um pouquinho diferente então eu modelo cascata dentro da do processo de a definição eu tô aqui de novo aqui entendendo você quisitos dos usuários o sujeito determinando a todos os requisitos eu tô gerando o escopo do projeto eu tô definindo tudo que o negócio tudo que o usuário cliente precisa para que para que eu possa alimentar a próxima fase que
a frase de projeto do sistema ea partir desses requisitos eu começo a desenvolver o que a nossa arquitetura eu possa desenvolver quais são os requisitos técnicos e termos de software de hardware que tipo de diagramas eu tenho que criar ou seja como que eu vou estruturar o meu sistema como que o analiso todos aqueles requisitos e transformam-no eles né numa estrutura sistêmica pensando já em soluções técnicas então esse modelo que eu crio esses artefatos para que para que eu tenha diagramações e possa alimentar a implementação e o teste unidade ou seja com essas informações e
transformadas agora numa informacionais técnica eu tenho como desenvolver o meu código desenvolver o meu produto nessa fase começar a verificar os testes unitários ou seja eu começo a testar cada módulo que eu desenvolvi e tento dessa forma garantir que pelo menos aquele módulo que cada equipe está trabalhando ele está entregando a exatamente o que foi determinado em termos de requisitos e também sem erros para que para que eu possa partir para a próxima fase de integração e teste e assim executar integração do sistema em se determinar o plano de teste executar os excessos de todo
o sistema ou seja é aqui que eu vou garantir que o sistema o produto que eu desenvolvi total está entregando todas as suas necessidades olhando agora não só pelos pedaços né que eu desenvolvi mas como um sistema como um todo então eu tô entregando documentações eu tô entregando manuais eu tô aqui no momento da operação e manutenção eu possa treinar os meus usuários fazer com que eles usam um sistema identificar né relatórios possíveis erros que possam acontecer documentação de melhorias e mudanças os seus atender as necessidades negócio atender as necessidades de mudanças negócio nesse momento
onde eu vou tá auxiliando a utilização operando né o sistema garantindo aquele tá sendo executado para que eu possa entregar para o usuário todo o suporte toda a manutenção que é necessária se faz necessária nesse momento do ciclo de vida tá e aí olhando agora para estrutura do modelo a espiral espiral desculpa eu tenho também em alguns artefatos que são similares só que eles estão em regiões diferentes então todos os planos os planos do ciclo de vida o plano desenvolvimento o plano de teste ele tem uma região específica específica está no na região de planejamento
plano da região de planeja então é aqui que eu tô fazendo todos os planos é um pouco diferente da estrutura do modelo cascata aqui nos planejarmos porque eu tô começando a nossa volta da espiral para que para que eu possa alimentar a próxima região que é onde eu vou determinar as alternativas então aqui eu tô criando as soluções nessa região eu tô determinando arquitetura eu tô desenvolvendo orçamento ou seja nessa região eu estou estruturando o que eu vou transformar de negócio para uma solução técnica então é nessa região que nós conseguimos fazer essa transformação e
garantir que todos os produtos e seja e claros de uma forma sistêmica para que para que eu possa fazer avaliação né dessas alternativas identificar os riscos que a próxima região é onde eu vou validar todas as soluções todas as alternativas e verificasse aquelas alternativas são alternativas efetivamente que possa ser entregues ou seja que possuem desenvolvidas então nesse momento eu tô validando essas alternativas criando protótipos avaliando para que eu possa ter essa certificação antes de passar para a última região que a região onde eu desenvolvi e texto ou seja é a região onde eu vou querer
a documentação dos requisitos é a região onde eu vou desenvolver o nosso produto de software eu vou desenvolver o nosso código é a região onde eu vou testar na lembre-se que o ciclo de cada fase ele tá seguindo a espiral tão uma primeira volta e eu avaliei e do comentei todos os requisitos na segunda volta a eu transformei isso analisei e desenvolvi o meu produto numa terceira volta eu peguei esse produto comecei a testar a validar para aqui numa quarta volta é posso entregar para os olhos então é dessa forma que o modelo espiral vai
girando e assim a gente vai entregando os até os artefatos em cada uma dessas regiões presente exemplifi car né utilizar uma um exemplo do no mundo real para o modelo cascata eu trouxe aqui um sistema de controle de peças né então nos envolvemos uma época por uma concessionária um sistema de controle de peças aonde a equipe que fazia todo o levantamento de requisitos análise era uma empresa externa então modelo cascata funcionou bem nesse processo porque porque nós temos uma independência já que essa equipe tinha que entregar determinadas fases modelo cascata e nós continuaríamos no processo
de implementação então é o nome dependia o nós não tínhamos que tem interação entre essas duas equipes para que nós pudéssemos entregar o produto então essa empresa trabalhava em toda a parte de análise né então ela determinava a todos os requisitos transformava esses requisitos de negócio em uma estrutura já sistêmica já com algumas soluções né e nos transferia essas definições de forma que nós pudéssemos trabalhar na parte de desenvolvimento na parte de testes na parte de implementação na parte de operação e manutenção seja ela clara essa separação e a gente conseguia fazer com que nem
através desse modelo né que ele é baseado em fase a gente conseguir fazer essa adaptação e separação uma algumas vantagens que apareceram nesse processo é que às vezes alguns problemas que não eram detectados na no início pela equipe de requisitos ela eram propagado em todos os processos e as ao contrário esses problemas no final então nós tínhamos essa dificuldade às vezes quando nós terminar vamos um desenvolvimento antes do prazo nós tínhamos que aguardar né que externa terminar todo o processo porque nós não podíamos começar sem que eles terminar assim então essa é uma outra desvantagem
que às vezes a equipe podia tá iniciando um outro desenvolvimento mas o processo de análise de definição das funções não estava concluída e por fim e às vezes não existe uma demora ou o processo de análise era um pouco mais demorado porque eu tinha que garante naquele momento que eu estava atendendo lindo e identificando se você quiser tipo não propagar os problemas posteriores então essa é a algumas das vantagens que nós experimentamos nesse modelo e no modelo espiral por outro lado como eu comentei ele é um modelo mais difícil de ser aplicada porque ele determina
o necessita que seja aplicado em larga escala ou seja ele determina em que seja utilizado em sistemas mais complexos porque ele é um modelo mais complexo né então normalmente nós utilizamos esse modelo mas para sistemas que a gente fica eliminar o risco ou seja o risco que tem que ser o mínimo possível e ou que a gente tenha algum sistema que é embarcado em algum processo sistemas embarcados só que ele aqueles que vocês vem num carro de sistema autônomo um daqueles aqueles softwares que estão numa automatização de um avião são softwares que estão dentro de
um equipamento de de execução de raio-x de saúde então são sócios que estão dentro de um equipamento ele não pode ficar apresentando problema então esse modelo serve parece um exemplo que eu trouxe só para vocês terem uma ideia é o aplicação desse modelo né pela nasa então eles aplicaram esse modelo para lançamento de foguetes né e tiveram a vantagem do que dessa dessa prototipação dessa verificação para que eles não tivessem problemas pudesse identificar esse problema problemas de forma antecipada eles tiveram condições de reutilizar e reduzir custos com utilização desse modelo e tiveram também a possibilidade
como é um processo mais iterativo-incremental de ter a participação dos usuários os clientes em todos os momentos né a desvantagem é que é isso mesmo tendo essa participação nem sempre foi possível identificar os problemas então alguns problemas foram identificados somente ao final íris e esperavam com com essa essa esse modelo que é um pouco mais de escala maior né um pouco mais de estrutura maior que eles pudessem ter maior escalabilidade mas nem sempre sua real ou seja não é porque o modelo não é porque estrutura é mais escalável mas grande desculpa né maior desculpa é
que ele pode ser escalável que ele pode gerar uma maior escalabilidade as considerações finais bom então pessoal espero que vocês tenham absorvido aí as características nesses dois modelos né tanto cascata como espiral tiver numa oportunidade de ver algumas diferenças e também as dificuldades cada um deles entender né as diferenças das fases para o modelo cascata das regiões por modelo espiral e também a distribuir distribuição desses artefatos na onde criar em cada fase em cada região ou seja em cada momento de cada um desses modelos agradeço atenção de vocês nessa aula e aguardo vocês no próximo
obrigado e aí