VB .NET - Curso Prático ADO .NET - Desenvolvendo uma aplicação : A fase do Projeto - III


Na segunda parte do curso falamos um pouco sobre UML e nesta terceira parte do nosso curso prático vamos detalhar as outras fase do projeto de forma resumida dando mais ênfase na fase de projeto de alto nível.

A fase de projeto de alto nível é onde a equipe de desenvolvimento irá descrever as funcionalidades do sistema usando um protótipo baseado em telas apresentando os vários formatos de entrada e saída da aplicação para aprovação do cliente. O ideal é ter um protótipo funcional que possa ser apresentado ao cliente para avaliação e a partir do qual ela possa identificar se os requisitos do sistemas foram todos implementados.

Modelo de Prototipagem

O modelo de desenvolvimento baseado na prototipação procura suprir duas grandes limitações do modelo cascata. A ideia básica deste modelo é que ao invés de manter inalterado os requisitos durante o projeto e codificação, um protótipo é desenvolvido para ajudar no entendimento dos requisitos. Este desenvolvimento passa por um projeto , codificação e teste, sendo que cada uma destas fases não é executada formalmente. Usando assim os protótipos o cliente pode entender melhor os requisitos do sistema.

O protótipo é desenvolvido com uma versão inicial do documento de especificação dos requisitos. Depois do protótipo estar pronto o cliente o utiliza e baseado na sua avaliação do cliente é fornecido ao as impressões do que precisa ser alterado, o que esta faltando e o que não é preciso. O protótipo é então modificado incorporando as sugestões de mudança e o cliente usa o protótipo novamente repetindo o processo até que o mesmo seja válido em termos de custo e tempo. No final os requisitos iniciais são alterados para produzir a especificação final dos requisitos.

Segundo Pressman e Jalote este modelo pode trazer os seguintes benefícios:

  • O modelo é interessante para alguns sistemas de grande porte nos quais representem um certo grau de dificuldade para exprimir rigorosamente os requisitos
  • È possível obter uma verão do que será o sistema com um pequeno investimento inicial
  • A experiência de produzir o protótipo pode reduzir o custo das fases posteriores
  • A construção do protótipo pode demonstrar a viabilidade do sistema.

Por questão de simplicidade e de praticidade vou apresentar as principais entradas e saídas representadas por telas da aplicação em desenhos esboçados no aplicativo Paint.

A tela que apresenta as opções para que os clientes já cadastrados possam acessar a aplicação usando o seu login e senha bem como registrar um novo cliente:

Um cliente cadastrado deverá informar o seu identificador (login) e sua senha em caixas de texto e clicar no botão Submeter. Se o login for realizado com sucesso o cliente será levado a tela de pesquisas:

Utilizando a tela de Pesquisa, os clientes podem procurar os filmes de sua escolha e, em seguida, selecionar filmes para comprar. Esta tela tem uma caixa de texto no qual os clientes podem entrar com texto livre para pesquisa; há também uma caixa de combinação onde os clientes poderão selecionar uma categoria a partir de uma lista pendente.

Clicando no botão Pesquisar será feita uma pesquisa nas tabelas do banco de dados da aplicação e será exibido os resultados na seção de resultados de pesquisa.

Os clientes podem selecionar os filmes de sua escolha e clique no botão Selecionar Itens. Com isso será exibida a tela de Pedidos.

A tela de Pedidos exibe os filmes selecionados pelo cliente, bem como a montante total a pagar pelo pedido. Esta tela também exibe o número do cartão de crédito do cliente. O cliente precisa clicar no botão Fazer Pedido para concluir o pedido, ao termino desta fase as tabelas de banco de dados serão atualizadas. Se um cliente não é cadastrado, ao clicar no botão Fazer Pedido será exibida a tela de registro, como mostrado a seguir:

A tela de Registro aparece também se o cliente clicar no botão Registrar mostrado na a tela de login do cliente.

Para o módulo de administração, haverá uma formulário principal contendo duas opções de menu:

A opção Manutenção permitirá realizar várias operações de manutenção no banco de dados, esta opção contém duas subopções:

  1. Inserir
  2. Atualizar/Excluir.

A opção Inserir permite ao administrador inserir dados nas tabelas de banco de dados. A opção Atualizar/Excluir permitirá ao administrador atualizar e excluir registros das tabelas no banco de dados.

Abaixo vemos as informações para inclusão de Filmes na tela do módulo Administração. As outras telas para adição de dados serão similares, contendo os campos correspondentes de cada tabela na base de dados dos filmes.

Na figura abaixo temos a tela de Atualização/Exclusão, que é comum para todas as tabelas do base de dados.

Nesta tela, a lista drop-down de Pesquisar Em exibe as várias tabelas do banco de dados, e o drop-down Pesquisar Por exibe os vários critérios de pesquisa que podem ser usados. O campo texto Pesquisar Texto permite inserir um texto para pesquisa.

Ao clicar no botão Pesquisar os resultados da pesquisa serão exibidos na seção correspondente , a partir da qual o administrador pode selecionar os dados que precisam ser atualizados ou excluídos. Após fazer as modificações para os dados necessários, o administrador pode clicar o botão Atualizar para enviar as alterações para o banco de dados. Clicando no botão Excluir os registros serão excluídos da tabela.

Como já mencionei o módulo de administração contém um menu Gerar Relatórios, que proporciona três opções:

  1. Vendas diárias - Exibe as vendas diárias para a loja. O relatório exibe o ID do vídeo, o ID do filme ID,e o valor total de cada compra.
  2. Filmes na demanda - Apresenta os dados de filmes em que são mais demandados.
  3. Detalhes do cliente - Exibe os detalhes dos clientes que visitam freqüentemente a loja.

Projeto de Baixo Nível

Durante a fase de projeto de baixo nível, um projeto detalhado dos vários módulos de software está preparado usando o projeto de alto nível. A equipe decide em diversos padrões, tais como convenções de nomenclatura para as variáveis, controles e formulários para um projeto. Todas essas especificações são documentadas para que a consistência possa ser mantida entre os diversos módulos de um aplicativo. A equipe de desenvolvimento também documenta as diversas normas a serem seguidas durante a construção do projeto.

Construção

Durante a fase de construção, vários componentes de aplicação são codificados. As várias especificações identificadas durante a fase de projeto de baixo nível são usadas para fazer isso. No caso da nossa aplicação, os módulos de Administração dos clientes são codificadas.

Integração e Testes

Na fase de testes, vários testes e validações são realizadas sobre os diversos módulos, e sua funcionalidade de integração é verificada. No caso da nossa aplicação, todas os formulários necessárias para cada um dos módulos (Cliente e Administração) são integrados e testados.

Teste de aceitação do usuário

Na fase de aceitação, vários testes são efetuados com base nos critérios de aceitação pré-definidos pelo cliente. Nesta fase são solucionadas quaisquer problemas ou bugs identificados para isso podemos convidar alguns usuários para usar o aplicativo e fornecer um retorno com base nos quesitos funcionalidades, erros e usabilidade.

Prazo e Preço

Outro ponto importante a considerar é quanto custa o desenvolvimento em termos de prazo e preço. Neste aspecto temos que fazer as seguintes perguntas:

Quanto custa o desenvolvimento deste sistema ?  ou Quanto você cobra para desenvolver este sistema ? 

Qual o prazo de entrega do sistema ? ou Quanto tempo você leva para desenvolver este sistema ?

Isto é perfeitamente normal e previsível , afinal um cliente tem o direito de saber quanto vai custar e em quanto tempo vai ficar pronto o produto que ele deseja receber.

O que não é normal é o fato de que mesmo convivendo com estas indagações no seu dia dia a tanto tempo, você, quer como gerente de projeto ou desenvolvedor, não ter condições de responder com segurança a nenhuma delas.

Quando você contrata o serviço de um pedreiro, ele, após saber exatamente o que tem que fazer faz alguns cálculos e lhe da o preço final do seu trabalho. O mesmo ocorre nas áreas de engenharia civil, mecânica, etc.

Por que é tão difícil estimar o valor de um projeto de software ? Por que é tão complexo fazer estimativas nesta área ?

Seria porque software não têm peso, nem cheiro ? ou seria o fato de que não vemos e nem sentimos um software ?

Creio que as respostas a estas indagações seriam feitas se você soubesse responder a seguinte pergunta:

Qual o tamanho do sistema?

Para saber o tamanho do sistema é necessário realizar medições ou medidas. Certo ?

Certo, pois, "não se consegue controlar o que não se consegue medir". (Tom DeMarco)

A métrica é o número que você vincula a uma ideia. Para o projeto de software comum , os aspectos quantitativos onde mais precisamos usar a métrica são:  escopo, tamanho, custo, risco e tempo empregado.[1]

Para que a métrica usada seja útil ela deve possuir as seguintes características: ser mensurável, ser independente, ser explicável e precisa.

Em meu artigo VB.NET - Estimativa de tamanho e  preço com Análise de Pontos de Função - APF eu apresento um exemplo de como usar a métrica Pontos de Função para realizar a estimativa de prazo e preço em um projeto de software.

Na próxima parte do curso iremos iniciar a definição do modelo de dados da aplicação.

Referências:


José Carlos Macoratti