Program to Control Access to an Object (Object Access Control Program)
Operating systems and middleware often need to be able to control access to an object
(authorization). The term objects, in this case, refers to things like files, directories, messages,
network interfaces, discs, etc.
Access control lists and are typically cached in RAM memory, so that access permission checks
can be performed very quickly. An instance of an operating system typically manages many
thousands of objects. The data structure used to store permissions for a given object should be as
compact as possible to reduce the memory footprint. The screen capture below shows the file
permissions descriptor in Linux.
The sequence of letters listed on the left describes the different types of permissions that the
currently logged on user has with respect to the object listed on the right. For now, we don’t need
to understand what all of these letters signify. As part of this assignment, we will build
something similar, although simpler. Remember – this is the human-friendly output of the
underlying file permissions descriptors. Is there a more compact way to store this information?
We will construct a simple object permissions descriptor. The descriptor will not be associated
with any object for now. The objective is to simply practice storing information in an efficient
Sections below summarize the functional and non-functional requirements for the simple
program that you will develop for this assignment. Please read these sections carefully. Please
also carefully review the ‘Deliverables’ section below.
The functional requirements for a computer program are often recorded as use case. Use cases
describe how different users (called actors) interact with the program. Each use case lists the
actor, the steps, and alternate flows – if any.