Baixe o app para aproveitar ainda mais
Prévia do material em texto
SOLID, Design de Software e Programação Orientada a Objetos. Uma Proposta Acadêmica Ronildo Oliveira da Silva1, David Sena Oliveira2 Bacherelado em Ciência da Computação Encontros Universitários 2015 Universidade Federal do Ceará Campus Quixadá, Brasil 27 de Novembro de 2015 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 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 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 parte de uma classe diferente."(MARTIN; MARTIN, 2006) Ronildo Oliveira SOLID, Design de Software e POO 4 / 17 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 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 maneira natural. A responsabilidade do princípio Open-Closed é tão somente assegurar que essas prováveis evoluções não comprometam componentes externos. Ronildo Oliveira SOLID, Design de Software e POO 6 / 17 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 Introdução Single Responsibility Open-Closed Principle Liskov Substitution Interface Segregation Dependency Inversion Liskov Substitution “Seja Θ(x) uma propriedade demonstrável dos objetos x de tipo T . Então Θ(y) deve ser demonstrável para objetos y de tipo S onde S é um subtipo de T". (LISKOV; WING, 1999). Ronildo Oliveira SOLID, Design de Software e POO 8 / 17 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 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 seguinte pensamento: “Clientes não devem ser forçados a depender de métodos que não utilizam". (MARTIN; MARTIN, 2006) Ronildo Oliveira SOLID, Design de Software e POO 10 / 17 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 Introdução Single Responsibility Open-Closed Principle Liskov Substitution Interface Segregation Dependency Inversion Dependency Inversion “Sempre que uma classe for depender de outra, ela deve depender sempre de outro módulo mais estável do que ela mesma."(ANICHE, 2014) Ronildo Oliveira SOLID, Design de Software e POO 12 / 17 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 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 o aluno a identificar suas próprias deficiências e contribuir na relação aluno e monitor. Resultados Estatísticos. Ronildo Oliveira SOLID, Design de Software e POO 14 / 17 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 Resultados Dúvidas, Críticas e Sugestões Agradecimentos Agradecimentos Ronildo Oliveira SOLID, Design de Software e POO 16 / 17 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 Using Invariants and Constraints. [S.l.]: School of Computer Science Carnegie Mellon University Pittsburg, 1999. MARTIN, R. C.; MARTIN, M. Agile Principles, Patterns, and Practices in C Sharp. 1st. ed. [S.l.]: Prentice Hall, 2006. Ronildo Oliveira SOLID, Design de Software e POO 17 / 17 SOLID Resultados
Compartilhar