560 likes | 754 Views
Introdução a UML ( Linguagem de Modelagem Unificada ). Sistemas de Informações. A necessidade é a mãe das invenções
E N D
Introdução a UML (Linguagem de Modelagem Unificada)
Sistemas de Informações A necessidade é a mãe das invenções Em conseqüência do crescimento da importância da informação, surgiu a necessidade de gerenciar informações de uma forma adequada e eficiente e, desta necessidade, surgiram os denominados sistemas de informações
Sistemas de Informação Um SI é uma combinação de pessoas, dados, processos, interfaces, redes de comunicação e tecnologia que interagem com o objetivo de dar suporte e melhorar o processo de negócio de uma organização com relação às informações Vantagens do ponto de vista competitivo Objetivo principal e final da construção de um SI: adição de valor à organização
Sistemas de Software Um dos componentes de um SI é denominado sistema de software Compreende os módulos funcionais computadorizados que interagem entre si para proporcionar a automatização de diversas tarefas Característica intrínseca do desenvolvimento de sistemas de software: complexidade
Sistemas de Software • Uma analogia... Aumento da complexidade
Modelos de Software Na construção de sistemas de software, assim como na construção de sistemas habitacionais, também há uma gradação de complexidade A construção desses sistemas necessita de um planejamento inicial
Modelos de Software Um modelo pode ser visto como uma representação idealizada de um sistema que se planeja construir Maquetes de edifícios e de aviões e plantas de circuitos eletrônicos são apenas alguns exemplos de modelos
A princípio, podemos ver a construção de modelos como uma atividade que atrasa o desenvolvimento do software propriamente dito Mas essa atividade propicia... O gerenciamento da complexidade inerente ao desenvolvimento de software. A comunicação entre as pessoas envolvidas. A redução dos custos no desenvolvimento. A predição do comportamento futuro do sistema. Entretanto, note o fator complexidade como condicionante dessas vantagens. Razões para Construção de Modelos
Complexidade Complexidade de software não pode ser evitada! Elementos responsáveis pela complexidade do software Complexidade do domínio do problema Dificuldade no gerenciamento do processo de desenvolvimento A flexibilidade possível em sistemas de software Mas podemos tratar Decomposição Abstração
Decomposição Decompor em partes menores e menores, refinando cada parte independentemente Satisfazendo, assim, a restrição real do ser humano Para entender qualquer nível de um dado sistema precisamos compreender um aspecto por vez Modelagem deve seguir este princípio Vários modelos necessários Impossível entender de forma completa
Abstração • É uma das formas que nós humanos tratamos a complexidade do mundo • Aspectos irrelevantes ao problema estudado devem ficar de fora Representação Abstração Carro Esporte Vermelho Realidade Observada Realidade Representada
Abstração em Modelos • Abstração cujo propósito é permitir que se conheça algo antes de construí-lo • O modelo omite os detalhes não essenciais tornando a manipulação mais fácil • Necessários durante a construção de softwares complexos
Diagramas e Documentação No contexto de desenvolvimento de software, correspondem a desenhos gráficos que seguem algumpadrão lógico. Podemos também dizer que um diagrama é uma apresentação de uma coleção de elementos gráficos que possuem um significado predefinido. Diagramas normalmente são construídos de acordo com regras de notação bem definidas. Ou seja, cada forma gráfica utilizada em um diagrama de modelagem tem um significado específico.
Diagramas permitem a construção de uma representação concisa deum sistema a ser construído. “uma figura vale por mil palavras” No entanto, modelos também são compostos de informações textuais. Dado um modelo de uma das perspectivas de um sistema, diz-se que o seu diagrama, juntamente com a informação textual associada, formam a documentação deste modelo. Diagramas e Documentação
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
Evolução do Software O rápido crescimento da capacidade computacional das máquinas resultou na demanda por sistemas de software cada vez mais complexos O surgimento de sistemas de software mais complexos resultou na necessidade de reavaliação da forma de desenvolver sistemas Conseqüentemente as técnicas utilizadas para a construção de sistemas computacionais têm evoluído de forma impressionante, notavelmente no que tange à modelagem de sistemas
Evolução do Software Na primeira metade da década de 90 surgiram várias propostas de técnicas para modelagem de sistemas segundo o paradigma orientado a objetos Houve uma grande proliferação de propostas para modelagem orientada a objetos diferentes notações gráficas para modelar uma mesma perspectiva de um sistema cada técnica tinha seus pontos fortes e fracos
Necessidade de um Padrão Percebeu-se a necessidade de um padrão para a modelagem de sistemas, que fosse aceito e utilizado amplamente Alguns esforços nesse sentido de padronização, o principal liderado pelo “três amigos” Surge a UML (Unified Modeling Language) em 1996 como a melhor candidata para ser linguagem “unificadora”
Necessidade de um Padrão Em 1997, a UML é aprovada como padrão pelo OMG Desde então, a UML tem tido grande aceitação pela comunidade de desenvolvedores de sistemas. É uma linguagem ainda em desenvolvimento Atualmente na versão 2.0
UML (Linguagem de Modelagem Unificada) “A UML é a linguagem padrão para visualizar, especificar, construir e documentar os artefatos de software de um sistema.” Unificação de diversas notações anteriores Mentores: Booch, Rumbaugh e Jacobson “Três Amigos” IBM Rational (www.rational.com)
A UML “A Linguagem de Modelagem Unificada (UML) é uma linguagem para especificar, visualizar, construir e documentar os artefatos de sistemas de software, bem como para modelar negócios e outros sistemas que não sejam de software” Iniciou a partir da junção dos métodos desenvolvidos JimRumbaugh (OMT – Object Modeling Technique) e Grady Booch (Booch)
UML (Linguagem de Modelagem Unificada) UML é... uma linguagem visual independente de linguagem de programação. independente de processo de desenvolvimento UML não é... uma linguagem programação (mas possui versões!) uma técnica de modelagem A UML é suportada por ferramentas : Rational Rose (IBM), Together (Borland), Visual Paradigm, Poseidon, Jude, Umbrela, etc....
Ferramentas Poseidon- existe um versão opensource (Community version) Pacestar UML - Uma versão shareware de uma ferramenta mais simples. Rational Rose- Cópia demo do (Rational Rose Limited Edition).(Tem 10 MB) Dia - http://www.gnome.org/projects/dia/ ArgoUML - http://www.argoUML.tigris.org Jude -http://jude.change-vision.com/jude-web/index.html Umbrello - http://uml.sourceforge.net/download.php Visual Paradigm - http://www.visual-paradigm.com/
Utilizando UML UML - linguagem de modelagem unificada Notação + semântica
Uso da UML Usada em diversos sistemas Abrange qualquer característica de um sistema OO, através de seus diagramas Aplica-se em diferentes fases do processo
Propósitos da UML A UML é uma linguagem destinada a: Documentar Visualizar Especificar Construir
Documentar Artefatos como requisições de negócios, modelo de arquitetura, código fonte, modelo de análise, protótipo e outros documentos, pode ser documentados com a UML.
Visualizar No processo de desenvolvimento de sistemas, é quase impossível a visualização de toda a sua estrutura sem um modelo que o represente. Dessa forma, a UML disponibiliza símbolos gráficos para a representação de artefatos de software
Especificar Especificar significa: construir modelos precisos, sem ambigüidades e completos. A UML atende todos os requisitos de especificação dentro de um processo, desde a fase de análise até a fase de testes e implementação do sistema concluído
Construir Na UML é possível realizar um mapeamento dos modelos gerados, para as linguagens de programação e até mesmo para banco de dados relacionais ou orientados a objetos
Diagramas da UML Um diagrama na UML é uma apresentação de uma coleção de elementos gráficos que possuem um significado predefinido No contexto de desenvolvimento de software, correspondem a desenhos gráficos que seguem algum padrão lógico
Diagramas da UML Um processo de desenvolvimento que utilize a UML como linguagem de modelagem envolve a criação de diversos documentos Estes documentos, denominados artefatos de software, podem ser textuais ou gráficos Os artefatos gráficos produzidos no desenvolvimento de um SSOO são definidos através dos diagramas da UML
Diagrama na UML Um diagrama é a apresentação gráfica de um conjunto de elementos, geralmente representados como gráficos de vértice (itens) e arcos (relacionamentos). Um diagrama constitui uma projeção de um determinado sistema
Blocos de construção da UML Itens Relacionamentos
Itens Os itens são blocos de construção da modelagem orientada a objetos. Existem quatro tipos de itens na UML. São eles: Itens estáticos: representam a estrutura do modelo, elementos conceituais e físicos (classes, colaborações, caso de uso, etc.) Itens dinâmicos: definem o comportamento do modelo (interações e estados dos objetos) Pacotes: são partes organizacionais da UML. Notas: são as partes explicativas da modelo na UML (comentário e observações de esclarecimentos no modelo
Itens estáticos - Classe Uma classe é um conjunto de objetos que compartilham os mesmos atributos, operações e relacionamentos.
Itens estáticos – Colaboração Uma colaboração é o nome dado à interação entre duas ou mais classes, com o objetivo de fornecer algum comportamento cooperativo. Ocorrem por meio de troca de mensagens entre dois ou mais objetos
Itens estáticos – Caso de uso Um caso de uso é um documento que descreve os cenários pretendidos para um sistema, com o objetivo de atender às necessidades do usuário:
Itens estáticos – Componentes Um componente é a parte física de um sistema.
Itens dinâmicos Os itens dinâmicos representam as partes de um sistema que possam ter alguma alteração. Existem dois tipos principais de itens dinâmicos: Interação Máquina de estados
Itens dinâmicos – Interação Representa a realização dos processos de um sistema, por meio de troca de mensagem entre objetos. Podem envolver mensagens, seqüências de ações e conexões entre objetos. Uma interação é representada por uma flecha. Mensagem
Itens dinâmicos – Máquina de estados Representa um comportamento que especifica as seqüências de estados pelos quais os objetos passam durante sua existência, de acordo com os eventos atendidos. No exemplo a seguir, temos um estado possível para o objeto “Venda”.