Mind map
Fundamentos Engenharia de Software
Map content
Fundamentos Engenharia de Software
Conceitos
- O que é um programa?
- Conjunto de instruções para serem executadas por um computador
- O programa é o código que vai ser executado
- O que é um software?
- instruções (programas de computador) 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 uso dos programas.
- é a parte lógica de um sistema cuja função é comandar o hardware.
- é o produto que os engenheiros de software projetam e constroem
- O que é sistema?
- É um conjunto de elementos interdependentes de modo a formar um todo organizado
- Sistema
- Hardware
- Pessoas
- Software
- Sistema
- É um conjunto de elementos interdependentes de modo a formar um todo organizado
- O que é um programa?
Atividades da Engenharia de Software
- TÉCNICAS
- Engenharia de Requisitos
- Levantamento de Requisitos:Atividade de descobrir os problemas, as necessidades dos clientes e as características do dominio do cliente-Entrevistas, questionários, leitura de documentos, observações, pesquisas de levantamento de dados, prototipação,
- Análise dos requisitos: Estudo dos requisitos levantados, procurando achar inconsistências, conflitos, lacunas nas descrições - Modelagem ajuda a descobrir falhas no entendimento, descrições incompletas - Por outro lado pode levar a um engessamento precoce da percepção do domínio
- Especificação dos requisitos Atividade de descrever os requisitos de maneira clara e precisa, sem ambiguidades. Liguagem natural Linguagem controlada em um template Casos de uso Notações específicas para diagramas de modelagem de caso de uso, diagramas de classes, tabelas de condições
- Validação dos Requisitos Atividade de revisão por parte do cliente, e usuários para determinar se a descrição dos requisitos está correta, clara e precisa e completa. Protótipos podem ser usados Notações mais sofsticadas dificultam esta atividade por parte do cliente
- Especificação dos requisitos Atividade de descrever os requisitos de maneira clara e precisa, sem ambiguidades. Liguagem natural Linguagem controlada em um template Casos de uso Notações específicas para diagramas de modelagem de caso de uso, diagramas de classes, tabelas de condições
- Análise dos requisitos: Estudo dos requisitos levantados, procurando achar inconsistências, conflitos, lacunas nas descrições - Modelagem ajuda a descobrir falhas no entendimento, descrições incompletas - Por outro lado pode levar a um engessamento precoce da percepção do domínio
- Levantamento de Requisitos:Atividade de descobrir os problemas, as necessidades dos clientes e as características do dominio do cliente-Entrevistas, questionários, leitura de documentos, observações, pesquisas de levantamento de dados, prototipação,
- Projeto (design) de Software
- Atividade onde se considera diversas alternativas de soluções e as ponderações sobre uma ou outra solução todas as alternativas precisam satisfazer os requisitos Escolha de uma solução Detalhamento da solução escolhida através de notações específicas para o projeto
- Existem duas partes do projeto de software Projeto detalhado dos objetos ou elementos de pequena granularidade Quais são os objetos, como eles interagem entre si, quem é responsável por cada função Necessário para satisfazer os requisitos funcionais Se preocupa com a escolha adequada de algoritmos e estruturas de dados apropriadas para resolver o problema de forma eficiente
- Existem duas partes no projeto de software Projeto da arquitetura do software (visão mais abstrata) Quais são as grandes partes do software, como elas se comunicam, onde elas executam Necessário para satisfazer requisitos de qualidade
- Existem duas partes do projeto de software Projeto detalhado dos objetos ou elementos de pequena granularidade Quais são os objetos, como eles interagem entre si, quem é responsável por cada função Necessário para satisfazer os requisitos funcionais Se preocupa com a escolha adequada de algoritmos e estruturas de dados apropriadas para resolver o problema de forma eficiente
- Atividade onde se considera diversas alternativas de soluções e as ponderações sobre uma ou outra solução todas as alternativas precisam satisfazer os requisitos Escolha de uma solução Detalhamento da solução escolhida através de notações específicas para o projeto
- Implementação ou codificação
- Atividade que transforma modelos de projeto em código escrito em uma linguagem de programação Se preocupa com a implementação adequada dos algoritmos e estruturas de dados escolhidos durante o projeto
- Testes de software
- Atividade para verificar que o software funciona como o esperado e satisfaz os requisitos dos clientes Existem testes manuais, automatizados, que concentram-se mais no código, ou no usuário, ou na especificação dos requisitos.
- Evolução ou manutenção de software
- Atividade contínua após a entrega do software ao cliente Correções de defeitos que não foram descobertos antes Melhorias Novos requisitos, Novas necessidades Mudanças de tecnologias
- Medição de software
- Atividades que envolvem a definição de metas, de métricas como unidade de medida das metas e as coletas de dados ou medições a respeito do processo, do projeto ou do produto de software
- Estimativas de software
- Atividades de previsão do desenvolvimento ou manutenção com base em históricos do processo de produção. Podemos estimar o tempo, o custo, o esforço, o tamanho do software, o tamanho da equipe necessária e outros.
- Engenharia de Requisitos
- GERENCIAIS
- Aceitação pelo cliente
- Atividade realizada pelo cliente com o objetivo de validar se o software entregue satisfaz as necessidades do cliente Funcionalidade Qualidade
- Gestão de configuração
- Atividade de apoio durante todo processo de desenvolvimento ou manutenção onde os arquivos produzidos são gerenciados por uma ferramenta que não viola as regras estabelecidas na empresa para o controle de mudanças
- Gerência de Projetos
- Atividades de planejamento e controle da execução de um projeto com duração no tempo, envolvendo pessoas alocadas na sua execução e um custo de produção.
- Gerência de Requisitos
- Atividade de controle que se concentra em: Priorização dos requisitos Aprovações de mudanças Controle de escopo Rastreabilidade
- Gestão da qualidade de software
- Atividades de garantia da qualidade Avaliam o processo, as práticas, a comunicação, as políticas, enfim tudo que pode impactar na qualidade de um software e não apenas a sua correta execução.
- Gestão de Processos
- Atividade de definição e melhoria de processo com base nas boas práticas da engenharia de software, nos modelos de capacitação e maturidade como CMMI, MPS.BR
- Aceitação pelo cliente
- TÉCNICAS