Engenharia de Software - Aula 11 - Modelos comportamentais e Engenharia dirigida a modelos

16.81k views3167 WordsCopy TextShare
UNIVESP
Engenharia de Computação - 13º Bimestre Disciplina: Engenharia de Software - EES-001 Univesp - Univ...
Video Transcript:
[Música] bom [Música] olá sou professor marcelo fantinato esta disciplina e engenharia de software do curso de engenharia da computação da univesp nós vamos agora tratar a aula número 11 que nós vamos falar de modelos comportamentais e engenharia orientada a modelos essa é a terceira de uma série de três aulas em que nós estamos tratando de modelos de software de modelagem software modelagem de sistemas dentro do ciclo de vida de engenharia de software nós vamos então é ter a nós o tratamos de alguns tipos de modelos nós tratamos modelos de contexto modelos é e de interação
modelos estruturais e agora nós vamos tratar de um outro um quarto tipo de modelo são os modelos comportamentais e depois nós finalizamos a essa aula falando um pouco de um conceito chamado de engenharia dirigida a modelo então começando com os modelos comportamentais né a o próprio nome diz ele é usado para representar o comportamento de um sistema tem que ter como que o sistema deve se comportar tão diferente do diagrama anterior que era o diagrama estrutural diagrama estrutural ele devia como que o sistema vai se estruturar como os componente quais são os componentes que devem
existir no sistema e como esse sistema esses componentes se inter-relacionam então era uma visão estrutural do sistema como se você abrir se o sistema e olhar se como as coisas estão estruturadas lá dentro agora o modelo comportamental já é como as coisas funcionam lá dentro como as coisas andam lá dentro a e ainda antes a gente viu o modelo interação de interação que é como os usuários se interagem com o sistema e o primeiro de tudo um modelo de contexto que é o modelo como se tudo isso tivesse fechado numa caixa-preta e o como o
sistema está em que contexto que o sistema está relacionado então percebo né novamente que você tem diferentes formas de representar porque o sistema é como que o sistema é então a idéia aqui é você representar o comportamento dinâmico do sistema então como o sistema funciona quando ele estiver em execução ou seja o que acontece ou deve acontecer quando o o sistema recebeu algum tipo de estímulo existem dois tipos de estímulo dados e eventos então o da o pódio o sistema pode receber algum dado e esse dado quando ele chega ele precisa ser processado pelo sistema
ok então esse é um tipo de estímulo sistema está lá parado chegou um dado entre um dado esse dado precisa ser processado então por conta desse sistema precisa trabalhar em são comportamento do sistema ou então um evento um evento ocorreu a partir do momento que um evento ocorreu esse também diz para o processamento do sistema então o sistema ele precisa trabalhar ou publiquei um dado chegou ele vai processar ou porque um evento aconteceu e quando esse evento ocorre você pode ter ou não um dado associado e então nós temos dois tipos de modelagem comportamentais um
orientado a dados e outro orientar do evento começando então com a modelagem orientado a dados e aí nós temos aqui um diagrama que vocês já viram em aulas anteriores vocês devem lembrar que o nome desse diagrama do ml é o diagrama de interação a é aquele diagrama que a gente lê de cima para baixo é então nós temos aqui as partes envolvidas nós temos um ator que é o escritório de compras nós temos um outro ator que é o fornecedor ok e aí nós temos as partes do sistema que trata o pedido trata o orçamento
e um repositório de pedidos que é como se fosse um banco de dados então olha é o que se o que essa interação aqui ela representa o no caso um comportamento do sistema é o o funcionamento takita como funciona uma bomba de insulina mas na verdade é uma compra de uma bomba de insulina então o escritório de compras pra fazer essa compra ele preenche o que um pedido ao preencher esse pedido o sistema ele é válida o preenchimento do pedido a validação estiver ok então passa para fazer o orçamento note que não está previsto aqui
o que acontece a avaliação não estiver ok porque não porque eu não estou preocupado com todos os detalhes neste momento que eu estou nesse nível estou então nesse momento eu estou tem me preocupando apenas com o entendimento geral do sistema e pra mim basta eu modelar se a validação estiver ok então se a validação estiver ok eu vou chamar o sistema do orçamento e eu vou atualizar o total r vou salvar na sequência eu vou pedir pra salvar o repositório de pedidos porque eu estou fazendo um novo pedido ok atualizar o total significa eu pru
para a parte do orçamento que eu estou fazendo um pedido eu vou gastar vou salvar no reino sistema de pedido dizendo que eu estou fazendo um pedido eo próprio sistema de pedidos então envia para aquele outro ator que é o o fornecedor enfim acaba essa esse comportamento do sistema essa interação que é o escritório de compras pedindo algo para o fornecedor usando diferentes partes do sistema nessa seqüência uma outra forma de representar isso é através desse diagrama é de processamento de pedidos então há a ideia é comprar um a insulina que vai ser usada então
eu tenho um sensor de açúcar no sangue eu preciso obter o valor desse sensor para saber é quanto o o o sensor está medindo no sangue eu obtém os dados do sensor um sensor aqui observar o valor do sensor que obtenho o dado de sensor baseado nos dados eu calculo o nível de açúcar e aí eu tenho então o nível de açúcar percebam que eu tenho uma atividade então esses redondinhas são as atividades e o retângulo são da água está então os dados estão sendo usados nesse fluxo por isso que eu tenho um uma modelagem
orientada a dar lhes os dados estão direcionando as decisões então eu tenho os dados do sensor o nível de açúcar que foi calculado aí eu calculo a entrega de insulina baseado no nível de açúcar no sangue eu defino a os requisitos de insulina baseado no nível de açúcar eu defino quase os comandos de controle de bomba da bomba baseada nos requisitos de insulina e aí eu vou controlar a bomba baseada nesses comandos e eu tenho então a bomba de insulina é já com os controles definidos então é importante nesse e necid a grama é perceber
que eu tô estou me orientando aos dados que estão sendo com o ecca calculados baseado nas atividades e aí nós temos também a modelagem orientada a eventos um é o diagrama usado pra fazer a modelagem comportamental baseado em eventos é nesse caso aqui é o diagrama de estados neco como se fosse uma máquina do estado finitos em inglês é chamado de schaars é a primeira da grama que a gente vê aqui nessas aulas é pra esse caso então aqui nós não isso não é uma atividade esse é um estado roque e são um estado é
parecido o desenho mas tem essa divisão aqui então percebam que aqui nós temos uma atividade obter valor do sensor calcular nível de açúcar então existe um verbo no infinitivo fazer algo e aqui nós temos aguardando é é é um é um gerúndio ou 111 particípio habilitado desabilitado ou um substantivo operação é algo que diz o que está sem o qual é o estado daquele momento ele está habilitado ele está aguardando é diferente de uma ação faça isso fazer aquilo que então ele está num determinado estado e nós temos as transições então eu começa por aqui
e eu estou no estado aguardando isso aqui é um diagrama de estados de um forno de microondas saímos um pouco daquele daquele caso daqueles exemplos que a gente vinha vendo da do sistema de gerenciamento de de consultas de uma clínica de saúde mental aqui a gente está no micro ondas pra vocês verem que nem todo o sistema a gente precisa é modelar qual todos os tipos de modelos e de todos os diagramas do iml na verdade às vezes nem possível é que o próprio autor serviu no livro dele ele não conseguiu provavelmente encontrar um exemplo
em que ele conseguisse uma modelagem comportamental orientada a eventos para usar um diagrama de estados no exemplo dele então ele acabou lançando mão de um de um controlador de estados de um forno de micro ondas e isso é muito bom justamente pra gente vê aqui é não é sempre que tudo pode ser usado e nem deve então olha são micro ondas a primeira coisa que o que acontece com o seu micro ondas e um microondas está ligado está aguardando algo acontecer com ele esse é o estado que ele tá é cada micro no trabalho de
uma forma no micro ondas aqui do summer viu é ele está lá aguardando e ele exibe um tempo essa é a ação que tem que fazer quando ele está aguardando e aí ele vai esperar uma ação é ea o usuário pode definir aquele que a potência total o que ele quer 6 potência se eu for para a potência total ele vem pro estado potência total e ação dele vai ser definir potência de 600 o meia a potência e vem pra mim a potência definir a potência de 300 é um pouco mais complexo que isso na
vida real é porque você pode definir potência de 1 a 1 a 10 geralmente mas aqui no caso mais simples potência total 6 potência entrando na potência total você pode mudar pra mim a potência e vem pra cá na potência 6 potência pode potência total de vir pra cá ele pode ficar indo e voltando em voltar nem vou continuar lutando até que uma hora você clica no relógio quando você clica no relógio não importa se você está aqui você está aqui ele vem pra cá e aí ele tem um tempo redefinido por que você definiu
é quanto tempo você na verdade você o tempo definido é fácil obter o número de tempo que você quer e você já define o tempo e você fica aqui definindo o tempo até que a entrada desse desse estado a definir o tempo precisa do número quando você vai sair você tem um tempo definido e aí quando você terminou se a porta estiver fechada então ele está habilitado pra iniciar a operação se a porta estiver aberta ele está desabilitado e aí é o que ele quer que você que o sistema fácil e vibra não está pronto
na verdade deveria exibir fecha a porta ou alguma coisa assim quando a porta fechar então aí sim ele está habilitado e aí você pode iniciar se você clicar em iniciar começa a operação e aí o que o sistema tem que fazer operar o forno nesse momento aqui se a porta ficará aberta volta a ficar desabilitado para não é isso que acontece normalmente está lá você abre a porta ele para naquele momento se estiver aqui e você clicar no cancelar e ele fica aguardando eu acho que tá uma festinha virada aqui porque eu acho que em
algum momento provavelmente teria que voltar à operação até que você cancela de vez que termina aqui eu acho que deve ter talvez com um probleminha aqui porque tem duas flechas e não provocar danos e você não consegue voltar bem cancelar a você para não volta mais mesmo eu acho que a cnaa idade estava certo porque a você cancelando vem pra cá e olha que o tempo acabar você naturalmente vem pra cá sem precisar passar pelo cancelar então estava certo era aquilo mesmo bom e aí você tem as definições essas duas tabelas aqui que eu não
vou entrar no detalhe ela mostra basicamente isso que eu fui explicando conforme eu fui lendo eu tentei abstrair lembrar isso tentar lembrar o que era cada uma dessas mas aqui nesta nesta tabela que vocês tenham a consulta no livro também no material que você tem acesso justamente explica que a cada um desses estados então por exemplo é meia a potência que o estado 6 potência que o estado 6 potência significa a potência do forno definida para 300 watts e o display mostra meia a potência é e aí o estímulo do meia a potência não do
meia a potência o usuário pressionou o botão de 6 potência ok então você tem por exemplo que é o estimulei e meia a potência então meia a potência que é o estímulo que é uma transição que é a tabela que vem depois é 6 potência usuário pressionou o botão do meia a potência então você está aqui se o usuário pressionou o botão de 6 potência você tem esse estímulo você vem pra cá e aí você então a potência do forno definida para ter eventos então você tem a definição aqui normalmente um diagrama de estados é
acompanhado de uma tabela dessa porque você lembrar só de você leia aqui lembrar exatamente o que significa cada coisa é não é uma coisa trivial tanto que eu mesmo pra deu uma parada um pouco em alguns momentos para tentar lembrar e aqui olha você pode ter diferentes níveis e se operação aqui esse operação que pode ficar desabilitado ou aguardando se você cancela ou a porta está aberta o operação ele esse operação ele está detalhado aqui porque o operação ele pode ser detalhado então operação você pode estar com os movimento o tempo pode acabar e então
tá feito ele pode soar um alarme se houver um defeito na plataforma giratória ou se tiver um defeito do emissor então você também tem um conjunto de estados começa a operação começa verificando se estiver tudo ok então ele começa a cozinha e executa o gerador quando o tempo acaba ele está feito e vai pro aguardando se tiver qualquer defeito ele vai pro desabilitado se a porta abrir não importa onde ele está se a porta e abri ele automaticamente vai pro desabilitado então você tem a diferentes níveis e aí nós estamos então já em engenharia dirigida
modelos o que é a engenharia dirigida a modelos bom eu já reforcei em diferentes aulas que você não é obrigado a querer usar esses modelos todos usar esses modelos de uma forma completa a não ser que você esteja querendo fazer uma engenharia dirigida a modelos o que seria gerido dirigida modelo se você tentar gerar código de forma automatizada através de modelos bom se você quer tentar fazer isso aí a história é outra porque você vai querer gerar modelos muito bem detalhados muito bem sistematizadas de uma forma cuidadosa pensando que você vai ter ferramentas que vão
poder ler os modelos interpretar os modelos e gerará código a partir disso bom aí você realmente precisa fazer todos esses modelos ou um conjunto desses modelos e mais do que isso de uma forma muito cuidadosa e de uma forma detalhada então por exemplo você pode ter um modelo desse tipo aqui né e mais detalhes e ter um interpretador que começa a gerar o código o que cria as classes cria os métodos cria as invocações pra poder fazer toda essa interação aqui tá isso é o que a gente chama de engenharia dirigida a modelo não é
algo trivial como você já deve imaginar né é você ter a softwares e ferramentas que fazem essa é essa geração automática de código baseada em modelos mas existem empresas existem casas de sua festa inclusive na ibm na siemens claro que não é tudo que se desenvolve na ibm e na siemens que é feito dessa forma mas existem áreas específicas lá dentro que fazem e tem sucesso a existem exemplos do que se chama de o ml executável que você consegue através de diagramas do ml então já a tratar essa questão de engenharia orientada modelos e claro
que como tudo de quando a gente pensa em diferentes tipo abordagens aos seus prós e contras e ao custo benefício nesse caso o que seria custo-benefício vocês devem imaginar que você tem que gastar alguém tem que gastar tempo elaborando essas ferramentas que vão fazer essa interpretação automática então só aí você já tem um custo de preparar essas ferramentas que já é bem trabalhoso você como um desenvolvedor você pode assumir que você vai adquirir essas ferramentas de um terceiro alguém fez as ferramentas podem ser gratuitas podem ser contíguas aberto mas enfim alguém gastou alguém gasta seu
tempo alguém desenvolveu isso a mais você tem o custo de você fazer esses diagramas modelos de uma forma muito bem cuidadosa então você gasta muito tempo fazendo os modelos pra a assumir que o o o código vai ser gerada depois automaticamente a enfim a questão do tradutor ela é forte né você vai ter tradutores que pegarem um modelo seria um traduzindo esses modelos e níveis cada vez mais baixo nível até que em algum momento você tem o código é do programa em vez de um programador é programar o uma pessoa ela atuaria só nessa primeira
etapa daí pra frente você teria software fazendo esses fazendo essa é essa essa tradução de de de modelos até chegar no código executável então você teria um modelo mais alto nível aqui é e depois você vai definir se desse ano você pode ter um modelo que é independente de plataforma e depois um modelo que é específico de plataforma é o específico de plataforma significa que esse modelo em algum momento ele vai ter que ser específico pra java para j2ee por exemplo específico para dot net no caso aqui ainda a plataforma e depois o código java
ou códigos e sharp propriamente dito então você começa um modelo bem genérico e se tudo der certo em teoria lá no final você baseado naquele modelo genérico você pode ter um programa java ou programas chave por exemplo enfim a não é uma tarefa trivial mas existem pesquisas na academia e indústria como a ibm por exemplo de árias que trata então fazer isso a não é uma idéia nova mas também não é uma idéia que ganhou uma repercussão muito grande justamente pela dificuldade de você conseguir fazer esse ciclo de uma forma realmente automatizada e aí então
se a gente não vai trabalhar com essa idéia de totalmente automatizada voltamos então na questão anterior cada um precisa avaliar o tipo de modelo o tipo do diagrama é que vale a pena pra você a nuno tipo de sistema que você está desenvolvendo no seu contexto com seus objetivos ok então é isso em termos de modelagem de software obrigado [Música] o [Música] [Música] [Música]
Copyright © 2025. Made with ♥ in London by YTScribe.com