Olá sejam bem-vindos ao canal engenharia de software com enfas o ML Eu sou professor julianes gues e eu já atuo na área de modelagem de software há vários anos eu tenho quatro livos publicados sobre o assunto e eu já ministrei diversas palestras e cursos técnicos so modelagem de software utilizando a linguagem uml na aula de hoje eu vou dar continuidade ao tema de processos de desenvolvimento de software mais exatamente sobre processos de desenvolvimento ágeis Então vamos dar início à nossa aula essa é então a terceira aula sobre processos ágeis dessa vez eu vou falar sobre
o processo dsdm que é a abreviatura de dynamic Systems development method o método de desenvolvimento de sistemas dinâmicos ah Aqui nós temos então uma figura ilustrando o processo como um todo ah na verdade o dsdm ele tem três fases principais a fase de pré-projeto a fase de ciclo de vida onde ocorre o o processo propriamente dito e a fase de pós-projeto Na verdade o principal do dsdm está no ciclo de vida do projeto mas antes de de se iniciar esse ciclo existe uma fase de pré-projeto onde é feito uma identificação inicial do projeto é feito
uma negociação dos requisitos é estabelecido um orçamento e é feito uma assinatura do contrato é importante chamar atenção que o dsdm é um método ágil que é voltado que é que é baseado num contrato diferente do que algumas pessoas podem pensar existem métodos ágeis que estabelece um contrato um deles é o dsdm bom no ciclo de vida do projeto propriamente dito existe um estudo de viabilidade obviamente se não for considerado viável desenvolver o software ele vai ser encerrado caso contrário depois do estudo de viabilidade é feito estudo de negócio onde se estuda um pouco mais
profundamente o negócio para o qual o software se destina a organização Empresarial depois é produzido o modelo funcional em seguida se passa para o projeto em construção e depois para a implementação esses três últimos estágios na verdade eles são um conjunto de iterações cada um deles é um conjunto de iteração de interações com diversos Passos como nós vamos estudar então se for considerar necessário pode se voltar para o estudo de negócio ou pode se voltar para o modelo funcional pode repetir o processo de modelo ou passo de modelo funcional ã E caso contrário caso o
software tenha sido considerado concluído Então se passa paraa fase de pós-projeto onde o software passa a ser utilizado totalmente H existem eventualmente algumas manutenções e já se começa a pensar nas fases seguintes na evolução do software bom Aqui nós temos uma figura onde se detalha melhor o ciclo de vida desse processo sem levar em consideração a a fase A pré-fórmula depois que o software for considerado o projeto for considerado viável então nós temos um estudo de negócio e aí Nós entramos após estudo de negócio Nós entramos no na iteração do modelo funcional onde nós temos
as etapas de identificar o protótipo funcional determinar a ordem em que Quais tarefas e em que ordem elas e quando elas serão desenvolvidas criação de um óp funcional e revisão do protótipo funcional esse ciclo pode se repetir muitas vezes e quando o protótipo funcional for considerado razoável se passa para fase de projeto e construção onde é feito como o nome já diz é feito basicamente o projeto do software onde se identifica O protótipo do software aliás O protótipo do projeto se elabora se determina um plano de tarefas onde vai se vão se definir Quais tarefas
serão desenvolvidas em que ordem e em que datas se cria um protótipo do projeto e depois revisa O protótipo do projeto esse ciclo pode se repetir várias vezes quando o protótipo for considerado razoável se passa para a fase de implementação onde o protótipo ele é aprovado juntamente com diretrizes de como desenvolvê-lo os usuários são treinados há uma forte implementação embora a implementação também ocorra nas fases anteriores e são após a aquele grupo de requisitos for tiver sido implementado são revisados aspectos do negócio e se verifica se o projeto pode ser encerrado ou se é necessário
um estudo do negócio ou se é necessário revisar o protótipo funcional ou se é necessário revisar O protótipo do projeto Então esse aqui é a figura Geral do processo dsdm do ciclo de vida do processo dsdm Ah então o dsdm é um projeto que é é um processo que foi desenvolvido com vistas a projetos que possuam cronogramas curtos e orçamentos fixos que não aceitam mudanças Ou pelo menos não aceitam grandes mudanças então o objetivo é garantir que o que o projeto seja desenvolvido dentro do cronograma e orçamentos estabelecidos porém sem perder qualidade para isso é
necessário que a equipe esteja fortemente eh integrada e que interaja tenha muita capacidade de interação ã Além disso que eles possam interagir com os usuários finais e os gestores do projeto que haja também uma capacidade de definir os requisitos de forma bastante Clara e que seja possível priorizá-los de maneira a determinar em que ordem Eles serão implementados e também que serja possível decompor os requisitos em módulos Essas são algumas condições para que o dsdm possa ser executado com sucesso existe algumas situações para os quais para as quais o dsdm não é apropriado por exemplo projetos
complexos em que é muito difícil decompor os requisitos bom e a decomposição dos requisitos é uma condição para o sucesso dsdm se isso não é possível o dsdm não é apropriado uma outra situação projetos em que os requisitos estão pouco claros ou que eles não possam ser priorizados eh isso torna o dsdm muitas vezes não apropriado porque pode acontecer do projeto ultrapassar o prazo e o orçamento estipulado e também outra situação é projetos em que haja uma ênfase muito grande na segurança então isso exige para satisfazer esse Ito não funcional se exige muitos testes em
vários níveis muitos testes validações verificações E isso também pode colidir com os objetivos da dsdm que é o de cumprir prazos de orçamentos Então dependendo do nível de teste o nível de verificação nível de validação necessário Isso pode impactar nos prazos e nos e no orçamento e vai contra o objetivo da da dsdm então dsdm é voltada para projetos com orçamentos e prazos fixos Então ela não pode ser utilizada em situações muito complexas ou em situações que não é possível decompor os requisitos ou em situações em que são necessárias um nível de testes muito alto
então aos vou falar um pouco sobre a filosofia do dsdm Então se recomenda que haja um envolvimento do usuário durante todo o tempo do projeto isso como eu já falei em outros vídeos nem sempre é fácil eh para muitas empresas destacar um usuário chave ou um conjunto de usuários para trabalhar todo o tempo num projeto é algo às vezes inviável do ponto de vista econômico nem sempre isso é possível uma outra filosofia os desenvolvedores precisam ter autonomia para tomar decisões Eles não precisam estar constantemente consultando eh níveis superiores para eh que as suas decisões sejam
aprovadas uma outra característica do dsdm é que ele recomenda entregas frequentes boas o suficiente eh de tal forma que seja possível produzir um software adequado eh se acredita que postergar entregas pode aumentar o risco de que o produto final não seja o que o cliente deseja Então o a constante entrega de software funcionando eh retorna pareceres feedbacks dos usuários então a equipe sabe se está no caminho certo ou não ah uma outra uma outra característica da filosofia D sdm é a eficácia das entregas na solução de problemas de negócio então as primeiras entregas elas se
concentram nos requisitos mais importantes então elas vão ser mais eficazes para o para o negócio vão entregar requisitos mais essenciais mais prioritários pro cliente Ah também deve haver pareceres dos dos usuários o mais constante possível de maneira a realimentar o processo de desenvolvimento então se entrega algumas funcionalidades e se recebe parecer dos pareceres dos usuários a respeito se essas funcionalidades estão de acordo com o que h a empresa tem necessidade se elas estão corretas se elas estão satisfazendo os usuários caso contrário elas precisam ser revistas refatorado deve ser possível também reverter todas as ações realizadas
durante o processo de desenvolvimento para para isso é preciso preciso de um sistema de gerenciamento de versões e mudanças Ah também eh deve haver uma previsibilidade para garantir que o escopo e os objetivos das interações sejam conhecidos antes de se iniciar e determinar quando eles devem ser concluídos e deve haver comunicação de boa qualidade Entre todos os envolvidos entre a equipe e entre as interessados de tal forma que o projeto possa ser bem sucedido vou falar sobre alguns papéis do dsde então o primeiro deles é o campeão do projeto ele é o equivalente a um
gerente executivo é uma pessoa com capacidade de administrar prazos e tomar decisões Então esse o nome campeão é um prazo é porque é um papel muito importante e ele tem que garantir que o software Vá ser entregue dentro do prazo um outro papel é o do visionário o visionário Ele É alguém capaz de eh determinar se os requisitos iniciais eles são adequados para que o projeto possa começar Além disso ele age como uma espécie de engenheiro do processo e ele tenta manter as atividades de acordo com a filosofia do dsdm um outro papel é do
intermediador ele é o responsável pela interface da equipe de desenvolvimento com os clientes é ele que faz a comunicação entre os clientes os usuários especialistas de domínio com a equipe de desenvolvimento e o anunciante é um papel opcional mas muito importante que é qualquer usuário que ele tenha algum algum ponto de vista importante que ele possa trazer informações que possam ser úteis para o desenvolvimento do projeto preferencialmente de forma diária Ah ainda nós temos o gerente de projeto que ele gera as atividades do projeto tenta cumprir os prazos manter o orçamento e a qualidade necessária
existe o coordenador técnico que é o responsável pelo projeto da arquitetura do sistema e seus aspectos técnicos Como já foi falado a arquitetura do sistema é o esqueleto do soft por meio do qual todos os módulos do software estarão organizados se determina como eles se comunicarão que tipos de funcionalidades eles conterão esse tipo de coisa e tem o líder de equipe que é o desenvolvedor que tenta manter a a equipe motivada e em harmonia ainda nós temos o desenvolvedor que são os programadores basicamente os os desenvolvedores propriamente ditos os que transformam os requisitos e modelos
em código nós temos os testadores que testam o software escrivães que tomam notas para registrar os requisitos identificados Quais foram as decisões tomadas ao longo do projeto e o facilitador que basicamente ele é responsável por garantir um ambiente de trabalho adequado e também avaliar o progresso das equipes bom Como já foi falado a o dsdm ele tem três fases principais pré-projeto ciclo de vida e pós-projeto o mais importante é o ciclo de vida mas o pré-projeto ele é onde o projeto é identificado e negociado com o cliente onde se estabelece um orçamento e onde é
assinado o contrato o ciclo de vida é o processo propriamente dito ele tem uma análise de viabilidade de negócio e aí depois ele tem vários ciclos iterativos de desenvolvimento que nós vamos estudar daqui a pouco e nós temos o pós-projeto eh quando o software passa a ser utilizado E já começa a se pensar em como ele vai ser mantido e como ele vai ser evoluído então a evolução do dsdm é considerado uma continuação do processo de desenvolvimento bom Ah então os estágios do ciclo de vida do dsdm São estudo de viabilidade estudo de negócio iteração
do modelo funcional iteração de projeto e construção e implementação o estudo de viabilidade Como já se como o nome já diz determina se é viável ou não desenvolver o software as saídas dele são um relatório de viabilidade um protótipo inicial de viabilidade um plano de desenvolvimento e uma lista de riscos e como tentar evitá-los como tentar mitigá-los já o estudo de negócio como o nome já diz ele estuda as características do negócio e determina quais seriam as tecnologias mais adequadas a ser utilizadas no projeto os os requisitos eles são priorizados e é sugerir uma arquitetura
Inicial Então como priorização dos requisitos se usa uma se usa técnicas como a Moscou a técnica Moscou ela permite determinar Quais são os requisitos essenciais os requisitos do tipo must os que devem ser desenvolvidos os requisitos desejáveis os requisitos do tipo should requisitos que deveriam ser desenvolvidos mas em último caso poderiam ser Deixados para uma segunda versão os requisitos opcionais os requisitos do Tipo C que poderiam ser desenvolvidos mas que se não fossem o impacto do não desenvolvimento seria pequeno e os requisitos que não fazem parte do escopo do software os requisitos ood que não
deverão ser desenvolvidos também se aplica uma técnica de time Boxing que é para estabelecer o prazo e o orçamento previamente Então se sabe que o software tem que ser desenvolvido dentro daquele cronograma dentro daquele orçamento então por isso a importância da priorização caso alguns requisitos não possam ser desenvolvidos sabe--se que ao determinar Quais são os essenciais Quais são os desejáveis e etc a gente sabe quais deveri poderiam ser descartados em último caso Então pelo menos se entrega um produto eh minimamente viável então Eh se trabalha com princípio de paret que nesse sentido afirma que 20%
dos requisitos vão corresponder a 80% do software então desenvolvendo os requisitos mais importantes já se consegue satisfazer razoavelmente o cliente Ah então nós vamos trabalhar com as atividades do estágio de iteração do modelo funcional Então ela tem quatro fases A primeira é identificar o protótipo funcional onde se ficam as funcionalidades que deverão ser implementadas naquele ciclo Ahã então para isso se trabalha com modelo funcional que é um resultado da análise de negócio que basicamente é o conjunto de funcionalidades que vão H ser desenvolvidas depois se acorda um plano de tarefas basicamente se determina quando e
como cada uma das funcionalidades será implementada depois se cria um protótipo funcional que é a implementação preliminar das funcionalidades que foram estabelecidas de acordo com a agenda em seguida se revisa O protótipo funcional essas revisões eh são feitas a partir da documentação produzida e também a partir da avaliação do usuário final h e o resultado dessa atividade é o documento de revisão do protótipo funcional ah aí depois nós temos a iteração de projeto e construção Ela também tem quatro subfases A primeira é identificar o protótipo do projeto onde deve-se identificar os requisitos funcionais e não
funcionais que devem estar no sistema final requisitos funcionais são as funcionalidades priamente ditas e requisitos não funcionais são características do gerais do sistema como nível de desempenho nível de segurança nível de escalabilidade nível de confiabilidade nível de usabilidade e assim por diante Então as evidências dos Testes que foram obtidas a partir do protótipo da Etapa anterior vão ser usadas para criar a estratégia de implementação nesse estágio depois se produz um outro plano de tarefas é acordado um novo plano de tarefas onde basicamente se determina quando e como vão ser implementados os requisitos depois se cria
O protótipo de projeto se cria O protótipo de sistema que pode ser utilizado pelos usuários finais e também vai servir para testes e finalmente se revisa O protótipo de projeto então O protótipo ele deve ser testado e revisado e isso vai produzir dois artefatos a documentação para usuário e as evidências que os testes foram ah aprovados depois nós temos o estágio de implantação que é mais uma iteração que também é composta de quatro fases onde é feita o O protótipo gerado na eh no estágio anterior ele é aprovado pelos usuários e juntamente com as diretrizes
de que devem ser seguidas no seu desenvolvimento então basicamente nessa fase os usuários finais eles aprovam o protótipo O protótipo final que vai ser o sistema definitivo a depois que essa que depois que a fase de implantação for H concluída os usuários eles são treinados Então os usuários finais eles são treinados para uso do sistema ã o treinamento dos usuários produz o artefato de saída que é usuários treinado depois se passa para a fase de implementação onde o produto é implementado implantado e liberado para uso pelos usuários finais então aqui se produz o artefato de
sistema entregue e finalmente se passa paraa fase revisar os aspectos do negócio se avalia o impacto do sistema sobre os objetivos de negócio e de acordo com o resultado se pode passar para um novo ciclo ou reiniciar o mesmo ciclo para refinar e melhorar os resultados então nós concluímos a o processo dsdm eu espero que esse conteúdo tenha sido útil se vocês gostaram dessa aula eu peço que vocês curtam compartilhem com quem possa se interessar e se ainda não estiverem inscritos eu peço que vocês se inscrevam no canal o obrigado pela atenção [Música]