Vamos ver nesse vídeo alguns exemplos de uso de UML, particular diagramas de classe UML, para representar diferentes tipo de sistemas de software. A gente vai começar com uns exemplos mais simples e daí para uns exemplos mais complexos. Vocês vão ter uma ideia do poder dessa ferramenta. Poder de representar modelos orientados a objetos. Então vamos ver exemplos UML. Boa parte desses exemplos eu peguei com o professor Gilleanes Guedes, que é dos maiores especialistas UML no Brasil, inclusive ele escreveu esse livro UML 2 Uma Abordagem Prática. Primeiro exemplo que eu vou mostrar para vocês é o mais simples aqui, e como eu sou cientista é algo que eu gosto bastante que é essa ideia de revista científicas. A gente sabe que os grandes conhecimentos, os grandes avanços da ciência são publicados artigos científicos depois que eles têm uma revisão por pares, ou seja outros cientistas analisaram aquele artigo e dizem que o artigo sim, é correto e pode ser publicado. Como as revistas científicas se organizam? Então, aqui a gente tem uma classe chamada RevistaCientífica que tem o título da revista e o Issn da revista período da revista, e uma revista é uma agregação na verdade uma composição de várias edições. Então por exemplo, você tem uma revista que sai todo mês, que sai todo bimestre. Então, ela tem essas várias edições. A edição, tem número da edição, o volume, a data da edição e a tiragem da edição. Então, por exemplo pode ser uma revista de janeiro de 2020 que tem mil exemplares ou dois mil exemplares, por exemplo. então você vai ter uma revista científica vai ter várias edições. Provavelmente dezenas edições ao longo dos vários anos de vida de uma revista científica. E ele disse que é uma composição, isso quer dizer que uma edição ela não faz sentido uma edição sozinha sem estar dentro de uma revista. Por isso que é uma agregação da forma de composição, ou seja, essa é uma parte deste todo e esta parte aqui para existir depende da existência aqui da revista científica. Já cada edição contém uma certa quantidade de artigos científicos. Tipicamente nesse modelo de seis a dez artigos científicos cada edição e o artigo tem aqui o título do artigo pelo menos. Provavelmente artigo vai ter outras informações também, os autores, o resumo e assim por diante, mas aqui ele só quiz dizer destacar o título do artigo. Então, isso aqui é pequeno modelo para artigos de revistas científicas. Vamos ver modelo mais complexo. Vou dar pause no vídeo aqui. Olha pouco esse diagrama, e me diga o que você acha que é esse modelo. De que domínio? De que assunto? Dá pausa aí. Pronto já deu a pausa, não é? Bem. Isso aqui é o modelo de funcionamento, ou de sistema, para uma clínica veterinária. Então, onde você poderia guardar informações sobre tudo o que é feito uma determinada clínica veterinária. Provavelmente existem esses termos de software aí para gestão de clínicas veterinárias, não é? Então, isso aqui é exemplo de como seria a arquitetura. Então, você tem cliente cliente possui ou mais animais. O animal é de uma determinada espécie. Ele pode ter saqui, cachorro, cavalo marinho. Sei lá, o que ele quiser, cavalo não marinho. Esse animal realiza vários tratamentos. Ou mais tratamentos alí. Tratamento tem data de início, data de fim, etc. Cada tratamento tem ou mais consultas com o veterinário. E o veterinário atende uma ou mais consultas, e cada consulta gera zero ou mais exames médicos para o animal. Isso aqui é sistema, sisteminha simples. Vamos ver diagrama mais sofisticado, mais complexo ainda. Esse aqui. Esse eu acho bem legal. Seria como se fosse sistema para hotel. Para gerenciar os quartos e as reservas do hotel. Então, como é que funciona isso aqui? Uma pessoa faz uma reserva de quarto, onde essa pessoa tem dois tipos de pessoas, que tem herança. Pode ser hospede, uma pessoa física que tem CPF ou uma empresa, uma pessoa jurídica que tem CNPJ. Então, essa pessoa faz uma reserva de quarto. A gente tem funcionários do hotel que se o hotel, esse funcionário aluga ou ele reserva, ou ele encerra uma reserva de quarto esse quarto possui categorias. Pode ser quarto simples, luxo super luxo, super ultra luxo. E daí para cada categoria a gente tem uma lista de itens que tem naquele. Então o quarto pode ter além de camas e mesas ele pode ter ferro de passar roupas, pode ter frigobar, pode ter sei lá uma hidromassagem, não é? E para cada categoria você tem alí os itens de frigobar que tem naquela categoria. Quarto, vejamos aqui, daí uma pessoa o que ela vai fazer? Ela faz reservas. Reservas do quarto. Quando é uma pessoa, umapessoa física, uma pessoa, independente de ser empresa ou hóspede que fazem a reserva quem usa o quarto de hotel é sempre hóspede. Uma empresa não vai lá no quarto de hotel. Quem vai lá é uma pessoa da empresa uma pessoa que tem interação com a empresa. Então esse hóspede ele ocupa determinado quarto. Eu não gostei muito desse nome Ocupa para essa classe. Talvez o mais, Estadia. Eu ia gostar mais de uma classe chamada Estadia. Então, o hóspede estaria associado a uma ou mais estadias, a estadia está associada a quarto. Essa estadia gera diárias. Tem a data da diária, o valor da diária. A estadia tem a data de entrada a data de saída. De uma determinada estadia o hóspede pode solicitar serviços. Eu quero sei lá. Que serviços ele pode pedir? Eu quero na minha hidromassagem pétalas de rosas, ou eu quero uma massagem japonesa, sei lá. Pode solicitar serviços. Essa estadia consome itens alí do frigobar também. Então, isso aqui pode ser uma arquitetura de software para sistema de hotel. Vamos ver o último e mais complicado de todos aqui que seria sistema para uma imobiliária. Então, vamos ver. Uma imobiliária ela lida com imóveis. Aqui a gente tem herança para dizer quais são os tipos de imóveis. Pode ser terreno, pode ser uma casa, pode ser apartamento, pode ser uma chácara. Vamos ver, apartamento. Ele tem o andar do apartamento, o número. O nome do edifício, o número de quartos o número de vagas na garagem, anos da construção, valor do condomínio e o tipo do apartamento. Onde o tipo do apartamento tem aqui, ele é, tem esse tipo, chamado tipo apto. Que aqui define, tipo apto é uma numeração. Pode ser apartamento padrão, quitinete, loft, estúdio, duplex, triplex, chique hein, ou cobertura. Daí o imóvel ele pode ter associado a ele aluguel, quando você aluga imóvel, ou uma compra, quando você vende ou compra o imóvel. Vamos ver o aluguel, ele está associado a duas pessoas, fiador e uma pessoa que contrata. Deve ser o inquilino, não é? E esse aluguel gera pagamento do aluguel todo mês. A pessoa tem que pagar o aluguel. Essa pessoa pode ser pessoa física ou pessoa jurídica. Então, pode ser uma pessoa física que aluga imóvel ou que compra imóvel. Essa a pessoa física ou jurídica ela pode realizar uma compra aqui. Essa compra tem corretor que intermedia a compra. E tem uma taxa. Ele tem que pagar várias taxas alí provavelmente quando faz a compra. Taxas e impostos. O imóvel tem aqui o tipo imóvel. Acho que a gente já viu tudo. A relação entre o imóvel e a pessoa tem contrato ele assina quando ele aqui tem os tipos de contrato. Pode ser contrato de venda, de aluguel. Contrato que chama aluguel ou venda. Bom a pessoa assina contrato com determinado imóvel. Então você vê que no final não é tão complicado, não é? Isso aqui é diagrama UML que define quais são os conceitos. As vezes abstrações que são importantes determinado domínio que nesse caso é o domínio de uma imobiliária. A gente pode desenhar diagrama desse tipo simplesmente não para escrever o software, mas só para entender como é que funciona determinado domínio. Então, conversando com pessoas da imobiliária, com corretores com pessoas que entendem do mercado imobiliário a gente pode definir as abstrações importantes, e fazer uma modelagem do domínio. Depois dessa modelagem, pode ser útil posteriormente para realmente implementar sistema de software e daí cada desses elementos aqui pode ser tornar uma classe no seu, na sua linguagem de programação ou não. Talvez, sei lá, corretor não vai ser uma classe. Isso você que vai tomar, você como desenvolvedor que vai tomar essa decisão. Então, ou talvez uma coisa aqui imóvel, talvez você decida que no seu software vai ter mais do que uma classe. Mas tipicamente a primeira opção seria cada elemento daqui ter uma classe no seu, na sua implementação orientada a objetos na sua linguagem de programação. Então, a gente vai ver ao longo desse curso vários diagramas de UML. Provavelmente não tão complexos como esses. Vão ser diagramas mais simples, onde a gente vai discutir diferente pontos da arquitetura do seu, do software que você vai construir que você vai desenvolver ao longo da sua carreira. E a gente vai ver particular conceito importante que chama padrões de projeto de software que nos ajudam a projetar melhor cada pedaço do nosso sistema e aí a gente vai usar diagramas de UML para entender também como esses padrões funcionam. Então é isso espero que vocês tenham gostado e por hoje é só.