Lectures 2012

Announcements

15.02.2012 - Lectures are held every Wednesday, 18.00, B426.

Chapter 6

  • Developing your project
  • Consultations regarding the lectures & project

Introduction to UML : Class Diagram & Sequence Diagram

Suggested Reading

  • M. Fowler - UML Distilled, Chapters 3, 4, 5
  • R. Martin - Class Diagram on Object Mentor's Site here
  • The code used for drawing diagrams during lectures is here

Introduction to Use Cases

Suggested Reading

  • M. Fowler - UML Distilled, Chapter 9
  • S. Ambler - Use Case Diagram here

Chapter 5 (28.03, 4.04, 11.04)

Demo, DemoParameters

Java Remote Method Invocation - Part 2

Suggested Reading

  • jGuru : Remote Method Invocation (Sections Parameters in RMI) here
    • If the previous link does not work, you can find the material here
  • Head First Java, Chapter 14 - Saving Objects (pp. 429-446)

Java Remote Method Invocation - Part 1

Suggested Reading

  • E. Gamma, R. Helm, R. Johnson, J. Vlissides - Design Patterns (Proxy Pattern)
  • jGuru : Remote Method Invocation (Sections Java RMI Architecture, Naming Remote Objects, Using RMI) here
    • If the previous link does not work, you can find the material here
  • The semantics of the indicated basic operations from Naming here and UnicastRemoteObject here
  • C. Marinescu, P.F. Mihancea - Programarea Orientata pe Obiecte in Limbajul Java, Capitol 11 - Sectiunea 11.3.2 (pana la cooperare prin conditii) (here)

Chapter 4 (7.03, 14.03, 21.03)

Demo here and here

TCP/IP and Java Socket Programming - Part 2

Suggested reading

  • The Java Tutorials - All About Sockets (all sections) here
    • Note: It is highly possible to not have a default echos server on your machine but, at the same time, it is a good excercise to write one by yourself
  • The Java Tutorials - All About Datagrams (What is a Datagram? & Writting a Datagram Client & Server ) here
  • The semantics of the basic operations from Socket (here) and ServerSocket (here) classes (those presented on slides and disscussed during lecture class)
    • Optionally, you may compare these operations with those from Berkeley Unix (A. Tanenbaum - Computer Networks 4th Edition, Chapter 6, Section 6.1.3 - Berkeley Sockets)
  • The semantics of the basic operations from DatagramSocket (here) and DatagramPacket (here) classes (those presented on slides and disscussed during lecture class)

Suggested reference for defining/starting a thread in Java

  • C. Marinescu, P.F. Mihancea - Programarea Orientata pe Obiecte in Limbajul Java, Capitol 11 - Sectiunea 11.3.1 (here)

TCP/IP and Java Socket Programming - Part 1

Suggested reading

  • A. Tanenbaum - Computer Networks 4th Edition
    • Chapter 1 - Introduction : Section 1.3 - Network Software
    • Chapter 1 - Introduction : Sections 1.4.1/1.4.2 - Reference Models (especially TCP/IP)
    • Chapter 5 - The Network Layer : Section 5.6.2 - IP Addresses (without Subnets subsection, basic view on CIDR and NAT)
  • The Java Tutorials - Networking Basics (here)

Chapter 3 (7.03)

Back to Network Programming Intro - Basics

Suggested reading

  • I. Sommerville - Software Engineering (Chapter 11 - Architectural Design : Section 11.2.2 - Client-Server Model)
  • B. Eckel - Thinking in Java 3rd Edition (here) (Chapter 12 - The Java I/O System - Sections: Input and Output, Adding Attributes and Useful Interfaces, Readers and Writers, Typical Uses, Standard IO)

Chapter 2 (22.02, 29.02)

A Review on Object-Orientation with Java Examples - Part 2

Suggested reading

  • A. J. Riel - Object-Oriented Design Heuristics (Chapter 2 - Heuristic 2.1, Chapter 3 - The GodClass Problem (Behavioral Form) - Sections 3.3, 3.4)
  • A. Hunt, D. Thomas - Pragmatic Programmer (Chapter 5 - Section 1: Decoupling and the Law of Demeter)
  • R.C. Martin - Agile Software Development (Chapters 9,10,11 - OCP, LSP, DIP)
    • alternatively, OCP, LSP, DIP from Object Mentor Site

A Review on Object-Orientation with Java Examples - Part 1

Suggested Java reference books

  • K. Sierra, B. Bates - Head First Java
  • C. Marinescu, P.F. Mihancea - Programarea Orientata pe Obiecte in Limbajul Java (here)