O GoConqr está de visual novo! Conte para nós o que você achou.

Mapa mental

Engenharia de Software

Pedro Marchi Engenharia de Software Graduação Português

Conteúdo do mapa

Engenharia de Software

  1. Conceitos de Projeto de Software

    • Modelo de Projeto: detalhes sobre a arquitetura de software, estrutura de dados, interfaces e componentes fundamentais. Basicamente "como" os requisitos devem ser implementados no software
    • Realizado pelos engenheiros de software, e ao final também avaliado por eles
    • Importante para se poder avaliar o software futuro e aperfeiçoa-lo
    • Etapas:
      • Representar arquitetura
      • Modelar Interfaces que conectam o software aos usuários, a outros sistemas e dispositivos
      • Projetar os componentes
    • Princípios de um software de boa qualidade
      • Solidez: não ter bugs graves
      • Comodidade: o programa deve ser adequado aos propósitos p/ qual ele foi projetado
      • Deleite: a experiência do usuário deve ser prazerosa
  2. Projeto no Contexto de Engenharia de Software

    • Do projeto se derivam:
      • Um projeto de dados/classes
        • Transforma os modelos de classes em classes de projeto e em estruturas de dados dos requisitos para implementar o software
      • Um projeto de arquitetura
        • Define as relações entre os principais elementos estruturais do software
      • Um projeto de interfaces
        • Descreve como o software se comunica com sistemas que operam em conjunto e com os usuários
      • Um projeto de componentes
        • Transforma elementos estruturais da arquitetura em uma descrição procedural dos componentes de software
    • Sem um projeto se software, temos um software que:
      • Falhará quando forem feitas pequenas alterações
      • Difícil de ser testado
      • Cuja qualidade não pode ser avaliada até um estágio avançado do desenvolvimento
  3. O Processo de Projeto

    • Características de um bom projeto
      • O projeto deve implementar todo s os requisitos do modelo de requisítos, e conter os requisítos implícitos desejados pelos envolvidos
      • O projeto deve ser legível para todos os que irão ter contato com o código
      • O projeto deve dar uma visão completa do software
    • Atributos de qualidade de um projeto de software
      • Funcionalidade: capacidade do programa e a segurança do sistema
      • Usabilidade: facilidade de uso, estética e documentação
      • Confiabilidade: poucas falhas
      • Desempenho: velocidade de processamento, tempo de resposta, consumo de recursos
      • Facilidade de Suporte: extensividade, adaptabilidade e reparabilidade
  4. Conceitos de Projeto

    • Abstração
      • Abstração procedural: etapas do processo
      • Abstração de dados: Dados da situação
    • Arquitetura
      • Modelos de arquitetura: estrutural, framework, dinâmico, processo, funcional
    • Padrão de projeto
    • Separação por interesses: dividir para conquistar
    • Modularidade: software dividido em partes independentes
      • Encapsulamento: somente informações necessárias são compartilhadas entre um módulo e outro
      • Coesão: indica o quanto o módulo se concentra em fazer apenas uma coisa. META: auta coesão
      • Acoplamento: indica a interdependência entre os módulos. META: baixo acoplamento
    • Classes de projeto
      • Interfaces do usuário
      • Domínio de negócio
      • Processos
      • Persistentes
      • Sistema
      • Características de uma classe de projeto bem formada:
        • Completa e suficiente
        • Primitivismo: um único método para a classe fazer uma mesma coisa
        • Alta coesão
        • Baixo acoplamento
    • Refinamento: conceito complementar ao de abstração, esse conceito foca em revelar os detalhes menores do projeto
  5. O Modelo de Projeto

    • Geralmente utiliza UML para representar
      • Modelos de subsistema
      • Modelos de sequência
      • Modelos de máquina de estado
  6. Projeto de Arquitetura

    • Importante para dar uma visão geral e para:
      • Podermos analisar a efetividade do projeto em relação aos requisitos
      • Considerar alternativas
      • Reduzir riscos
    • Realizado por especialistas, o "arquiteto de sistemas"
    • Representa a estrutura de dados e os componentes do programa
    • Arquitetura centralizada em dados: Banco de dados e sub-sistemas
    • Arquitetura cliente-servidor
    • Fluxo de dados
    • Chamadas e Retornos
    • Camadas
    • Microserviços: divido em frontend e backend
  7. O Modelo C4: facilitador de montagem de modelos arquiteturais

    • Propósito: padronizar
    • Diagrama de Contexto: mostra como o sistema de software interage com usuários e outros sistemas. Diagrama pouco detalhado e técnico
    • Diagrama de contêiner: mostra a forma de alto nível de um software. Basicamente um zoom em um componente do diagrama de contexo
    • Diagrama de componentes: mostra os métodos de um contêiner. Basicamente um zoom no diagrama de contêiner
    • Diagrama de código: mostra a implementação de um componente utilizando diagramas de classe UML, diagramas de entidade relacionamento etc
  8. Importante lembrar: Projeto é uma instância de Arquitetura

Informações

Descrição
Graduação Engenharia de Software Mapa Mental sobre Engenharia de Software, criado por Pedro Marchi em 17-05-2023.
Criado por
Pedro Marchi
Visualizações
0
Avaliação

Mais sobre Projeto e arquitetura de software

Fale Conosco

Sobre o que é sua mensagem?

O que você acha do novo visual?

Você gostou?