TORONTO METROPOLITAN UNIVERSITY

Course Outline (W2024)

COE528: Object Oriented Eng Analysis and Design

Instructor(s)Boujemaa Guermazi [Coordinator]
Office: Zoom drop-in link: https://torontomu.zoom.us/j/99222751017
Phone: TBA
Email: bguermazi@torontomu.ca
Office Hours: Mondays 11 AM - 12 PM
Calendar DescriptionThis course deals with the analysis and design of complex engineering systems. In particular, students will be asked to create requirement specifications prior to the design and implementation of such engineering systems. Case studies from software development projects will be used to illustrate the design process. Development of expertise in analyzing, designing, implementing, and testing industrial-quality, reusable software systems. Project work include practice with an object-oriented programming language. (Formerly COE 618)
PrerequisitesCOE 318
Antirequisites

None

Corerequisites

None

Compulsory Text(s):
  1. Program Development in Java: Abstraction, Specification, and Object-Oriented Design, Barbara Liskov and John Guttag, 2000, Addison-Wesley, ISBN: 0201657686.
Reference Text(s):
  1. Object-Oriented Software Engineering Using UML, Patterns, and Java, Bernd Bruegge and Allen H. Dutoit, 2009, Prentice Hall, Third edition, ISBN 0136061257.
  2. Design Patterns Explained: A New Perspective on Object-Oriented Design, Alan Shalloway and James R. Trott, 2004, Addison-Wesley Professional, Second Edition, ISBN 0321247140.
  3. Design Patterns: Elements of Reusable Object-Oriented Software, Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, 1995, Addison-Wesley Professional, First Edition, ISBN 0201633612.
  4. Head First Design Patterns, Eric Freeman, Elisabeth Freeman, Kathy Sierra, Bert Bates, 2004, O'Reilly, First Edition, ISBN 0596007124.
  5. A Concise Introduction to Software Engineering, Pankaj Jalote, (Undergraduate topics in Computer Science) ISBN-10:1848003013 | ISBN-13:978-1848003019 | Edition: 2008.
Learning Objectives (Indicators)  

At the end of this course, the successful student will be able to:

  1. Demonstrates an in-depth understanding of key concepts related to object-oriented engineering fundamentals. (1c)
  2. Apply the knowledge of object-oriented engineering principles to a software problem. (4a)
  3. Integrate the existing design patterns into the software design where applicable. (4b)
  4. Select the most appropriate design pattern to address a software design problem. (4c)
  5. Manages time effectively to achieve the goals. (6b)
  6. Produce course project report using appropriate format. (7a)
  7. Demonstrate the project through oral communication. (7b)
  8. Understands project scope and desired deliverables. (11b)

NOTE:Numbers in parentheses refer to the graduate attributes required by the Canadian Engineering Accreditation Board (CEAB).

Course Organization

3.0 hours of lecture per week for 13 weeks
2.0 hours of lab per week for 12 weeks
0.0 hours of tutorial per week for 12 weeks

Teaching Assistants1- Aman Kumar (aman1.kumar@torontomu.ca)
 2- Jeanne Alcantara (jalcanta@torontomu.ca)
 3- Luella Marcos (lgmarcos@torontomu.ca)
 4- Luzalen Marcos(lmarcos@torontomu.ca)
 5- Messiah Abolfazli Esfahani (mabolfazli@torontomu.ca)
Course Evaluation
Theory
Midterm Exam 20 %
Final Exam 45 %
Laboratory
Labs 15 %
Project 20 %
TOTAL:100 %

Note: In order for a student to pass a course, a minimum overall course mark of 50% must be obtained. In addition, for courses that have both "Theory and Laboratory" components, the student must pass the Laboratory and Theory portions separately by achieving a minimum of 50% in the combined Laboratory components and 50% in the combined Theory components. Please refer to the "Course Evaluation" section above for details on the Theory and Laboratory components (if applicable).


ExaminationsMidterm exam (covers weeks 1-6).
 Final exam (covers weeks 1-13).
Other Evaluation InformationNone
Teaching Methods1. In-person lectures with slides and hands-on programming during class.
 2. Notes/slides from the class lectures will be posted on D2L.
Other InformationNone

Course Content

Week

Hours

Chapters /
Section

Topic, description

1

3

Understanding Objects in Java.
 (Chapter 2 of "Program Development in Java: Abstraction Specification and Object-Oriented Design". Sections 2.1-2.8. Lecture notes. Slides).


2

3

Abstraction and Decomposition.
 (Chapter 1 of "Program Development in Java: Abstraction Specification and Object-Oriented Design". Sections 1.1-1.3. Lecture notes. Slides).


3

3

Procedural Abstraction.
 (Chapter 3 of "Program Development in Java: Abstraction Specification and Object-Oriented Design". Sections 3.1-3.6. Lecture notes. Slides).


4

3

Data Abstraction.
 (Chapter 5 of "Program Development in Java: Abstraction Specification and Object-Oriented Design". Sections 5.1-5.10. Lecture notes. Slides).


5

3

Modeling with UML.
 (Chapter 2 of "Object-Oriented Software Engineering Using UML Patterns and Java". Lecture notes. Slides).


6-9

12

Design Patterns.
 (Information taken from "Design Patterns Explained: A New Perspective on Object-Oriented Design" and "Design Patterns: Elements of Reusable Object-Oriented Software" and "Head First Design Patterns").
 (Lecture notes. Slides).
 
 Decoupling and Specifications
 (Lecture notes. Slides).


10

3

Requirements Elicitation and Analysis.
 (Chapters 4 and 5 of "Object-Oriented Software Engineering Using UML Patterns and Java").
 (Lecture notes. Slides).


11

3

System Design and Object Design.  
 (Chapters 6 and 7 and 8 and 9 of "Object-Oriented Software Engineering Using UML Patterns and Java").
 (Lecture notes. Slides).


12

3

Testing and Debugging.
 (Chapter 10 of "Program Development in Java: Abstraction Specification and Object-Oriented Design". Sections 10.1 and 10.2 and 10.4 and 10.7. Lecture notes. Slides).


13

3

Course Review.


Laboratory(L)/Tutorials(T)/Activity(A) Schedule

Week

L/T/A

Description

2-3

Lab1

Review Java programming and JUnit (for testing) using NetBeans IDE.
 ( 4 marks )

4

Lab2

Procedural Abstraction - Implement and specify procedures with requires/modifies/effects clauses.
 ( 3 marks )

5

Lab3

Data Abstraction  Provide and implement the abstract function and rep invariant for each given class.
 ( 4 marks )

6-7

Lab4

Given a software design problem, apply and implement the most appropriate design pattern to solve the problem.
 ( 4 marks )

8-11

Project

Analyze, design and implement a software system: Analyze the system requirements. Design with UML diagrams. Use design pattern(s) in the system design. Implement the system.

University Policies & Important Information

Students are reminded that they are required to adhere to all relevant university policies found in their online course shell in D2L and/or on the Senate website

Refer to the Departmental FAQ page for furhter information on common questions.

Important Resources Available at Toronto Metropolitan University

Accessibility

Academic Accommodation Support

Academic Accommodation Support (AAS) is the university's disability services office. AAS works directly with incoming and returning students looking for help with their academic accommodations. AAS works with any student who requires academic accommodation regardless of program or course load.

Academic Accommodations (for students with disabilities) and Academic Consideration (for students faced with extenuating circumstances that can include short-term health issues) are governed by two different university policies. Learn more about Academic Accommodations versus Academic Consideration and how to access each.

Wellbeing Support

At Toronto Metropolitan University, we recognize that things can come up throughout the term that may interfere with a student’s ability to succeed in their coursework. These circumstances are outside of one’s control and can have a serious impact on physical and mental well-being. Seeking help can be a challenge, especially in those times of crisis.

If you are experiencing a mental health crisis, please call 911 and go to the nearest hospital emergency room. You can also access these outside resources at anytime:

If non-crisis support is needed, you can access these campus resources:

We encourage all Toronto Metropolitan University community members to access available resources to ensure support is reachable. You can find more resources available through the Toronto Metropolitan University Mental Health and Wellbeing website.