APS - 03 - Modelos para especificação

Download Report

Transcript APS - 03 - Modelos para especificação

Universidade Federal do Paraná
Setor de Ciências Exatas
Departamento de Informática
ESPECIALIZAÇÃO EM INFORMÁTICA
Análise e Projeto de Sistemas
Setembrino Soares Ferreira Jr.
03 - Modelos para especificação de sistemas de
software
10/06/2010
03 - Modelos para especificação
1
Conteúdos
1. Considerações iniciais
1.1. Especificação
1.1.1. Tipos
1.1.2. Estágios
1.1.3. Verificação e validação
1.1.4. Qualidade x grau de formalidade
2. Modelos e princípios da E. S.
2.1. Um exemplo
10/06/2010
03 - Modelos para especificação
2
Conteúdos (cont.)
3. Modelos do mundo real
3.1. O modelo de função
3.2. O modelo de dados
3.3. O modelo comportamental
3.4. O modelo de objetos
3.5. O modelo formal
3.6. O modelo dinâmico
3.7. Dicionário de dados
10/06/2010
03 - Modelos para especificação
3
Conteúdos (cont.)
4. Modelos de projeto
4.1. Modelos para projeto geral
4.2. Modelos para projeto detalhado
5. Modelos para teste de programas
6. Modelos de planejamento do projeto
6.1. Modelos de custo
6.2. Modelos de programação de projetos
10/06/2010
03 - Modelos para especificação
4
Conteúdos (cont.)
7. Metodologias, métodos e ferramentas
7.1. Métodos estruturados
7.2. Métodos orientados a objetos
7.3. Métodos formais
8. Comentários finais
9. Exercícios
10/06/2010
03 - Modelos para especificação
5
1. Considerações iniciais
“Um modelo de sistema de software é uma representação
em miniatura de uma realidade complexa, que reflete
certas características específicas do sistema que está
sendo representado.”
(CARVALHO; CHIOSSI, 2001)

Modelos


Ferramentas úteis para representar especificações
Especificação - dois estágios / processos


Construção de modelos
Transmissão de mensagens entre grupos
10/06/2010
03 - Modelos para especificação
6
1. Considerações iniciais (cont.)
Objetivos do uso de modelos na especificação
das diferentes fases do desenvolvimento

Representar visão do ambiente antes da automação
 Indicar diferentes alternativas de solução
 Apontar necessidades futuras
 Permitir avaliação / refinamento de características
 Representar componentes como partes bem definidas
e com dependência mínima entre elas
 Permitir o trabalho gradual com a complexidade
 Fornecer informações quantitativas sobre escopo /
complexidade de um projeto

10/06/2010
03 - Modelos para especificação
7
1.1. Especificação

Desenvolver sistemas = obter e organizar dados


Volume  (dimensão + complexidade)
Princípios auxiliadores


Abstração - filtro dos aspectos relevantes a cada fase
Decomposição


10/06/2010
Reflexo das propriedades do sistema em suas partes
Paradigmas: decomposição em fases / associação de tarefas
03 - Modelos para especificação
8
1.1. Especificação

Especificação

Duas classes gerais de atores: produtor e consumidor

Atores e objetivos da especificação variáveis = f(contexto)
Especificação ...
 ... de requisitos: desenvolvedor + cliente
 ... de projeto geral: projetista + implementador
 ... de projeto detalhado (de módulos):
programadores implementadores + programadores
usuários
 => propósito: criar ponte de comunicação entre os
diversos tipos de pessoas envolvidas

10/06/2010
03 - Modelos para especificação
9
1.1.1. Tipos de especificação
Considerado o enfoque dado aos atributos do
sistema


Especificação operacional
Representa o comportamento desejado do sistema utilizando
modelos abstratos que, de alguma forma, simulem seu
comportamento
 Auxilia na verificação direta dos requisitos


Especificação descritiva
Busca declarar as propriedades desejadas do sistema de
forma puramente descritiva
 Representa as propriedades de maneira formal


Exemplo: trajetória de um satélite


10/06/2010
Especificação operacional: desenho de uma circunferência
Especificação descritiva: x2 + y2 + c = 0
03 - Modelos para especificação
10
1.1.2. Estágios da especificação
Após a fase inicial de extração e análise de
requisitos

Contrato entre cliente e desenvolvedor
 Documento: Declaração de objetivos e restrições do
projeto (DORP)



Antecede o Plano preliminar de projeto (detalhes adiante)
1o. Estágio: Especificação de requisitos

Com base nos objetivos da DORP
Descrição precisa e não ambígua do comportamento
desejado para o sistema (o que é esperado?)


Com base nas restrições da DORP

10/06/2010
Delimitações do sistema especificadas como propriedades
03 - Modelos para especificação
11
1.1.2. Estágios da especificação (cont.)

2o. Estágio: Especificação de projeto




Características operacionais
Estrutura do sistema
=> Como o sistema deve ser implementado
Mais detalhes que a E. R.


Dados, ações, controle e execução
Passos
Especificação do projeto geral (÷ sistema em subsistemas,
definir relações entre eles, ÷ subsistemas em módulos)
 Especificação do projeto detalhado (lógica dos módulos)
 Especificação das interfaces do sistema

10/06/2010
03 - Modelos para especificação
12
1.1.2. Estágios da especificação (cont.)

3o. Estágio: Especificação de programas
Deve garantir a correta tradução das decisões de
projeto
 Decisões inclusas: escolha de algoritmos


Outros estágios



Garantem a qualidade
Permitem o acompanhamento e controle do projeto
Exemplos


10/06/2010
Especificação de planos para o projeto
Especificação de testes
03 - Modelos para especificação
13
1.1.3. Verificação e validação

F(natureza das especificações)




Várias possibilidades de haver erros
Provável não traduzirem exatamente as necessidades
=> Todas devem ser verificadas
Pode ser necessário


Modificar especificações existentes
Incluir novas especificações
Podem ser utilizadas técnicas diferentes para a
validação em cada estágio

10/06/2010
03 - Modelos para especificação
14
1.1.4. Qualidade x grau de formalidade

Durante o desenvolvimento




Várias especificações
Cada uma em uma fase
Cada uma com um determinado fim
Dirigida a públicos diferentes


Projetista, implementador, usuário final, gerente, etc.
=> Propósitos diferentes
Especificação de requisitos: auxiliar usuário a entender suas
necessidades / validar produto final / tomar decisões de
projeto e conferir implementação (desenvolvedor)
 Especificação de projeto: avaliar impactos de modificações /
controlar e redirecionar recursos (gerente)

10/06/2010
03 - Modelos para especificação
15
1.1.4. Qualidade x grau de formal. (cont.)
Fatores que influenciam a qualidade das
especificações





Fatores dependem do grau de formalidade


Ambigüidade
Consistência
Omissão
F(criticidade de propriedades / componentes)
Formalismos muitas vezes são evitados
F(consumo de tempo, custo, dificuldade de
comunicação, falta de domínio de métodos formais,
necessidade de treinamento, etc.)

10/06/2010
03 - Modelos para especificação
16
2. Modelos e princípios da E. S.

Especificações devem seguir os princípios
Abstração: concentração nos aspectos importantes,
sem ater-se a detalhes não relevantes


Conceito geral dos modelos: top-down
Decomposição: divisão de problemas complexos em
menores, independentes, fáceis de entender e
solucionar; representação das relações entre partes

Técnicas descendentes / ascendentes; hierarquias de
programas / classes de objetos; modelagem em rede

Formalidade: modelos formais / semiformais
permitem




10/06/2010
Instituir controles para o desenvolvimento / qualidade
Comunicação mais eficiente
Representação precisa de interfaces entre estágios
03 - Modelos para especificação
17
2. Modelos e princípios da E. S. (cont.)

=> Modelos


Devem permitir alcance dos princípios
Boa prática para sistemas complexos

Modelo do mundo real (para E. R.)



Modelo de dados
Modelo de função
Modelo de comportamento do sistema
Modelo do projeto (para especificação do projeto)
 Modelo do plano de projeto (planejamento do
desenvolvimento)

10/06/2010
03 - Modelos para especificação
18
2.1. Um exemplo

Caso exemplo para especificação com modelos
Subsistema de consulta a bibliotecas de uma
universidade



Entrada: título e/ou autor
(título, autor) informado: pertencente ao acervo?
Sim: verificar a disponibilidade de exemplares / fornecer
localização
 Não: informar que (título, autor) não pertence ao acervo


título informado
Listar ocorrências do título no acervo (títulos iguais com
autores diferentes)


autor informado

10/06/2010
Listar todos os títulos daquele autor pertencentes ao acervo
03 - Modelos para especificação
19
3. Modelos do mundo real

Utilizados para representar sistemas



Representação da especificação de requisitos
Descrição da percepção do sistema a ser
construído
Foco em 3 características diferentes



O que o sistema faz
Que dados o sistema mantém
Como o sistema se comporta
Ilustração 
10/06/2010
03 - Modelos para especificação
20
3. Modelos do mundo real (cont.)
PERCEPÇÕES
FUNCIONAL
DE DADOS
COMPORTAMENTAL
Verificar acervo
Verificar
disponibilidade
Localizar exemplar
Bibliotecas
Exemplares
Títulos
Autores
Aguardando consulta
do usuário
Preparando resposta a
consulta
SISTEMA
Sistema de consulta a bibliotecas: Percepções do mundo real
10/06/2010
03 - Modelos para especificação
21
3.1. O modelo de função

Entende o sistema todo como uma função

Transformador de entradas em saídas

Diagrama de contexto (YOURDON, 1990):
relacionamento do sistema com interfaces externas
Interface
Entrada
SISTEMA
Saída
Interface
Modelo de contexto do sistema
10/06/2010
03 - Modelos para especificação
22
3.1. O modelo de função (cont.)

Decompõe o sistema identificando como
componentes suas principais funções



A função do sistema todo fica constituída por
um conjunto de subfunções conectadas
Cada subfunção é possivelmente formada por
outras subfunções conectadas
... Modelo funcional do sistema


Série de desenhos (rede)
Sucessivas divisões das partes que constituem
o sistema
10/06/2010
03 - Modelos para especificação
23
3.1. O modelo de função (cont.)
Sistema
Função 2
Conexão
Interface
Entrada
Conexão
Função 1
Função 4
Conexão
Saída
Interface
Conexão
Função 3
Modelo funcional: Decomposição
10/06/2010
03 - Modelos para especificação
24
3.1. O modelo de função (cont.)

O modelo de função pode ser considerado
completo quando

Descreve todo o sistema


Decompõe convenientemente o sistema






Mostra as transformações de todas as entradas em saídas
Todos os componentes não particionados são elementares
Cada componente do sistema está ligado
corretamente ao resto da rede
Nenhuma conexão necessária foi omitida
As conexões estão minimizadas
Cada conexão da rede está definida no dicionário de
dados
Todos os elementos que compõem cada conexão
estão definidos
10/06/2010
03 - Modelos para especificação
25
3.1. O modelo de função (cont.)

Diagramas de fluxo de dados – DFD
(DEMARCO, 1979)

Especificação semiformal de funcionalidades



Notação gráfica atrativa e fácil de usar
Descrevem um sistema como uma coleção de
dados manipulados por funções
Dados podem estar
Armazenados em depósitos de dados (estáticos)
 Contidos em fluxos de dados (conexões)
(dinâmicos)



10/06/2010
Fluindo de uma função para outra
Sendo transferidos para / do ambiente externo
03 - Modelos para especificação
26
3.1. O modelo de função (cont.)

DFD – Elementos básicos

Bolhas / cilindros: processos (funções)


Setas: fluxos de dados (conexões)


Meios por onde trafegam pacotes de dados
Caixas abertas: depósitos de dados


Transformadores(as) dos fluxos de dados
Armazenam dados entre processos
Caixas retangulares: entidades externas

10/06/2010
Origem ou destino de transações (/ dados
associados) do sistema
03 - Modelos para especificação
27
3.1. O modelo de função (cont.)

DFD – Exemplo
MR
Exemplares
MR
Disponibilidade
Títulos e Autores
Verifica(r)
disponibilidade
!
Exemplar
disponível
Informações
do acervo
Localiza(r)
exemplar
!
Verifica(r)
acervo
Mensagem 2
MR
Nome da
biblioteca
Título, Autor
Bibliotecas
! = dados de ...
Mensagem 1
Lista Título-Autor
10/06/2010
Usuário
03 - Modelos para especificação
Mensagem 1: Título e/ou autor não
pertence(m) ao acervo
Mensagem 2: Exemplar pertencente
ao acervo mas não disponível
28
3.1. O modelo de função (cont.)

DFD – Limitações




É necessária alguma experiência com o
sistema para poder deduzir certas
informações a partir da figura
O diagrama não especifica claramente como
as entradas são usadas para produzir as
saídas
Sincronização de componentes não
representada
É necessário o uso de um dicionário de dados
para a inclusão dos detalhes não
representados
10/06/2010
03 - Modelos para especificação
29
3.1. O modelo de função (cont.)

DFD – Considerações finais

O desenho pode ser feito com o auxílio de
ferramenta automatizada
Entradas de dicionário de dados são geradas
automaticamente
 Cabe ao desenvolvedor completar as entradas com
os detalhes não especificados

10/06/2010
03 - Modelos para especificação
30
3.2. O modelo de dados

Deve representar




Os dados que precisam ser armazenados
A melhor organização dos dados
O relacionamento entre grupos de dados
Como os dados serão utilizados
“É uma representação concisa dos
requisitos do sistema sob o ponto de vista
de dados”.
(ELMASRI; NAVATHE, 1994)
10/06/2010
03 - Modelos para especificação
31
3.2. O modelo de dados (cont.)

Dados armazenados



Descrevem “coisas” do mundo real
Possibilitam o atendimento dos requisitos
Relação entre dados dentro do sistema e
pessoas ou coisas fora do sistema


Gera uma espécie de mapa... Pista de como
se deve organizar os dados
Perseguir esta pista significa agrupar itens
associados à mesma entidade do mundo real
10/06/2010
03 - Modelos para especificação
32
3.2. O modelo de dados (cont.)

Ilustração
MUNDO REAL
Cliente
DENTRO DO SISTEMA
Entidade
Propriedade
Cliente:
nome
Relacionamento
endereço
cic
Alugar
Carro
Carro:
marca
cor
nº chassis
Abstração de dados
10/06/2010
03 - Modelos para especificação
33
3.2. O modelo de dados (cont.)

Abstração da entidade Cliente



Propriedades nome, endereço e cic dentro do
sistema
Boa desde que as informações sejam
necessárias e suficientes para representar um
cliente
Relacionamento entre entidades


Representa uma associação essencial ao
sistema
Relacionamento “Alugar”

10/06/2010
Associação entre as entidades “Cliente” e “Carro”
03 - Modelos para especificação
34
3.2. O modelo de dados (cont.)

Modelo entidade-relacionamento – MER
(ELMASRI; NAVATHE, 1994)


Modelo para a especificação dos dados
armazenados pelo sistema
Conceitos
Entidades
 Atributos
 Relacionamentos


Ferramenta gráfica

10/06/2010
Diagrama entidade-relacionamento – DER
03 - Modelos para especificação
35
3.2. O modelo de dados (cont.)

Diagrama entidade-relacionamento – DER:
notações




Retângulos: entidades sobre as quais o
sistema mantém dados
Elipses: atributos (propriedades) das
entidades
Losangos: relacionamentos entre entidades
Linhas: conexões das entidades com atributos
e/ou relacionamentos
10/06/2010
03 - Modelos para especificação
36
3.2. O modelo de dados (cont.)

DER: exemplo
Cliente
nome
10/06/2010
endereço
1
Alugar
cic
m
marca
03 - Modelos para especificação
Carro
cor
nº chassis
37
3.2. O modelo de dados (cont.)

DER exemplo representa

Duas entidades: Cliente e Carro
Cliente aluga carro
 Carro é alugado por cliente


Modelo entidade-relacionamento

Faz especificação descritiva! Apresenta
Propriedades (atributos) das entidades
 Relacionamentos com outras entidades
 Ainda outras características do mundo real



10/06/2010
Participação
Cardinalidade
03 - Modelos para especificação
38
3.2. O modelo de dados (cont.)

Participação (de entidades) em
relacionamentos

Parcial
Nem todos os elementos da entidade participam
 Notação: linha simples ligando a entidade ao
relacionamento
 Ex.: participação de carro no relacionamento
alugar (alguns carros podem não estar associados
a clientes)


Total

10/06/2010
Ex.: Cliente no relacionamento alugar (não
interessa ao sistema clientes que não aluguem
carro)
03 - Modelos para especificação
39
3.2. O modelo de dados (cont.)

Cardinalidade de um relacionamento


Quantidade de instâncias de uma entidade que se
relacionam com instâncias de outra entidade
Relacionamentos




Um para um (1:1)
Um para muitos (1:m)
Muitos para muitos (m:n)
Ex.: Relacionamento alugar


Um para muitos
Significado


10/06/2010
Um cliente pode alugar vários carros (ex.: empresas)
Cada carro pode estar alugado a apenas um cliente
03 - Modelos para especificação
40
3.2. O modelo de dados (cont.)

Limitações

Algumas características do mundo real
(propriedades de entidades) não podem ser
representadas


Ex.: formação do cic
=> notação semiformal
Sintaxe / semântica não precisas
 Necessidade


Comentários informais para completar o modelo
e/ou

10/06/2010
Utilização de um dicionário de dados para detalhar o
modelo
03 - Modelos para especificação
41
3.2. O modelo de dados (cont.)

DER subsistema de consulta a bibliotecas
Biblioteca
1
m
Conter
nº item
Exemplar
n
nome
estado
código
local
Possuir
Observações:
1) Entidade usuário não modelada:
sem interesse
2) Estado (exemplar): disponível,
emprestado, reservado para
disciplina
3) Relacionamentos permitem
verificar existência, disponibilidade
e localização de um título
10/06/2010
título
editora
1
autor
Acervo
data de publicação
edição
área
03 - Modelos para especificação
42
3.3. O modelo comportamental

Sistemas



Tendem a assumir vários estados
Cada estado se caracteriza por responder de
forma única a um determinado conjunto de
estímulos
Análise de estados de um sistema exige
enumerar


Possíveis estados
Eventos: condições e/ou ações que causam
mudança de estado
10/06/2010
03 - Modelos para especificação
43
3.3. O modelo comportamental (cont.)

Modelo de comportamento do sistema
representa


Estados
Eventos que alteram os estados

Condições e ações para mudanças de estados



10/06/2010
Se a condição para a ocorrência de um evento for
verdadeira, a ação correspondente será ativada
Ao longo da realização de determinada ação, o estado do
componente do sistema sendo alterado não é observável
Completada a ação, o componente passa ao estado
determinado pelo evento correspondente
03 - Modelos para especificação
44
3.3. O modelo comportamental (cont.)

Máquina de estados finitos – MEF (ALAGAR;
PERIYASAMI, 1998)

Inclui conceitos





Estados
Cadeias de dados de entrada (eventos)
Ferramenta gráfica para especificações semiformais
Utiliza um grafo para representar o comportamento
do sistema
Sistema descrito como


10/06/2010
Conjunto de estados que se alternam
Em conseqüência de algum evento modelado por dados de
entrada
03 - Modelos para especificação
45
3.3. O modelo comportamental (cont.)

Máquina de estados finitos – MEF:
notações


Elipses: estados
Setas: eventos que causam mudanças de
estados

Podem ser rotuladas para representar

Condições sobre eventos que ocasionam mudanças de
estados
e/ou

10/06/2010
Ações realizadas nas mudanças de estados
03 - Modelos para especificação
46
3.3. O modelo comportamental (cont.)

MEF: exemplo
Estado inicial: disparado por um
evento que não tem origem em outro
estado
Estado 1
Ação 1
(condição 1)
Evento 1
Estado 2
Ação 2
(condição 2)
Evento 2
Estado 3
Ação 3
(condição 3)
Evento 3
Estado 4
Ação 4
(condição 4)
Estado 5
10/06/2010
Evento 4
Estado final: nenhum evento parte
dele
03 - Modelos para especificação
47
3.3. O modelo comportamental (cont.)

MEF: títulos de uma biblioteca
registrar retirada
disponível
emprestado
registrar devolução
cancelar reserva
(final do semestre)
registrar reserva
(área disciplina =
área exemplar)
Observação:
Eventos são representados através de ações
e/ou condições (quando existirem)
reservado para
disciplina
10/06/2010
03 - Modelos para especificação
48
3.3. O modelo comportamental (cont.)

Traço de eventos


Outra ferramenta para modelar comportamento
Utilizado para representar cenários em sistemas
orientados a objetos


Cenários descrevem como o sistema trabalhará quando
estiver em operação
Notação simples



10/06/2010
Representa os objetos das classes envolvidas em um serviço
do sistema e as interfaces
Traço vertical: classes envolvidas no serviço
Traço horizontal: mensagens trocadas entre as classes
03 - Modelos para especificação
49
3.3. O modelo comportamental (cont.)

Traço de eventos: exemplo biblioteca

Localização de um exemplar


Entrada: (título, autor)
Resposta: nome da biblioteca onde disponível
Acervo
Exemplar
Biblioteca
título,
autor
verifica estado
procura nome
nome da biblioteca
nome da biblioteca
nome da
biblioteca
10/06/2010
03 - Modelos para especificação
50
3.4. O modelo de objetos



Utilizado para representar dados e
processamento; combina aspectos dos
modelos de função e de dados
(RUMBAUGH, 1991)
Permite ainda representar a composição e
a classificação de componentes (objetos)
Na fase de análise


Modelo não inclui detalhes de objetos
individuais
Trata de classes de objetos do mundo real
10/06/2010
03 - Modelos para especificação
51
3.4. O modelo de objetos (cont.)

Classe de objetos


Abstração sobre um conjunto de objetos que
possuem atributos e serviços (operações)
comuns
Modelo representa



Atributos e serviços das classes de objetos
Relacionamentos entre as classes
Utilização de serviços de um objeto por outro
10/06/2010
03 - Modelos para especificação
52
3.4. O modelo de objetos (cont.)

O modelo é usado para análise e projeto

Análise


Identificação de classes que representam o
domínio (coisas ou conceitos) do problema
Projeto
Adiciona informações sobre o domínio da solução
 Pode



10/06/2010
Redefinir e estender objetos da análise
Acrescentar objetos para representar
 Interfaces
 Controles
 Serviços de suporte
03 - Modelos para especificação
53
3.4. O modelo de objetos (cont.)


Utiliza diagrama de classes de objetos
para especificar o sistema
Notações para construção

Retângulo de cantos arredondados: classes de
objetos
Nome
Lista de atributos
Serviços
(operações)
10/06/2010
03 - Modelos para especificação
54
3.4. O modelo de objetos (cont.)

Diagrama de classes de objetos: Notações
para construção (cont.)

Linha (ligando classes)
Associações entre classes de objetos
 Indica haver troca de mensagens (objeto usa
serviços de outro)



Losango: composição de objetos de uma
classe (agregação)
Triângulo: classificação de objetos de uma
classe (generalização / especialização)
10/06/2010
03 - Modelos para especificação
55
3.4. O modelo de objetos (cont.)

Relações entre classes de objetos

Generalização / especialização
Serve para representar que uma classe de objetos
herda todos ou alguns atributos e serviços de uma
classe mais geral, além de poder conter seus
próprios atributos e serviços
 Classe mais geral: superclasse
 Especializações: subclasses


Agregação
Representa a composição de objetos
 Permite representar situações do mundo real em
que um objeto é composto de várias partes

10/06/2010
03 - Modelos para especificação
56
3.4. O modelo de objetos (cont.)

Generalização / especialização e agregação
pessoa
pessoa
empregado
aluno
cabeça
professor
10/06/2010
tronco
membro
funcionário
03 - Modelos para especificação
57
3.4. O modelo de objetos (cont.)

Serviços





Operações associadas aos objetos da classe
Permitem que o estado de um objeto de uma classe
possa ser modificado ou observado
São definidos para uma classe
Ficam disponíveis para cada objeto da classe
Associação entre classes


Permite um objeto obter um serviço de outra classe
Um objeto de uma classe pode enviar mensagens a
objetos de outra classe que possuam o serviço
desejado
10/06/2010
03 - Modelos para especificação
58
3.4. O modelo de objetos (cont.)

Associação entre classes
pessoa
Objetos da classe pessoa podem utilizar
serviços definidos para a classe faculdade:
- para um objeto da classe pessoa é
possível saber, por exemplo, o nome da faculdade;
- associação simples: um objeto da classe
pessoa requer um serviço da classe faculdade e
recebe como resultado no máximo um objeto.
faculdade
10/06/2010
Cada objeto da classe faculdade pode
utilizar serviços que envolvam vários objetos da
pessoa (ponto negro).
03 - Modelos para especificação
59
3.4. O modelo de objetos (cont.)
Acervo
Exemplar
Biblioteca
Título
Nº item
Nome
Data public.
Estado
Local
Editora
Unidade
Assunto
Autor
Verifica título
Verifica estado
Obtém nome
Verifica autor
Localiza item
Obtém local
Verifica disp.
Diagrama de classes de objetos para o sistema de bibliotecas
10/06/2010
03 - Modelos para especificação
60
3.5. O modelo formal



Modelos formais utilizam notações
matemáticas para especificar sistemas
Podem ser usados em qualquer estágio da
especificação
Rejeição!????!!!!!?!

Falta de destreza matemática para notações
formais
Utilização
 Compreensão

10/06/2010
03 - Modelos para especificação
61
3.5. O modelo formal (cont.)

Maioria dos modelos formais: lógica de
predicados

Predicado: expressão booleana
Resultado: verdadeiro ou falso
 Operadores convencionais (relacionais e lógicos)
 Qualificadores: permitem que um predicado seja
aplicado a um ou a todos os elementos de uma
coleção particular de valores

10/06/2010
03 - Modelos para especificação
62
3.5. O modelo formal (cont.)
Descrição
Símbolo Significado
Operadores relacionais <, >, =
≤, ≥, ≠
Operadores lógicos
۸, ۷, ~
Quantificadores
Є, /, 
Outros símbolos
Menor, maior, igual
...
E, ou, não
Existe, para todo
Pertence, tal que, então
Alguns símbolos utilizados em cálculo de
predicados
10/06/2010
03 - Modelos para especificação
63
3.5. O modelo formal (cont.)

Exemplo de uso

Especificar uma função em termos de pré e
pós-condições

Pré-condição



Pós-condição


10/06/2010
O que deve ser verdadeiro para que uma função seja
executada
Uma condição sobre os dados de entrada da função
O que deve ser verdadeiro quando uma função termina
sua execução
Condição sobre os dados resultantes da execução da
função
03 - Modelos para especificação
64
3.5. O modelo formal (cont.)

Exemplo de uso (cont.)

Em resumo

Pré e pós-condições



Predicados sobre entradas e saídas das funções
Operandos da expressão: parâmetros da função
Passos para a especificação formal de uma função
com o modelo de pré e pós-condições

Estabelecer restrições aos valores de entrada



10/06/2010
Domínio de valores; existência de elementos num conjunto que
possuam uma propriedade; uma propriedade desejada para
todos os elementos de um conjunto
Estabelecer restrições aos valores de saída (entrada)
Combinar os predicados em pré e pós-condições
03 - Modelos para especificação
65
3.6. O modelo dinâmico

Sistemas de software de tempo real




Altamente acoplados ao mundo externo
Executam ações em resposta a eventos externos
Escala de tempo ditada pelo mundo real
Necessário representar modificações do sistema
= f(t)

Percepções vistas não servem!



Modelos estáticos do mundo real
Aspectos de tempo relevantes => modelos dinâmicos
Especificação de sistemas de tempo real

Modelos estático e dinâmico
10/06/2010
03 - Modelos para especificação
66
3.6. O modelo dinâmico (cont.)

Modelo dinâmico


Especifica aspectos de mudança (movimentos) = f(t)
Deve considerar atributos dinâmicos










10/06/2010
Tratamento de interrupções
Mudança de contexto
Tempo de resposta
Taxa de transferência
Taxa de processamento de dados
Alocação de recursos
Manipulação de prioridades
Sincronização de tarefas
Comunicação entre tarefas
Etc.
03 - Modelos para especificação
67
3.6. O modelo dinâmico (cont.)

Modelo dinâmico (cont.)


Cada um dos atributos de desempenho deve
ser especificado
Para Pressman (1992), a análise de sistemas
de tempo real exige modelagem e simulação
que permitam avaliar se
Os elementos do sistema obterão a resposta
desejada
 Os recursos do sistema serão suficientes para
satisfazer os requisitos computacionais
 Os algoritmos de processamento serão executados
com velocidade suficiente

10/06/2010
03 - Modelos para especificação
68
3.6. O modelo dinâmico (cont.)

Modelos como DFD, MER e diagramas de
classes de objetos devem ser
complementados com


Modelos que consigam representar a
alteração dos estados de uma função, dado
ou objeto = f(t)
Modelos de comportamento
Máquinas de estado
 Traço de eventos

10/06/2010
03 - Modelos para especificação
69
3.7. Dicionário de dados


Utilizado para possibilitar o entendimento de
modelos formais e semiformais
Constituição




Conjunto de entradas (componentes dos modelos) em
ordem alfabética
Decomposição de componentes, caso possível
Descrições formais ou informais
Recomendação

Utilizar ferramenta automatizada para a confecção do
DD


10/06/2010
Grande número de entradas
Produtos gerados
03 - Modelos para especificação
70
3.7. Dicionário de dados (cont.)

Notações utilizadas para a descrição de
entradas






= é composto de
+e
() opcional
{} iteração
[//] seleção (uma das opções acontece)
* comentário
10/06/2010
03 - Modelos para especificação
71
3.7. Dicionário de dados (cont.)

Exemplo: sistema de bibliotecas –
descrição do depósito de dados
Exemplares
exemplares = {exemplar}
exemplar = n_item + estado + nome_título
estado = [emprestado / disponível / reservado_p_disc]
cod_biblioteca = String[2]
n_exemplar = Integer
nome_título = String[60]
10/06/2010
03 - Modelos para especificação
72
4. Modelos de projeto

Modelo de projeto


Representa a especificação do projeto
Deve traduzir
Especificação do sistema (representada com
modelos do mundo real)
 Arquiteturas de dados e módulos


Atividade também chamada de projeto geral
do sistema
10/06/2010
03 - Modelos para especificação
73
4.1. Modelos para projeto geral

Durante o projeto geral, especificar




Decomposição do sistema em subsistemas
Relações entre subsistemas
Decomposição de subsistemas em módulos
Diferentes modelos



Da arquitetura do sistema
De controle do sistema
Da arquitetura de módulos
10/06/2010
03 - Modelos para especificação
74
4.1. Modelos para projeto geral (cont.)

Modelo da arquitetura de sistema

Deve descrever



O sistema como um conjunto de componentes (subsistemas)
que fornecem um conjunto de serviços específicos
A comunicação entre componentes
Modelos mais específicos podem ser utilizados


Compartilhamento de dados
Distribuição dos dados



Modelo de dados centralizado / distribuído
Interfaces entre subsistemas
Exemplo de modelo: cliente-servidor

10/06/2010
Distribuição de dados e processamento entre processadores
03 - Modelos para especificação
75
4.1. Modelos para projeto geral (cont.)
Exemplo:
Arquitetura com base de dados centralizada
Subsistema consulta
Subsistema
catalogação
Base de dados da
universidade
Subsistema
aquisição
Subsistema
empréstimo
10/06/2010
03 - Modelos para especificação
76
4.1. Modelos para projeto geral (cont.)

Modelo de controle do sistema


Especifica as relações de controle entre as
partes do sistema
Duas abordagens utilizadas pelos modelos

Centralizado




Baseado em eventos

10/06/2010
Um subsistema é responsável pelo controle
Pode iniciar e parar outros subsistemas
Pode passar o controle a outro subsistema, mas aguarda
o retorno
Cada subsistema pode responder a eventos externos,
oriundos
 De outros subsistemas
 Do ambiente externo
03 - Modelos para especificação
77
4.1. Modelos para projeto geral (cont.)
Exemplo:
Modelo de controle centralizado
Também pode ser usado para representar:
Sistema de
bibliotecas da
universidade
- arquitetura de módulos;
- controle de funções;
- controle de objetos.
(Operações em objetos =
= procedimentos ou funções)
Subsistema
catalogação
10/06/2010
Subsistema
empréstimo
Subsistema consulta
03 - Modelos para especificação
Subsistema
aquisição
78
4.1. Modelos para projeto geral (cont.)

Modelo de arquitetura de módulos


Deve especificar a decomposição de cada subsistema em
módulos
Dois modelos de decomposição

Orientado a objetos


Funcional


Subsistemas decompostos em um conjunto de objetos que se
comunicam
Subsistemas decompostos em módulos funcionais que
 Recebem dados de entrada
 Transformam em dados de saída
Convenções utilizadas


Retângulos: módulos
Setas com cauda




10/06/2010
Vazia: troca de dados entre módulos
Preenchida: passagem de (dados de) controle entre módulos
Losango negro: decisão
Arco com seta: chamada iterativa
03 - Modelos para especificação
79
4.2. Modelos para projeto detalhado

Aprimoramento da representação
estrutural



Especificação de estruturas de dados
detalhadas
Representações algorítmicas dos módulos
Modelos consagrados


Àrvores / tabelas de decisão
Português estruturado / logicamente
compacto
10/06/2010
03 - Modelos para especificação
80
4.2. Modelos para projeto detalhado (cont.)

Exemplo 1: português estruturado
Módulo: localiza-exemplar;
Recebe: exemplar-disponível;
Usa: BD-biblioteca;
Produz: nome-biblioteca
Procedimento
Início;
código = exemplar-disponível[1]
+ exemplar-disponível[2];
nome-biblioteca = obtém-nome-biblioteca(código);
exibe-biblioteca(nome-biblioteca);
Fim
10/06/2010
03 - Modelos para especificação
81
4.2. Modelos para projeto detalhado (cont.)

Exemplo 2: tabela de decisão – especificação do
módulo verifica-acervo
Entradas
Regras
C1 – recebe autor
C2 – recebe título
1 2 3 4
V V F F
V F V F
Ações
10/06/2010
A1 – chama verifica-título-e-autor
A2 – chama verifica-autor
A3 – chama verifica-título
03 - Modelos para especificação
X
X
X
82
5. Modelos para teste de programas

Visam representar os programas abstraindo
apenas o que for de interesse para a fase de
testes



Visualização dos módulos de forma a



Unitário
De integração
Facilitar a detecção de erros
Permitir o projeto de casos de teste que cubram
diferentes tipos de erros com tempo e esforço mínimos
Modelos úteis para a fase de testes – construídos


Especificação de requisitos
Projeto
10/06/2010
03 - Modelos para especificação
83
5. Modelos para teste de programas (cont.)

Outro modelo bastante utilizado

Modelo de programa


Projeto detalhado do módulo
Grafo de programa
Programa (módulo) representado por seu grafo
 Notação



10/06/2010
Nó: um ou + comandos seqüenciais (exceto decisão /
iteração)
Arco: transferência de controle (ramo ou ponto de
decisão)
03 - Modelos para especificação
84
5. Modelos para teste de programas (cont.)

Exemplo: verifica-disponibilidade (proj. det.)
Módulo: verifica-disponibilidade;
Recebe: informações-do-acervo;
Procedimento:
(1)
início
(1)
consulta-exemplares(informações-do-acervo, lista-deexemplares, n-exemplares, flag);
(2)
se flag = “não-disponível”
(3)
então Exibe-mensagem-2 (informações-do-acervo)
(4)
senão
(5)
enquanto n-exemplares <> 0
(6)
início
(6)
localiza-exemplar(lista-de-exemplares(nexemplares));
(6)
n-exemplares = n-exemplares – 1;
(7)
fim
(7)
fim
10/06/2010
03 - Modelos para especificação
85
5. Modelos para teste de programas (cont.)

Exemplo: verifica-disponibilidade – grafo de programa
1
A especificação de casos de teste através
dos grafos de programa permite garantir
que todos os caminhos de um módulo
sejam exercitados pelo menos uma vez.
2
3
4
5
Caminho: coleção de arcos que vai do
primeiro ao último nó do grafo.
O número de caminhos (Np) é o número
máximo de casos de teste que deve ser
criado para se exercitar todos os
caminhos ao menos uma vez.
Caminhos do grafo:
6
7
10/06/2010
(1, 2, 3, 7), (1, 2, 4, 7), (1, 2,
4, 5, 7) e (1, 2, 4, 5, 6, 5, 7)
Np = 4
03 - Modelos para especificação
86
6. Modelos de planejamento do projeto

Modelos de planos estratégicos da empresa


Modelos de planejamento estabelecem



Guias para escolha de quais projetos têm maior
prioridade na verificação da real necessidade de
software a ser desenvolvido
Tática para o desenvolvimento
Esquema contábil para o controle do esforço do
desenvolvimento
Plano de desenvolvimento

Deve ser



Elaborado antes do início do projeto
Usado para controlar seu andamento
Não é estático

10/06/2010
Deve ser modificado ante novas informações
03 - Modelos para especificação
87
6.1. Modelos de custo

Oferecem previsão (LONDEIX, 1987)



Custo monetário


Estimado = f(m.o. total determinada pelo modelo)
Em geral, utilizam modelos matemáticos para
estimar



Do esforço (custo de mão-de-obra) necessário para o
ciclo de vida de um sistema
Do tempo de desenvolvimento
Esforço = f(tamanho do software)
Tempo = f(esforço, dada uma produtividade média)
Típicos


Putnam (PUTNAM, 1978)
Boehm (BOEHM, 1981)
10/06/2010
03 - Modelos para especificação
88
6.1. Modelos de custo (cont.)

O modelo de Putnam

Utiliza a curva de Rayleigh para estudar a
distribuição de m.o. = f(t)
M(t) = 2 K a t e
-at2
K: esforço total em pessoas-ano (pa)
 a: aceleração
 t: tempo em anos

1
a = ------2 Td2

10/06/2010
Td: tempo de desenvolvimento
03 - Modelos para especificação
89
6.1. Modelos de custo (cont.)

O modelo de Putnam (cont.)
N
º
d
e
p
es
so
as
Moc
Mo -> Pico de mão-de-obra
Td -> Tempo de desenvolvimento
Mob
Moa
c
Tdc
10/06/2010
Tdb
Tda
03 - Modelos para especificação
a
b
tempo
90
6.1. Modelos de custo (cont.)

O modelo de Putnam (cont.)

A equipe de projeto

Deve iniciar com um número de pessoas que deve crescer
até o final do desenvolvimento



Ser reduzido até o final do ciclo de vida do projeto



Operação
Manutenção
Observações

Maior a equipe, maior a aceleração, menor o tempo de
desenvolvimento


Pico de mão-de-obra Mo
Tempo Td (~ 40% da mão-de-obra total)
Há um limite
Oferece outras equações


10/06/2010
Cálculo do esforço = f[tamanho do sistema (LOC)]
Cálculo do pico de mão-de-obra (Mo)
03 - Modelos para especificação
91
6.1. Modelos de custo (cont.)

O modelo de Boehm

Três níveis de detalhes

Modelo básico


Modelo intermediário


Estima esforço e tempo com base em vários fatores do
produto, equipamento, pessoas e projeto
Modelo detalhado


10/06/2010
Equações para estimativas grosseiras de esforço e tempo
no início do projeto
Possibilita maior grau de precisão nas estimativas
A partir da decomposição do produto e do processo
03 - Modelos para especificação
92
6.1. Modelos de custo (cont.)

O modelo de Boehm (cont.)

Equações variam com a complexidade do
produto a desenvolver
Dos mais simples
 Aos mais sofisticados (softwares embutidos em
aparelhos eletrodomésticos)

10/06/2010
03 - Modelos para especificação
93
6.1. Modelos de custo (cont.)

O modelo de Boehm (cont.)

Equações do modelo básico
Produto simples
E = 2.4S1.05 Td =
2.5E0.38
Produto moderado E = 3.0S1.12 Td =
2.5E0.35
Produto complexo E = 3.6S1.20 Td =
2.5E0.32
S: tamanho estimado [KLOC]
 E: esforço estimado [pessoas-mês (pm)]
 Td: tempo de desenvolvimento estimado [meses]

- Modelos para especificação
Ex.: sistema 03
simples,
com S = 15 KLOC
10/06/2010

94
6.1. Modelos de custo (cont.)

Em geral

Os modelos de custo são compostos por um
conjunto de equações matemáticas para a
determinação
Do esforço total E
 Do tempo necessário para o desenvolvimento do
sistema (Td)
 De outras informações úteis para o planejamento e
controle do projeto


Os valores calculados pelas equações dos
modelos devem ser corrigidos com fatores
que, de alguma forma, tenham influência no
esforço estimado para o sistema
10/06/2010
03 - Modelos para especificação
95
6.2. Modelos de programação de projetos

Estimados o esforço e a duração de um projeto, com os
recursos humanos disponíveis é possível estabelecer a
organização das atividades do projeto



Decompor o produto e o processo
Estimar o tempo de cada atividade do processo para cada
componente do produto
Indicar atividades



Recorrer



Paralelas
Seqüenciais
Ao banco de dados de projetos concluídos
À experiência da pessoa que está planejando o sistema
Modelos mais utilizados


10/06/2010
Rede de processos (PERT / CPM)
Diagrama de barras (gráfico de Gantt)
03 - Modelos para especificação
96
6.2. Modelos de programação de projetos (cont.)

PERT / CPM (WIEST; LEVY, 1997)

Base




Atividades
Duração
Dependências
Diagrama representa




Rede de tarefas do início ao fim do projeto
Sincronização de atividades
Dependências entre atividades
Caminho crítico



10/06/2010
Seqüência de atividades que determinam a duração do projeto
Estimativa de duração das atividades
Limites de tempo para as atividades
03 - Modelos para especificação
97
6.2. Modelos de programação de projetos (cont.)

PERT / CPM (cont.)

Questões típicas tratadas
Qual o tempo mais cedo para terminar o projeto?
 Quais as atividades que influenciam para que o
projeto termine na data marcada?
 Qual a interdependência entre as atividades?
 Quais as atividades críticas?

10/06/2010
03 - Modelos para especificação
98
6.2. Modelos de programação de projetos (cont.)

PERT / CPM (cont.)

Diagrama – elementos básicos
1
1
TMC
duração
TMT
(folga)
2
TMC
TMT
evento inicial
TMC
TMT
2
TMC
TMT
evento final
atividade
10/06/2010
03 - Modelos para especificação
99
6.2. Modelos de programação de projetos (cont.)

PERT / CPM (cont.)

Diagrama – elementos básicos (cont.)


Evento: algo que ocorre e dispara uma atividade
TMC / TMT: tempos mais cedo / mais tarde de início da
atividade sem afetar o projeto





Para cada atividade, estimar duração e calcular folga



Quantidade de tempo que uma atividade não crítica pode
superar a duração estimada sem afetar o tempo previsto para o
projeto
Folga = TMT final – TMC inicial – duração
Atividades simuladas podem ser usadas para indicar / coibir
atividades paralelas (não consomem tempo nem recursos)

10/06/2010
TMC = máx. (TMC inicial + duração) para atividades entrantes
TMT = mín. (TMT final – duração) para atividades terminais
TMC = 0 para evento inicial
TMC = TMT para evento terminal
Representação: setas pontilhadas
03 - Modelos para especificação
100
6.2. Modelos de programação de projetos (cont.)

PERT / CPM (cont.)

Conceito bastante utilizado

Caminho crítico







10/06/2010
Caminho de maior duração entre os eventos inicial e final do projeto
Folgas
 Do caminho crítico: sempre iguais
 De outros caminhos >= folgas das atividades críticas
Enfoque principal do controle administrativo
Define atividades onde colocar recursos adicionais
 Encurtando o caminho crítico
 Permitindo o término antecipado do projeto
Folgas do caminho crítico
 >0: excesso de recursos ou prazo acima do necessário
 =0: prazos e recursos adequados
 <0: falta de recursos ou prazo para a conclusão do projeto
Pode haver mais de um caminho crítico em um projeto
 Caminho crítico alternativo
Representação
 Setas mais espessas (“negrito”)
03 - Modelos para especificação
101
6.2. Modelos de programação de projetos (cont.)

Diagrama de barras (ou gráfico de Gantt)


Também bastante utilizado para expor o
relacionamento entre recursos e tarefas
Para cada atividade, o diagrama indica




Responsável
Data prevista de início
Data prevista de término
Pode ser usado para controlar / acompanhar um
projeto


10/06/2010
Registrando os tempos estimados e gastos em cada tarefa
Acrescentando outro tipo de barra para representar as datas
de início e término das atividades
03 - Modelos para especificação
102
7. Metodologias, métodos e ferramentas

Organização do processo de software





Metodologias


Disciplinas utilizadas para produzir diferentes modelos de um
sistema
Métodos


Atividade crítica
Vai do gerenciamento de pessoas
Ao gerenciamento de todos os produtos gerados durante o ciclo
de vida do sistema
Envolve a definição de métodos, ferramentas e suas
combinações dentro de metodologias
Linhas gerais que governam a execução de alguma atividade,
utilizando abordagens rigorosas, sistemáticas e disciplinadas
Ferramentas

Dão suporte à aplicação


10/06/2010
Métodos
Metodologias
03 - Modelos para especificação
103
7. Metodologias, métodos e ferramentas (cont.)

Metodologia de desenvolvimento de software


Detalha as atividades do ciclo de vida
Especifica um conjunto único e coerente






Princípios
Métodos
Linguagem de representação
Procedimentos
Documentação
Permite ao desenvolvedor implementar, sem
ambigüidades

10/06/2010
Especificações advindas das fases do ciclo de vida do
software
03 - Modelos para especificação
104
7. Metodologias, métodos e ferramentas (cont.)

Modelagem de um sistema


Forma barata de estudar aspectos essenciais de um sistema antes de
sua construção
Para cobrir diferentes fases do desenvolvimento, uma metodologia
deve utilizar métodos e ferramentas que permitam conduzir

A fase de análise de requisitos


Especificação resultante = modelo significativo dos requisitos (modelo do
mundo real)
A fase de projeto


Para produzir o modelo interno do sistema
Necessidades





Mecanismos para traduzir a representação do domínio da informação numa
representação do projeto
Notação para representar componentes funcionais e interfaces
Heurísticas para refinamento e divisão em partições
Diretrizes para a avaliação da qualidade do projeto
O planejamento do projeto


Para produzir o plano de projeto (alternativas para a solução do problema,
riscos, decisões tomadas e estimativas de tempo, custo e recursos)
Necessidades



10/06/2010
Registrar as atividades envolvidas no desenvolvimento e sua seqüência
Registrar resultados a produzir
Metodologias a usar em cada fase do ciclo de vida do sistema
03 - Modelos para especificação
105
7. Metodologias, métodos e ferramentas (cont.)

Escolha da metodologia mais adequada






Domínio de métodos e ferramentas



À construção de um produto de boa qualidade
Aos interesses da organização
Ao ambiente de desenvolvimento
Ao tipo de software a ser desenvolvido
Responsabilidade: Gerente ou administrador do desenvolvimento
Permitam construir um produto de boa qualidade
Responsabilidade: desenvolvedor
Métodos principais (análise de requisitos + projeto)



Métodos estruturados
Métodos orientados a objetos
Métodos formais
10/06/2010
03 - Modelos para especificação
106
7.1. Métodos estruturados

Metodologias podem variar quanto ao enfoque
dado às características do mundo real

Enfoque funcional


Mais antigo e popular
Diversas metodologias



Exemplos


10/06/2010
Primeiras: puramente intuitivas
Generalização do conceito de implementação para funções de
nível mais alto
Análise estruturada (GANE; SARSON, 1982) (DEMARCO, 1979)
Metodologias mais atuais
 + (modelagem de dados, extensões para sistemas de
tempo real, comportamento do sistema)
 Análise estruturada moderna (YOURDON, 1990)
 Análise essencial (MCMENAMIN; PALMER, 1984)
 Metodologia de Ward e Mellor (1985)
03 - Modelos para especificação
107
7.1. Métodos estruturados (cont.)

Metodologias podem variar quanto ao
enfoque dado às características do mundo
real (cont.)

Enfoque na assistência ao analista
Na identificação dos principais objetos de
informação e operações
 Na representação da estrutura de informação de
forma hierárquica




10/06/2010
Apresentam um conjunto de passos que levam de uma
estrutura hierárquica de dados a uma estrutura de
programa
Jackson System Development (JSD) (JACKSON, 1983)
Data Structured System Development (DSSD)
(WARNIER, 1981)
03 - Modelos para especificação
108
7.1. Métodos estruturados (cont.)

Principal ferramenta de análise e projeto
estruturados (com enfoque funcional)



Diagrama de fluxo de dados (DFD)
Construído na fase de análise
Pode ter o projeto derivado a partir dele

Diagrama da hierarquia de módulos [diagrama da
estrutura de software (DES)]
(PAGE-JONES, 1980)
10/06/2010
03 - Modelos para especificação
109
7.2. Métodos orientados a objetos


Abordagem mais atual
Principal característica

Utilização de um mesmo modelo em diferentes fases
do desenvolvimento

Análise: identificação e definição de classes de objetos



Projeto: identificação e definição de classes de objetos
adicionais

10/06/2010
Domínio do problema
Responsabilidades do sistema
Domínio da solução – classes de objetos que representam
 Interfaces
 Controle de tarefas
 Suporte do sistema
03 - Modelos para especificação
110
7.2. Métodos orientados a objetos (cont.)

Ao contrário dos métodos estruturados

Resulta em projetos que interligam
Objetos de dados
 Operações de processamento (serviços ou
métodos)


Modulariza não só o processamento
Informação
 Processamento


Objeto encapsula sob o mesmo nome
Dados
 Operações
 Outros objetos

10/06/2010
03 - Modelos para especificação
111
7.2. Métodos orientados a objetos (cont.)

Metodologias mais conhecidas




Rumbaugh (1991)
Coad e Yourdon (1990)
Booch (1986)
Fusion (1984)
10/06/2010
03 - Modelos para especificação
112
7.2. Métodos orientados a objetos (cont.)

Ferramenta mais conhecida para análise e
projeto orientados a objetos

Diagrama de classes de objetos

Retrata objetos relevantes do sistema, a partir de




Atributos
Operações feitas sobre os objetos de uma classe
Relacionamentos entre objetos
Comportamento do sistema
Cenários
 Máquinas de estados


Aspectos funcionais

10/06/2010
Diagrama de fluxo de dados
03 - Modelos para especificação
113
7.2. Métodos orientados a objetos (cont.)

Na fase de projeto

Classes são atribuídas a componentes físicos de
programas (módulos)


Concepção de implementação da arquitetura de programa
Projeto detalhado

Alcançado detalhando-se




Interfaces
Estruturas de dados
Algoritmos
Fase de teste

Pode ser auxiliada pela construção de cenários


10/06/2010
Descrevem diferentes situações de comportamento
esperadas para o sistema
Tornam possível verificar quanto o software está de acordo
com os requisitos
03 - Modelos para especificação
114
7.3. Métodos formais

Compreendem um conjunto de atividades que
permitem

Desenvolvimento e verificação de sistemas de
software


Proporcionam a possibilidade de avaliar




A partir de notações matemáticas rigorosas
Consistência
Inteireza
Exatidão do modelo
Ambigüidades, inconsistências e omissões
descobertas mais facilmente


Não por revisão
Mediante a aplicação de análise matemática
10/06/2010
03 - Modelos para especificação
115
7.3. Métodos formais (cont.)

Na verificação de programas, facilitam



Descoberta
Correção de erros
Metodologias mais conhecidas



Vienna (VDM) (JONES, 1990)
Larch (GUTTAG; HORNING; WING, 1985)
Processos seqüenciais comunicantes (CSP)
(MOORE, 1990)
10/06/2010
03 - Modelos para especificação
116
7.3. Métodos formais (cont.)

Baseados nos conceitos (isolados ou
combinados)




Álgebra
Lógica
Teoria dos conjuntos e relações
Adoção

Maior possibilidade de uso se desenvolvedores
tiverem ferramentas automatizadas para
Especificação
 Verificação

10/06/2010
03 - Modelos para especificação
117
7.3. Métodos formais (cont.)

Especificação


Via linguagem formal
Elementos primários

Semântica


Sintaxe


Define a notação para a representação da especificação
Conjunto de relações


Auxilia na definição de um universo de objetos que será usado
para descrever o sistema
Definem as regras que determinam quais objetos satisfazem
adequadamente a especificação
Exemplos de linguagens formais (GEHANI;
MCGETTRICK, 1986)


10/06/2010
VDL
Z
03 - Modelos para especificação
118
7.3. Métodos formais (cont.)

Verificação

Ferramentas
Permitem que o desenvolvedor construa um
modelo de estado finito do sistema
 Verificam se as propriedades definidas via
linguagem formal de especificação se mantêm
para cada estado ou mudança de estado
 De manipulação algébrica trabalham diretamente
com a sintaxe e a semântica da linguagem de
especificação. Duas categorias



10/06/2010
Ferramentas de verificação de prova (Larch)
Manipuladores lógicos: LCF (GEHANI; MCGETTRICK,
1986)
03 - Modelos para especificação
119
8. Comentários finais

Modelos para especificação


Utilidade incontestável para todas as fases
Facilitam a comunicação entre os diferentes atores
que participam da construção do produto







Clientes
Usuários
Desenvolvedores
Especialistas
Etc.
Possibilitam o registro de informações de maneira
formal ou semiformal
Apoiados por ferramentas automatizadas têm suas
qualidades potencializadas
10/06/2010
03 - Modelos para especificação
120
9. Exercícios
1) Escreva as especificações operacional e descritiva da trajetória em pista
elíptica de um veículo de Fórmula Indy.
2) Considere um sistema de materiais de uma pequena indústria e os
subsistemas “cadastro de materiais” e “retirada de materiais”. Faça o
modelo de dados e o modelo de objetos dos subsistemas.
3) Desenhe um diagrama entidade-relacionamento que represente a matrícula
de um aluno em n disciplinas de um curso.
4) Usando uma máquina de estados, descreva um sistema de iluminação que
consiste de uma lâmpada e dois interruptores ligados em paralelo. Se a
lâmpada estiver apagada, apertando-se qualquer um dos interruptores, o
estado da lâmpada passará para acesa e vice-versa.
5) Descreva os módulos de trabalho envolvidos na construção de uma
residência e mostre como eles estão organizados seqüencial e
paralelamente.
6) Diferentes pessoas que interagem com aplicações de software podem
requerer diferentes abstrações. Comente brevemente que tipos de
abstrações são úteis para o usuário final, o projetista e o pessoal de
manutenção.
7) Desenvolva uma pesquisa sobre a linguagem Z.
10/06/2010
03 - Modelos para especificação
121