Fundamentos e Processos Essenciais da Engenharia de Software

Classificado em Computação

Escrito em em português com um tamanho de 8,59 KB

Engenharia de Software

Introdução

  • A economia de todas as nações é dependente de software.
  • Cada vez mais sistemas são controlados por software.
  • A Engenharia de Software se preocupa com os métodos, teorias e ferramentas para o desenvolvimento de software.

Custo do Software

  • Os custos de software geralmente dominam os custos do sistema de computador.
  • Custa mais para se manter um software do que para desenvolvê-lo.

Produtos de Software

Genérico

Sistemas autônomos que são comercializados e vendidos a qualquer cliente que deseja comprá-los.

  • Programas gráficos, ferramentas de gerenciamento de projetos, software CAD, software para propósitos específicos, tais como sistemas de registros odontológicos.

Atributos Essenciais do Software

  • Manutenibilidade;
  • Confiança e Proteção;
  • Eficiência;
  • Aceitabilidade.

Manutenibilidade

Refere-se à facilidade, precisão, segurança e economia na execução de ações de manutenção nesse sistema.

Confiança e Proteção

Um software confiável não deve causar prejuízos físicos ou econômicos no caso de falha no sistema. Usuários maliciosos não devem ser capazes de acessar ou prejudicar o sistema.

Eficiência

O software não deve desperdiçar os recursos do sistema, como memória e processador. Eficiência inclui capacidade de resposta, tempo de processamento, uso de memória, etc.

Aceitabilidade

Está baseada na aceitação do software pelo cliente: se o software é visual, fácil de se utilizar e se ele é compatível com outros sistemas usados por ele.

Essência da Engenharia de Software

  • Compreender o Problema (Comunicação e análise)
  • Planejar a Solução (Modelagem e projeto de software)
  • Executar o Plano (Geração de código)
  • Examinar o Resultado (Teste e garantia de qualidade)

Elementos de um Sistema Baseado em Computador

  • Software
  • Hardware
  • Pessoal
  • Banco de Dados
  • Documentação
  • Procedimentos

Entradas de Sistemas

Entradas Exógenas

Essas entradas ligam uma parte de uma determinada visão a outras partes do mesmo nível ou de outros níveis.

Entradas Endógenas

Essas entradas ligam componentes individuais de uma parte em uma determinada visão.

Arquiteturas de Sistemas

  • Arquitetura de Dados:

    Fornece a estrutura para as necessidades da informação de um negócio ou função do negócio.

  • Arquitetura de Aplicação:

    Abrange os elementos de um sistema que transformam objetos da arquitetura de dados para alguma finalidade do negócio.

  • Infraestrutura Tecnológica:

    Fornece os fundamentos para a arquitetura de dados e arquitetura de aplicações.

Atividades do Processo de Software

  • A Especificação de Software: Onde os clientes e engenheiros definem o software que deve ser produzido e as restrições sobre seu funcionamento.
  • Desenvolvimento de Software: Em que o software é projetado e programado.
  • Validação de Software: Verificar se o software está atendendo à necessidade do cliente.
  • Evolução de Software: Atividade de atualização para o software, onde o software é modificado para refletir as mudanças de requisitos do cliente e do mercado.

Tipos de Aplicações de Software

  • Aplicações Stand-alone: Aplicações feitas num computador local. Incluem toda a funcionalidade necessária e não precisam estar conectadas a uma rede.
  • Interativas Baseadas em Transações: São aplicações executadas em um computador remoto e são acessadas pelos usuários a partir dos seus próprios PCs. Essas incluem aplicações web, tais como para e-commerce.
  • Sistemas de Controle Embutidos: São aqueles que controlam e gerenciam dispositivos de hardware.
  • Sistemas de Entretenimento: Para uso pessoal, e se destinam a entreter o usuário.
  • Sistemas de Processamento de Lotes: Sistemas corporativos para processar dados em grandes lotes.
  • Sistemas de Modelagem e Simulação: São desenvolvidos por cientistas e engenheiros para modelar processos físicos ou situações, que incluem muitos objetos separados que interagem entre si.
  • Sistemas de Coleta de Dados: São sistemas que coletam dados do seu ambiente, junto com sensores, e enviam esses dados para outros sistemas, para processamento.
  • Sistemas de Sistemas: São sistemas compostos por uma série de outros sistemas de software.

Modelos Genéricos de Processos de Software

  • O Modelo Cascata: Fases separadas e distintas de especificação e desenvolvimento.
  • Desenvolvimento Evolutivo: Especificação e Desenvolvimento são intercalados.
  • Desenvolvimento Formal de Sistema: Modelo matemático do sistema é transformado em uma implementação.
  • Desenvolvimento Baseado em Reuso: Sistema montado a partir de componentes existentes.

Modelos de Processos de Software

  • Modelo Cascata
  • Desenvolvimento Incremental
  • Engenharia de Software Orientada a Reuso

Modelo Cascata

  • Modelo dirigido a planos.
  • Fases de especificação e desenvolvimento separadas e distintas.

Fases do Modelo Cascata

  • Análise e Definição dos Requisitos:

    Estabelece os serviços, as restrições e as metas do sistema. Consulta o usuário e faz o detalhamento para a especificação dos requisitos.

  • Projeto de Sistemas e Software:

    Define a arquitetura geral do sistema, aloca os requisitos de HW/SW, identifica as abstrações fundamentais dos sistemas de SW e seus relacionamentos.

  • Testes de Unidade e Implementação:

    Desenvolvimento de um conjunto de programas, verificação e teste de cada unidade para o atendimento de sua especificação.

  • Integração e Testes do Sistema:

    Integração das unidades individuais, teste do sistema completo, assegurar que todos os requisitos de SW foram atendidos, sistema entregue ao cliente.

  • Operação e Manutenção:

    Instalação e utilização do sistema, correção de erros não identificados anteriormente.

Processos da Engenharia de Requisitos

  • Estudo de Viabilidade: É viável construir o sistema?
  • Elicitação e Análise de Requisitos: O que os stakeholders do sistema precisam ou esperam do sistema?
  • Especificação de Requisitos: Definição dos requisitos detalhados.
  • Validação de Requisitos: Verificação da completude dos requisitos.

Diretivas e Restrições do Projeto

Define para o que o software está sendo feito, para quem, e por quem vai ser desenvolvido. É onde se faz o levantamento de todas as restrições explicitadas pelo cliente. Nessa parte deve ser especificada a área a que se destina o software.

Tipos de Requisitos

  • Requisitos de Usuários: Descrição em linguagem natural e diagramas dos serviços que o sistema fornece e suas restrições operacionais, escrito de uma forma que o cliente entenda.
  • Requisitos de Sistemas: Documento estruturado estabelecendo descrições detalhadas dos serviços do sistema, escrito como um contrato entre cliente e consumidor.
  • Especificação de Software: Descrição detalhada do software, pode servir como base para implementação ou concepção, escrito para desenvolvedores.

Classificação dos Requisitos Não-Funcionais

  • Requisitos de Produtos: Especifica que características o produto deve ter: Velocidade, Confiabilidade, etc.
  • Requisitos Organizacionais: Requisitos que falam sobre as políticas organizacionais da empresa: Padrões de Processo usados, Requisitos de implementação, etc.
  • Exigências Externas: Requisitos que surgem de fatores externos do sistema: Requisitos Legais, Requisitos de Interoperabilidade, etc.

Entradas relacionadas: