#08 - Modelagem de Sistemas (1) - Introdução à UML

23.69k views3978 WordsCopy TextShare
Professor Claudio Sanavria
Conceitos introdutórios sobre modelagem de sistemas e apresentação geral da UML (Unified Modeling La...
Video Transcript:
E aí [Música] tá dando início a nossa playlist de modelagem de sistemas nosso primeiro vídeo tratará dos principais aspectos envolvendo A modelagem como técnica na engenharia de software teremos também uma breve introdução sobre o ML fazendo um percurso pelos seus diagramas a fim de entendermos melhor a importância dessa linguagem de modelagem então difundida no desenvolvimento de sistemas de informação e lembrando o percurso inicial da análise de sistemas Vimos que primeiramente precisamos compreender o negócio para em seguida identificarmos as necessidades do negócio e enfim propormos a solução tecnológica em termos de sistemas de informação nesse momento
A modelagem do sistema surge como ferramenta fundamental para o desenvolvimento de qualidade e é isso que tentaremos entender um pouco mais nesse vídeo vamos lá Bom primeiramente é importante que compreendamos o próprio conceito de modelo o modelo é uma abstração de algo com a finalidade de entender o antes de construí-lo por omitir detalhes não essenciais é mais fácil manipular o modelo do que a entidade original abstração é uma capacidade humana fundamental que nos permite lidar com a complexidade Engenheiros artistas e artesãos têm criados modelos há milhares de anos para experimentar projetos antes de executá-los e
o desenvolvimento de hardware e software não é uma exceção e para montar sistemas complexos Vocês desenvolvedores precisam abstrair diferentes visões do sistema montar modelos com notas exatas Verificar se os modelos satisfazem os requisitos do sistema e acrescentar detalhes gradualmente a fim de transformar os modelos em uma implementação mas antes de tratarmos especificamente desenvolvimento de sistemas voltemos um pouco para a questão dos modelos e suas finalidades Os projetistas montam muitos tipos de modelos para várias finalidades antes de construir coisas assim os modelos tem vários objetivos testar uma entidade física antes de construir lá os construtores medievais
não conheciam a física moderna mas montavam modelos em escala de catedrais góticas para testar as forças sobre a estrutura os engenheiros testam modelos em escala de aviões carros e barcos em túneis de vento e tanques de água para melhorar sua dinâmica e os avanços recentes da Computação permite a simulação de muitas estruturas físicas sem a necessidade de criar modelos físicos a simulação não é apenas mais barata mas oferece informações transitórias de mais ou inacessíveis para serem medidas por meio de um modelo físico tantos modelos físicos quantos modelos em computador normalmente são mais baratos do que
a criação de um sistema completo e permitem a correção antecipada de falhas a comunicação com os clientes os arquitetos e projetistas de produto montou modelos para mostrar os seus clientes maquete são produtos de demonstração que imitam algum ou todo o comportamento externo de um sistema a visualização storyboards e filmes programas de televisão e anúncios permitem que os Escritores vejam como suas ideias fluem elas podem modificar transições estranhas finais bruscos e segmentos desnecessários antes do início da escrita detalhada os expulsos de artistas permitem que eles exponham suas ideias e façam mudanças antes de submetê-los a pedra
ou a pintura a óleo redução de complexidade Talvez o motivo principal para modelagem que incorpora todos os motivos anteriores seja lidar com sistemas que são muito complexos de entender diretamente a mente humana pode lidar apenas uma quantidade limitada de informações de cada vez os modelos reduzem a complexidade separando um pequeno número de aspectos importantes para serem tratados de uma só vez só para se ter uma ideia da complexidade envolvida na construção de alguns sistemas Bezerra atrás do exemplo e pede que você pense no tempo e recursos necessários para a construção de uma casinha de cachorro
para construir essa casa provavelmente tudo que você precisaria seria algumas ripas pregos uma caixa de ferramentas e uma dose de amor por seu cachorro Depois de alguns dias essa casa estaria pronta o que dizer da construção de uma casa para sua família de certo tal empreitada não seria realizada tão facilmente o tempo e os recursos necessários seriam muito maiores do que o necessário para construção da casinha do cachorro e o que dizer então da construção de um edifício existe uma diferença gritante entre construir uma pequena casa e construir um prédio de vários andares obviamente para
construir o edifício é necessário em primeiro lugar desenvolveram um projeto muito bem elaborado cujos cálculos tem de estar corretos e precisos e isso é preciso fornecer Estimativa de custos de terminar em quanto tempo a construção será concluída avaliar a quantidade de profissionais necessárias à execução da obra especificar o material escolher o lugar etc na terminologia da construção civil plantas hidráulicas elétricas de Fundações etc são projetadas e devem manter consistência entre si provavelmente uma equipe de profissionais estaria envolvida na construção e aos membros dessa equipe seriam delegadas diversas tarefas no tempo adequado para cada uma delas
Grandes projetos não podem ser modelado de cabeça nem mesmo a maioria dos pequenos projetos podem sê-lo exceto talvez aqueles extremamente simples podemos também pensar em modelos empregados na elaboração de peças mecânicas é um sistema de irrigação e no planejamento de um sistema de metrô numa grande cidade dentre outras muitas aplicações e para quem modelar um sistema Bezerra nos lembra que na construção de sistemas de software assim como na construção de sistemas habitacionais há uma gradação de complexidade sendo também necessário um planejamento inicial o equivalente ao projeto das plantas da engenharia civil também deve ser realizado
essa necessidade leva ao conceito de modelo aplicado ao desenvolvimento de softwares Além disso Guedes 2018 ressalta que todo o sistema de informação deve ser modelado Antes de iniciar sua implementação pois são sistemas vivos Isto é tendem a crescer e nunca estão completamente finalizados essa constante mudança ocorre porque os clientes desejam constantemente modificações ou melhorias no sistema O mercado está sempre mudando o que força a adoção de novas estratégias pelas empresas e consequentemente de seus sistemas e o governo frequentemente promulga novas leis E cria nova a socially cotas ou ainda modifica leis os impostos e as
alíquotas já existentes o que acarreta manutenção adaptativa do software o modelo pode ser visto como uma representação idealizada de um sistema a ser construído assim um sistema de informação necessita ter uma documentação detalhada precisa e atualizada para ser mantido com facilidade rapidez e correção sem produzir novos erros ao corrigir os antigos moderar um sistema é uma forma bastante eficiente de documentá-lo o Bezerra nos lista mais algumas razões para se utilizarem modelos na construção de sistemas de gerenciamento da complexidade um dos principais motivos de utilizar modelos é que a limitações do ser humano em lidar com
a complexidade pode haver diversos modelos de um mesmo sistema cada qual de escrevendo uma perspectiva do sistema a ser construído assim modelos revelam as características essenciais no sistema detalhes não relevantes e que só aumentaria a complexidade do problema podem ser ignorados a comunicação entre as pessoas envolvidas certamente o desenvolvimento de um sistema envolve a execução de uma quantidade significativa de atividades nesse sentido os modelos de um sistema servem também para promover a difusão de informações relativas ao sistema entre os indivíduos envolvidos em sua construção a redução dos custos no desenvolvimento do desenvolvimento de sistemas seres
humanos estão invariavelmente sujeitos a cometerem erros que podem ser tanto individuais quanto de comunicação entre os membros da equipe certamente a correção desses erros é menos custosa quando detectado e realizada ainda no modelo do sistema por exemplo é muito mais fácil corrigir uma maquete do que por abaixo uma parte não é difícil não é mesmo a previsão do comportamento futuro do sistema o comportamento do sistema pode ser discutido mediante uma análise dos seus modelos os modelos servem como um laboratório e que diferentes soluções para um problema relacionado a construção do sistema podem ser experimentados e
olhando para evolução histórica da modelagem de sistemas temos que o rápido crescimento da capacidade computacional resultou na demanda por sistemas de software cada vez mais complexos que tirassem proveito de tal capacidade por sua vez o surgimento de sistemas mais complexos resultou na necessidade de reavaliação da forma de desenvolver sistemas consequentemente desde o aparecimento do primeiro computador até os dias de hoje as técnicas para construção de sistemas computacionais evoluíram de forma impressionante notavelmente no que tange a modelagem de sistemas já nas décadas de 1950 e1960 os sistemas de software eram bastante simples o desenvolvimento de sistemas
era feita de forma a doc sem o planejamento inicial os sistemas eram significativamente mais simples e consequentemente as técnicas de modelagem também eram mais simples era época dos fluxogramas e dos diagramas de motos na década de 1970 computadores mais avançados e acessíveis começaram a surgir houve uma grande expansão do mercado computacional sistemas mais complexos como estavam aparecer Por conseguinte modelos mais robustos foram propostos nesse período surgem a programação estruturada e no final dessa década surge também a análise e o projeto estruturado e na década de 1980 os computadores se tornaram ainda mais avançados e baratos
surge a necessidade por interfaces homem-máquina mais sofisticadas o que originou a produção de sistemas de software mais complexos análise estruturada se consolidou na primeira metade desta década e no início da década de 1990 surge um novo paradigma de modelagem análise orientada a objetos como resposta a dificuldades encontradas na aplicação da análise estruturada a certos domínios de aplicação já no final da década de 1990 o paradigma da orientação a objetos atinge sua maturidade os conceitos de padrões e projetos frameworks componentes e qualidade começa a ganhar espaço surge a linguagem de modelagem unificada ao ml e vamos
conhecer um pouco mais sobre o ML e unified modeling language e na década de 1990 surgiram várias propostas de modelagem de sistemas segundo paradigma da orientação a objetos nesse período era comum fato de duas técnicas possuírem diferentes notações gráficas para modelar uma mesma perspectiva de sistema ao mesmo tempo cada técnica tinha seus pontos fortes e fracos em relação a notação que utilizava a essa altura percebeu-se a necessidade de uma notação de modelagem que viesse a se tornar um padrão para modelagem de sistemas orientados a objetos essa notação deveria ser aceita e utilizada amplamente pela indústria
e pelos ambientes acadêmicos surge então em 1996 ao ml a linguagem de modelagem unificada como a melhor candidata para ser a linguagem unificadora de notações diagramas e forma de representação existentes em diferentes técnicas de modelagem com a construção do IML teve muitos contribuintes mas os principais atores o processo foram great Butt com o método boot E ai parte aí com a opção com engenharia de software orientado a objetos o que James Hubble com a técnica de modelagem objetos pesquisadores que costumam ser chamados os três amigos esses pesquisadores procuraram aproveitar o melhor das características das rotações
para existentes em suas propostas individuais consequentemente anotação definida para o ML é uma união de diversas notações com alguns elementos removidos e outros adicionados com o objetivo de torná-la mais expressiva e ao ML é uma linguagem visual para modelar sistemas orientados a objetos isso quer dizer que o ML é uma linguagem que define elementos gráficos visuais que podem ser utilizados na modelagem de sistemas esses elementos permitem representar os conceitos o paradigma da orientação a objetos através dos elementos gráficos definidos nessa linguagem pode-se construir diagramas que representam diversas perspectivas de um sistema a cada elemento gráfico
da ml possui uma sim táxi e uma semântica assim táxi de um elemento corresponde a forma pré-determinada de desenhar o elemento a semântica definir o que significa o elemento e com que objetivo ele deve ser utilizado Além disso tanto assim táxi contra a semântica dos elementos do ML são extensíveis podem ser adaptadas às características específicas de cada projeto de desenvolvimento ao ML é independente tanto de linguagens de programação conta de processo de desenvolvimento Ou seja pode ser utilizada para modelagem de sistemas não importa a linguagem de programação que será usada na implementação do sistema nem
a forma o processo de desenvolvimento adotado Esse é um importante fator pois como Já estudamos diferentes sistemas de software requerem abordagens diversas de desenvolvimento é a definição completa do ML está contida na especificação da linguagem unificada da Unity essa especificação pode ser obtida gratuitamente no site da Oi MG E os autores ao ml sugere que o sistema pode ser descrito por cinco visões interdependentes e sistema cada visão enfatiza aspectos diferentes do sistema as visões propostas são as seguintes a visão de casos de uso que escreve um sistema de um ponto de vista externo como conjunto
de interações entre o sistema e os agentes externos ao sistema essa visão é criada inicialmente e direciona o desenvolvimento de outras divisões do sistema a visão de projeto enfatiza as características do sistema que dão suporte tanto estrutural quanto comportamental as funcionalidades e externamente visíveis no sistema já a visão de implementação abrange o gerenciamento de versões do sistema construídas pelo agrupamento de módulos componentes e subir sistemas a visão de implantação corresponde a distribuição física do sistema em seus subir sistemas EA conexão entre essas partes e por fim a visão de processo e enfatiza as características de
concorrência paralelismo sincronização e desempenho do sistema dependendo das características da complexidade do sistema nem todas as visões precisam ser construídas por exemplo se o sistema estiver sem instalar de um ambiente computacional de processador único Não há necessidade da visão de implantação outro exemplo se o sistema foi constituído de um único processo a visão de processo e relevante de forma geral dependendo do sistema as visões podem ser ordenados por grau de relevância e antes de conhecermos os diagramas ao ML é importante discutirmos um pouco o conceito de abstração abstração é o exame seletivo de certos aspectos
de um problema o objetivo da Administração é isolar os aspectos importantes para alguma finalidade e suprimir os aspectos que não são importantes abstração deve ter sempre uma finalidade pois a finalidade determina o que é e o que não é importante muitas Abstrações diferentes a mesma coisa são possíveis dependendo da finalidade para a qual são feitas e todas as Abstrações são incompletas e imprecisos sua representação é sempre uma abreviação da realidade a finalidade da Administração é limitar o universo de modo que possamos melhor entendendo é um recorte e vamos agora conhecer os diagramas ao ml porque
o ML tem tantos diagramas o objetivo disso é fornecer múltiplas visões do sistema a ser modelado analisando-o e modelando no sobre diversos aspectos procurando-se assim atingir a completude da modelagem permitindo que cada diagrama complemente os outros cada diagrama da uml análise o sistema ou parte dele sobre uma determinada Ótica é como se o sistema fosse modelado em camadas alguns diagramas em Foco um sistema de forma mais geral apresentando uma visão externa do sistema Como é o objetivo do diagrama de caso de uso enquanto outros fornecem uma visão de uma camada mais profunda do softer apresentando
enfoque mais técnico ou ainda visualizando apenas uma característica específica do sistema ou um determinado processo a utilização de diversos diagramas permite que fala e sejam descobertas diminuindo a possibilidade de ocorrência de erros futuros e como já vimos Nem sempre é necessário modelar um sistema usando todos os dia é isso depende das características e da complexidade do sistema E aí e voltando ao exemplo da construção de um edifício podemos perceber que ao se projetar uma construção essa não tem apenas uma planta mais diversas enfocando o projeto de construção do prédio sob diferentes formas algumas referentes as
Fundações outra apresentando a planta hidráulica e outras ainda abordando a planta elétrica por exemplo isso torna o projeto do edifício completo abrangendo todas as características da construção da mesma maneira os diversos diagramas fornecidos pelo ml permite analisar o sistema sobre diferentes níveis podendo invocar a organização estrutural do sistema o comportamento de um processo específico a definição de um determinado algoritmo ou até mesmo as necessidades físicas para implantar o software e olhando a síntese Geraldo diagramas podemos dizer que os diagramas da uml dividem-se em diagramas estruturais e comportamentais contendo os últimos ainda uma subdivisão representada pelos
diagramas de interação conforme pode ser verificado na figura e os diagramas estruturais abrangem o diagrama de classes no diagrama de componentes o diagrama de objetos o diagrama de perfil o diagrama de estruturas compostas o diagrama de implantação e o diagrama de pacotes enquanto os diagramas comportamentais englobam o diagrama de atividades o diagrama de casos de uso diagrama de máquina de Estados e os últimos 4 correspondem aos diagramas da subdivisão de diagrama de interação sendo eles o diagrama de sequência o diagrama de comunicação o diagrama de visão Geral de interação e o diagrama de tempo vamos
ver um pouco mais sobre cada um deles e o diagrama de casos de uso tem por objetivo apresentar uma visão externa Geral das funcionalidades que o sistema deverá oferecer aos usuários sem se preocupar muito com a questão de como Tais funcionalidades serão implementadas costuma ser utilizado principalmente nas fases de elicitação e análise de requisitos do sistema embora vem a ser consultado durante todo o processo de modelagem e possa servir de base para diversos outros diagramas procura apresentar uma linguagem simples e de fácil compreensão para que os usuários possam ter uma ideia Geral de como sistema
vai se comportar procure identificar os atores usuários outros sistemas ou até mesmo algum rádio especial que utilizaram de alguma forma o software bem como os serviços ou seja as funcionalidades que o sistema disponibilizará a esses atores conhecidos neste Diagrama como os casos de uso e o diagrama de classes é um dos mais importantes e utilizados da o ML Seu principal enfoque está em permitindo a visualização das classes que comporão o sistema com seus respectivos atributos e métodos bem come demonstrar como as classes dos diagramas se relacionam complementam e transmitir informações entre si este diagrama apresenta
uma visão estática de como as classes são organizadas preocupando-se em como definir a estrutura lógica delas o diagrama de classe e serve ainda como apoio para a construção da maioria dos outros diagramas a linguagem o ML e o diagrama de objetos está amplamente associado ao diagrama de classes Na verdade o diagrama de objetos é praticamente um complemento do diagrama de classes e bastante Dependente dele o diagrama fornece uma visão dos valores armazenados pelos objetos de um diagrama de classes em um determinado momento da execução de um processo de software e o diagrama de pacotes é
um diagrama estrutural que tem por objetivo representar como os elementos do modelo estão divididos logicamente Tais elementos podem ser por exemplo sub-sistemas ou componentes englobados por um sistema ou as camadas que o compõem entre outras possibilidades essas divisões lógicas são denominadas pacotes e o diagrama de sequência é um diagrama comportamental que se preocupa com a ordem temporal em que as mensagens são trocadas entre os objetos envolvidos em um determinado o processo em geral baseia-se um caso de uso definido pelo diagrama de mesmo nome e apoia-se no diagrama de classes para determinar os objetos das classes
envolvidas em um processo um diagrama de sequência costuma identificar o evento gerador do processo modelado bem como ator responsável por esse evento e determina como o processo deve se desenrolar e ser concluído por meio da chamada de método separados por mensagens enviadas entre os objetos E aí e o diagrama de comunicação era conhecido como de colaboração até a versão 1.5 do ML está amplamente associado ao diagrama de sequência na verdade um complementa o outro as informações mostradas no diagrama de comunicação com frequência são praticamente as mesmas apresentadas no de sequência porém com um enfoque distinto
visto que este diagrama Não se preocupa com a temporalidade do processo concentrando assim como os elementos do diagrama estão vinculados e quais mensagens trocam entre si durante o processo e o diagrama de máquina de estados Demonstra o comportamento de um elemento por meio de um conjunto finito de transições de estado este diagrama pode ser utilizado para expressar o comportamento de uma parte do sistema ou protocolo de uso de parte de um sistema uma máquina de estados comportamental pode ser usada para especificar o comportamento de vários elementos do modelo o elemento modelado muitas vezes é uma
Instância de uma classe no entanto pode-se usar esse diagrama para modelar o comportamento de um caso de uso por exemplo e o diagrama de atividade preocupa-se em descrever os passos a serem percorridos para conclusão de uma atividade específica podendo esta ser representada por um método com certo grau de complexidade um algoritmo ou mesmo processo completo O diagrama de atividades concentra-se na representação do fluxo de controle e de objetos de uma atividade e o diagrama de visão Geral de interação é uma variação do diagrama de atividades que fornece uma visão geral dentro de um sistema ou
processo de negócio podendo englobar vários processos esse diagrama passou a existir apenas a partir da uml 2.0 e o diagrama de componentes como seu próprio nome indica identifica os componentes que fazem parte de um sistema um subsistema ou mesmos componentes ou classes internas de um componente individual um componente pode representar tanto um componente lógico componente de negócio de processo contra o componente físico como arquivos contendo o código fonte arquivo de ajuda bibliotecas arquivos executáveis entre outros e o diagrama de implantação de termina às necessidades de hardware do sistema como servidores Estações topologias e Protocolos de
comunicação ou seja todo aparato físico sobre o qual o sistema deverá ser executado este diagrama permite demonstrar também como se dará a distribuição dos módulos do sistema em situações e que estes foram executados e imagem um servidor e o diagrama de estrutura composta descreve a estrutura interna de um classificador como uma classe ou component detalhando as partes internas que o compõem como essa se comunicam e colaboram entre si também é utilizado para descrever uma colaboração em que um conjunto de instâncias cooperam entre si para realizar uma tarefa e o diagrama de tempo ou temporização que
escreve a mudança no estado ou condição de uma Instância de uma classe ou papel que ela assume em um período específico de tempo é tipicamente utilizado para demonstrar a mudança no estádio de um objeto em um tempo exato em resposta a eventos externos pode ser utilizado por exemplo na modelagem de sistemas de tempo real sistemas que utilizem recursos de multimídia em que o tempo em que o objeto executa algo é muitas vezes importantes ou ainda para modelar processos de rede e que o sincronismo entre os eventos é essencial Em algumas situações e por fim o
diagrama de perfil é um tanto mais abstrato que os descritos anteriormente este diagrama permite adaptar ao ml a uma plataforma ou domínio a qual a linguagem o ML não foi projetado Originalmente portanto não possui recursos para modelar as características particulares da plataforma tecnologia ou domínio em questão sendo assim por meio da criação de perfis é possível estender a linguagem criando-se novas metaclasses e estereótipos que permitam a modelagem desses novos domínios e e ferramentas Case Case é a sigla para cumprir e de software engineer ou engenharia de software auxiliada por computador são softwares que de alguma
maneira colaboram para a execução de uma ou mais atividades realizadas durante o processo de engenharia de software a maioria das Ferramentas atuais suporta o ML em nossos estudos utilizaremos a ferramenta astah-community versão gratuita e disponível para download na internet bom então é isso pessoal fizemos uma breve apresentação da modelagem de sistemas como o ML e a partir do próximo vídeo vamos entender um pouco mais sobre diagrama de casos de uso não é [Aplausos] [Música]
Copyright © 2025. Made with ♥ in London by YTScribe.com