Object Oriented Software Development

Vancouver Island UniversityNanaimo, Canada

Tuition Fee

Not Available

Start Date

Not Available

Medium of studying

Not Available

Duration

Not Available

You've viewed 1/5 programs/universities. You can view up to 5 programs/universities

Create a free account to unlock full content!

By registering, you agree to our Privacy Statement and Terms and Conditions.

Program Details

Degree
Bachelors
Major
Computer Science | Information Technology | Software Engineering
Area of study
Engineering | Information and Communication Technologies
Course Language
English

Program Overview

Course Overview

The CSCI 331 - Object Oriented Software Development course is offered in Fall 2023 as a directed study.


Assessment

  • Project -- 55%
    • The project consists of 4 major deliverables, each with multiple minor deliverables:
      • Software Domain Models (One for each Usecase) -- 14%
      • Software Development and Test Platform -- 9%
      • Software Design Models (One for each Usecase) -- 21%
      • Software Development, Test, and Deployment (Implementing Design Models of the Usecases) -- 11%
    • Technologies and Tools:
      • Software Development and Test Platform (J2EE Eclipse, Maven, MariaDB, and Apache Tomcat)
      • Domain Model (UML Usecase and Class Diagram)
      • Design Model (UML Class, Communication, Activity, State, and Sequence Diagrams)
      • Object Oriented Software Development (Java, Spring Boot, Thymeleaf)
      • Object Persistence (JPA, Hybernate, MariaDB)
      • Object Oriented Testing (JUnit and Integration)
      • User Interface(HTML, Javascript)
      • Build Tool (Maven)
      • Deployment Platform (Tomcat Container)
      • Source Control (GIT)
  • Midterm Exam -- 15%
  • Final Exam -- 30%

Grading Policy

Student will receive a single, final grade assessing his/her performance in the laboratory and lecture components combined. Student must achieve separate passing grades in the laboratory component and in the lecture component of the course in order to be able to earn an overall passing grade in the course. Laboratory component includes the project. Lecture component includes both midterm and final examinations.


Participation

Active participations include attending synchronous lab and lecture sessions through Zoom, asking and answering questions in Zoom lab and lecture sessions, posting questions and answers in VIULearn discussion forum.


Texts

  1. Applying UML and Pattern: An Introduction to Object-Oriented Analysis and Design and the Unified Process by Craig Larman
  2. Agile Software Development: Principles, Patterns, and Practices by Robert C. Martin

Topics

  1. Object Oriented Concepts
    • Objects and Classes
    • Enacapsulation
    • Inheritance
    • Message Passing
    • Polymorphism
  2. Unified Modeling Language (UML)
    • Use Case
    • Class Diagram
    • Collaboration Diagram
    • Sequence Diagram
    • State Diagram
    • Activity Diagram
    • Package Diagram
    • Component Diagram
    • Deployment Diagram
  3. Object-Oriented Analysis and Design
    • Use Case
    • Domain Model: Conceptual Class Diagram
    • Design Model: Software Class Diagram
  4. Cohesion and Coupling
  5. Object-Oriented Design with General Responsibity Assignment Software Pattern (GRASP)
    • Information Expert
    • Creator
    • High Cohesion
    • Low Coupling
    • Controller
    • Polymorphism
    • Indirection
    • Pure Fabrication
    • Protected Variation
  6. Software Design Smells
  7. Object Design Principles (SOLID)
    • Single-Responsiblity Principle
    • Open-Close Principle
    • Liskov Substitution Principle
    • Interface - Segragation Principle
    • Dependency Inversion Principle
  8. Design Patterns
    • Adapter
    • Decorator
    • Factory
    • Singleton
    • Template Method
    • Strategy
    • State
    • Observer
    • Facade
    • Iterator
    • Model View Controller (MVC)

Learning Outcomes

After completing this course, students will be able to:


  • Apply object-oriented programming concepts, such as object, class, encapsulation, inheritance, message passing, and polymorphism to design and develop software.
  • Choose and use appropriate UML diagrams (class, sequence/collaboration, activity, and state) to analyze and design software.
  • Write usecase stories reflecting the stake holder's needs of a software system.
  • Analyze usecase stories and translate usecase stories into domain models (conceptual class diagrams).
  • Design software, i.e., create software design models (software class diagrams, sequence or collaboration diagrams, activity diagrams, state diagrams etc.) from the domain models.
  • Apply GRASP and SOLID principles to avoid design smells from the software.
  • Apply appropriate design patterns (MVC, Singleton, Adapter, Decorator, Factory, Template Method, Strategy, State, Observer, Facade, Iterator etc.) to improve the quality and the maintainability of the software.
  • Develop the software using Java Programming Language and Java Spring Boot Framework (Java MVC Framework).
  • Create web based user interface for the software using Thymeleaf HTML templates.
  • Test the software using Java Unit (Junit) Test Framework.
  • Persists the data of the software in MySQL Database Engine using Java Persistence API (JPA) and Hibernate ORM.
  • Build the software using Maven Build Tool.

Labs

You must be enrolled in, and you must fully participate in, the weekly sessions. You must know Java, Javascript, HTML, and SQL to complete the project. Instructor assumes you have enough experience in Java, Javascript, HTML, and SQL. It will be your responsibility to learn Java, Javascript, HTML, and SQL outside the class if you have any gap. You must complete your project in a team of 4 (four) students.


Grade Conversion

The following grade scale will be used:


  • 90-100: A+ (4.33)
  • 85-89: A (4.00)
  • 80-84: A- (3.67)
  • 76-79: B+ (3.33)
  • 72-75: B (3.00)
  • 68-71: B- (2.67)
  • 64-67: C+ (2.33)
  • 60-63: C (2.00)
  • 55-59: C- (1.67)
  • 50-54: D (1.00)
  • 0-49: F (0.00)

About University

Vancouver Island University


Overview:

Vancouver Island University (VIU) is a public university located on Vancouver Island in British Columbia, Canada. It offers a wide range of undergraduate and graduate programs across various disciplines, including arts, humanities, social sciences, business, education, health, science, technology, and trades. VIU is known for its commitment to student success, providing a supportive learning environment and a variety of services to help students thrive.


Services Offered:

VIU offers a comprehensive range of services to support students, including:

    Academic Advising:

    Personalized guidance on program selection, course planning, and academic progress.

    Financial Aid and Awards:

    Scholarships, bursaries, loans, and other financial assistance options.

    Career Services:

    Career counseling, job search assistance, and internship opportunities.

    Library:

    Extensive collection of books, journals, databases, and online resources.

    Health and Wellness Services:

    Counseling, health promotion, and fitness programs.

    Student Housing:

    On-campus residence options for students seeking a convenient and supportive living environment.

    Campus Recreation:

    Opportunities for physical activity, sports, and recreational activities.

    Campus Store:

    Supplies, textbooks, and VIU merchandise.

    Food Services:

    Dining options on campus, including cafes, restaurants, and vending machines.

Student Life and Campus Experience:

VIU fosters a vibrant and inclusive campus community, offering students a variety of opportunities to engage in extracurricular activities, connect with peers, and develop their personal and professional skills. Students can participate in:

    Student Clubs and Organizations:

    A wide range of clubs and organizations catering to diverse interests.

    Campus Events:

    Social gatherings, workshops, performances, and guest speaker events.

    Volunteer Opportunities:

    Opportunities to give back to the community and gain valuable experience.

    Athletics:

    Participation in varsity sports and recreational leagues.

Key Reasons to Study There:

    Location:

    Situated on beautiful Vancouver Island, offering access to stunning natural landscapes and outdoor recreation opportunities.

    Small Class Sizes:

    Personalized attention from faculty and a more intimate learning environment.

    Supportive Community:

    A welcoming and inclusive campus community that fosters a sense of belonging.

    Practical Experience:

    Emphasis on hands-on learning and real-world applications.

    Career-Focused Programs:

    Programs designed to prepare students for successful careers in their chosen fields.

Academic Programs:

VIU offers a diverse range of academic programs, including:

    Bachelor's Degrees:

    In various disciplines, including arts, business, education, health, science, and technology.

    Master's Degrees:

    In areas such as business administration, education, and geographic information systems.

    Diplomas and Certificates:

    In a wide range of fields, including trades, technology, and professional development.

Other:

VIU has three campuses located in Nanaimo, Cowichan, and Powell River, providing students with a variety of campus environments to choose from. The university also has a strong commitment to Indigenous education and offers a variety of programs and services specifically designed for Indigenous students.

Top 1201Average ranking globally
View university profile

Location