CSE3130: Object-oriented Programming 2
Students extend their knowledge of object-oriented programming (OOP). They add to their expertise in object-oriented design by using some of the techniques associated with the UML design approach and to their programming expertise by writing programs that explore association between classes. Students work with abstract classes, developing algorithms that employ the object diagram approach and programs that use templated classes, containment and inheritance to promote reusability.
Theory
Explain and represent class and object interactions possible in OOP:
- outline the key properties of the OOP approach
- describe and demonstrate how coding can be reduced and responsibilities distributed through the appropriate use of polymorphism and inheritance
- describe and represent the relationship among the classes, objects, instances and methods including:
- inheritance
- association
- composition and aggregation
- describe and represent ways in which inheritance and polymorphism are promoted
- outline how static classes, polymorphism and inheritance may be used to hide and/or protect data
Coding
These can be done in any language that supports OOP. Submit all relevant program/other files.
- Create a group of companies with heirarchies of employees
- Design a UML diagram showing how the company and employee objects relate to each other
- Create a program according to your UML diagram
- You are allowed flexibility in how you choose to relate your companies and employees to each other, but they must satisfy the following requirements:
- An employee can work for a maximum of 1 company
- You must include at least three different roles in your heirarchy of employees
- You must have an abstract Employee class from which all other employee classes are extended
- You must include at least two different company classes
- You must have an abstract Company class from which all other company classes are extended
- A company must have at least the following information available for retrieval:
- Name
- Description
- Number of Employees
- An employee must have at least the following information available for retrieval:
- Name
- Role
- Boss (if applicable)
- Subordinate(s) (if applicable)
- Salary
- You may build off your company project from OOP 1, but it must include all the required upgrades including the UML planning diagram
- Design and write a coding project of your choice involving the use of OOP
- It must incorporate your newly learned knowledge from OOP 2 (not just knowledge from OOP 1)
- Write a description of your intended project
- Show evidence of planning your project, including a UML diagram
- Submit the above documents along with any required program files to run your code
Competencies and Skills
You will also be evaluated on your basic competencies such as your ability to:
- communicate
- manage information
- use numbers
- think and solve problems
- demonstrate positive attitudes and behaviours
- be responsible
- be adaptable
- learn continuously
- work safely
- work with others
- participate in projects and tasks
- Create a transitional strategy to accommodate personal changes and build personal values:
- identify short-term and long-term goals
- identify steps to achieve goals