UML - Motivação - Projeto de Sistemas de Software O que é um modelo? • Construímos modelos para compreender melhor o sistema que estamos desenvolvendo. • Um modelo é uma simplificação da realidade. © LES/PUC-Rio O que é um modelo? © LES/PUC-Rio O que é um modelo? © LES/PUC-Rio O que é um modelo? © LES/PUC-Rio Por que modelar software? • Ajuda a ter uma visão geral do sistema • Permite especificar a estrutura e o comportamento do sistema • Proporciona um guia para a construção do sistema • Documenta as decisões tomadas © LES/PUC-Rio O que é a UML? • Unified Modeling Language (UML) é... ... uma linguagem gráfica para visualizar, especificar, construir e documentar os artefatos de um sistema de software. ... resultado da unificação das notações utilizadas nos métodos Booch, OMT (Object Modeling Technique) e OOSE (ObjectOriented Software Engineering). ... adotada por grande parte da indústria de software e por fornecedores de ferramentas CASE como linguagem padrão de modelagem. … utilizada com qualquer processo de desenvolvimento já que é independente dele. © LES/PUC-Rio A UML é uma Linguagem • Uma linguagem fornece um vocabulário e as regras para a combinação de ”palavras” desse vocabulário, com o objetivo de comunicar algo. • Uma linguagem de modelagem é uma linguagem cujo vocabulário e regras têm seu foco voltado para a representação conceitual e física de um sistema. • O vocabulário e as regras de uma linguagem de modelagem indicam como criar e ler modelos bem formados, mas não apontam quais modelos devem ser criados e nem em que seqüência. • Facilita a comunicação entre membros da equipe de desenvolvimento. © LES/PUC-Rio A UML é uma Linguagem para... ...visualização, especificação, construção e documentação. http://www.uml.org/ http://www.omg.org/ © LES/PUC-Rio A UML é uma Linguagem para Visualização • No processo de desenvolvimento de sistemas de software, é quase impossível a visualização de toda a estrutura de um sistema sem o uso de modelos que a represente. • A UML fornece os símbolos gráficos para a representação de artefatos de software. • Por trás de cada símbolo empregado na notação da UML, existe uma sintaxe e uma semântica bem-definidas. • Dessa maneira, um desenvolvedor poderá usar a UML para escrever seu modelo, diminuindo a ambigüidade em sua interpretação. © LES/PUC-Rio A UML é uma Linguagem para Especificação • No presente contexto, especificar significa construir modelos precisos, completos e sem ambigüidades. • A UML atende a todas as decisões importantes em termos de análise, projeto e implementação, que devem ser tomadas para o desenvolvimento e implantação de sistemas complexos de software. © LES/PUC-Rio A UML é uma Linguagem para Construção • Os modelos de UML podem ser diretamente ”traduzidos” para várias linguagens de programação. – Isso significa que é possível mapear os modelos da UML para linguagens de programação tais como, Java, C++ e Visual Basic. – Esse mapeamento permite a realização de uma engenharia de produção: geração de código a partir de um modelo em UML. – O processo inverso, a engenharia reversa, também é possível, com a reconstrução de um modelo a partir de sua implementação. © LES/PUC-Rio A UML é uma Linguagem para Documentação • Cada modelo criado é um artefato do software … Diagrama de Casos de Uso Diagrama de Classes blogSystem Criar Blog Criar Comentario <<include>> Usuario <<include>> -dtCriacao:Date -titulo:String -dono:UsuarioBlog -conteudos :Vector Ler Nota 1 dono U s u a rio B l o g Ler Comentario <<include>> -email:String 0..* usuario usa 1 +notificarEx clus ao:void Remover Comentario Remover Conteudo 1 … +criarNota:void +ex ibirConteudo:void +comentar:void +lerComentarios:Vector +removerC onteudo:void +lerNotas :Vector +Blog : SIM autor : AnalisadorMatricula 0..* Remover Nota C o n te u d o 0..* Dono do blog Diagrama de Seqüência B lo g 0..* Ler Conteudo Criar Nota -dtCriacao:Date -texto:String -autor:Us uarioBlog 1: submeterFormulario(f) +Conteudo +ex ibirConteudo:void N o ta -comentarios:Vector -attribute1:int +comentar:void +lerComentarios:Vector +finaliz e:void © LES/PUC-Rio C o m e n ta r io 0..* +finaliz e:void 2: adicionar(a,d ) Uma linguagem de diagramas Diagramas de Classe Diagramas de Objetos Diagramas de Casos de Uso Modelos Diagramas de Seqüência Diagramas de Componentes Diagrama de Deployment Diagramas de Colaboração Ponto de Vista Estático Diagramas de Estado Diagramas de Atividade Ponto de Vista Dinâmico © LES/PUC-Rio UML 2.2 tem 14 tipos de diagramas © LES/PUC-Rio Uma colagem de diagramas UML © LES/PUC-Rio Vantagens da Utilização da UML • Padrão aberto e não proprietário. • Extensível. • Independência do processo de desenvolvimento. • Aplicável a todas as fases do ciclo de desenvolvimento. • Independência de linguagem de implementação. © LES/PUC-Rio História dos métodos orientado a objetos e notações © LES/PUC-Rio Breve História da UML 2004 - 2005 UML 2.0 2003 UML 1.5 2001 UML 1.4 1999 UML 1.3 UML 1.1 1997 UML 1.0 UML 0.9 1996 Unified Method 1995 1994 Outros métodos Método de Booch 0.8 OMT (Rumbaugh) © LES/PUC-Rio OOSE (Jacobson)