CS 319 Object-Oriented Software Engineering
Fall 2015

Announcements:

May 4

Demo schedule for the projects is given below.

You need to be prepared for the following items:

  • Scope of your project
  • Requirements and functional model
  • Object model and Dynamic model
  • System Design (Top Level Architecture)
  • Design Patterns applied
  • Implementation - Demo
  • Lessons Learned

Please come with your demo environment (Laptop, executable application, source code, development environment, etc.). All group members must be present during demonstration.

Section 1: (EA-504)
Date Time Group
08-Dec09:05Group 9
08-Dec09:30Group 11
08-Dec09:55Group 1
10-Dec10:40Group 14
10-Dec11:05Group 5
10-Dec11:30Group 15
10-Dec11:55Group 7
15-Dec08:40Group 4
15-Dec09:05Group 10
15-Dec09:30Group 3
15-Dec09:55Group 6
17-Dec10:40Group 12
17-Dec11:05Group 13
17-Dec11:30Group 2
17-Dec11:55Group 8
Section 2: (EA-504)
Date Time Group
11-Dec09:05Group 10
11-Dec09:30Group 4
11-Dec09:55Group 9
15-Dec10:40Group 5
15-Dec11:05Group 1
15-Dec11:30Group 8
15-Dec11:55Group 11
18-Dec08:40Group 3
18-Dec09:05Group 2
18-Dec09:30Group 7
18-Dec09:55Group 6
Section 3: (EA-509)
Date Time Group
15-Dec16:05Group 6
15-Dec16:30Group 1
15-Dec16:55Group 3
18-Dec13:40Group 7
18-Dec14:05Group 5
18-Dec14:30Group 2
18-Dec14:55Group 4
Nov 24

The deadline of project final report is 7th of December.

You are expected to upload your reports to your Github projects, and send the link to your TA, keeping your instructor in the cc.

Your mail should reach before 7th of December, 23:59.

Late submission policy: Late submissions will not be accepted.

Nov 23 Fourth quiz will be held on Nov 26 at 18:00. Quiz will be common to all sections.

Exam locations (distributed by Lastname):
EE-03 : (Aghabr - Çaylak)
EE-04 : (Çelik - İlikli)
EE-05 : (Kadıoğlu - Savlu)
EE-317: (Sayarlıoğlu - Yurttaş)
Nov 23

In the final report of your project, you will be appending the object design section to your second report. Object Design section will be Section 5. Also, you are required to update the Conclusion section, which will be Section 6 in this report.

The outline of Section 5 and 6 is as follows:

5. Object Design
    5.1 Pattern applications
    5.2 Class Interfaces
    5.3 Specifying Contracts
6. Conclusions and Lessons Learned

In Section 5.1, you are expected to apply 3 suitable design patterns to your design. You need to check the suitability, apply the pattern to your design and provide sufficient explanation.

In Section 5.2, you are expected to describe the classes in your design and their public interfaces (visibility and type signatures).

In Section 5.3, you are expected to define contracts. You are required to provide contracts for at least 5 classes, and provide at least 30 contracts in total. Each contract should be described with sufficient explanation.

Section 6 should present overall summary, conclusions, along with lessons learned, and other parts related with conclusion.

As with other reports, the layout of the report has some importance: Section headers, Caption of Figures, Captions of Tables, Proper References and citing, proper page numbering, consistent formatting, and other relevant formatting shall be present in a good looking report.

Nov 10

The deadline of project design report is November 20.

You are expected to send soft copies of your report till 20th of November, 23:59. You need to upload your reports to your GitHub projects and send the link of your report to your TA, and instructor.

Late submission policy: Late submissions will not be accepted.

Nov 10 In the design report of your project, you will be appending the design section to your first report. Design section will be Section 4. The previous sections should reflect the corrections of comments of your first report.

The outline of Section 4 is as follows:

4. Design
4.1 Design Goals
4.2 Sub-System Decomposition
4.3 Architectural Patterns
4.4 Hardware/Software Mapping
4.5 Addressing Key Concerns
    4.5.1 Persistent Data Management
    4.5.2 Access Control and Security
    4.5.3 Global Software Control
    4.5.4 Boundary Conditions
    4.5.5 Another important concern for your case (Rename title) - Optional
                    
Nov 10 Third quiz will be held on Nov 11 at 20:00. Quiz will be common to all sections.

Exam locations (distributed by Lastname):
EB-101: (Aghabr - Canbaz)
EB-102: (Cihan - Erol)
EB-103: (Eryonucu - Karabuğa)
EB-104: (Katırcı - Peker)
EB-201: (Rumelli - Yurttaş)
Nov 02 Midterm be held on November 4th, 2015 at 18:00. Duration will be 2 hours.

Exam locations (distributed by Lastname):
EB-101: (Aghabr - Canbaz)
EB-102: (Cihan - Erol)
EB-103: (Eryonucu - Karabuğa)
EB-104: (Katırcı - Peker)
EB-201: (Rumelli - Yurttaş)
Oct 20

The outline of Analysis Report is as follows:

1. Introduction
2. Requirement Analysis
    2.1. Overview
    2.2. Functional Requirements
    2.3. Non-Functional Requirements
    2.4. Constraints
    2.5. Scenarios
    2.6. Use Case Models
    2.7. User Interface
3. Analysis
    3.1. Object Model
        3.1.1. Domain Lexicon
        3.1.2. Class Diagram(s)
    3.2. Dynamic Models
        3.2.1. State Chart
        3.2.2. Sequence Diagram
4. Conclusion
                    

Layout of the report (ie. page numbering, figure naming-numbering, spell checking, page structure) is also important for grading.

Oct 19

The deadline of project analysis report is 28th of October.

You are expected to send soft copies of your report till 28th of October, 23:59. You need to upload your reports to your GitHub projects and send the link of your report to your TA, and instructor.

You can check the assigned TA of your project here

Late submission policy: Late submissions will not be accepted.

Oct 09 Second quiz will be held on Oct 21 at 18:00. Quiz will be common to all sections.

Exam locations (distributed by Lastname):
EB-101: (Aghabr - Canbaz)
EB-102: (Cihan - Erol)
EB-103: (Eryonucu - Karabuğa)
EB-104: (Katırcı - Peker)
EB-201: (Rumelli - Yurttaş)
Sep 17

Due date for your project descriptions is Sep 22 (Tuesday).

You are required to check your team, contact with your teammates and choose your project title till 22 September.

You need to submit your project titles with short descriptions to your TA's and instructor till this deadline.

You can find your TA by clicking here.

You are also strongly advised to read Project Description.

Sep 17 First quiz will be held on Oct 1 at 19:00. Quiz will be common to all sections.

Exam locations (distributed by Lastname):
EB-101: (Aghabr - Canbaz)
EB-102: (Cihan - Erol)
EB-103: (Eryonucu - Karabuğa)
EB-104: (Katırcı - Peker)
EB-201: (Rumelli - Yurttaş)
Sep 16 Project Groups are determined. Please check project groups
Sep 08 Welcome to CS 319! Please check this web page for announcements.

Course Description:

A course on principles of object-oriented software development

Course Objectives:

Course Prerequisites:

Instructors:
Section I - II Section III

Dr. Hüseyin Özgür TAN
hozgur at cs dot bilkent dot edu dot tr

Asst. Prof. Can ALKAN
calkan at cs dot bilkent dot edu dot tr

TAs:

Fatma Balcı
fatma.balci at bilkent dot edu dot tr

İstemi Bahçeci
istemi.bahceci at gmail dot com

Marzieh Eslami Rasekh
marzieh.eslami at cs dot bilkent dot edu dot tr

Lectures:
Section I Section II Section III
Tue 09:40-10:30
Thu 10:40-12:30
B-204
Spare: Tue 08:40-09:30
Tue 10:40-12:30
Fri 09:40-10:30
B-204
Spare: Fri 08:40-09:30
Tue 15:40-16:30
Fri 13:40-15:30
EB-202
Spare: Tue 16:40-17:30
Text Books:

(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.

(Recommended) 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.

(Recommended) Object-Oriented Software Engineering, by Timothy C. Lethbridge and Robert Laganiere, McGraw-Hill, 2001, ISBN: 0-07-709761-0.

(Recommended) Developing Software with UML, Object-Oriented Analysis and Design in Practice, by Bernd Oestereich, Addison-Wesley, 1999, QA76.9.03503713 1999.

(Recommended) Object-Oriented Analysis and Design with Applications, 2nd ed., by G. Booch, Benjamin/Cummings, Redwood City, CA, 1994, QA76.64.B66 1994.

(Recommended) Principles of Object-Oriented Software Development, by Anton Eliens, Addison-Wesley, 1995, ISBN: 0-201-62444-3.

Grading Policy:
Quiz : 20 %
Project : 40 %
Midterm : 15 %
Final : 25 %

Those students who fail to get a minimum of 30 (out of 75) points from the weighted average of the total grades (quiz, 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.

Projects:

Related Links:

Schedule: (tentative)

Week Date Subject Reading Assignments/Exams
1 Sep 7 Introduction [Slides]
Chapter 1
2 Sep 14 Modeling with UML [Slides] Chapter 2 Project Choice
3 Sep 21 Requirements Elicitation [Slides] Chapter 4
4 Sep 28 Analysis - Object Model [Slides] Chapter 5 Quiz 1 (Oct 1)
5 Oct 5 Analysis - Dynamic Model [Slides] Chapter 5
6 Oct 12
7 Oct 19 System Design: Decomposing The System [Slides] Quiz 2 (Oct 21)
8 Oct 26 Chapter 6 Project Analysis Report (Oct 28)
9 Nov 2 System Design: Addressing Design Goals [Slides] Chapter 7 Midterm (Nov 04)
10 Nov 9 Object Design: Reusing Pattern Solutions [Slides]
Object Design: Design Patterns I [Slides]
Chapter 8 Quiz 3 (Nov 11)
11 Nov 16 Object Design: Design Patterns II [Slides]
Object Design: Specifying Interfaces [Slides]
Chapter 9 Project Design Report (Nov 20)
12 Nov 23 Object Design: Object Constraint Language [Slides] Chapter 9 Quiz 4 (Nov 26)
13 Nov 30 Mapping Models to Code [Slides]
Testing [Slides]
Integration & System Testing [Slides]
Chapter 10 - 11
14 Dec 7 Project Presentations Quiz 5 (Dec 11)
Project Final Report
15 Dec 14 Project Presentations
16 Dec 21 Final Exam (Jan 03)