Object-oriented software design

Tárgykód:
Course coordinator:
Goldschmidt Balázs
Degree program:
IT engineering
Study cycle:
BSc
Semester in curriculum:
5
Category:
Specialization
Description:

A magyar kurzus információi a tárgy magyar weboldalán találhatók.

Lecturer: Dr. Simon Balázs

Subject info: BMEVIIIAC00

Course materials

The official web page of the subject: Moodle

Thesis exam questions

Materials can be downloaded from here:
http://devil.iit.bme.hu/~sbalazs/ootervzv/ooterv-zv-en.zip
(Please, copy the URL into the address bar of the browser. Because of security reasons, browsers do not allow links from HTTPS to HTTP.)

  1. OO design principles. For each principle: what problems does it solve, how does it solve the problems, what happens if we violate it, when can we violate it?
  2. OO design heuristics. For each heuristic: what problems does it solve, how does it solve the problems, what happens if we violate it, when can we violate it? How do these heuristics connect to refactoring patterns and code-smells?
  3. What is refactoring? Rules, steps, advantages and problems of refactoring. Refactoring patterns and code-smells. How do they connect to the OO design heuristics?
  4. Clean-code principles. For each principle: what problems does it solve, how does it solve the problems, what happens if we violate it, when can we violate it?
  5. API design principles. For each principle: what problems does it solve, how does it solve the problems, what happens if we violate it, when can we violate it?
  6. Distributed OO. What kind of problems can arise? What are the possible solutions to these problems?
  7. Concurrent and distributed patterns. What are the problems? What are the possible solutions? How the patterns are connected to each other?
  8. Immutable OO. What are the disadvantages of mutability? What are the advantages and disadvantages of immutability? How can an immutable class be implemented?