Especificação Operacional.
Para muitos sistemas, a incerteza acerca dos requisitos leva a mudanças e problemas
mais tarde no desenvolvimento de software. Zave (1984) sugere um modelo de processo
que permite aos analistas e clientes examinar os requisitos e as suas implicações
antecipadas no processo de desenvolvimento, onde podem discutir e resolver alguma da
incerteza. No modelo de especificação operacional, os requisitos do sistema são
avaliados ou executados de uma forma que demonstra o comportamento do sistema.
Isto é, uma vez que os requisitos sejam especificados, eles podem ser desenvolvidos
usando um pacote de software, de tal forma que as suas complicações podem ser
estimadas antes do desenho começar. Por exemplo, se a especificação requer que o
sistema controle 24 utilizadores, uma forma executável da especificação pode ajudar
analistas a determinar se esse número de utilizadores coloca demasiado peso na
performance do sistema.
Este tipo de processo é muito diferente dos modelos tradicionais tal como o modelo em
cascata. O modelo em cascata separa a funcionalidade do sistema do desenho (i.e., o que
é para o sistema fazer, separado, de como o sistema o faz), pretendendo manter as
necessidades do cliente separadas da implementação. Contudo, uma especificação
operacional permite que a funcionalidade e o desenho se fundam. Note que a
especificação operacional é semelhante à prototipagem; o processo permite ao utilizador
e analista examinarem requisitos antecipadamente.
Nota: pacote de aplicação (pacote de software) - série de programas ou módulos
dirigidos para um aplicação genérica, podendo ser modelados (possivelmente com
determinadas alterações) para as necessidades de um aspecto específico dessa aplicação.
Executa e examina
ESPECIFICAÇÃO
OPERACIONAL
(orientada para o
problema)
REQUISITOS DO
SISTEMA
(por vezes informais
ou incompletos)
ESPECIFICAÇÃO
TRANSFORMADA
(orientada
à
implementação)
TESTE
SISTEMA
ENTREGUE
Figura 1 - Modelo de especificação operacional
As técnicas utilizadas na tarefa de análise poderão incluir a realização de reuniões com
os interessados, a elaboração de questionários, a observação das actividades e do
funcionamento do dia-a-dia, a recolha e análise de documentação diversa, a elaboração
-1-
de pequenos protótipos de sistemas que permitam validar mais facilmente a percepção
obtida.
O objectivo geral é expressar sem ambiguidades o que o sistema deve fazer e não como
fazer o sistema.
A especificação operacional consiste em diagramas (representação gráfica de
determinado esquema – especificação de um modelo usando uma determinada
linguagem a qual pode ser, formal ou informal (por exemplo linguagem natural), textual
ou gráfica) que dividem o comportamento num conjunto de acontecimentos
protagonistas e respostas do sistema a esses acontecimentos. Os diagramas produzidos
pela especificação operacional são modelos de análise pura.
Os diagramas tratam da fase de análise, comportamento ao nível do sistema somente e
não especificam dados, desenho ou informação de implementação.
O desenho inclui, por exemplo, arquitecturas de computadores, tecnologias de bases de
dados, sistemas de execução de agentes, infra-estruturas de objectos e/ou componentes,
etc. É também nesta tarefa que deve ficar completamente definido o ambiente e as
linguagens a utilizar no desenvolvimento.
A tarefa de implementação inclui todas as actividades de desenvolvimento do sistema
propriamente dito, ou seja, que estão relacionadas com a concretização do modelo de
desenho. As actividades desta tarefa deveriam ser apoiadas por ferramentas, que a partir
da especificação do modelo de desenho produzido seriam capazes de produzir
automaticamente diversos componentes do sistema.
Teste – O objectivo é avaliar a adequada correcção e funcionamento de todos os
componentes do sistema, principalmente os executáveis. A verificação consiste na
confirmação que a codificação/implementação do sistema está conforme (correcta) a
especificação técnica produzida na fase de desenho, que por sua vez resulta dos
requisitos especificados na análise.
Exemplos:
Os diagramas de fluxo de dados (Data Flow Diagrams - DFDs) descrevem os
sistemas como colecções de dados que são manipulados por funções. Os dados podem
ser organizados de várias formas: eles podem ser armazenados em repositórios de
dados, podem fluir em fluxos de dados e podem ser transferidos para ou do meio
externo.
Os elementos básicos do DFD são:
·
·
·
Bolhas (bubbles), usadas para representar funções.
Setas (arrows), usadas para representar o fluxo de dados. Setas que vão para
bolhas representam valores de input que pertencem ao domínio da função
representada pela bolha. Setas que saem representam os resultados da função,
i.e., valores que pertencem ao alcance da função.
Caixas abertas (open boxes), usadas para representar bases de dados. Setas
entrando (saindo) nas caixas abertas representam dados que são inseridos na
(extraídos da) base de dados.
-2-
·
Caixa de I/O ( I/O boxes ), usadas para representar aquisição de dados e
produção durante a interacção do homem com o computador.
DFD descrevendo um sistema de informação de uma biblioteca simplificado.
Pedido do livro
pelo utilizador
Livro
Prateleiras
Título e autor do
livro pedido; nome
do utilizador
Autor
Recepção do
Lista de autores
Livro
Obter um
livro
livro
Título
Título do livro;
nome do utilizador
Lista de títulos
Lista de livros emprestados
Título
Procura
por
tópicos
Lista de tópicos
Mostrar
Lista de títulos
referentes
ao
tópico
Tópico
a
lista de títulos
Tópico
Pedido de tópico
pelo utilizador
Figura 2 – DFD de uma biblioteca.
A figura descreve um sistema de informação simplificado para uma biblioteca pública.
O DFD descreve objectos físicos, tais como livros e prateleiras, juntamente com
-3-
armazenamento de dados que provavelmente, mas não necessariamente, são concebidos
como ficheiros de computador. Obter um livro da prateleira pode ser feito quer
automaticamente - por um robot - quer manualmente. Em ambos os casos, a acção de
obter um livro é representada por uma função representada por uma bolha.
A figura também descreve que para obter um livro é necessário:
· um pedido, explícito, do utilizador consistindo do título, do nome do autor do
livro e do nome do utilizador;
· aceder às prateleiras que contêm os livros;
· uma lista dos autores;
· uma lista de títulos.
Isto fornece a informação necessária para encontrar o livro.
Uma máquina de estado finito (Finite State Machine - FSM) consiste em:
·
·
·
um conjunto finito de estados, Q;
um conjunto finito de inputs, I;
uma função de transição f: Q*I -> Q. f pode ser uma função parcial, i.e., pode
ser indefinida para alguns valores dos seus domínios.
Graficamente, uma FSM é mostrada por um grafo cujos nós representam estados; um
arco rotulado por i vai de q1 para q2 se e somente se f(q1,i)=q2.
FMSs são aconselháveis para descrever sistemas que podem estar num conjunto finito
de estados e que podem ir de um estado para outro como consequência de algum
acontecimento, modelado por um símbolo de input. Por exemplo, uma lâmpada pode
estar quer ligada quer desligada e pode ir de ligada para desligada como consequência
de uma acção externa consistindo em pressionar o interruptor. Pressionar o interruptor
outra vez causa a transição oposta.
Figura 3 - A descrição de uma máquina de estado finito de um interruptor de lâmpada.
Considere o controlo de uma (pequena parte de uma) planta química. Níveis de
temperatura e pressão têm de ser monitorizados por razões de segurança. Sensores são
instalados para gerar sinais apropriados quando qualquer destes níveis exceder alguns
dos valores predefinidos. Uma política trivial para manipular a planta é a seguinte:
quando qualquer um dos sinais é aumentado pelo sensor correspondente, o sistema de
-4-
controlo fecha a planta e aumenta o sinal de alarme; o sistema é reiniciado manualmente
quando a causa da falha for corrigida. Como descrito na figura:
Figura 4 – FSM descrevendo o controlo de uma planta química.
Esta simples política é obviamente inadequada. Uma melhor forma de orientar a planta
é como se segue. Quando um dos dois sinais é aumentado, uma acção de
restabelecimento é automaticamente invocada (existe uma “acção temperatura” e uma
“acção pressão”). Se, depois de um pouco de tempo, a acção de recuperação é bem
sucedida, o sistema é automaticamente desligado para o estado “normal” e uma
mensagem “tudo ok” é emitida para o meio externo. Caso contrário, o sinal de alarme
tem de ser aumentado e a planta tem de ser desligada. O sistema tem também de ser
desligado se está a tentar recuperar de um tipo de anomalia – temperatura e pressão – e
o outro sinal é aumentado. É assumido que os dois sinais não podem ocorrer
simultaneamente. Esta nova política é descrita na figura.
Figura 5 – FSM descrevendo o controlo de uma planta química.
-5-
Vantagens:
·
·
·
O sistema resultante é mais fácil de usar.
Necessidades do utilizador são mais facilmente ajustadas (o envolvimento
contínuo do utilizador resulta em sistemas que melhor satisfazem as
necessidades do utilizador).
Problemas são detectados mais cedo.
Desvantagens:
·
·
·
O sistema resultante tem mais aspectos (uma vez que o intervalo de tempo entre
versões sucessivas é menor, utilizadores podem pensar que é mais fácil conceber
novos aspectos e podem especificar requisitos adicionais).
A performance do sistema resultante é pior (performance tende a ser pior porque
a atenção é focada na funcionalidade e as medidas de performance ou não são
tomadas em conta ou a certa altura tornam-se difíceis de conceber).
O sistema resultante é mais difícil de manter (se estiver preocupado com o pouco
tempo para desenvolvimento, certas actividades necessárias vão receber menos
atenção. Há a possibilidade da documentação ser sacrificada pela velocidade. Por
causa das adições resultantes de frequentemente voltar a trabalhar os passos a
qualidade do desenho pode deteriorar).
Trabalho realizado por:
Grupo 3
Nº 11311
-6-
Ana Sofia Atanázio
Download

Grupo 3