Design Patterns e Qualidade de Software

Bom Dia,

Olá

estou pensando em fazer uma monografia sobre Design Patterns e Qualidade de Software, vocês acham um bom tema ?

qual a opinião de vocês sobre o assunto? A adoção de patterns por uma equipe de desenvolvimento impacta na qualidade de software?

grande abraço e espero resposta

h2

Acho que não existe correlação. É como se Java ou C# impactasse na qualidade: a ferramenta em si não importa, importa o processo e, principalmente, o desenvolvedor.

Deve ser um tema quente. Procurei no Google:

entendo…

não a ferramenta mas os padrões de projeto, vc acha q não há relação de design patterns e qualidade de software?

obrigado

Existem softwares que faltam na qualidade exatamente por aplicar patterns de forma incorreta ou desnecessários.

Mas, e complementando o pcalcaldo, se a qualidade de um software está correlacionada aos desenvolvedores que o produzem, e bons desenvolvedores conhecem patterns, podemos dizer que um bom software se utiliza de patterns.

Por outro lado o camarada pode ser um bom desenvolvedor, implementar um sw de qualidade, e ainda assim não conhecer patterns.

Então, pessoalmente, acredito que não exista relação, apesar desta ser esperada.

Ou não?

[quote=faq]Existem softwares que faltam na qualidade exatamente por aplicar patterns de forma incorreta ou desnecessários.

Mas, e complementando o pcalcaldo, se a qualidade de um software está correlacionada aos desenvolvedores que o produzem, e bons desenvolvedores conhecem patterns, podemos dizer que um bom software se utiliza de patterns.

Por outro lado o camarada pode ser um bom desenvolvedor, implementar um sw de qualidade, e ainda assim não conhecer patterns.

Então, pessoalmente, acredito que não exista relação, apesar desta ser esperada.

Ou não?[/quote]

Não pq possivelmente, mesmo sem conhecer os “nomes” formais e suas particularidades, ele acabou implementando Patterns no seu projeto de forma inconsciente.

Olá,

entendo… mas digamos que o desenvolvedor conhece patterns, e os aplique…

não estou dizendo q patterns garante a qualidade de software…

e sim, se uso de patterns impacta ou não na qualidade de software.

Caso aplicados podem ou não ter impacto na qualidade de software… certo?

se sim… então a relação existe… estou errado?

abraços e obrigado

h2

Mas o fato de não os conhecer não significa que não os usa. Certo?
Por exemplo, se foi criado um método que fabrica objetos porque a equipe concluiu que isso era a melhor forma de encapsular a criação desses objetos então eles estão usando Factory Method, mesmo não sabendo disso.

Um pattern decorre de aplicar principios canônicos (encapsulamento, separação de responsabilidade, etc) e não de uma epifania. Acho que é pacifico aceitar que se a equipe segue esses principios , mais tarde os mais cedo ela gerará padrões ,mesmo que não conscientemente. O estudo e aplicação de patterns
serve para criar uma linguagem comum (e um catalogo) sobre soluções recorrentes que aparecem ao aplicar ditos principios.A qualidade do software estaria então ligada ao uso dos principios canônicos os quais podem gerar padrões.

qualidade => uso de principios
padrões => uso de principios

As implicações inversas não são necessariamente verdadeiras e portanto, o uso de padrões não garante a qualidade.

Tem tb o problema dos mesmos principios poderem gerar anti-padrões. E nesse caso a qualidade sofre.

Tlv seria interessante, como tema do trabalho, analisar a relação entre essas forças (qualidade, principios, padrões, anti-padrões)

Creio que o bom uso de patterns e outros princípios de projeto Orientado a Objetos pode melhorar a organização, manutenabilidade e extensibilidade do projeto, mas não na qualidade final do projeto como um todo.

Antes dos patterns, existem princípios de projeto OO. Os patterns são como uma linguagem comum de projeto, o cara olha o código e já imagina o que o outro desenvolvedor tentou fazer: “Ah, aqui ele usou o padrão Strategy para implementar diferentes comportamentos”. O que é algo que definitivamente ajuda na organização do projeto.

Um cuidado especial deve ser não achar que os patterns são mágicos, ou seja, o simples uso já melhora o código. Como já foi dito, essa abordagem pode piorar o código em vez melhorar. Deve haver a necessidade para se aplicar um projeto mais sofisticado.

:wink:

Entendo…

mas quando disse que o tema seria esse não quer dizer q aplicando patterns garante a qualidade… mas sim como acarretaria na qualidade de software(positivamente ou não)…

valeu e grande abraço… se tiver mais alguem pra dar uma pitada…

h2

[quote]Mas o fato de não os conhecer não significa que não os usa. Certo?
[/quote]

Certo e claro. Não discordo, pelo contrário, apoio a idéia.

[quote]
Acho que é pacifico aceitar que se a equipe segue esses principios , mais tarde os mais cedo ela gerará padrões ,mesmo que não conscientemente. O estudo e aplicação de patterns
serve para criar uma linguagem comum (e um catalogo) sobre soluções recorrentes que aparecem ao aplicar ditos principios.A qualidade do software estaria então ligada ao uso dos principios canônicos os quais podem gerar padrões. [/quote]

Sim é pacífico aceitar isso, eu aceito. Mas, como você disse, patterns implicam uma linguagem comum. Se existe uma linguagem comum (em potencial) aumentamos a qualidade da coisa. Certo?

O que eu tentei colocar no meu post foi que não existe o fato (patterns == qualidade), mas um indicio para. Toscamente: todos na sua equipe são desenvolvedores muito bons, eu espero que o seu software seja bom. Mas isso não é necessariamente verdade, apesar de esperado.

Os patterns em si são ferramentas e a aplicação de ferramentas não garante qualidade. Todas as empresas CMMi que conheço, por exemplo, produzem código de qualidade baixa a baixíssima, apesar de o certificado garantir a aplicação de determinadas ferramentas neste ambiente.

Não há correlação, por isso o tema IMHO é furado.

Um bom tema, entretanto, seria avaliar os princípios de design que cada padrão fornece e o impacto da aplicação correta destes princípios.

hmmm

blza… vou continuar com o tema…

a relação de patterns e qualidade ou não de software.

abraços, obrigado e se tiver mais alguem pra opinar…

h2