Top Banner
SOLID, Design de Software e Programação Orientada a Objetos. Uma Proposta Acadêmica Ronildo Oliveira da Silva 1 , David Sena Oliveira 2 Bacherelado em Ciência da Computação Encontros Universitários 2015 Universidade Federal do Ceará Campus Quixadá, Brasil 27 de Novembro de 2015
17

Slide Encontros Universitários 2015 UFC - SOLID, Design de Software e Programacão Orientada a Objetos. Uma Proposta Acadêmica

Jan 22, 2018

Download

Education

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Slide Encontros Universitários 2015 UFC  - SOLID, Design de Software e Programacão Orientada a Objetos. Uma Proposta Acadêmica

SOLID, Design de Software e ProgramaçãoOrientada a Objetos. Uma Proposta Acadêmica

Ronildo Oliveira da Silva1, David Sena Oliveira2

Bacherelado em Ciência da Computação

Encontros Universitários 2015Universidade Federal do Ceará Campus Quixadá, Brasil

27 de Novembro de 2015

Page 2: Slide Encontros Universitários 2015 UFC  - SOLID, Design de Software e Programacão Orientada a Objetos. Uma Proposta Acadêmica

Introdução Single Responsibility Open-Closed Principle Liskov Substitution Interface Segregation Dependency Inversion

Agenda

1 Introdução

2 Single Responsibility

3 Open-Closed Principle

4 Liskov Substitution

5 Interface Segregation

6 Dependency Inversion

Ronildo Oliveira SOLID, Design de Software e POO 2 / 17

Page 3: Slide Encontros Universitários 2015 UFC  - SOLID, Design de Software e Programacão Orientada a Objetos. Uma Proposta Acadêmica

Introdução Single Responsibility Open-Closed Principle Liskov Substitution Interface Segregation Dependency Inversion

Introdução

Metodologia de ensino e SOLID;Design de software;Proposta acadêmica;Exemplos baseados em desenvolvimento de jogos.

Ronildo Oliveira SOLID, Design de Software e POO 3 / 17

Page 4: Slide Encontros Universitários 2015 UFC  - SOLID, Design de Software e Programacão Orientada a Objetos. Uma Proposta Acadêmica

Introdução Single Responsibility Open-Closed Principle Liskov Substitution Interface Segregation Dependency Inversion

Single Responsibility

“Se uma das classes possui mais de uma responsabilidade,significa que cada uma de suas responsabilidades deve ser partede uma classe diferente."(MARTIN; MARTIN, 2006)

Ronildo Oliveira SOLID, Design de Software e POO 4 / 17

Page 5: Slide Encontros Universitários 2015 UFC  - SOLID, Design de Software e Programacão Orientada a Objetos. Uma Proposta Acadêmica

Introdução Single Responsibility Open-Closed Principle Liskov Substitution Interface Segregation Dependency Inversion

Single Responsibility - Class Diagram

Ronildo Oliveira SOLID, Design de Software e POO 5 / 17

Page 6: Slide Encontros Universitários 2015 UFC  - SOLID, Design de Software e Programacão Orientada a Objetos. Uma Proposta Acadêmica

Introdução Single Responsibility Open-Closed Principle Liskov Substitution Interface Segregation Dependency Inversion

Open-Closed Principle

Sistemas geralmente estão sujeitos à mudanças e isso ocorre de maneiranatural. A responsabilidade do princípio Open-Closed é tão somenteassegurar que essas prováveis evoluções não comprometam componentesexternos.

Ronildo Oliveira SOLID, Design de Software e POO 6 / 17

Page 7: Slide Encontros Universitários 2015 UFC  - SOLID, Design de Software e Programacão Orientada a Objetos. Uma Proposta Acadêmica

Introdução Single Responsibility Open-Closed Principle Liskov Substitution Interface Segregation Dependency Inversion

Open-Closed Principle - Class Diagram

Ronildo Oliveira SOLID, Design de Software e POO 7 / 17

Page 8: Slide Encontros Universitários 2015 UFC  - SOLID, Design de Software e Programacão Orientada a Objetos. Uma Proposta Acadêmica

Introdução Single Responsibility Open-Closed Principle Liskov Substitution Interface Segregation Dependency Inversion

Liskov Substitution

“Seja Θ(x) uma propriedade demonstrável dos objetos x detipo T . Então Θ(y) deve ser demonstrável para objetos y detipo S onde S é um subtipo de T". (LISKOV; WING, 1999).

Ronildo Oliveira SOLID, Design de Software e POO 8 / 17

Page 9: Slide Encontros Universitários 2015 UFC  - SOLID, Design de Software e Programacão Orientada a Objetos. Uma Proposta Acadêmica

Introdução Single Responsibility Open-Closed Principle Liskov Substitution Interface Segregation Dependency Inversion

Liskov Substitution - Class Diagram

Ronildo Oliveira SOLID, Design de Software e POO 9 / 17

Page 10: Slide Encontros Universitários 2015 UFC  - SOLID, Design de Software e Programacão Orientada a Objetos. Uma Proposta Acadêmica

Introdução Single Responsibility Open-Closed Principle Liskov Substitution Interface Segregation Dependency Inversion

Interface Segregation

O princípio de segregação de interfaces nos remete ao seguintepensamento:

“Clientes não devem ser forçados a depender de métodos quenão utilizam". (MARTIN; MARTIN, 2006)

Ronildo Oliveira SOLID, Design de Software e POO 10 / 17

Page 11: Slide Encontros Universitários 2015 UFC  - SOLID, Design de Software e Programacão Orientada a Objetos. Uma Proposta Acadêmica

Introdução Single Responsibility Open-Closed Principle Liskov Substitution Interface Segregation Dependency Inversion

Interface Segregation - Class Diagram

Ronildo Oliveira SOLID, Design de Software e POO 11 / 17

Page 12: Slide Encontros Universitários 2015 UFC  - SOLID, Design de Software e Programacão Orientada a Objetos. Uma Proposta Acadêmica

Introdução Single Responsibility Open-Closed Principle Liskov Substitution Interface Segregation Dependency Inversion

Dependency Inversion

“Sempre que uma classe for depender de outra, ela devedepender sempre de outro módulo mais estável do que elamesma."(ANICHE, 2014)

Ronildo Oliveira SOLID, Design de Software e POO 12 / 17

Page 13: Slide Encontros Universitários 2015 UFC  - SOLID, Design de Software e Programacão Orientada a Objetos. Uma Proposta Acadêmica

Introdução Single Responsibility Open-Closed Principle Liskov Substitution Interface Segregation Dependency Inversion

Dependency Inversion - Class Diagram

Ronildo Oliveira SOLID, Design de Software e POO 13 / 17

Page 14: Slide Encontros Universitários 2015 UFC  - SOLID, Design de Software e Programacão Orientada a Objetos. Uma Proposta Acadêmica

Resultados Dúvidas, Críticas e Sugestões Agradecimentos

Ações e Resultados

Ações da monitoria de POO na UFC Campus Quixadá;Materiais de estudo prático;Desenvolvimento de capacidades de forma autônoma.

Utilização de recursos de testes de unidades jUnit que auxiliam oaluno a identificar suas próprias deficiências e contribuir na relaçãoaluno e monitor.Resultados Estatísticos.

Ronildo Oliveira SOLID, Design de Software e POO 14 / 17

Page 15: Slide Encontros Universitários 2015 UFC  - SOLID, Design de Software e Programacão Orientada a Objetos. Uma Proposta Acadêmica

Resultados Dúvidas, Críticas e Sugestões Agradecimentos

Dúvidas, Críticas e Sugestões

Qual parte você quer mais esclarecimentos ?Dê seu ponto de vista, opine sobre o trabalho.Alguma dica de como melhorar a aplicação da assistência ?

Ronildo Oliveira SOLID, Design de Software e POO 15 / 17

Page 16: Slide Encontros Universitários 2015 UFC  - SOLID, Design de Software e Programacão Orientada a Objetos. Uma Proposta Acadêmica

Resultados Dúvidas, Críticas e Sugestões Agradecimentos

Agradecimentos

Ronildo Oliveira SOLID, Design de Software e POO 16 / 17

Page 17: Slide Encontros Universitários 2015 UFC  - SOLID, Design de Software e Programacão Orientada a Objetos. Uma Proposta Acadêmica

Resultados Dúvidas, Críticas e Sugestões Agradecimentos

Referências I

ANICHE, M. Orientacao a Objetos e SOLID para Ninjas -Projetando Classes Flexiveis. 1st. ed. [S.l.]: Casa do Codigo, 2014.

LISKOV, B. H.; WING, J. M. Behavioral Subtypind UsingInvariants and Constraints. [S.l.]: School of Computer ScienceCarnegie Mellon University Pittsburg, 1999.

MARTIN, R. C.; MARTIN, M. Agile Principles, Patterns, andPractices in C Sharp. 1st. ed. [S.l.]: Prentice Hall, 2006.

Ronildo Oliveira SOLID, Design de Software e POO 17 / 17