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.