|
|
|
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: |
|
|
|
Grades |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
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
Recommended
 |
Practical Software Engineering:
A Case Study Approach,
L. Maciaszek, B. L. Liong, Addison Wesley, 864 pages, 2004. |
 |
UML for Java Programmers,
Robert C. Martin, Prentice Hall, 288 pages, 2003. |
 |
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
|
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.
|