projetos de software (aula 8) modelagem de software

Upload: diogo-tavares

Post on 06-Jul-2018

216 views

Category:

Documents


1 download

TRANSCRIPT

  • 8/17/2019 Projetos de Software (Aula 8) Modelagem de Software

    1/35

    Me. Diogo Tavares da Silvacontato: [email protected]

    Projetos de Software(aula 8 - Prática)

    Modelagem de software

  • 8/17/2019 Projetos de Software (Aula 8) Modelagem de Software

    2/35

    Introdução

    ● Nas últimas aulas estudamos os atividades de

    projeto de arquitetura e prototipação desoftware

    ● Como discutido, essas atividades estão na

    intersecção entre as fases de levantamento eanálise de requisitos e modelagem e projetode software

    ● Dado que um documento de requisitos e umprotótipo foram aceitos pelo cliente, o próximopasso deve ser realizar a modelagem do

    sistema

  • 8/17/2019 Projetos de Software (Aula 8) Modelagem de Software

    3/35

    Porque modelar o sistema?

    ● Antes de mais nada devemos lembrar que

    sistemas de software são dinâmicos○ Podem ser ampliados em tamanho,

    complexidade e abrangência

    ■ clientes sempre desejam alterações oumelhorias■ estratégias de negócio mudam e o

    sistemas precisam acompanhar essastendências■ Legislações regulatórias ou tributárias são

    alteradas

  • 8/17/2019 Projetos de Software (Aula 8) Modelagem de Software

    4/35

    Porque modelar o sistema?

    ● Modelar é um modo eficiente de documentar

    toda a estrutura do software○ Suporte ao trabalho do programador 

    ■ “Um mestre de obras precisa das plantas

     para construir um prédio” ○ Permite maior facilidade, rapidez e correção

    na manutenção e expansão do sistema

    ■ referencial para manutenção do projeto■ Base de compreensão do sistema, parafuturos desenvolvedores

  • 8/17/2019 Projetos de Software (Aula 8) Modelagem de Software

    5/35

    O que é um modelo do sistema?

    ● Um modelo é uma abstração do sistema real

    ● Representação de determinadas característicasdo sistema a partir de alguma visão:○ Estrutural

    ■ Como o sistema está organizado○ Comportamental

    ■ Como o sistema funciona ou como os

    elementos do sistema interagem entre si

  • 8/17/2019 Projetos de Software (Aula 8) Modelagem de Software

    6/35

    UML (Unified Modeling Language)

    ● Linguagem visual de modelagem baseada no

    paradigma de orientação a objetos● Padrão de modelagem na indústria de

    engenharia de software

    ● NÃO É LINGUAGEM DE PROGRAMAÇÃO○ Notação gráfica que auxilia engenheiros desoftware a definirem características do

    sistema:■ requisitos, comportamentos, estruturalógica, dinâmica de processos e

    necessidades físicas

  • 8/17/2019 Projetos de Software (Aula 8) Modelagem de Software

    7/35

    UML (Unified Modeling Language)

    ● Versão atual 2.0

    ● Lista de diagramas:○ Casos de uso○ Classes○ Objetos

    ○ Pacotes○ Sequência○ Comunicação○ Máquina de Estados○ Atividade○ Visão geral de interação○ Componentes○ Implantação○ Estrutura composta

    ○ Temporização

  • 8/17/2019 Projetos de Software (Aula 8) Modelagem de Software

    8/35

    Porque tantos diagramas?

    ● Desenvolver múltiplas visões do sistemas

    ○ completude de modelagem● Cada tipo de diagrama analisa o sistema, ou

    parte dele, sob uma determinada visão.

    ○ organização estrutural do sistema○ comportamento de um processo específico○ definição de um determinado algoritmo

    ○ necessidades físicas de implantação dosistema● Vamos realizar uma visão geral de cada um dos

    diagramas da UML

  • 8/17/2019 Projetos de Software (Aula 8) Modelagem de Software

    9/35

    Diagrama de casos de uso

    ● Diagrama mais geral e informal da UML

    ○ Dá suporte para o levantamento e análise derequisitos

    ○ Apresenta de modo simples como o sistema

    irá se comportar ● Busca identificar os atores (indivíduos eelementos que interagem com o sistema) e as

    funcionalidades oferecidas pelo sistema (casosde uso)

  • 8/17/2019 Projetos de Software (Aula 8) Modelagem de Software

    10/35

    ex:

  • 8/17/2019 Projetos de Software (Aula 8) Modelagem de Software

    11/35

    Diagrama de classes

    ● Mais utilizado e um dos mais importantes do

    UML● Define a estrutura das classes utilizadas pelo

    sistema

    ○ determina os atributos e métodos de cadaclasse○ estabelece como as classes se relacionam e

    trocam informações entre si

  • 8/17/2019 Projetos de Software (Aula 8) Modelagem de Software

    12/35

    ex:

  • 8/17/2019 Projetos de Software (Aula 8) Modelagem de Software

    13/35

    Diagrama de objetos

    ● Está fortemente associado ao diagrama de

    classes○ Basicamente um complemento

    ● Demostração de valores armazenados por

    objetos instanciados de um diagrama declasses durante um determinado momento deexecução

  • 8/17/2019 Projetos de Software (Aula 8) Modelagem de Software

    14/35

    ex:

  • 8/17/2019 Projetos de Software (Aula 8) Modelagem de Software

    15/35

    Diagrama de pacotes

    ● Diagrama estrutural

    ○ Representa como os subsistemas ousubmódulos englobados por um sistema secompõe e estão associados

    ○ Auxilia na demonstração de como aarquitetura do sistema está elaborada

    e

  • 8/17/2019 Projetos de Software (Aula 8) Modelagem de Software

    16/35

    ex:

  • 8/17/2019 Projetos de Software (Aula 8) Modelagem de Software

    17/35

    Diagrama de Sequência

    ● Diagrama comportamental

    ○ Preocupa-se com a ordem temporal em queas mensagens são trocadas pelos objetosenvolvidos em um determinado processo

    ○ Geralmente baseia-se no caso de uso domesmo nome e no diagrama de classes paradeterminar os objetos envolvidos no processo

    ○ Costuma-se identificar o evento gerador doprocesso, o ator responsável pelo evento e asequência de métodos disparados pelasmensagens trocadas

    ex:

  • 8/17/2019 Projetos de Software (Aula 8) Modelagem de Software

    18/35

    ex:

  • 8/17/2019 Projetos de Software (Aula 8) Modelagem de Software

    19/35

    Diagrama de comunicação

    ● Complemento do diagrama de sequência

    ● Apresenta as mesmas informações do diagramade sequência, porém com intuito diferente○ Não preocupa-se com a temporalidade dos

    eventos○ Preocupa-se na forma como os elementos dodiagrama estão vinculados e quaismensagens trocam entre si

    ex:

  • 8/17/2019 Projetos de Software (Aula 8) Modelagem de Software

    20/35

    ex:

  • 8/17/2019 Projetos de Software (Aula 8) Modelagem de Software

    21/35

    Diagrama de máquina de estados

    ● A idéia deste diagrama é demonstrar o

    comportamento de um elemento, ou mesmo deuma parte do sistema através de um conjuntofinito de estados, ou seja de uma máquina deestados

    ● Pode também ser utilizado para expressar oprotocolo de uso de uma parte do sistema

    e

  • 8/17/2019 Projetos de Software (Aula 8) Modelagem de Software

    22/35

    ex:

  • 8/17/2019 Projetos de Software (Aula 8) Modelagem de Software

    23/35

    Diagrama de atividade

    ● Preocupa-se em descrever os passos a serem

    percorridos para a conclusão de uma atividadeespecífica○ Representação do fluxo de controle de uma

    atividade○ Pode ser um método, um algoritmo ou mesmo

    um processo completo

    ex:

  • 8/17/2019 Projetos de Software (Aula 8) Modelagem de Software

    24/35

    ex:

  • 8/17/2019 Projetos de Software (Aula 8) Modelagem de Software

    25/35

    Diagrama de visão geral da interação

    ● Variação do diagrama de atividade

    ○ fornece uma visão geral dentro de um sistemaou processo de negócio

    ex:

  • 8/17/2019 Projetos de Software (Aula 8) Modelagem de Software

    26/35

    ex:

  • 8/17/2019 Projetos de Software (Aula 8) Modelagem de Software

    27/35

    Diagrama de Componentes

    ● Diretamente associado a linguagem de

    programação● representa os componentes do sistema quando

    o mesmo for implementado em termos de

    módulos de código-fonte, bibliotecas, sistemasintegrados, formulários, arquivos de ajuda econfiguração, etc.

    ● Determina como esses componentes estãoestruturadose irão interagir para que o sistemafuncione

    ex:

  • 8/17/2019 Projetos de Software (Aula 8) Modelagem de Software

    28/35

    ex:

  • 8/17/2019 Projetos de Software (Aula 8) Modelagem de Software

    29/35

    Diagrama de implantação

    ● Determina as necessidades de hardware do

    sistema○ características físicas como servidores,

    estações, topologias e protocolos de

    comunicação■ todo aparato físico necessário para a

    execução do sistema

    ○ Permite demonstrar também como se dará adistribuição dos módulos do sistema

    ex:

  • 8/17/2019 Projetos de Software (Aula 8) Modelagem de Software

    30/35

    ex:

  • 8/17/2019 Projetos de Software (Aula 8) Modelagem de Software

    31/35

    Diagrama de estrutura composta

    ● Descreve a estrutura interna de um classificar,

    como uma classe ou componente○ detalhamento das partes internas do

    componente, mostrando como elas se

    comunicam e colaboram entre si

    ex:

  • 8/17/2019 Projetos de Software (Aula 8) Modelagem de Software

    32/35

    ex:

    Di d t t i ã

  • 8/17/2019 Projetos de Software (Aula 8) Modelagem de Software

    33/35

    Diagrama de tempo ou temporização

    ● Descreve a mudança no estado ou condição de

    uma instância de uma classe ou seu papeldurante um período● Utilizado para demonstrar a mudança no estado

    de um objeto no tempo em resposta a eventosexternos

    ex:

  • 8/17/2019 Projetos de Software (Aula 8) Modelagem de Software

    34/35

    ex:

    F t CASE

  • 8/17/2019 Projetos de Software (Aula 8) Modelagem de Software

    35/35

    Ferramentas CASE

    ● Existem diversas ferramentas disponíveis para

    modelagem UML● Cada uma possui vantagens e desvantagens○ Exemplos:

    ■ Enterprise Architect■ Astah■ Gliffy (google app)

    ■ UML diagram editor (google app)■ etc