CENG 302 Software Engineering



Fatih University, Computer Engineering Department
Spring Semester 2005
Tuesday 11:00-12:00  E302, Thursday 9:00-11:00 E303

Instructor: Halûk Gümüşkaya Teaching Assistant: Nasıf Ekiz
Office: EA301 Office: EA 202
Office Hours: Office Hours: ...
Office Phone: 0.212.889 0810-1036 Office Phone: 1027
E-mail: haluk@fatih.edu.tr E-mail: nekiz@fatih.edu.tr
Mostly Static Information: Mostly Dynamic Information:
bulletCourse Description
bullet Lecture Announcements
bullet Prerequisites

Course Materials

bullet Lecture Schedule


bullet Textbooks
bullet Project Page
bulletTools and Development Environments
bullet Grades
bullet Academic Integrity

Course Description

This course introduces the essential aspects of software-engineering from an object-oriented point of view. The topics covered include modeling with UML, introduction to design patterns, project management and software development processes, requirements elicitation and analysis, system design, object design, testing, rational and configuration management, software life cycle, and methodologies. The Unified Modeling Language (UML) and Design Patterns are used for the analysis and design work. The realization of software engineering concepts is realized in Java. Particular emphasis is on a team project in which a group of students implement a system from its specification. Students are expected to complete and report assignments and a nontrivial design project developed in Java using a UML design tool.


CENG 217 Object Oriented Programming, CENG 102 Computer Programming II (Java).

Lecture Schedule

This is the tentative schedule. Please check it once before the lecture.


Topics Covered

Projects Calendar and Artifacts


Course information, Introduction to Software Engineering (Chp 1)

Background for Projects: Tools


Modeling with UML (Chp 2)



Modeling with UML and Introduction to Design Patterns (Chp 2)

UML and Introduction to Design Patterns


Project Organization and Communication (Chp 3)

Project Management and


Project Management and Introduction to Processes (Chp 14)

Software Development Processes


Requirements Elicitation (Chp 4)

Projects Start, Project Proposal


Requirements Analysis (Chp 5)

Requirements Analysis Document (RAD)
Software Project Management Plan (SPMP)


System Design I (Chp 6)



System Design II (Chp 7)      Midterm Exam

System Architecture Document (SAD)
Iterative Development Process Starts


Object Design I (Chp 8) 



Object Design II and Mapping Models to Code (Chp 9 and Chp 10)

Return updated SAD Code and Design Review 1


Testing (Chp 11)

Test Document (TD) Code and Design Review 2


Rationale and Configuration Management (Chp 12 and Chp 13)

Code and Design Review 3


Software Life Cycle (Chp 15)

User Manual (UM) Code and Design Review 4


Methodologies: Putting It All Together (Chp 16)

Project Demonstrations and Evaluation




Object-Oriented Software Engineering: Conquering Complex and Changing Systems, Using UML, Patterns, and Java, Bernd Bruegge and Allen H. Dutoit, Prentice-Hall, 2004.



UML for Java Programmers, Robert C. Martin, Prentice Hall, 288 pages, 2003.


Practical Software Engineering: A Case Study Approach, L. Maciaszek, B. L. Liong, Addison Wesley, 864 pages, 2004.


Software Engineering (7th Edition), Ian Sommervile, Addison Wesley,  784 pages, 2004.


Software Engineering: An Object-Oriented Perspective, Braude, Ertic J., John Wiley, 2002. (resources)

Tools and Development Environments


Eclipse or JBuilder (implementation platform)   Eclipse Tutorials


Omondo or Together (as visualization, modeling, construction and documentation tool)


MySQL (for database applications)


MS Project (Project Management Tool)


CVS (Configuration Management tool)


MS Visio (Drawing and Modelling tool)


MS Office

% : Homework Assignments and Quizzes
   20 % : Midterm
   40 % : Project
   25 % : Final Exam (a comprehensive exam at the end of the course)

Attendance: Attendance is important in order to learn the topics in a timely manner. Attendance will be forced by taking attendance.

Project: The project is very important for a course of this kind.

Midterm Exam: There will be one midterm exam that will be given around the mid of the semester.

Final Exam: There will be one final exam that will be given during final exams period of the semester.

Makeup Exam: Depending on the need (for officially reported or extraordinary cases) I may make a makeup exam. But I should warn you that makeup exam will be much more difficult than the other exams in order to provide fairness for students who work on time and take the exam on time, and discourage students from unnecessarily omitting the exams.

Academic Integrity

We will be very careful in grading the projects, homeworks, exams so that everybody gets the grade that he/she deserves. Copying will not be tolerated and will be checked and punished rigorously.

The Fatih University has a very strict policy on academic dishonesty. All work on homeworks and examinations must be strictly individual.  Violations of this policy will result in an F grade for the class and may result in suspension/expulsion from the university.

You must do all of the homework assignments for grading individually (and the exams, of course). In preparing the solutions for assignments, you may consult with other students, the teaching assistants and myself regarding the general method of solutions. However, the final submission handed in for grading must be your own work. Copying the solutions of others is expressly forbidden. Allowing others to copy your solutions is expressly forbidden. Penalties for violation of this will range from a grade of zero on the assignment, a reduced grade for the semester, to a grade of F for the course, and a letter to the Office of the Dean.