Lista de exercícios sobre estimativas de software 1. Considerando a especificação do sistema abaixo, determine o número de pontos de função não ajustados, usando a metodologia de análise de pontos de função e, utilizando o método COCOMO, faça a estimativa de esforço, prazo e tamanho ideal de equipe, considerando que o sistema será implementado em Java. Sistema de Clínica Médica: Funções do sistema: - Inclusão de médicos (obtém CPF do médico, CRM do médico, nome do médico, especialidade e telefone do médico e, se não estiver cadastrado, é incluído no arquivo de médicos. Se já estiver cadastrado exibe uma mensagem). - Alteração de médicos (obtém o CPF do médico, lê o arquivo de médicos e, se estiver cadastrado, obtém os mesmos dados da inclusão de médicos e salva no arquivo de médicos. Se não estiver cadastrado exibe uma mensagem). - Exclusão de médicos (obtém o CPF de médico e, se estiver cadastrado, pergunta se deseja mesmo excluir e, se confirmado, exclui o médico do arquivo de médicos. Se não estiver cadastrado exibe uma mensagem). - Consulta de médicos (obtém o CPF do médico e, se estiver cadastrado, exibe os mesmos dados da inclusão de médicos. Se não estiver cadastrado exibe uma mensagem). - Inclusão de pacientes (obtém CPF do paciente, nome do paciente, telefone do paciente e convênio médico e, se não estiver cadastrado e se o convênio médico estiver cadastrado no arquivo de convênios, é incluído no arquivo de pacientes. Se o paciente já estiver cadastrado ou se o convênio médico não estiver cadastrado, exibe uma mensagem). - Alteração de pacientes (obtém o CPF do paciente, lê o arquivo de pacientes e, se estiver cadastrado, obtém os mesmos dados da inclusão de pacientes e salva no arquivo de pacientes, desde que o convênio médico esteja cadastrado no arquivo de convênios. Se o paciente não estiver cadastrado ou se o convênio médico não estiver cadastrado, exibe uma mensagem). - Exclusão de pacientes (obtém o CPF de paciente e, se estiver cadastrado, pergunta se deseja mesmo excluir e, se confirmado, exclui o paciente do arquivo de pacientes. Se não estiver cadastrado exibe uma mensagem). - Consulta de pacientes (obtém o CPF do paciente e, se estiver cadastrado, exibe os mesmos dados da inclusão de pacientes. Se não estiver cadastrado exibe uma mensagem).
- Inclusão de convênios (obtém código do convênio, nome do convênio e telefone de contato e, se não estiver cadastrado, é incluído no arquivo de convênios. Se já estiver cadastrado exibe uma mensagem). - Alteração de convênios (obtém o código do convênio, lê o arquivo de convênios e, se estiver cadastrado, obtém os mesmos dados da inclusão de convênios e salva no arquivo de convênios. Se não estiver cadastrado exibe uma mensagem). - Exclusão de convênios (obtém o código do convênio e, se estiver cadastrado, pergunta se deseja mesmo excluir e, se confirmado, exclui o convênio do arquivo de convênios. Se não estiver cadastrado exibe uma mensagem). - Consulta de convênios (obtém o código do convênio e, se estiver cadastrado, exibe os mesmos dados da inclusão de convênios. Se não estiver cadastrado exibe uma mensagem). - Agenda de consulta (obtém o CPF do paciente, lê o arquivo de pacientes e, se estiver cadastrado, obtém o CPF do médico e lê o arquivo de médicos. Se o médico estiver cadastrado, obtém a data e a hora da consulta e verifica no arquivo de agendas, se a agenda do médico na data e hora escolhida está disponível. Se estiver disponível, salva os dados no arquivo de agendas. Se o paciente ou o médico não estiverem cadastrados, ou se o horário não estiver disponível na agenda, exibe uma mensagem). - Lista de consultas por médico (obtém o CPF do médico, lê o arquivo de médicos e, se estiver cadastrado, obtém a data e lê o arquivo de agendas, listando todas as consultas do médico marcadas para aquela data, incluindo, no cabeçalho, o CPF e o nome do médico, a data, e, nas linhas, o horário e, lendo o arquivo de pacientes, o CPF, o nome e o telefone dos pacientes e, no final, o número de consultas do dia. Se o médico não estiver cadastrado exibe uma mensagem). Arquivos: - Médicos (CPF, CRM, nome, especialidade e telefone) - Pacientes (CPF, nome, telefone, convênio médico) - Convênios (código, nome, telefone para contato) - Agenda (CPF do médico, data, horário, CPF do paciente) 2. Considerando a especificação do sistema abaixo, determine o número de pontos de função não ajustados, usando a metodologia de análise de pontos de função e, utilizando o método COCOMO, faça a estimativa de esforço, prazo e tamanho ideal de equipe, considerando que o sistema será implementado em Visual Basic. Sistema de Reservas de Hotel
Diagrama de Contexto:
DFD Nível 0:
DFDs Nível 1: Processo 1:
Processo 2:
Processo 3:
Processo 4:
Diagrama Entidade-Relacionamento:
Descrição das Entidades: Cliente cp Código do cliente Tipo classe Nome cliente Tipo pessoa CGC/CPF Endereço Pessoa contato Telefone Apartamento cp Número apartamento Tipo
Lay-out das telas e relatórios: Menus:
Reserva cp Número da reserva Data da reserva Período início Período fim Tipo apartamento Pessoa sobrenome Pessoa nome
Funcionário cp Matrícula funcionário Nome funcionário Função Salário CPF Endereço Telefone
Tela de inclusão de clientes, alteração de clientes e de consulta de clientes:
Tela de exclusão de clientes:
Tela de inclusão de reservas, de alteração de reservas e de consulta de reservas:
Tela de exclusão de reservas:
Tela de inclusão, alteração, exclusão e consulta de apartamentos:
Relatório de Apartamentos: RELATÓRIO DE APARTAMENTOS DATA: ..../..../.... NÚMERO ------------....... ....... .......
TIPO -----.. .. ..
Total de apartamentos ocupados: .... Relatório de Clientes: RELATÓRIO DE CLIENTES DATA: ..../..../.... CÓDIGO ----------......... ......... .........
NOME TIPO CONTATO ----------------------------- ------- ------------------................................... ... ..................... ................................... ... ..................... ................................... ... .....................
Total de clientes: ......... 3. Considerando a especificação do sistema abaixo, determine o número de pontos de função não ajustados, usando a metodologia de análise de pontos de função e, utilizando o método COCOMO, faça a estimativa de esforço, prazo e tamanho ideal de equipe, considerando que o sistema será implementado em C++. Sistema de Vendas
Diagrama de Contexto: cliente + pedido Cliente
produto nota fiscal
Sistema de Vendas
Gerente Comercial relatório de vendas e comissões
vendedor + desconto Vendedor
Diagrama de Fluxo de Dados (DFD) nível 0: cliente Cliente
1 Cadastrar cliente
2 Cadastrar produto
cliente
produto
Gerente Comercial
Clientes cliente
pedido nota fiscal
4 Efetuar venda
produto Produtos produto produto
vendedor + desconto Vendedor
venda
nota fiscal Notas Fiscais
relatório de vendas e comissões
Vendas venda
vendedor
vendedor 3 Cadastrar vendedor
vendedor
Vendedores
Especificação de Processos Processo 1. Cadastrar cliente INÍCIO OBTER Cliente SE cliente novo CRIAR Clientes FIM-SE FIM
Processo 2. Cadastrar produto INÍCIO OBTER produto SE produto novo CRIAR Produtos FIM-SE FIM
vendedor
5 Emitir relatório de vendas e comissões
Processo 3. Cadastrar vendedor INÍCIO OBTER vendedor SE vendedor novo CRIAR Vendedores FIM-SE FIM
Processo 4. Efetuar venda INÍCIO OBTER pedido LER Clientes SE cliente cadastrado OBTER vendedor LER Vendedores SE vendedor cadastrado valor da venda = 0 FAZER ENQUANTO houver produto em pedido OBTER produto, quantidade do pedido LER Produtos SE produto cadastrado valor do item = preço do produto * quantidade do pedido valor da venda = valor da venda + valor do item SE primeiro produto do pedido CRIAR Vendas CRIAR Notas Fiscais SENÃO ATUALIZAR Vendas ATUALIZAR Notas Fiscais FIM-SE FIM-SE FIM-FAZER SE pelo menos um item foi gerado OBTER valor do desconto valor da venda = valor da venda – desconto valor total da nota fiscal = valor da venda valor da comissão = valor da venda * 0,03 ATUALIZAR Vendas ATUALIZAR Notas Fiscais IMPRIMIR nota fiscal FIM-SE FIM-SE FIM-SE FIM
Processo 5. Emitir relatório de vendas e comissões INÍCIO CLASSIFICAR Vendas POR vendedor FAZER ENQUANTO houver vendas
LER Vendas LER Vendedores IMPRIMIR vendedor, venda, nota fiscal, cliente FAZER ENQUANTO houver itens de nota fiscal LER Produtos IMPRIMIR item de nota fiscal, produto FIM-FAZER FIM-FAZER FIM
Diagrama Entidade-Relacionamento Cliente
1,1
0,N Nota Fiscal
1,1
1,1
1,1
0,N
1,N 1,1
Item da Nota Fiscal
Venda 0,N
0,N
1,1
1,1
Vendedor
Produto
Diagramas de Descrição de Entidades Cliente cp
cpf nome endereço cidade estado
Nota Fiscal cp
Produto cp
código descrição unidade de medida preço
número série data valor do desconto valor total
Item de Nota Fiscal cp
Venda cp
número data valor da venda valor da comissão
número do item quantidade preço unitário valor do item
Vendedor cp
código nome endereço cidade estado data de admissão
Projeto de Interface com o Usuário Tela T00 – Menu Principal
Tela T01 – Tela de Clientes
Tela T02 – Tela de Produtos
Tela T03 – Tela de Vendedores
Tela T04 – Tela Vendas
Tela T05 – Tela de Detalhamento de Venda
R01 – Relatório: Nota Fiscal
R02 – Relatório de Vendas e Comissões
4. Considerando a especificação do sistema abaixo, determine o número de pontos de função não ajustados, usando a metodologia de análise de pontos de função e, utilizando o método COCOMO, faça a estimativa de esforço, prazo e tamanho ideal de equipe, considerando que o sistema será implementado em linguagem C. Sistema de Vendas de Supermercado: Funções do sistema: - Cadastramento de produto (obtém código do produto, descrição do produto, quantidade em estoque e preço e, se não estiver cadastrado, é incluído no arquivo de produtos. Se já estiver cadastrado exibe uma mensagem). - Alteração de preço (obtém o código do produto, lê o arquivo de produtos e, se estiver cadastrado, obtém o novo preço do produto e salva no arquivo de produtos. Se não estiver cadastrado exibe uma mensagem). - Entrada de produtos (obtém o código do produto, lê o arquivo de produtos e, se estiver cadastrado, obtém a quantidade de entrada e atualiza o arquivo de produtos, somando a quantidade de entrada à quantidade em estoque. Se não estiver cadastrado exibe uma mensagem). - Registro de venda (obtém o CPF do cliente e gera um número de cupom fiscal, salvando no arquivo de vendas juntamente com a data da venda e, para cada produto vendido, o código do produto, lê o arquivo de produtos e, se estiver cadastrado, obtém a quantidade vendida, e, se a quantidade em estoque for maior ou igual à quantidade vendida, calcula o valor do item e salva o item da venda no arquivo de itens de venda e atualiza a quantidade em estoque do arquivo de produtos, subtraindo a quantidade vendida da quantidade em estoque. Se o produto não estiver cadastrado ou se a quantidade em estoque for menor que a quantidade vendida exibe uma mensagem). - Emissão do cupom fiscal (obtém o número do cupom fiscal, lê o arquivo de vendas e, se estiver cadastrado, imprime a data da venda e o CPF do cliente. Em seguida, para cada item da venda, lê o arquivo de item de vendas, imprime o código do produto, lê o arquivo de produtos e imprime a descrição do produto, o preço do produto, a quantidade vendida e o valor do item, acumulando-se o valor do item para, no final, imprimir o valor total da venda).
Arquivos: - Produtos (código, descrição, quantidade em estoque e preço) - Vendas (número do cupom fiscal, CPF do cliente e data da venda) - Itens de venda (número do cupom fiscal, código do produto, preço, quantidade vendida e valor do item)