500 likes | 601 Views
Unified Modeling Language. Agenda. Software e modelagem; UML Introdução; Diagramas; Comentários finais;. Agenda. Software e modelagem; UML Introdução; Diagramas; Comentários finais;. Evolução do software.
E N D
Agenda • Software e modelagem; • UML • Introdução; • Diagramas; • Comentários finais;
Agenda • Software e modelagem; • UML • Introdução; • Diagramas; • Comentários finais;
Evolução do software • O surgimento de sistemas de software complexos resultou na necessidade de reavaliar a forma de desenvolver sistemas; • As técnicas tem evoluído de forma impressionante, notavelmente no que tange à modelagem de sistemas.
Novos requisitos de sistemas • Escalabilidade; • Segurança; • Robustez; • De fácil manutenção; • Reutilizável; Como resolver isso...
Modelagem • Um modelo pode ser visto como uma representação idealizada de um sistema a ser construído; • Maquetes de edifícios e de aviões e plantas de circuitos eletrônicos são apenas alguns exemplos de modelos; • Uma simplificação da realidade que nos ajuda a entender um problema complexo;
Modelagem de software • A modelagem de sistemas de software consiste na utilização de notações gráficas e textuais com o objetivo de construir modelos que representam as partes essenciais de um sistema, considerando-se diversas perspectivas diferentes e complementares.
Para que modelar • Ajuda no gerenciamento da complexidade inerente ao desenvolvimento de software; • Ajuda na comunicação entre as pessoas envolvidas; • Ajuda na predição do comportamento futuro do sistema.
Evolução da modelagem • Na primeira metade da década de 90 surgiram várias propostas de técnicas para modelagem de sistemas; • Houve uma grande proliferação de propostas para modelagem de sistemas segundo o paradigma orientado a objetos; • Existiam diferentes notações gráficas para modelar uma mesma perspectiva de um sistema.
Necessidade de um padrão • Percebeu-se a necessidade de um padrão para a modelagem de sistemas, que fosse aceito e utilizado amplamente; • Surgiram esforços nesse sentido de padronização, sendo o principal liderado por James Rumbaugh, Grady Booch e Ivar Jacobson (Rational).
Agenda • Software e modelagem; • UML • Introdução; • Diagramas; • Comentários finais;
UML... • Surge a UML em 1996 como a melhor candidata para ser a linguagem unificadora de notações; • Em 1997 a UML é aprovada como padrão pela OMG; • Desde então tem tido grande aceitação; • Atualmente na versão 2.0;
Características da UML • É uma linguagem visual; • É independente de linguagem de programação; • É independente de processo de desenvolvimento; • Não é uma linguagem de programação; • Não é uma metodologia.
Usos da UML • Visualização; • Especificação; • Documentação; • Comunicação; • Construção.
Diagramas Podem ser usados para... • Mostrar os limites de um sistema e suas funções; • Representa a estrutura estática de um sistema; • Modelar o comportamento de objetos; • Apresentar a implementação física e a arquitetura de um sistema;
Elementos Essenciais Estruturais Classe Objeto Nó Interface Componente Relacionamentos
Elementos Essenciais Comportamentais Estados Mensagens Caso de uso Ator
Elementos Essenciais Extensão Notas Tagged Values
Elementos Essenciais Agrupamento Pacotes
Agenda • Software e modelagem; • UML • Introdução; • Diagramas; • Comentários finais;
Diagrama de Casos de UsoVisão Geral • Descreve o que o sistema faz do ponto de vista do observador externo; • Ajuda a esclarecer os requisitos do sistema; • Ajuda a dividir o desenvolvimento do sistema em tarefas;
Diagrama de Casos de Uso Caso de uso • Representa as diferentes funcionalidades que o sistema disponibiliza aos usuários.
Diagramas de Caso de Uso Atores • Diferentes usuários que operam o sistema; • Sistemas externos que interagem com o sistema;
Diagramas de Caso de Uso Associação • Representa a comunicação entre o ator e o caso de uso; • Também existem associações entre casos de usos;
Diagramas de Classe Visão Geral • Largamente utilizado; • Descreve os diferentes tipos de objeto e o relacionamentos entre eles.
Diagramas de Classe Classes • Estereótipo; • Atributos; • Operações; • Visibilidade; • Tipo;
Diagramas de Classe Relacionamentos • Associações representam relações entre ocorrências de classes;
Diagramas de Classe Relacionamentos • Multiplicidade; • Navegabilidade;
Diagramas de Classe Relacionamentos • Agregação; • Composição;
Diagramas de Classe Relacionamentos • Generalização; • Dependência;
Diagramas de Classe Pacotes • Agrupa classes relacionadas;
Diagrama de Seqüência • Mostra um conjunto de objetos, seus relacionamentos e as mensagens que podem ser enviadas entre eles; • Diagrama de seqüência dá ênfase à seqüência de mensagens;
Diagrama de Seqüência Objetos • Representa uma instância de uma determinada classe;
Diagrama de Seqüência Mensagens • Representa troca de mensagens entre os objetos;
Diagrama de Seqüência Fragmentos • Servem para separar blocos de mensagens condicionadas a teste ou laço;
Diagrama de estados • Exibe os possíveis estados de um objeto; • Exibe também as transições que causam a mudança de estado.
Diagramas de Classe Elementos básicos • Estado inicial; • Estado final; • Estado intermediário;
Diagramas de Implantação Visão Geral • Mostra a configuração de software ou hardware; • Permite avaliar as diferentes situações de implantação do sistema.
Diagramas de Implantação Elementos básicos • Componente; • Nó.
Agenda • Software e modelagem; • UML • Introdução; • Diagramas; • Comentários finais;
Quanto esforço empregar • Projeto; • Equipe de trabalho; • Complexidade; • Automatismos possíveis;
Engenharia Reversa • Útil quando se quer trabalhar com sistemas sem documentação; • Nem sempre o resultado é satisfatório;
Ferramentas sugeridas • StarUML em www.staruml.com • Poseidon em www.gentleware.com • Umbrello em http://uml.sourceforge.net/index.php • Rational Rose em www.rational.com • Dentre outras...
Fontes • OMG – www.omg.org • UML – www.uml.org • UML Essencial – Grady Booch, Ivar Jacobson e James Rumbaugh