SlideShare ist ein Scribd-Unternehmen logo
1 von 324
Downloaden Sie, um offline zu lesen
com UML
                                                                                                                            Análise e Desenho
                                                                                                                          Orientado a Objetos
Capacitação Engenharia de Software           Análise e Desenho Orientado a Objetos com UML




                                                                                                   Rildo F Santos
                                                                                                   rildo.santos@etecnologia.com.br
                                                                                                   rildo.santos@companyweb.com.br



                                                                                                                                     Twitter: @rildosan
                                                                                                       Blog: http://rildosan.blogspot.com/
                                                                                                          Todos os direitos reservados e protegidos © 2006 e 2010
                                          Versão 27   Rildo Santos (rildo.santos@etecnologia.com.br)
                                     Versão 27 |
Análise e Desenho Orientado a Objetos com UML


                                     Conteúdo
Capacitação Engenharia de Software




                                            Parte 1 - Principais Conceitos da Orientação a Objetos e introdução
                                            UML

                                            Parte 2 – Especificação de Requisitos de Software

                                            Parte 3 – Analise Conceitual

                                            Parte 4 – Desenho (design) do Modelo de Especificação de Software

                                            Parte 5 – Arquitetura de Software




                                                                                                         Todos os direitos reservados e protegidos © 2006 e 2010
                                            Versão 27   Rildo Santos (rildo.santos@etecnologia.com.br)                                                             2
Capacitação Engenharia de Software      Análise e Desenho Orientado a Objetos com UML




                                                 Principais Conceitos da
                                                 Orientação a Objetos e UML
                                                 Objetivo desta parte:
                                                 É apresentar e discutir os principais conceitos da
                                                 Orientação a Objetos e fazer uma breve introdução a UML

                                     Versão 27       Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                      Todos os direitos reservados e protegidos © 2006 e 2010   3
Análise e Desenho Orientado a Objetos com UML


                                     Orientação a Objetos. Principais Conceitos:
Capacitação Engenharia de Software



                                     Objetivo




                                     Objetivo:
                                     Apresentar os principais conceitos da orientação a objetos. Será demonstrado os seguintes
                                     conceitos: Classes, Objetos, Atributos, Métodos, Classe Abstrata, Abstração de Dados,
                                     Herança, Polimorfismo e Encapsulamento
                                                   Versão 27    Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                                 Todos os direitos reservados e protegidos © 2006 e 2010   4
Análise e Desenho Orientado a Objetos com UML


                                     Orientação a Objetos. Principais Conceitos:
Capacitação Engenharia de Software



                                     Introdução. Desenvolvimento de Software Orientada a Objetos


                                                                                                    Influência escolha da
                                                                                                    Ferramentas

                                                                           Ferramentas
                                                                                                                        Tecnologia OO
                                                                                e
                                                                            Artefatos



                                                                              Atividades

                                                                                                                                   Suporte as atividades

                                                                            WorkFlows



                                                                        Metodologia/Fases

                                                               Jacobson pyramid “rational enterprise philosophy”
                                              Versão 27   Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                                     Todos os direitos reservados e protegidos © 2006 e 2010   5
Análise e Desenho Orientado a Objetos com UML


                                     Orientação a Objetos. Principais Conceitos:
Capacitação Engenharia de Software



                                     Objetos do Mundo Real

                                               Podemos encontrar várias definições para o termo “objeto”, entre eles:

                                               “Objeto pode ser qualquer coisa na natureza que possua
                                               características e comportamentos”

                                               Veja alguns exemplos de objetos:




                                                Pessoa                    Cão                      Partida                                      Barco
                                                                                                  de Futebol
                                               Os objetos podem ser físico (aqueles que podemos pegar, exemplos: uma pessoa,
                                               um animal, um barco, um livro, um carro, uma casa e etc) e os conceituais
                                               (aqueles que não podemos pegar, tais como: uma partida de futebol, uma ligação
                                               telefônica, uma conta corrente e etc...)
                                              Versão 27     Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                               Todos os direitos reservados e protegidos © 2006 e 2010   6
Análise e Desenho Orientado a Objetos com UML


                                     Orientação a Objetos. Principais Conceitos:
Capacitação Engenharia de Software



                                     Objetos do Mundo Real
                                     Objetos

                                                                O termo orientação a objetos significa organizar o mundo real
                                                                como uma coleção de objetos que incorporam estrutura de
                                                                dados (propriedades ou características) e um conjunto de
                                                                operações que manipulam estes dados.
                                     Classes
                                     Objetos                     Objeto: Pessoa         Propriedades           Operações
                                                                                                               Andar
                                     Atributos                                          Nome
                                                                                                               Correr
                                                                                        Data de Nascimento
                                     Métodos                                            Massa (peso)
                                                                                                               Trabalhar
                                                                                                               Chorar
                                                                                        Altura
                                     Abstração de Dados                                                        Dançar

                                     Herança
                                                                 Objeto: Pássaro        Propriedades            Operações
                                     Polimorfismo
                                                                                        Espécie                Andar
                                     Encapsulamento                                     Cor das penas          Correr
                                                                                        Tamanho                Voar
                                                                                        Peso                   Pousar




                                               Versão 27   Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                             Todos os direitos reservados e protegidos © 2006 e 2010   7
Análise e Desenho Orientado a Objetos com UML


                                     Orientação a Objetos. Principais Conceitos:
Capacitação Engenharia de Software



                                     Objetos do Mundo Real
                                     Os objetos tem um identificador único (que podemos chamar de nome do objeto), tem
                                     conjunto de propriedades (que podemos chamar de características e/ou atributos) e
                                     comportamentos (que podemos chamar de operações).


                                                                                          Atributos
                                                                                                             cor
                                                                                                             Número chassi
                                                                                                             Ano-fabricação
                                            Identificador
                                       Carro
                                                                                               Operações
                                                                                                             acelerar
                                                              O que são operações ?                          parar
                                                              - São coisas que objeto deve
                                                              saber fazer.
                                                  Versão 27        Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                                        Todos os direitos reservados e protegidos © 2006 e 2010   8
Análise e Desenho Orientado a Objetos com UML


                                     Orientação a Objetos. Principais Conceitos:
Capacitação Engenharia de Software



                                     Objetos do Mundo Real
                                     Quando atribuímos valores aos objetos, ou seja, as propriedades (atributos), podemos dizer que
                                     ele tem um estado



                                                                                        Atributos
                                                                                                           cor                             branco
                                                                                                           Número chassi                   VW1003G345
                                                                                                           Ano-fabricação 1966
                                            Identificador
                                         Carro
                                                                                             Operações
                                                                                                           acelerar                                       estado
                                                                                                           parar



                                                   Versão 27     Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                                      Todos os direitos reservados e protegidos © 2006 e 2010   9
Análise e Desenho Orientado a Objetos com UML


                                     Orientação a Objetos. Principais Conceitos:
Capacitação Engenharia de Software



                                     Objetos do Mundo Real
                                     Os nomes dos objetos geralmente são substantivo no singular, tais como: cliente, conta-corrente,
                                     pessoa e etc.
                                     Os atributos também são substantivos, exemplo: cor, tamanho, peso, idade, número e etc.
                                     Já as operações usualmente são verbos, como: acelerar, validar, verificar, calcular e etc



                                                                                        Atributos
                                                                                                           cor                             branco
                                                 Substantivo
                                                                                                           Número chassi                   VW1003G345
                                                                                                           Ano-fabricação 1966
                                             Identificador
                                         Carro
                                                                                             Operações
                                                                                                           acelerar
                                                                                                           parar
                                                                verbos

                                                   Versão 27     Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                                      Todos os direitos reservados e protegidos © 2006 e 2010   10
Análise e Desenho Orientado a Objetos com UML


                                     Orientação a Objetos. Principais Conceitos:
Capacitação Engenharia de Software



                                     Objetos do Mundo Real
                                     Modelagem de objeto:

                                     Identificador        Carro
                                                                                                                   Nome (identificador)

                                                                                      Representação na
                                                                                      Orientação a objetos
                                                                                                 Carro
                                      Atributos                                        cor
                                                                                       número chassi
                                     cor               branco
                                                                                       ano-fabricação
                                     Número chassi     VW1003G345                                                                          Propriedades
                                                                                       acelerar                                             (atributos)
                                     Ano-fabricação 1966                               parar
                                     Operações
                                                       acelerar
                                                       parar                                                               Operações

                                                  Versão 27       Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                                   Todos os direitos reservados e protegidos © 2006 e 2010   11
Análise e Desenho Orientado a Objetos com UML


                                     Orientação a Objetos. Principais Conceitos:
Capacitação Engenharia de Software



                                     Objetos do Mundo Real
                                     Modelagem de objeto:

                                                              Para representar os objetos do mundo real criamos classes, E
                                                              aí partir destas classes podemos criar os “objetos”.
                                                              Podemos dizer que um objeto é uma “instance” (espécie) da
                                                              classe.
                                             Carro            As classes são “blueprint” (projeto) para os objetos. São fôrmas
                                       cor                    de objetos.
                                       número chassi
                                       ano-fabricação                                                O que é
                                       acelerar                                                    uma classe ?
                                       parar
                                      Representação na
                                      Orientação a objetos




                                                  Versão 27    Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                                Todos os direitos reservados e protegidos © 2006 e 2010   12
Análise e Desenho Orientado a Objetos com UML


                                       Orientação a Objetos. Principais Conceitos:
Capacitação Engenharia de Software



                                       Classe
                                                                                                Definição de Classe:
                                                                                                Uma classe descreve um conjunto de objetos que compartilham os
                                                                                                mesmos atributos, operações, métodos, relacionamentos e semântica
                                       Classes                                                 As classes são as partes mais importantes de qualquer sistema orientado a
                                                                                               objetos.
                                       Objetos                                                 Usamos as classes para capturar o vocabulário do sistema que está em
                                       Atributos                                               desenvolvimento. Essas classes podem incluir abstrações que são parte do domínio do
                                                                                               problema, assim como as classes que fazem a implementação. Podemos usar ainda as
                                       Métodos                                                 classes para representar itens de software, de hardware e até itens que sejam somente
                                                                                               conceituais.
                                       Abstração de Dados
                                                                                                Exemplo:
                                       Herança                                                  A classe Pessoa deverá ter atributos e métodos comuns
                                       Polimorfismo
                                                                                                                                           Pessoa    Nome da Classe
                                       Encapsulamento
                                                                                                                                        nome            Atributos
                                                                                                                                        idade
                                                                                                                                        getNome()
                                                                                                                                        getIdade()
                                     Nota: Dicionário Aurélio                                                                                        Métodos
                                      Em programação ou modelagem orientada a objetos (v. orientação a objetos), categoria descritiva   setNome()
                                     geral, que abrange o conjunto de objetos que compartilham uma ou mais características quanto a
                                     seus itens de dados e procedimentos associados. 22. Lóg. Agrupamento de objetos que têm uma ou
                                                                                                                                        setIdade()
                                     mais características em comum.

                                                                    Versão 27                   Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                                                                     Todos os direitos reservados e protegidos © 2006 e 2010   13
Análise e Desenho Orientado a Objetos com UML


                                     Orientação a Objetos. Principais Conceitos:
Capacitação Engenharia de Software



                                     Classe
                                                           Exemplo de Classe:
                                                                                                                                                                         3
                                                             1     Livro
                                                                                  Legenda:
                                                                                  1 – Objeto no mundo real
                                     Classes                                      2 – Classe Livro
                                     Objetos                                      3 – Objeto da classe Livro

                                     Atributos
                                     Métodos
                                     Abstração de Dados
                                     Herança
                                     Polimorfismo                             2                                   ISBN 0747551006
                                     Encapsulamento                                                               Titulo: Harry Potter and the
                                                                                                                  Order of the Phoenix
                                                                                                                  Autor: J. K. Rowling




                                               Versão 27    Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                               Todos os direitos reservados e protegidos © 2006 e 2010       14
Análise e Desenho Orientado a Objetos com UML


                                     Orientação a Objetos. Principais Conceitos:
Capacitação Engenharia de Software



                                     Classe e Objeto
                                                                    Classe e Objeto. Exemplo:

                                                                                                             ISBN 0747551006
                                                                                                             Titulo: O Poder da inteligência
                                                                                                             Emocional
                                     Classes                                                                 Autor: Daniel Goleman
                                     Objetos
                                     Atributos                                                               ISBN 0747551006
                                     Métodos                                                                 Titulo: Harry Potter and the
                                                                                                             Order of the Phoenix
                                     Abstração de Dados                                                      Autor: J. K. Rowling
                                     Herança
                                     Polimorfismo                                                            ISBN 8571643512
                                                                                                             Titulo: AS JANELAS DO
                                     Encapsulamento                                                          PARATII
                                                                                                             Autor: Amir Klink


                                                           Uma coleção de livros
                                                           pode ser representada                            Cada livro desta coleção é
                                                           por uma classe chamada                           “instance” (objeto) da classe livro.
                                                           Livro.

                                               Versão 27   Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                                Todos os direitos reservados e protegidos © 2006 e 2010   15
Análise e Desenho Orientado a Objetos com UML


                                     Orientação a Objetos. Principais Conceitos:
Capacitação Engenharia de Software



                                     Classe e Objeto
                                     Classe e Objeto. Exemplo:

                                     Identificador        Carro


                                                                                     Classe (Modelo)                     Objeto (“instance”)
                                                                                             Carro                            fusca:Carro
                                                                                      cor                          cor=“branco”
                                      Atributos                                       número chassi                número chassi=“VW1003G345
                                     cor               branco                         ano-fabricação               ano-fabricação=1966

                                     Número chassi     VW1003G345
                                                                                      Acelerar()
                                     Ano-fabricação 1966                              parar()
                                     Operações
                                                       acelerar
                                                       parar
                                                  Versão 27       Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                                   Todos os direitos reservados e protegidos © 2006 e 2010   16
Análise e Desenho Orientado a Objetos com UML


                                     Orientação a Objetos. Principais Conceitos:
Capacitação Engenharia de Software



                                     Classe e Objeto
                                                           Classe e Objeto. Exemplo:

                                                                                                    Classe

                                     Classes                                       Cliente
                                                                                 nome
                                     Objetos                                     cpf
                                                                                 idade
                                     Atributos
                                     Métodos
                                     Abstração de Dados
                                     Herança                                                                                             Objetos
                                     Polimorfismo
                                     Encapsulamento
                                                              Cliente: clientemulher              Cliente: clientehomem
                                                                    nome = Marina                 nome = Felipe
                                                              cpf = 022.200.708-12                cpf = 039.217.908-22
                                                                           idade = 16             idade = 42




                                               Versão 27    Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                                  Todos os direitos reservados e protegidos © 2006 e 2010   17
Análise e Desenho Orientado a Objetos com UML


                                     Orientação a Objetos. Principais Conceitos:
Capacitação Engenharia de Software



                                     Classe, Responsabilidade e Colaboração
                                                           Responsabilidades
                                                           Definição de Responsabilidades:
                                                           Um contrato ou obrigação em um tipo ou de uma classe
                                                           Ao criar uma classe você estará criando uma declaração de que todos os objetos dessa
                                     Classes               classe têm o mesmo tipo de estado e o mesmo tipo de comportamento.
                                                           Em nível mais abstrato, esses atributos e operações são apenas as características com
                                     Objetos               quais as responsabilidades das classes executadas.
                                     Atributos
                                                            Uma classe chamada de Transação de Pagamento tem a responsabilidade de
                                     Métodos                conhecer as informações inerente a operação, tais como número da transação,
                                     Abstração de Dados     situação, valor, data, tipo de pagamento e etc.

                                     Herança                                                TransacaoPagamento

                                     Polimorfismo                                          numero
                                                                                           valor
                                     Encapsulamento                                        data
                                                                                           situação
                                                                                           TipoPagamento
                                                             Responsabilidades
                                                                                           Responsabilidade:
                                                                                           -- Saber o número da
                                                                                           transação, data, valor
                                                                                           -- Conhecer o tipo de
                                                                                           pagamento...

                                               Versão 27     Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                                    Todos os direitos reservados e protegidos © 2006 e 2010   18
Análise e Desenho Orientado a Objetos com UML


                                     Orientação a Objetos. Principais Conceitos:
Capacitação Engenharia de Software



                                     Classe, Responsabilidade e Colaboração
                                                           Colaboração:
                                                           Definição de Colaboração:
                                                           Ás vezes uma classe precisa colaborar com outra classe para
                                                           cumprir suas responsabilidades
                                     Classes
                                                           A classe Transação de Pagamento tem a responsabilidade de conhecer as
                                     Objetos               informações: número da transação, situação, valor, data, tipo de pagamento e etc.
                                                           As informações sobre tipo de pagamentos estão outras classes que especifica os
                                     Atributos             dados para cada tipo de pagamento. Exemplo: CartaoCredito e BoletoBancario.
                                     Métodos               Desta forma precisamos ter uma colaboração entre as classes para atender as
                                                           responsabilidades.
                                     Abstração de Dados
                                     Herança                      TransacaoPagamento                            CartaoCredito
                                     Polimorfismo               numero
                                                                valor
                                     Encapsulamento             data
                                                                situação
                                                                TipoPagamento                  Colaboração        BoletoBancario
                                                                Responsabilidade:
                                                                -- Saber o número da
                                                                transação, data, valor
                                                                -- Conhecer o tipo de
                                                                pagamento...

                                               Versão 27     Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                               Todos os direitos reservados e protegidos © 2006 e 2010   19
Análise e Desenho Orientado a Objetos com UML


                                     Orientação a Objetos. Principais Conceitos:
Capacitação Engenharia de Software



                                     Classe, Responsabilidade e Colaboração
                                                           Classes, Responsabilidades e Colaboração:

                                                           Para descrever responsabilidades utilize apenas texto em formato livre. Na prática
                                                           uma única responsabilidade pode ser escrita como expressão, ou uma oração ou
                                                           breve parágrafo.
                                     Classes               O CRC (Cartão de Responsabilidade e Colaboração) é uma técnica usada para
                                                           capturar e representar as classes, suas responsabilidade e colaborações.
                                     Objetos               Outra técnica que pode ser usada é a Análise de Caso de Uso.
                                     Atributos
                                     Métodos                                       Nome da classe                                          Cartão CRC
                                     Abstração de Dados
                                     Herança                        Responsabilidades             Colaborações
                                     Polimorfismo
                                     Encapsulamento
                                                                                          Aluno
                                                                    -- Deve conhecer os        Matricula
                                                                    dados dos aluno:           Pessoa
                                                                    Nome                       Curso
                                                                    Número da Matricula
                                                                    Curso

                                               Versão 27     Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                                 Todos os direitos reservados e protegidos © 2006 e 2010   20
Análise e Desenho Orientado a Objetos com UML


                                     Orientação a Objetos. Principais Conceitos:
Capacitação Engenharia de Software



                                     Resumo: Classe e Objeto
                                                           Resumindo:
                                                           Um objeto possui:
                                                               • um estado (definido pelo conjunto de valores dos seus
                                                               atributos em determinado instante)
                                     Classes                   • um comportamento (definido pelo conjunto de métodos
                                     Objetos                   definido na sua interface)
                                     Atributos                 • uma identificação única
                                     Métodos
                                                           Uma classe possui:
                                     Abstração de Dados        • Atributos
                                     Herança                   • Métodos
                                     Polimorfismo              • Responsabilidades (o que ela deve saber fazer)
                                     Encapsulamento            • Colaboração (interação com outras classes)




                                               Versão 27    Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                             Todos os direitos reservados e protegidos © 2006 e 2010   21
Análise e Desenho Orientado a Objetos com UML


                                     Orientação a Objetos. Principais Conceitos:
Capacitação Engenharia de Software



                                     Atributo
                                                            Definindo Atributo:

                                                            • É uma característica (uma propriedade) presente no objeto.
                                                            • Os valores dos atributos é igual ao Estado do Objeto.
                                     Classes                • Somente atributos que são de relevantes ao sistema devem ser
                                     Objetos                descritos na classe.
                                                                                                          Cliente
                                     Atributos                                                          nome
                                     Métodos                                                            cpf
                                                                                                        idade
                                     Abstração de Dados
                                     Herança
                                     Polimorfismo
                                     Encapsulamento

                                                                                     Cliente: clientemulher
                                                                                           nome = Marina
                                                                    atributos        cpf = 022.200.708-12
                                                                                                  idade = 16

                                                Versão 27    Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                                    Todos os direitos reservados e protegidos © 2006 e 2010   22
Análise e Desenho Orientado a Objetos com UML


                                     Orientação a Objetos. Principais Conceitos:
Capacitação Engenharia de Software



                                     Método
                                                            Escrevendo os métodos.

                                                           Para cada atributo é recomendado escrever um par de métodos, os nomes destes
                                                           métodos devem começar com setXXXX( ) e getXXX( )

                                     Classes
                                                                                                               setCodigo():
                                     Objetos                                                                   Para trocar o valor do atributo
                                     Atributos                                     Cliente                     getCodigo():
                                     Métodos                                 codigo
                                                                                                               Para recuperar o valor do atributo
                                                                             nome                              Exemplo:
                                     Abstração de Dados                                                        Valor do atributo: nome = null
                                                                             getCodigo()
                                     Herança                                                                   setNome(“Duke”).
                                                                             setCodigo()
                                                              Métodos                                          Agora valor do atributo nome = “Duke”
                                     Polimorfismo                            getNome()
                                                                             setNome()                         getNome(), retornará “Duke”
                                     Encapsulamento




                                               Versão 27      Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                                      Todos os direitos reservados e protegidos © 2006 e 2010   23
Análise e Desenho Orientado a Objetos com UML


                                     Orientação a Objetos. Principais Conceitos:
Capacitação Engenharia de Software



                                     Método
                                                            Definição de Método:

                                                            Definição:
                                                            Método é a implementação de uma operação.
                                     Classes                Definição de Operação:
                                                            É a implementação de um serviço que pode ser solicitado por qualquer
                                     Objetos
                                                            objeto da classe com a finalidade de afetar um comportamento.
                                     Atributos
                                     Métodos               Chamando os métodos
                                                           Para chamar um método de um objeto é necessário enviar uma mensagem para ele.
                                     Abstração de Dados    As mensagens identificam os métodos a serem executados no objeto receptor.
                                     Herança               Por definição todas as mensagens devem retornar pelo menos um valor.

                                     Polimorfismo                                                ContaCorrente
                                     Encapsulamento                                            conta
                                                                                               saldo
                                                                                               setDeposito()
                                                                                Métodos        getSaldo()
                                                                                               setSaque()



                                               Versão 27      Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                                 Todos os direitos reservados e protegidos © 2006 e 2010   24
Análise e Desenho Orientado a Objetos com UML


                                     Orientação a Objetos. Principais Conceitos:
Capacitação Engenharia de Software



                                     Mensagem
                                                           Definição de Mensagem:
                                                           Definição:
                                                           Mensagem é uma chamada de uma operação sobre um objeto,
                                                           compreendendo um nome da operação e uma lista de valores de
                                     Classes               argumentos. (Rumbaugh)
                                     Objetos               Um mensagem representa a requisição de um objeto remetente a um objeto receptor
                                     Atributos             para este último execute alguma operação definida para sua classe.
                                                           Essa mensagem deve conter informações suficientes para que a operação do objeto
                                     Métodos               receptor possa ser executada.
                                     Abstração de Dados
                                     Herança
                                     Polimorfismo
                                     Encapsulamento




                                               Versão 27    Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                             Todos os direitos reservados e protegidos © 2006 e 2010   25
Análise e Desenho Orientado a Objetos com UML


                                     Orientação a Objetos. Principais Conceitos:
Capacitação Engenharia de Software



                                     Resumo: Métodos
                                                           Resumindo:
                                                           Os métodos são a implementação das operações de objetos.
                                                           Os métodos são responsáveis pelo comportamento do objeto.
                                                           A mudança de estado de um objeto deve ocorrer através dos
                                     Classes               métodos.
                                     Objetos
                                     Atributos             Desta forma podemos dizer que os métodos “encapsulam” os
                                     Métodos               atributos.
                                     Abstração de Dados
                                     Herança
                                     Polimorfismo
                                     Encapsulamento




                                               Versão 27    Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                             Todos os direitos reservados e protegidos © 2006 e 2010   26
Análise e Desenho Orientado a Objetos com UML


                                     Orientação a Objetos. Principais Conceitos:
Capacitação Engenharia de Software



                                     Classe Concreta e Abstrata
                                     Temos dois tipos de classes:

                                     Classe concreta:
                                         São aquelas classes que podem
                                         sofrer “instance” (criação de
                                         objetos) e tem seus métodos
                                         implementados por completo.

                                     E a Classe abstrata ?
                                         São aquelas classes que não
                                         podem sofrer “instance” e seus
                                         métodos não são implementados
                                         por completo (geralmente apenas
                                         assinado).




                                                Versão 27   Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                             Todos os direitos reservados e protegidos © 2006 e 2010   27
Análise e Desenho Orientado a Objetos com UML


                                     Orientação a Objetos. Principais Conceitos:
Capacitação Engenharia de Software



                                     Abstração de Dados
                                     Exemplo:

                                     Um a empresa de transporte possui uma frota de veículo, esta frota é composta por caminhões, peruas
                                     e motos.
                                     Estes veículos têm algumas características semelhantes como cor, peso, tamanho e capacidade de
                                     carga. Entretanto, cada veículo possui outras características diferentes como número de eixos sistema
                                     de freio, tipo de motor e etc.
                                     A abstração de dados é utilizada neste caso para identificar todas as propriedades comuns e reuni-las
                                     em novo conjunto, isto lembra alguns princípios da matemática como fatoração.
                                     Desta forma estaríamos fazendo um melhor aproveitamento das informações que se repetem e também
                                     estamos fazendo que as características diferentes sejam tratada de forma diferenciada.




                                                     O que é
                                                    abstração
                                                    de dados ?


                                                    Versão 27     Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                                   Todos os direitos reservados e protegidos © 2006 e 2010   28
Análise e Desenho Orientado a Objetos com UML


                                     Orientação a Objetos. Principais Conceitos:
Capacitação Engenharia de Software



                                     Abstração de Dados
                                                           Definição de Abstração de Dados:

                                                           Definição de abstração:
                                                           “Habilidade mental que permite aos seres humanos visualizarem os problemas
                                                           do mundo real com vários graus de detalhes, dependendo do contexto corrente
                                     Classes               do problema. (Jim Rumbaugh).
                                     Objetos               Qual é a função da abstração ?
                                     Atributos             A função da abstração é capturar as propriedades e os comportamentos essenciais,
                                                           como se fosse uma fatoração, desta forma determina-se o que é importante e o que
                                     Métodos               não é.
                                     Abstração de Dados    Exemplo
                                     Herança
                                     Polimorfismo                                                      Contribuinte
                                     Encapsulamento               Abstração



                                                                                Contribuinte                                   Contribuinte
                                                                                Pessoa Física                                 Pessoa Jurídica

                                                           especialização

                                               Versão 27     Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                                  Todos os direitos reservados e protegidos © 2006 e 2010   29
Análise e Desenho Orientado a Objetos com UML


                                     Orientação a Objetos. Principais Conceitos:
Capacitação Engenharia de Software



                                     Abstração de Dados
                                                           Exemplo de Abstração de Dados:

                                                           Abstração: nos ajuda a lidar com a complexidade.
                                                           Exemplo
                                     Classes                  Generalização
                                     Objetos
                                                                                            MeiodeComunicação
                                     Atributos
                                     Métodos
                                     Abstração de Dados
                                                                                 Carta              Telefone              Jornal
                                     Herança
                                     Polimorfismo
                                     Encapsulamento


                                                                                                                                            Especialização
                                                              As classes Contribuinte e MeiodeComunuicação são abstratas e ambas podem
                                                              representam um domínio.

                                               Versão 27     Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                                Todos os direitos reservados e protegidos © 2006 e 2010   30
Análise e Desenho Orientado a Objetos com UML


                                     Orientação a Objetos. Principais Conceitos:
Capacitação Engenharia de Software



                                     Abstração de Dados
                                                           Abstração de Dados e Classe Abstrata:
                                                           Uma classe abstrata é uma classe que:
                                                           • Provê organização
                                                           • Não possui “instances”, ou seja, não possui objetos.
                                     Classes               • Possui uma ou mais operações (métodos) abstratas

                                     Objetos                public abstract class ContaBancaria extends Object {
                                     Atributos                  public ContaBancaria() { }
                                                                protected int numerocontacorrente;
                                     Métodos                    public abstract int getNumeroContaCorrente();

                                     Abstração de Dados     }
                                                                public abstract void setNumeroContaCorrente(int numerocontacorrente);


                                     Herança
                                     Polimorfismo
                                     Encapsulamento




                                               Versão 27        Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                                                        Todos os direitos reservados e protegidos © 2006 e 2010   31
Análise e Desenho Orientado a Objetos com UML


                                     Orientação a Objetos. Principais Conceitos:
Capacitação Engenharia de Software



                                     Abstração de Dados, exemplo:
                                     Veja agora a classe Pessoa, que é                      public abstract class Pessoa {
                                     abstrata, pois, possui um método                          //métodos
                                                                                               public abstract String getNome()
                                     abstrato.
                                                                                                   public void setNome(String nome){
                                                                                                            this.nome = nome;
                                                                                                   }
                                     Um método abstrato não possui                                public abstract int calcIdade(Date
                                                                                                   public abstract int getIdade()
                                     implementação somente assinatura                                        d1, Date d2);
                                     (declaração)                                                 public void setIdade(int idade)
                                                                                                  public void setIdade(int idade)
                                                                                                  {                  {
                                                                                                            this.idade = idade;
                                                                                                               this.idade = idade;
                                                                                                  }                  }

                                                                                              }



                                                            Um método concreto possui implementação
                                                            assinatura e implementação.

                                                Versão 27        Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                                     Todos os direitos reservados e protegidos © 2006 e 2010   32
Análise e Desenho Orientado a Objetos com UML


                                     Orientação a Objetos. Principais Conceitos:
Capacitação Engenharia de Software



                                     Resumo: Classe Abstrata
                                                           Resumindo:
                                                           Uma classe abstrata deve ter métodos abstratos.
                                                           Uma classe abstrata não possui “instance”
                                     Classes
                                     Objetos
                                     Atributos
                                     Métodos
                                     Abstração de Dados                                Como eu faço
                                     Herança                                           para usar uma
                                     Polimorfismo                                     classe abstrata ?
                                     Encapsulamento




                                               Versão 27    Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                             Todos os direitos reservados e protegidos © 2006 e 2010   33
Análise e Desenho Orientado a Objetos com UML


                                     Orientação a Objetos. Principais Conceitos:
Capacitação Engenharia de Software



                                     Abstração de Dados

                                                  Comparação entre Classe Abstrata e Classe Concreta

                                                 Classe Abstrata                                               Classe Concreta

                                                                                          Os métodos podem ser assinados e
                                     Os métodos devem ser somente assinados
                                                                                          implementados

                                     Não pode sofrer “instance”                           Poder sofrer “instance”

                                     Relacionamento somente através de
                                                                                          Todos os tipos de relacionamentos
                                     HERANÇA




                                                  Versão 27   Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                                    Todos os direitos reservados e protegidos © 2006 e 2010   34
Análise e Desenho Orientado a Objetos com UML


                                     Orientação a Objetos. Principais Conceitos:
Capacitação Engenharia de Software



                                     Herança
                                                            Definição de Herança:
                                                           Definição:
                                                           Mecanismo baseado em objetos que permite que as classes compartilhem atributos
                                                           e operações baseadas em um relacionamento, geralmente generalização.
                                     Classes               (Rumbaugh)
                                     Objetos               Uma classe derivada herda a estrutura de atributos e métodos de sua
                                     Atributos             classe “base”, mas pode seletivamente:
                                                           • adicionar novos métodos
                                     Métodos               • estender a estrutura de dados
                                                           • redefinir a implementação de métodos já existentes
                                     Abstração de Dados
                                     Herança               Uma classe “pai” ou super classe proporciona a funcionalidade que é comum a todas as
                                                           suas classes derivadas, filhas ou sub classe, enquanto que a classe derivada
                                     Polimorfismo          proporciona a funcionalidade adicional que especializa seu comportamento.
                                     Encapsulamento        Exemplo:
                                                                                                   Animal
                                                                                            classe pai



                                                                            Animal Doméstico                   Animal Selvagem
                                                                          classe filha


                                               Versão 27      Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                                  Todos os direitos reservados e protegidos © 2006 e 2010   35
Análise e Desenho Orientado a Objetos com UML


                                     Orientação a Objetos. Principais Conceitos:
Capacitação Engenharia de Software



                                     Herança
                                                            Exemplo de Herança:




                                     Classes                                                                            Podemos dizer que Pós-
                                                                                   Hierarquia de Classes                Graduação é tipo de Curso
                                     Objetos                                                                            Universitário, assim como
                                                                                         Curso
                                     Atributos                   Super classe         Universitário
                                                                                                                        Curso de Especialização ou
                                                                                                                        de Extensão.
                                     Métodos                     ou classe pai


                                     Abstração de Dados
                                     Herança                      Graduação                                Pós-Graduação

                                     Polimorfismo                                                      extends
                                     Encapsulamento               Sub classe
                                                                 ou classe filha      Especialização                                  Extensão

                                                           Validação: Pode ser feita através de uma expressão que resulte um valor verdadeiro
                                                           Exemplo:
                                                           Graduação é tipo de Curso Universitário = Verdadeiro


                                               Versão 27      Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                                     Todos os direitos reservados e protegidos © 2006 e 2010   36
Análise e Desenho Orientado a Objetos com UML


                                     Orientação a Objetos. Principais Conceitos:
Capacitação Engenharia de Software



                                     Polimorfismo
                                                           Definição de Polimorfismo:
                                                           Definição:

                                                           “Polimorfismo” é uma operação que pode assumir múltiplas formas, a propriedade
                                                           segundo o qual uma operação pode comportar-se diferentemente em classes
                                     Classes               diferentes” (Rumbaugh)
                                                           O polimorfismo é o responsável pela extensibilidade na programação orientada a
                                     Objetos               objetos.
                                     Atributos             Promove o reúso.

                                     Métodos               Exemplo:

                                     Abstração de Dados
                                                                           Billhetagem
                                     Herança                                                                      Telefone Móvel
                                     Polimorfismo                     calcularConta(telefone)
                                     Encapsulamento

                                                                                                                     Telefone Fixo




                                               Versão 27    Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                             Todos os direitos reservados e protegidos © 2006 e 2010   37
Análise e Desenho Orientado a Objetos com UML


                                     Orientação a Objetos. Principais Conceitos:
Capacitação Engenharia de Software



                                     Polimorfismo
                                                           Overloading de Método
                                                           Possibilidade de reúso do nome do método para diferentes implementações, em
                                                           tempo de execução, a aplicação, escolherá o método mais adequado para cada
                                                           chamada, veja o exemplo.
                                     Classes
                                     Objetos
                                     Atributos                   TesteSoma                                                           Soma

                                     Métodos                                                                    somar(int a, int b)
                                                                                                                somar(float a, float b)
                                     Abstração de Dados                                                         somar(char a, char b)
                                     Herança                                                                    somar(long a, long b))

                                     Polimorfismo
                                     Encapsulamento
                                                           Para cada tipo de dados existe um método, o reúso do nome do método é permitido,
                                                           entretanto, a lista de argumentos deve ser diferente, veja o exemplo acima: o método
                                                           somar é definido várias vezes, contudo, com uma lista de argumentos diferentes,
                                                           desta forma evitaremos problemas como ambigüidade.




                                               Versão 27     Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                                Todos os direitos reservados e protegidos © 2006 e 2010   38
Análise e Desenho Orientado a Objetos com UML


                                     Orientação a Objetos. Principais Conceitos:
Capacitação Engenharia de Software



                                     Polimorfismo
                                                            Overridde de Método
                                                           Uma sub classe (classe filha) pode mudar o comportamento herdado da
                                                           Super classe (classe pai), ou seja, um método herdado poderá ser
                                                           modificado. Veja o exemplo abaixo:
                                     Classes                                                   Conta Bancária
                                     Objetos                                                    getSaldo()
                                     Atributos
                                     Métodos
                                     Abstração de Dados                  Conta Corrente       Conta Poupança         Investimentos
                                     Herança                              getSaldo()            getSaldo()           getSaldo()
                                     Polimorfismo
                                     Encapsulamento         O método getSaldo é herdado da Superclasse (Conta Bancária), entretanto para cada tipo de
                                                            Conta o método tem uma implementação diferente. Por exemplo:
                                                            - Para apurar o saldo da Conta Corrente saldo atual = (soma dos depósitos + saldo anterior) -
                                                            saques
                                                            Para a conta poupança seria saldo atual = (soma dos depósitos + saldo anterior + juros) -
                                                            saques
                                                            Para a conta de investimentos seria saldo atual = (soma dos aplicações + saldo anterior +
                                                            juros) - resgates - ir

                                               Versão 27     Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                                      Todos os direitos reservados e protegidos © 2006 e 2010   39
Análise e Desenho Orientado a Objetos com UML


                                     Orientação a Objetos. Principais Conceitos:
Capacitação Engenharia de Software



                                     Encapsulamento
                                     Principais Conceitos
                                                            Definição de Encapsulamento:

                                                           É uma proteção adicional dos dados do objeto de possíveis modificações
                                                           impróprias, forçando o acesso a um nível mais baixo para tratamento do dados.

                                     Classes
                                     Objetos                                                            Public
                                                                                                        Operações/métodos/interface
                                     Atributos
                                     Métodos
                                     Abstração de Dados
                                     Herança
                                     Polimorfismo
                                                                                             Private
                                     Encapsulamento                                          Dados/Atributos/propriedades



                                                            Exemplo:
                                                            Quanto temos a edição de um arquivo protegida por senha, podemos dizer que ele
                                                            está protegido, pois, apenas aquele que tem a senha poderá editá-lo. Os demais
                                                            somente estão aptos a le-lo.

                                               Versão 27      Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                                     Todos os direitos reservados e protegidos © 2006 e 2010   40
Análise e Desenho Orientado a Objetos com UML


                                     Orientação a Objetos. Principais Conceitos:
Capacitação Engenharia de Software



                                     Encapsulamento
                                                           Benefícios do Encapsulamento:

                                                           Benefícios
                                                           - Segurança:
                                                                  Protege os atributos dos objetos de terem seus valores corrompidos por
                                     Classes                      outros objetos.
                                                           - Independência:
                                     Objetos                      “Escondendo” seus atributos, um objeto protege outros objetos de
                                     Atributos                    complicações de dependência de sua estrutura interna

                                     Métodos
                                     Abstração de Dados
                                                               Pessoa
                                     Herança                 nome
                                     Polimorfismo            idade                 setNome()                  nome                        getNome()
                                     Encapsulamento          setNome()
                                                             getNome()
                                                             setIdade()             setIdade()                idade                       getIdade()
                                                             getIdade()

                                                                                                              encapsulamento



                                               Versão 27     Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                                  Todos os direitos reservados e protegidos © 2006 e 2010   41
Análise e Desenho Orientado a Objetos com UML


                                       UML. Linguagem de Modelagem Unificada
Capacitação Engenharia de Software




                                     A versão da UML abordada é versão 1.5

                                                         Versão 27           Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                                              Todos os direitos reservados e protegidos © 2006 e 2010   42
Análise e Desenho Orientado a Objetos com UML


                                     UML. Linguagem de Modelagem Unificada
Capacitação Engenharia de Software



                                     Introdução
                                     Por que modelar sistemas ?

                                     Construímos modelos para compreender melhor o sistema que estamos desenvolvendo.
                                     Com a modelagem, podemos alcançar alguns objetivos:
                                     1 - Os modelos ajudam a visualizar o sistema como ele é ou como desejamos que seja;
                                     2 - Os modelos permitem especificar a estrutura ou o comportamento de um sistema;
                                     3 - Os modelos proporcionam um guia para a construção do sistema;
                                     4 - Os modelos ajudam na documentação do sistema.
                                      O Que é Modelagem Visual?




                                        “A Modelagem captura as partes essenciais do sistema.” (Rumbaugh)
                                                 Versão 27    Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                               Todos os direitos reservados e protegidos © 2006 e 2010   43
Análise e Desenho Orientado a Objetos com UML


                                     UML. Linguagem de Modelagem Unificada
Capacitação Engenharia de Software



                                     Introdução
                                     O Que é Modelagem Visual?
                                     Modelagem visual significa modelar com a utilização de uma notação padrão.
                                     Precisamos adotar uma notação padrão (linguagem) e uma ferramenta.
                                     UML (Linguagem de Modelagem Unificada) é a linguagem de modelagem visual
                                     considerada padrão de mercado.


                                     A UML (Linguagem de Modelagem Unificado)
                                     é mantida pelo OMG (www.omg.org/uml).




                                                 Versão 27   Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                              Todos os direitos reservados e protegidos © 2006 e 2010   44
Análise e Desenho Orientado a Objetos com UML


                                     UML. Linguagem de Modelagem Unificada
Capacitação Engenharia de Software



                                     Introdução
                                     A UML (Linguagem de Modelagem Unificada) é uma linguagem-padrão para elaboração
                                     da estrutura de projetos de software. A UML poderá ser usada para:
                                     • Visualização
                                     • Especificação
                                     • Construção de modelos e diagramas
                                     • Parte da documentação.

                                     A UML é adequada para a modelagem de sistemas, cuja a abrangência poderá incluir
                                     sistemas de informação corporativos a serem distribuídos a aplicação baseadas em Web
                                     e até sistemas complexos embutidos de tempo real.

                                     A UML é apenas uma linguagem e, portanto, é somente uma parte de um método para
                                     desenvolvimento de software. Ela é independente do processo, apesar de ser
                                     perfeitamente utilizada em processo orientado a casos de usos, centrado na arquitetura,
                                     iterativo e incremental.


                                                  Versão 27    Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                                Todos os direitos reservados e protegidos © 2006 e 2010   45
Análise e Desenho Orientado a Objetos com UML


                                     UML. Linguagem de Modelagem Unificada
Capacitação Engenharia de Software



                                     Principais Digramas:

                                         ESTÁTICOS

                                         . Diagrama de Classes
                                         . Diagrama de Objetos                                  Estrutura do sistema
                                         . Diagrama de Componentes
                                         . Diagrama de Distribuição


                                         DINÂMICOS

                                         . Diagrama de Casos de Uso
                                         . Diagramas de Interação                               Comportamento do sistema
                                               - Diagrama de Seqüência
                                               - Diagrama de Colaboração
                                         . Diagrama de Atividade
                                         . Diagrama de Estados

                                               Versão 27   Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                              Todos os direitos reservados e protegidos © 2006 e 2010   46
Análise e Desenho Orientado a Objetos com UML


                                     UML. Linguagem de Modelagem Unificada
Capacitação Engenharia de Software



                                     Processo de Desenvolvimento:
                                                            Processo de Desenvolvimento


                                         Modelo Casos       Modelo Objetos
                                                                                                          Modelo de Classes
                                         Uso de Negócio       de Negócio




                                                                                 Realização     Análise                                Desenho
                                       Necessidades dos Visão        Modelo de dos Casos de Uso Classes                                 Classes
                                         Stakeholders               Casos de Uso



                                                                             Casos de Teste
                                                                                                                                       Componentes

                                                                    Defeitos                          Script de Testes

                                                Versão 27      Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                                  Todos os direitos reservados e protegidos © 2006 e 2010   47
Análise e Desenho Orientado a Objetos com UML


                                     UML. Linguagem de Modelagem Unificada
Capacitação Engenharia de Software



                                     A Linguagem:
                                     •   Linguagem = Sintaxe + semântica
                                          – syntax = rules by which language elements (e.g., words) are assembled
                                            into expressions (e.g., phrases, clauses)
                                          – semantics = rules by which syntactic expressions are assigned
                                            meanings
                                     •   Notação = (UML Notation Guide) – define uma sintaxe gráfica UML
                                     •   Semântica = (UML Semantics) – define uma semântica UML




                                                 Versão 27   Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                              Todos os direitos reservados e protegidos © 2006 e 2010   48
Análise e Desenho Orientado a Objetos com UML


                                     UML. Linguagem de Modelagem Unificada
Capacitação Engenharia de Software



                                     Elementos:
                                     •   Elementos estruturais:
                                          – classe, interface, colaboração, caso de uso, classe ativa, componente
                                            e nó
                                     •   Elementos comportamentais:
                                          – Interação e máquina de estados
                                     •   Elementos de agrupamento:
                                          – Pacote e subsistema




                                                 Versão 27   Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                              Todos os direitos reservados e protegidos © 2006 e 2010   49
Análise e Desenho Orientado a Objetos com UML


                                     UML. Linguagem de Modelagem Unificada
Capacitação Engenharia de Software



                                     Visão: 4 + 1


                                                           Visão de                                Visão da
                                                           Projeto                              Implementação
                                                                                                                                    Codificação
                                         Funcionalidade                                                                             Montagem
                                         Vocabulário
                                                                    Visão de
                                                                   Caso de Uso
                                                           Visão do            Visão da
                                                           Processo          Implantação
                                          Desempenho                                                           Topologia do Sistema
                                          Escalabilidade                                                                Distribuição
                                          Throughput                                                                      Instalação

                                                     Conceitual                                              Físico
                                              Versão 27     Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                               Todos os direitos reservados e protegidos © 2006 e 2010   50
Análise e Desenho Orientado a Objetos com UML


                                         UML. Linguagem de Modelagem Unificada
Capacitação Engenharia de Software



                                         Visões:
                                          Visão de Caso
                                              de Uso
                                     •     A visão do caso de uso abrange os casos de usos que descrevem o comportamento do sistema
                                           conforme é visto pelos seus usuários finais, analistas e pessoal de teste. Essa visão não
                                           especifica realmente a organização do sistema de software. Porém , ela existe para especificar as
                                           forças que determinam a forma da arquitetura do Sistema. Com a UML, os aspectos estáticos
                                           dessa visão são representados em diagramas de caso de uso, enquanto os aspectos dinâmicos
                                           são representados em diagrama de interação, diagrama de estados e diagrama de atividades



                                          Visão de Projeto

                                     •     A visão de projeto de um sistema abrange as classes e colaborações que formam o vocabulário do
                                           problema e da solução. Essa perspectiva proporciona principalmente um suporte para os requisitos
                                           funcionais do sistema, ou seja, os serviços que o sistema deverá fornecer a seus usuários finais.
                                           Com a UML, os aspectos estáticos dessa visão são capturados em diagramas de classes e de
                                           objetos; os aspectos dinâmicos são capturados em diagramas de interações, de estados e de
                                           atividades.
                                                         Versão 27    Rildo Santos (rildo.santos@etecnologia.com.br)
                                                                                                                       Todos os direitos reservados e protegidos © 2006 e 2010   51
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML

Weitere ähnliche Inhalte

Was ist angesagt?

Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
elliando dias
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
eros.viggiano
 
Prototipação de software
Prototipação de softwarePrototipação de software
Prototipação de software
leopp
 

Was ist angesagt? (20)

Modelo de Prototipação
Modelo de PrototipaçãoModelo de Prototipação
Modelo de Prototipação
 
Aula 2 - Modelos de processos
Aula 2 -  Modelos de processosAula 2 -  Modelos de processos
Aula 2 - Modelos de processos
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Ferramentas Case - fase de análise e projeto
Ferramentas Case - fase de análise e projetoFerramentas Case - fase de análise e projeto
Ferramentas Case - fase de análise e projeto
 
Diagrama de Casos de Uso
Diagrama de Casos de UsoDiagrama de Casos de Uso
Diagrama de Casos de Uso
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
 
Pmbok 5a edição
Pmbok 5a ediçãoPmbok 5a edição
Pmbok 5a edição
 
Prototipação de software
Prototipação de softwarePrototipação de software
Prototipação de software
 
Aula 1 - Gestão de Projetos
Aula 1 - Gestão de ProjetosAula 1 - Gestão de Projetos
Aula 1 - Gestão de Projetos
 
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile AppAula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile App
 
Treinamento em gestão de projetos
Treinamento em gestão de projetosTreinamento em gestão de projetos
Treinamento em gestão de projetos
 
Modelo V - Desenvolvimento de Software
Modelo V - Desenvolvimento de SoftwareModelo V - Desenvolvimento de Software
Modelo V - Desenvolvimento de Software
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 
Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)
 
Arquitetura de Software Visão Geral
Arquitetura de Software Visão GeralArquitetura de Software Visão Geral
Arquitetura de Software Visão Geral
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Qualidade de Software
Qualidade de SoftwareQualidade de Software
Qualidade de Software
 
Plano de Projeto de Implantação de Software ERP Vertical de Saúde integrado c...
Plano de Projeto de Implantação de Software ERP Vertical de Saúde integrado c...Plano de Projeto de Implantação de Software ERP Vertical de Saúde integrado c...
Plano de Projeto de Implantação de Software ERP Vertical de Saúde integrado c...
 
Aula 06 - Diagrama de classes
Aula 06 - Diagrama de classesAula 06 - Diagrama de classes
Aula 06 - Diagrama de classes
 

Andere mochten auch

Livro análise e projeto oo e uml
Livro análise e projeto oo e umlLivro análise e projeto oo e uml
Livro análise e projeto oo e uml
Daniel Marins
 
Medidas de Informática
Medidas de InformáticaMedidas de Informática
Medidas de Informática
Patty Santana
 
Apostila de poo em c++
Apostila de poo em c++Apostila de poo em c++
Apostila de poo em c++
Lindomar ...
 

Andere mochten auch (20)

UML
UMLUML
UML
 
Análise de Negócio na Perspectiva de BI
Análise de Negócio na Perspectiva de BIAnálise de Negócio na Perspectiva de BI
Análise de Negócio na Perspectiva de BI
 
Livro análise e projeto oo e uml
Livro análise e projeto oo e umlLivro análise e projeto oo e uml
Livro análise e projeto oo e uml
 
Exercicio de UML - Documentacao Restaurante
Exercicio de UML  - Documentacao RestauranteExercicio de UML  - Documentacao Restaurante
Exercicio de UML - Documentacao Restaurante
 
Análise Orientada a Objetos com UML
Análise Orientada a Objetos com UMLAnálise Orientada a Objetos com UML
Análise Orientada a Objetos com UML
 
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. CarvalhoAula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
 
Uml Diagramas Estruturais
Uml   Diagramas EstruturaisUml   Diagramas Estruturais
Uml Diagramas Estruturais
 
Exercitando modelagem em UML
Exercitando modelagem em UMLExercitando modelagem em UML
Exercitando modelagem em UML
 
Como demonstrar ROI das entregas de valor com Business Case
Como demonstrar ROI das entregas de valor com Business Case Como demonstrar ROI das entregas de valor com Business Case
Como demonstrar ROI das entregas de valor com Business Case
 
Resumo do Guia BABOK® 3
Resumo do Guia BABOK®  3 Resumo do Guia BABOK®  3
Resumo do Guia BABOK® 3
 
Medidas de Informática
Medidas de InformáticaMedidas de Informática
Medidas de Informática
 
Gerência de Projetos de Software - Aula 2
Gerência de Projetos de Software - Aula 2Gerência de Projetos de Software - Aula 2
Gerência de Projetos de Software - Aula 2
 
Gerência de Projetos de Software - Aula 3
Gerência de Projetos de Software - Aula 3Gerência de Projetos de Software - Aula 3
Gerência de Projetos de Software - Aula 3
 
Programação Orientada a Aspectos
Programação Orientada a AspectosProgramação Orientada a Aspectos
Programação Orientada a Aspectos
 
Análise e Projeto Orientado a Objetos
Análise e Projeto Orientado a ObjetosAnálise e Projeto Orientado a Objetos
Análise e Projeto Orientado a Objetos
 
Introdução à UML com Casos de Uso
Introdução à UML com Casos de UsoIntrodução à UML com Casos de Uso
Introdução à UML com Casos de Uso
 
Apostila de poo em c++
Apostila de poo em c++Apostila de poo em c++
Apostila de poo em c++
 
Uml ppoint
Uml ppointUml ppoint
Uml ppoint
 
Orientação a Objetos para Desenvolvedores Android
Orientação a Objetos para Desenvolvedores AndroidOrientação a Objetos para Desenvolvedores Android
Orientação a Objetos para Desenvolvedores Android
 
Apresentação da UML
Apresentação da UMLApresentação da UML
Apresentação da UML
 

Ähnlich wie Analise e Desenho Orientado a Objetos com UML

Aula1 - Modelagem de Sistemas Orientada a Objetos
Aula1 - Modelagem de Sistemas Orientada a ObjetosAula1 - Modelagem de Sistemas Orientada a Objetos
Aula1 - Modelagem de Sistemas Orientada a Objetos
Leandro Rezende
 
Aula 1 2-es
Aula 1 2-esAula 1 2-es
Aula 1 2-es
cifjovo
 
Umlv4 090813182632-phpapp02
Umlv4 090813182632-phpapp02Umlv4 090813182632-phpapp02
Umlv4 090813182632-phpapp02
Jhonefj
 
Análise e projeto de sistemas de informação aula1
Análise e projeto de sistemas de informação   aula1Análise e projeto de sistemas de informação   aula1
Análise e projeto de sistemas de informação aula1
Gilberto Cysneiros
 

Ähnlich wie Analise e Desenho Orientado a Objetos com UML (20)

Desenhando Componentes de Software com UML
Desenhando Componentes de Software com UMLDesenhando Componentes de Software com UML
Desenhando Componentes de Software com UML
 
Aula1 - Modelagem de Sistemas Orientada a Objetos
Aula1 - Modelagem de Sistemas Orientada a ObjetosAula1 - Modelagem de Sistemas Orientada a Objetos
Aula1 - Modelagem de Sistemas Orientada a Objetos
 
Aula 1 2-es
Aula 1 2-esAula 1 2-es
Aula 1 2-es
 
Tutorial Excel 2003 intermediário
Tutorial Excel 2003 intermediárioTutorial Excel 2003 intermediário
Tutorial Excel 2003 intermediário
 
Análise e Projeto de Sistemas
Análise e Projeto de SistemasAnálise e Projeto de Sistemas
Análise e Projeto de Sistemas
 
AnaliseXProjeto.pptx
AnaliseXProjeto.pptxAnaliseXProjeto.pptx
AnaliseXProjeto.pptx
 
Metodologia orientado a objetos
Metodologia orientado a objetosMetodologia orientado a objetos
Metodologia orientado a objetos
 
Eng.ª do Software - 1. Introdução
Eng.ª do Software - 1. IntroduçãoEng.ª do Software - 1. Introdução
Eng.ª do Software - 1. Introdução
 
Preparatório uml
Preparatório umlPreparatório uml
Preparatório uml
 
Aula4-modelagem e uml
Aula4-modelagem e umlAula4-modelagem e uml
Aula4-modelagem e uml
 
AE Rio 2011 - AITEC - Pedro Sousa
AE Rio 2011 - AITEC - Pedro SousaAE Rio 2011 - AITEC - Pedro Sousa
AE Rio 2011 - AITEC - Pedro Sousa
 
Egenharia de Software Orientado a Aspectos
Egenharia de Software Orientado a AspectosEgenharia de Software Orientado a Aspectos
Egenharia de Software Orientado a Aspectos
 
Introdução à linguagem UML
Introdução à linguagem UMLIntrodução à linguagem UML
Introdução à linguagem UML
 
Umlv4 090813182632-phpapp02
Umlv4 090813182632-phpapp02Umlv4 090813182632-phpapp02
Umlv4 090813182632-phpapp02
 
Fundamentos de Sistemas de Informacao - Aula 27
Fundamentos de Sistemas de Informacao - Aula 27Fundamentos de Sistemas de Informacao - Aula 27
Fundamentos de Sistemas de Informacao - Aula 27
 
Técnicas de Gestão para Análise de Negócio
Técnicas de Gestão para Análise de NegócioTécnicas de Gestão para Análise de Negócio
Técnicas de Gestão para Análise de Negócio
 
Aula 5 -_fundamentos_de_uml
Aula 5 -_fundamentos_de_umlAula 5 -_fundamentos_de_uml
Aula 5 -_fundamentos_de_uml
 
Análise e projeto de sistemas de informação aula1
Análise e projeto de sistemas de informação   aula1Análise e projeto de sistemas de informação   aula1
Análise e projeto de sistemas de informação aula1
 
Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1
 
Análise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e JavaAnálise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e Java
 

Mehr von Rildo (@rildosan) Santos

Mehr von Rildo (@rildosan) Santos (20)

Feedback. Arte de dar e receber feedback
Feedback. Arte de dar e receber feedbackFeedback. Arte de dar e receber feedback
Feedback. Arte de dar e receber feedback
 
Minicurso Meça o que importa com OKR
Minicurso Meça o que importa com OKRMinicurso Meça o que importa com OKR
Minicurso Meça o que importa com OKR
 
Minicurso Fundamentos da Análise de Negócio 3.0
Minicurso Fundamentos da Análise de Negócio 3.0Minicurso Fundamentos da Análise de Negócio 3.0
Minicurso Fundamentos da Análise de Negócio 3.0
 
Meça o que importa com OKR
Meça o que importa com OKRMeça o que importa com OKR
Meça o que importa com OKR
 
Scrum Experience
Scrum ExperienceScrum Experience
Scrum Experience
 
Minicurso Gestão Ágil de Projetos com Abordagem Híbrida
Minicurso Gestão Ágil de Projetos com Abordagem HíbridaMinicurso Gestão Ágil de Projetos com Abordagem Híbrida
Minicurso Gestão Ágil de Projetos com Abordagem Híbrida
 
Digital Business Design (Design de Negócios Digitais)
Digital Business Design (Design de Negócios Digitais)Digital Business Design (Design de Negócios Digitais)
Digital Business Design (Design de Negócios Digitais)
 
Novidades da Sétima Edição do Guia PMBOK
Novidades da Sétima Edição do Guia PMBOKNovidades da Sétima Edição do Guia PMBOK
Novidades da Sétima Edição do Guia PMBOK
 
Jornada de Aprendizado Lean BPM
Jornada de Aprendizado Lean BPM Jornada de Aprendizado Lean BPM
Jornada de Aprendizado Lean BPM
 
Mapa Mental Scrum
Mapa Mental ScrumMapa Mental Scrum
Mapa Mental Scrum
 
Tutorial Scrum Experience
Tutorial Scrum Experience Tutorial Scrum Experience
Tutorial Scrum Experience
 
Guia BPM CBOK(R)
Guia BPM CBOK(R)Guia BPM CBOK(R)
Guia BPM CBOK(R)
 
Gestão Ágil de Projetos
Gestão Ágil de ProjetosGestão Ágil de Projetos
Gestão Ágil de Projetos
 
Scrum Master em ação
Scrum Master em açãoScrum Master em ação
Scrum Master em ação
 
Transformação Ágil
Transformação ÁgilTransformação Ágil
Transformação Ágil
 
Service Design Thinking
Service Design Thinking Service Design Thinking
Service Design Thinking
 
Gestão de Projetos Ágeis
Gestão de Projetos ÁgeisGestão de Projetos Ágeis
Gestão de Projetos Ágeis
 
Scrum, o tutorial definitivo
Scrum, o tutorial definitivo Scrum, o tutorial definitivo
Scrum, o tutorial definitivo
 
Feedback Canvas
Feedback CanvasFeedback Canvas
Feedback Canvas
 
Business Design Thinking
Business Design ThinkingBusiness Design Thinking
Business Design Thinking
 

Analise e Desenho Orientado a Objetos com UML

  • 1. com UML Análise e Desenho Orientado a Objetos Capacitação Engenharia de Software Análise e Desenho Orientado a Objetos com UML Rildo F Santos rildo.santos@etecnologia.com.br rildo.santos@companyweb.com.br Twitter: @rildosan Blog: http://rildosan.blogspot.com/ Todos os direitos reservados e protegidos © 2006 e 2010 Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Versão 27 |
  • 2. Análise e Desenho Orientado a Objetos com UML Conteúdo Capacitação Engenharia de Software Parte 1 - Principais Conceitos da Orientação a Objetos e introdução UML Parte 2 – Especificação de Requisitos de Software Parte 3 – Analise Conceitual Parte 4 – Desenho (design) do Modelo de Especificação de Software Parte 5 – Arquitetura de Software Todos os direitos reservados e protegidos © 2006 e 2010 Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) 2
  • 3. Capacitação Engenharia de Software Análise e Desenho Orientado a Objetos com UML Principais Conceitos da Orientação a Objetos e UML Objetivo desta parte: É apresentar e discutir os principais conceitos da Orientação a Objetos e fazer uma breve introdução a UML Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 3
  • 4. Análise e Desenho Orientado a Objetos com UML Orientação a Objetos. Principais Conceitos: Capacitação Engenharia de Software Objetivo Objetivo: Apresentar os principais conceitos da orientação a objetos. Será demonstrado os seguintes conceitos: Classes, Objetos, Atributos, Métodos, Classe Abstrata, Abstração de Dados, Herança, Polimorfismo e Encapsulamento Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 4
  • 5. Análise e Desenho Orientado a Objetos com UML Orientação a Objetos. Principais Conceitos: Capacitação Engenharia de Software Introdução. Desenvolvimento de Software Orientada a Objetos Influência escolha da Ferramentas Ferramentas Tecnologia OO e Artefatos Atividades Suporte as atividades WorkFlows Metodologia/Fases Jacobson pyramid “rational enterprise philosophy” Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 5
  • 6. Análise e Desenho Orientado a Objetos com UML Orientação a Objetos. Principais Conceitos: Capacitação Engenharia de Software Objetos do Mundo Real Podemos encontrar várias definições para o termo “objeto”, entre eles: “Objeto pode ser qualquer coisa na natureza que possua características e comportamentos” Veja alguns exemplos de objetos: Pessoa Cão Partida Barco de Futebol Os objetos podem ser físico (aqueles que podemos pegar, exemplos: uma pessoa, um animal, um barco, um livro, um carro, uma casa e etc) e os conceituais (aqueles que não podemos pegar, tais como: uma partida de futebol, uma ligação telefônica, uma conta corrente e etc...) Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 6
  • 7. Análise e Desenho Orientado a Objetos com UML Orientação a Objetos. Principais Conceitos: Capacitação Engenharia de Software Objetos do Mundo Real Objetos O termo orientação a objetos significa organizar o mundo real como uma coleção de objetos que incorporam estrutura de dados (propriedades ou características) e um conjunto de operações que manipulam estes dados. Classes Objetos Objeto: Pessoa Propriedades Operações Andar Atributos Nome Correr Data de Nascimento Métodos Massa (peso) Trabalhar Chorar Altura Abstração de Dados Dançar Herança Objeto: Pássaro Propriedades Operações Polimorfismo Espécie Andar Encapsulamento Cor das penas Correr Tamanho Voar Peso Pousar Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 7
  • 8. Análise e Desenho Orientado a Objetos com UML Orientação a Objetos. Principais Conceitos: Capacitação Engenharia de Software Objetos do Mundo Real Os objetos tem um identificador único (que podemos chamar de nome do objeto), tem conjunto de propriedades (que podemos chamar de características e/ou atributos) e comportamentos (que podemos chamar de operações). Atributos cor Número chassi Ano-fabricação Identificador Carro Operações acelerar O que são operações ? parar - São coisas que objeto deve saber fazer. Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 8
  • 9. Análise e Desenho Orientado a Objetos com UML Orientação a Objetos. Principais Conceitos: Capacitação Engenharia de Software Objetos do Mundo Real Quando atribuímos valores aos objetos, ou seja, as propriedades (atributos), podemos dizer que ele tem um estado Atributos cor branco Número chassi VW1003G345 Ano-fabricação 1966 Identificador Carro Operações acelerar estado parar Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 9
  • 10. Análise e Desenho Orientado a Objetos com UML Orientação a Objetos. Principais Conceitos: Capacitação Engenharia de Software Objetos do Mundo Real Os nomes dos objetos geralmente são substantivo no singular, tais como: cliente, conta-corrente, pessoa e etc. Os atributos também são substantivos, exemplo: cor, tamanho, peso, idade, número e etc. Já as operações usualmente são verbos, como: acelerar, validar, verificar, calcular e etc Atributos cor branco Substantivo Número chassi VW1003G345 Ano-fabricação 1966 Identificador Carro Operações acelerar parar verbos Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 10
  • 11. Análise e Desenho Orientado a Objetos com UML Orientação a Objetos. Principais Conceitos: Capacitação Engenharia de Software Objetos do Mundo Real Modelagem de objeto: Identificador Carro Nome (identificador) Representação na Orientação a objetos Carro Atributos cor número chassi cor branco ano-fabricação Número chassi VW1003G345 Propriedades acelerar (atributos) Ano-fabricação 1966 parar Operações acelerar parar Operações Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 11
  • 12. Análise e Desenho Orientado a Objetos com UML Orientação a Objetos. Principais Conceitos: Capacitação Engenharia de Software Objetos do Mundo Real Modelagem de objeto: Para representar os objetos do mundo real criamos classes, E aí partir destas classes podemos criar os “objetos”. Podemos dizer que um objeto é uma “instance” (espécie) da classe. Carro As classes são “blueprint” (projeto) para os objetos. São fôrmas cor de objetos. número chassi ano-fabricação O que é acelerar uma classe ? parar Representação na Orientação a objetos Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 12
  • 13. Análise e Desenho Orientado a Objetos com UML Orientação a Objetos. Principais Conceitos: Capacitação Engenharia de Software Classe Definição de Classe: Uma classe descreve um conjunto de objetos que compartilham os mesmos atributos, operações, métodos, relacionamentos e semântica Classes As classes são as partes mais importantes de qualquer sistema orientado a objetos. Objetos Usamos as classes para capturar o vocabulário do sistema que está em Atributos desenvolvimento. Essas classes podem incluir abstrações que são parte do domínio do problema, assim como as classes que fazem a implementação. Podemos usar ainda as Métodos classes para representar itens de software, de hardware e até itens que sejam somente conceituais. Abstração de Dados Exemplo: Herança A classe Pessoa deverá ter atributos e métodos comuns Polimorfismo Pessoa Nome da Classe Encapsulamento nome Atributos idade getNome() getIdade() Nota: Dicionário Aurélio Métodos Em programação ou modelagem orientada a objetos (v. orientação a objetos), categoria descritiva setNome() geral, que abrange o conjunto de objetos que compartilham uma ou mais características quanto a seus itens de dados e procedimentos associados. 22. Lóg. Agrupamento de objetos que têm uma ou setIdade() mais características em comum. Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 13
  • 14. Análise e Desenho Orientado a Objetos com UML Orientação a Objetos. Principais Conceitos: Capacitação Engenharia de Software Classe Exemplo de Classe: 3 1 Livro Legenda: 1 – Objeto no mundo real Classes 2 – Classe Livro Objetos 3 – Objeto da classe Livro Atributos Métodos Abstração de Dados Herança Polimorfismo 2 ISBN 0747551006 Encapsulamento Titulo: Harry Potter and the Order of the Phoenix Autor: J. K. Rowling Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 14
  • 15. Análise e Desenho Orientado a Objetos com UML Orientação a Objetos. Principais Conceitos: Capacitação Engenharia de Software Classe e Objeto Classe e Objeto. Exemplo: ISBN 0747551006 Titulo: O Poder da inteligência Emocional Classes Autor: Daniel Goleman Objetos Atributos ISBN 0747551006 Métodos Titulo: Harry Potter and the Order of the Phoenix Abstração de Dados Autor: J. K. Rowling Herança Polimorfismo ISBN 8571643512 Titulo: AS JANELAS DO Encapsulamento PARATII Autor: Amir Klink Uma coleção de livros pode ser representada Cada livro desta coleção é por uma classe chamada “instance” (objeto) da classe livro. Livro. Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 15
  • 16. Análise e Desenho Orientado a Objetos com UML Orientação a Objetos. Principais Conceitos: Capacitação Engenharia de Software Classe e Objeto Classe e Objeto. Exemplo: Identificador Carro Classe (Modelo) Objeto (“instance”) Carro fusca:Carro cor cor=“branco” Atributos número chassi número chassi=“VW1003G345 cor branco ano-fabricação ano-fabricação=1966 Número chassi VW1003G345 Acelerar() Ano-fabricação 1966 parar() Operações acelerar parar Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 16
  • 17. Análise e Desenho Orientado a Objetos com UML Orientação a Objetos. Principais Conceitos: Capacitação Engenharia de Software Classe e Objeto Classe e Objeto. Exemplo: Classe Classes Cliente nome Objetos cpf idade Atributos Métodos Abstração de Dados Herança Objetos Polimorfismo Encapsulamento Cliente: clientemulher Cliente: clientehomem nome = Marina nome = Felipe cpf = 022.200.708-12 cpf = 039.217.908-22 idade = 16 idade = 42 Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 17
  • 18. Análise e Desenho Orientado a Objetos com UML Orientação a Objetos. Principais Conceitos: Capacitação Engenharia de Software Classe, Responsabilidade e Colaboração Responsabilidades Definição de Responsabilidades: Um contrato ou obrigação em um tipo ou de uma classe Ao criar uma classe você estará criando uma declaração de que todos os objetos dessa Classes classe têm o mesmo tipo de estado e o mesmo tipo de comportamento. Em nível mais abstrato, esses atributos e operações são apenas as características com Objetos quais as responsabilidades das classes executadas. Atributos Uma classe chamada de Transação de Pagamento tem a responsabilidade de Métodos conhecer as informações inerente a operação, tais como número da transação, Abstração de Dados situação, valor, data, tipo de pagamento e etc. Herança TransacaoPagamento Polimorfismo numero valor Encapsulamento data situação TipoPagamento Responsabilidades Responsabilidade: -- Saber o número da transação, data, valor -- Conhecer o tipo de pagamento... Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 18
  • 19. Análise e Desenho Orientado a Objetos com UML Orientação a Objetos. Principais Conceitos: Capacitação Engenharia de Software Classe, Responsabilidade e Colaboração Colaboração: Definição de Colaboração: Ás vezes uma classe precisa colaborar com outra classe para cumprir suas responsabilidades Classes A classe Transação de Pagamento tem a responsabilidade de conhecer as Objetos informações: número da transação, situação, valor, data, tipo de pagamento e etc. As informações sobre tipo de pagamentos estão outras classes que especifica os Atributos dados para cada tipo de pagamento. Exemplo: CartaoCredito e BoletoBancario. Métodos Desta forma precisamos ter uma colaboração entre as classes para atender as responsabilidades. Abstração de Dados Herança TransacaoPagamento CartaoCredito Polimorfismo numero valor Encapsulamento data situação TipoPagamento Colaboração BoletoBancario Responsabilidade: -- Saber o número da transação, data, valor -- Conhecer o tipo de pagamento... Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 19
  • 20. Análise e Desenho Orientado a Objetos com UML Orientação a Objetos. Principais Conceitos: Capacitação Engenharia de Software Classe, Responsabilidade e Colaboração Classes, Responsabilidades e Colaboração: Para descrever responsabilidades utilize apenas texto em formato livre. Na prática uma única responsabilidade pode ser escrita como expressão, ou uma oração ou breve parágrafo. Classes O CRC (Cartão de Responsabilidade e Colaboração) é uma técnica usada para capturar e representar as classes, suas responsabilidade e colaborações. Objetos Outra técnica que pode ser usada é a Análise de Caso de Uso. Atributos Métodos Nome da classe Cartão CRC Abstração de Dados Herança Responsabilidades Colaborações Polimorfismo Encapsulamento Aluno -- Deve conhecer os Matricula dados dos aluno: Pessoa Nome Curso Número da Matricula Curso Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 20
  • 21. Análise e Desenho Orientado a Objetos com UML Orientação a Objetos. Principais Conceitos: Capacitação Engenharia de Software Resumo: Classe e Objeto Resumindo: Um objeto possui: • um estado (definido pelo conjunto de valores dos seus atributos em determinado instante) Classes • um comportamento (definido pelo conjunto de métodos Objetos definido na sua interface) Atributos • uma identificação única Métodos Uma classe possui: Abstração de Dados • Atributos Herança • Métodos Polimorfismo • Responsabilidades (o que ela deve saber fazer) Encapsulamento • Colaboração (interação com outras classes) Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 21
  • 22. Análise e Desenho Orientado a Objetos com UML Orientação a Objetos. Principais Conceitos: Capacitação Engenharia de Software Atributo Definindo Atributo: • É uma característica (uma propriedade) presente no objeto. • Os valores dos atributos é igual ao Estado do Objeto. Classes • Somente atributos que são de relevantes ao sistema devem ser Objetos descritos na classe. Cliente Atributos nome Métodos cpf idade Abstração de Dados Herança Polimorfismo Encapsulamento Cliente: clientemulher nome = Marina atributos cpf = 022.200.708-12 idade = 16 Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 22
  • 23. Análise e Desenho Orientado a Objetos com UML Orientação a Objetos. Principais Conceitos: Capacitação Engenharia de Software Método Escrevendo os métodos. Para cada atributo é recomendado escrever um par de métodos, os nomes destes métodos devem começar com setXXXX( ) e getXXX( ) Classes setCodigo(): Objetos Para trocar o valor do atributo Atributos Cliente getCodigo(): Métodos codigo Para recuperar o valor do atributo nome Exemplo: Abstração de Dados Valor do atributo: nome = null getCodigo() Herança setNome(“Duke”). setCodigo() Métodos Agora valor do atributo nome = “Duke” Polimorfismo getNome() setNome() getNome(), retornará “Duke” Encapsulamento Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 23
  • 24. Análise e Desenho Orientado a Objetos com UML Orientação a Objetos. Principais Conceitos: Capacitação Engenharia de Software Método Definição de Método: Definição: Método é a implementação de uma operação. Classes Definição de Operação: É a implementação de um serviço que pode ser solicitado por qualquer Objetos objeto da classe com a finalidade de afetar um comportamento. Atributos Métodos Chamando os métodos Para chamar um método de um objeto é necessário enviar uma mensagem para ele. Abstração de Dados As mensagens identificam os métodos a serem executados no objeto receptor. Herança Por definição todas as mensagens devem retornar pelo menos um valor. Polimorfismo ContaCorrente Encapsulamento conta saldo setDeposito() Métodos getSaldo() setSaque() Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 24
  • 25. Análise e Desenho Orientado a Objetos com UML Orientação a Objetos. Principais Conceitos: Capacitação Engenharia de Software Mensagem Definição de Mensagem: Definição: Mensagem é uma chamada de uma operação sobre um objeto, compreendendo um nome da operação e uma lista de valores de Classes argumentos. (Rumbaugh) Objetos Um mensagem representa a requisição de um objeto remetente a um objeto receptor Atributos para este último execute alguma operação definida para sua classe. Essa mensagem deve conter informações suficientes para que a operação do objeto Métodos receptor possa ser executada. Abstração de Dados Herança Polimorfismo Encapsulamento Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 25
  • 26. Análise e Desenho Orientado a Objetos com UML Orientação a Objetos. Principais Conceitos: Capacitação Engenharia de Software Resumo: Métodos Resumindo: Os métodos são a implementação das operações de objetos. Os métodos são responsáveis pelo comportamento do objeto. A mudança de estado de um objeto deve ocorrer através dos Classes métodos. Objetos Atributos Desta forma podemos dizer que os métodos “encapsulam” os Métodos atributos. Abstração de Dados Herança Polimorfismo Encapsulamento Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 26
  • 27. Análise e Desenho Orientado a Objetos com UML Orientação a Objetos. Principais Conceitos: Capacitação Engenharia de Software Classe Concreta e Abstrata Temos dois tipos de classes: Classe concreta: São aquelas classes que podem sofrer “instance” (criação de objetos) e tem seus métodos implementados por completo. E a Classe abstrata ? São aquelas classes que não podem sofrer “instance” e seus métodos não são implementados por completo (geralmente apenas assinado). Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 27
  • 28. Análise e Desenho Orientado a Objetos com UML Orientação a Objetos. Principais Conceitos: Capacitação Engenharia de Software Abstração de Dados Exemplo: Um a empresa de transporte possui uma frota de veículo, esta frota é composta por caminhões, peruas e motos. Estes veículos têm algumas características semelhantes como cor, peso, tamanho e capacidade de carga. Entretanto, cada veículo possui outras características diferentes como número de eixos sistema de freio, tipo de motor e etc. A abstração de dados é utilizada neste caso para identificar todas as propriedades comuns e reuni-las em novo conjunto, isto lembra alguns princípios da matemática como fatoração. Desta forma estaríamos fazendo um melhor aproveitamento das informações que se repetem e também estamos fazendo que as características diferentes sejam tratada de forma diferenciada. O que é abstração de dados ? Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 28
  • 29. Análise e Desenho Orientado a Objetos com UML Orientação a Objetos. Principais Conceitos: Capacitação Engenharia de Software Abstração de Dados Definição de Abstração de Dados: Definição de abstração: “Habilidade mental que permite aos seres humanos visualizarem os problemas do mundo real com vários graus de detalhes, dependendo do contexto corrente Classes do problema. (Jim Rumbaugh). Objetos Qual é a função da abstração ? Atributos A função da abstração é capturar as propriedades e os comportamentos essenciais, como se fosse uma fatoração, desta forma determina-se o que é importante e o que Métodos não é. Abstração de Dados Exemplo Herança Polimorfismo Contribuinte Encapsulamento Abstração Contribuinte Contribuinte Pessoa Física Pessoa Jurídica especialização Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 29
  • 30. Análise e Desenho Orientado a Objetos com UML Orientação a Objetos. Principais Conceitos: Capacitação Engenharia de Software Abstração de Dados Exemplo de Abstração de Dados: Abstração: nos ajuda a lidar com a complexidade. Exemplo Classes Generalização Objetos MeiodeComunicação Atributos Métodos Abstração de Dados Carta Telefone Jornal Herança Polimorfismo Encapsulamento Especialização As classes Contribuinte e MeiodeComunuicação são abstratas e ambas podem representam um domínio. Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 30
  • 31. Análise e Desenho Orientado a Objetos com UML Orientação a Objetos. Principais Conceitos: Capacitação Engenharia de Software Abstração de Dados Abstração de Dados e Classe Abstrata: Uma classe abstrata é uma classe que: • Provê organização • Não possui “instances”, ou seja, não possui objetos. Classes • Possui uma ou mais operações (métodos) abstratas Objetos public abstract class ContaBancaria extends Object { Atributos public ContaBancaria() { } protected int numerocontacorrente; Métodos public abstract int getNumeroContaCorrente(); Abstração de Dados } public abstract void setNumeroContaCorrente(int numerocontacorrente); Herança Polimorfismo Encapsulamento Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 31
  • 32. Análise e Desenho Orientado a Objetos com UML Orientação a Objetos. Principais Conceitos: Capacitação Engenharia de Software Abstração de Dados, exemplo: Veja agora a classe Pessoa, que é public abstract class Pessoa { abstrata, pois, possui um método //métodos public abstract String getNome() abstrato. public void setNome(String nome){ this.nome = nome; } Um método abstrato não possui public abstract int calcIdade(Date public abstract int getIdade() implementação somente assinatura d1, Date d2); (declaração) public void setIdade(int idade) public void setIdade(int idade) { { this.idade = idade; this.idade = idade; } } } Um método concreto possui implementação assinatura e implementação. Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 32
  • 33. Análise e Desenho Orientado a Objetos com UML Orientação a Objetos. Principais Conceitos: Capacitação Engenharia de Software Resumo: Classe Abstrata Resumindo: Uma classe abstrata deve ter métodos abstratos. Uma classe abstrata não possui “instance” Classes Objetos Atributos Métodos Abstração de Dados Como eu faço Herança para usar uma Polimorfismo classe abstrata ? Encapsulamento Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 33
  • 34. Análise e Desenho Orientado a Objetos com UML Orientação a Objetos. Principais Conceitos: Capacitação Engenharia de Software Abstração de Dados Comparação entre Classe Abstrata e Classe Concreta Classe Abstrata Classe Concreta Os métodos podem ser assinados e Os métodos devem ser somente assinados implementados Não pode sofrer “instance” Poder sofrer “instance” Relacionamento somente através de Todos os tipos de relacionamentos HERANÇA Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 34
  • 35. Análise e Desenho Orientado a Objetos com UML Orientação a Objetos. Principais Conceitos: Capacitação Engenharia de Software Herança Definição de Herança: Definição: Mecanismo baseado em objetos que permite que as classes compartilhem atributos e operações baseadas em um relacionamento, geralmente generalização. Classes (Rumbaugh) Objetos Uma classe derivada herda a estrutura de atributos e métodos de sua Atributos classe “base”, mas pode seletivamente: • adicionar novos métodos Métodos • estender a estrutura de dados • redefinir a implementação de métodos já existentes Abstração de Dados Herança Uma classe “pai” ou super classe proporciona a funcionalidade que é comum a todas as suas classes derivadas, filhas ou sub classe, enquanto que a classe derivada Polimorfismo proporciona a funcionalidade adicional que especializa seu comportamento. Encapsulamento Exemplo: Animal classe pai Animal Doméstico Animal Selvagem classe filha Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 35
  • 36. Análise e Desenho Orientado a Objetos com UML Orientação a Objetos. Principais Conceitos: Capacitação Engenharia de Software Herança Exemplo de Herança: Classes Podemos dizer que Pós- Hierarquia de Classes Graduação é tipo de Curso Objetos Universitário, assim como Curso Atributos Super classe Universitário Curso de Especialização ou de Extensão. Métodos ou classe pai Abstração de Dados Herança Graduação Pós-Graduação Polimorfismo extends Encapsulamento Sub classe ou classe filha Especialização Extensão Validação: Pode ser feita através de uma expressão que resulte um valor verdadeiro Exemplo: Graduação é tipo de Curso Universitário = Verdadeiro Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 36
  • 37. Análise e Desenho Orientado a Objetos com UML Orientação a Objetos. Principais Conceitos: Capacitação Engenharia de Software Polimorfismo Definição de Polimorfismo: Definição: “Polimorfismo” é uma operação que pode assumir múltiplas formas, a propriedade segundo o qual uma operação pode comportar-se diferentemente em classes Classes diferentes” (Rumbaugh) O polimorfismo é o responsável pela extensibilidade na programação orientada a Objetos objetos. Atributos Promove o reúso. Métodos Exemplo: Abstração de Dados Billhetagem Herança Telefone Móvel Polimorfismo calcularConta(telefone) Encapsulamento Telefone Fixo Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 37
  • 38. Análise e Desenho Orientado a Objetos com UML Orientação a Objetos. Principais Conceitos: Capacitação Engenharia de Software Polimorfismo Overloading de Método Possibilidade de reúso do nome do método para diferentes implementações, em tempo de execução, a aplicação, escolherá o método mais adequado para cada chamada, veja o exemplo. Classes Objetos Atributos TesteSoma Soma Métodos somar(int a, int b) somar(float a, float b) Abstração de Dados somar(char a, char b) Herança somar(long a, long b)) Polimorfismo Encapsulamento Para cada tipo de dados existe um método, o reúso do nome do método é permitido, entretanto, a lista de argumentos deve ser diferente, veja o exemplo acima: o método somar é definido várias vezes, contudo, com uma lista de argumentos diferentes, desta forma evitaremos problemas como ambigüidade. Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 38
  • 39. Análise e Desenho Orientado a Objetos com UML Orientação a Objetos. Principais Conceitos: Capacitação Engenharia de Software Polimorfismo Overridde de Método Uma sub classe (classe filha) pode mudar o comportamento herdado da Super classe (classe pai), ou seja, um método herdado poderá ser modificado. Veja o exemplo abaixo: Classes Conta Bancária Objetos getSaldo() Atributos Métodos Abstração de Dados Conta Corrente Conta Poupança Investimentos Herança getSaldo() getSaldo() getSaldo() Polimorfismo Encapsulamento O método getSaldo é herdado da Superclasse (Conta Bancária), entretanto para cada tipo de Conta o método tem uma implementação diferente. Por exemplo: - Para apurar o saldo da Conta Corrente saldo atual = (soma dos depósitos + saldo anterior) - saques Para a conta poupança seria saldo atual = (soma dos depósitos + saldo anterior + juros) - saques Para a conta de investimentos seria saldo atual = (soma dos aplicações + saldo anterior + juros) - resgates - ir Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 39
  • 40. Análise e Desenho Orientado a Objetos com UML Orientação a Objetos. Principais Conceitos: Capacitação Engenharia de Software Encapsulamento Principais Conceitos Definição de Encapsulamento: É uma proteção adicional dos dados do objeto de possíveis modificações impróprias, forçando o acesso a um nível mais baixo para tratamento do dados. Classes Objetos Public Operações/métodos/interface Atributos Métodos Abstração de Dados Herança Polimorfismo Private Encapsulamento Dados/Atributos/propriedades Exemplo: Quanto temos a edição de um arquivo protegida por senha, podemos dizer que ele está protegido, pois, apenas aquele que tem a senha poderá editá-lo. Os demais somente estão aptos a le-lo. Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 40
  • 41. Análise e Desenho Orientado a Objetos com UML Orientação a Objetos. Principais Conceitos: Capacitação Engenharia de Software Encapsulamento Benefícios do Encapsulamento: Benefícios - Segurança: Protege os atributos dos objetos de terem seus valores corrompidos por Classes outros objetos. - Independência: Objetos “Escondendo” seus atributos, um objeto protege outros objetos de Atributos complicações de dependência de sua estrutura interna Métodos Abstração de Dados Pessoa Herança nome Polimorfismo idade setNome() nome getNome() Encapsulamento setNome() getNome() setIdade() setIdade() idade getIdade() getIdade() encapsulamento Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 41
  • 42. Análise e Desenho Orientado a Objetos com UML UML. Linguagem de Modelagem Unificada Capacitação Engenharia de Software A versão da UML abordada é versão 1.5 Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 42
  • 43. Análise e Desenho Orientado a Objetos com UML UML. Linguagem de Modelagem Unificada Capacitação Engenharia de Software Introdução Por que modelar sistemas ? Construímos modelos para compreender melhor o sistema que estamos desenvolvendo. Com a modelagem, podemos alcançar alguns objetivos: 1 - Os modelos ajudam a visualizar o sistema como ele é ou como desejamos que seja; 2 - Os modelos permitem especificar a estrutura ou o comportamento de um sistema; 3 - Os modelos proporcionam um guia para a construção do sistema; 4 - Os modelos ajudam na documentação do sistema. O Que é Modelagem Visual? “A Modelagem captura as partes essenciais do sistema.” (Rumbaugh) Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 43
  • 44. Análise e Desenho Orientado a Objetos com UML UML. Linguagem de Modelagem Unificada Capacitação Engenharia de Software Introdução O Que é Modelagem Visual? Modelagem visual significa modelar com a utilização de uma notação padrão. Precisamos adotar uma notação padrão (linguagem) e uma ferramenta. UML (Linguagem de Modelagem Unificada) é a linguagem de modelagem visual considerada padrão de mercado. A UML (Linguagem de Modelagem Unificado) é mantida pelo OMG (www.omg.org/uml). Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 44
  • 45. Análise e Desenho Orientado a Objetos com UML UML. Linguagem de Modelagem Unificada Capacitação Engenharia de Software Introdução A UML (Linguagem de Modelagem Unificada) é uma linguagem-padrão para elaboração da estrutura de projetos de software. A UML poderá ser usada para: • Visualização • Especificação • Construção de modelos e diagramas • Parte da documentação. A UML é adequada para a modelagem de sistemas, cuja a abrangência poderá incluir sistemas de informação corporativos a serem distribuídos a aplicação baseadas em Web e até sistemas complexos embutidos de tempo real. A UML é apenas uma linguagem e, portanto, é somente uma parte de um método para desenvolvimento de software. Ela é independente do processo, apesar de ser perfeitamente utilizada em processo orientado a casos de usos, centrado na arquitetura, iterativo e incremental. Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 45
  • 46. Análise e Desenho Orientado a Objetos com UML UML. Linguagem de Modelagem Unificada Capacitação Engenharia de Software Principais Digramas: ESTÁTICOS . Diagrama de Classes . Diagrama de Objetos Estrutura do sistema . Diagrama de Componentes . Diagrama de Distribuição DINÂMICOS . Diagrama de Casos de Uso . Diagramas de Interação Comportamento do sistema - Diagrama de Seqüência - Diagrama de Colaboração . Diagrama de Atividade . Diagrama de Estados Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 46
  • 47. Análise e Desenho Orientado a Objetos com UML UML. Linguagem de Modelagem Unificada Capacitação Engenharia de Software Processo de Desenvolvimento: Processo de Desenvolvimento Modelo Casos Modelo Objetos Modelo de Classes Uso de Negócio de Negócio Realização Análise Desenho Necessidades dos Visão Modelo de dos Casos de Uso Classes Classes Stakeholders Casos de Uso Casos de Teste Componentes Defeitos Script de Testes Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 47
  • 48. Análise e Desenho Orientado a Objetos com UML UML. Linguagem de Modelagem Unificada Capacitação Engenharia de Software A Linguagem: • Linguagem = Sintaxe + semântica – syntax = rules by which language elements (e.g., words) are assembled into expressions (e.g., phrases, clauses) – semantics = rules by which syntactic expressions are assigned meanings • Notação = (UML Notation Guide) – define uma sintaxe gráfica UML • Semântica = (UML Semantics) – define uma semântica UML Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 48
  • 49. Análise e Desenho Orientado a Objetos com UML UML. Linguagem de Modelagem Unificada Capacitação Engenharia de Software Elementos: • Elementos estruturais: – classe, interface, colaboração, caso de uso, classe ativa, componente e nó • Elementos comportamentais: – Interação e máquina de estados • Elementos de agrupamento: – Pacote e subsistema Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 49
  • 50. Análise e Desenho Orientado a Objetos com UML UML. Linguagem de Modelagem Unificada Capacitação Engenharia de Software Visão: 4 + 1 Visão de Visão da Projeto Implementação Codificação Funcionalidade Montagem Vocabulário Visão de Caso de Uso Visão do Visão da Processo Implantação Desempenho Topologia do Sistema Escalabilidade Distribuição Throughput Instalação Conceitual Físico Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 50
  • 51. Análise e Desenho Orientado a Objetos com UML UML. Linguagem de Modelagem Unificada Capacitação Engenharia de Software Visões: Visão de Caso de Uso • A visão do caso de uso abrange os casos de usos que descrevem o comportamento do sistema conforme é visto pelos seus usuários finais, analistas e pessoal de teste. Essa visão não especifica realmente a organização do sistema de software. Porém , ela existe para especificar as forças que determinam a forma da arquitetura do Sistema. Com a UML, os aspectos estáticos dessa visão são representados em diagramas de caso de uso, enquanto os aspectos dinâmicos são representados em diagrama de interação, diagrama de estados e diagrama de atividades Visão de Projeto • A visão de projeto de um sistema abrange as classes e colaborações que formam o vocabulário do problema e da solução. Essa perspectiva proporciona principalmente um suporte para os requisitos funcionais do sistema, ou seja, os serviços que o sistema deverá fornecer a seus usuários finais. Com a UML, os aspectos estáticos dessa visão são capturados em diagramas de classes e de objetos; os aspectos dinâmicos são capturados em diagramas de interações, de estados e de atividades. Versão 27 Rildo Santos (rildo.santos@etecnologia.com.br) Todos os direitos reservados e protegidos © 2006 e 2010 51