Module Overview

Object Oriented Software Development 3

This course completes the development of the student's skills in basic object-oriented software development, concentrating on two major topics: the development of threaded applications and the particular problems associated with them in terms of ensuring the correct execution of concurrent threads, and input/output on files and other data sources. 

Module Code

INFS2008

ECTS Credits

5

*Curricular information is subject to change
  • Differences between single-threaded and multi-threaded processes: 

    • Process and thread life cycles 

    • Implementing threads: varying models of implementing threads, allocating priorities to threads, thread scheduling. 

    • Synchronisation: reasons why synchronisation is necessary, concept of critical section, implementing critical sections within programs, producer-consumer problem, other classical problems of synchronisation (readers-and-writers, Dining Philosophers). 

    • Deadlocks: concept of deadlock, necessary conditions for deadlock, deadlock prevention, deadlock avoidance, safe and unsafe states, algorithms to determine safety of system, deadlock detection and algorithms for same. 

    • Appropriate UML diagrams for threaded applications. 

    • Input/Output:  Notions of files and streams, low-level and high-level streams, readers and writers. 

    • Performing sequential and random access on files. 

    • Object serialization 

Syllabus

Differences between single-threaded and multi-threaded processes: Process and thread life cycles Implementing threads: varying models of implementing threads, allocating priorities to threads, thread scheduling. Synchronisation: reasons why synchronisation is necessary, concept of critical section, implementing critical sections within programs, producer-consumer problem, other classical problems of synchronisation (readers-and-writers, Dining Philosophers). Deadlocks: concept of deadlock, necessary conditions for deadlock, deadlock prevention, deadlock avoidance, safe and unsafe states, algorithms to determine safety of system, deadlock detection and algorithms for same. Appropriate UML diagrams for threaded applications. Input/Output:  Notions of files and streams, low-level and high-level streams, readers and writers. Performing sequential and random access on files. Object serialization

The learning methods used for this module will be a combination of lectures, problem-solving exercises. The exercises will involve the construction of functioning software applications, with the design being documented. 

Module Content & Assessment
Assessment Breakdown %
Other Assessment(s)100