Fundamentos e Ciclo de Vida do Desenvolvimento de Software

Classificado em Computação

Escrito em em português com um tamanho de 17,92 KB

O que é um Sistema Operacional?

Sistema Operacional (SO) é o software básico de um computador que fornece uma interface entre os programas de computador, dispositivos de hardware e o usuário.

Classificação dos Sistemas Operacionais

  • Multi-usuário: Permite que dois ou mais usuários utilizem seus programas ao mesmo tempo. Alguns sistemas operacionais permitem centenas ou milhares de usuários simultaneamente.
  • Multiprocessador: Suporta a execução do mesmo programa em mais de uma CPU.
  • Multitarefa: Permite que vários programas rodem ao mesmo tempo.
  • Multi-tramo (Multithreading): Permite que diferentes partes de um único programa estejam em execução a qualquer momento.
  • Em tempo real: Responde à entrada instantaneamente.

O que é uma Linguagem de Programação?

Uma linguagem de programação é uma técnica padrão de comunicação que nos permite expressar as instruções que devem ser executadas em um computador.

Como Escolher uma Linguagem de Programação?

A escolha da linguagem de programação depende do tipo de programas que queremos desenvolver, da plataforma para a qual servimos nossos programas. Além disso, a escolha pode ser influenciada pelo gosto pessoal por um determinado idioma ou pela empresa por trás da linguagem.

Paradigma de Programação

O paradigma de programação que é frequentemente usado é a Programação Orientada a Objetos (POO) e é suportado por várias linguagens de programação como Java e C#.

Atualmente, linguagens populares incluem Java, C#, Python, PHP e ASP (para web).

Etapas do Desenvolvimento de Software

O desenvolvimento de um programa geralmente segue as seguintes etapas:

1. Especificação do Programa

Nesta etapa, são definidos os requisitos do programa:

  • a. Determinar os objetivos do programa.
  • b. Determinar a saída desejada.
  • c. Determinar os dados de entrada.
  • d. Determinar os requisitos de processamento.
  • e. Documentar as especificações do programa.

2. Projeto do Programa

É a fase de projetar o novo sistema ou as aplicações necessárias para satisfazer os requisitos. Esta atividade deve ser dividida em:

  • Operacional de entrada/saída
  • Cálculos
  • Lógica/Comparação
  • Armazenamento/Consulta

3. Codificação do Programa

A geração efetiva do programa utilizando uma linguagem de programação. Nesta fase, utiliza-se a lógica desenvolvida na fase de projeto para criar o programa. Deve-se selecionar a linguagem apropriada para resolver o problema.

4. Teste e Depuração do Programa

Quando se depuram programas, podem ser encontrados os seguintes erros:

Tipos de Erros Comuns:
  • a) Erros de Sintaxe ou Compilação:
  • b) Erros de Execução:
  • c) Erros de Lógica:
  • d) Erros de Especificação:

a) Erros de Sintaxe ou Compilação: É uma violação das regras da linguagem de programação. São mais fáceis de corrigir, pois são detectados pelo compilador (possível erro de digitação).

b) Erros de Execução: Ocorrem durante a execução do programa e geralmente correspondem a operações não permitidas, como divisão por zero, leitura de dados não numéricos em uma variável numérica, ultrapassar um intervalo de valores permitido, etc. São detectados porque produzem um encerramento anormal do programa durante a implementação.

c) Erros de Lógica: Correspondem à obtenção de resultados incorretos. A única forma de detectá-los é através de testes rigorosos do programa.

d) Erros de Especificação: É o pior tipo de erro e o mais difícil de corrigir, pois significa que o programa não atende aos requisitos definidos.

Teste:

Consiste em verificar a funcionalidade do programa através de vários métodos para detectar possíveis erros.

Técnicas de Teste:
  • Teste de Mesa (Desk Check)
  • Teste manual com dados de amostra
  • Compilação
  • Teste com dados de amostra no computador
  • Teste Beta (com um grupo seleto de usuários potenciais)

a. Teste de Mesa (Desk Check): O programador revisa uma impressão do código do programa em busca de erros.

b. Teste Manual com Dados de Amostra: Executa-se o programa manualmente, utilizando dados corretos e incorretos para verificar se funciona corretamente.

c. Compilação: O programa é processado por um compilador para convertê-lo em linguagem de máquina, detectando erros de sintaxe.

d. Teste com Dados de Amostra no Computador: Após a compilação e correção de erros de sintaxe, busca-se encontrar erros de lógica utilizando diferentes dados de amostra no computador.

e. Teste Beta: O programa é testado por um grupo seleto de usuários potenciais em um ambiente real.

5. Documentação do Programa

Consiste na descrição de procedimentos técnicos escritos relacionados ao programa e seu uso. A documentação detalhada é abordada em uma seção posterior.

6. Manutenção do Programa

Este é o passo final do ciclo de vida do desenvolvimento de software. Cerca de 75% do custo total do ciclo de vida de um programa é destinado à manutenção. O objetivo da manutenção é garantir que os programas estejam livres de erros de operação e sejam eficientes e eficazes ao longo do tempo.

Execução de Software

Software deve ser acompanhado por um processo de aplicação e definições que cumpram com as necessidades do cliente.

Métricas para Avaliar Software

Métricas de software são usadas para avaliar diferentes aspectos do software e do processo de desenvolvimento.

Métricas de Software:

São aquelas associadas ao desenvolvimento de funcionalidades do software, complexidade, eficiência.

Métodos Estatísticos

Focam nos recursos de software, tais como: a complexidade lógica, o grau de modularidade. Medem a estrutura do sistema, como é feito.

Métricas de Qualidade

Fornecem uma indicação de como o software se encaixa nos requisitos implícitos e explícitos do cliente. Medem o quão bem o sistema se adapta aos requisitos solicitados pelo cliente.

Métricas de Produtividade

Incidem sobre o desempenho do processo de engenharia de software. Medem o quão produtivo será o software desenvolvido.

Métricas Orientadas ao Tamanho

São medidas diretas do software e do processo pelo qual ele se desenvolve. Permitem estimar tempo e recursos necessários com base no tamanho do software, se uma organização mantém registros simples.

Métricas Orientadas à Função

Foram propostas inicialmente por Albrecht, que sugeriu uma abordagem para a medição da produtividade chamada método de ponto de função. Pontos de função são obtidos usando uma função empírica que se baseia em medidas quantitativas do domínio da informação do software e avaliação subjetiva da complexidade do software.

Etapas para um Plano de Sistemas de Informação

O desenvolvimento de um Plano de Sistemas de Informação (PSI) geralmente segue estas etapas:

1. Plano de Início

Determinar o início formal do plano de sistemas, com o apoio do mais alto nível da organização.

2. Definição e Organização

Descrição detalhada e específica do PSI, atribuindo um cronograma e recursos humanos.

3. Estudo de Informações Relevantes

Informações de interesse são analisadas para o bom desenvolvimento do plano do sistema.

4. Identificação de Requisitos

Obter a especificação de requisitos que os sistemas de informação analisados pelo plano do sistema devem ter.

5. Análise da Situação Atual

Obter uma avaliação da situação atual.

6. Modelo de Projeto

Identificar e definir os Sistemas de Informação (SI) que apoiarão os processos afetados pelo Plano de Sistemas de Informação.

7. Arquitetura Tecnológica

Propor a arquitetura de tecnologia que suportará o modelo de informação e os sistemas de informação.

8. Definição Detalhada do Plano

Desenvolver o plano de sistemas de informação e o plano de pormenor: definição de projetos, atividades, tempo e recursos para implementar sistemas de informação e infraestrutura tecnológica.

9. Análise e Aprovação

O plano é enviado para revisão e aprovação final da gestão.

10. Documentação

Lista de requisitos e outros documentos gerados durante o processo.

Teste de Programa e Sistema

Testes de software (em inglês, testing) são os processos que permitem verificar e validar a qualidade de um produto de software. São usados para identificar possíveis falhas de qualidade, execução ou utilização de um programa de computador.

Em geral, distingue-se entre erros de programação (ou "bugs") e defeitos. Em um defeito, o programa não faz o que o usuário espera. Pelo contrário, um erro de programação pode ser descrito como um bug na semântica de um programa de computador. Isso pode ocorrer ou não, dependendo das condições de cálculo. Em ambos os casos, a versão do produto em teste antes da versão final (ou "mestre") é chamada de beta, e essa fase de testes, testes beta.

O Processo de Testes

É um processo técnico que exige profissionais altamente treinados em linguagens de desenvolvimento, métodos e técnicas de teste e ferramentas especializadas. O conhecimento necessário para lidar com testes é frequentemente o mesmo do desenvolvedor de software.

Tipos de Testes

  • Testes Unitários
  • Testes Funcionais
  • Testes de Integração
  • Testes de Validação
  • Teste de Sistema
  • Caixa Branca (sistemas)
  • Caixa Preta (sistemas)
  • Testes de Aceitação
  • Teste de Regressão
  • Teste de Carga
  • Teste de Desempenho
  • Testes de Estresse
  • Teste de Mutação

Implementação de Software

A configuração, parametrização e implementação de um sistema têm um tempo lógico, pois os usuários se deparam com novos papéis, novos fluxos de trabalho, novas tarefas, etc. Todas essas mudanças exigem tempo para adaptação.

Uma implementação bem-sucedida exige vontade, colaboração e flexibilidade de ambos os lados. Uma excelente solução é gerada com tempo de projeção e organização.

Etapas para Implementação Bem-Sucedida

  • 1. Instalação: Execute o Setup.exe, localizado dentro do CD original (ou meio de distribuição).
  • 2. Visualização de Vídeos de Aprendizagem: Assista aos vídeos de aprendizagem para ter um conhecimento básico do funcionamento das telas.
  • 3. Leitura do Manual: Dedique alguns minutos para ler o índice do manual do sistema como um todo.
  • 4. Prática: Tire alguns dias para praticar. É possível inserir dados de exemplo e depois excluí-los para começar de novo.
  • 5. Planejamento por Setor: Planeje a gestão de todos os setores. Parece simples, mas ao detalhar, percebemos a complexidade (compras, vendas, clientes, fornecedores, preços, custos, estoque, códigos de barras, cheques, dinheiro, contas correntes, comissões, bancos, depósitos, produtos, serviços, etc.). Recomendamos projetar e priorizar as áreas que necessitam de controle e gestão mais urgentes, elaborando um plano de trabalho a seguir.
  • 6. Divisão por Módulos: Divida a implementação por módulos (dependendo das suas necessidades), como:
    • Cadastro de Cliente
    • Cadastro de Fornecedor
    • Cadastro de Preço
    • Faturamento de Compras
    • Volume de Vendas
    • Controle de Caixa
    • Controle de Estoque
    • Controle de Comissões
    • Controle de Cheques
    • Controle de Conta Corrente
    • Estatísticas
  • 7. Comunicação e Registro: Tenha acesso a e-mail e mantenha um caderno onde registre todas as suas dúvidas.
  • 8. Backups Diários: Realize backups diários para que, em caso de eventualidade com o PC, você possa restaurar todas as operações até o último backup.

Documentação de Software

Para que a manutenção de uma aplicação de software seja o mais fácil possível, ela deve ter toda a sua documentação, ou seja, todos os documentos que foram gerados em todas as etapas anteriores: ERS (Especificação de Requisitos de Software), algoritmos, códigos fonte, manuais, etc.

Preparação de Manuais

Manual do Usuário

Esta parte é dividida em manuais diferentes, um para cada aplicação ou cliente, se necessário. Ele explicará em detalhe todas as opções possíveis que o usuário pode realizar com essas aplicações, utilizando imagens.

Este documento é destinado aos usuários finais.

Estrutura do Manual do Usuário:
  • 1. Início: Informações sobre o documento e quem o produziu.
  • 2. Introdução: Descreve o uso do documento e a quem se destina.
  • 3. Análise e requisitos do sistema: O que é necessário para instalar e usar o sistema.
  • 4. Explicação do funcionamento: Descrever passo a passo e mostrar de forma clara como o programa funciona.
  • 5. Glossário.

Recomendações para o Manual do Usuário:

  • Deve ser escrito de forma que qualquer pessoa possa entender com o mínimo de dificuldade possível.
  • Recomenda-se detalhar todas as etapas realizadas para usar o programa.
  • Precisar o âmbito e as limitações do programa.
  • Um bom ponto de partida é assumir que o leitor não tem conhecimento prévio de computadores.
Manual de Administração

Serve como ponto de partida para o sistema proposto, pois a função de gerência, juntamente com os usuários do sistema, determinará se ele atende aos requisitos do próprio sistema. Após a aprovação, será possível iniciar o desenvolvimento do sistema proposto e integrá-lo ao restante da documentação.

O manual se destina a permitir que a alta gerência obtenha as informações necessárias e suficientes sobre um determinado sistema e sirva como fonte de consulta após a implementação do sistema.

Elaboração do Manual Técnico

Este documento contém todas as informações sobre os recursos utilizados pelo projeto, incluindo uma descrição muito pormenorizada das características físicas e técnicas de cada elemento. Por exemplo, recursos do processador, velocidade, tamanho do equipamento, garantias, suporte e fornecedores de equipamentos adicionais.

Considerações Gerais para Documentação

Para a documentação de desenvolvimento de aplicações:

  • 1. Toda a documentação gerada por um projeto específico, que tenha sido analisada e aprovada, deverá possuir o seguinte perfil:
    • A) Identificação do documento.
    • B) A estrutura do documento.
  • 2. Para cada documento final, deverão ser entregues cópias ao pessoal envolvido no projeto.
  • 3. Após o desenvolvimento de um sistema, levando em consideração as possíveis alterações feitas durante o período de garantia (se houver), o usuário final do sistema deve receber uma versão final atualizada do manual técnico.
Estrutura do Manual Técnico:
  1. Índice: Lista de capítulos e páginas que fazem parte do documento.
  2. Introdução: Deve apresentar uma breve descrição do sistema desenvolvido, incluindo a área coberta, sua função principal e um detalhe das macros ou funções de seus componentes. Pode incluir uma mensagem da maior autoridade nas áreas abrangidas pelo manual.
    1. Objetivo Geral do Sistema: Deve descrever a finalidade do sistema.
    2. Objetivos Específicos: Deve descrever brevemente os objetivos específicos a serem cumpridos com o desenvolvimento do sistema.
  3. Conteúdo Técnico:
    1. Definição das regras de negócio implementadas no sistema desenvolvido.
    2. Diagramas de fluxo de dados, juntamente com seu dicionário de dados.
    3. Controles de auditoria implementados no sistema.
    4. Descrição dos campos necessários nas telas.
    5. Diagrama de Navegação do sistema.
    6. Requisitos de interface com outros sistemas.
    7. Modelo de dados lógico (diagrama entidade-relacionamento).
    8. Modelo físico de dados, juntamente com seu dicionário de dados.
    9. Matriz de processos versus organização.
    10. Matriz de programas versus entidades.
    11. Plataforma do Usuário: Descreve os requisitos mínimos de hardware e software para que o sistema possa ser instalado e executado corretamente (se necessário).
    12. Áreas de aplicação e/ou extensão do processo: Âmbito dos procedimentos abrangidos.
  4. Responsável: Para iniciar os trabalhos de integração de um manual, é essencial não diluir a responsabilidade, mas designar um coordenador, coadjuvado por uma equipe técnica, para conduzir o projeto em suas fases iniciais de concepção, implementação e atualização.
    1. Mapa de Navegação: Mostra graficamente a interconexão entre cada uma das telas do sistema, ajudando a saber como chegar a uma parte específica da aplicação.
    2. Descrição gráfica do mapa de navegação: Detalha as telas correspondentes ao fluxograma do mapa de navegação.
    3. Descrição detalhada do processo: Inclui telas, botões, caixas de texto, etc., e o código associado a cada rotina, tela, botão, etc.

Entradas relacionadas: