Difference between revisions of "Programação com Objectos"

From Wiki**3

(Projecto: Aplicação Bancária (exemplo de projecto))
(Pautas)
 
(79 intermediate revisions by the same user not shown)
Line 3: Line 3:
 
<!-- {{TOCright}} -->
 
<!-- {{TOCright}} -->
 
<!-- __NOEDITSECTION__ -->
 
<!-- __NOEDITSECTION__ -->
 +
{{Suggestion|https://bit.ly/po-wiki}}
 
== Tópicos Teóricos e Práticos ==
 
== Tópicos Teóricos e Práticos ==
  
 
* [[Tópicos sobre Programação com Objectos]] (teoria e prática)
 
* [[Tópicos sobre Programação com Objectos]] (teoria e prática)
  
== Projecto: Aplicação Bancária (exemplo de projecto) ==
+
== Projecto ==
  
Este exemplo de projecto apresenta uma aplicação bancária em Java, cuja estrutura é semelhante à do projecto a desenvolver. A versão apresentada é válida para 2013/2014.
+
* [[Programação com Objectos/Projecto de Programação com Objectos|Projecto de Programação com Objectos]] -- informação sobre todos os aspectos do projecto
* [[Media:po-uilib-201308300030.tar.bz2|po-uilib-201308300030.tar.bz2]] - Base interaction package, a.k.a. '''po-uilib'''
 
* [[Media:po-bank-core-201308300030.tar.bz2|po-bank-core-201308300030.tar.bz2]] - Core functionality, a.k.a. '''bank-core'''
 
* [[Media:po-bank-support-201308300030.tar.bz2|po-bank-support-201308300030.tar.bz2]] - Support code (labels, messages, user interface exceptions), a.k.a. '''bank-support'''
 
* [[Media:po-bank-textui-201308300030.tar.bz2|po-bank-textui-201308300030.tar.bz2]] - Text-based user interface, a.k.a., '''bank-textui'''
 
  
Each package includes a makefile to compile and build the corresponding JAR archive. Note that the makefiles assume that all JAR dependencies reside in /usr/share/java (linux installation -- other environments may, and indeed should work, but are not covered in this text).
+
== Aulas Práticas ==
  
More information can be found in these pages:
+
Plano das aulas: https://bit.ly/po23-plano
* [[Comando (padrão_de_desenho)]] - describes the design pattern underlying the structure of the textual interface
 
* [[Comando (padrão de desenho)/Banco, Conta, Titular (aplicação bancaria)|Banco, Conta, Titular (aplicação bancaria)]]
 
  
You may want to read these quick and dirty guides:
+
* Semana 1.1: [[Programação com Objectos/Aula Prática 01|Aula Prática 01]] - Tipos de dados abstractos em C e em C++
* [[CVS Crash Course]]
+
* Semana 1.2: [[Programação com Objectos/Aula Prática 02|Aula Prática 02]] - Processos de análise e modelação; criação de classes simples
* [[Quick-and-Dirty Guide to Transforming the Bank Application into your Very Own Project]] (this guide is outdated and is provided only as a general guideline and example of how to start development from existing code: use at your own risk!)
+
* Semana 2.1: [[Programação com Objectos/Aula Prática 03|Aula Prática 03]] - Criação de objectos, herança, polimorfismo, overloading e overriding (métodos)
 +
* Semana 2.2: [[Programação com Objectos/Aula Prática 04|Aula Prática 04]] - Herança, polimorfismo, aspectos de programação OO
 +
* Semana 3.1: [[Programação com Objectos/Aula Prática 05|Aula Prática 05]] - Polimorfismo: interfaces e classes abstractas
 +
* Semana 3.2: [[Programação com Objectos/Aula Prática 06|Aula Prática 06]] - Java: classes internas; comparadores, iteradores
 +
* Semana 4.1: [[Programação com Objectos/Aula Prática 07|Aula Prática 07]] - Java: excepções; colecções
 +
* Semana 4.2: [[Programação com Objectos/Aula Prática 08|Aula Prática 08]] - Java: entradas e saídas; serialização de objectos
 +
* Semana 5.1: [[Programação com Objectos/Aula Prática 09|Aula Prática 09]] - Composite (padrão de desenho)
 +
* Semana 5.2: [[Programação com Objectos/Aula Prática 10|Aula Prática 10]] - Strategy (padrão de desenho) & State (padrão de desenho)
 +
* Semana 6.1: [[Programação com Objectos/Aula Prática 11|Aula Prática 11]] - Visitor (padrão de desenho)
 +
* Semana 6.2: [[Programação com Objectos/Aula Prática 12|Aula Prática 12]] - Decorator (padrão de desenho) & Adapter (padrão de desenho)
 +
* Semana 7.1: [[Programação com Objectos/Aula Prática 13|Aula Prática 13]] - Diagramas de sequência UML
  
== Testes de Avaliação (por data)  ==
+
== Pautas ==
 +
As páginas das pautas contêm, além dos resultados de avaliação, também os critérios de avaliação e aprovação.
 +
* {{PautaAberta}} [[Programação com Objectos/Pautas 2023-2024|Pautas 2023-2024]]
 +
* {{PautaFechada}} Pautas de anos anteriores: [[Programação com Objectos/Pautas 2022-2023|2022-2023]] [[Programação com Objectos/Pautas 2021-2022|2021-2022]] [[Programação com Objectos/Pautas 2020-2021|2020-2021]] [[Programação com Objectos/Pautas 2019-2020|2019-2020]] [[Programação com Objectos/Pautas 2018-2019|2018-2019]] [[Programação com Objectos/Pautas 2017-2018|2017-2018]] [[Programação com Objectos/Pautas 2016-2017|2016-2017]] [[Programação com Objectos/Pautas 2015-2016|2015-2016]] [[Programação com Objectos/Pautas 2014-2015|2014-2015]]
  
[[Programação com Objectos - Teste 1 de 2013/02/04|20130204 (1)]] [[Programação com Objectos - Teste 2 de 2013/02/04|20130204 (2)]] [[Programação com Objectos - Teste de 2013/01/17|20130117]] [[Programação com Objectos - Teste de 2012/11/19|20121119]]
+
<!--== Testes de Avaliação (por data) ==
  
[[Programação com Objectos - Teste de 2012/01/30|20120130]] [[Programação com Objectos - Teste de 2012/01/07|20120107]] [[Programação com Objectos - Teste de 2011/01/10|20110110]] [[Programação com Objectos - Teste de 2010/01/21|20100121]] [[Programação com Objectos - Teste de 2010/01/04|20100104]] [[Programação com Objectos - Teste de 2009/01/24|20090124]] [[Teste de Dezembro de 2008|200812]] [[Programação com Objectos - Teste de Dezembro de 2005|200512]]
+
[[Programação com Objectos/Teste de 2013/11/15|20131115]] [[Programação com Objectos/Teste 1 de 2013/02/04|20130204(1)]] [[Programação com Objectos/Teste 2 de 2013/02/04|20130204(2)]] [[Programação com Objectos/Teste de 2013/01/17|20130117]] [[Programação com Objectos/Teste de 2012/11/19|20121119]]  
 
 
== Máquinas Virtuais para Desenvolvimento ==
 
 
 
Esta máquina '''koops32''' já contém o ambiente necessário ao desenvolvimento do projecto, incluindo o material de apoio definido em cada ano lectivo.
 
* https://www.l2f.inesc-id.pt/~david/ist/docencia/po/vm/
 
* http://susegallery.com/a/tuLZgC/koops32 (arquitectura de 32 bits)
 
 
 
Dados de acesso à máquina:
 
* Username: '''oops'''
 
* Password: '''linux'''
 
 
 
Esta máquina corresponde ao ambiente de avaliação oficial.
 
 
 
== Desenvolvimento em Java ==
 
 
 
The Java version in use is 1.7. However, in general, any version from 1.5 should be appropriate.
 
 
 
Information about the [http://www.java.com/ Java] API can be found in the following sites:
 
* [http://docs.oracle.com/javase/7/docs/api/ Java Platform, Standard Edition 7 API Specification]
 
 
 
== Desenvolvimento em C++  ==
 
 
 
*[[Tópicos Rápidos sobre C++]]
 
 
 
Information about [http://cplusplus.com/ C++] and the C++ STL can be found in the following sites:
 
 
 
*[http://cplusplus.com/reference/ Manual de Referência para C++ (biblioteca)] [http://cplusplus.com/reference/stl/ STL (contentores)] [http://cplusplus.com/reference/algorithm/ STL (algoritmos)]
 
*[http://cppreference.com/ Manual de Referência para C/C++]
 
 
 
== Desenvolvimento em PHP ==
 
 
 
[http://php.net/ PHP] is syntactically similar to both Java and C++ and shares many of the features present in these languages.
 
However, variables in PHP is usually untyped (implying dynamic binding).
 
 
 
* [http://www.php.net/manual/en/ PHP manual]
 
* [http://www.php.net/manual/en/funcref.php Function reference]
 
  
 +
[[Programação com Objectos/Teste de 2012/01/30|20120130]] [[Programação com Objectos/Teste de 2012/01/07|20120107]] [[Programação com Objectos/Teste de 2011/01/10|20110110]] [[Programação com Objectos/Teste de 2010/01/21|20100121]] [[Programação com Objectos/Teste de 2010/01/04|20100104]]  [[Programação com Objectos/Teste de 2009/01/24|20090124]] [[Programação com Objectos/Teste de Dezembro de 2008|200812]] [[Programação com Objectos/Teste de Dezembro de 2005|200512]]
 +
-->
 
[[category:Ensino]]
 
[[category:Ensino]]
 
[[category:PO]]
 
[[category:PO]]
 
[[en:Object-Oriented Programming]]
 
[[en:Object-Oriented Programming]]

Latest revision as of 11:15, 28 August 2023

Programação com Objectos
Introduction
Creation and Destruction
Inheritance & Composition
Abstraction & Polymorphism
Code Organization
Java Topics
Inner Classes
Enumerations
Data Structures
Exceptions
Input/Output
RTTI
Other Topics
JUnit Tests
UML Topics
Design Patterns
"Simple" Factory
Composite & Visitor
Command
Strategy & State
Template Method
Observer
Abstract Factory
Decorator & Adapter
Façade (aka Facade)

Tópicos Teóricos e Práticos

Projecto

Aulas Práticas

Plano das aulas: https://bit.ly/po23-plano

Pautas

As páginas das pautas contêm, além dos resultados de avaliação, também os critérios de avaliação e aprovação.