[Música] num o lá eu sou professor marcelo fantinato é a disciplina engenharia de software do curso de engenharia da computação da univesp nós vamos agora começar com a aula número 9 serão três aulas uma sequência em que nós vamos tratar de modelagem de software ou modelagem de sistema começamos com o assunto de modelo de contexto e modelo de interação como também tratar alguns outros tipos de modelos modelos comportamentais e depois também tratar um pouco de engenharia orientada modelos enfim serão três aulas em que nós vamos tratar de modelagem de software nós vamos começar com a
tratando um pouco dos objetivos da definição do que é a modelagem de software na nas aulas anteriores nós tratamos da engenharia de requisitos de uma forma geral em que nós vimos que o desenvolvimento de software engenharia de software tradicional ela passa por uma série de etapas desde que desde o início em que nós precisamos pegar com um onze com clientes com os usuários que o sistema precisa ter aulas anteriores e depois a gente vai passar a missa através de artefatos desde artefatos mais alto nível que seria a lista dos requisitos muito de uma forma abstrata
alto nível e vai refinando refinando refinando refinando com o documento artefatos cada vez num nível - abstrato ou seja cada vez no nível mais baixo até chegar um documento muito próximo de detalhes técnicos e chegaram no código na no programa no código propriamente dito enfim então nós estamos começando a detalhar um pouco mais e se esse nível de detalhamento saímos da os anteriores em que nós estávamos falando da especificação de requisitos e chegamos agora na etapa posterior em que nós estamos falando então da modelagem de software ou de modelos de software então estamos dando um
passo à frente no processo de engenharia de software vamos começar a criar modelos de software a palavra modelo ela tem uma conotação bastante forte né provavelmente vocês imagina já o que significa a palavra modelo a palavra modelo ela é usada no nosso dia a dia provavelmente vocês já já usam né essa palavra no seu dia a dia a gente pensa em diferentes momentos do dia a gente pode pensar em um modelo de um modelo de pessoa um modelo de casa que vocês gostariam de ter um modelo de carro que que o modelo representar algo na
cabeça de vocês algo no papel algo é a ser alcançado algo de ruim o modelo não ser seguido enfim o modelo é alguma coisa abstrata que vai representar algo no caso aqui nós estamos pensando na representação de um software ok então é um modelo de software que vai ajudar a entender o que a equipe de desenvolvimento precisa desenvolver então esse modelo ele está saindo da engenharia de requisitos e vai ser usado na etapa posterior que a etapa de se projetar o software propriamente dito então modelo ele pode tanto ser usado naquela etapa anterior que a
gente viu nas aulas anteriores que é a engenharia de requisitos para que eu possa querer usar um modelo naquela etapa para poder a ajudar a extrair na verdade nós já vimos lá naquela aula um evento de um modelo de software não sei se vocês vão se vocês estão lembrando já mas nós vimos lacunas estava vendo engenharia de requisitos em que nós vimos formas de especificar os vimos uma define que a gente poderia explicar através de um texto a data através de um texto estruturado é mais uma das formas de pescar os requisitos era um modelo
é esse modelo era o chamado os casos de uso diagramas de casos de uso então lá naquela aula naquela aula nós já tínhamos adiantado um tipo de modelo é enfim nós podemos usar os modelos na engenharia de requisitos e também esses modelos nós produzimos para entender melhor o software para a gente tem idéia do software conforme a gente vai modelando o nós vamos entendendo melhor o software e toda a equipe em volta daquele modelo desenvolvendo um modelo vai ajudando a entender descreveu só o sistema o software e depois disso vai ser usado como uma documentação
então como eu havia comentado isso em geral são modelos abstratos ou seja não descreve o o o sistema software de forma completa deixa de fora no vários detalhes não é objetivo colocar todo o dos detalhes dentro desse modelo é a pena é descrever o que é mais importante naquele momento para poder seguir adiante em geral nós temos diferentes tipos de modelo com diferentes visões diferentes perspectivas devem lembrar que o nome aqui dessa aula é modelo de contexto e modelo de interação e eu com disse que numa próxima aula novembro vamos ver modelos estruturais e modelos
comportamentais porque dependendo do modelo você pode ter diferentes perspectivas ok e você pode também diferentes linguagens pra a elaborar esses modelos embora totalmente diferentes linguagens já faz bastante tempo sá praticamente 1 20 anos que a linguagem mais usada atualmente pra representar os modelos de software modelo de sistema o ml que muito provavelmente você já deve ter ouvido falar se você ainda não ouviram falar se vocês vão trabalhar com desenvolvimento de software engenharia de software tradicional vocês vão lhes falar com certeza ao iml é uma linguagem a é a chamada linguagem de modelagem unificada do inglês
do mln fag módulo a língua é uma linguagem que foi ela é chamada de linguagem unificada porque antes do ano 2000 e várias linguagens cada empresa pessoas grupo de pessoas usavam diferentes linguagens então a comunicação é havia muita dificuldade porque estava acostumada com uma linguagem que ia trabalhar com outra outro grupo de pessoas e que usava outra linguagem então a comunicação era difícil então algumas pessoas três autores na verdade se juntaram e propuseram a linguagem unificada e ela realmente ganhou o gosto do público é especializado técnico acadêmico e ela passou a ser usada essa linguagem
ela possui um conjunto de vários diagramas quase um pouco mais de 10 por volta de 15h gramas diagrama do diagrama estruturais os diagramas comportamentais diagramas estruturais nem todos esses diagrama são usados com maior freqüência em geral os que são usados com maior freqüência dos estrutura diagrama de classe dos diagramas de comportamento bastante usados os diagramas de atividades diagrama de casos de uso em tal que nós já comentamos nas aulas anteriores depois nós temos um conjunto o diagrama de máquina de estado também depois tem um conjunto de diagramas foram chamados de diagramas de interação dos quadros
diagramas de seqüências são mais usados além desse nós temos aqui os dramas de componentes que também são usados mas não uma freqüência tão grande os de implantação e os diagramas de pacotes então esses são os diagramas que costumam ser usados com maior freqüência e basicamente são os que vão aparecer com exemplos aqui nessas próximas aulas o ml é riquíssima tem muitos detalhes de uma linguagem bastante completa nós vamos ver aqui apenas alguns exemplos e vocês têm é material de referência para poder aprender se dedicar muitas ferramentas que vocês podem usar para fazer a adquirir mais
conhecimento a respeito disso então começando aqui com alguns modelos é o modelo de contexto modelo de contexto próprio nome diz você vai contextualizar o sistema que vocês estão desenvolvendo então onde começa onde termina o sistema em contexto ele está com a fronteira é isso a idéia de você fazer um modelo de contexto o modelo do contexto é a idéia dele agora com qual diagrama do ml você pode fazer um modelo de contexto nesse exemplo aqui o modelo de contexto está sendo feito com o diagrama de classe então cada um desses elementos está sendo representado por
uma classe o sistema que você vai realmente a desenvolver que estava sendo saudado nas aulas anteriores é aquele sistema de gerenciamento de pacientes de uma clínica de saúde mental que então esse é o sistema que vai ser desenvolvido e aqui nesse contexto está mostrando que esse sistema ele interagem com vários outros sistemas também relacionados à há algum tipo de ação da clínica por exemplo um sistema de registro de pacientes a um sistema de gerenciamento ora um sistema de estatística um sistema de agendamento de leitos no hospital um sistema de prescrição de medicamentos ou de de
exames enfim o sistema em questão que é o que está no centro ao sistema que você está realmente preocupado que você vai desenvolver e está mostrando em que contexto ele está então um diagrama bem alto nível naquela idéia de do alto nível baixo nível é um diagrama alto nível para você entender qual o contexto do sistema que você está desenvolvendo inclusive para você entender que provavelmente você vai ter que trabalhar a comunicação alguns dados entram de outros sistemas para o seu sistema e provavelmente saem do seu sistema para outros sistemas por exemplo bom um outro
exemplo ainda de modelo de contexto é esse caso aqui é um diagrama de atividades do ml voltam aqui eu falei que aqui é um exemplo de um diagrama de classe um diagrama de classes pode ser usado para um diagrama de com um modelo de contexto mas não só pra isso nós ainda vamos ver outros lugares um diagrama de classes que é um deles aqui pra outros tipos de modelos a mesma coisa nós estamos vendo agora aqui um exemplo de um diagrama de atividades como um modelo de contexto mas nós também vamos ver exemplo de diagramas
de atividades para outros tipos de modelo então a idéia que ainda estou contextualizando alguma coisa o sistema que estou desenvolvendo nesse caso aqui para como o nome né um diagrama de atividades para poder dizer quais as atividades são realizadas no sistema em relação a alguma coisa no caso aqui é o processo de internação involuntária talent nós estamos tratando de um sistema de gerenciamento de pacientes de uma clínica de saúde mental e por conta disso algumas internações são involuntárias e aqui então eu tenho um fluxo de como deve ocorrer às atividades quando está se tratando de
uma internação involuntária em 4 e em como em qualquer em todo diagrama da eml existem diferentes há elementos no estacionamento que significam coisas bem específicas por exemplo neste diagrama da atividade você tem as atividades propriamente dito então sempre que você tiver esse elemento significa uma atividade você tem decisões você tem uma decisão que você decidiu se vai para um lado ou para o outro você tem esse tipo de elemento aqui significa o paralelismo então você tem um fluxo então você fica que significa o início do fluxo que significa sim do fluxo você chega por lá
começa por aqui você confirma decisão de internação então você defende você confirma que você precisa de internação involuntária aí você tem que fazer duas coisas em paralelo em paralelo você vai informar o paciente dos direitos dele que você decidiu internar voluntariamente e você vai registrar a decisão de internação naquele sistema que você vai desenvolver e aí essas duas coisas você faz um paralelo acabou fui paralelo você toma uma decisão você verifica o paciente é perigoso ele não perigoso se o paciente não for perigoso você simplesmente admite ele no hospital e você então faz o registro
naquele sistema de admissões que é um outro sistema é que não é o sistema que você está desenvolvendo propriamente dito e depois você vê então executar essas três coisas aqui em paralelo agora se o paciente é perigoso então você precisa encontrar um local seguro esse local seguro não está disponível você transfere para a delegacia enfim ele está disponível então você transfere ele para esse local seguro na sequência você faz essas três coisas em paralelo não importa se você vê por aqui você vê por aqui então você vai ter que informar a assistência social informar os
parentes próximos e atua usar o registro desse paciente no sistema de gerenciamento e acabou fluxo então é um processo bem alto nível em que você vai mostrar como o sistema funciona então é uma ideia de um processo que ajuda a entender melhor como é que o sistema tem de funcionar aí a gente começa então tratar os modelos de interação modelo de interação rapidamente um exemplo são diagrama de casos de uso é um chamado de modelo de interação porque mostra como que usuários no caso aqui os atores vão interagir com o sistema no caso aqui um
caso de uso de um evento do próprio livro famoso como o autor fazer como nós estamos vendo os outros eventos ele tomou a liberdade aqui de colocar esta flechinha aqui que ela não existe na notação original da ml para dizer que a informação está saindo de trator e no próprio sistema e do sistema em um protetor na verdade a anotação ela é simplesmente uma um traçado reto por que a informação pode tanto e quando voltar e aí existem diferentes visões aqui visto um ator com diferentes casos de uso e aí cada um dedicado de uso
por exemplo e se ver informações de pacientes ele pode ser detalhado num outro diagrama de interação no caso aqui um diagrama de seqüência que é um terceiro é exemplo néné do aparecer aqui embaixo daquele diagrama de vários diagrama do ml aparecer aqui em baixo como um diagrama de interação então esse aqui eu já detalhe mais como uma interação ela ocorre dentro do sistema nós estamos tratando especificamente desta funcionalidade e ver informações do paciente que é executado pela recepcionista do médico então como é que funciona eu tenho a recepcionista do médico a funcionar o a parte
do sistema que trata especificamente da informação do paciente a parte que trata do data baby banco de dados acho que trata de autorização de acesso esse programa de frequência ele trata da freqüência em que as coisas acontecem ea gente lê e de cima para baixo então significa que a primeira coisa que eu vou fazer é esta senhora acha que eu entendeu a a encontrei de cima para baixo então a primeira coisa o recepcionista do médico pede para ver a informação sobre o paciente a info do paciente qual o paciente aquele paciente que tem o ide
do paciente que tem aquele identificador quando essa informação chega na tela na parte do sistema que cuida daquele paciente então aquela parte do sistema que é basicamente a tela vai repassar o pedido para o banco de dados de um relatório para o banco de dados pedindo informação daquele haidê paciente e dizendo quem está pedindo que é o usuário aquele recepcionista ou a dia do usuário que por sua vez no banco de dados pergunta para parte do sistema é que cuida da autorização se aquele usuário pode pedir aquele tipo de autorização aquele sistema aquela parte da
autorização responde ele dá autorização ou não e aí duas coisas podem acontecer pode haver o autorização do acesso ou não como duas coisas podem acontecer isso é representado no diagrama por esta notação aqui a alta de alternativo então eu posso ter o que está na parte de cima do pontilhão lado ou na parte de baixo e deu autorização ok então o banco de dados de volpi as informações do paciente para aparecer na tela a autorização não ok aparece um erro porque não tem acesso então esse é um exemplo de um diagrama do iml que eu
posso criar um modelo de interação é um evento um pouco mais elaborado na verdade pode ser bem mais elaborado a diferença é que o um ator se comunicando um outro ator é uma pessoa se comunicando com outro sistema ele pede um login duas alternativas podem acontecer ok e aí no final é também a gente consegue ver de cima para baixo e vocês conseguem ver e acompanhar o que está acontecendo entre uma das duas alternativas você pode querer apenas atualizar uma informação você pode criar atualizar um sumário inteiro ea diferença basicamente é que você quer atualizar
um sumário e vai vestir um passo adicional que não existe aqui por isso evita então duas alternativas bom com isso então nós vimos alguns exemplos de modelos de contexto e modelo de interação nós precisamos ainda dá uma olhada em modelos estruturais e modelos comportamentais obrigado [Música] [Música] ah [Música] [Música]