CENG 401 Software Engineering

12/20/10

Home

 

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

   
Instructor: Halûk Gümüşkaya  
Office: EA301  
Office Hours:  
Office Phone: 0.212.889 0810-1036  
E-mail: haluk@fatih.edu.tr  
   
Mostly Static Information:  
bulletCourse Description
Grades
bullet Prerequisites
 
bullet Lecture Schedule
 
bullet Textbooks
 
bulletTools and Development Environments
 
bulletGrading
 
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.

Philosophy
Good design and programming is not learned by generalities, but by seeing how significant programs can be made clean, easy to read, easy to maintain and modify, human-engineered, efficient, reliable, and secure, by the application of good design and programming practices. Careful study and imitation of good designs and programs significantly improves development skills. -- Kernighan and Plauger.

Prerequisites

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. Lecture Slides

 Date Material Topics Covered Projects

9/3
16/3

  Overview
  Lec 1
Course Overview and Introduction to Software Engineering
Course Information, What is Software Engineering? Modeling and Model Driven Development, UML, Design Patterns, Software Development Phases, Software Process (Methodology) (chp 1)
Project Tools: Implementation, modeling and other tools
 
23/3   Lec 2 Modeling with UML
What is Modeling? What is UML? UML First Pass, Use Case Diagrams, Class Diagrams, Sequence Diagrams, Statechart Diagrams, Activity Diagrams, Other UML Diagrams, Using the UML in Context (chp 2)
Projects Start:
Teams, Project Ideas
UML
30/3   Lec 3
  MVC Sup
  Samples
Introduction to Design Patterns
Introduction to Patterns and Frameworks, Types of Software Patterns, Introduction to GoF Design Patterns, A Behavioral Pattern: Observer, An Architectural Pattern: Model View Controller (MVC), Two Creational Patterns: Factory Method and Abstract Factory, A Structural Pattern: Facade.
Introduction to Design Patterns
6/4   Lec 4 
 MSF,   TeamWork

 Lec 5.1 
  Lec 5.2  

Project Organization and Communication, Project Management
An Overview of Projects and Development Phases, Project Organization Concepts, Project Communication Concepts, Organizational Activities (chp 4)

Project Management
An Overview of Project Management: Basic Definitions, Management Models, Phases of a Software Project.
Project Management Concepts: Tasks and Activities, Work Products, Work Packages, Work Breakdown Structure, Task Model, Skill Matrix, Organizations and Roles, Visualizing Organization Structures, The Software Project Management Plan (SPMP).
Project Management Activities: Planning, Organizing, Controlling, and Terminating the Project (chp 14)

Project Proposal
 
13/4   Lec 6 

Requirements Elicitation
Software Lifecycle and Adding Process, Requirements and System Fitness, An Overview of Requirements Elicitation, Requirement Elicitation Concepts, Requirement Elicitation Activities, Managing Requirements Elicitation (RAD) (chp 4)

 
20/4   Lec 7 
  Projects

Requirements Analysis
An Overview of Analysis, Analysis Concepts, Analysis Activities: From Use Cases to Objects, Managing Analysis, Case Studies for Requirements Analysis (chp 5)

Requirements Analysis Document (RAD)
27/4  Lec 8.1 

System Design I
Decomposing the System:
An Overview of System Design, System Design Concepts, System Design Activities: From Objects to Subsystems: 1. Design Goals, 2. Subsystem Decomposition (Chp 6)

 
4/5  Lec 8.2 
 

System Design II
Addressing Design Goals:
System Design Activities: Addressing Design Goals: 3. Concurrency, 4. Hardware/Software Mapping, 5. Persistent Data Management, 6. Global Resource Handling and Access Control, 7. Software Control, 8. Boundary Conditions, Managing System Design, (Chp 7)

System Architecture Document (SAD)
Iterative Development Process Starts
11/5  Lec 9.1

Object Design I
Reusing Pattern Solutions:
An Overview of Object Design, Reuse Concepts: Solution Objects, Inheritance and Design Patterns, Reuse Activities: Selecting Design Patterns and Components (Chp 8) 

 
18/5  Lec 9.2

Object Design II
Specifying Interfaces
:
Interface Specification Concepts and Activities, Managing Object Design (Chp 9)

 
25/5  

Project Demonstrations

 

Textbooks

Required

bullet

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

Recommended

bullet

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

bullet

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

bullet

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

bullet

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

Tools and Development Environments

bullet

Eclipse or JBuilder (implementation platform)   Eclipse Tutorials

bullet

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

bullet

MySQL (for database applications)

bullet

MS Project (Project Management Tool)

bullet

CVS (Configuration Management tool)

bullet

MS Visio (Drawing and Modelling tool)

bullet

MS Office

Grading
   10
% : Attendance, Discussion and Contribution
   20 % : Midterm
   40 % : Project
   30 % : Final Exam (a comprehensive exam at the end of the course)

Attendance: Attendance is very important for this kind of lecture and to learn the topics in a timely manner. The %70 attendance rule required by the university will be strictly enforced 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.

 

Home

This site was last updated 01/29/08