Engenharia de Software: Guia Completo
Classificado em Computação
Escrito em em português com um tamanho de 9,29 KB.
1. Atributos de um Bom Software
Um bom software deve possuir os seguintes atributos:
- Atender aos requisitos funcionais e de desempenho solicitados pelo usuário;
- Facilidade de manutenção;
- Alto nível de confiança.
2. Engenharia de Software vs. Ciência da Computação
A Engenharia de Software foca nos aspectos práticos da produção de sistemas de software, enquanto a Ciência da Computação estuda os fundamentos teóricos dos aspectos computacionais.
3. Impactos da Web na Engenharia de Software
A Web trouxe:
- Maior disponibilidade de serviços de software;
- Desenvolvimento de sistemas distribuídos baseados em serviços;
- Avanços em linguagens de programação;
- Reuso de software.
4. Ética na Engenharia de Software
Princípios éticos importantes:
- Confidencialidade: Respeitar a confidencialidade de clientes e empregadores.
- Competência: Não aceitar trabalhos fora de sua área de competência.
- Direitos de Propriedade Intelectual: Conhecer as leis locais sobre propriedade intelectual.
- Uso Adequado do Computador: Não usar habilidades técnicas para uso indevido do computador alheio.
5. Atividades Fundamentais da Engenharia de Software
- Especificação: Definir funcionalidades e condições de operação do software.
- Projeto e Implementação: Produzir o software para atender às especificações.
- Validação: Garantir que o software atenda às necessidades do cliente.
- Evolução: Adaptar o software às mudanças nas necessidades do cliente.
6. Modelos de Processo de Software
Um modelo de processo de software é uma representação simplificada de um processo de software, que pode ser adaptado durante o projeto.
7. Atividades do Processo em Cascata
- Análise e definição de requisitos;
- Projeto de software e sistema;
- Implementação e teste de unidade;
- Integração e teste de sistema;
- Operação e manutenção.
8. Projeto de Sistema vs. Projeto de Software
- Projeto de Sistema: Aloca requisitos de hardware e software, estabelecendo uma arquitetura geral.
- Projeto de Software: Identifica e descreve abstrações e relacionamentos fundamentais do sistema.
9. Testes de Unidade
Testam a menor parte testável de um programa, como um método de um objeto em programação orientada a objetos.
10. Testes de Integração
Testam a integração entre duas partes do sistema, como a comunicação entre classes ou com serviços externos.
11. Modelo Incremental vs. Cascata
O modelo incremental é mais flexível a mudanças, enquanto o modelo em cascata possui etapas mais estruturadas e planejadas antes do desenvolvimento.
12. Engenharia de Software Orientada a Reuso
Visa evitar retrabalho, reutilizando trabalhos anteriores. Requisitos são analisados com base em componentes existentes, que podem ser modificados ou substituídos por soluções alternativas.
13. Vantagens do Modelo Incremental
- Menor tempo de espera para entregas;
- Rápida adaptação a mudanças;
- Maior satisfação do cliente.
14. Estudo de Viabilidade
Objetivos: Definir fases, focar no planejamento e garantir a aceitação do cliente antes de prosseguir.
15. Atividades da Engenharia de Requisitos
- Estudo de viabilidade;
- Elicitação e análise de requisitos;
- Especificação de requisitos;
- Validação de requisitos.
16. Requisitos de Usuário vs. Requisitos de Sistema
- Usuário: Descreve funções e restrições do sistema de forma abstrata.
- Sistema: Detalha as funções e restrições do sistema.
17. Requisitos Funcionais vs. Não Funcionais
- Funcionais: Especificam funções que o sistema deve realizar.
- Não Funcionais: Descrevem como o sistema deve realizar as funções, não o que ele fará.
18. Tipos de Requisitos Não Funcionais
Confiabilidade, Segurança, Usabilidade e Desempenho.
19. Métricas para Requisitos Não Funcionais
Permitem atingir objetivos mensuráveis e verificar se os requisitos estão sendo cumpridos.
20. Requisitos de Domínio
Regras externas ao sistema que precisam ser atendidas, como regulamentações do MEC para instituições de ensino.
21. Fases do Projeto de Sistemas de Informação
- Projeto arquitetural;
- Projeto de interface;
- Projeto de componentes.
22. Objetivos da Validação e Verificação
- Provar que o sistema está de acordo com a especificação;
- Provar que o sistema atende às expectativas do cliente;
- Utilizar testes com dados simulados como técnica principal de validação.
23. Atividades do Teste de Aceitação
Ocorre na entrega, com dados fornecidos pelo cliente. Pode revelar problemas de requisitos, infraestrutura ou performance. Também conhecidos como testes alfa.
24. Beta-Testes
Testes realizados por um grupo de clientes para identificar bugs antes do lançamento da versão final.
25. Processo Unificado e suas Perspectivas
O Processo Unificado oferece uma visão mais completa do processo de desenvolvimento:
- Dinâmica: Fases do processo ao longo do tempo.
- Estática: Relacionamento entre as atividades do processo.
- Prática: Sugestões de boas práticas.
26. Objetivos da Fase de Iniciação do Processo Unificado
- Estabelecer a justificativa de negócio para o sistema;
- Identificar entidades externas que interagirão com o sistema e definir essas interações.
27. Diagramas Estruturais da UML
- Diagrama de classe;
- Diagrama de pacote;
- Diagrama de objeto;
- Diagrama de componente;
- Diagrama de estrutura composta;
- Diagrama de implantação (deploy).
28. Importância do Diagrama de Caso de Uso
Mostra as interações entre o sistema e seu ambiente, fornecendo uma visão geral que deve ser detalhada pelo Engenheiro de Requisitos.
29. Importância do Diagrama de Colaboração
Exibe como as classes colaboram para realizar as funcionalidades do software, mostrando a interação entre objetos.
30. Profissionais que se Beneficiam de Documentos de Requisitos
Clientes, Gerentes, Engenheiros de Sistema e Engenheiros de Manutenção.
31. Seções do Documento-Padrão de Requisitos (IEEE)
Prefácio, Introdução, Glossário, Arquitetura do Sistema, Modelos do Sistema, Evolução do Sistema, Apêndices e Índice.
32. Formas de Escrever Requisitos
- Sentenças em linguagem natural;
- Linguagem natural estruturada;
- Notações gráficas;
- Especificações matemáticas.
33. Problemas do Uso de Linguagem Natural em Requisitos
Vantagens: Expressiva, intuitiva e universal.
Desvantagens: Pode ser vaga, imprecisa, ambígua e ter interpretações variadas.
34. Orientações para Evitar Mal-Entendidos com Linguagem Natural
- Criar um formato padrão para as definições de requisitos;
- Expressar o requisito em uma única sentença;
- Expressar a motivação do requisito;
- Distinguir requisitos mandatórios e desejáveis;
- Usar negrito e itálico para destacar partes chave;
- Evitar termos técnicos, jargões, abreviações e acrônimos.
35. Design Thinking na Descoberta de Requisitos
O Design Thinking é uma abordagem holística centrada no ser humano, que envolve um processo de aprendizagem interativo, com fases divergentes e convergentes, permitindo a prototipagem rápida e a redefinição do problema ao longo do projeto.
36. Atividades no Processo de Análise e Elicitação de Requisitos
- Descoberta de Requisitos: Interação com stakeholders, análise de requisitos de domínio e documentação.
- Classificação e Organização de Requisitos: Organizar e agrupar requisitos em grupos coerentes.
- Priorização e Negociação de Requisitos: Resolver conflitos e chegar a um acordo com os stakeholders.
- Especificação de Requisitos: Documentar os requisitos para a próxima fase.
37. Dificuldades na Elicitação de Requisitos
- Stakeholders geralmente não sabem o que querem ou têm dificuldade em articular;
- Demandas fora da realidade;
- Requisitos diferentes expressos de formas diferentes;
- Fatores políticos, econômicos e de negócios dinâmicos;
- Mudança na importância de requisitos;
- Surgimento de novos requisitos.