Olá sejam bem-vindos ao canal engenharia de software com ênfase em uml Eu sou professor ganes Guedes e eu já atuo na área de modelagem de software há vários anos eu tenho quatro livros publicados sobre o assunto e eu já ministrei diversas palestras e cursos técnicos utilizando a linguagem em na aula de hoje eu vou dar continuidade ao tema sobre processos de desenvolvimento de software dessa vez abordando a quinta aula sobre processos ágeis onde eu vou falar sobre o processo asd Então vamos iniciar a nossa aula então o processo asd é abreviatura de adaptive software development
ou desenvolvimento de software adaptativo então ah Aqui nós temos uma figura sobre o processo asd inspirado no livro do Raul vsav de engenharia de software então nós temos uma fase de iniciação do projeto uma fase onde ocorre as interações que tem quatro eh três fases internas que são a de especulação colaboração e aprendizado e nós temos uma fase onde é feito o encerramento do projeto Vamos então ver com detalhes esse processo de desenvolvimento então a o no processo SD ele aplica ideias oriundas da área de sistemas adaptativos complexos se baseia na teoria do caos Ah
o processo de desenvolvimento é visto como um sistema complexo contendo agentes ambientes e saídas emergentes agentes são compostos de desenvolvedores clientes e outros outras partes interessadas ambientes podem ser organizacionais tecnológicos e de processo e saídas emergentes são basicamente os artefatos os produtos desenvolvidos pelo processo as características do SD ele é baseado em ciclos iterativos de 4 a 8 semanas os prazos são prefixados se utiliza a técnica time Boxing da mesma forma que nas técnicas nos processos dsdm e Crystal Clear onde se estabelece um prazo baseado nos requisitos eh evidenciados almente é tolerante à mudança e
adaptação e ele procura desenvolver os requisitos de maior risco os principais papéis do asd São patrocinador executivo basicamente ele age como um patrocinador de projeto gerenciando e for e fornecendo recursos para o desenvolvimento facilitador é um profissional que lidera e planeja as reuniões da equipe tenta auxiliar a equipe nas dificuldades que ela possa ter Escriba é um funcionário que toma notas da das reuniões Anota os requisitos identificados as decisões de projeto que foram ã tomadas esse tipo de coisa cliente a pessoa que pede pelo software que deve estar sempre presente o que não é simples
mas é uma característica geral dos processos ágeis gerente de projeto que como o nome já diz ele coordena o desenvolvimento e os desenvolvedores tenta Man o software dentro dos prazos e custos esperados gerencia riscos esse tipo de cois e os desenvolvedores que são os queam o software realmente bom falando um pouco sobre as fases do SD na iniciação de projeto basicamente é feito uma preparação para iniciar os ciclos interativos depois nós temos as três fases iterativas que são de especulação colaboração e aprendizado na especulação é feito um planejamento adaptativo de ciclo na colaboração é feita
a engenharia concorrente dos componentes que vão fazer parte do software e na fase de aprendizado é feito uma revisão de qualidade na fase final após todas as interações é feito o encerramento e tenta-se garantir a qualidade do software e que ele esteja disponível para os usuários finais então durante a a iniciação de projeto como foi falado é feita uma preparação para iniciar os ciclos interativos Deve existir uma oficina de poucos dias de acordo com o tamanho do projeto onde vão se estabelecer as missões ou objetivos do projeto São ã levantados são [Música] eh elicitados os
requisitos iniciais as restrições e os riscos que o projeto pode sofrer são feitas as estimativas iniciais de esforço durante a fase de especulação ou durante a fase especular é feito o planejamento adaptativo de ciclo eh se assume que no começo as partes interessadas não sabem exatamente o que elas precisam o que elas desejam então por isso que essa fase é chamada de especulação muitos dos requisitos são realmente descobertos nessa fase porém os objetivos e prazos devem ser estabelecidos e o plano de desenvolvimento vai ser baseado em Componentes vão se desenvolver diversos componentes contando contendo algumas
funcionalidades eh durante a fase de especulação ou especular eh são feitas várias atividades tais como determinar o tempo de duração do projeto o número de ciclos e a sua duração ideal eh se descreve se estabelece um objetivo geral um objetivo Grande para cada ciclo se definem Quais componentes de software que serão desenvolvidos em cada ciclo se definem as tecnologias necessárias e o que vai ser necessário para a auxiliar os ciclos a serem concluídos com sucesso e se desenvolve a lista de tarefas do projeto na na fase de colaboração ou de colaborar ah é quando os
componentes serão eh produzidos concorrentemente Então se recomenda que a equipe tente equilibrar os seus esforços para realizar as atividades que são mais previsíveis e que são mais incertas então tenta se fazer um equilíbrio entre essas esses dois extremos de atividades e a partir dessa colaboração ah vários componentes vão ser desenvolvidos de maneira concorrente depois na fase de aprendizado ou na fase de aprender é feita a revisão de qualidade do produto os ciclos de aprendizagem eles são eles se basei em pequenas interações de projeto codificação e teste então aqui é bom destacar que diferente do que
algumas pessoas pensam a respeito dos métodos ágeis é feito projeto é feito engenharia de quisitos não é simplesmente codificação não é porque Ah se evita documentação inútil e burocrática que não é feita documentação tá pessoas confundem métodos ágeis com método clássico de desenvolver e testar não é isso como já foram vistos em várias nas nas várias aulas sobre os processos ágeis a produção de documentação é feito engenharia de requisitos é feito projeto é feito modelagem então Eh quando os desenvolvedores cometem pequenos erros quando se basam em hipóteses incorretas eles aprimoram seu conhecimento sobre o problema
até dominá-lo com maior profundidade por isso a fase é chamada de aprendizagem Ah e essa fase exige muitas revisões de qualidade muitos testes de aceitação com a presença constante do cliente e de especialistas do domínio Ahã e existem três atividades de aprendizagem recomendadas ah grupos de revisão com foco de usuário inspeções de software e post morens os grupos de revisão com foco no usuário são basicamente uma oficina em que o ou workshop se preferirem em que os desenvolvedores eles apresentam o produto e os usuários tentam utilizá-lo e eles dão pareceres sobre esse uso dizendo se
o software o produto até o momento foi considerado adequado ou não depois são feitas inspeções de software inspeções são técnicas que permitem inspecionar o código e outros artefatos através de anomalias erros ah falta de padronização ma cheiros de código esse tipo de coisa e testes que são o teste do software funcionando que tenta detectar anomalias falhas defeitos do software e atividade postmortem em que a equipe determina se o o que fez no ciclo e se é necessário H mudar o seu modo de trabalho finalmente na fase de encerramento é feito os testes finais para determinar
a qualidade do software e o software é implantado no usuário vantagens Ahã a SD costuma produzir uma qualidade geral maior do produto final ela possui maior transparência entre desenvolvedores e consumidores os usuários finais ela é útil em projetos que precisam de monitoria constante e avaliação constante dos clientes ela é flexível a adaptações do planejamento em qualquer estágio do projeto ela é focada no usuário que era um software mais intuitivo mais fácil de usar eh Ela tem maior probabilidade de ser entregue no prazo devido aos ciclos iterativos de três de três estágios que já foram explicados
que permitem identificação e resolução de problemas potenciais e ela permite aprendizagem com os erros e permite trabalho e equipe o que permite gerar um produto mais refinado porém ela também tem desvantagens ela executa muitos testes que podem aumentar o custo do projeto exige um alto grau de envolvimento do usuário o que nem sempre é fácil de conseguir Às vezes isso é economicamente inviável para o cliente enfatiza muitas repetições O que pode causar fadiga na equipe ah funciona melhor com equipes que estão focadas em apenas um único projeto Ah e ela pode não ser útil para
projetos de alto risco é um pouco mais difícil implementar desenvolvimento de software adaptativo nesse tipo de projeto e aqui nós concluímos a nossa quinta aula sobre processos de desenvolvimento ágeis dessa vez nós falamos sobre o método adaptive software develop eu espero que esse conteúdo tenha sido útil para vocês se vocês gostaram dessa aula eu peço que vocês curtam compartilhem com quem possa se interessar e se ainda não estão inscritos eu peço que você se inscrevam no canal obrigado pela atenção [Música]