CS 319 Object-Oriented Software Engineering Fall 2019
Instructors: U. Dogrusoz E. Tuzun
Description & Prerequisites A course on principles of object-oriented software development, CS 201
  • Learn basics of the software engineering (SE) process life cycle.
  • Learn what the object-oriented (OO) approach to software development is, through OO principles and design patterns.
  • Learn UML (Unified Modeling Language) that is part of most CASE (Computer Aided Software Engineering) tools and the benefits of visual modelling / diagramming.
  • Practice the application of principles of object-oriented software development through the course group project.
  • Develop teamwork and communication skills through the course group project.
Resources Introduction
Slides (Spring 2019)
Slides (textbook slides as modified by UD in the order covered)
UML UML Sample Notation - Quick Reference - Reference Card (version 1.4!) -

Design Patterns Slides from past years - Examples - Examples

Testing Documentation with an example

Software Reuse Class reuse example

CASE Tools
Mockup Tools
Outline Getting Started
  • Intro to SE (Chapter 1)
  • Modeling w/ UML (Chapter 2)
  • Project Organization and Communication (Chapter 3 Sections 3.1 - 3.3)
Dealing w/ Complexity
  • Requirements Elicitation (Chapter 4)
  • Analysis (Chapter 5)
  • System Design (Chapters 6 & 7)
  • Object Design (Chapters 8 & 9)
  • Mapping Models to Code (Chapter 10)
  • Testing (Chapter 11)
Grading Criteria:
Component Weight
Attendance/Quiz/Assignment 20
Project 40
Midterm [closed book & notes] (Nov 16, 2019. 15:40-17:40. EB-101, EB-102, EB-103, EB-104, EB-202) 15
Final [closed book & notes] () 25
Those students who fail to get a minimum of 30 (out of 75) points from the weighted average of the total grades (attendace/quiz/assignment, project, midterm exam) before the final exam will get the grade FZ. For instance, A/Q/A: 5/10, P: 20/100, M: 40/100 (0.2 * 50 + 0.4 * 20 + 0.15 * 40 = 24) fails, whereas, A/Q/A: 8/10, P: 30/100, M: 40/100 (0.2 * 80 + 0.4 * 30 + 0.15 * 40 = 34) will take the final exam.
Textbooks Required
  • Object-Oriented Software Engineering, Using UML, Patterns, and Java, 3rd Edition, by Bernd Bruegge and Allen H. Dutoit, Prentice-Hall, 2010, ISBN-10: 0136066836.
  • Applying UML and Patterns - An Introduction to Object-Oriented Analysis and Design and Iterative Development, by Craig Larman, Prentice Hall, 2004, ISBN: 0-13-148906-2. resources
  • Object-Oriented Software Engineering, by Timothy C. Lethbridge and Robert Laganiere, McGraw-Hill, 2001, ISBN: 0-07-709761-0. resources
  • Developing Software with UML, Object-Oriented Analysis and Design in Practice, by Bernd Oestereich, Addison-Wesley, 1999, QA76.9.03503713 1999.
  • Object-Oriented Analysis and Design with Applications, 2nd ed., by G. Booch, Benjamin/Cummings, Redwood City, CA, 1994, QA76.64.B66 1994.
  • Head First Design Patterns, by Bert Bates et al, O'Reilly Media, 2009.
Announcements Remarks on Final Submission and Demos
  • Any individual or group that do not follow these guidelines will be penalized accordingly!
  • Read the Project Description document!
  • By the midnight of specified date, you are to finalize and freeze your project pages (Final Report, User's Guide, API documentation, sources, executables, etc.) and make available in your project repository's master branch. This is the version from which you are to demo your software!
  • Demos are to be done during scheduled time periods. Make an appointment directly with your instructor (on a first-come first-served basis) for a demo by email at least 24 hours before the Final deadline (specify the slot you'd like by slot number).
  • You are to submit your peer grades by the end of following day; please email them to Alperen as described in the Project Description document; do not forget to evaluate yourselves (on a scale from 0 to 10, you must explain your reasons unless a score is a 0 or a 10). Peer grades are to be kept strictly confidential! Failure to send in peer grades will certainly be penalized!
  • You are to make a presentation on the architecture/design of your software (from a developer's perspective), making especially use of component & class diagrams. Then, you are to demo your software. Presentation (Google slides) and demo (feel free to record a Youtube video) are to be finished within 15 minutes. Please come prepared; the most unpleasant question you can ask is "So, what should we show or say?". Well, it's your software; it's your demo! In the remainder of the time, we will ask you some questions about the project status and each student's role in the project!
  • You are to do your demos on your own computer(s). Laptops come in handy here. Please come prepared and have everything already set-up. Unless you get going within a couple of minutes with your preparation time, we might have to ask you to come back at a later time as time is critical with so many demos to see and evaluate.
  • If your demonstrations are to require a network connection, you may use the public wireless at our floor.
  • For any distributed software, you might need a second and perhaps a third computer. In such a case, have these other computers already set-up in your dorm room or lab or in TA's office (by arranging with the TA beforehand).
  • We expect all team members to be present in your demo unless you have a valid excuse.
  • Upload your reports to your GitHub repositories. Make sure you upload them before submission deadline.
Projects Description - Groups - Demo Schedule

Template for reports

Date Assignment
Dec ? Final Exam (17:30 - 20:00, Location: B-Z02, B-Z04)
Dec ? Project Demos (May 10 10:30- 12:30 EE-01, May 15 8:30-10:30 Mithat Çoruh, May 17 10:30- 12:30 EE-01 )
Dec 15 Iteration 2 - Final Report and Project Peer Grades
Dec 1 Iteration 2 - Project Design Report
Nov 24 Iteration 2 - Project Analysis Report
Nov 11-17 Project Iteration 1 Demos
Nov 11-17 Midterm Exam (Nov 16, 2019. 15:40-17:40. EB-101, EB-102, EB-103, EB-104, EB-202)
Nov 10 Iteration 1 - Project Final Report
Nov 3 Iteration 1 - Project Design Report (soft copy to GitHub by 23:59)
Oct 25 Iteration 1 - Project Analysis Report (soft copy to GitHub by 23:59)
Oct 8 GitHub repository created, README.md specifies choice of project with brief description.
Oct 7 HW 1 due (submit as hard copy to your TA by Oct 7 17:00. Bariş Ardic, EA 527)
Oct 1 Project groups announced
Sep 29 Project and team member selection (send an email to your TA by 23:59, Barış Ardıç)

Sample Projects These are sample projects from past years. In no way, do we claim that these projects are perfect! However, they were all among better projects of that particular semester.

Instructor: Ugur Dogrusoz, GitHub Eray Tuzun, GitHub
Office Hours: EA 501 by appointment
Classroom, Hours:
Section 1: EA-Z01, Wed 09:40-10:30, Fri 10:40-12:30
Section 2: EB-202, Tue 10:40-12:30, Fri 9:40-10:30
Section 3: EE-03, Tue 15:40-17:30, Fri 13:40-14:30

TAs, Office Hours:
Barış Ardıç (baris.ardic@bilkent.edu.tr), GitHub , EA 527 by appointment

Alperen Çetin (alperen.cetin@bilkent.edu.tr), GitHub , EA 527 by appointment

Hasan Balci (hasan.balci@bilkent.edu.tr), GitHub , EA 525 by appointment
Grading 20% of the course grade will be based on pop-quizzes given during lecture hours, attendance, active class participation and homework assignment.
  • Check here at least once a week!