bom pessoal então vamos falar agora um pouquinho sobre modelos de processos anteriormente nós íamos O que são processos de software eles racionalizam o desenvolvimento de sistemas e agora vamos ver um pouquinho Quais são os possíveis modelos de processos O que são modelos de processos e qual a relação desses modelos com os diferentes tipos de processos que nós temos e que nós podemos conduzir para que produzamos aí um software então o modelo de processo para a gente ter uma definição ele é uma representação simplificada de um processo de software ou seja ele uma representação simplificada ele
não vai ter todas as nuances todas as complexidades de um processo incorporadas em sua própria descrição e sua própria representação por quê Porque são n possíveis possibilidades de pessoas de papéis de coisas que vão se estabelecendo ali na prática do dia a dia que fica difícil da gente tirar aquilo e transformar aquilo no modelo agora a gente pode pegar a ideia Geral de como a gente trabalha e uma vez que nós temos aí essa ideia Geral de como se dá o trabalho na organização a gente consegue então ter um modelo ali em cima daquilo então
o modelo ele é uma abstração de um processo tá bom uma representação parcial ele é uma abstração de um processo de software beleza pega um processo abstraia suas partes essenciais representa ele e isso daí é um modelo de processo e cada modelo ele representa uma perspectiva de um processo fornecendo informações parciais sobre eles Como por exemplo o modelo de atividade do processo pode mostrar as atividades e suas sequência mas não mostrar os papéis das pessoas envolvidas porque porque a gente tem uma visão parcial então a gente pode ter para cada uma das atividades determinados aspectos
que são os mais importantes sendo representados mas não necessariamente todos até porque fica muito difícil da gente representar tudo que vai acontecer ali na prática do dia a dia esses modelos genéricos né entretanto esses modelos de processos que são esses modelos genéricos eles não são descrições definitivas pelo contrário que nem eu falei são Abstrações que podem ser usadas para explicar diferentes abordagens de desenvolvimento de software então Então o que importa não é se eu tô descrevendo ali nos mínimos detalhes o processo real que tá acontecendo numa empresa x e sim qual que é o tipo
de modelo de processo que ela tá adotando é o modelo de processo do tipo Cascata ou seja ele acontece com as atividades sendo sequenciais umas as outras eu começo o design assim que eu finalizo a especificação eu começo a implementação assim que eu finalizo o design da minha aplicação Design no sentido de interface entre as coisas tá bom e não Design no sentido de frontiend que a gente acaba tendo muitas vezes como sinônimo né de design a design é eu fazia as páginas do meu sistema do meu site Não não é isso que a gente
tá usando aqui como design que a gente tá usando aqui como design nesse sentido é a interação entre a interação entre as partes distintas do meu sistema é como as coisas se comunicam então eu posso ter um modelo Cascata em que as coisas se dão dessa forma eu tenho especificação depois eu tenho design depois eu tenho implementação e assim por diante eu posso ter modelos interativos aonde Essas atividades se deu intercaladas por interações então na minha primeira interação eu vou fazer uma parte do meu sistema e eu vou ter design daquela parte do sistema eu
vou ter implementação daquela parte do sistema E aí eu vou de forma interativa desenvolvendo isso através de ciclos rápidos onde eu vou desenvolvendo validando entregando desenvolvendo validando entregando então o que que eu tô falando aqui eu tô fazendo uma abstração né porque eu fiz aqui agora foi uma abstração eu escrevi um modelo de um processo mas eu não falei como que vai ser feito lá no meu Cascata que eu dei de exemplo o design da aplicação falei olha Tem atividade de design de aplicação que a gente montar arquitetura eu falei quem que faz não falei
eu falei Quais são os documentos não falei tá eu posso incluir isso na minha descrição do processo mas não necessariamente eu preciso incluir isso na minha descrição do meu processo então esses modelo de processo ele vai ser essa visão parcial mais genérica mais abstraída tá legal então eles podem ser visto se esses modelos eles podem ser vistos como frameworks de processos ou seja um quadro de trabalho né um Framework é um quadro de trabalho é um arcabouço Então como é que eu vou estabelecer um processo do tipo interativo na minha empresa interativo incremental Ah eu
ouvi falar que o score é muito bom vejo que muitas pessoas têm experiência com e talvez o Square junto com algumas práticas do XP seja um modelo interessante para eu trabalhar E aí junto com isso eu vou trazer algumas atividades de especificação que vão vir do XP como por exemplo histórias de usuário eu vou trazer algumas técnicas de implementação Como por exemplo o desenvolvimento de vídeo da testes e fatoração e junto com isso eu vou trabalhar com ciclo do scream isso é muito comum vocês verem por aí né em várias empresas então o que que
a gente tá trazendo a gente tá trazendo um framer que a gente está trazendo um modelo E aí esse modelo eu tô colocando ali na prática e tô adaptando as minhas necessidades a minha realidade as pessoas que estão envolvidas ao domínio do problema que eu tô trabalhando ao conjunto de tecnologias né enfim a minha realidade concreta em si trago Aquele modelo Genérico e adapto ele a minha realidade concreta tá legal então que nem o Sumário menciona aqui eles podem ser vistos como frameworks de processos que vão poder ser ampliados e adaptados para criar processos de
engenharia de software mais específicos os processos reais os processos que vão acontecer ali na prática dentre esses modelos de processos nós temos o desenvolvimento em Cascata que foi que eu acabei de mencionar aqui E esse modelo ele considera as atividades fundamentais do processo de especificação desenvolvimento validação e evolução aquelas quatro atividades do processo que o summervil menciona e ele vai representar cada uma dessas atividades como fases distintas então eu vou ter uma fase de especificação de requisitos eu vou ter uma fase de projeto de software uma fase de design da minha aplicação eu vou ter
uma fase de implementação eu vou ter uma fase de validação e testes e assim por diante tá legal então modelo Cascata a gente vai ver daqui a pouco uma representação dele ou melhor acredito que já na próxima aula a gente já tenha uma visão bastante abrangente sobre o modelo Cascata Mas é em suma é isso né a ideia dele é essa as atividades aconteceram sequencialmente e uma se iniciando após o final da outra sendo que as atividades do processo são representadas como fases dentro desse meu modelo de processo dentro desse modelo de desenvolvimento em cascata
uma outra abordagem de modelo de processo é o desenvolvimento incremental que intercala as atividades de especificação de desenvolvimento e de validação foi aquilo que eu comentei agora né se eu tenho lá um scrum da vida que você já deve ter ouvido falar sem ninguém ouvir falar Não se preocupem porque a gente vai ter aula sobre score Então a gente vai ter aí atividades de especificação desenvolvimento e validação no scream junto com XP que é o que é bastante utilizado no mercado acontecendo de forma intercalada porque porque cada um desses tipos de modelo de processo vai
ser adequado para um tipo de realidade um tipo de projeto aquilo que Eu mencionei anteriormente são ferramentas que a gente tem que ter no nosso ferramental teórico aí prático né Para a gente conseguir aplicar quando for necessário então se eu tenho um sistema de negócio é interessante que eu tenho esse ciclo onde eu especifico desenvolvo e válido pequenas partes do meu sistema uma de cada vez porque isso me ajuda a garantir que eu tô implementando tá de fato alinhado com as necessidades do usuário e se não estiver alinhado com as necessidades do usuário o meu
trabalho ele é nessa minha interação É nesse meu ciclo de desenvolvimento e não no projeto como um todo tá legal então o desenvolvimento do sistema não incremental ele se dá por meio de uma série de versões ou incrementos de maneira que cada versão cada nova versão cada novo incremento vai adicionando funcionalidade a versão anterior tá legal gente essa é uma forma bastante utilizada de desenvolvimento Esse é um modelo de processo bastante utilizado o de desenvolvimento incremental Além disso nós temos o modelo de processo da engenharia de software orientada a reuso e essa abordagem ela é
baseada na existência de um número significativo de componentes reusáveis então aquilo que Eu mencionei ali em relação à empresa que disponibilizava pacotes ou pensource para comunidade e a comunidade ia lá dava manutenção nos pacotes e existia essa relação sembiótica né entre a empresa e a comunidade open source e assim eles iam desenvolvendo o projeto deles os projetos deles com o reuso dos componentes que eles mesmos tinham colocado tinham feito inicialmente mas que estavam sendo mantidos Ali pela comunidade Então essa abordagem de engenharia de software orientada reuso ele vai se concentrar o processo vai se concentrar
na integração desses componentes né em um sistema já existente Então a gente vai pegar uma série de componentes e vai integrar esses componentes para que a gente crie então um sistema ao invés da gente pegar e desenvolver tudo do zero aplicações nesse sentido São por exemplo as aplicações rps a gente vai ter muita aplicação RP que se a gente vai pegar por aí que é isso né engenharia de software orientada reuso você tem lá um RP um sistema de gestão empresarial e esse sistema já tem uma série de módulos por exemplo o módulo de gestão
de pessoas módulo de gestão financeira módulo de gestão de estoque módulo de gestão logística e assim por diante E aí esses diferentes módulos né com as diferentes funcionalidades que cada um deles vai ter vão ser integrados e vão ser adaptados a realidade da empresa que tá fazendo a contratação daquele RP ou talvez a empresa vai se adaptar né a realidade do rp caso a alteração seja muito custosa no lado do rp E aí a empresa prefere ela adaptar o processo dela ao sistema ao invés do de fazer o caminho contrário e enfim assim colocar ele
em produção e poder fazer Essa gestão ali Empresarial por meio desse sistema RP né então isso também é bastante utilizado nesse sentido tá bom gente para o Summer viu esses modelos não são mutualmente exclusivos e muitas vezes são usados em conjunto especialmente para o desenvolvimento do sistema de grande porte e esse é um ponto importante porque quando a gente fala de desenvolvimento em Cascata desenvolvimento incremental e modelo de desenvolvimento orientada reuso a gente não quer dizer que ou você desenvolveu em cada reuso ou você desenvolve incremental ou você desenvolve Cascata em alguns casos sim você
só vai usar um desses modelos em outros casos principalmente sistemas maiores vai fazer sentido a gente fazer o quê a gente combinar algumas das melhores características do modelo em cascata com as características do modelo de desenvolvimento incremental por exemplo tá então se eu tiver um sistema muito grande onde eu preciso ter uma especificação toda feita de antemão mas eu quero que o processo de desenvolvimento em si seja feito de forma incremental validando especificação de antemão tá correta ou se eu preciso fazer algum refinamento ali eu posso ter isso tá então Baseado Em toda uma especificação
que eu tenho a priori eu posso ir refinando essa especificação conforme eu vou desenvolvendo e fazendo a entrega de novos componentes novos módulos do Meu sistema tá legal Da mesma forma eu posso ter um sistema de desenvolvimento eu posso ter um modelo de processo de desenvolvimento onde eu utilizo o modelo incremental por exemplo que nem Eu mencionei um XP e coisa do gênero e faço uso da engenharia software oriental da reuso Aonde eu pego e faço a reutilização de uma série de componentes que eu já tenho prontos porque já me fornecem ali uma série de
funcionalidades que são necessárias e depois eu só uso adapto a necessidade do negócio específico que eu tiver trabalhando tá legal então esses modelos de processos eles não são exclusivos e muitas vezes eles vão acontecer em conjunto tá bom bom gente então em relação a modelos de processos é isso a gente teve essa visão Geral do que essa modelo de processos que são Abstrações dos processos de software na próxima aula a gente vai começar a falar um pouquinho sobre o modelo Cascata que foi o primeiro modelo que a gente mencionou aqui e é um modelo bastante
importante e bastante relevante até pela questão histórica na próxima aula a gente vai ver o Cascata e posteriores nós vamos ver um pouquinho sobre o modelo incremental e depois sobre o modelo orientado é reuso E aí a gente vai fechar fazendo a ligação entre todos eles tá bom gente é isso muito obrigado