O workflow de análise
Modelação de Sistemas de Informação - 2010 / 2011
Objectivo da análise
¤  Produzir um modelo de análise com
    o comportamento desejado para o sistema     Inception Elaboration   Construction   Transition



   ¤    O que o sistema faz e não como o faz


   ¤    na linguagem do negócio
Modelo de Análise
¤  No Modelo de Análise identificamos:
  ¤  Classes de análise
  ¤  Realizações de use cases
                                               P3

                                    P1




            Analysis Model                     P4



                                    P2




                   analysis class        use case realization
Detalhe do workflow de Análise

                Architectural analysis
    Architect




Use Case Engineer            Analyze a use case




Component Engineer                           Analyze a class   Analyze a package
Linhas orientadoras para a Análise

¤  O modelo de análise está sempre na linguagem do
    negócio. As abstracções encontradas no modelo de
    análise deverão fazer parte do vocabulário do domínio
    do negócio

¤  Os modelos devem "contar uma história". Cada
    diagrama produzido deverá elucidar alguma parte
    importante do comportamento desejado para o
    sistema.

¤  Concentrem-se em capturar a "big picture". Não fiquem
    presos nos detalhes de como irá funcionar o sistema –
    será realizado na fase de design.
Linhas orientadoras para a Análise

¤  Num sistema de complexidade moderada podem surgir
    entre 50 a 100 classes no modelo de análise

¤  Inclua apenas as classes que fazem parte do vocabulário
    do domínio do problema

¤  Não se preocupe com classes que definam a forma como
    algo é implementado – trataremos deste assunto no design

¤  Foque-se nas classes e associações

¤  Não se preocupe muito com a herança de classes

¤  "Keep it simple!"
Descoberta das classes de análise
Modelação de Sistemas de Informação
Analisar um Use Case

Business model
[or domain model]
                    Use case
                    engineer    Analysis class


  Requirements
  model
                    Analyse a
                    use case


 Use case model

                                 Use case
                                 realization


   Architecture
   description
O que são classes de análise?
¤  As classes de análise representam abstrações
    claras do domínio do problema                   class name   BankAccount
    ¤  podem vir a ser refinadas em uma ou mais
                                                                 name
        classes de desenho
                                                    attributes   address
                                                                 balance
¤  Todas as classes do modelo de análise devem
    ser classes de análise
                                                                 deposit()
                                                    operations   withdraw()
¤  As classes de análise têm:
                                                                 calculateInterest()
    ¤  Um conjunto de atributos de alto nível
   ¤  Operações que são especificações de alto
       nível do conjunto de serviços fundamentais
       que a classe terá que disponibilizar

¤  As classes de análise devem ser mapeadas dos
    conceitos do negócio do mundo real
O que faz uma boa classe de análise?

¤  O seu nome reflete o seu objectivo

¤  É um mapeamento de uma característica do domínio do problema

¤  Tem uma alta coesão

¤  Tem um baixo acoplamento

¤  "Regras de ouro"
   ¤    3 a 5 responsabilidades por classe
   ¤    cada classe colabora com outras
   ¤    cuidado com muitas classes pequenas
   ¤    cuidado com classes muito grandes
   ¤    cuidado com os "functoids" – funções disfarçadas de classes
   ¤    Cuidado com classes omnipotentes
   ¤    Evitar árvores de herança muito profundas
Descobrir Classes

¤  Efetuar a análise substantivo/verbo dos documentos
  ¤  Os substantivos são candidatos a classes ou atributos
  ¤  Os verbos são candidatos a responsabilidades ou operações

¤  Efetuar análise CRC – uma técnica de "brainstorming"

¤  Em ambas as técnicas ter cuidado com as "falsas" classes
  ¤  procurar sinónimos
  ¤  procurar homónimos

¤  Procurar as classes escondidas
Procedimento para análise substantivo/verbo


¤  Recolher todos os documentos relevantes
   ¤    Documento de requisitos,
   ¤    Use Cases
   ¤    Glossário do projeto
   ¤    etc.

¤  Fazer um lista de substantivos e sintagmas nominais
   ¤  São classes candidatas ou atributos

¤  Fazer uma lista de verbos ou sintagmas verbais
   ¤  São responsabilidades candidatas

¤  Tentar atribuir atributos e responsabilidades a classes
Procedimento de análise CRC
     ¤      CRC é uma técnica de "brainstorming" onde se capturam em post-its as coisas importantes do
             domínio do problema.

     ¤      CRC - Class, Responsibilities and Collaborators

     ¤      Separa a recolha de informação da sua análise
             ¤  1ª Parte: Brainstorm
                   ¤    todas as ideias são boas
                   ¤    Não discutir ou debater – apontar e analisar depois
             ¤    2ª Parte: Analisar a informação e consolidar com a análise substantivo/verbo


                   Class Name: BankAccount
                   Responsibilities:           Collaborators:
things the
                   Maintain balance           Bank                    things the
class does                                                            class works
                                                                      with
Descobrir classes de outras fontes

¤  Objetos físicos tais como aviões, pessoas, hotéis, etc.
    podem vir a representar classes

¤  formulários e outro tipo de "papelada" – cuidado com a
    abordagem

¤  Interfaces com o mundo exterior

¤  Entidades conceptuais que são fundamentais para a
    operação do negócio mas que não se manifestam
    como coisas concretas, e.g. LoyaltyProgramme
Criar uma "primeira versão" do modelo de análise


¤  Consolidar os outputs das diferentes análises
    (substantivo/verbo, CRC, ou outras) num modelo UML
    utilizando uma ferramenta de modelação
Diagramas de classes e de objectos
Modelação de Sistemas de Informação
Diagramas de classes
¤    É o ponto central do desenvolvimento OO.

¤    Em análise, tem como objectivo descrever a estrutura das entidades manipuladas pelos
      utilizadores.

¤    No desenho, o diagrama de classes apresenta a estrutura de um código orientado por
      objetos, ou num nível de detalhes maior, os módulos da linguagem de desenvolvimento.
Objetivo dos diagramas de classes

¤  Um diagrama de classes serve para modelar o vocabulário de um sistema, do
    ponto de vista do utilizador/problema ou do implementador/solução
   ¤    Ponto de vista do utilizador/problema – na fase de captura e análise de requisitos, em
         paralelo com a identificação dos casos de utilização
   ¤    Vocabulário do implementador/solução – na fase de projeto (design)


¤  Construído e refinado ao longo das várias fases do desenvolvimento do software,
    por analistas, projetistas (designers) e implementadores

¤  Também serve para:
   ¤    Especificar colaborações (no âmbito de um caso de utilização ou mecanismo)
   ¤    Especificar esquemas lógicos de bases de dados
   ¤    Especificar vistas (estrutura de dados de formulários, relatórios, etc.)


¤  Modelos de objetos de domínio, negócio, análise e design
Exercício de diagrama de classes

¤  Um recibo tem um numero, uma data de emissão, o nome e o número
    de contribuinte da empresa que passa o recibo e do cliente, um
    subtotal, um total de IVA, um total e um conjunto variável de linhas

¤  Cada linha do recibo refere um só produto (podendo cada um destes
    ser referido por mais do que uma linha do recibo) e contém a
    quantidade do produto comprado, a sua descrição, a taxa de IVA (em
    percentagem) paga por esse produto, o seu preço unitário e o preço a
    pagar tendo em conta a quantidade comprada.

¤  Um recibo é passado por uma só Empresa a um Cliente (que pode ter
    muitos recibos da mesma empresa passados em seu nome).

¤  A empresa é identificada por um número de contribuinte, tem um
    nome, um endereço, um numero de telefone e um número de fax.

¤  O recibo deve poder ser impresso.
Solução possível
Diagramas de objetos

¤  Finalidade
  ¤  Um diagrama de objetos mostra instâncias de classes
      (objetos) e de associações (ligações entre objetos)


  ¤  Utilizados para ilustrar cenários / configurações particulares


  ¤  Base para diagramas de colaboração
Exemplo: Árvore genealógica
                      1 0..*
      Homem                         Casal                            Mulher                    ¤  Como se chama o
                                0..1
                                                    0..*      1
                                                                                                   neto?
                                 0..*       -descendente
                                                                                               ¤  Quem é o sogro da
                                   Pessoa
                               -nome
                                                                                                   Leonor?

  João : Homem                          Maria : Mulher                        Pedro : Homem                 Manuela : Mulher



                 João & Maria : Casal                                                    Pedro & Manuela : Casal




         -descendente                             -descendente                       -descendente                      -descendente

Afonso : Homem                          Leonor : Mulher                     Carlos : Homem                    Josefa : Mulher



                                                     Carlos & Leonor : Casal


                                                                    -descendente

                                                           Filipe : Homem
Exercício diagrama de objetos




¤  Com base neste diagrama de classe, elaborar um diagrama de objetos,
    elaborar um diagrama de objectos que corresponda à seguinte
    situação: “A Delta satisfaz a encomenda 456, em 2009/03/31. A
    encomenda 456, efectuada em 2009/02/10, tem dois itens: (i) produto
    A, café lote diamante, 1000 unidades, 300€; (ii) produto B, café lote
    normal, 500 unidades, 200€. Ambos os produtos são de tipo alimentar.”
Solução possível

Workflows, diagramas e classes de Analise. Sistemas de Informação

  • 1.
    O workflow deanálise Modelação de Sistemas de Informação - 2010 / 2011
  • 2.
    Objectivo da análise ¤ Produzir um modelo de análise com o comportamento desejado para o sistema Inception Elaboration Construction Transition ¤  O que o sistema faz e não como o faz ¤  na linguagem do negócio
  • 3.
    Modelo de Análise ¤ No Modelo de Análise identificamos: ¤  Classes de análise ¤  Realizações de use cases P3 P1 Analysis Model P4 P2 analysis class use case realization
  • 4.
    Detalhe do workflowde Análise Architectural analysis Architect Use Case Engineer Analyze a use case Component Engineer Analyze a class Analyze a package
  • 5.
    Linhas orientadoras paraa Análise ¤  O modelo de análise está sempre na linguagem do negócio. As abstracções encontradas no modelo de análise deverão fazer parte do vocabulário do domínio do negócio ¤  Os modelos devem "contar uma história". Cada diagrama produzido deverá elucidar alguma parte importante do comportamento desejado para o sistema. ¤  Concentrem-se em capturar a "big picture". Não fiquem presos nos detalhes de como irá funcionar o sistema – será realizado na fase de design.
  • 6.
    Linhas orientadoras paraa Análise ¤  Num sistema de complexidade moderada podem surgir entre 50 a 100 classes no modelo de análise ¤  Inclua apenas as classes que fazem parte do vocabulário do domínio do problema ¤  Não se preocupe com classes que definam a forma como algo é implementado – trataremos deste assunto no design ¤  Foque-se nas classes e associações ¤  Não se preocupe muito com a herança de classes ¤  "Keep it simple!"
  • 7.
    Descoberta das classesde análise Modelação de Sistemas de Informação
  • 8.
    Analisar um UseCase Business model [or domain model] Use case engineer Analysis class Requirements model Analyse a use case Use case model Use case realization Architecture description
  • 9.
    O que sãoclasses de análise? ¤  As classes de análise representam abstrações claras do domínio do problema class name BankAccount ¤  podem vir a ser refinadas em uma ou mais name classes de desenho attributes address balance ¤  Todas as classes do modelo de análise devem ser classes de análise deposit() operations withdraw() ¤  As classes de análise têm: calculateInterest() ¤  Um conjunto de atributos de alto nível ¤  Operações que são especificações de alto nível do conjunto de serviços fundamentais que a classe terá que disponibilizar ¤  As classes de análise devem ser mapeadas dos conceitos do negócio do mundo real
  • 10.
    O que fazuma boa classe de análise? ¤  O seu nome reflete o seu objectivo ¤  É um mapeamento de uma característica do domínio do problema ¤  Tem uma alta coesão ¤  Tem um baixo acoplamento ¤  "Regras de ouro" ¤  3 a 5 responsabilidades por classe ¤  cada classe colabora com outras ¤  cuidado com muitas classes pequenas ¤  cuidado com classes muito grandes ¤  cuidado com os "functoids" – funções disfarçadas de classes ¤  Cuidado com classes omnipotentes ¤  Evitar árvores de herança muito profundas
  • 11.
    Descobrir Classes ¤  Efetuara análise substantivo/verbo dos documentos ¤  Os substantivos são candidatos a classes ou atributos ¤  Os verbos são candidatos a responsabilidades ou operações ¤  Efetuar análise CRC – uma técnica de "brainstorming" ¤  Em ambas as técnicas ter cuidado com as "falsas" classes ¤  procurar sinónimos ¤  procurar homónimos ¤  Procurar as classes escondidas
  • 12.
    Procedimento para análisesubstantivo/verbo ¤  Recolher todos os documentos relevantes ¤  Documento de requisitos, ¤  Use Cases ¤  Glossário do projeto ¤  etc. ¤  Fazer um lista de substantivos e sintagmas nominais ¤  São classes candidatas ou atributos ¤  Fazer uma lista de verbos ou sintagmas verbais ¤  São responsabilidades candidatas ¤  Tentar atribuir atributos e responsabilidades a classes
  • 13.
    Procedimento de análiseCRC ¤  CRC é uma técnica de "brainstorming" onde se capturam em post-its as coisas importantes do domínio do problema. ¤  CRC - Class, Responsibilities and Collaborators ¤  Separa a recolha de informação da sua análise ¤  1ª Parte: Brainstorm ¤  todas as ideias são boas ¤  Não discutir ou debater – apontar e analisar depois ¤  2ª Parte: Analisar a informação e consolidar com a análise substantivo/verbo Class Name: BankAccount Responsibilities: Collaborators: things the Maintain balance Bank things the class does class works with
  • 14.
    Descobrir classes deoutras fontes ¤  Objetos físicos tais como aviões, pessoas, hotéis, etc. podem vir a representar classes ¤  formulários e outro tipo de "papelada" – cuidado com a abordagem ¤  Interfaces com o mundo exterior ¤  Entidades conceptuais que são fundamentais para a operação do negócio mas que não se manifestam como coisas concretas, e.g. LoyaltyProgramme
  • 15.
    Criar uma "primeiraversão" do modelo de análise ¤  Consolidar os outputs das diferentes análises (substantivo/verbo, CRC, ou outras) num modelo UML utilizando uma ferramenta de modelação
  • 16.
    Diagramas de classese de objectos Modelação de Sistemas de Informação
  • 17.
    Diagramas de classes ¤  É o ponto central do desenvolvimento OO. ¤  Em análise, tem como objectivo descrever a estrutura das entidades manipuladas pelos utilizadores. ¤  No desenho, o diagrama de classes apresenta a estrutura de um código orientado por objetos, ou num nível de detalhes maior, os módulos da linguagem de desenvolvimento.
  • 18.
    Objetivo dos diagramasde classes ¤  Um diagrama de classes serve para modelar o vocabulário de um sistema, do ponto de vista do utilizador/problema ou do implementador/solução ¤  Ponto de vista do utilizador/problema – na fase de captura e análise de requisitos, em paralelo com a identificação dos casos de utilização ¤  Vocabulário do implementador/solução – na fase de projeto (design) ¤  Construído e refinado ao longo das várias fases do desenvolvimento do software, por analistas, projetistas (designers) e implementadores ¤  Também serve para: ¤  Especificar colaborações (no âmbito de um caso de utilização ou mecanismo) ¤  Especificar esquemas lógicos de bases de dados ¤  Especificar vistas (estrutura de dados de formulários, relatórios, etc.) ¤  Modelos de objetos de domínio, negócio, análise e design
  • 19.
    Exercício de diagramade classes ¤  Um recibo tem um numero, uma data de emissão, o nome e o número de contribuinte da empresa que passa o recibo e do cliente, um subtotal, um total de IVA, um total e um conjunto variável de linhas ¤  Cada linha do recibo refere um só produto (podendo cada um destes ser referido por mais do que uma linha do recibo) e contém a quantidade do produto comprado, a sua descrição, a taxa de IVA (em percentagem) paga por esse produto, o seu preço unitário e o preço a pagar tendo em conta a quantidade comprada. ¤  Um recibo é passado por uma só Empresa a um Cliente (que pode ter muitos recibos da mesma empresa passados em seu nome). ¤  A empresa é identificada por um número de contribuinte, tem um nome, um endereço, um numero de telefone e um número de fax. ¤  O recibo deve poder ser impresso.
  • 20.
  • 21.
    Diagramas de objetos ¤ Finalidade ¤  Um diagrama de objetos mostra instâncias de classes (objetos) e de associações (ligações entre objetos) ¤  Utilizados para ilustrar cenários / configurações particulares ¤  Base para diagramas de colaboração
  • 22.
    Exemplo: Árvore genealógica 1 0..* Homem Casal Mulher ¤  Como se chama o 0..1 0..* 1 neto? 0..* -descendente ¤  Quem é o sogro da Pessoa -nome Leonor? João : Homem Maria : Mulher Pedro : Homem Manuela : Mulher João & Maria : Casal Pedro & Manuela : Casal -descendente -descendente -descendente -descendente Afonso : Homem Leonor : Mulher Carlos : Homem Josefa : Mulher Carlos & Leonor : Casal -descendente Filipe : Homem
  • 23.
    Exercício diagrama deobjetos ¤  Com base neste diagrama de classe, elaborar um diagrama de objetos, elaborar um diagrama de objectos que corresponda à seguinte situação: “A Delta satisfaz a encomenda 456, em 2009/03/31. A encomenda 456, efectuada em 2009/02/10, tem dois itens: (i) produto A, café lote diamante, 1000 unidades, 300€; (ii) produto B, café lote normal, 500 unidades, 200€. Ambos os produtos são de tipo alimentar.”
  • 24.