Prof. Marcelo H. Yamaguti (1)
Pontifícia Universidade Católica do Rio Grande do Sul
Faculdade de Informática
Prof. Marcelo H. Yamaguti
Introdução à Engenharia de
Software
DESENVOLVIMENTO DE
SOFTWARE
Análise e Modelagem de Software
PUCRS - FACIN
Prof. Marcelo H. Yamaguti (2)
Referências
• Estude para aprofundamento no conteúdo:
– SOMMERVILLE, Ian. Engenharia de Software. 9ª ed. São
Paulo: Pearson, 2011. – Capítulos 4 e 5
– PFLEEGER, Shari Lawrence. Engenharia de Software: teoria
e prática. 2ª ed. São Paulo: Prentice-Hall, 2004. - Capítulo 4
– IEEE. Guide to the Software Engineering Body of Knowledge.
SWEBOK. Version 3. IEEE Computer Society. 2014. –
Chapter 1
– BOOCH, G.; RUMBAUGH, J.; JACOBSON, I. UML: guia
do usuário. 2ed. Rio de Janeiro: Elsevier, 2006.
Introdução à Engenharia de Software
PUCRS - FACIN
Prof. Marcelo H. Yamaguti (3)
Análise X Projeto (design)
• Análise:
– Entendimento do problema
– Entendimento do escopo (âmbito) da solução
– Definição de uma solução conceitual (O QUE)
• Projeto*:
– Definição de uma solução lógica (COMO)
* “Projeto” em inglês pode ser ‘Project’ ou ‘Design’. ‘Project’ é uma iniciativa que
envolve recursos para gerar um resultado. ‘Design’ é uma etapa do desenvolvimento de
software entre a Análise e a Implementação; há autores que traduzem como ‘Desenho’.
Projeto
(design)
Introdução à Engenharia de Software
Análise
Problema
Necessidade
Especificação
de requisitos
Arquitetura
Componentes
O QUE COMO
PUCRS - FACIN
Prof. Marcelo H. Yamaguti (4)
Modelagem
• Durante a análise (de sistemas, de requisitos) uma
das atividades esperadas é a especificação
(modelagem) dos requisitos do sistema: definição
detalhada e formal de uma função de um sistema.
• A modelagem de sistema é um processo de
desenvolvimento de modelos abstratos de um sistema.
• Um modelo é uma abstração de alguma coisa, cujo
propósito é permitir que se conheça essa coisa antes
de construí-la.
Introdução à Engenharia de Software
PUCRS - FACIN
Prof. Marcelo H. Yamaguti (5)
Modelagem
• Objetivos dos modelos:
– Comunicação com clientes (usuários). Ex.: plantas baixas.
– Visualização. Ex.: maquetes.
– Testar uma entidade física antes de lhe dar forma. Ex.:
aeromodelos ou protótipos testados em túnel de vento.
– Redução da complexidade.
• Em software, usualmente utiliza-se diagramas para a
especificação de modelos.
• No contexto atual, a UML (Unified Modeling
Language – Linguagem de Modelagem Unificada)
provê diversos tipos de diagrama para a especificação
de modelos.
Introdução à Engenharia de Software
PUCRS - FACIN
Prof. Marcelo H. Yamaguti (6)
Modelagem
• Para representar um sistema pode ser necessário
mais de um modelo que proveem visões diferentes.
• Algumas categorias de modelo são:
– Modelo de contexto
– Modelo de interação
– Modelo estrutural
– Modelo comportamental
Introdução à Engenharia de Software
PUCRS - FACIN
Prof. Marcelo H. Yamaguti (7)
Modelo de contexto
• Modelo de contexto:
– Provê uma visão do contexto ou ambiente do sistema e os
limites do seu escopo (âmbito)
– Exemplo: Diagrama de Casos de Uso (UML)
Introdução à Engenharia de Software
PUCRS - FACIN
Prof. Marcelo H. Yamaguti (8)
Modelo de contexto
• Modelo de contexto:
– Exemplo: Diagrama de Atividades (UML)
Introdução à Engenharia de Software
PUCRS - FACIN
Prof. Marcelo H. Yamaguti (9)
Modelo de interação
• Modelo de interação:
– Provê uma visão das interações do sistema com o ambiente, ou
entre os componentes de um sistema.
– Ex.: Diagrama de Casos de Uso (UML)
Introdução à Engenharia de Software
PUCRS - FACIN
Prof. Marcelo H. Yamaguti (10)
Modelo de interação
• Modelo de interação:
– Ex.: Diagrama de Interação (UML)
Introdução à Engenharia de Software
PUCRS - FACIN
Prof. Marcelo H. Yamaguti (11)
Modelo estrutural
• Modelo estrutural:
– Provê uma visão da organização/estrutura do sistema.
– Ex.: Diagrama de Classes (UML)
Introdução à Engenharia de Software
PUCRS - FACIN
Prof. Marcelo H. Yamaguti (12)
Modelo estrutural
• Modelo estrutural:
– Ex.: Diagrama Entidade-Relacionamento
Introdução à Engenharia de Software
Médico Paciente Exame
Exame
clínico
Exame
patológico
atende realiza
CRM
Nome
Nome
Código
Data
Setor Código
origem
(1,N) (1,N) (1,1) (1,N)
PUCRS - FACIN
Prof. Marcelo H. Yamaguti (13)
Modelo comportamental
• Modelo comportamental:
– Provê uma visão do comportamento dinâmico e como o
sistema reage a estímulos (eventos, dados).
– Ex.: Diagrama de Estados (UML)
Introdução à Engenharia de Software
PUCRS - FACIN
Prof. Marcelo H. Yamaguti (14)
Modelo comportamental
• Modelo comportamental:
– Ex.: Diagrama de Fluxos de Dados
Introdução à Engenharia de Software
Cadastra
pedido
1
Verifica
disponibilidade
2
Libera
pedido
3
Pedido
Pedidos feitos
Novo pedido
Novo pedido
Produtos disponíveis
Pedidos atendidos
Pedidos não atendidos
Pedido ok
Pedido ok
Produto
Produto
disponível
Pedido não atendido
Pedido não atendido
Produto
retirado
Cliente
Setor de
despacho
Setor de
estoque
Prof. Marcelo H. Yamaguti (15)
Pontifícia Universidade Católica do Rio Grande do Sul
Faculdade de Informática
Prof. Marcelo H. Yamaguti
Introdução à Engenharia de
Software
DESENVOLVIMENTO DE
SOFTWARE
Análise e Modelagem de Software

Análise e Modelagem de Software

  • 1.
    Prof. Marcelo H.Yamaguti (1) Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática Prof. Marcelo H. Yamaguti Introdução à Engenharia de Software DESENVOLVIMENTO DE SOFTWARE Análise e Modelagem de Software
  • 2.
    PUCRS - FACIN Prof.Marcelo H. Yamaguti (2) Referências • Estude para aprofundamento no conteúdo: – SOMMERVILLE, Ian. Engenharia de Software. 9ª ed. São Paulo: Pearson, 2011. – Capítulos 4 e 5 – PFLEEGER, Shari Lawrence. Engenharia de Software: teoria e prática. 2ª ed. São Paulo: Prentice-Hall, 2004. - Capítulo 4 – IEEE. Guide to the Software Engineering Body of Knowledge. SWEBOK. Version 3. IEEE Computer Society. 2014. – Chapter 1 – BOOCH, G.; RUMBAUGH, J.; JACOBSON, I. UML: guia do usuário. 2ed. Rio de Janeiro: Elsevier, 2006. Introdução à Engenharia de Software
  • 3.
    PUCRS - FACIN Prof.Marcelo H. Yamaguti (3) Análise X Projeto (design) • Análise: – Entendimento do problema – Entendimento do escopo (âmbito) da solução – Definição de uma solução conceitual (O QUE) • Projeto*: – Definição de uma solução lógica (COMO) * “Projeto” em inglês pode ser ‘Project’ ou ‘Design’. ‘Project’ é uma iniciativa que envolve recursos para gerar um resultado. ‘Design’ é uma etapa do desenvolvimento de software entre a Análise e a Implementação; há autores que traduzem como ‘Desenho’. Projeto (design) Introdução à Engenharia de Software Análise Problema Necessidade Especificação de requisitos Arquitetura Componentes O QUE COMO
  • 4.
    PUCRS - FACIN Prof.Marcelo H. Yamaguti (4) Modelagem • Durante a análise (de sistemas, de requisitos) uma das atividades esperadas é a especificação (modelagem) dos requisitos do sistema: definição detalhada e formal de uma função de um sistema. • A modelagem de sistema é um processo de desenvolvimento de modelos abstratos de um sistema. • Um modelo é uma abstração de alguma coisa, cujo propósito é permitir que se conheça essa coisa antes de construí-la. Introdução à Engenharia de Software
  • 5.
    PUCRS - FACIN Prof.Marcelo H. Yamaguti (5) Modelagem • Objetivos dos modelos: – Comunicação com clientes (usuários). Ex.: plantas baixas. – Visualização. Ex.: maquetes. – Testar uma entidade física antes de lhe dar forma. Ex.: aeromodelos ou protótipos testados em túnel de vento. – Redução da complexidade. • Em software, usualmente utiliza-se diagramas para a especificação de modelos. • No contexto atual, a UML (Unified Modeling Language – Linguagem de Modelagem Unificada) provê diversos tipos de diagrama para a especificação de modelos. Introdução à Engenharia de Software
  • 6.
    PUCRS - FACIN Prof.Marcelo H. Yamaguti (6) Modelagem • Para representar um sistema pode ser necessário mais de um modelo que proveem visões diferentes. • Algumas categorias de modelo são: – Modelo de contexto – Modelo de interação – Modelo estrutural – Modelo comportamental Introdução à Engenharia de Software
  • 7.
    PUCRS - FACIN Prof.Marcelo H. Yamaguti (7) Modelo de contexto • Modelo de contexto: – Provê uma visão do contexto ou ambiente do sistema e os limites do seu escopo (âmbito) – Exemplo: Diagrama de Casos de Uso (UML) Introdução à Engenharia de Software
  • 8.
    PUCRS - FACIN Prof.Marcelo H. Yamaguti (8) Modelo de contexto • Modelo de contexto: – Exemplo: Diagrama de Atividades (UML) Introdução à Engenharia de Software
  • 9.
    PUCRS - FACIN Prof.Marcelo H. Yamaguti (9) Modelo de interação • Modelo de interação: – Provê uma visão das interações do sistema com o ambiente, ou entre os componentes de um sistema. – Ex.: Diagrama de Casos de Uso (UML) Introdução à Engenharia de Software
  • 10.
    PUCRS - FACIN Prof.Marcelo H. Yamaguti (10) Modelo de interação • Modelo de interação: – Ex.: Diagrama de Interação (UML) Introdução à Engenharia de Software
  • 11.
    PUCRS - FACIN Prof.Marcelo H. Yamaguti (11) Modelo estrutural • Modelo estrutural: – Provê uma visão da organização/estrutura do sistema. – Ex.: Diagrama de Classes (UML) Introdução à Engenharia de Software
  • 12.
    PUCRS - FACIN Prof.Marcelo H. Yamaguti (12) Modelo estrutural • Modelo estrutural: – Ex.: Diagrama Entidade-Relacionamento Introdução à Engenharia de Software Médico Paciente Exame Exame clínico Exame patológico atende realiza CRM Nome Nome Código Data Setor Código origem (1,N) (1,N) (1,1) (1,N)
  • 13.
    PUCRS - FACIN Prof.Marcelo H. Yamaguti (13) Modelo comportamental • Modelo comportamental: – Provê uma visão do comportamento dinâmico e como o sistema reage a estímulos (eventos, dados). – Ex.: Diagrama de Estados (UML) Introdução à Engenharia de Software
  • 14.
    PUCRS - FACIN Prof.Marcelo H. Yamaguti (14) Modelo comportamental • Modelo comportamental: – Ex.: Diagrama de Fluxos de Dados Introdução à Engenharia de Software Cadastra pedido 1 Verifica disponibilidade 2 Libera pedido 3 Pedido Pedidos feitos Novo pedido Novo pedido Produtos disponíveis Pedidos atendidos Pedidos não atendidos Pedido ok Pedido ok Produto Produto disponível Pedido não atendido Pedido não atendido Produto retirado Cliente Setor de despacho Setor de estoque
  • 15.
    Prof. Marcelo H.Yamaguti (15) Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática Prof. Marcelo H. Yamaguti Introdução à Engenharia de Software DESENVOLVIMENTO DE SOFTWARE Análise e Modelagem de Software