1
UNIVERSIDADE ESTADUAL PAULISTA
INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS
DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA
MODELOS PARA ESPECIFICAÇÃO DE
MODELOS PARA ESPECIFICAÇÃO DE
SISTEMAS DE SOFTWARE
SISTEMAS DE SOFTWARE
CCE 556
CCE 556-- Engenharia de SoftwareEngenharia de Software
Modelo de Sistema de
Modelo de Sistema de
Software
Software
É uma
representação
em miniatura de
uma realidade completa, que reflete
certas características específicas do
sistema que está sendo
representado.
Útil => se
consegue retratar as características
Diferentes características são examinadas pelo uso de vários modelos do
3
Modelos
Modelos
]
Objetivos:
\
auxiliar na organização de informações;
\
descrever
o que o cliente deseja
;
\
estabelecer uma
base para a criação
de
um
projeto de software
;
\
definir um
conjunto de requisitos
que
pode ser validado quando o software
for construído;
Especificação
Especificação
Dados do domínio
do problema
Abstração Decomposição Propósito:criar uma ponte de comunicação entre as pessoas envolvidas no desenvolvimen to do sistema Especificação Especificação de requisitos Especificaçãode projeto geral de projeto detalhadoEspecificação Cliente e desenvolvedor Projetista e
5
Tipos de Especificação
Tipos de Especificação
]
Especificação Descritiva: declara as
propriedades desejadas do sistema de
uma forma puramente descritiva
A trajetória T de um satélite é um caminho composto de pontos que descrevem seu movimento, de forma que a distância entre cada ponto de T e um ponto fixo P tem um valor constante.
X2 + Y2 + C2 = 0 - mostra a trajetória como o conjunto de pontos T,
cujas coordenadas x e y tem as propriedades desejada e a constante c depende da distância do ponto P aos pontos de T. (representa de
Tipos de Especificação
Tipos de Especificação
]
Especificação Operacional: representa o
comportamento desejado do sistema utilizando
modelos abstratos que, de alguma forma,
simulem seu comportamento. Auxilia na direta
verificação dos requisitos.
P
T Pode-se examinar
visualmente se a figura satisfaz os
requisitos que se tem em mente.
7
Estágios da especificação
Estágios da especificação
]
Declaração de objetivos e restrições do
projeto.
]
Especificação de requisitos (ou
especificação de análise)
Grau de formalidade da
Grau de formalidade da
especificação
especificação
]
Especificações informais
- descritas em
linguagem natural, fazendo uso de figuras,
tabelas e outras notações.
]
Especificação semiformal
notação padronizada
sem uma semântica precisa.
]
Especificação formal
- uso de rigor,
notação sintática e semântica bem
definidas para descrever o problema.
9
Modelos e princípios da
análise de requisitos
Modelos
Modelos são úteis para se alcançar os princípios da
abstração e decomposição, além de permitir uma
formalização relativa(semiformal) ou completa(formal)
da especificação.
Modelos e princípios da
análise de requisitos
]
Abstração
. Modelos devem representar
uma solução para o problema, sem se
deter em detalhes que cercam a
realidade. Em geral, a construção de
modelos segue o conceito descendente
(
top-down
) - modelos com alto nível de
abstração para modelos de baixo nível de
abstração.
11
Modelos e princípios da
análise de requisitos
]
Decomposição
. Dividir para conquistar. Os
modelos
\
Permitem que problemas complexos sejam
divididos em problemas menores.
\
Permitem a representação do relacionamento
entre partes do problema. Geralmente de
forma hierárquica (hierarquias de programas,
hierarquias de classes de objetos)
Modelos e princípios da
análise de requisitos
]
Formalidade
.
\
Modelos formais e semiformais permitem
instituir controles.
\
Possibilitam a comunicação de idéias entre
pessoas de forma mais eficiente.
\
Representação precisa de instruções a ser
13
Modelagem de sistemas
]
Modelagem de sistema ajuda o analista a
entender a funcionalidade do sistema e modelos
são usados para auxiliar a comunicação com os
clientes.
]
Modelos diferentes apresentam o sistema de
perspectivas diferentes
\ Perspectiva externa mostra o contexto ou o ambiente do sistema.
\ Perspectiva comportamental mostra o comportamento do sistema.
\ Perspectiva estrutural mostra a arquitetura do sistema ou estrutura de dados.
Métodos estruturados
]
Métodos estruturados fornecem formulações para
a modelagem detalhada de sistemas.
]
Métodos definem um conjunto de modelos, um
processo para derivar esses modelos e regras e
diretrizes que se aplicam aos modelos.
]
As ferramentas CASE estão disponíveis para dar
15
Deficiências dos métodos
de análise estruturada
]
Não modelam requisitos não funcionais
]
Não incluem informações sobre se um método é
apropriado para um determinado problema.
]
Freqüentemente produzem muita documentação.
]
Os modelos produzidos são muito detalhados e
Tipos de modelos
] Modelos de processamento de dados mostram como os dados são processados em diferentes
estágios no sistema.
] Modelos de composição mostram como as entidades são compostas de outras entidades
] Modelos de arquitetura mostram os subsistemas principais.
] Modelos de classificação mostram como as entidades tem características principais.
] Modelos de estímulo-resposta mostram como o sistema reage a eventos externos e internos.
17
Modelos de Contexto
(Perspectiva externa)
]
]
Modelos de contexto são usados para
Modelos de contexto
ilustrar os limites de um sistema.
]
Preocupações sociais e organizacionais
podem afetar a decisão de onde será
posicionado os limites do sistema.
]
Modelos de arquitetura descrevem o
sistema e seu relacionamento com outros
sistemas.
Contexto do sistema de
ATM
Auto-teller system Security system Maintenance system Account database Usage database Branch accounting system Branch counter system Sistema de contabilidade Sistema de Balcão Sistema de proteção Sistema de caixa automático Banco de dados de contas Banco de dados de operação Sistema de manutenção19
Modelos
(Perspectiva interna)
]
Modelos funcionais
\
Modelos de fluxo de dados
]
Modelos de comportamento
\
Modelos de máquinas de estado
]
Modelos de dados
]
Modelos de Objeto
\
Modelos de herança
\
Agregação de objetos
Modelos
Modelos
-
-
um sistema exemplo
um sistema exemplo
Subsistema de Consulta a bibliotecas
O sistema recebe como entrada um título ou um autor. Quando título e autor são fornecidos pelo usuário, o sistema deve
consultar o acervo da universidade e verificar se o par título-autor pertence ao acervo. Em caso afirmativo, o sistema deve verificar se há disponibilidade de exemplares correspondentes ao par título-autor e, nesse caso encontrar a localização desses exemplares. Em caso negativo, o sistema deve informar ao usuário que o par não pertence ao acervo. Quando apenas o título é fornecido, o sistema deve listar todas as ocorrências do título no acervo. Quando apenas o autor é fornecido, o sistema deve informar ao usuário todos os títulos daquele autor
perten-21
Modelos do mundo real
Modelos do mundo real
Verificar acervo verificar disponibilidade localizar exemplar Bibliotecas exemplares títulos
autores Aguardando consulta. Preparando resposta Percepção de dados Percepção funcional Percepção comportamental Sistema
As três percepções do mundo real num sistema de consulta a bibliotecas.
Modelos do mundo real
Modelo funcional do sistema
]
Representa a percepção do que o sistema
faz
.
\
No exemplo da biblioteca, tem-se as
seguintes funções: verifica acervo, verifica
disponibilidade e localiza exemplar.
23
Modelos do mundo real
Modelo de dados
]
Representa a percepção dos dados que o
sistema
mantém
.
\
Para o subsistema de consulta a bibliotecas,
os dados mantidos pelo sistema são:
Modelos do mundo real
Modelo comportamental
]
Representa a percepção de como o sistema se
comporta em resposta a certos eventos
externos.
]
Focaliza os dados (objetos do sistema) ou as
funções.
\ Para o subsistema de consulta a bibliotecas,
identifica-se os seguintes estados para as funções do sistema: aguardando consulta do usuário e
25
O Modelo de Função
O Modelo de Função
Interface Sistema Interface
ENTRADA SAÍDA
O Modelo de Função
O Modelo de Função
Função1 Função2 Função4 Função3 conexão conexão conexão conexão SAÍDA ENTRADA27
O Modelo de Função
O modelo de função está completo quando
satisfaz as seguintes condições:
] Descreve todo o sistema -mostra as transformações de todas as entradas em saídas;
] decompõe convenientemente o sistema de modo que todos os componentes não particionados sejam
elementares;
] cada componente do sistema está ligado corretamente ao resto da rede, e 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.
Modelo de Função DFD
-Diagrama de Fluxo de Dados
]
Técnica gráfica que descreve o
fluxo de
fluxo de
informação
informação
e as
transformações
transformações
que
são aplicadas à medida que os dados se
movimentam da entrada para a saída
Um sistema baseado em computador é
representado como uma transformação de
informação
29
Diagrama de Fluxo de Dados
(DFD)
Notação
Um produtor ou consumidor de informações que reside fora dos limites do sistema a
ser modelado
Entidade externa
Um transformador de informação (função) que reside dentro dos limites do sistema a ser modelado
processo
Usada para representar conexão, chamada de fluxo de dados
Um repositório de dados pode ser usado por um ou mais processos. Pode ser tão simples quanto um buffer ou tão sofisticado quanto um banco de dados relacional
Depósito de dados
Diretrizes Básicas
1) O DFD de nível 0 deve descrever o software como
uma única bolha
2) A Entrada e a saída iniciais devem ser
cuidadosamente anotadas
3) O refinamento deve iniciar isolando-se possíveis
processos, itens de dados e depósitos de dados a serem representados no próximo nível
4) Todas as setas e bolhas devem ser rotuladas
com nomes significativos
5) A continuidade do fluxo de informação deve ser
mantida entre níveis de refinamento
31
DFD do subsistema de consulta a
bibliotecas de uma universidade
Verifica acervo Verifica disponibi-lidade Localiza exemplar usuário exemplares bibliotecas títulos e autores Lista de título-autor mensagem1 Título, autor Mensagem 2 Nome da biblioteca Exemplar disponível Informações de biblioteca disponibilidade Informações do acervo
O modelo de Dados
] Quais são os dados a serem armazenados pelo sistema?
] Qual é a melhor organização desses dados?
] Quais são os relacionamentos entre grupos de dados?
33
Componentes do Modelo de
Dados
= • entidade externa: algo que produz ou consome informação; • coisa: relatório ou edição;
• ocorrência ou evento :
chamada telefônica, alarme; • papel: vendedor;
• unidade organizacional: depto de contas;
• lugar: armazém; • estrutura: arquivo;
Entidade (ou objeto)
Componentes do Modelo de
Dados (cont.)
Atributos = • podem ser usados para:
(1) nomear uma instância de um objeto; (2) descrever uma instância;
(3) fazer referência a outra instância em outra tabela;
• um ou mais atributos precisam ser
definidos como um identificador; definem as
propriedades de uma entidade
Relacionamentos = • são conexões relevantes entre os
objetos;
35
Componentes do Modelo de
Dados (Exemplo)
Mundo Real DENTRO do SISTEMA
Entidade Propriedade Relacionamento Cliente nome endereço cic Alugar carro: marca cor no. chassis carro Cliente Abstração
Componentes do Modelo de
Dados(cont.)
]
] Entidades, atributos e relacionamentosEntidades, atributos e relacionamentos => base para o entendimento do domínio de informação do problema;
]
] CARDINALIDADECARDINALIDADE: é a especificação do número de
ocorrências de um objeto que pode ser
relacionado com o número de ocorrências de outro objeto;
\ um-para-um (1:1) => ”um marido pode ter somente
uma esposa e vice-versa”;
\ um-para-muitos (1:N) => ”uma mãe pode ter muitos
filhos, mas um filho tem apenas uma mãe”;
\ muitos-para-muitos (M:N) => ”um tio pode ter vários
37
Componentes do Modelo de
Dados (Diagrama E-R)
1 m
aluga
Cliente Carro
nome endereço cic marca cor no.chassis
Relacionamento, cardinalidade e Participação entre entre as entidades Cliente e Carro
Diagrama E-R do subsitema
de consulta a bibliotecas
no. item
Biblioteca 1 Conter m Exemplar
Acervo
Possuir
n
1 nome local código
estado título editora Data public. autor edição
39
O modelo comportamental
]
Representa os estados e os eventos que
alteram esses estados
]
Eventos: representados através de condições e
ações para mudanças de estado.
]
Quando a condição é verdadeira, a ação
correspondente é ativada.
]
Quando a ação é completada, o componente
passa ao estado determinado pelo evento
O modelo comportamental
Máquinas de estados finitos-MEF
MEF: Ferramenta gráfica para especificações semiformais que utiliza um grafo para representar o comportamento do sistema.
Representa os estados;
Representa os eventos que causam a mudança de estado. As setas podem ser rotuladas com as
condições para a ocorrência do evento, ou ações que devem ser realizadas quando há mudança de estado.
41
O modelo comportamental
exemplo da biblioteca
MEF para os títulos de uma biblioteca (exemplar)
Reservado para disciplina Cancelar reserva
(final do semestre)
Registrar reserva
área disciplina = área exemplar) Registrar devolução Registrar retirada
O modelo comportamental
Traço de eventos
• Ferramenta utilizada para representar cenários em
sistemas orientados a objetos.
• Cenários descrevem como o sistema trabalhará quando
estiver em ação.
• Mostra o comportamento do sistema, representando os
objetos das classes envolvidas em um serviço do sistema e suas interfaces
Notação:
• Traço vertical: representa as classes envolvidas no serviço
43
O modelo comportamental
Traço de eventos - exemplo
Traço de eventos para o cenário localização do exemplar:
Nome
biblioteca Título e autor
Acervo Exemplar Biblioteca
Verifica estado
Procura nome Nome biblioteca Nome biblioteca
O modelo de objetos
]
É utilizado para representar tanto os
dados
como o seu
comportamento
.
]
Permite também a representação da
composição
e a
classificação
de
componentes(
objetos
) do sistema.
]
Classe
de objetos é uma abstração sobre
um conjunto de objetos que possuem
45
Modelo de Objetos
]
Descreve o sistema em termos de
classes
de objetos
]
Vários modelos podem ser produzidos:
\
Modelos de herança
\
Modelos de agregação
\
Modelos de interação
O modelo de objetos
]
O modelo representa os
atributos
das
classes de objetos, seus
serviços
, os
relacionamentos
entre as classes e a
utilização de serviços de um objeto por
outro.
47
O modelo de objetos
notação
Nome atributos operaçõesRepresenta classes de objetos
Classificação(generalização/especialização)
Associação
O modelo de objetos
Exemplos de generalização e
agregação (composição)
pessoa empregado aluno pessoacabeça tronco membro *
49
O modelo de objetos
Exemplos de associação
Associação
: permite que um objeto de uma
classe utilize um serviço de outra classe,
enviando mensagens a objetos da classe
.faculdade pessoa
O modelo de objetos
Diagrama de classes de objetos para o
sistema de bibliotecas
Acervo Título Data public Editora Assunto Autor Verifica titulo Verifica autor Verifica dispon Exemplar No. Item Estado Verifica estado Localiza item 1 * * Biblioteca Nome Local Unidade Obtém nome Obtém local 151
Modelo de herança
]
Organiza as classes de objetos do domínio
em uma hierarquia.
]
Classes no topo da hierarquia refletem as
características comuns de todas as classes
]
Classes de objetos herdam seus atributos e
serviços de uma ou mais super-classes e
são consideradas classes especializadas.
Catalogue number Acquisition date Cost Type Status Number of copies Library item Acquire () Catalogue () Dispose () Issue () Return () Author Edition Publication date ISBN Book Year Issue Magazine Director Date of release Distributor Film Version Platform Computer program Title Publisher Published item Title Medium Recorded item Hierarquia de classes para um sistema de biblioteca
53
Name Address Phone
Registration # Libr ary user
Register () De-r egister () Affiliation Reader Items on loan Max. loans Borrower Department Department phone Staff Major subject Home address Student Hierarquia de classe de usuário
Herança múltipla
]
Um sistema que suporta herança múltipla permite
que classes de objetos herdem características de
várias super-classes
]
Pode levar a conflitos semânticos onde
atributos/serviços com o mesmo nome em
diferentes super-classes tem semânticas
diferentes.
]
Faz com que a reorganização da hierarquia de
55
Herança múltipla
# Tapes Talk in g bo ok Au th or Ed itio n Pu blicatio n d ate ISBN Bo ok Sp eaker Du ratio n Record in g d ate Vo ice record in gAgregação de objetos
]
Modelo de agregação mostra como classes que
são coleções são compostas de outras classes.
]
Semelhante ao relacionamento
parte-de
em
57
Agregação de objetos
Videotape Tape ids. Lectur e notes Text OH P slides Slides Assignment Credits Solutions Text Diagrams Exercises #Problems Description Course title Number Year Instructor Study packDicionário de Dados (DD)
] Proposto como gramática quase formal para
descrever de forma mais detalhada qualquer modelo do sistema.
] É constituído por uma lista em ordem alfabética
59
Dicionário de Dados
Notação para Descrição de Conteúdo
CONSTRUÇÃO DE DADOS NOTAÇÃO SIGNIFICADO = é composto de Sequência + e Seleção [ | ] ou ... ou Repetição { }n n repetições de ( ) dados opcionais * * delimita comentários
Exemplo:
depósito de dados
exemplares
Dicionário de Dados
exemplares = {exemplar}
exemplar = n_item + estado + nome_título n_item = cod_biblioteca + n_exemplar
estado =
[emprestado/disponível/reservado_para_disciplina] cod_biblioteca = String[2]
n_exemplar = Integer
61
Dicionário de Dados
Descrição de Conteúdo
]
é ampliada
(1)
até que todos os itens
de dados compostos tenham sido
representados como itens elementares
ou
(2)
até que todos os itens
compostos sejam representados em
termos conhecidos e inequívocos
Pontos-chave
] Um modelo é uma visão abstrata de um sistema. Modelos de sistema complementares podem ser desenvolvidos, os quais apresentam informações diferentes sobre o sistema.
] Os modelos de contexto mostram como o sistema está posicionado em um ambiente com outros sistemas.
Existem várias abordagens para representar um modelo de contexto.
] Os DFDs são utilizados para modelar o processamento de dados de um sistema, e modelam um conjunto de
63
Pontos-chave
] Os modelos de máquinas de estado são utilizados para modelar o comportamento de um sistema em resposta a eventos internos ou externos.
] Os modelos semânticos de dados descrevem a estrutura lógica dos dados que são importados e exportados pelo sistema.
] Os modelos de objetos descrevem as entidades do sistema lógico e sua classificação e agregação. Eles combinam um modelo de dados com um modelo de processamento.
] Ferramentas CASE dão apoio ao desenvolvimento de
modelos de sistema, fornecendo ferramentas de edição, verificação, relatório e documentação.