Conceitos Essenciais de Engenharia de Software

Classificado em Tecnologia

Escrito em em português com um tamanho de 4,03 KB

Engenharia de Software: Conceitos Fundamentais

A Engenharia de Software (ES) é o conjunto total de atividades necessárias para transformar os requisitos de um usuário em software.

Processos de Engenharia de Software

  • Especificação de Software

    Clientes e engenheiros definem o software a ser produzido e as restrições para a sua operação.

  • Desenvolvimento de Software

    O software é projetado e programado.

  • Validação de Software

    O software é verificado para garantir que é o que o cliente deseja.

  • Evolução de Software

    O software é modificado para se adaptar às mudanças dos requisitos do cliente e do mercado.

Requisito de Software

Requisitos de software são propriedades desejáveis para um sistema de software. Esses requisitos refletem as necessidades dos clientes de um sistema que ajuda a resolver algum problema. O processo de descobrir, analisar, documentar e verificar também fazem parte do conceito de ‘requisito de software’.

Modelos de Desenvolvimento

Modelo Incremental

O modelo incremental combina elementos do modelo cascata, sendo aplicado de maneira iterativa. O modelo de processo incremental é iterativo, assim como a prototipagem, mas, diferente da prototipagem, o incremental tem como objetivo apresentar um produto operacional a cada incremento realizado.

Modelo Espiral

O modelo espiral combina a iteratividade da prototipagem com os aspectos controlados e sistemáticos do modelo sequencial linear e considera a perspectiva da análise de risco.

Etapas do Modelo Cascata

  • Requisitos

    Gera documentos de especificação do sistema que servem de base para orçamento, cronograma, etc.

  • Análise

    Compreensão clara e precisa do domínio do problema e das funcionalidades do software.

  • Projeto

    Definição das estruturas de dados, arquitetura do software, procedimentos e interfaces.

  • Codificação

    Tradução do projeto para uma linguagem legível para a máquina.

  • Teste

    Visa garantir que a entrada do programa produz o resultado esperado.

  • Manutenção

    Analisar problemas de desempenho, ocorrências de erros, etc.

Integração Contínua

A Integração Contínua é um processo que se integra às práticas de desenvolvimento ágil e visa manter a qualidade no desenvolvimento de software, diminuindo as falhas. Isso ocorre porque o processo realiza automaticamente diversos testes e builds automatizados do projeto. Caso algo esteja errado ou fora dos padrões pré-estabelecidos (padrões de qualidade), os envolvidos são avisados automaticamente.

Gestor de Projetos

O Gestor de Projetos é responsável por definir o escopo, dar andamento, gerenciar riscos, realocar componentes da equipe, adequar pessoas às responsabilidades e conferir se o orçado está batendo com o planejado.

Cronograma de Projetos

Para criar um cronograma, é necessário identificar atividades, identificar dependências entre as atividades, estimar recursos para atividades, alocar pessoas para atividades e criar diagramas de projetos.

Tipos de Requisitos

  • Requisitos Funcionais

    Declarações de serviços que o sistema deve fornecer, como o sistema deve reagir a entradas específicas e como deve se comportar em determinadas situações.

  • Requisitos Não Funcionais

    Restrições sobre os serviços ou as funções oferecidas pelo sistema. Exemplos: requisitos de confiabilidade, robustez, eficiência.

  • Requisitos de Usuário

    São declarações, em linguagem natural com diagramas, de quais serviços são esperados do sistema e as restrições sob as quais ele deve operar.

  • Requisitos do Sistema

    Define as funções, os serviços e as restrições operacionais do sistema. O documento de requisitos de sistema deve ser preciso.

Entradas relacionadas: