EINF-UML

download EINF-UML

of 146

Transcript of EINF-UML

  • 8/11/2019 EINF-UML

    1/146

    1

    Introduo

    Linguagem UMLPaulo Sousa

    Instituto Superior de Engenharia do PortoInstituto Politcnico do Porto

  • 8/11/2019 EINF-UML

    2/146

    2

    Parte I

    Introduo

  • 8/11/2019 EINF-UML

    3/146

  • 8/11/2019 EINF-UML

    4/146

    4

    Visualizao

    Modelos explcitos facilitam acomunicao

    Algumas estruturas transcendem o que

    pode ser representado numa linguagemde programao Cada smbolo tem uma semntica bem

    definida

  • 8/11/2019 EINF-UML

    5/146

    5

    Especificao

    A notao UML permite a especificaodas decises importantes ao nvel daanlise, desenho e implementao

  • 8/11/2019 EINF-UML

    6/146

    6

    Construo

    Forward engineering

    Gerao de cdigo com base no modelo

    Reverse engineering

    Gerao do modleo com base no cdigoRound-trip engineering

    Ciclo iterativo de desenvolviemnto com

    gerao de cdigo a partir de um modelo eactualizao do modelo com base no cdigo

  • 8/11/2019 EINF-UML

    7/146

    7

    Documentao

    A notao UML permite a criao dedocumentao dos artefactos existenteso sistema: Conceitos do problema Cenrios de instalao

    possvel acrescentar links para

    documentao externa Documentos de requisitos, planos de testes,

  • 8/11/2019 EINF-UML

    8/146

    8

    Razes para modelar

    Comunicar a estrutura e comportamentodesejado(desejvel) para o sistema

    Visualizar e controlar a arquitectura do

    sistema Compreender o sistema e expor

    oportunidades de simplificao e

    reutilizao

  • 8/11/2019 EINF-UML

    9/146

    9

    Tipos de diagramas

    Estruturais Consideram aspectos estticos do sistema

    Comportamentais

    Consideram aspectos dinmicos do sistema

  • 8/11/2019 EINF-UML

    10/146

    10

    Tipos de diagramas (II)

    Estruturais Classes Objectos

    Componentes Instalao

  • 8/11/2019 EINF-UML

    11/146

    11

    Tipos de diagramas (III)

    Comportamentais Casos de utilizao Sequncia Colaborao Estados Actividades

  • 8/11/2019 EINF-UML

    12/146

    12

    Modelos e vistas

    Modelo uma base de dados dos elementos criados paramodelar o problema

    Vistas Diagramas sobre o modelo onde so colocados os

    elementos existentes

    Apagar um elemento de um diagrama no

    retira esse elemento do modelo! Nas ferramentas Rational del remove do diagrama

    e CTRL+del apaga do modelo

  • 8/11/2019 EINF-UML

    13/146

    13

    Adornments and Extensibility

    An adornment is an item, such as a note, that

    adds text or graphical detail to a model.

    The UML offers various mechanisms that you

    can use to extend the official language. stereotypes tagged values

    constraints

  • 8/11/2019 EINF-UML

    14/146

  • 8/11/2019 EINF-UML

    15/146

    15

    Stereotypes

    A stereotype is an extension of the

    vocabulary of the UML that allows you tocreate a new kind of building block thatsspecific to the problem youre trying tosolve.

    interface

    Observer

    update()

    controlTargetTracker

    Humidity Sensor

  • 8/11/2019 EINF-UML

    16/146

    16

    Esteretipos padro copy indica uma cpia exacta de um objecto; document indica um documento; executable indica um componente executvel num n; extend usado para indicar uma extenso do comportamento padro de

    um caso de utilizao (ex., situaes de erro); file indica um ficheiro com cdigo fonte ou dados; include indica que um determinado caso de utilizao inclui

    explicitamente um outro case de utilizao (ex., comportamentoscomuns); invariant representa uma restrio sobre um elemento que deve ser

    sempre satisfeita (i.e., deve ser sempre verdadeira); postcondition representa uma restrio sobre uma operao que deve

    ser sempre verdadeira aps a execuo da operao;

    precondition representa uma restrio sobre uma operao que deveser sempre verdadeira antes da execuo da operao; system estereotipo associado a um package que representa o

    sistema que se est a modelar; table representa uma tabela de base de dados;

  • 8/11/2019 EINF-UML

    17/146

    17

    Estereotipos no padro

    possvel criar novos esteretipos associados

    apenas com o problema em questo ou com acultura da empresa Outros esteretipos no padro Form indica um formulrio de interaco com o

    utilizador) COM indica que a classe implementada como um

    componente COM; ou o componente fisico umcomponente COM

    CORBA igual ao anterior para CORBA DLL indica que o componente uma DLL Constructorou create indica um mtodo construtor

  • 8/11/2019 EINF-UML

    18/146

    18

    Utilizao dos diferentes

    diagramas

    1. Requisitos/funcionalidades2. Processos3. Estrutura lgica

    4. Estrutura fsica

  • 8/11/2019 EINF-UML

    19/146

    19

    Requisitos/funcionalidades

    dialogando com o cliente identificar as

    funcionalidades de alto nvel (as grandesfunes do sistema) pretendidas nosistema para cada perfil de utilizador,recorrendo a diagramas de casos deutilizao

  • 8/11/2019 EINF-UML

    20/146

    20

    Processos

    continuando o dilogo com o cliente,

    analisar e efectuar uma descrio de altonvel dos processos existentes no sistemae das interaces entre os diferentesintervenientes nesses processos(workflow), recorrendo a diagramas deinteraco (sequncia e colaborao).

  • 8/11/2019 EINF-UML

    21/146

    21

    Estrutura lgica

    partindo do diagramas de casos de

    utilizao e dos diagramas de interacode alto nvel, identificar e descreverdetalhadamente as diferentes entidadesexistentes no sistema (recorrendo adiagramas de classes), bem como detalharos diagramas de interaco anteriores porforma a incluir as classes deimplementao identificadas e respectivasoperaes (diagramas de sequncia e decolaborao).

  • 8/11/2019 EINF-UML

    22/146

    22

    Estrutura fsica

    identificar os diferentes elementos fsicos

    do sistema (ex., bibliotecas de funes,executveis) recorrendo-se de diagramasde componentes, bem como identificar osrecursos de hardware necessrios instalao do sistema usando para taldiagramas de instalao.

  • 8/11/2019 EINF-UML

    23/146

    23

    Parte II

    Diagramas

  • 8/11/2019 EINF-UML

    24/146

    24

    Diagramas Estruturais

    Diagrama de Pacotes

  • 8/11/2019 EINF-UML

    25/146

    25

    Package

    A package is a general-purpose

    mechanism for organizing elements of amodel, such as classes or diagrams, intogroups.

    Every element within a model is uniquely

    owned by one package. Also, thatelements name must be unique withinthat package.

  • 8/11/2019 EINF-UML

    26/146

    26

    Sample Package Diagrams

    Posting Posting Rule

    GL Account

    General Ledger

    Accounting

    A/P G/L A/R

  • 8/11/2019 EINF-UML

    27/146

    27

    Diagramas Comportamentais

    Diagrama de Casos de Utilizao

  • 8/11/2019 EINF-UML

    28/146

    28

    Use Case and Actor

    A use case is a sequence of actions,

    including variants, that a system performsto yield an observable result of value toan actor.

    An actor is a coherent set of roles that

    human and/or non-human users of usecases play when interacting with thoseuse cases.

  • 8/11/2019 EINF-UML

    29/146

    29

    Flows of Events

    The main flow of events (basic course of

    action) describes the sunny-dayscenario.

    Each exceptional flow of events(alternate course of action) describes a

    variant, such as an error condition or aninfrequently occurring path.

  • 8/11/2019 EINF-UML

    30/146

    30

    Simple Use Case Diagram

    Do

    Trade

    Entry

    GenerateReports

    Update

    PortfolioInfo

  • 8/11/2019 EINF-UML

    31/146

    31

    Organizing Use Cases

    packages generalization include

    extend

  • 8/11/2019 EINF-UML

    32/146

    32

    Use Case Packages

    Packages of use cases can be very useful

    in assigning work to sub-teams.

    Portfolios

    Create

    New

    Portfolio

    View

    Portfolio

    Aggregate

    Portfolios

    GeneratePortfolio

    Report

  • 8/11/2019 EINF-UML

    33/146

  • 8/11/2019 EINF-UML

    34/146

    34

    Include

    You can use the include stereotype to

    indicate that one use case includes thecontents of another use case. This enablesyou to factor out frequent common

    behavior.

    Validate

    User

    Place

    Order

    Track

    Order

    include include

  • 8/11/2019 EINF-UML

    35/146

    35

    Extend

    You can use the extend stereotype to

    indicate that one use case is extended byanother use case. This enables you tofactor out infrequent common behavior.

    ValidateUser

    PlaceRush

    Order

    extend

  • 8/11/2019 EINF-UML

    36/146

    36

    Algumas notas sobre use

    cases Relaes entre use cases no significam fluxo

    de execuo Sistemas externas so modelados comoactores

    S se modelam os use cases do prprio

    sistema O importante o texto do use case e no o

    diagrama O texto do use case deve descrever o fluxo

    normal de eventos As situaes excepcionais so descritas numa

    seco parte

  • 8/11/2019 EINF-UML

    37/146

    37

    extends

    includes

  • 8/11/2019 EINF-UML

    38/146

    38

    Exerccio Supor um cenrio de

    portal intranet de umaempresa para publicaodos contactos einformao sobre

    funes doscolaboradores Elaborar um diagrama de

    use cases para este

    cenrio

  • 8/11/2019 EINF-UML

    39/146

    39

    Diagramas Estruturais

    Diagrama de Classes

    C U f Cl

  • 8/11/2019 EINF-UML

    40/146

    40

    Common Uses of Class

    Diagrams

    to model vocabulary of the system, in

    terms of which abstractions are part ofthe system and which fall outside itsboundaries

    to model simple collaborations (societiesof elements that work together to providecooperative behavior)

    to model logical database schema(blueprint for conceptual design of

    database)

  • 8/11/2019 EINF-UML

    41/146

    41

    Class

    A class is a description of a set of objects that

    share the same attributes, operations,relationships, and semantics.

    An attribute is a named property of a class thatdescribes a range of values that instances ofthe property may hold.

    An operation is a service that can berequested from an object to affect behavior.

  • 8/11/2019 EINF-UML

    42/146

    42

    Class Notation

    Name

    Attributes

    Operations

  • 8/11/2019 EINF-UML

    43/146

    43

    Atributos e operaes

    Atributos Nome-do-atributo : tipo-de-dados [ = valor-inicial ] idade : int = 0

    dtNascimento : Data

    Operaes Nome-da-operao (argumentos ) : tipo-de-retorno Argumentos

    [ { in | out | inout } ] Nome-do-argumento : tipo-de-dados setIdade(in idade : int) : void

    getIdade() : int

  • 8/11/2019 EINF-UML

    44/146

    44

    Visibilidade

    Indica o tipo de visibilidade de um

    atributo ou de uma operao de umaclasse Privado (-)

    Apenas acessvel do interior; S as operaesda prpria classe tem acesso -idade : int

    Pblico (+) acessvel do exterior; Qualquer objecto temacesso +getIdade() : int

    Protegido (#) acessvel pelo interior e por classes derivadas

  • 8/11/2019 EINF-UML

    45/146

    45

    Visibilidade (II)

    Tipicamente todos os atributos de uma

    classe devem ser privados Evita a manipulao directa do estado do

    objecto Garante que o objecto estar sempre num

    estado vlido (pelo menos nica eexclusivamente da responsabilidade da

    classe) Fornece-se operaes pblicas para

    aceder aos atributos da classe bem

    como modificar o seu valor

  • 8/11/2019 EINF-UML

    46/146

    46

    Accessors/Mutators So tipos de mtodos/operaes especiais de uma classe Accessorou getter

    Um mtodo que permite consultar o valor de um atributo Normalmente o nome do mtodo construdo com a

    palavra gete o nome do atributo: getDia() : int

    Mutatorou setter Um mtodo que permite modificar o valor de um atributo Este mtodo consegue validar o novo valor evitando dessa

    forma colocar o objecto num estado invlido Normalmente o nome do mtodo construdo com a

    palavasete o nome do atributo: setDia(d : int): void

  • 8/11/2019 EINF-UML

    47/146

    47

    Alternative Class Notations

    Name

    Attributes

    Operations

    Responsibilities

    Name

    Attributes

    OperationsName

    italics abstract

  • 8/11/2019 EINF-UML

    48/146

    48

    Mtodos e classes abstractas Diz-se de um mtodo que definido em termos

    de assinatura mas no implementado Apenas se define o nome do mtodo, os argumentose o tipo de retorno sem fornecer a suaimplementao

    Uma classe abstracta aquela que tem pelomenos um mtodo abstracto No permite a criao de objectos desta classe pois

    nem todos os comportamentos esto definidos Obriga implementao dos mtodos abstractos em

    classes derivadas

    Notao UML: itlico mover() : void

  • 8/11/2019 EINF-UML

    49/146

    49

    Relationships

    connections between classes dependency generalization

    association

  • 8/11/2019 EINF-UML

    50/146

    50

    Dependency

    A dependency is a using relationship

    within which the change in the specificationof one class may affect another class thatuses it.

    Example: one class uses another inoperation

    Window

    handleEvent()

    Event

  • 8/11/2019 EINF-UML

    51/146

    51

    Generalization

    A generalization is a kind of or is a

    relationship between a general thing(superclass or parent) and a more specificthing (subclass or child).

    Shape

    RectangleCircle

  • 8/11/2019 EINF-UML

    52/146

    52

    Association

    An association is a structural relationship

    within which classes or objects areconnected to each other. (An associationbetween objects is called a link.)

    CompanyPerson

  • 8/11/2019 EINF-UML

    53/146

    53

    Association Adornments

    name role multiplicity

    aggregation composition

  • 8/11/2019 EINF-UML

    54/146

    54

    Association Name

    describes nature of relationship:

    can also show direction to read name:CompanyPerson

    works for

    CompanyPerson works for

  • 8/11/2019 EINF-UML

    55/146

    55

    Association Roles

    describe faces that classes present to

    each other within association

    class can play same or different roleswithin different associations

    CompanyPerson employeremployee

  • 8/11/2019 EINF-UML

    56/146

    56

    Association Multiplicity

    possible values same as for classes:

    explicit value, range, or * for many Example: a Person is employed by one

    Company; a Company employs one or

    more Persons

    CompanyPerson 1..*1

  • 8/11/2019 EINF-UML

    57/146

    57

    Associao direccional

    Corresponde a um atributo na classe

    como referncia para um objecto daclasse associada

    EntidadeMundo

    Posicao

    class EntidadeMundo {

    ...

    Posicao pos;

    ...

    }

    Multiplicidade nas

  • 8/11/2019 EINF-UML

    58/146

    58

    p

    associaes

    Quando uma associao tem uma

    multiplicidade diferente de 1 necessriouma coleco de referncias Por exemplo, um vector

    class Carro {

    ...

    Roda[] rodas;

    ...

    }

    Carro

    Roda

  • 8/11/2019 EINF-UML

    59/146

    59

    Associaes

    Um objecto pode ter associaes com

    outros objectos da mesma classe Em termos de diagrama de classes UML,

    essas associaes representam-se como

    arcos

  • 8/11/2019 EINF-UML

    60/146

    60

    AggregationAggregation is a whole/part or has a

    relationship within which one classrepresents a larger thing that consists ofsmaller things.

    Roda

    Carro

  • 8/11/2019 EINF-UML

    61/146

    61

    CompositionComposition is a special form of

    aggregation within which the parts areinseparablefrom the whole.

    Departamento

    Empresa

  • 8/11/2019 EINF-UML

    62/146

    62

    Association ClassesAn association class has properties of

    both an association and a class.

    CompanyPerson

    Job

    description

    dateHired

    salary

  • 8/11/2019 EINF-UML

    63/146

    GECAD1

  • 8/11/2019 EINF-UML

    64/146

    64

    Interface (II) Viso como servios

    A interface descreve o servio fornecido peloobjecto. A interface funciona como um contracto para

    esse servio: se o servio fornecido, entoser fornecido de acordo com o descrito nocontracto

    Permite a captura de semelhana entre classessem impor relaes artificiais entre elas Evidencia o servio prestado sem forar

    qualquer tipo de implementao

    Slide 64

    GECAD1 figura

  • 8/11/2019 EINF-UML

    65/146

    GECAD1 figuraGECAD; 06-12-2002

  • 8/11/2019 EINF-UML

    66/146

    65

    Interface (III) As classes podem realizar uma ou mais

    interfaces

    MyObserver

    update()

    Observer

  • 8/11/2019 EINF-UML

    67/146

    66

  • 8/11/2019 EINF-UML

    68/146

    67

    ConstraintsA constraint is an extension of the

    semantics of one or more model elementswhich specifies a condition that must betrue.

    Portfolio

    Bank Account

    Person

    Corporation

    {secure}

    {or}

  • 8/11/2019 EINF-UML

    69/146

    68

    Exerccio Continuao do

    portal intranet deuma empresa Elaborar um

    diagrama de classespara o cenrio quedescreveram nosdiagramas de use

    case

  • 8/11/2019 EINF-UML

    70/146

    69

    Diagramas Comportamentais

    Diagrama de Sequncia

  • 8/11/2019 EINF-UML

    71/146

    70

    Interaction and Message An interaction is a behavior that

    comprises a set of messages, exchangedamong a set of objects, to accomplish aspecific purpose.

    A message is the specification of acommunication between objects thatconveys information, with the expectationthat some kind of activity will ensue.

  • 8/11/2019 EINF-UML

    72/146

    71

    Sequence Diagram A sequence diagram is an interaction diagram

    that emphasizes the time ordering ofmessages.

    A lifeline is a vertical dashed line thatrepresents the lifetime of an object.

    A focus of control is a tall, thin rectangle thatshows the period of time during which an objectis performing an action.

  • 8/11/2019 EINF-UML

    73/146

    72

    Sequence Diagram Notation

    : Ticket Agentc: Client

    createsetItinerary(i)

    calculateRoute()route

  • 8/11/2019 EINF-UML

    74/146

    73

    Utilizao de diagramas de

  • 8/11/2019 EINF-UML

    75/146

    74

    sequncia Tipicamente cada use case descrito por um diagrama de

    sequncia de alto nvel So muitas vezes sub-diagramas associados a um usecase

    Os focos de controlo so provocados pela recepo deuma mensagem

    Ao elaborar o diagrama de sequncia utilizam-se asclasses identificadas previamente no diagrama de classesmas tambm normal criar novas classes

    O nvel de detalhe do diagrama de sequncia depende doque se quer transmitir. Alto nvel para compreenso geral do processo Baixo nvel para implementao

  • 8/11/2019 EINF-UML

    76/146

    75

    Criao e destruio

    / ClassifierRole3/ ClassifierRole1

    1 : \new\

    2 : \op1\

    4 : Destroy

  • 8/11/2019 EINF-UML

    77/146

    76

    Ciclos e decises (UML 1.x)/ ClassifierRole3/ ClassifierRole1

    1 : \op1\

    2 : \m1\

    loop 5 times

    end loop

  • 8/11/2019 EINF-UML

    78/146

    77

    Ciclos e decises (UML 1.x)/ ClassifierRole3/ ClassifierRole1

    1 : [x=3] \op1\

  • 8/11/2019 EINF-UML

    79/146

    78

    Exerccio Continuao do

    portal intranet deuma empresa Elaborar os

    diagramas desequncia para cadause case identificado

  • 8/11/2019 EINF-UML

    80/146

    79

    Diagramas Comportamentais

    Diagrama de Colaborao

  • 8/11/2019 EINF-UML

    81/146

    80

    Collaboration Diagram A collaboration diagram is an

    interaction diagram that emphasizes theorganization of the objects thatparticipate in the interaction.

    A path is a link between objects, perhapswith a stereotype such as localattached.

    Sequence numbers indicate the timeordering of messages, to one or morelevels.

    Collaboration Diagram

  • 8/11/2019 EINF-UML

    82/146

    81

    Notation

    : Transaction

    c: Client

    1: create

    p: ODBCProxy

    2: setActions (a,d,o)3: destroy

    2.1: setValues(d,3,4)

    2.2: setValues(a,CO)

    global

  • 8/11/2019 EINF-UML

    83/146

    82

  • 8/11/2019 EINF-UML

    84/146

    83

    Algumas notas possvel gerar um diagrama de

    sequncia e a partir de um diagrama decolaborao e vice-versa Ambos apresentam a mesma informao Sequncia: d nfase ao aspecto temporal

    das mensagens Colaborao: d nfase ligao existente

    (topologia) entre as classes

  • 8/11/2019 EINF-UML

    85/146

    84

    Exerccio Continuao do

    portal intranet deuma empresa

    Elaborar osdiagramas

    colaboraocorrespondentes aosdiagramas desequncia

    elaborados no passoanterior

  • 8/11/2019 EINF-UML

    86/146

    85

    Diagramas Comportamentais

    Diagrama de Estados

  • 8/11/2019 EINF-UML

    87/146

    S N i

  • 8/11/2019 EINF-UML

    88/146

    87

    State Notation

    Idle

    Cooling

    Heating

    Activating

    Active

    St t M hi d T iti

  • 8/11/2019 EINF-UML

    89/146

    88

    State Machine and Transition A state machine is a behavior that

    specifies the sequences of states that anobject goes through in its lifetime, inresponse to events, and also its

    responses to those events. A transition is a relationship between

    two states; it indicates that an object in

    the first state will perform certain actions,then enter the second state when a givenevent occurs.

    E t d E it A ti

  • 8/11/2019 EINF-UML

    90/146

    89

    Entry and Exit Actions

    An entry action is the first thing that occurs

    each time an object enters a particular state.

    An exit action is the last thing that occurs

    each time an object leaves a particular state.

    Tracking

    entry/setMode(onTrack)

    exit/setMode(offTrack)

    A ti iti

  • 8/11/2019 EINF-UML

    91/146

    90

    Activities An activity is an interruptible sequence

    of actions that an object can performwhile it resides in a given state. (Actionsare not interruptible.)

    Tracking

    do/followTarget

    I iti l d Fi l St t

  • 8/11/2019 EINF-UML

    92/146

    91

    Initial and Final StatesThe initial state is the default starting

    place for a state machine.

    The final state indicates the completion ofthe state machines execution.

    Transies

  • 8/11/2019 EINF-UML

    93/146

    92

    Transies Condies de guarda [ x < 5]

    Eventos Cancel key pressed

    Aces / handleCancelKey()

    Combinao dos trs anteriores [x < 5] / x = 5

    Cancel key presses / handleCancelKey() [x < 5 ] Cancel key pressed [allowCancel = true] Cancel key pressed /

    handleCancelKey()

  • 8/11/2019 EINF-UML

    94/146

    Algumas notas

  • 8/11/2019 EINF-UML

    95/146

    94

    Algumas notas Apenas se modela o estado dos

    objectos/classes pertinentes So normalmente sub-diagramas

    associados classe em questo

    Exerccio

  • 8/11/2019 EINF-UML

    96/146

    95

    Exerccio Continuao do

    portal intranet deuma empresa

    Elaborar o(s)diagrama(s) de

    estado das principaisentidadesidentificadas no

    diagrama de classes

    Diagramas Comportamentais

  • 8/11/2019 EINF-UML

    97/146

    96

    Diagramas Comportamentais

    Diagrama de Actividades

    Why Activity Diagrams?

  • 8/11/2019 EINF-UML

    98/146

    97

    Why Activity Diagrams? An activity diagram, which resembles a

    flowchart, is useful for modelingworkflows and the details of operations.

    While an interaction diagram looks at the

    objects that pass messages, an activitydiagram looks at the operations that arecalled by objects.

    State Diagram Carryovers

  • 8/11/2019 EINF-UML

    99/146

    98

    State Diagram CarryoversThe following items are common to state

    diagrams and activity diagrams: activities actions transitions initial/final states

    guard conditions

    Bid plan

    Do construction

    entry/setLock()

    Breaking Up Flows

  • 8/11/2019 EINF-UML

    100/146

    99

    Breaking Up Flows alternate paths:

    branch merge

    parallel flows: fork join

    Branching

  • 8/11/2019 EINF-UML

    101/146

    100

    BranchingA branch has one incoming transition and

    two or more outgoing transitions:

    Charge credit

    card

    Hold in will-callMail tickets

    [today 7 days before show] [today < 7 days before show]

    Merging

  • 8/11/2019 EINF-UML

    102/146

    101

    MergingA merge has two or more incoming

    transitions and one outgoing transition:

    Customer

    sees show

    Mail tickets Customer picks

    up tickets

    Forking

  • 8/11/2019 EINF-UML

    103/146

    102

    ForkingA fork represents the splitting of a single

    flow of control into two or more concurrentflows of control:

    Receive order

    Process orderLog order

    Joining

  • 8/11/2019 EINF-UML

    104/146

    103

    JoiningA join represents the synchronization of

    two or more flows of control into onesequential flow of control:

    Pay bill

    Bill customerReceive product

    Swimlanes

  • 8/11/2019 EINF-UML

    105/146

    104

    SwimlanesSwimlanes partition groups of activities

    based on, for instance, businessorganizations:

    Pay bill

    Bill customerReceive product

    Customer Billing

  • 8/11/2019 EINF-UML

    106/146

    105

    Algumas notas

  • 8/11/2019 EINF-UML

    107/146

    106

    Algumas notas So utilizados para modelar:

    a lgica de uma operao de uma classe um processo de negcio

    So normalmente sub-diagramas de

    classes ou de use cases

    Exerccio

  • 8/11/2019 EINF-UML

    108/146

    107

    Exerccio Continuao do portal

    intranet de umaempresa

    Elaborar o(s)diagrama(s) de

    actividades para asprincipaisactividades/processos

    do sistema

    Diagramas Estruturais

  • 8/11/2019 EINF-UML

    109/146

    108

    Diagramas Estruturais

    Diagrama de Componentes

    Component

  • 8/11/2019 EINF-UML

    110/146

    109

    Co po e t A component is a physical, replaceable

    part of a system that conforms to, andprovides the realization of, a set ofinterfaces.

    examples: dynamic link library (DLL) COM+ component Enterprise Java Bean (EJB)

    Component Notation

  • 8/11/2019 EINF-UML

    111/146

    110

    p

    Scheduler

    -----------------------------------------

    --------------------

    signal.cpp

  • 8/11/2019 EINF-UML

    112/146

    111

    Exerccio

  • 8/11/2019 EINF-UML

    113/146

    112

    Continuao do portalintranet de uma

    empresa Elaborar o diagrama

    de componentes do

    sistema

    Diagramas Estruturais

  • 8/11/2019 EINF-UML

    114/146

    113

    g

    Diagrama de Instalao (deployment)

  • 8/11/2019 EINF-UML

    115/146

  • 8/11/2019 EINF-UML

    116/146

    Deployment Diagram Notation

  • 8/11/2019 EINF-UML

    117/146

    116

    : kiosk

    deploys

    user.exe

    c: consoledeploys

    config.exe

    s: serverdeploys

    dbadmin.exe

    : RAID farm

    10-T Ethernet

    RS-232

  • 8/11/2019 EINF-UML

    118/146

    117

  • 8/11/2019 EINF-UML

    119/146

    Diagramas Estruturais

  • 8/11/2019 EINF-UML

    120/146

    119

    Diagrama de Objectos

    Object DiagramA bj t di h t f bj t

  • 8/11/2019 EINF-UML

    121/146

    120

    An object diagram shows a set of objects,and their relationships, at a specific point intime.

    c: Company

    d1: Department

    name = R&D

    p1: Person

    ID = 13

    : Contact Info

    phone = 411

    Quando usarPermite e idenciar m fotograma da

  • 8/11/2019 EINF-UML

    122/146

    121

    Permite evidenciar um fotograma daexecuo da aplicao para visualizar oestado interno de cada objecto nesseinstante

  • 8/11/2019 EINF-UML

    123/146

    122

    Parte III

    Classes de Anlise

    Analysis Classes

    Introduced by Jacobson in his white

  • 8/11/2019 EINF-UML

    124/146

    123

    Introduced by Jacobson in his whitebook (Object-Oriented SoftwareEngineering; Addison-Wesley, 1992)

    Used in Analysis workflow of Rationals

    Unified Process Boundary class Control class

    Entity class

    Boundary Class

    Used to model interactions between

  • 8/11/2019 EINF-UML

    125/146

    124

    Used to model interactions betweensystem and its actors and clarify andcollect requirements on systemsboundaries

    Often represent windows, screens, APIs

    Control Class

    Used to encapsulate control related to

  • 8/11/2019 EINF-UML

    126/146

    125

    Used to encapsulate control related tospecific use case

    Represent coordination, sequencing,transactions, and control of other objects

    Entity Class

    Used to model long-lived (possibly

  • 8/11/2019 EINF-UML

    127/146

    126

    Used to model long-lived (possiblypersistent) information

    Usually correlates directly to class onclass diagram

  • 8/11/2019 EINF-UML

    128/146

    127

    Utilizao

    Numa fase inicial da anlise

  • 8/11/2019 EINF-UML

    129/146

    128

    Numa fase inicial da anlise para capturar a muito alto nvel a estrutura do

    sistema a desenvolver Juntamente com os diagramas de sequncia

    ou actividades para descrever em passos

    gerais os principais processos a implementar Base, atravs de um processo iterativo, para

    refinao at ao modelo de implementao

    Parte IV

  • 8/11/2019 EINF-UML

    130/146

    129

    Parte IV

    Um Exemplo

    Livraria na internet

    A livraria tem que aceitar encomendas via internet. A livraria deve manter uma lista de contas de clientes at o limite de um

  • 8/11/2019 EINF-UML

    131/146

    130

    A livraria deve manter uma lista de contas de clientes at o limite de ummilho de clientes.

    As contas dos clientes devem estar protegidas por password. Deve ser possvel efectuar pesquisas no catalogo principal da livraria. Essas pesquisas devem poder ser efectuadas por diversos mtodos

    (ex., titulo, autor, ISBN). A livraria deve fornecer um mtodo seguro de pagamento via carto de

    crdito.

    Devem existir ligaes electrnicas entre a aplicao web a base dedados e o sistema de expedio (ex., DHL). Devem existir ligaes electrnicas entre a aplicao web a base de

    dados e o sistema de gesto de inventrio. A livraria deve manter um esquema de comentrios aos livros existentes

    no catalogo, sendo possvel a qualquer utilizador fazer um novo

    comentrio. Os livros devem ser classificados segundo uma pontuao baseada nos

    inputsdos utilizadores.

    Diagrama de Caso deUtilizao

  • 8/11/2019 EINF-UML

    132/146

    131

  • 8/11/2019 EINF-UML

    133/146

    Caso de Utilizao EditShoping Cart

  • 8/11/2019 EINF-UML

    134/146

    133

    Diagrama de sequncia paracaso de utilizao Login

  • 8/11/2019 EINF-UML

    135/146

    134

    Modelo do domnio

  • 8/11/2019 EINF-UML

    136/146

    135

    Diagrama de classes (I)

  • 8/11/2019 EINF-UML

    137/146

    136

    Diagrama de classes (II)

  • 8/11/2019 EINF-UML

    138/146

    137

    Diagrama de classes (III)

  • 8/11/2019 EINF-UML

    139/146

    138

  • 8/11/2019 EINF-UML

    140/146

    Exerccio (1/2)

    Pretende-se um sistema que permita fazeri l d i t

  • 8/11/2019 EINF-UML

    141/146

    140

    simulaes de eco-sistemas Existe um mundo (tipicamente uma grelha de

    NxM posies) Nesse mundo existiro seres/objectos (ex.,

    lobos, veados, ervas, pedras). Normalmente em cada quadrado da grelha

    (mundo) apenas pode existir um ser/objecto Em cada passo da simulao cada objecto/ser

    executa uma aco (por ex., dar um passo)

    Exerccio (2/2)

    A simulao dura um nmero de passosprdefinidos pelo utilizador

  • 8/11/2019 EINF-UML

    142/146

    141

    prdefinidos pelo utilizador

    O utilizador pode configurar o mundoindicando: Dimenso (NxM) Nmero e tipo de entidades a colocar

    A ideia ter diferentes tipos de entidades (ex.,1 veado e 4 lobos)

    Cada tipo de entidade tem os seus prprios

    objectivos Lobo capturar o veado Veado fugir dos lobos e comer erva

    Exerccio (3/3)

    Cada entidade pode ver o mundo sual i d

  • 8/11/2019 EINF-UML

    143/146

    142

    volta e movimentar-se no mundo suavolta

    Normalmente apenas se movimenta uma

    casa (N, S, E, O) ou (N, NE, E, SE, S,SO, O) Normalmente apenas v uma casa mas

    pode-se implementar animais com visomais apurada

  • 8/11/2019 EINF-UML

    144/146

    143

    Fim do Mdulo

    Bibliografia

    Parte desta apresentao baseada em:

  • 8/11/2019 EINF-UML

    145/146

    144

    An Introduction to the Unified ModellingLanguage, Kendal Scott, EmbarcaderoWebninars, 2000.

    Rosenberg, Doug (2001). UML for e-Commerce. Seminrio Iconix.

    Onde obter mais informao

    UML.orgh // l /

  • 8/11/2019 EINF-UML

    146/146

    145

    http://www.uml.org/

    UML na OMG http://www.omg.org/technology/uml/index.ht

    m Dicionrio UML http://www.usecasedriven.com/UML.htm

    Cetus Links http://www.cetus-links.org/oo_uml.html