• Nenhum resultado encontrado

PCS LABORATÓRIO DE ENGENHARIA DE SOFTWARE E METODOLOGIA DE PROGRAMAÇÃO ESTUDO DE CASO: "PROBLEMA DA ACADEMIA DE GINÁSTICA"

N/A
N/A
Protected

Academic year: 2021

Share "PCS LABORATÓRIO DE ENGENHARIA DE SOFTWARE E METODOLOGIA DE PROGRAMAÇÃO ESTUDO DE CASO: "PROBLEMA DA ACADEMIA DE GINÁSTICA""

Copied!
9
0
0

Texto

(1)

ESTUDO DE CASO: "PROBLEMA DA ACADEMIA DE GINÁSTICA" Maria Alice Grigas Varella Ferreira

1995/1996 1. ENUNCIADO

Uma academia de ginástica, preparando-se para o "boom" de alunos que antecede o verão, decide implantar um sistema informatizado de controle do acesso dos alunos às várias modalidades oferecidas. Os cursos oferecidos são: natação, ginástica localizada, ginástica: aeróbica, ginástica rítmica, judô, capoeira, basquete, volei, caratê e futebol. Cada modalidade pode ser cursada por alunos nas faixas etárias "infantil" e "adulto'', e são abertas aos dois sexos, com excessão da ginástica localiza, que só pode ser praticada por mulheres adultas, da ginastica rítmica destinada às meninas, e o futebol, praticado só por homens. As classes de adultos são separadas das classes infantis.

Quando um novo aluno se matricula, paga uma taxa de matrícula que lhe dá direito a escolher dois dos cursos oferecidos. A escolha é feita apresentando-se ao aluno as opções de horário disponíveis para as modalidades desejadas; quando o aluno define os cursos desejados, ele é cadastrado na lista de alunos daquele curso.

Os horários dos cursos são previaamente elaborados, havendo um limite de alunos específico para cada modalidade. O aluno, ao se inscrever no curso, recebe uma cartela de tickets com seu número de identificação e a identificação da turma em que está matriculado gravados em código de barras. Os tickets são válidos parra todo o mês, e são emitidos novamente mediante o pagamento da mensalidade.

Quando o aluno entra na classe, entrega um ticket ao grofessor, que o lê com a leitora de código de barras. Se o aluno estiver matriculado naquele curso, o sistema registra a presença; do contrário emite um alarme. Alunos que não faltarem a nenhuma aula no mês recebem um desconto de 5% na mensalidade.

Todos os alunos matriculados podem frequentar a sala de musculação, no horário que considerar mais conveniente e dependendo da disponibilidade dos aparelhos. Para ter acesso aos aparelhos, o aluno deve submeter sua carteirinha à leitora do aparelho, e estando este aluno habilitado, o aparelho é liberado para seu uso. Durante os exercícios, o aparelho registra o desempenho do aluno e outros dados do aluno; estes dados são armazenados e um relatório é emitido posteriormente, para fins de avaliação de seu desempenho.

(2)

2

2. MODELAMENTO

O modelamento deste sistema deve ser feito, utilizando-se os conceitos de Análise Estruturada. Para isso, deve-se fornecer:

• Diagrama de Contexto • Tabela de Eventos

• Diagrama de Fluxo de Dados, em níveis sucessivos de forma a representar as funções constantes do enunciado

• Dicionário de dados (fluxos e depósitos)

• Descrição sucinta (narrativa) de cada bolha do DFD. 2.1. Diagrama de Contexto

(3)

A entidade GERÊNCIA é encarregada do estabelecimento de horários de aulas, custos etc. Estes elementos poderiam ainda ser representados através de um depósito externo, produzido por um outro programa, porém entende-se que é mais natural definir aqui tal processo, apesar de não ter sido mencionado no enunciado.

A entidade MONITOR tem acesso aos dados de desempenho do aluno, a fim de estabelecer os programas mais convenientes para o mesmo. Também nada disso é mencionado no enunciado

O PROFESSOR está encarregado de realizar a leitura dos tickets, na entrada do aluno para as aulas.

Note-se ainda que a seta dupla representa fluxos de materiais e as setas simples, fluxos de dados. "tickets" é entendido como sendo um conjunto de "ticket", podendo ser definido como:

tickets = { ticket } 2.2. Tabela de Eventos

(4)

4

Caso esta saída não exista, o processamento associado ao evento está apenas alterando valores internos ao sistema, ou armazenando estes valores em depósitos internos.

Evento Tipo Parâmetros Saída associada Outros dados

associados

matricula F dados pessoais do

aluno, idade e sexo

turmas tipo_curso

opcao_turma F turmas escolhidas ---dados_cursos F horários das turmas e

informações sobre os cursos associados a estas turmas, como faixa etária, modalida-de, sexo dos participan-tes, etc.

---dados_vitais F dados coletados pelos sensores ligados ao aluno

---ticket F identificação do aluno e

da turma; são os dados que deverão compor a informação do ticket

liga /

----ident_ap F identificação do aluno e identificacão do apare-lho

libera_ap

mensalidade F identificação do aluno e dados do pagamento

progressos_aluno

ident F identificação do aluno valor_mens.

Sobre a tabela construída pode-se fazer algumas observações:

• Na primeira coluna, o evento "matrícula" exige alguns dados associados, que estão expressos na coluna da direita; "tipo_curso" é um fluxo exigido para o processamento de "matricula", e não um evento, como poderia ser imaginado a princípio.

• Os hífens, colocados na coluna "Saída associada", representam ações internas, sem respostas para o mundo exterior.

• "Dados do pagamento" são detalhes a serem resolvidos posteriormente.

• Finalmente, supõe-se que o relatório contendo os progressos do aluno, "progressos_aluno" é expedido por ocasião do pagamento da mensalidade pelo aluno, sendo encaminhado para o MONITOR deste aluno que irá fazer o seu julgamento sobre o mesmo. Analisando melhor esta opção feita, ela parece "pouco consistente" e, provavelmente, deverá ser alterada ao se analisar melhor o assunto.

(5)

que nesta fase conterá a definição dos fluxos ligados ao Diagrama de Contexto. A seguir detalham-se estes fluxos; os fluxos que contêm a anotação (*) ao lado, representam opções de projeto que poderiam ser consideradas prematuras para esta etapa da análise.

O Dicionário de Dados seguinte foi codificado através de um Editor de Textos e não segue nenhuma regra especial de formatação, isto é, não utiliza um formato do tipo empregado pelo PC-CASE, por exemplo.

matrícula = nome + sexo + idade nome = string [30 ] ( * )

sexo = M / F ( * ) idade = 1..90 ( * ) opções = 2 { tipo + turma } 2

tipo-curso = (vôlei, basquete,..., futebol)

turma = (1..m) m = número máximo de turmas

turmas = 0 { turma }m1 m1 = número máximo de turmas na modalidade opção-turma = turma

horário = dia-semana + hora-ini + hora-fim dia-semana = (segunda, ..., sábado)

hora-ini = hora hora-fim = hora hora = h +min h = (0..23) (*) min = (0..59) (*)

ticket = ident + turma +tipo-curso

tickets = 0 { ticket } n n = no. de aulas da turma no mês ident = integer ( * )

opção-turma = turma + tipo-curso

sinais-vitais = * dados referentes ao desempenho do aluno * ( * ) liga = * sinal de ativação do alarme * ( * )

ident-ap = ident-aparelho + ident

libera-ap = * sinal de liberação do aparelho de musculação * ident-aparelho = integer ( * )

dados-cursos = 0 {dado-curso}m2 , m2 = número máximo de especificações de cursos fornecidos

dado-curso = tipo-curso + turma + horário + faixa-etária + tipo-turma faixa etária = (infantil / adulto / idoso / bebê )

tipo-turma = M / F / A

valor-mensalidade = 99.999, 99 ( * )

(6)

6

São colocadas, em seguida, alguma recomendações iniciais sobre a construção do Diagrama de Fluxo de Dados, e que caracterizam os erros mais típicos, cometidos pelos projetistas que se iniciam nesta técnica; assim, leia atentamente estes itens.

• Todos os processos de um DFD devem ser nomeados (receber um nome: emitir fatura, por exemplo) e identificados (receber um número: 2, por exemplo). A identificação é usada como recurso auxiliar, na busca através de vários níveis de diagramas, onde o número grande de processos dificulta a busca por nome; a alegação de que "o meu problema é pequeno" não vale, porque é necessário manter-se o padrão de documentação para qualquer que seja o tamanho do problema. Também os depósitos de dados e entidades externas devem receber nomes e identificação. Convém indicar a duplicação destes elementos para lembrar o leitor de que eles já apareceram antes, ou devem ocorrer ainda em outro local do Diagrama de Contexto. Quando fizer a duplicação do elemento utilize fluxos correlacionados entrando ou saindo dos elementos duplicados.

• Os nomes dos fluxos não devem aparecer duplicados no DFD, mesmo que seu conteúdo seja o mesmo; para isso, utilize fluxos auxiliares, que auxiliam a descrição dos fluxos semelhantes (ver 5). Lembre que um fluxo que entra num processo_1 é diferente daquele que ocorre no processo_2, pois ocorrem em tempos e situações diferentes.

• O DFD só tem valia quando acompanhado de uma Descrição de Processos; sem isso, não se sabe exatamente o que está sendo feito em cada bolha. Também é necessário elaborar-se o Dicionário de Dados com a descrição de todos os fluxos e itens elementares, correspondente ao DFD; isto implica em “estender” o Dicionário apresentado no item 2.3.

• Colocar Diagrama de Contexto e cada Diagrama de Fluxo de Dados em uma folha separada, quando se elabora estes diagramas manualmente, pois isto, além de melhorar a estética" facilita a manutenção através da substituição da folha considerada, caso um erro seja detectado. Apesar de não se admitir, atualmente, que a elaboração dos DFDs seja feita por processo manual - para isso existem os CASEs- quando se desenha à mão, pode-se usar lápis, borracha, brancol ou recortes, conforme o caso. Evite sempre refazer diagramas, pois o ato de "passar a limpo" um diagrama irá, com grande probabilidade adicionar erros, já que a atenção não é a mesma do processo inicial.

• Não colocar nos DFDs observações que podem ser colocas em glossários ou Dicionários de Dados; também não entram aí especificações de fluxos compostos, na forma:

nome+sexo+idade.

• Estas expressões só comparecem no Dicionário de Dados. Quando uma destas expressões ocorrem em vários fluxos, por ex: ID_Ônibus+pontos +tempos + data, ela pode ser identificada por uma expressão auxiliar, como:

Onibus_percurso = ID_Ônibus+pontos +tempos ---> expressão auxiliar viagem = Ônibus_percurso + data

(7)

de atuarem no ambiente. Por trás de um vídeo ou de uma impressora estará sempre uma pessoa, que desempenha uma certa função: funcionário do RH, vendedor, secretária etc. Estes dispositivos são considerados apenas "meios de produção de uma saída".

• Cuidado com os depósitos de dados que só recebem dados, mas cujas informações não são utilizadas nunca. Eles não têm valia em seu projeto, a menos que sejam partilhados com um outro problema, e neste caso, são externos, devendo comparecer no Diagrama de Contexto.

• Não gerar níveis artificialmente; a geração de níveis é necessária para limitar o número de bolhas/nível; este número é de, no máximo, 10 bolhas por nível.

A página seguinte apresenta o DFD de nível 1 do problema.

2.5. Descrição dos processos

No diagrama da página seguinte estão apresentados 7 processos, compondo o DFD de nível 1. A descrição dos processos será apresentada na forma de narrativa.

(8)

8

(9)

controle_de_frequência - o professor fornece um ticket, com a identidade do aluno ao sistema e este consulta a lista de chamada do curso; se o aluno consta desta lista de chamada, sua frequência é anotada e a entrada do aluno na aula é liberada; caso contrario o sistema aciona um alarme para indicar que o aluno não está autorizado nesta turma;

atualiza_horários - a gerência atualiza os horários das turmas dos cursos;

controle_musculação - o aluno fornece sua identidade ao aparelho, e este libera a leitura dos dados vitais do aluno, que serão armazenados para a verificação do seu relatório de progressos mensais; o aparelho é também liberado para uso do aluno; sem este fornecimento de identidade o aparelho permanece travado; o seu uso só é permitido para os alunos regularmente matriculado e que portanto têm esta identidade.

2.6. Dicionário de Dados - Complementação

Após a explosão do Diagrama de Contexto, na qual se gera o nível 1 do DFD , deve-se complementar o DD, incluindo-se os depósitos e os novos fluxos que resultaram desta explosão. Estes novos fluxos não serão descritos aqui; descrevem-se entretanto, a título de exemplo alguns depósitos:

Referências

Documentos relacionados

Para preparar a pimenta branca, as espigas são colhidas quando os frutos apresentam a coloração amarelada ou vermelha. As espigas são colocadas em sacos de plástico trançado sem

Janaína Oliveira, que esteve presente em Ouagadougou nas últimas três edições do FESPACO (2011, 2013, 2015) e participou de todos os fóruns de debate promovidos

nesta nossa modesta obra O sonho e os sonhos analisa- mos o sono e sua importância para o corpo e sobretudo para a alma que, nas horas de repouso da matéria, liberta-se parcialmente

O objetivo do curso foi oportunizar aos participantes, um contato direto com as plantas nativas do Cerrado para identificação de espécies com potencial

3.3 o Município tem caminhão da coleta seletiva, sendo orientado a providenciar a contratação direta da associação para o recolhimento dos resíduos recicláveis,

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

Realizar a manipulação, o armazenamento e o processamento dessa massa enorme de dados utilizando os bancos de dados relacionais se mostrou ineficiente, pois o

Neste estudo foram estipulados os seguintes objec- tivos: (a) identifi car as dimensões do desenvolvimento vocacional (convicção vocacional, cooperação vocacio- nal,