Você está na página 1de 16

08/10/2020

Licenciatura em Enganharia Informática


Curso de Curta Duração
Desenho de Sistemas Informáticos

Princípios e abordagens
Fundamentais

Eng.º Benadade Albano Lopes Chipikita


Aula n.º 3
Os princípios de design de software são um conjunto de
diretrizes que ajudam os desenvolvedores a criar um bom
design de sistema. Eles ajudarão você a criar um design
limpo e modular, que seria fácil de testar, depurar e manter
no futuro.
Para quê servem os Princípios
Serve para arquitetos, analistas e desenvolvedores que
desejam conhecer mais sobre arquitetura de software e
sobre como fazer uma separação de responsabilidades
efetiva na criação das camadas físicas e lógicas do sistema.
Todo o desenvolvedor que deseja aprimorar suas técnicas
de programação (independente do framework escolhido) e
para todo arquiteto que deseja conhecer mais sobre tipos
de arquitetura e como aplicar uma arquitetura modular,
visando boas práticas de design OO.
Lista de princípios de design
• Princípio DRY
• Princípio YAGNI
• Princípio KISS
• Princípio SOLID
Princípio DRYP – DON’T REPEAT YOURSELF

Esse princípio leva a reduzir a repetição no código. Reduzir


o código repetido também reduz a necessidade de replicar
as alterações aplicadas a um código que foi reutilizado em
muitos locais da sua lógica sem uma abstração adequada
para centralizar seu uso e evitar a repetição.
Princípio YAGINI – YOU AREN’T GONNA NEED IT

Não adicione nenhuma funcionalidade ao seu código até


que seja realmente necessário tê-lo lá. Esse princípio nos
guia a evitar a inclusão de funcionalidades no seu código
que você acha que serão necessárias para o futuro, mas
que não têm utilidade no presente.
Princípio KISS – KEEP IT SIMPLE STUPID
Mantenha o código simples e facilmente compreensível. Esse princípio nos orienta a
escrever código que é ouvido para ler e manter. Algumas dicas para fazer isso são:

▪ Mantenha os métodos pequenos (menos de 40 linhas).

▪ Dê nomes significativos aos seus métodos e variáveis.

▪ Não abuse dos comentários, torne o código compreensível sem a necessidade de


comentar tudo.

▪ Crie métodos para resolver peças pequenas.


Princípio SOLID
Solid é um conjunto de princípios (muito utilizados na
programação orientada à objeto) destinados a tornar os
projetos de software mais flexíveis e sustentáveis. Ajuda a
criar software com código mais coeso e menos
acoplamento. Pretendo, logo fazer um artigo falando
apenas de S.O.L.I.D com exemplos em .net.
Cada letra da sigla corresponde a um princípio:

▪ S – Princípio Single Responsibility: Uma classe deve ter apenas uma única responsabilidade, apenas um
motivo para existir. (alta coesão, baixo acoplamento)

▪ O – Princípio Open/Close : As entidades devem estar abertas para extensão, mas fechadas para
modificação.

▪ L – Princípio Liskov substitution: Os objetos devem ser substituíveis por instâncias de seus subtipos sem
alterar a correção do programa, caso contrário, você pode estar usando a abstração errada.

▪ I – Princípio Interface segregation: Toda classe deveria possuir um contrato com seus métodos e este
“contrato” seria a interface.

▪ D – Princípio Dependency inversion: Depender de abstrações, não de concreções afim de reduzir o


acoplamento.
Princípios, padrões e práticas para um design são importantes
para construir um software de qualidade. Ao iniciar o
desenvolvimento de um novo sistema, muitas vezes ficamos em
dúvida sobre qual o estilo de arquitetura utilizar. Para auxiliar
nesta decisão, o artigo comenta sobre várias opções de
arquitetura, dando ênfase à arquitetura distribuída e suas
camadas lógicas.
Com a grande demanda de profissionais por parte das empresas, muitos
deles acabam sendo contratados sem ter o devido conhecimento sobre boas
práticas de desenvolvimento de software, infraestrutura de desenvolvimento,
protocolos de comunicação, sistemas gerenciadores de banco de dados e
muitas vezes até conhecimento básico sobre sistemas operacionais. Além
disso, dentro das empresas existe uma demanda cada vez maior por projetos
de software de alta complexidade, com prazos de entrega na maioria das
vezes fora da realidade. O que faz com que muitos projetos sejam entregues
sem testes, com falhas de implementação, qualidade duvidosa e muitas vezes
sem atender ao negócio do cliente.
Estilos de Arquitetura
Quando vamos planejar o desenvolvimento de um software,
geralmente um dos primeiros itens que o arquiteto de software
começa a analisar é qual o melhor estilo de arquitetura que se
aplica ao contexto do projeto. Neste ponto ele leva em
consideração diversos fatores, como os requisitos do software,
custo, infraestrutura e conhecimento técnico da equipe.
Estilos de Arquitetura
• Client-Server
• Arquitetura baseada em Componentes

• Domain Driven Design

• Arquitetura em Camadas

• 3-Tiers/N-Tiers

• Arquitetura Orientada a Serviços (SOA)

• Arquitetura Orientada a Objetos


Bibliografia
• Silveira, P. (2011). Introdução à Arquitectura e Design de
Software. São Paulo: Campus.
•http://www.objectmentor.com/resourc
es/articles/srp.pdf
Obrigado

Você também pode gostar