 |
CSCI 331 - Object Oriented Software Development
Fall 2023 (Directed Study) Course Outline
|
Contact Information
Timetable
- Meetings:
- 11:00 AM - 12:00 PM, Thursdays, Building 315, Room 214, In-person
Assessment
- Project -- 55%
- 4 Major Deliverables (Each Major deliverable will have 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%
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.
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
- Applying UML and Pattern: An Introduction to Object-Oriented Analysis and Design and the Unified Process by Craig Larman
- Agile Software Development: Principles, Patterns, and Practices by Robert C. Martin
Topics
- Object Oriented Concepts
- Objects and Classes
- Enacapsulation
- Inheritance
- Message Passing
- Polymorphism
- Unified Modeling Language (UML)
- Use Case
- Class Diagram
- Collaboration Diagram
- Sequence Diagram
- State Diagram
- Activity Diagram
- Package Diagram
- Component Diagram
- Deployment Diagram
- Object-Oriented Analysis and Design
- Use Case
- Domain Model: Conceptual Class Diagram
- Design Model: Software Class Diagram
- Cohesion and Coupling
- Object-Oriented Design with General Responsibity Assignment Software Pattern (GRASP)
- Information Expert
- Creator
- High Cohesion
- Low Coupling
- Controller
- Polymorphism
- Indirection
- Pure Fabrication
- Protected Variation
- Software Design Smells
- Object Design Principles (SOLID)
- Single-Responsiblity Principle
- Open-Close Principle
- Liskov Substitution Principle
- Interface - Segragation Principle
- Dependency Inversion Principle
- 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 responsiblity 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.
Computer accounts
To work on your labs and assignments, you will be given accounts for the
computing science labs.
There is a user id and password associated with each account (to prevent others
from reading your mail).
The appropriate use of these accounts will be discussed in your first lab.
Appeals of Grades:
Any exercise or examination grade may be appealed. However, the
appeal must be made to the instructor, in writing and attached to the work in
question, and within 7 days of the grade being made available to the class. The
instructor reserves the right to re-grade the entire piece of work submitted on
appeal, not necessarily just the component that the student believes is in
error.
Grade Conversion:
The following grade scale will be used:
| Percentage(%) |
Letter Grade |
Grade Point |
| 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 |
Services Available to Students with a Documented Disability
VIU's Disability Access Services (DAS) provides services to students with Learning Disabilities, Mental Health Disabilities,
Attention Deficit Hyperactivity Disorder, Autism, chronic medical conditions, and impairments in mobility,
hearing, and vision.
If you have a documented disability requiring academic accommodations in this course but are not yet registered with
Disability Access Services, please contact them at disabilityaccessservices@viu.ca or
visit them in BLDG 200 (2nd floor).
If you are already registered with DAS, please provide me with your accommodation letter, either in person during my office hours,
or by email.
Guidelines Concerning Academic Misconduct
All students taking this course are subject to the Vancouver Island
University Student Academic Code of Conduct Procedure. The official policies of Vancouver Island University can be viewed at http://www.viu.ca/policies/.
