Programação Orientada a Objetos
De forma geral, quando estamos desenvolvendo um sistema computacional, buscamos apoiar usuários no alcance de objetivos estabelecidos por eles. Esses objetivos podem variar e ir desde a solicitação de um carro de aplicativo de transporte até a efetivação de uma transferência bancária de milhares de reais.
A questão é que, como desenvolvedores de software, ao ouvirmos ou conversarmos sobre um problema, temos a tendência de pensar sobre o assunto em termos de algoritmos e estruturas eficientes para o armazenamento e processamento desses dados. Essa abordagem de raciocínio é até natural, já que é assim que boa parte dos cursos de Computação trabalham nas disciplinas introdutórias. No entanto, um sistema é usualmente uma ferramenta mediadora: ele é usado por um usuário ou organização para se chegar a um determinado objetivo em um contexto específico.
Por isso, mais que simplesmente escrever códigos em uma linguagem de programação, precisamos pensar em maneiras adequadas para solucionar problemas reais. Em alguns casos, isso pode ser alcançado com o conhecimento básico em programação. No entanto, não estamos interessados em apenas fazer o programa funcionar. Precisamos ir além: nosso dever é usar boas práticas de programação e estratégias que nos permitirão desenvolver um software de qualidade a longo prazo.
A disciplina de Programação Orientada a Objetos é excelente por vários motivos: além de apresentar um novo mundo com a introdução de um novo paradigma de programação, é também uma excelente oportunidade para se envolver com aspectos essenciais de Engenharia de Software. Embora temas como requisitos e teste de software sejam apresentados de forma aprofundada em uma disciplina específica, buscaremos conciliar conceitos centrais com a aplicação do paradigma orientado a objetos.
O objetivo é fornecer uma visão mais ampla do projeto de software, não se limitando apenas ao entendimento do paradigma orientado a objetos de forma isolada.