Linguagem de Modelagem Unificada - dimap.ufrn.br jair/ES/slides/UMLVisaoGeral-v2.pdf ·...

Click here to load reader

  • date post

    11-Sep-2018
  • Category

    Documents

  • view

    214
  • download

    1

Embed Size (px)

Transcript of Linguagem de Modelagem Unificada - dimap.ufrn.br jair/ES/slides/UMLVisaoGeral-v2.pdf ·...

  • Linguagem de Modelagem Unificada

    A UML uma linguagem para visualizao especificao construo documentao

    de artefatos de um sistema com uma componenteintensiva de software (software intensive system)

    UML no uma metodologia no diz quem deve fazer o qu, quando e como UML pode ser usado segundo diferentes metodologias, tais

    como RUP (Rational Unified Process), FDD (Feature DrivenDevelopment), etc.

    UML no uma linguagem de programaoEstes slides esto baseados em material disponvel na internet pela Rational Software.Foi utilizada traduo de Joo Pascoal Faria, Univ. do Porto

  • Histrico UML

    Booch method OMT

    Unified Method 0.8OOPSLA 95

    OOSEOther methods

    UML 0.9Web - June 96

    publicfeedback

    Final submission to OMG, Sep 97

    First submission to OMG, Jan 97

    UML 1.1OMG Acceptance, Nov 1997

    UML 1.3, 1.4, 1.5

    UML 1.0UML partners

    UML 2.0, 2.1

    Minor revisions 1.3, 1.4, 1.5

    Major revision UML 2.0, 2003

    Minor revisions UML 2.1, 2007

  • Meyer

    Before and after conditions

    Harel

    StatechartsGamma, et al

    Frameworks and patterns,

    HP Fusion

    Operation descriptions and message numbering

    Embley

    Singleton classes andhigh-level view

    Wirfs-Brock

    Responsibilities

    Odell

    Classification

    Shlaer - Mellor

    Object lifecycles

    Rumbaugh

    OMT

    Booch

    Booch method

    Jacobson

    OOSE

    Unificao de mtodos e formalismos

  • Vantagens da UML

    um padro aberto verso 1.1 aprovada pelo OMG (Object Management Group)

    em Novembro de 1997

    Suporta todo o ciclo de vida do software modelagem do negcio (processos e objetos do negcio) modelagem de requisitos alocados ao software modelagem da soluo de software

    Suporta diversas reas de aplicao baseada na experincia e necessidades da

    comunidade de usurios suportada por muitas ferramentas

  • Parceiros UML

    Rational Software Corporation Hewlett-Packard I-Logix IBM ICON Computing Intellicorp MCI Systemhouse Microsoft ObjecTime Oracle Platinum Technology Taskon Texas Instruments/Sterling Software Unisys

  • Modelos, Diagramas e Vises (1.x)

    Use CaseDiagramsUse Case

    DiagramsDiagramas de Casos de Uso

    ScenarioDiagramsScenario

    DiagramsDiagramas deColaborao

    StateDiagramsState

    DiagramsDiagramas de Componentes

    ComponentDiagramsComponent

    DiagramsDiagramas de Implantao

    StateDiagramsState

    DiagramsDiagramasde Objetos

    ScenarioDiagramsScenario

    DiagramsDiagramas deEstados

    Use CaseDiagramsUse Case

    DiagramsDiagramas deSequncia

    StateDiagramsState

    DiagramsDiagramas deClasses

    Diagramas deAtividades

    Modelos

    Um modelo uma descriocompleta de umsistema a partirde umaperspectivaparticular.

  • Exemplo bsico Hello World!

    import java.awt.Graphics;class HelloWorld extends java.applet.Applet{ public void paint (Graphics g) { g.drawString("Hello, World!", 10, 10); }}

  • Modelos, Diagramas, Vises eElementos (1) Um modelo uma representao em pequenaescala, numa perspectiva particular, de umsistema existente ou a criar

    Ao longo do ciclo de vida de um sistema soconstrudos vrios modelos, sucessivamenterefinados e enriquecidos

    Um modelo constitudo por um conjunto dediagramas (desenhos) consistentes entre si,acompanhados de descries textuais doselementos que aparecem nos vrios diagramas

  • Modelos, Diagramas, Vises eElementos (2) Um diagrama uma viso sobre um modelo

    De acordo com o interesse de uma das partes envolvidas(stakeholder)

    Proporciona uma representao parcial do sistema Deve ser semanticamente consistente com outras vises

    Na UML 1.5, h 9 diagramas padres e 3 deorganizao Diagramas de viso esttica: casos de uso (use case),

    classes, objetos, componentes, implantao (deployment) Diagramas de viso dinmica: sequncia, colaborao,

    estados (statechart), actividades Diagramas de organizao: pacotes, subsistemas e

    modelos O mesmo elemento (exemplo: classe) pode aparecer

    em vrios diagramas de um modelo

  • Diferentes Vises

    Organizao Comportamento

    Viso deDesign

    Viso de implementao

    Viso deProcesso

    Components Classes, interfaces,collaborations

    Active classes

    Viso de implantao

    Nodes

    Use Case View

    Use cases

  • Diagramas na UML 2.x

    DiagramaUML

    DiagramaEstrutural

    DiagramaComportamental

    Diagrama de Classe

    Diagrama de Componentes

    Diagrama de Objetos

    Diagrama de Estruturas

    Compostas

    Diagrama de Implantao

    Diagrama de Pacotes

    Diagrama de Atividades

    Diagrama de Casos de Uso

    Diagrama de Mquinasde Estados

    Diagrama de Interao

    Diagrama de Seqncia Diagrama de

    Viso Geral de InteraoDiagrama de

    ComunicaoDiagrama de Temporizao

  • Elementos de Modelagem (1)

    Elementosestruturais classe, interface,

    colaborao, casode uso, classeativa, componente,n

    Elementos decomportamento interao, mquina

    de estados Elementos de

    agrupamento pacote (package),

    subsistema Outros elementos

    nota

    Fonte: Grady Booch

  • Elementos de Modelagem (2)

    Relaes Dependncia Associao Generalizao Realizao (realization)

    Mecanismos de extensibilidade Esteretipos Propriedades (tagged values) Restries (constraints)

    Fonte: Grady Booch

    Fonte: Grady Booch

  • Diagrama de Casos de Uso (Use CaseDiagram) Captura a funcionalidade do sistema tal como

    visto pelos utilizadores Construdo nos primeiros estgios do

    desenvolvimento Objetivo

    Especificar o contexto de um sistema Capturar os requisitos funcionais de um sistema Validar a arquitetura de um sistema Dirigir a implementao e gerar casos de teste

    Desenvolvido por analistas e especialistas dedomnio

  • Diagrama de Casos de Uso(Use Case Diagram)

    Fonte: Grady Booch

  • Diagrama de Classes

    Captura o vocabulrio de umsistema

    Construdo e refinado aolongo do desenvolvimento

    Objetivo Nomear e modelar

    conceitos do domnio Especificar esquemas

    lgicos de bases de dados Especificar programas OO

    Desenvolvido por analistas,designers eimplementadores

  • Diagrama de Objetos

    Mostra objetos(instncias de classes)e ligaes (instnciasde associaes)

    Construdo durante aanlise e design

    Objetivo Ilustrar estruturas de

    dados/objetos Especificar

    instantneos(snapshots)

    Desenvolvido poranalistas, designers eimplementadores

  • Diagrama de Componentes

    Captura a estrutura fsicada implementao(tipicamente arquivos)

    Construdo como parte daespecificao daarquitetura

    Objetivo Organizar o cdigo fonte Construir uma release

    executvel Especificar uma base de

    dados fsica Desenvolvido por

    arquitetos eprogramadores

  • Diagrama de Implantao(Deployment Diagram) Captura a topologia do

    hardware de um sistema Construdo como parte da

    especificao da arquitetura Objetivo

    Especificar a distribuio decomponentes

    Identificar estrangulamentosde desempenho

    Desenvolvido por arquitetos,engenheiros de redes, eengenheiros de sistemas

  • Diagrama de Sequncia

    Capturacomportamentodinmico (orientadoao tempo)

    Objetivo Modelar fluxos de

    controle Ilustrar cenrios

    tpicos

  • Diagrama de Colaborao

    Captura comportamento dinmico (orientado amensagens)

    Objetivo Modelar fluxo de controle Ilustrar a coordenao entre estrutura de objetos e controle

  • Diagrama de Estados(Statechart Diagram) Captura comportamento dinmico (orientado a

    eventos) Objetivo

    Modelar ciclo de vida de objetos Modelar objetos reativos (interfaces com o utilizador,

    dispositivos, etc.)

  • Diagrama de Actividades

    Capturacomportamentodinmico (orientadoa atividades)

    Objetivo Modelar processos

    de negcio eworkflows

    Modelar operaes(algoritmos)