Zusammenfassung der Ressource
Eng. de
Software
- DESIGN DE SOFTWARE
- PRINCIPAIS DEFINIÇÕES
- CRIAR SOFTWARES QUE
SATISFAÇAM AS VONTADES
DO CLIENTE
- ESPECIFICAR DE FORMA COMPLETA E
NÃO AMBÍGUA A EXPERIÊNCIA
GLOBAL DO USUÁRIO
- DESENHO E ESTILO DE ORGANIZAR
ELEMENTOS VISUAIS
- METAS, RESTRIÇÕES, ALTERNATIVAS,
REPRESENTAÇÕES, SOLUÇÕES E TRADE-OFFS
- CARACTERÍSTICAS
- CONCEPÇÃO,
ESPECIFICAÇÃO E
PROTOTIPAÇÃO DE
UM ARTEFATO.
- ABSTRAÇÃO, MODULARIDADE (COESÃO E
ACOPLAMENTO), ENCAPSULAMENTO, HIERARQUIAS,
INTERFACES VERSUS IMPLEMENTAÇÕES, SEPARAÇÃO
DE PREOCUPAÇÕES, LOCALIDADE.
- DESIGN DE: MODELO CONCEITUAL, DA INTERFACE DE
USUÁRIO, DA ARQUITETURA DE SOFTWARE, DOS
ALGORITMOS E ESTRUTURAS DE DADOS
- ARQUITETURA DE SOFTWARE
- DIFERENÇAS
- "Atividades relacionadas a arquitetura de software são sempre de design. Entretanto, nem todas
atividade de design são sobre arquitetura. O objetivo primário da arquitetura de software é garantir
que os atributos de qualidade, restrições de alto nível e os objetivos do negócio, sejam atendidos
pelo sistema. Qualquer decisão de design que não tenha relação com este objetivo não é
arquitetural. Todas as decisões de design para um componente que não sejam "visíveis" fora dele,
geralmente, também não são."
- Uma simples analogia exemplifica muito bem a principal diferença entre arquitetura e design de
software, sendo a solução um corpo humano, a arquitetura é responsável pela composição corpórea
(esqueleto, disposição do órgãos, vasos sanguíneos) e o design de software será responsável por
garantir funcionamento de cada órgão. Em linguagem técnica, arquitetura é alto nível e design é nível
de código. Os arquitetos de software devem ter um bom conhecimento sobre as soluções existentes
que os ajudam a tomar decisões corretas na fase de planejamento e um desenvolvedor de software
deve saber mais sobre design de software e bastante sobre arquitetura de software para facilitar a
comunicação interna dentro da equipe.
- ARQUITETO DE SOFTWARE -> VAI DEFINIR COMO SERÁ A ESTRUTURA, LINGUAGEM ETC.
DESIGN DE SOFTWARE -> A APARÊNCIA, ORGANIZAÇÃO
- PRINCIPAIS DEFINIÇÕES
- "CONVERTER CARACTERÍSTICAS DE SOFTWARE COMO
FLEXIBILIDADE, ESCALABILIDADE, VIABILIDADE, REUTILIZAÇÃO E
SEGURANÇA EM UMA SOLUÇÃO ESTRUTURADA QUE ATENDA ÀS
EXPECTATIVAS TÉCNICAS E DE NEGÓCIOS"
- TRATA DOS COMPONENTES, SUAS RESPONSABILIDADES E
COMO ELES SE RELACIONAM PARA ATINGIR OS OBJETIVOS DO
NEGÓCIO
- CARACTERÍSTICAS
- TRATA DOS COMPONENTES, SUAS
RESPONSABILIDADES E COMO ELES SE RELACIONAM
PARA ATINGIR OS OBJETIVOS DO NEGÓCIO
- DEVE FOCAR NOS PRINCÍPIOS DE: PERFORMANCE,
ESTABILIDADE, SEGURANÇA, ECONOMIA DE
RECURSOS, MANUTENIBILIDADE, ESCALABILIDADE
- ESTRUTURAS E VISÕES DISTINTAS, ESTILOS E ARQUITETURAS DE
REFERÊNCIA, PADRÕES DE DESIGN MICROARQUITETURAIS,
FAMÍLIAS DE PROGRAMAS E FRAMEWORKS
- BAIXA TOLERÂNCIA A FALHAS,
ESCALABILIDADE E CONFIABILIDADE
- PADRÕES: CAMADAS, PADRÃO ORIENTADO A
EVENTOS, PADRÃO SERVERLESS
- https://www.goconqr.com/pt-BR/mindmap/27682381/Eng--de-Software