projetos de software (aula 8) modelagem de software
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