← Projetos

Tutorial

Análise e projeto de sistemas

Do conceito de sistema ao caso de uso: ciclo de vida, levantamento de requisitos, viabilidade, análise estruturada, modelagem de dados, projeto, implantação, segurança e orientação a objetos.

Análise × projeto

Desenvolver sistemas é um processo sistemático, com fases de planejamento, análise, projeto, implantação e manutenção. Este tutorial se concentra nas duas do meio. [1] [2]

Análise de sistemasProjeto de sistemas
Coleta e interpreta fatos, identifica problemas e decompõe o sistema em partes.Planeja o sistema novo, ou a substituição do atual, definindo componentes e módulos que atendam aos requisitos.
Estuda o sistema para entender os seus objetivos e fazer as partes funcionarem bem juntas.Parte de um entendimento profundo do sistema antigo para decidir como usar melhor a tecnologia.
Responde: o que o sistema deve fazer?Responde: como o sistema vai fazer?

A análise e projeto de sistemas olha ao mesmo tempo para três coisas: os sistemas, os processos e a tecnologia. [3] [4]

O que é um sistema

A palavra vem do grego systema, um conjunto organizado de partes. Um sistema é um agrupamento ordenado de componentes interdependentes, ligados segundo um plano para atingir um objetivo específico. Exemplos: controle de tráfego, folha de pagamento, biblioteca automatizada, gestão de pessoas.

Todo sistema tem três restrições básicas:

  • tem estrutura e comportamento pensados para um objetivo predefinido;
  • seus componentes são interligados e interdependentes;
  • os objetivos da organização têm prioridade sobre os dos subsistemas.

Propriedades

  • Organização: estrutura e ordem entre os componentes.
  • Interação: a forma como os componentes operam entre si, como compras e produção, ou folha de pagamento e pessoal.
  • Interdependência: a saída de um subsistema é a entrada de outro.
  • Integração: as partes trabalham juntas, mesmo que cada uma tenha uma função própria.
  • Objetivo central: pode ser real ou apenas declarado; não é raro uma organização anunciar um objetivo e operar em função de outro. Os usuários precisam conhecê-lo cedo na análise.

Elementos

Um sistema dentro do seu ambiente. As entradas cruzam a fronteira por uma interface e chegam ao processador, que gera as saídas. O controle, acima, orienta o processador. Uma linha de realimentação leva a informação da saída de volta ao controle.
Entradas, processador, saídas, controle e realimentação, dentro da fronteira e do ambiente.
  • Entradas e saídas: as entradas são o que entra para ser processado; as saídas, o resultado útil para o usuário.
  • Processador: transforma entradas em saídas. Quando a especificação da saída muda, o processamento muda junto.
  • Controle: o subsistema de decisão que orienta entradas, processamento e saídas.
  • Realimentação (feedback): compara a saída com o objetivo e informa o controle. Na teoria de sistemas, a realimentação negativa corrige o desvio e estabiliza o sistema; a positiva reforça a tendência atual. [6]
  • Ambiente: o “supersistema” em que a organização opera, com fornecedores, concorrentes e leis que impõem restrições.
  • Fronteiras e interfaces: a fronteira define o que está dentro do sistema e a sua esfera de controle; as interfaces são os pontos de contato com outros sistemas.

Tipos, modelos e informação

Tipos de sistema

ClassificaçãoUm tipoO outro
Físico × abstratoTangível, como os computadores de um centro de dados.Conceitual, como uma fórmula ou um modelo.
Aberto × fechadoTroca entradas e saídas com o ambiente, como um sistema de informação.Isolado do ambiente; raro na prática.
Adaptativo × não adaptativoReage ao ambiente para sobreviver, como pessoas e animais.Não reage, como uma máquina simples.
Permanente × temporárioDura muito tempo, como políticas de negócio.Montado para um evento e desmontado depois.
Natural × fabricadoCriado pela natureza, como o sistema solar.Feito pelo homem, como barragens e trens.
Determinístico × probabilísticoComportamento previsível e conhecido.Resultado incerto, como a previsão do tempo.
Social, homem-máquina, máquinaFeito de pessoas (um clube); de pessoas e máquinas juntas (programar um computador); ou só de máquinas (um robô autônomo).

Os sistemas de informação feitos pelo homem reúnem hardware, software, comunicação, dados e aplicações para produzir a informação de que a organização precisa. Podem ser formais (memorandos e instruções que descem da direção), informais (a rede de colegas que resolve o dia a dia) ou baseados em computador (reservas, bancos, bibliotecas).

Modelos de sistema

  • Esquemático: um diagrama em duas dimensões com os elementos e as suas ligações.
  • De fluxo: mostra o fluxo ordenado de material, energia e informação; o PERT é um exemplo.
  • Estático: representa um par de relações, como atividade e tempo; o gráfico de Gantt é um exemplo.
  • Dinâmico: mostra o estado em mudança constante, com entradas, processador, programas e saídas.

Categorias de informação

Pirâmide com três camadas. No topo, informação estratégica, para a alta direção, apoiada por sistemas de apoio à decisão, com horizonte de anos. No meio, informação gerencial, para a média gerência, apoiada por sistemas de informação gerencial, com horizonte de meses. Na base, informação operacional, para supervisão e operação, apoiada por sistemas de processamento de dados, no dia a dia.
Cada nível de gestão precisa de um tipo de informação e de um tipo de sistema. [7] [8]

Ciclo de vida (SDLC)

O ciclo de vida de desenvolvimento de sistemas (SDLC) é um modelo conceitual com políticas e procedimentos para criar ou alterar sistemas. Um bom SDLC entrega um sistema de qualidade, que atende ao cliente, dentro de prazo e custo, e funciona bem na infraestrutura atual e futura. [5]

Cinco fases em círculo, ligadas por setas: 1, planejamento e viabilidade, que gera o relatório de viabilidade; 2, análise e especificação, que gera a especificação de requisitos; 3, projeto, que gera o documento de projeto; 4, implementação, que entrega o sistema testado e instalado; 5, manutenção e suporte, com correções e melhorias, que leva de volta ao planejamento.
As cinco fases do SDLC e o que cada uma entrega.
  1. Planejamento e viabilidade: define o problema e o escopo, os objetivos do sistema novo, riscos, restrições, integração e segurança; termina com o relatório de viabilidade e o cronograma.
  2. Análise e especificação: levanta, analisa e valida as informações, define requisitos e protótipos, avalia alternativas e prioriza; termina com a especificação de requisitos de software (SRS).
  3. Projeto: desenha a aplicação, a rede, os bancos de dados, as interfaces com o usuário e com outros sistemas; cria planos de contingência, treinamento, manutenção e operação; termina com o documento de projeto.
  4. Implementação: codifica, integra os módulos, testa segundo o plano de testes e instala o sistema no seu ambiente.
  5. Manutenção e suporte: atende os usuários, corrige os defeitos que sobraram e incorpora novos requisitos.

O analista de sistemas

É quem conhece o sistema a fundo e conduz o projeto, alinhando os objetivos do sistema de informação aos da organização. Suas principais funções:

  • entender os requisitos dos usuários com técnicas de levantamento e priorizá-los por consenso;
  • analisar e avaliar até chegar a um sistema adequado e fácil de usar;
  • propor alternativas, escolher a melhor e quantificar custos e benefícios;
  • escrever especificações que usuários e programadores entendam;
  • garantir um projeto lógico modular e planejar avaliações periódicas depois da entrada em produção.
HabilidadeO que inclui
InterpessoalFazer a ponte entre usuários e programadores, facilitar grupos, liderar equipes pequenas, gerenciar expectativas, comunicar e ensinar.
AnalíticaConhecer a organização, identificar, analisar e resolver problemas, avaliar prós e contras, ter bom senso e curiosidade.
GerencialEntender o vocabulário e as práticas dos usuários, gerenciar recursos, projetos, mudanças e riscos.
TécnicaConhecer computadores, software, ferramentas de projeto e acompanhar as novas tecnologias.

Levantamento de requisitos

Um requisito é uma característica essencial do sistema novo: capturar ou processar dados, controlar atividades, produzir informação ou apoiar a gestão. Determinar requisitos envolve três atividades:

  • Antecipação: prever características a partir da experiência. Ajuda a olhar áreas que passariam despercebidas, mas pode introduzir vieses.
  • Investigação: estudar e documentar o sistema atual com técnicas de levantamento, protótipos e ferramentas; é o coração da análise.
  • Especificação: analisar os dados levantados, identificar os requisitos essenciais e descrever o sistema novo.

O resultado é a especificação de requisitos de software (SRS), que deve ser completa, sem ambiguidade e sem jargão, cobrir as necessidades operacionais, táticas e estratégicas e usar recursos gráficos. A antiga norma IEEE 830 sobre SRS foi substituída pela ISO/IEC/IEEE 29148. [10]

Técnicas de levantamento

TécnicaComo funcionaQuando brilha
EntrevistaEstruturada (perguntas padronizadas, abertas ou fechadas) ou não estruturada (conversa livre).Informação qualitativa, assuntos complexos, validação imediata das respostas.
QuestionárioPerguntas abertas, para explorar, ou fechadas, com as respostas possíveis já listadas.Muitas pessoas, em locais diferentes; opiniões e dados estatísticos com confidencialidade.
Análise de documentosEstudo de registros, procedimentos e formulários existentes.Entender rápido as transações e operações atuais antes de envolver outras pessoas.
ObservaçãoO analista vê pessoas, eventos e objetos no ambiente de trabalho.Quando os dados relatados são duvidosos ou o processo é difícil de explicar.
JADOficinas intensivas com donos, usuários, analistas e desenvolvedores, conduzidas por um facilitador.Troca meses de entrevistas por dias de trabalho conjunto; aumenta o comprometimento.
Pesquisa secundáriaLeitura de informações já existentes, internas ou externas.Barata e rápida; orienta a pesquisa primária.

O JAD (Joint Application Design) foi criado por Arnie Lind na IBM Canadá, em 1974, e formalizado depois por Tony Crawford e Chuck Morris. [9]

Qualidades de um bom requisito

QualidadeRequisito ruimRequisito bom
AtômicoAlunos poderão se matricular em cursos de graduação e pós-graduação.1. Alunos poderão se matricular em cursos de graduação. 2. Alunos poderão se matricular em cursos de pós-graduação.
Identificado de forma únicaDois requisitos com o mesmo número 1.1. Matrícula · 1.1 Graduação · 1.2 Pós-graduação.
CompletoO professor entra com usuário, senha e “outras informações relevantes”.O professor entra com usuário, senha e código do departamento.
Consistente e sem ambiguidadeO aluno faz graduação ou pós, nunca os dois; mas alguns cursos são abertos aos dois.O aluno faz graduação ou pós, nunca os dois.
RastreávelManter dados do aluno (ligado a qual requisito de negócio?).Manter dados do aluno, ligado ao requisito de negócio 4.1.
PriorizadoTodos os requisitos com prioridade 1.Cadastrar aluno: 1 · manter usuário: 2 · matricular: 3 · ver boletim: 4.
TestávelCada página carrega em tempo aceitável.As páginas de cadastro e matrícula carregam em até 5 segundos.

Estudo de viabilidade

É a investigação preliminar que ajuda a direção a decidir se vale a pena desenvolver o sistema. O objetivo é entender o escopo do problema, não resolvê-lo. O resultado é uma proposta formal de sistema, que serve de documento de decisão.

Passos: formar a equipe e nomear um líder; desenhar fluxogramas do sistema; identificar as deficiências do atual e definir metas; listar as alternativas; avaliar a viabilidade de cada uma; comparar desempenho e custo; classificar e escolher a melhor; e levar a proposta à direção.

ViabilidadePergunta que responde
EconômicaOs benefícios superam os custos? A análise de custo e benefício prefere a alternativa com retorno maior e mais rápido e com menos risco.
TécnicaA tecnologia atual dá conta, ou será preciso ampliar ou comprar recursos?
OperacionalO sistema vai funcionar na organização, com apoio da direção e aceitação das novas formas de trabalho?
ComportamentalComo os usuários vão reagir? Será preciso treinar, realocar ou mudar funções?
De cronogramaDá para terminar no prazo? Os prazos são razoáveis?
LegalO sistema respeita leis e contratos, como a proteção de dados pessoais?

Na literatura de gestão de projetos, essas dimensões aparecem resumidas na sigla TELOS: técnica, econômica, legal, operacional e de cronograma. [11]

Análise estruturada

A análise estruturada é um método que permite entender o sistema de forma lógica, com ferramentas gráficas que vão da visão geral aos detalhes. Ela é gráfica, divide os processos para dar uma visão clara do fluxo e é lógica, não física: não depende de fornecedor nem de hardware. [12] Suas ferramentas são o DFD, o dicionário de dados, as árvores e tabelas de decisão, o português estruturado e o pseudocódigo.

Diagrama de fluxo de dados (DFD)

Proposto por Larry Constantine e difundido por Ed Yourdon, Tom DeMarco e por Chris Gane e Trish Sarson no fim dos anos 1970, o DFD mostra como os dados fluem entre as funções do sistema: o que é processado, que transformações ocorrem, o que é guardado e para onde vão os resultados. [13] [14]

Legenda com os quatro símbolos do DFD: retângulo para entidade externa, círculo para processo, seta para fluxo de dados e retângulo aberto para depósito de dados. Abaixo, um DFD de biblioteca: o aluno envia um pedido ao processo 1.0 Emprestar livro, que consulta o depósito D1 Livros, grava no D2 Empréstimos e devolve um comprovante. O aluno entrega o livro ao processo 2.0 Devolver livro, que dá baixa em D2 e envia um aviso de atraso ao bibliotecário.
Os quatro símbolos do DFD (notação de DeMarco e Yourdon) e um exemplo de nível 1.

O diagrama de contexto é o nível 0: mostra o sistema inteiro como um único processo, cercado pelas entidades externas. Depois, cada processo é detalhado em níveis inferiores, de cima para baixo.

DFD físicoDFD lógico
Depende da implementação: mostra quem ou o que executa cada função.Independe da implementação: mostra só o fluxo de dados entre processos.
Detalha hardware, software, arquivos e pessoas.Descreve os eventos do negócio e os dados de cada evento.
Mostra como o sistema opera ou vai operar.Mostra como o negócio opera.

Dicionário de dados

Repositório estruturado com a descrição de todos os elementos do DFD: fluxos, depósitos, dados e processos. Melhora a comunicação com o usuário e é a base do banco de dados. [16]

NomeDescriçãoTipo e tamanho
ISBNNúmero internacional do livrotexto, 13
TITULOTítulo do livrotexto, 60
ASSUNTOAssuntos do livrotexto, 80
AUTORNome do autortexto, 40

Árvore e tabela de decisão

Considere a regra: quem paga adiantado ganha 5% de desconto; quem não paga adiantado só ganha o desconto se a compra for de R$ 10.000 ou mais e for cliente regular.

Árvore de decisão. Primeira condição: pagou adiantado? Se sim, 5% de desconto. Se não, segunda condição: compra de R$ 10.000 ou mais? Se não, sem desconto. Se sim, terceira condição: cliente regular? Se sim, 5% de desconto; se não, sem desconto.
A árvore mostra a ordem em que as condições são testadas. [18]

A tabela de decisão mostra todas as combinações de uma vez. Ela tem quatro quadrantes: condições (acima, à esquerda), entradas de condição (acima, à direita), ações (abaixo, à esquerda) e entradas de ação (abaixo, à direita). S = sim, N = não, – = indiferente, X = executar. [17]

CondiçõesRegra 1Regra 2Regra 3Regra 4
Pagou adiantadoSNNN
Compra ≥ R$ 10.000–SSN
Cliente regular–SN–
Ação: 5% de descontoXX
Ação: sem descontoXX

Português estruturado e pseudocódigo

O português estruturado descreve a lógica com frases imperativas e as estruturas da programação estruturada (sequência, decisão e repetição), sem sintaxe rígida. [19] A mesma regra fica assim:

SE o cliente pagou adiantado
    ENTÃO dar 5% de desconto
SENÃO
    SE a compra for de R$ 10.000 ou mais E o cliente for regular
        ENTÃO dar 5% de desconto
    SENÃO
        não dar desconto
    FIM-SE
FIM-SE

O pseudocódigo é parecido, mas já pensa na lógica do programa: independe de linguagem e costuma substituir os fluxogramas no projeto físico.

Qual ferramenta usar

  • DFD: para documentar o sistema, em alto ou baixo nível;
  • dicionário de dados: para organizar os requisitos de dados;
  • português estruturado: quando há muitos laços e ações complexas;
  • tabela de decisão: quando há muitas condições e a lógica é complexa;
  • árvore de decisão: quando a ordem das condições importa e elas são poucas.

Projeto do sistema e dados

O projeto transforma a SRS num formato implementável e decide como o sistema vai operar. Entradas: declaração de trabalho, plano de requisitos, análise da situação atual e requisitos propostos (modelo conceitual de dados, DFDs revisados e metadados). Saídas: mudanças de infraestrutura e organização, esquema de dados (em geral relacional), metadados, mapa da estrutura do programa, código ou pseudocódigo de cada módulo e um protótipo.

Tipos de projeto

  • Lógico: representação abstrata dos fluxos, entradas, saídas e depósitos de dados, com DFDs e modelos E-R.
  • Físico: como os dados entram, são validados, processados e exibidos; define mídias, banco de dados, cópias de segurança, plano de testes e de implantação.
  • Arquitetural (alto nível): a estrutura e o comportamento do sistema e a relação entre os módulos.
  • Detalhado: vem depois do arquitetural e desenvolve cada módulo.

Modelo entidade-relacionamento

O modelo conceitual de dados captura o máximo de significado sobre os dados da organização. O mais usado é o modelo entidade-relacionamento (E-R), publicado por Peter Chen em 1976. [20] [21]

  • Entidade: algo distinto do mundo real, como aluno, curso ou fornecedor.
  • Relacionamento: uma dependência com significado entre entidades, como “professor ministra curso”.
  • Atributo: uma propriedade de uma entidade ou relacionamento, como o nome do aluno.
Diagrama entidade-relacionamento. Aluno se relaciona com Curso pelo relacionamento matricula-se, com cardinalidade N para M e o atributo nota. Professor ministra Curso, com cardinalidade 1 para N e participação total de Curso, indicada por linha dupla. Aluno tem matrícula como chave, nome, telefones multivalorado e idade derivada. Curso tem código como chave e título. Professor tem registro como chave, nome e endereço composto de rua e cidade.
Um modelo E-R acadêmico, com os principais símbolos da notação de Chen.

Entre dois conjuntos de dados há três tipos de relacionamento: um para um (1:1), um para muitos (1:N) e muitos para muitos (N:M). A figura também mostra entidades fracas e atributos-chave, multivalorados, compostos e derivados.

Organização e acesso a arquivos

OrganizaçãoComo os registros ficamExemplo
SerialNa ordem em que chegam.Transações de caixa eletrônico
SequencialOrdenados por um campo-chave.Lista telefônica
Direta (relativa)Num endereço calculado a partir da chave, por uma função de hash.Consulta por código
IndexadaCom índices que permitem acesso sequencial e direto.Cadastro de clientes

O acesso sequencial percorre os registros do primeiro ao último e é eficiente quando se precisa de quase todos; o acesso direto vai ao endereço do registro. Os arquivos de uma organização podem ser: mestre (dados atuais, como clientes), tabela (mestre que muda pouco, como CEPs), transação (movimento do dia a dia, que atualiza o mestre), temporário, espelho (cópia exata, para continuidade), log (histórico de mudanças, para auditoria e recuperação) e arquivo morto (versões históricas).

Estratégias de projeto

  • De cima para baixo (top-down): começa no módulo principal e o divide em submódulos cada vez mais simples, até não haver mais o que dividir.
  • De baixo para cima (bottom-up): começa pelos módulos mais básicos e os agrupa em módulos maiores, até chegar ao principal. [22]

Projeto estruturado

O projeto estruturado, de Yourdon e Constantine, parte dos DFDs para montar o diagrama de estrutura: caixas que representam módulos, ligadas por linhas que mostram quem chama quem. O objetivo é reduzir a complexidade e aumentar a modularidade. [15] [23]

  • o módulo de controle dirige os módulos subordinados; o módulo de biblioteca é reutilizável e pode ser chamado de vários pontos;
  • o diagrama é centrado em transformação quando todas as transações seguem o mesmo caminho, e centrado em transação quando seguem caminhos diferentes;
  • a modularização permite testar primeiro as interfaces críticas, dividir o trabalho entre vários programadores e reutilizar código.

Acoplamento e coesão

Dois conceitos medem a qualidade de um projeto modular. Acoplamento é quanto um módulo depende dos outros; quanto mais forte, mais difícil implementar e manter. Coesão é quanto as partes de um módulo pertencem juntas. [24] [25]

Duas escalas do pior para o melhor. Acoplamento: conteúdo, comum, externo, controle, estrutura e dados. Coesão: coincidental, lógica, temporal, procedural, comunicacional, sequencial e funcional. Abaixo, quatro módulos todos interligados, com alto acoplamento, e quatro módulos com poucas ligações, com baixo acoplamento. A meta é baixo acoplamento e alta coesão.
A meta de todo projeto modular: baixo acoplamento e alta coesão.
  • Acoplamento, do pior ao melhor: de conteúdo (um módulo altera o interior de outro); comum (compartilham dados globais); externo (compartilham um formato ou protocolo externo); de controle (um passa parâmetros que controlam o outro); de estrutura (passam estruturas de dados inteiras); de dados (passam só os dados necessários).
  • Coesão, da pior à melhor: coincidental (partes sem relação); lógica (funções parecidas agrupadas); temporal (executadas no mesmo momento, como a inicialização); procedural (seguem uma ordem de execução); comunicacional (operam sobre os mesmos dados); sequencial (a saída de uma parte é a entrada da seguinte); funcional (tudo contribui para uma única tarefa).

Entrada, saída e formulários

Projeto de entrada

A qualidade da saída depende da qualidade da entrada. Os objetivos são: desenhar a entrada de dados e os seus procedimentos, reduzir o volume digitado, desenhar documentos-fonte e telas, e criar validações. Para evitar erros: formulários claros, com espaço suficiente e instruções; menos toques de teclado; e retorno imediato de erro. Os métodos incluem entrada em lote, on-line, por formulários legíveis por máquina e interativa.

Os controles de integridade da entrada verificam formato e completude de cada campo, e os registros de transação criam a trilha de auditoria de todas as mudanças no banco de dados.

Projeto de saída

A saída deve servir ao propósito, atender o usuário, ter a quantidade e o formato certos, chegar à pessoa certa e a tempo. As saídas externas vão para fora do sistema (algumas voltam como entrada, como um boleto); as internas apoiam a gestão, em três tipos de relatório:

  • detalhado: a informação quase sem filtro;
  • resumo: tendências e totais, para quem não quer detalhes;
  • de exceção: só o que foge de um padrão ou limite.

Relatórios devem trazer data e hora de emissão, título e paginação; formulários pré-impressos, número de versão e data de vigência.

Formulários

Formulários servem para entrada de dados; relatórios, só para leitura. Um bom formulário é simples, com sequência lógica e rótulos claros, cumpre o propósito, facilita o preenchimento correto e a navegação. O texto original ainda descreve formulários em papel (planos, jogos com carbono, contínuos e sem carbono), hoje raros.

Documentação

Documentar reduz o tempo de parada, corta custos, acelera a manutenção, facilita o treinamento e a comunicação entre técnicos e não técnicos. A documentação precisa ser atualizada com regularidade. São quatro tipos:

TipoPara quemO que contém
De programaProgramadoresEntradas, saídas e lógica de cada módulo, com comentários internos e externos.
De sistemaEquipe técnicaEspecificação técnica: funções, fluxo geral, dicionário de dados, DFDs, modelos, telas e a solicitação que originou o projeto.
De operaçãoOperadoresAgendamento de processamentos, arquivos de entrada e saída, listas de distribuição, mensagens de erro, procedimentos de reinício e segurança.
De usuárioUsuáriosVisão geral, telas e menus, exemplos de relatórios, regras de segurança, como pedir mudanças e relatar problemas, exceções e perguntas frequentes.

Testes, implantação e manutenção

Testes e garantia da qualidade

O teste verifica se o software faz o que os requisitos pedem; um teste bem-sucedido é o que encontra erros. Ele começa pelos módulos e avança até o sistema integrado, seguindo uma estratégia, um plano, casos e procedimentos de teste e o registro dos resultados. Os tipos principais são o unitário, o de integração e o funcional (positivo, com entradas válidas, e negativo, com entradas inválidas). O tutorial Testes de software trata o assunto em detalhe.

A garantia da qualidade de software (SQA) revisa produtos e processos ao longo de todo o ciclo, em quatro níveis: revisão do código contra as regras (walk-through), compilação e ligação em todas as plataformas, execução em condições variadas e teste de desempenho.

Treinamento

Um sistema bem projetado pode fracassar se for mal operado. Os operadores aprendem as rotinas, as falhas comuns e o que fazer em cada uma; os usuários aprendem a operar o sistema e a resolver problemas simples. O treinamento pode ser conduzido por instrutor, em sala presencial ou virtual, ou no ritmo do aluno, com cursos multimídia ou pela web.

Conversão

É a migração do sistema antigo para o novo. O plano de conversão lista os arquivos a converter, os documentos e procedimentos novos, os controles, os responsáveis e o cronograma.

Quatro linhas do tempo. Direta: o sistema antigo é desligado e o novo entra no mesmo momento. Paralela: os dois rodam juntos por um período e os resultados são comparados. Piloto: o novo sistema entra primeiro numa unidade e depois em todas. Por fases: o novo substitui o antigo módulo a módulo.
As quatro estratégias de conversão.
MétodoComo funcionaVantagensDesvantagens
DiretaO novo substitui o antigo de uma vez.Benefício imediato; menor custo; obriga a usar o novo.Sem volta se der errado; exige planejamento cuidadoso.
ParalelaOs dois rodam juntos por um tempo.Permite comparar resultados; tem volta segura.Custo alto, trabalho em dobro; usuários podem se apegar ao antigo.
PilotoO sistema completo entra primeiro numa unidade ou grupo e depois nos demais.Teste real com risco limitado a um local.Se o piloto não for representativo, problemas aparecem depois.
Por fasesO novo entra aos poucos, módulo a módulo ou etapa a etapa.Risco diluído; aprendizado gradual.Mais demorada; exige interfaces temporárias entre o novo e o antigo.

Depois da implantação, a revisão pós-implantação (PIER) compara custos, benefícios e prazos reais com os previstos, aponta forças e fraquezas e melhora as estimativas dos próximos projetos. Participam a equipe do projeto, a direção, os usuários e a gestão estratégica.

Manutenção

Manter é conservar o sistema de acordo com os seus requisitos; melhorar é incorporar requisitos novos. A norma ISO/IEC 14764 classifica a manutenção em quatro tipos: [26]

  • corretiva: corrige defeitos encontrados, em geral relatados pelos usuários;
  • adaptativa: adapta o sistema a mudanças no ambiente, como um novo sistema operacional ou uma nova lei;
  • perfectiva: melhora desempenho, usabilidade ou acrescenta funções pedidas pelos usuários;
  • preventiva: antecipa problemas que ainda não se manifestaram.

Segurança e auditoria

Auditoria de sistemas

A auditoria revisa o desempenho de um sistema em operação para comparar o real com o planejado, verificar se os objetivos continuam válidos e foram atingidos, garantir a confiabilidade das informações e proteger contra fraudes. O auditor deve participar desde o início do desenvolvimento, para que o sistema já nasça auditável.

A trilha de auditoria (audit trail) é o registro de quem acessou o sistema e o que fez em cada período; permite rastrear como os dados mudaram. [27] A auditoria pode ser feita em volta do computador (processar manualmente amostras de entrada e comparar com a saída do sistema) ou através do computador (examinar resultados intermediários pela trilha e por totais de controle).

Segurança

Proteger dados, software e hardware contra roubo, acesso ou alteração não autorizados e danos acidentais. Envolve a privacidade (ninguém acessa os dados de alguém sem permissão) e a integridade (a qualidade e a confiabilidade dos dados). As medidas de controle incluem:

  • cópias de segurança: completas periódicas, incrementais mais frequentes, guardadas em local remoto e, em sistemas críticos, espelhamento das transações;
  • controle de acesso físico: fechaduras, biometria, crachás e registro de quem lê ou altera dados;
  • controles lógicos: senhas, criptografia, treinamento dos funcionários, antivírus e firewall.

Análise de risco

Risco é a possibilidade de perder algo de valor. A análise identifica os componentes do sistema, as ameaças a cada um e o prejuízo se elas se concretizarem. A gestão de risco é contínua: identificar medidas de segurança, calcular o custo de cada uma, compará-lo com a perda esperada, escolher e implantar as medidas e revisá-las periodicamente.

Orientação a objetos e UML

Na abordagem orientada a objetos, estrutura e comportamento ficam juntos em pequenos módulos que combinam dados e processos. Ela facilita mudanças a baixo custo, promove o reúso, simplifica a integração de componentes e o projeto de sistemas distribuídos. [28]

Elementos e características

  • Objeto: algo do domínio do problema, identificado por dados e comportamento, como um aluno ou uma conta bancária.
  • Classe: o molde que agrupa objetos com os mesmos atributos (dados) e métodos (comportamento).
  • Mensagem: a chamada de um objeto a um método de outro.
  • Encapsulamento: os dados de um objeto ficam escondidos e só são acessados pelos seus métodos, o que permite mudá-los sem afetar o resto.
  • Abstração: ficar só com os atributos e métodos essenciais para o problema.
  • Herança: criar subclasses que herdam atributos e operações de uma classe existente.
  • Polimorfismo: a mesma operação é executada de formas diferentes por classes diferentes.
  • Relacionamentos: associação (duas classes colaboram), agregação (todo e partes) e generalização (classe filha baseada na mãe).

UML

A Linguagem de Modelagem Unificada (UML) é a linguagem visual padrão para modelar sistemas orientados a objetos, mantida pelo Object Management Group (OMG); a versão atual é a 2.5.1, de 2017. [29] [30]

Diagrama de classes. Pessoa, com nome, email e o método contatar, é a superclasse de Aluno, com matrícula e matricular, e de Professor, com registro e lecionar, ligadas por uma seta de generalização. Aluno se associa a Curso por matricula-se, muitos para muitos. Professor ministra Curso, um para muitos. Curso tem código, título e o método abrirTurma.
O mesmo domínio do modelo E-R, agora como diagrama de classes UML.
  • Modelos estáticos mostram a estrutura: diagramas de classes, de objetos e de casos de uso.
  • Modelos dinâmicos mostram o comportamento em resposta a eventos: diagramas de sequência, de comunicação, de estados e de atividades.
  • As operações sobre objetos são de criação e destruição (incluir um funcionário), consulta (ler o endereço, sem efeito colateral) e atualização (mudar o endereço).

Estruturada × orientada a objetos

Abordagem estruturadaAbordagem orientada a objetos
DecomposiçãoEm funções e processosEm classes e objetos, com dados e comportamento juntos
Direção típicaDe cima para baixoCombina de cima para baixo e de baixo para cima
ComunicaçãoChamadas de funçãoTroca de mensagens entre objetos
ReúsoPor bibliotecas de funçõesPor herança, composição e componentes
ModelosDFD, dicionário de dados, E-RCasos de uso, classes, sequência, estados (UML)
Gestão do projetoFases bem definidas, mais fáceis de acompanharIterativa; as fronteiras entre fases são menos nítidas
Indicada paraProcessamento de dados, sistemas embarcados e de tempo realA maioria das aplicações de negócio e sistemas que evoluem muito

O ciclo orientado a objetos tem análise (com o modelo de casos de uso e as classes do domínio), projeto (refina classes, atributos, métodos, interface e acesso a dados), prototipação, implementação e testes incrementais. A implementação pode usar o desenvolvimento baseado em componentes (montar o sistema com peças prontas e testadas) ou o desenvolvimento rápido de aplicações (RAD), que complementa o SDLC com ferramentas para construir e entregar em incrementos. [31]

Casos de uso e histórias

Um caso de uso descreve a interação entre um usuário e o sistema para atingir um objetivo, com um fluxo básico e fluxos alternativos. [32]

Caso de uso: Registrar usuário
ResumoPara ter informação personalizada, fazer pedidos ou outras transações, o novo usuário registra um nome de usuário e uma senha.
Fluxo básico1. O usuário pede para se registrar. 2. O sistema pede usuário e senha. 3. O usuário informa. 4. O sistema verifica se o nome de usuário já existe. 5. O sistema pede nome*, endereço, CEP*, telefone e e-mail (* obrigatórios). 6. O usuário informa. 7. O sistema define a localização e o nível de acesso e grava os dados. 8. O sistema executa o caso de uso Registrar preferências. 9. O sistema abre a sessão e exibe uma mensagem de boas-vindas.
Fluxos alternativosPasso 4: se o nome já existe, o sistema avisa e volta ao passo 2. Passo 6: se falta um campo obrigatório, o sistema avisa e repete o passo 5.
Ponto de extensãoRegistrar preferências
Pré-condiçãoNenhuma
Pós-condiçãoO usuário acessa dados e funções conforme o seu nível de acesso.
Regras de negócioA localização é a unidade mais próxima do CEP. Níveis de acesso: 0, 1 ou 2; o padrão é 0.

Nos métodos ágeis, os requisitos costumam ser organizados numa hierarquia que vai do objetivo de negócio à tarefa técnica, e o requisito em si é escrito como história de usuário. [33]

Cinco níveis em escada: tema, autoatendimento do aluno, um objetivo de negócio; épico, matrícula on-line, que leva vários sprints; funcionalidade, escolha de disciplinas, em um ou poucos sprints; história, como aluno, quero ver as vagas para escolher a turma, que cabe num sprint; e tarefa, criar a consulta de vagas na API, que leva horas.
Tema, épico, funcionalidade, história e tarefa.

Revisão rápida

Tente responder antes de abrir cada pergunta.

1. Qual a diferença entre análise e projeto de sistemas?

A análise define o que o sistema deve fazer, a partir do estudo do problema; o projeto define como ele vai fazer, com componentes, dados, interfaces e módulos.

2. Quais são os elementos de um sistema?

Entradas, processador, saídas, controle, realimentação, ambiente, fronteiras e interfaces.

3. Quais são os quatro símbolos de um DFD?

Entidade externa (origem ou destino), processo (transforma dados), fluxo de dados e depósito de dados.

4. Quando usar uma tabela de decisão e quando usar uma árvore de decisão?

Tabela, quando há muitas condições e combinações; árvore, quando as condições são poucas e a ordem em que são testadas importa.

5. No modelo E-R, como fica “um aluno se matricula em vários cursos, e um curso tem vários alunos”?

Um relacionamento muitos para muitos (N:M) entre as entidades Aluno e Curso, que pode ter atributos próprios, como a nota.

6. Qual é a meta em acoplamento e coesão?

Baixo acoplamento (módulos pouco dependentes, trocando só os dados necessários) e alta coesão (cada módulo com uma única função).

7. Qual a diferença entre conversão direta e paralela?

Na direta, o novo sistema substitui o antigo de uma vez: barato, mas sem volta. Na paralela, os dois rodam juntos até o novo se provar: seguro, mas caro.

8. Quais são os quatro tipos de manutenção da ISO/IEC 14764?

Corretiva (corrige defeitos), adaptativa (adapta a mudanças no ambiente), perfectiva (melhora ou acrescenta funções) e preventiva (antecipa problemas).

↑ Voltar ao topo

Referências

  1. Giovani Perotto Mesquita, “System Analysis and Design”, GitHub Gist, texto original deste tutorial, gist.github.com/GiovaniPM/506ed93c3796fbaeb52effff0dcda2ca.
  2. Tutorialspoint, “System Analysis and Design Tutorial”, acesso em 25/09/2026, tutorialspoint.com/system_analysis_and_design/index.htm.
  3. Wikipedia (em inglês), “Systems analysis”, acesso em 25/09/2026, en.wikipedia.org/wiki/Systems_analysis.
  4. Wikipedia (em inglês), “Systems design”, acesso em 25/09/2026, en.wikipedia.org/wiki/Systems_design.
  5. Wikipedia (em inglês), “Systems development life cycle”, acesso em 25/09/2026, en.wikipedia.org/wiki/Systems_development_life_cycle.
  6. Wikipedia (em inglês), “Feedback”, acesso em 25/09/2026, en.wikipedia.org/wiki/Feedback.
  7. Wikipedia (em inglês), “Management information system”, acesso em 25/09/2026, en.wikipedia.org/wiki/Management_information_system.
  8. Wikipedia (em inglês), “Decision support system”, acesso em 25/09/2026, en.wikipedia.org/wiki/Decision_support_system.
  9. Wikipedia (em inglês), “Joint application design”, acesso em 25/09/2026, en.wikipedia.org/wiki/Joint_application_design.
  10. Wikipedia (em inglês), “Software requirements specification”, acesso em 25/09/2026, en.wikipedia.org/wiki/Software_requirements_specification.
  11. Wikipedia (em inglês), “Feasibility study”, acesso em 25/09/2026, en.wikipedia.org/wiki/Feasibility_study.
  12. Wikipedia (em inglês), “Structured analysis”, acesso em 25/09/2026, en.wikipedia.org/wiki/Structured_analysis.
  13. Wikipedia (em inglês), “Data-flow diagram”, acesso em 25/09/2026, en.wikipedia.org/wiki/Data-flow_diagram.
  14. Tom DeMarco, Structured Analysis and System Specification, Prentice Hall, 1979.
  15. Edward Yourdon e Larry L. Constantine, Structured Design, Prentice Hall, 1979.
  16. Wikipedia (em inglês), “Data dictionary”, acesso em 25/09/2026, en.wikipedia.org/wiki/Data_dictionary.
  17. Wikipedia (em inglês), “Decision table”, acesso em 25/09/2026, en.wikipedia.org/wiki/Decision_table.
  18. Wikipedia (em inglês), “Decision tree”, acesso em 25/09/2026, en.wikipedia.org/wiki/Decision_tree.
  19. Wikipedia (em inglês), “Structured English”, acesso em 25/09/2026, en.wikipedia.org/wiki/Structured_English.
  20. Peter P. Chen, “The Entity-Relationship Model: Toward a Unified View of Data”, ACM Transactions on Database Systems, v. 1, n. 1, 1976.
  21. Wikipedia (em inglês), “Entity–relationship model”, acesso em 25/09/2026, en.wikipedia.org/wiki/Entity–relationship_model.
  22. Wikipedia (em inglês), “Top-down and bottom-up design”, acesso em 25/09/2026, en.wikipedia.org/wiki/Top-down_and_bottom-up_design.
  23. Wikipedia (em inglês), “Structure chart”, acesso em 25/09/2026, en.wikipedia.org/wiki/Structure_chart.
  24. Wikipedia (em inglês), “Coupling (computer programming)”, acesso em 25/09/2026, en.wikipedia.org/wiki/Coupling_(computer_programming).
  25. Wikipedia (em inglês), “Cohesion (computer science)”, acesso em 25/09/2026, en.wikipedia.org/wiki/Cohesion_(computer_science).
  26. Wikipedia (em inglês), “Software maintenance”, acesso em 25/09/2026, en.wikipedia.org/wiki/Software_maintenance.
  27. Wikipedia (em inglês), “Audit trail”, acesso em 25/09/2026, en.wikipedia.org/wiki/Audit_trail.
  28. Wikipedia (em inglês), “Object-oriented analysis and design”, acesso em 25/09/2026, en.wikipedia.org/wiki/Object-oriented_analysis_and_design.
  29. Wikipedia (em inglês), “Unified Modeling Language”, acesso em 25/09/2026, en.wikipedia.org/wiki/Unified_Modeling_Language.
  30. Object Management Group, “Unified Modeling Language (UML)”, especificação, acesso em 25/09/2026, omg.org/spec/UML.
  31. Wikipedia (em inglês), “Rapid application development”, acesso em 25/09/2026, en.wikipedia.org/wiki/Rapid_application_development.
  32. Wikipedia (em inglês), “Use case”, acesso em 25/09/2026, en.wikipedia.org/wiki/Use_case.
  33. Wikipedia (em inglês), “User story”, acesso em 25/09/2026, en.wikipedia.org/wiki/User_story.
↑ Voltar ao topo