of 134/134
[email protected] Prof. Sergio Akio Tanaka [email protected] Pensamento: Se você esta achando que está no nada... Lembre-se... Que é do nada que se inicia tudo

Pensamento: Se você esta achando que está no nada Lembre ... 1 - Introd OO-UML-Arquit... · – Diagramas da UML (UC, Atividade, Estado, Sequência, Comunicação, Implantação,

  • View
    215

  • Download
    0

Embed Size (px)

Text of Pensamento: Se você esta achando que está no nada Lembre ... 1 - Introd OO-UML-Arquit... · –...

  • [email protected]

    Prof. Sergio Akio Tanaka [email protected]

    Pensamento: Se voc esta achando que est no nada... Lembre-se... Que do nada que se inicia tudo

  • [email protected]

    Mensagem

  • [email protected]

    Anlise e Design Orientado a Objetos com Modelagem WEB utilizando UML

    (Unified Modeling Language)

    Carga Horria: 60 horas Professor Sergio Akio Tanaka e-mail [email protected]

    Parte Ia

    Introduo a Orientao a Objetos

  • [email protected]

    Apresentao

    Qual o seu nome? Formao acadmica? Nome da sua empresa e cargo que desempenha? Qual a sua expectativa com a Disciplina do UML? e a ps como

    um todo? Tem interesse em estar fazendo a certificao oficial de UML? e/

    ou outras disciplinas? Experincia prtica e acadmica com UML? OO? Rose? RSM? Outras Ferramentas CASEs?

  • [email protected]

    Cronograma

    05 e 06/04/13 APOO Sergio Tanaka 19 e 20/04/13 APOO Sergio Tanaka 26 e 27/04/13 APOO Sergio Tanaka 24 e 25/05/13 - APOO Sergio Tanaka

  • [email protected]

    Avaliao 24/05 => Apresentao dos Trabalhos pelas Equipes 1,

    2, 3, 4 e 5 respectivamente. O que ser apresentado?

    Site do Projeto (IRUP) Caso de Desenvolvimento Modelagem de Negcios (Modelo de UC Negcios e Diagrama de

    Objetos de Negcios) Gerncia de Requisitos (Diagrama de Casos de Usos, Prottipo do

    Projeto(Interfaces Grficas), Viso, STR, Especificao dos Casos de Usos, Especificao Suplementar, Glossrio e Plano de Gerenciamento de Requisitos)

    Arquitetura do Projeto e Artefato de OOAD (Documento de Arquitetura de Software) - Facultativo

    Diagramas da UML (UC, Atividade, Estado, Sequncia, Comunicao, Implantao, Componentes e Classe) e Modelagem UML para a WEB

  • [email protected]

    Forma de Avaliao das Disciplinas:

    Presena em sala de aula Presena durante a apresentao das outras equipes Participao nas apresentaes Apresentao individual Apresentao do grupo Organizao e estruturao do trabalho Trabalho completo conforme acordado em sala de aula

    (artefatos)

  • [email protected]

    EMENTA

    Introduzir conceitos de metodologias para o desenvolvimento de software orientado a objetos, utilizando a UML como linguagem de modelagem do sistema. Estudo de uma metodologia de Anlise de Sistemas. Ferramentas de auxlio ao desenvolvimento de Sistemas. Abordar as tcnicas para a modelagem de aplicaes Web com UML, desde a definio da Arquitetura ao seu Projeto.

  • [email protected]

    Contedo Programtico Introduo da Disciplina de OOAD no RUP Rastreabilidade da Gerncia de Requisitos e Modelagem de

    Negcios para a disciplina de OOAD Introduo a Anlise de Sistemas

    Paradigmas da Anlise Metodologias de OOAD (Object Oriented Analysis Design)

    Anlise e Projeto Orientado a Objetos Introduo Orientao a Objetos Operaes e Atributos Tipo de Objeto e Classes Agregao e Composio Estado e Eventos Generalizao e Especializao (herana) Encapsulamento, Polimorfismo, Comunicao e Esteretipos

  • [email protected]

    Contedo Programtico Modelagem Utilizando a UML

    O uso de Pacotes na UML Diagramas de Casos de Usos Diagramas de Classes Diagramas de Seqncia Diagramas de Colaborao Diagramas de Estados Diagramas de Atividades Diagramas de Componentes Diagramas de Implantao Diagramas de Viso Geral Diagramas de Estrutura Composta Diagramas de Tempo Diagramas de Pacotes Diagrama de Perfil

    O uso de uma ferramenta CASE Arquitetura 4 + 1

    Aplicaes Bsicas Clientes Dinmicos

    Construes de Aplicaes Web Arquiteturas

    Thin Web Client Thick Web Client Web Delivery

    Extenses de Aplicaes Web para a UML

  • [email protected]

    Referncias 1/2

    OMG. OBJECT MANAGEMENT GROUP. UML 2.0. Disponvel em:www.omg.org. 2013.

    Martin. UML Essencial. 3 Edio. Porto Alegre: Bookman, 2007. LARMAN, Craig. Utilizando UML e Padres. 3 Edio. Porto Alegre: Bookman,

    2007. PENDER, Tom. UML 2.0 - A Bblia. Rio de Janeiro: Editora Campus, 2004. BOOCH, Grady; RUMBAUGH, James; JACOBSON, Ivar. UML Guia do Usurio. 2

    ed. Rio de Janeiro: Editora Campus, 2006. CONALLEN, Jim. Desenvolvendo Aplicaes Web com UML. Traduo da Segunda

    Edio. Rio de Janeiro: Editora Campus, 2003. Pressman, Roger S.; Engenharia de Software; Bookman, Porto Alegre, 7 Edio. 2011.

  • [email protected]

    Referncias 2/2

    LEFFINGWELL, Dean; WIDRIG, Don. Managing Software Requirements: A Use Case Approach. Boston, MA: Addison-Wesley, 2003. ERIKSON, Hans-Erik; PENKER, Magnus. Business Modeling with UML: business patterns at work. ISBN: 0-471-29551-5. New York:Wiley, 2000. IBM. RUP Rational Unified Process (Software) Verso 7.0. USA: IBM Rational, 2006.

  • [email protected]

    Estudos de Casos das Equipes

    EQUIPE 1: EQUIPE 2: EQUIPE 3: EQUIPE 4:

  • [email protected]

    Estudo de Caso padro - Interface Grfica Inserir CDs

  • [email protected]

    Interface Grfica Alterar CDs

  • [email protected]

    Introduo a Orientao a Objetos

  • [email protected]

    } Objeto } Abstrao } Classe } Instncia } Atributo } Identificador

    } Transio de Estado } Associao } Herana } Encapsulamento } Polimorfismo } Colaborao } Esteretipos

    Conceitos Bsicos

    Operao Mtodo Mensagem Evento Parmetro Estado

  • [email protected]

    Histrico/Evoluo das Linguagens Surgiu no incio da dcada de 60 Devido a necessidade dos:

    sistemas de comunicao, fluxo de trnsito, sistemas de produo, sistemas administrativos e sociais.

    Cronograma das Linguagens OO: 1966 SIMULA (Kristen Nogaard, Noruega); 1980 SMALLTALK (Xerox); 1986 C++ (AT&T), SMALLTALK V , OBJECTIVE-C; 1988 EIFFEL (Meyer, Frana); 1989 Turbo Pascal 5.5 (Borland); 1995 JAVA; 2001 C#; 2002 VB.NET. 2013 - .....

    Orientao a Objetos

  • [email protected]

    Orientao a Objetos ?

    um paradigma para o desenvolvimento de aplicaes, ou seja, uma estratgia de desenvolvimento de software que organiza o

    software como uma coleo de objetos que contm tanto a estrutura dos dados como o comportamento.

    Definio

  • [email protected]

    } Caractersticas Forma natural de enxergar a realidade Forma natural de modelar Forma natural de codificar

    O mundo Orientado a Objetos

    Orientao a Objetos

  • [email protected]

    } Mundo Natural

    Formado por Objetos

    Orientao a Objetos

  • [email protected]

    Propostas da Tcnica OO Reusabilidade:

    de cdigo; de objetos encapsulados; Componentes, Frameworks, etc.

    Manutenibilidade: Mudanas bem localizadas, no acarretando

    propagaes descontroladas.

    Confiabilidade: Devido ao encapsulamento, que torna as estruturas de

    dados privado aos objetos.

    Extensibilidade Aumento da Produtividade

    Orientao a Objetos

  • [email protected]

    Garantia

    Planejamento adequado; Capacitao dos desenvolvedores; Adoo de uma Metodologia e/ou Padro.

    Cronograma das fases de Ciclo de Vida

    Garantia de Sucesso

  • [email protected]

    Tcnicas de Anlise

    Apresenta um conjunto de regras e modelos que auxiliam o Engenheiro de Software levantar e modelar os requisitos dos

    usurios que o sistema deve atender.

    Anlise OO

  • [email protected]

    O que um objeto? Um objeto uma entidade com

    uma fronteira bem definida e identidade que encapsula o estado e o comportamento O Estado representado por

    atributos e relacionamentos. O Comportamento

    representado por operaes e mquinas de estados.

    Objeto Operaes

    Atributos

  • [email protected]

    Princpios Bsicos da Orientao a Objetos

    Abst

    ra

    o

    Hier

    arqu

    ia

    Orientao a Objetos

    Enca

    psul

    amen

    to

    Modu

    larid

    ade

  • [email protected]

    o ato de definir um objeto conceitual a partir de OBJETOS do mundo real que possuam as mesmas caractersticas e

    comportamento, podendo ser classificados como pertencentes a um mesmo tipo.

    Dinheiro

    Abstrao

  • [email protected]

    Exemplo

    Avio

    Esporte

    Abstrao

  • [email protected]

    Representa a abstrao de um conjunto de OBJETOS do Mundo Real que possuem tipos de caractersticas e de comportamento em

    comum.

    Pessoa

    Classe

  • [email protected]

    Exemplo

    Funcionrios Ana, Joo, Ftima, Pedro, Carlos.

    Classe Funcionrio possui nome possui endereo possui data de nascimento possui telefone

    Classe

  • [email protected]

    Representa cada ocorrncia de um OBJETO formados a partir de uma CLASSE.

    Funcionrio 1 Ana 2 Joo 3 Ftima 4 Pedro 5 Carlos

    Instncia

  • [email protected]

    Objeto Funcionrio 2 (instncia) Ana Maria Av. Curitiba, 444 05/02/69 999-9999

    Exemplo

    Classe Funcionrio possui nome possui endereo possui data de nascimento possui telefone

    Objeto Funcionrio 1 (instncia) Carlos Av. Curitiba, 44 05/03/69 999-9998

    Instanciao

    Instncia

  • [email protected]

    uma caracterstica particular possuda por todos os OBJETOS de uma CLASSE e assume valores especficos

    para cada OBJETO.

    Classe Funcionrio (possui) CPF (possui) RG (possui) Nome (possui) Endereo

    Atributo

  • [email protected]

    Exemplo

    Valor: nome = Joo, endereo = rua ..... , data de nascimento = 05/07/71

    telefone = 999-9999

    Classe Funcionrio (possui) nome (possui) endereo (possui) data de nascimento (possui) telefone

    Atributo

  • [email protected]

    Identificador nico

    um ou vrios ATRIBUTOS, cuja funo permitir a individualizao de cada INSTNCIA.

    IDPessoa

  • [email protected]

    Identificador nico

    Exemplo Classe Funcionrio

    Funcionario-ID RG Nome Endereo Data Nascimento

  • [email protected]

    Operao

    Um servio que requisitado a um objeto como parte de seu comportamento em resposta a estmulos. Uma

    operao tem uma assinatura que pode restringir quais parmetros reais so possveis.

  • [email protected]

    Operao

    o que os Objetos de uma Classe sabem realizar.

    Cafeteira.esquenta

    Cafeteira.aumentaTemperatura

    Cafeteira.diminuiTempo

  • [email protected]

    Operao Exemplo

    Funcionrio Fala Corre Anda Come

    L

    Funcionrio Cria()

    Elimina() Recupera() Atualiza()

    Mtodos CERA

  • [email protected]

    Mtodo

    Exemplo da implementao de um mtodo em JAVA:

    void remover(ActionEvent e) {

    try {

    deleteRow(); saveChanges(); }

    catch (Exception ex) {

    desabilita(); }

    }

  • [email protected]

    Mensagem

    Representa o mecanismo de invocao de uma OPERAO.

    o mecanismo utilizado para solicitar uma OPERAO. a forma de conseguir executar uma OPERAO.

    Operao Abrir

    Evento ao abrir mensagem

  • [email protected]

    Evento

    Um evento uma especificao de uma ocorrncia significativa que tem uma localizao no

    tempo e no espao.

    Evento Ao abrir

  • [email protected]

    Evento

    Exemplo

    Evento Partida

    Evento Boto do mouse

    pressionado

  • [email protected]

    Parmetro

    Representa um ou mais ATRIBUTOS carregados dentro de uma MENSAGEM.

    Pessoa.elimina (CPF)

  • [email protected]

    Parmetro

    Exemplo

    Avio.Partida (linha rea, n vo)

    Evento Partida

  • [email protected]

    Estado Um estado uma condio ou situao na vida de um objeto durante a qual ele satisfaz a alguma condio,

    realiza alguma atividade ou aguarda algum evento.

    Evento Ao abrir

    Estado Fechado Estado Aberto

  • [email protected]

    Estado

    Exemplo

    Evento Partida

    Estado Decolando Estado Parado

  • [email protected]

    Estado

    Exemplo

    Classe Exemplar ISBN N Tombo ... estado

    Criado Eliminado Emprestado Em manuteno Reservado Liberado

  • [email protected]

    Transio de Estado Uma transio um relacionamento entre dois estados,

    indicando que um objeto no primeiro estado realizar certas aes e entrar no segundo estado quando um evento

    especificado ocorrer e as condies especificadas esto satisfeitas.

    Estado Fechado Estado Aberto

    Estado Criado Estado

    Eliminado

  • [email protected]

    Associao

    Representa a forma como os OBJETOS de uma mesma CLASSE ou de CLASSES diferentes se

    reconhecem entre si.

    BANCO AGNCIA Possui 1 *

  • [email protected]

    Exemplo de Hierarquia

    Diminuio da Abstrao

    Aumento da abstrao

    Asset

    RealEstate

    Savings

    BankAccount

    Checking Stock

    Security

    Bond

    Elementos do mesmo nvel de hierarquia deveriam estar no mesmo nvel de abstrao.

  • [email protected]

    Herana

    Representa a propriedade pela qual uma CLASSE pode herdar caractersticas e comportamento de uma outra CLASSE.

    Pessoas

  • [email protected]

    Pessoas{abstract} Nome Endereo Telefone Cria() {abstract} Elimina() {abstract} Recupera() {abstract} Atualiza() {abstract}

    Fornecedor CNPJ Cria() Elimina() Recupera() Atualiza()

    Cliente CPF Cria() Elimina() Recupera() Atualiza()

    Operaes abstratas

    Operaes Concretas

    Herana

  • [email protected]

    Exemplo de Herana Mltipla

    Veculo

    Veculoterrestre

    Veculoaqutico

    Veculoanfbio

    {sobreposio, incompleto}

  • [email protected]

    Ilustrao de Encapsulamento Professor Kenji necessita

    estar disponvel para ministrar aulas para as quatro turmas no prximo semestre.

    TakeSabbatical()

    Professor Kenji

    Name: S. Kenji Employee ID: 567138

    HireDate: 07/25/1991

    Status: Tenured

    Discipline: Finance

    MaxLoad: 4 SetMaxLoad(4)

    Encapsulamento: significa separar o programa em partes, o mais isoladas possvel. A idia tornar o software mais flexvel, fcil de modificar e de criar novas implementaes.

  • [email protected]

    Exemplo de Modularidade Por exemplo, quebrar um

    sistema complexo em pequenos mdulos. Sistema de Pagamento

    Sistema de Registro de Curso

    Sistema de catlogo de curso

    Sistema de gerenciamento de estudantes

  • [email protected]

    Polimorfismo

    Representa a propriedade pela qual OBJETOS de CLASSES diferentes possuem tipos de reaes

    particulares a uma mesma operao.

    Uma mesma operao pode se comportar de diferentes formas sobre diferentes CLASSES.

  • [email protected]

    Chegada do Vero

    Mundo Natural

    Polimorfismo

  • [email protected]

    A Mensagem a mesma. A reao diferente para cada tipo de

    Objeto.

    Mundo Natural

    Polimorfismo

  • [email protected]

    Exemplo Funcionrio Livro

    Operao Criar Exemplar Banco Agncia

    ... a estrutura (atributos) de cada classe diferente

    Polimorfismo

  • [email protected]

    Exemplo de Polimorfismo

  • [email protected]

    Colaborao

    a troca de MENSAGENS entre OBJETOS. uma

    comunicao entre OBJETOS e Atores.

  • [email protected]

    Esteretipos => UML 1.x Palavras Chaves => UML 2.0

    } Sugerido por Rebecca Wirfs-Brock em 1990;

    } Torna a UML extensvel pelo usurio do mtodo pela definio de esteretipos adicionais;

    } O uso do esteretipo omitido quando a semntica predefinida na UML for suficiente;

    } Um esteretipo escrito textualmente (em guillmets sobre a seqncia de nome);

    } Ex: .

  • [email protected]

    FINAL DA PARTE Ia

  • [email protected]

    Anlise e Design Orientado a Objetos com Modelagem WEB utilizando UML

    (Unified Modeling Language)

    Professor Sergio Akio Tanaka e-mail [email protected]

    Parte Ib Introduo a UML

  • [email protected]

    Apresentao da NOTAO UML

    (Unified Modeling Language)

  • [email protected]

    Apresentao da UML

    UML, Linguagem formada pela juno das melhores tcnicas de modelagem (OMG 2008).

    UML, Linguagem de Modelagem Unificada, uma linguagem grfica para visualizao, especificao,

    construo e documentao de artefatos de sistemas complexos de software (BOOCH 2006).

  • [email protected]

    Ciclo de Vida do Desenvolvimento do Software

  • [email protected]

    Inputs to the UML

    Fusion Operation descriptions, message numbering

    Before and after conditions

    Meyer

    Harel State charts

    Wirfs-Brock Responsibilities

    Embley Singleton classes, High-level view

    Odell Classification Object lifecycles

    Shlaer- Mellor

    Gamma, et.al Frameworks, patterns, notes

    Booch Rumbaugh Jacobson

    Selic, Gullekson, Ward ROOM (Real-Time Object-Oriented Modeling)

  • [email protected]

    Breve Histrico (UML) Oficialmente em Out/94 Rumbaugh se junta a Booch na Rational; Foco inicial do projeto era a unificao dos mtodos Booch e OMT; Out/95 lanado um esboo da verso 0.8; Jun/96 lanado a verso 0.9 incorporando o mtodo OOSE de Jacobson; Jan/97 v.1.0 oferecida para padronizao a OMG (Object Management Group); Verso revisada 1.1, oferecida para padronizao a OMG Julho/97; 14 de Novembro de 1997 a UML aprovada pela OMG (v.1.1); Reviso da UML assumida pela RTF (Revision Task Force) do OMG, lanando

    a verso 1.2 em junho 1998; Dez/98 a RTF lana a verso 1.3; 15/9/2000, a OMG estendeu o prazo p/ a aprovao da UML 1.4 p/ 22/12/2000; UML 1.5, combinao da UML 1.4 15/09/2000 UML 2.0 definida pelo Working Group. 2004 Consolidao da UML 2.0, 2.1, 2.2, 2.3 E 2.4 2013 Continuao da UML 2.x.

  • [email protected]

    Histrico UML (Forma grfica)

    UML Partners Expertise

    UML 1.0 (Jan. 97)

    UML 1.1 (Sept. 97)

    UML 1.5 (March, 03)

    UML 2.0 (2004)

    Other Methods

    Booch 91 OMT - 1 OOSE

    Booch 93 OMT - 2

    Public Feedback Unified Method 0.8

    (OOPSLA 95)

    UML 0.9 (June 96)

    UML 0.91 (Oct. 96)

    and

  • [email protected]

    E finalmente o histrico real da ...UML... Ilustrao de como foi extrada a UML no laboratrio da

    Rational

  • [email protected]

    Tipos de Modelagem - V. 1.x Modelagem Estrutural

    1-Diagrama de Classes Diagramas de Pacotes; => oficializado como diagrama na verso 2.0 Diagramas de Objetos. => oficializado como diagrama na verso 2.0

    Modelagem Comportamental 2-Diagramas de Casos de Uso; 3-Diagramas de Seqncia; 4-Diagramas de Colaborao; => diagrama de comunicao na verso 2.0 5-Diagramas de Atividades; 6-Diagramas de Estados; Processos e Threads; Eventos e Sinais.

    Modelagem Arquitetural 7-Diagramas de Componentes; 8-Diagramas de Implantao; Patterns e Frameworks.

  • [email protected]

    Tipos de Modelagem - V. 2.4 Na verso 2.4, a UML tem quatorze diagramas divididos em:

  • [email protected]

    Viso dos Diagramas Estruturais Usando Mapas Conceituais.

  • [email protected]

    Viso dos Diagramas Comportamentais Usando Mapas Conceituais.

  • [email protected]

    Modelos

    Dynamic Diagrams

    w Multiplas vises

    Activity Diagrams

    Models

    Static Diagrams

    Sequence Diagrams

    Communication Diagrams

    State Machine Diagrams

    Deployment Diagrams

    Component Diagrams

    Object Diagrams

    Class Diagrams Use-Case

    Diagrams

    Dinmico

  • [email protected]

    Iniciando a Modelagem e Rastreabilidade entre os elementos

    Antes, vamos fazer uma Reviso dos conceitos

    bsicos do RUP. Revisar, tambm, a Modelagem de Negcios e Gerncia de

    Requisitos em relao a disciplina de Anlise e Design

  • [email protected]

    Melhores Prticas

    } Aplicando as 6 melhores prticas:

    } Desenvolvimento Iterativo } Gerncia de Requisitos } Uso da Arquitetura de Componentes } Modelo Visual (UML) } Verificao Contnua da Qualidade } Gerncia de Mudanas

    PRO

    CESSO

    CO

    NFIG

    UR

    VEL

  • [email protected]

    Princpios Chave para o Desenvolvimento Orientado a Negcios

    Adaptar o Processo

    Equilbrio que compete as Prioridades dos Stakeholders

    Colaborao Entre os Times

    Demonstrar o Valor Iterativamente

    Elevar o Nvel de Abstrao

    Focar Continuamente na Qualidade

  • [email protected]

    Estrutura do Site (IRUP v.2002)

  • [email protected]

    Modelagem Utilizando os Casos de Usos de Negcios

  • [email protected]

    Modelo de Objetos de Negcio

    } Define o ponto de vista dos trabalhadores de negcio ponto de vista interno.

    Modelo de Negcio e Atores de Sistema

  • [email protected]

    Reviso MN:

  • [email protected]

    REVISO Modelagem Utilizando Casos de Uso de

    Sistemas

  • [email protected]

    ATOR Caso de Uso

    Breve Reviso- Diagrama de Casos de Uso

    Elementos e Notao:

    Representa o estudo e modelagem da interface externa do sistema.

    Descrio dos requerimentos dos usurios.

  • [email protected]

    Ator

    ATOR qualquer pessoa, departamento, sistema computacional e dispositivos que utilizam funcionalidades do

    Sistema.

  • [email protected]

    Ator

    Exemplo de Atores:

    Aluno

    Diretoria Departamento Pessoal

    Estoque

  • [email protected]

    Caso de Uso

    Representa qualquer interao de servios entre um ATOR e o SISTEMA. Cada servio representado como um Caso

    de Uso (Use Case).

    SISTEMA

  • [email protected]

    Diagrama de Casos de Uso

    OBSERVAES: No representar para o mesmo ATOR mais do que uma misso.

    Departamento e sistema pessoal

    Departamento pessoal

    Sistema pessoal

  • [email protected]

    Descrio de Caso de Uso

    Descrita no Artefato: Especificao de Casos de Uso

  • [email protected]

    Casos de Uso Nvel de Especificao

    Definir Funcionalidades Genricas; Regras de Negcios; Viso do Usurio;

  • [email protected]

    O Escopo de um Caso de Uso

    Geralmente, difcil decidir se um conjunto de interaes do usurio do sistema (ATOR COM O SISTEMA), ou uma caixa de dilogo, um ou so vrios casos de uso. Considere o uso de uma mquina de reciclagem. O cliente insere itens de depsito como, por exemplo, latas, garrafas e caixotes na mquina de reciclagem. Ao inserir todos os itens de depsito, basta pressionar um boto e um recibo impresso. Esse recibo pode ser trocado por dinheiro.

  • [email protected]

    Cada Comunicao-Associao um conjunto de dilogo

    Estudante Sistema de Catlogo de

    Cursos

    Registrar Cursos

    Estudante faz o login no sistema Sistema aprova o login Estudante solicitao informao do Curso

    Sistema mostra a lista de cursos Estudante seleciona cursos Sistema confirma curso disponvel Sistema mostra aprovao da programao

    Sistema transmite solicitao Catlogo de Cursos retorna informao do curso

  • [email protected]

    Herana entre atores } Pode-se utilizar herana entre atores;

    } Herana entre atores significa que um ator preenche os mesmos papis de outro ator, podendo tambm preencher papis adicionais;

    } Na UML herana indicado pelo relacionamento de generalizao.

  • [email protected]

    Herana entre atores

    Ator 1

    Ator 2

    Caso de Uso 2

    Caso de Uso 3

    Caso de Uso 1

    Ator 3

    Created with Visio

  • [email protected]

    Relacionamentos Entre Casos de Uso

    Include

    Extend

    Generalizao

  • [email protected]

    O que um Relacionamento Include?

    Um relacionamento de um caso de uso base para um caso de uso de incluso

    O comportamento definido no caso de uso de incluso inserida explicitamente para o caso de uso base

    Base

    Incluso

  • [email protected]

    Relacionamento Include: Exemplo RU e-st

    Obter Cota

    Executar Comrcio

    Outros UC

    Identificar Cliente

    Caso de Uso Obter Cota 1. Incluir Identificar Cliente para verificar identidade do cliente 2. Mostrar opes. Cliente seleciona Obter Cota 3. ...

    Caso de Uso Identificar Cliente 1. Logon 2. Validar logon 3. Entrar com a senha 4. Verificar a senha A1: Logon invlido A2: Senha errada A3: .....

  • [email protected]

    Por Que Usar um Relacionamento de Include?

    Fatorar comportamento comum para dois ou mais casos de uso Evitar descrever qualquer comportamento

    mltiplas vezes (reutilizao). Assegurar comportamento comum consistente

    com o resto. Fatorar e encapsular comportamento de um caso de

    uso base Simplificar fluxo de eventos complexos (ver

    exemplo RU-st) Fatorar comportamento que no faz parte de um

    propsito primrio.

    Base

    Incluso

  • [email protected]

    O que um Relacionamento Extend?

    Conexo de um caso de uso estendido para um caso de uso base Inserir comportamento estendido de um caso de uso num caso de

    uso base Inserir somente se a condio de extenso for verdadeira Inserir num caso de uso base ao ponto de extenso nomeado

    Extenso

    Base

  • [email protected]

    Relacionamento Extend: Exemplo RU e-st

    Sistema News

    Sistema Especialista

    de Cota

    Cliente do Comrcio

    Obter Cota

    Obter News Obter Prognstico

  • [email protected]

    Relacionamento Extend: Exemplo RU e-st (cont.)

    Caso de Uso Obter Cota Fluxo Bsico 1. Include Identificar Cliente para verificar identidade do cliente. 2. Mostrar opes 3. Cliente seleciona Obter Cota. 4. Cliente obtm cotas 5. Cliente obtm outras cotas 6. Cliente faz logoff A1. Sistema Cota indisponvel ... Pontos de Extenso: O ponto de extenso Servio Opcional ocorre no Passo 3 do Fluxo Bsico.

    Caso de Uso Obter News Este caso de uso extend o Caso de Uso Obter Cota, ao ponto de extenso Servios Opcionais. Fluxo Bsico: 1. Se o Cliente selecionar Obter News, o sistema pergunta ao cliente o perodo de tempo e o nmero de itens news. 2. Cliente entra com o perodo de tempo e o nmero de itens. O sistema envia o smbolo da ao de comrcio para o Sistema News, recebe resposta, e mostra os news para o cliente. 3. O Caso de Uso Obter Cota continua. A1: Sistema News Indisponvel A2: No Existe News Sobre Esta Ao

  • [email protected]

    Execuo de um Extend Executado quando o ponto de extenso alcanado e a

    condio de extenso (deciso) for verdadeira

    Caso de Uso Base Instncia do Caso de Uso

    Ponto de Extenso

    Caso de Uso Extenso

  • [email protected]

    Por Que Usar um Relacionamento Extend?

    Fatorar um comportamento opcional ou excepcional Executado somente numa certa condio Fatorando a simplificao do fluxo de eventos do

    caso de uso base Exemplo: ligando um alarme

    Adicionar comportamento estendido Desenvolver comportamento separadamente,

    possivelmente numa verso posterior Exemplo: Caso de Uso Obter News

    Extenso

    Base

  • [email protected]

    Casos deUso (Concreto versus Abstrato)

    Um caso de uso abstrato ou

    concreto

    Casos de uso concreto (B & C): - Deve ser completo e significativo - Pode ser instanciado para si mesmo

    Casos de uso abstrato (A & D): - No tem que ser completo. - Existe somente por outros casos de uso. - Nunca so instanciados para si mesmo (no inicializado por um ator).

    A

    B

    C

    D

    comum o caso de uso de extenso ser abstrato, mas no necessrio que seja.

  • [email protected]

    Exemplo de um diagrama de Caso de Uso para um Sistema

    de Controle de Estgio

    Universidade

    (from Actors)

    Firmar Convnio(f rom Firmar Conv nio)

    Empresa

    (from Actors)

    Definir Empresa para desenvolvimento

    (f rom Defini r Empresa para desenv olv imento)

    Definir Professor Orientador

    (f rom Definir Prof essor Orientador)

    Coordenador Estgio(from Act...

    Definir Aluno(f rom Def inir Aluno)

    Avaliar Aluno(f rom Av aliar Aluno)

    Professor Orientador

    (from Actors)

    Registrar Plano de Estgio(f rom Registrar Plano de Estagio)

    Efetuar Controle de Estgio

    (f rom Ef etuar Controle de Estgio)

    Registrar entrega da RPOD

    (f rom Registrar entrega da RPOD)

    Aluno

    (from Actors)

  • [email protected]

    Diagramas de Casos de Uso 1.

    Fazer o levantamento

    com os usurios para identificar os Atores e os Casos de Uso.

    2. Fazer uma

    lista dos possveis Atores.

    3. Filtrar a

    lista e definir os Atores.

    4. Fazer uma

    lista dos possveis Casos de

    Uso dos Atores.

    5. Filtrar e

    definir os Casos de Uso para cada Ator.

    6. Representar

    cada Ator com seus Casos de Uso

    no diagrama.

    7. Realizar

    levantamento junto aos usurios

    para entender como o

    sistema deve atender os

    Casos de Uso.

  • [email protected]

    FINAL DA PARTE Ib

  • [email protected]

    Anlise e Design Orientado a Objetos com Modelagem WEB utilizando UML

    (Unified Modeling Language)

    Professor Sergio Akio Tanaka e-mail [email protected]

    Parte Ic

    Introduo a Arquitetura de Software

  • [email protected]

    Representao da Arquitetura de Software atravs de Pacotes

  • [email protected]

    Pacote

    Um pacote um mecanismo de propsito geral para a organizao de elementos em grupos. Um pacote representado graficamente como uma pasta com uma guia.

  • [email protected]

    Pacote Cada pacote deve ser nomeado; O nome dos pacotes so escritos sobre os pacotes; Ligaes entre os pacotes so representadas para indicar a

    dependncia entre os pacotes;

    u Notao: Pacote1 Nome

  • [email protected]

    Dependncia de Pacotes

    u Notao de Dependncia:

    Pacote1 Pacote2Pacote1 Nome

    Pacote1 Nome

    Pacote2 Nome

    Relacionamento de dependncia

  • [email protected]

    Contexto em Anlise Arquitetural [Early

    Elaboration Iteration]

    [Inception Iteration (Optional)]

    Define a Candidate Architecture

    Perform Architectural

    Synthesis

    Analyze Behavior

    Refine the Architecture

    Design Components

    Design the Database

    (Optional)

    Architecture Analysis

    Architect

  • [email protected]

    Viso Geral da Anlise Arquitetural

    Supplementary Specification

    Glossary

    Use-Case Model

    Architectural Analysis

    Design Model

    Reference Architecture

    Deployment Model

    Vision Document

    Software Architecture Doc

    Project-Specific Guidelines

  • [email protected]

    Papel: Arquiteto de Software

    O papel arquiteto de software lidera e coordena as atividades e os artefatos tcnicos no decorrer do projeto. O arquiteto de software estabelece a estrutura geral de cada viso de arquitetura: a decomposio da viso, o agrupamento dos elementos e as interfaces entre esses principais agrupamentos. Portanto, comparado aos outros papis, a viso do arquiteto de software ampla, e no detalhada.

  • [email protected]

  • [email protected]

    Qual o conhecimento de um Arquiteto de Software?

    "O arquiteto ideal deve ser uma pessoa erudita, um matemtico, familiarizado com estudos histricos, um estudioso aplicado de filosofia, conhecedor de msica, que no desconhea medicina, detentor de saber jurdico e familiarizado com astronomia e clculos astronmicos." - Vitruvius, h aproximadamente 25 anos a.C.

  • [email protected]

    Arquitetura de Software

    Segundo Buschmann 1996, a arquitetura de software consiste da descrio dos subsistemas, e dos componentes de um sistema de software e dos relacionamentos entre eles.

    Subsistem

    as,

    Compone

    ntes

  • [email protected]

    Arquitetura 4 + 1

    Process View Deployment View

    Logical View

    Use-Case View

    Implementation View

    Usurio-final Funcionalidade Programador Gerncia de Software

    Performance Escalabilidade Rendimento

    System integrators Topologia do Sistema

    Entrega, instalao comunicao

    System engineering

    Analista/Projetista Estrutura

  • [email protected]

    Pacotes (Importao e Exportao) } Na UML, a modelagem de um relacionamento de importao

    feita como uma dependncia assinalada pelo esteretipo como adorno;

    } As partes pblicas de um pacote so chamadas suas exportaes;

    } As partes exportadas por um pacote so visveis somente para o contedo dos pacotes que importam aquele pacote explicitamente.

    } As dependncias de importao e de acesso no so transitivas.

  • [email protected]

    Pacotes (Importao e Exportao)

  • [email protected]

    Pacotes

    } Dois ou trs nveis de aninhamento constituem o limite do

    que ser conveniente utilizar. Mais do que o aninhamento,

    utilize a importao para a organizao de seus pacotes.

  • [email protected]

    Pacotes A UML define 5 esteretipos-padro que se aplicam aos pacotes:

    : especifica um pacote que apenas uma visualizao de algum outro pacote;

    : especifica um pacote que formado por padres;

    : serve como proxy para o contedo pblico de outro pacote; ou seja, so utilizados quando possuimos ferramentas capazes de dividir um sistema em pacotes que manipulamos em diferentes momentos e potencialmente em diferentes locais.

    : representa uma parte independente de todo o sistema cuja modelagem est sendo feita.

    : representa todo o sistema cuja modelagem est sendo feita.

  • [email protected]

    A

    B

    X

    Acoplamento de Pacotes

    Acoplamento: quanto maior a dependncia entre os pacotes maior o acoplamento

    Pacotes no deveriam ter co-dependncias (circular)

    Pacotes da camada inferior no deveria ser dependente da camada superior. Isto uma regra para o estilo arquitetural em camadas

    Em geral, as dependncias no deveriam pular camadas

    A B

    Upper Layer

    Lower Layer

    C

    X

    X = Violao de acoplamento

    X

  • [email protected]

    Exemplo: Arquitetura em Camadas

    Middleware

    Base Reuse

    global

    Application

    Business Services

    Necessary because the Application Layer must have access to the core distribution mechanisms provided with Java RMI.

  • [email protected]

    C

    A

    B

    A Hierarquia deveria ser aciclica

    Dependncias Circulares torna dificil o reuso para reutilizar um pacote sem o outro. Soluo no exemplo, acima, criar um novo pacote A que seja comum para

    A e C.

    Evitando Dependncias Circulares

    A

    B

    A

    B

    C

    A'

  • [email protected]

    Estilo Arquitetural

    Um estilo de arquitetura pode ser definido como uma famlia de sistemas em termos de um modelo de estrutura de organizao. Um estilo de arquitetura expressa componentes e o relacionamento entre eles, com restries de suas aplicaes, composies e regras de projeto para suas construes [BUS 96]. Mais especificamente, pode-se dizer que um estilo de arquitetura define um vocabulrio de componentes e tipos de conectores, mais um conjunto de restries sobre a combinao desses (GARLAN 1995).

  • [email protected]

    Arquitetura de Software Tipos de estilos arquiteturais: Pipes e Filtros

    Camadas

    Objetos

    Invocao Implcita

    Quadro-negro

    Repositrio (Passivo)

    Arquiteturas de Aplicaes Distribudas

    Processos Comunicantes

    Cliente-Servidor

    Chamada de Procedimento

  • [email protected]

    Exerccio 1:

    Configurar na Ferramenta CASE IBM Rational Rose para a visualizao da Arquitetura Multicamadas

    Elaborar o Estilo Arquitetural proposto para utilizao nos estudos de casos utilizando pacotes

  • [email protected]

    Arquitetura de Software

    Proposta do Estilo Arquitetural em Camadas para o desenvolvimento dos estudos de casos

  • [email protected]

    FINAL DA PARTE Ic

  • [email protected]

    CV Resumido do Professor

    SERGIO AKIO TANAKA, MSc rea ENGENHARIA DE SOFTWARE, ARQUITETURA CORPORATIVA

    GERNCIA DE PROJETOS E PROCESSOS DE NEGCIOS

    Sergio Akio Tanaka, atua na rea de Informtica desde 1990 tanto na rea acadmica como empresarial. Especialista em Gesto Empresarial pelo ISE - Instituto Superior de Ensino em convnio com o IESE de Barcelona. Mestre em Cincia da Computao pela Universidade Federal do Rio Grande do Sul; Ps-graduado pela Universidade Estadual de Londrina nas reas de Redes de Computadores e Banco de Dados e em Anlise de Sistemas pela UniFil; Graduado em Processamento de Dados. Engenheiro de Software certificado pela IBM Rational em diversas reas. Ao Longo da sua carreira, foi Diretor de Novas Tecnologias da K2Solutions. Atuou como Gerente Geral da PLATIN/ADETEC e Consultor do Agente Softex/ADETEC no mercado Espanhol, Instrutor e Coordenador da rea de TI do SENAC por 11 anos e foi Gerente da KAIZEN - DATABASE Marketing por 5 anos. Atualmente, Diretor Geral, e tambm, consultor certificado pela IBM Rational na AUDARE Engenharia de Software. Na rea acadmica, desde 1994, atua como professor e coordenador da UNIFIL - Universidade Filadlfia nos cursos de Ps-Graduao da rea de Computao e Pesquisa, Professor e Coordenador de Ps-Graduao na rea de Engenharia de Software do SENAI/SC e SENAI-PR; Professor Ad-hoc da UNIVEL, UNIVALE, UNOPAR, UNIPAR e UEL em cursos de Ps-graduao. Possui expertise em Gerncia de Projetos, Arquitetura de Software, UML, Construo de Frameworks e Componentes, Processo de Desenvolvimento de Software, Gerncia de Requisitos, Gerncia de Mudanas, Workflow, Modelagem Web e de Negcios. Possui forte experincia no mercado Internacional e Possui mais de 100 artigos publicados (veja plataforma lattes).