A site license can be for an entire university, or campus, or college, or department, or lab. Of course, sometimes people just buy licenses for a single machine or a single person. The price of a site license depends on the size of an organization. Design a system that can help an employee tell whether there is a site license that covers a particular piece of software, and that can help the organization know how many people will be covered by a particular agreement, and thus how much to pay for it. Make a Party class with subclasses Individual and Organization.
Organization is a composite party.
Because it is a composite you ll have to design the normal composite operations like add, remove, and enumerate children. Each party must be able to tell you how many individuals are in it. It will do this by communicating with its children. Give each party a set of licenses. A party should be able to add and remove licenses and to tell whether it is covered for a license for a particular piece of software.