Prévia do material em texto
Prof. Salatiel Marinho UNIDADE I Programação Orientada a Objetos II Visual Studio Code Agenda Fonte:https://pixabay.com/illustrations/c-c-sharp-programming-sharp-coding-2188446/ O Visual Studio Code não é apenas mais um bloco de notas desenvolvido com coloração de sintaxe e recuo automático. Em vez disso, é um ambiente de desenvolvimento focado em código muito poderoso. Visual Studio Code Fonte:https://pixabay.com/illustrations/c-c-sharp-programming-sharp-coding-2188446/ Suporte interno para codificação com vários idiomas, incluindo aqueles que nós normalmente utilizamos em cenários de desenvolvimento de plataforma cruzada, com recursos avançados de edição e suporte para idiomas adicionais via extensibilidade. Visual Studio Code Fonte: https://code.visualstudio.com/ O controle de versão baseado no popular mecanismo Git, que fornece uma experiência integrada de colaboração que suporta confirmações e ramificações de código, é a escolha adequada para uma ferramenta destinada a trabalhar com possivelmente qualquer idioma. Visual Studio Code Fonte: https://code.visualstudio.com/ Visual Studio Code Fonte: https://code.visualstudio.com/download Visual Studio Code Fonte: autoria própria Visual Studio Code Fonte: autoria própria Visual Studio Code e Visual Studio Community Fonte: autoria própria Visual Studio Code e Visual Studio Community Fonte: autoria própria Visual Studio Code e Visual Studio Community Fonte: autoria própria Interatividade O controle de versão baseado no popular mecanismo _______ fornece uma experiência integrada de colaboração que suporta confirmações e ramificações de código. Podemos completar a frase com: a) Code. b) POO. c) Git. d) Visual. e) SQL. Resposta O controle de versão baseado no popular mecanismo _______ fornece uma experiência integrada de colaboração que suporta confirmações e ramificações de código. Podemos completar a frase com: a) Code. b) POO. c) Git. d) Visual. e) SQL. Agenda Lógica de programação – desenvolvendo habilidades de Programação Orientada a Objetos. Fonte:https://pixabay.com/illustrations/c-c-sharp-programming-sharp-coding-2188446/ Lógica de programação – desenvolvendo habilidades de programação orientada a objetos Um dos pilares da Lógica de Programação aplicada à programação orientada a objetos é que todo sistema passa pela estrutura apresentada abaixo: Fonte: autoria própria Entrada Processamento Saída Lógica de programação é o alicerce que um programador precisa para aplicar conceitos básicos na construção de um software de complexidade simples, média ou avançada. Fonte: https://pixabay.com/vectors/football-stadium-sport-san-mames-96041/ Lógica de programação – desenvolvendo habilidades de programação orientada a objetos Técnicas de desenvolvimento – desenvolvendo habilidades de programação orientada a objetos Segundo Gama (2000) e Evans (2007), herança é uma parte importante de toda e qualquer linguagem orientada a objetos, sendo assim, as classes podem herdar uma da outra, o que significa que, por exemplo, uma classe herdada recebe todo o comportamento da classe herdada, também conhecida como classe base. Fonte:https://pixabay.com/illustrations/c-c-sharp-programming-sharp-coding-2188446/ Fonte: autoria própria - Herança Técnicas de desenvolvimento – desenvolvendo habilidades de programação orientada a objetos Técnicas de desenvolvimento – desenvolvendo habilidades de programação orientada a objetos Fonte: autoria própria - Herança Técnicas de desenvolvimento – desenvolvendo habilidades de programação orientada a objetos Quando transformamos um procedimento que apresenta muitas regras de negócio ou rotinas complexas em um método, chamamos isso de encapsulamento. Fonte:https://pixabay.com/illustrations/c-c-sharp-programming-sharp-coding-2188446/ Privado – apenas visível para a classe que o contém. Protegido – visível apenas para a classe e os herdeiros. Público – visível para todos. Fonte:https://pixabay.com/illustrations/c-c-sharp-programming-sharp-coding-2188446/ Técnicas de desenvolvimento – desenvolvendo habilidades de programação orientada a objetos Fonte: autoria própria - Herança Técnicas de desenvolvimento – desenvolvendo habilidades de programação orientada a objetos Interatividade Quando transformamos um procedimento que apresenta muitas regras de negócio ou rotinas complexas em um método, chamamos isso de _________. Podemos completar a frase com: a) Encapsulamento. b) Herança. c) Polimorfismo. d) Ajuste. e) Normalização de processo. Resposta Quando transformamos um procedimento que apresenta muitas regras de negócio ou rotinas complexas em um método, chamamos isso de _________. Podemos completar a frase com: a) Encapsulamento. b) Herança. c) Polimorfismo. d) Ajuste. e) Normalização de processo. O que Programação Orientada a Objetos. Agenda Fonte:https://pixabay.com/illustrations/c-c-sharp-programming-sharp-coding-2188446/ O que é Programação Orientada a Objetos? O desenvolvimento de aplicações utilizando a linguagem de programação C# pode ser considerado uma base importante para auxiliar na transição de análise para o código que será desenvolvido. Fonte:https://pixabay.com/vectors/programmer-programming-code-work-1653351/ A linguagem C# vem crescendo a cada dia, aumentando sua disseminação no mercado de desenvolvimento de software. A partir da sua concepção até os dias atuais, nota-se a preocupação em garantir a evolução da linguagem, acompanhando o crescimento exponencial do mercado de software. Linguagem de programação C# – Programação Orientada a Objetos Linguagem de programação C# – características No coração de qualquer linguagem orientada a objetos, está seu suporte para definir e trabalhar com classes. Classes determinam novos tipos, permitindo que você estenda a linguagem e consiga manipular melhor o problema que você está tentando solucionar. C# contém palavras-chave para declaração de novas classes e de seus métodos e propriedades e para implementação de encapsulamento, polimorfismo, os três pilares da programação orientada a objetos. Princípio de Responsabilidade Única (SRP) Princípio Aberto Fechado (OCP) Princípio da Substituição de Liskov (LSP) Princípio de Segregação de Interface (ISP) Princípio da Inversão de Dependência (DIP) Linguagem de programação C# – características Linguagem de programação C# – características de desenvolvimento O princípio de responsabilidade única, ou SRP, tem como premissa que uma classe deve ser responsável por uma única funcionalidade, ou seja, uma funcionalidade pode ter como definição um motivo para mudar. Sem dúvida, considera-se o princípio mais complicado de se entender e assimilar é o Princípio Aberto Fechado ou OCP. Linguagem de programação C# – características de desenvolvimento O Princípio da Substituição de Liskov, LSP, define-se basicamente sobre herança, sendo assim, sua afirmação é de que subclasses e classes base devem ser substituíveis. O Princípio de Segregação de Interface, ou ISP, é como o Princípio de Responsabilidade Única por Interfaces, ou seja, podemos definir que não estamos falando das interfaces abstratas, mas sim dos métodos públicos da nossa classe. Linguagem de programação C# – características de desenvolvimento O Princípio da Inversão da Dependência, DIP, tem por definição afirmar que nós devemos depender de abstrações em vez de tipos concretos. Esse é um princípio que nós encontramos com frequência, mas que é bastante difícil de colocar em prática de maneira correta. Injeção de dependência, ou conhecido como um "Contêiner de DI", fornecido pelo Unity, é definido com um tipo de repositório em que tipos abstratos são realizam mapeamento para tipos concretos. Interatividade É como o Princípio de Responsabilidade Única por Interfaces, ou seja, podemosdefinir que não estamos falando das interfaces abstratas, mas sim dos métodos públicos da nossa classe. Estamos falando da definição: a) Princípio de Segregação de Interface. b) Princípio de Responsabilidade Única. c) Princípio Aberto Fechado. d) Princípio de Segregação Única. e) Princípio Aberto Único. Resposta É como o Princípio de Responsabilidade Única por Interfaces, ou seja, podemos definir que não estamos falando das interfaces abstratas, mas sim dos métodos públicos da nossa classe. Estamos falando da definição: a) Princípio de Segregação de Interface. b) Princípio de Responsabilidade Única. c) Princípio Aberto Fechado. d) Princípio de Segregação Única. e) Princípio Aberto Único. Agenda Plano de desenvolvimento. Fonte:https://pixabay.com/illustrations/c-c-sharp-programming-sharp-coding-2188446/ Plano de desenvolvimento de software Atualmente, o desenvolvimento de software cresce exponencialmente. Planejamento, Desenvolvimento, Construção e Avaliação (PDCA) são as constantes utilizadas para que o ciclo de desenvolvimento permaneça ativo no dia a dia. Plano de desenvolvimento Um dos pilares da Lógica de Programação aplicada à programação orientada a objetos é que todo sistema passa pela estrutura apresentada abaixo: Fonte:http://www.sobreadministracao.com/wp-content/uploads/2011/06/ciclo-pdca.jpg (adaptado) Localizar problemas Estabelecer planos de ação Execução do plano Colocar plano em prática Verificar atingimento de meta Acompanhar indicadores Ação corretiva no insucesso Padronizar e treinar no sucesso Para o desenvolvimento de um software, são necessárias algumas perguntas: Como entender o requisito solicitado e “traduzir” em linguagem de programação? Como atender a todas as necessidades de um projeto de software utilizando linguagem de programação? Documentação – Programação Orientada a Objetos Documentação – Programação Orientada a Objetos Para que todas as respostas possam ser apresentadas, um dos recursos que irá conduzir o desenvolvimento do software e auxiliar na visualização das etapas será o UML. Dessa metodologia, iremos absorver: Diagrama de Caso de Uso; Diagrama de Classe; Diagrama de Sequência. Um programador precisa ter recursos de negócio para que, com suas habilidades técnicas, possa desenvolver softwares e um recurso de extrema importância são os diagramas da UML (Linguagem de Modelagem Unificada). Análise x desenvolvimento de aplicações - C# Desenvolvendo e utilizando o Diagrama de Caso de Uso Pelo Diagrama de Caso, pode-se extrair para o desenvolvimento de software: Entendimento da funcionalidade; Entendimento do fluxo de navegação da funcionalidade; Mensagens que serão exibidas no software. Relacionar pontos identificados dentro da análise do sistema utilizando o diagrama de caso de uso, assim facilitando o entendimento e a codificação utilizando a linguagem C#. Vantagens – documentação x programação A classe MessageBox exibe uma caixa de mensagem que pode conter texto, botões e símbolos com o objetivo de informar e instruir o usuário. A classe MessageBox representa uma caixa de diálogo modal de mensagem que é definida no namespace System.Windows. O método estático Show da MessageBox é o único método que é usado para exibir a caixa de mensagem. Utilizando caixa de mensagem – MessageBox Qual propriedade proporciona ao programador codificar para que o sistema apresente uma caixa de mensagem para o usuário? a) MessageBox.Hide. b) MessageBox.Go. c) MessageBox.Show. d) MessageBox.Clear. e) MessageBox.Presentation. Interatividade Qual propriedade proporciona ao programador codificar para que o sistema apresente uma caixa de mensagem para o usuário? a) MessageBox.Hide. b) MessageBox.Go. c) MessageBox.Show. d) MessageBox.Clear. e) MessageBox.Presentation. Resposta BECK, K. TDD – Desenvolvimento Guiado Por Testes. 1. ed. Bookman, 2010. CORMEN, T. Algoritmos: Teoria e Prática. 3. ed. GEN LTC, 2012. EVANS, E. FOWLER, M. Domain-Driven Design: Atacando as Complexidades no Coração do Software. 3. ed. Alfa Books, 2002. FREEMAN, E. FREEMAN, E. Use a Cabeça! Padrões de Projetos. 2. ed. Rio de Janeiro: Alta Books, 2007. GAMMA, E.; HELM, R.; JOHNSON, R.; VLISSIDES, J.; SALGADO, F. Padrões de Projetos: Soluções Reutilizáveis de Software Orientados a Objetos. 1. ed. Bookman, 2000. MARTIN, R. Código Limpo: Habilidades Práticas do Agile Software. 1. ed. Rio de Janeiro: Alta Books, 2008. Referências ATÉ A PRÓXIMA!