#AnaliseDeSistem
as

Prof. Natanael Simões

Projeto de Sistemas com UML
Parte 1: Fundamentos de Gerência de Projetos e UML

natanaelsimoes
Conteúdo programático
Parte 1:
• Gerência de Projeto
• Engenharia de Software
• UML: Conceitos e Diagramas
Parte 2:
• Principais diagramas da UML
• Técnicas de levantamento de requisitos
• Exercícios práticos
2
Projeto

“conjunto de atividades temporárias, realizadas em grupo,
destinadas a produzir um produto, serviço ou resultado únicos”
Project Management Institute, 2013
3
O que/por que projetamos?

4
O que/por que projetamos?

5
O que/por que projetamos?

6
O que/por que projetamos?

7
Gerenciamento de Projetos
• Administração é o principal interessado
• Demanda aplicação de conhecimentos, habilidades e
técnicas na elaboração de atividades
• Define prazos, custos e qualidade
• Mobiliza recursos técnicos e humanos

8
Como gerenciar um projeto
1.
2.
3.
4.
5.
6.
7.

Adote uma metodologia
Comunique-se
Defina o escopo
Monte o time
Desenvolva o cronograma
Monitore os riscos
Formalize o início e fim do projeto
BARBI, 2013
9
Engenharia de Software
• Sistemas de Informação e Análise de Sistemas são os
principais interessados
• Gerencia o ciclo de vida dos softwares
Application Lifecycle Management – ALM
• Aplica os conceitos de Gerência de Projetos aos
sistemas de informação
• Uso constante de modelos abstratos
“Engenharia de Software é a criação e a utilização de sólidos
princípios de engenharia a fim de obter software de maneira
econômica, que seja confiável e que trabalhe em máquinas reais”
BAUER, 1960
10
Como gerenciar um projeto de software
1. Adote uma metodologia de desenvolvimento
Processo

Metodologia de
Desenvolvimento
Ferramentas

Métodos

11
Como gerenciar um projeto de software
1. Adote uma metodologia de desenvolvimento
– Processo
•
•
•
•
•

Cascata
Iterativo incremental
Evolucional
Espiral
Ágil

12
Como gerenciar um projeto de software
1. Adote uma metodologia de desenvolvimento
– Métodos
•
•
•
•
•
•
•
•
•

Análise Estruturada
DFD – Diagrama de fluxo de dados
MER – Modelo Entidade-Relacionamento
Orientação a objetos
Scrum
XP
FDD – Feature Driven Development
TDD – Test Driven Develpment
UML

13
Como gerenciar um projeto de software
1. Adote uma metodologia de desenvolvimento
– Ferramentas
•
•
•
•
•
•
•

CASE – Computer-aided software engineering
IDE
Editor
Compilador
Debug
Testes
Refactoring

14
Como gerenciar um projeto de software
2. Comunique-se com a equipe de
desenvolvimento

“não é só o peixe
que morre pela
boca!”
BARBI, 2013

15
16
17
18
Como gerenciar um projeto de software
3. Defina o escopo do sistema
– O que o sistema vai fazer e o que não vai
– “o ótimo é inimigo do bom”

19
20
21
22
23
24
25
26
27
Como gerenciar um projeto de software
4. Monte o time de desenvolvimento
– Conheça os stakeholders
(qualquer um pode ser um membro)
– Enquanto se define o escopo as habilidades
necessárias para ser membro serão mais claras
– Monte equipes com competências diversificadas

28
Como gerenciar um projeto de software
4. Desenvolva o cronograma com sua equipe de
desenvolvimento
– Defina as atividades a serem desenvolvidas
– Defina quem executará a atividade e o tempo
– Verifique a progressão das atividades

29
Como gerenciar um projeto de software
5. Desenvolva o cronograma com sua equipe de
desenvolvimento

30
Como gerenciar um projeto de software
6. Monitore os riscos que podem atrasar o
desenvolvimento
– Recursos
Orçamento, ferramentas, pessoas...

– Funcionalidades
Alteração de requisitos...

– Cronograma
Tempo estipulado foi pouco...

31
Como gerenciar um projeto de software
6. Formalize o início e fim do projeto do sistema
– Por que formalizar o início?
• Expressa autoridade para envolver pessoas e recursos

– Por que formalizar o fim?
• Momento de avaliar erros e acertos (Know-how)
• Clientes acham que podem mudar o tempo todo
• Novas necessidades? Novo projeto!

“Quero colocar minha foto no perfil”
32
33
34
UML
•
•
•
•
•
•

1997, por Booch, Rumbaugh e Jacobson
Não é uma metodologia!
Auxilia na visualização sistêmica de um problema
Não é depende de processo
Mais que uma ferramenta, um padrão de modelagem
Objetivos:
– Especificação
– Documentação
– Estruturação

35
Diagrama
Diagramas de
Estrutura

Diagramas de
Comportamento

Diagrama de
Classes

Diagrama de
Componentes

Diagrama de
Objetos

Diagrama de
Perfil

Diagrama de
Estrutura
Composta
Diagrama de
Pacotes

Diagrama de
Instalação

Diagrama de
Caso de Uso

Diagramas de
Interação

Diagrama de
Estados

Diagrama de
Atividades

Diagrama de
Sequência

Diagrama de
Comunicação

Diagrama de
Interatividade

Diagrama de
Tempo

36
Diagrama de Caso de Uso

UNICAMP, 2010

37
Diagrama de Atividades

GUDWIN, 2013

38
Diagrama de Estados

GUDWIN, 2013

39
Diagrama de Sequência

GUDWIN, 2013

40
Diagrama de Comunicação

BORGES, 2013

41
Diagrama de Interatividade

SOUZA e MENEZES, 2013

42
Diagrama de Tempo

SOUZA, 2011

43
Diagrama de Classes

44
Diagrama de Componentes

FARIA, 2001

45
Diagrama de Componentes

FARIA, 2001

46
Diagrama de Componentes

SOUZA, 2011

47
Diagrama de Objetos

48
Diagrama de Perfil

49
Diagrama de Estrutura Composta

50
Diagrama de Instalação

51
Diagrama de Pacotes

52

Projeto de sistemas com UML - Parte 1

  • 1.
    #AnaliseDeSistem as Prof. Natanael Simões Projetode Sistemas com UML Parte 1: Fundamentos de Gerência de Projetos e UML natanaelsimoes
  • 2.
    Conteúdo programático Parte 1: •Gerência de Projeto • Engenharia de Software • UML: Conceitos e Diagramas Parte 2: • Principais diagramas da UML • Técnicas de levantamento de requisitos • Exercícios práticos 2
  • 3.
    Projeto “conjunto de atividadestemporárias, realizadas em grupo, destinadas a produzir um produto, serviço ou resultado únicos” Project Management Institute, 2013 3
  • 4.
    O que/por queprojetamos? 4
  • 5.
    O que/por queprojetamos? 5
  • 6.
    O que/por queprojetamos? 6
  • 7.
    O que/por queprojetamos? 7
  • 8.
    Gerenciamento de Projetos •Administração é o principal interessado • Demanda aplicação de conhecimentos, habilidades e técnicas na elaboração de atividades • Define prazos, custos e qualidade • Mobiliza recursos técnicos e humanos 8
  • 9.
    Como gerenciar umprojeto 1. 2. 3. 4. 5. 6. 7. Adote uma metodologia Comunique-se Defina o escopo Monte o time Desenvolva o cronograma Monitore os riscos Formalize o início e fim do projeto BARBI, 2013 9
  • 10.
    Engenharia de Software •Sistemas de Informação e Análise de Sistemas são os principais interessados • Gerencia o ciclo de vida dos softwares Application Lifecycle Management – ALM • Aplica os conceitos de Gerência de Projetos aos sistemas de informação • Uso constante de modelos abstratos “Engenharia de Software é a criação e a utilização de sólidos princípios de engenharia a fim de obter software de maneira econômica, que seja confiável e que trabalhe em máquinas reais” BAUER, 1960 10
  • 11.
    Como gerenciar umprojeto de software 1. Adote uma metodologia de desenvolvimento Processo Metodologia de Desenvolvimento Ferramentas Métodos 11
  • 12.
    Como gerenciar umprojeto de software 1. Adote uma metodologia de desenvolvimento – Processo • • • • • Cascata Iterativo incremental Evolucional Espiral Ágil 12
  • 13.
    Como gerenciar umprojeto de software 1. Adote uma metodologia de desenvolvimento – Métodos • • • • • • • • • Análise Estruturada DFD – Diagrama de fluxo de dados MER – Modelo Entidade-Relacionamento Orientação a objetos Scrum XP FDD – Feature Driven Development TDD – Test Driven Develpment UML 13
  • 14.
    Como gerenciar umprojeto de software 1. Adote uma metodologia de desenvolvimento – Ferramentas • • • • • • • CASE – Computer-aided software engineering IDE Editor Compilador Debug Testes Refactoring 14
  • 15.
    Como gerenciar umprojeto de software 2. Comunique-se com a equipe de desenvolvimento “não é só o peixe que morre pela boca!” BARBI, 2013 15
  • 16.
  • 17.
  • 18.
  • 19.
    Como gerenciar umprojeto de software 3. Defina o escopo do sistema – O que o sistema vai fazer e o que não vai – “o ótimo é inimigo do bom” 19
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
    Como gerenciar umprojeto de software 4. Monte o time de desenvolvimento – Conheça os stakeholders (qualquer um pode ser um membro) – Enquanto se define o escopo as habilidades necessárias para ser membro serão mais claras – Monte equipes com competências diversificadas 28
  • 29.
    Como gerenciar umprojeto de software 4. Desenvolva o cronograma com sua equipe de desenvolvimento – Defina as atividades a serem desenvolvidas – Defina quem executará a atividade e o tempo – Verifique a progressão das atividades 29
  • 30.
    Como gerenciar umprojeto de software 5. Desenvolva o cronograma com sua equipe de desenvolvimento 30
  • 31.
    Como gerenciar umprojeto de software 6. Monitore os riscos que podem atrasar o desenvolvimento – Recursos Orçamento, ferramentas, pessoas... – Funcionalidades Alteração de requisitos... – Cronograma Tempo estipulado foi pouco... 31
  • 32.
    Como gerenciar umprojeto de software 6. Formalize o início e fim do projeto do sistema – Por que formalizar o início? • Expressa autoridade para envolver pessoas e recursos – Por que formalizar o fim? • Momento de avaliar erros e acertos (Know-how) • Clientes acham que podem mudar o tempo todo • Novas necessidades? Novo projeto! “Quero colocar minha foto no perfil” 32
  • 33.
  • 34.
  • 35.
    UML • • • • • • 1997, por Booch,Rumbaugh e Jacobson Não é uma metodologia! Auxilia na visualização sistêmica de um problema Não é depende de processo Mais que uma ferramenta, um padrão de modelagem Objetivos: – Especificação – Documentação – Estruturação 35
  • 36.
    Diagrama Diagramas de Estrutura Diagramas de Comportamento Diagramade Classes Diagrama de Componentes Diagrama de Objetos Diagrama de Perfil Diagrama de Estrutura Composta Diagrama de Pacotes Diagrama de Instalação Diagrama de Caso de Uso Diagramas de Interação Diagrama de Estados Diagrama de Atividades Diagrama de Sequência Diagrama de Comunicação Diagrama de Interatividade Diagrama de Tempo 36
  • 37.
    Diagrama de Casode Uso UNICAMP, 2010 37
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.