Mapa mental
Engenharia de Software
Conteúdo do mapa
Engenharia de Software
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
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
- Um projeto de dados/classes
- 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
- Do projeto se derivam:
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
- Características de um bom projeto
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
- Abstração
O Modelo de Projeto
- Geralmente utiliza UML para representar
- Modelos de subsistema
- Modelos de sequência
- Modelos de máquina de estado
- Geralmente utiliza UML para representar
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
- Importante para dar uma visão geral e para:
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
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