Question: Scenario: You work as a software engineer in HTU university. The university needs to develop a new system: Students Registration System (SRS). The system must

Scenario:

You work as a software engineer in HTU university. The university needs to develop a new system: Students Registration System (SRS). The system must apply the Object Oriented and Design Patterns concepts.

To achieve the above goals, your manager asked you to prepare a full report that contains core information starting from designing the UML Class diagrams and their relationships, then explain the Object Oriented characteristics and design patterns. After that you should develop a running code that implements UML Class diagrams as follows:

  • The system must include degrees (Bachelor and Master).
  • The university includes two schools: School of Engineering Technology (ENG.) and School of Informatics (IT).
  • School of Engineering Technology has two programs: Electrical Engineering (ELENG) and Energy Engineering (ENENG).
  • School of Computing and Informatics has three programs: Computer Science (CS), Data Science (DS) and Cybersecurity (CYS).
  • Each school has id, name and abbreviation.
  • Each program has id, name and abbreviation.
  • Each student must have the following attributes: id, name, degree, school, program, studying type (Regular or Graduated).
  • Each program has a set of courses.
  • Each course has the following attributes: id, name, and credit hours.
  • In every semester the registration department announces courses schedule. Each course can be studied through multiple sections. Each section is associated with one instructor.
  • Each instructor has the following attributes: id, name, salary and school.
  • Student and instructor might be shared with the following attributes: id, name and school.
  • Each student is allowed to register between 12 and 18 hours per semester.
  • At the end of the semester, the instructors have to assign grades for their students.
  • The system shall allow the student to: add courses without exceed 18 hours, drop courses, calculate semester average and change program.

Part 1:

1.1 Examine the object-oriented programming paradigm characteristics (Encapsulation, polymorphism, constructors, abstract, interface, method redefinition, generics, collections, the relationship between class and objects, static keyword). Also include the information about class relationships generalisation/Inheritance, realization, dependency, association, aggregation, composition (Report).

1.2 Determine one design pattern from each of creational, structural, and behavioural pattern types (Report).

1.3 Analyse the relationship between OOP paradigm and the design patterns (Report).

Part 3:

3.1 Build an application derived from SRS system UML class diagrams (Report).

3.2 Develop code that implements facade and singleton design patterns which will enhance the system (Report).

3.3 Evaluate the use of design patterns used in 3.2 (Discussion).

Part 4:

4.1 Discuss the following patterns using practical examples through implementing a small java application (Report):

  • Facade
  • Factory
  • Singleton
  • Prototype
  • Iterator

4.2 Reconcile the most appropriate design pattern that can be used in the following scenarios (Discussion):

  • You have created Shape interface then you implemented it as Circle, Rectangle, Square and Triangle shapes. You want the client to create objects for all shapes without exposing the creation logic.
  • SRS system shall be easy adapted with any changes in business rules such as fees payment way (student can pay fees then register courses or vice versa).
  • Main parameters for SRS are: current year and semester. They must be defined once for all users.
  • In SRS, you need to allow access to certain internet sites for master students and they will be blocked for bachelor students.

4.3 Critically evaluate the use of design patterns in 4.2 (Report).

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!