Análise do Software


No início:


  • Programação era uma forma de arte


  • Poucos métodos formais eram aplicados


  • Esquema baseado em tentativa e erro


  • Mundo indisciplinado


Atualmente:


  • Software é o item de maior custo


  • Está presente em 99% dos negócios


  • Existe uma demora na conclusão:
    • Porque se usam métodos e ferramentas?
    • Por que surgem tantos erros?
    • Por que é difícil medir os erros?


  • Alto volume de manutenção nas aplicações


  • Modismo inconsciente.


FAQ (Frequently Asked Questions)


O que é software?


  • Instruções que quando executadas, produzem a função e o desempenho desejados
  • Estruturas de dados que permitem a manipulação das informações
  • Documentos que descrevem a operação e o uso dos programas


  • Existem basicamente duas classificações:
    • Produtos genéricos
    • Produtos sob encomenda




O que é Engenharia de Software?


  • Disciplina da engenharia relacionada a todos os aspectos de produção de software
    • Abordagem sistemática e organizada
    • Atendendo a todos os ambientes. Ex: Web, móvel, dispositivos, etc.



Qual a diferença entre Engenharia de Software e Engenharia da Computação?


  • Engenharia de Computação: Relação com teorias e fundamentos


  • Engenharia de Software: Relação com a prática de desenvolvimento e entrega de software útil e de qualidade.


  • Ideal: Engenheiro se basear na teoria da Ciência da Computação
  • Métodos ad hoc são necessários.




Qual a diferença entre Engenharia de Software e Engenharia de Sistemas?


Engenharia de Sistemas:

  • Relacionada com todos os aspectos de desenvolvimento de sistemas baseados em hardware, software e engenharia de processo


Engenharia de Software:

  • Faz parte deste processo.


Exemplos:

  • Sistemas industriais complexos
  • Construção de um foguete.




O que é processo de software?


Conjunto de atividades cujo objetivo é o desenvolvimento ou evolução de software

1. Especificação

2. Desenvolvimento

3. Validação

4. Evolução


Como é a distribuição dos custos na criação de um software?


  • 60% => Desenvolvimento
  • 40% => Testes e aceitação


Depende de algumas variáveis:

  • Porte do sistema
  • Integração
  • Tempo de vida
  • Reutilização




Quais são as principais categorias de software?


  • Software básico => Linguagens baixo nível

  • Software tempo real => Resposta imediata

  • Software comercial => Aplicações especificas

  • Software científico => Envolvem complexidade

  • Software embutido => Embarcado em dispositivos

  • Software para PC => Aplicações comuns

  • Software de IA => Programas que aprendem




O que é CASE?


Acrônimo de Computer-Aided Software Engineering

Sistemas de software que fornecem apoio automatizado para atividades de processo de software.

  • Controle de Versão
  • Gerência de Projetos
  • Edição
  • Planejamento
  • Prototipagem
  • Teste
  • Documentação
  • Análise de Programa
  • Métricas
  • Programação
  • Reengenharia
  • Depuração




Quais são os atributos de um bom software?


  • Facilidade de manutenção: Deve permitir evolução simplificada


  • Confiança: Confiabilidade, proteção e segurança


  • Eficiência: Não deve desperdiçar recursos do sistema


  • Usabilidade: Deve apresentar uma interface amigável com o usuário e documentação adequada




Quais os desafios-chave de ESOF?


  • Heterogeneidade: Flexibilidade, adaptação


  • Entrega: Menor tempo de desenvolvimento mantendo a qualidade


  • Confiança: Técnicas que mantenham a fidelidade do usuário.