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