CENG 302 Software Engineering



Lecture Announcements



Project demonstrations on Monday, 23 May (The last demo day for all projects):
COSS at 9:00, Incrediblesix at 10:30,  6-member no name team at 12:00, and others after 13:00.


You should be ready at the lab before your presentation time. That is all team members are present at the lab, the programs are ready for presentation, the print outs of the required project documents (SPMP, RAD, SAD, TD, UM) are on the table, and other UML design documents are loadedon the demo computer.


Coming late to your final project demo or not being ready at the presentation time will be considered as a negative point for your demo. You will not get an extra time for your presentation.


The members of some teams that have unbalanced project works or have team members who did not do his/her responsibilities will get different project grades.



Please look at the Templates and Project Work section of this page



The project teams and their web sites are posted here.


The midterm exam date: 28 April 2005, Thursday, 2-hour exam.



Please look at the Course Materials table given below. Your second homework assignment was posted there.



Recitation hour: 21 March, Monday, 11:00 - 13:00.


I`ll give information about the course project on this Monday. Project teams will be formed and projects will start next week. Your project team will submit your project proposal as a first project artifact.


On Tuesday, 22 March in class, you will be given the second quiz. Bring your books, it is open-book. Topics for the quiz: UML and Design Patterns.



The recitation hours and program demos will be held on Mondays between 11:00 - 13:00 in the Lab.



An addition to the first homework assignment (Quiz question):

You will model the static view and dynamic view of one of your banking transactions with an ATM machine using UML class and sequence diagrams.

First you should identify your objects, like customer (you), ATM machine, bank, its central bank, another bank (you may need it in money transfer transaction), their attributes, operations and associations. You should show the class diagrams’ relationships, associations, aggregations and generalizations, and multiplicity numbers in your diagrams.

Second you will take a transaction, like getBalance, withdraw, deposit, transfer, and draw its sequence diagram.



Here is your first homework assignment.


Your TA will do some more announcements about this assignment, please look at his page at least once a day until the due date 16-March-2005.


I may also update this document. Download it and look at its version number. The first version number is 0.1.



Welcome to CENG 302 Software Engineering! I hope in this course you will master UML, and Java, learn some design patterns, methods, methodologies, and how to work with a team for conquering real complex and changing software systems.


Try to visit my Software Engineering page regularly, I will try to update it frequently in this semester.


Start to visit your Nasıf Ekiz's course home page regularly. He will make his announcements on his page. The homework solutions, some program samples and documents related to his activities will be posted here.

Course Materials    (Lecture Slides, Readings, Programs, Technical Documents)

Lecture Slides    2003 Semester Slides

 Date Material Topics Covered Projects HW/Q
  22/2   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), Software Development using UML, Design Patterns and Processes. (chp 1)
Project Tools: Implementation, modeling and other tools  
  7/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)
Q1, Q2
  17/3   Lec 3
  MVC Sup
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 HW2
  23/3   Lec 4 
  MSF, TeamWork
  Lessons from Birds
Project Organization and Communication
An Overview of Projects and Development Phases, Project Organization Concepts, Project Communication Concepts, Organizational Activities (chp 4)

Projects Start:
Teams, Project Ideas


 Lec 5.1 
  Lec 5.2  

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)

Software Project Management Plan (SPMP) including the Project Proposal
7 April 2005 Thursday


  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)



  Lec 7 

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)
21 April 2005 Thursday


 Lec 8.1
 EMS1 Case Study
 EMS1 Slides 

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)



 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
5 May 2005 Thursday


 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) 



 Lec 9.2

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



 Lec 10

Mapping Models to Code
Mapping Concepts, Mapping Activities, Managing Implementation (Chp 10)



 Lec 11

Testing Concepts, Testing Activities, Managing Testing (Chp 11)



 Last Lesson

New Story of the Hare and Tortoise




Templates and Project Work



Course project grading policy.


Look at the web site of our text book OOSE for document templates and sample projects.


Also look at Software Design and Documentation page. 


Document Templates and Project Work Samples Deadline Percent on Project Grade
SPMP    7 April 15
RAD (Requirement Analysis Document) RAD1  RAD2  21 April 15
SAD (System Architecture Document)
(System and Object Design Documents)
SAD1  SAD2  5 May 15
TD (Testing Document)      Testing-Debugging    9 May 10
UM (User Manual)    16 May 10
Process & Communication     10
Coding and Product    19 May 25
Other Samples (not ideal projects, but some ideas ...)  Prj1 


 Software Processes (Methodologies)
 Date Material Comments
  CMM Key Practices of the CMM v1.1 M. C. Paulk, et.al, Carnegie Mellon University-Software Engineering Institute, Pittsburgh, Pennsylvania 1993.
The CMM for Software M. C. Paulk, et.al, CMU-SEI, Pittsburgh, Pennsylvania
Effective CMM-Based Process Improvement M. C. Paulk, CMU-SEI, Pittsburgh, Pennsylvania 1993.
Extreme Programming from a CMM Perspective Mark C. Paulk, IEEE Software, November/December 2001.



Rational Unified Process  Rational Software White Paper, TP026B, Rev 11/01
What Is the Rational Unified Process? Philippe Kruchten, Rational Fellow, (html).
RUP vs. XP Robert C. Martin, objectmentor.com, 2001, a description of XP as a minimal instance of RUP
RUP Poster Rational Unified Process - Process Made Practical.
The Ten Essentials off RUP, The Essence of an Effective Development Process Leslee Probasco, Rational Software White paper.
Tailoring the Rational Unified Process, A Lightweight Process Development Case ICONIX Software Engineering


Extreme Programming J. Highsmith, (the best summary at the moment written by an outsider, according to Martin Fowler).
Extreme Programming Installed A book on XP (288 pages).
Agile (Light) Methodologies J. Highsmith
FDD Feature-Driven Development (FDD) Steve Palmer and Peter Coad
Software Engineering Jonathan Kern
  MSF Microsoft Solution Framework Datasheets and white papers describing MSF’s updated models and disciplines are now available in the MSF Resource Library.



 Project Management
 Date Material Comments
  Software Project Management Plan Your team's project (program) manager (PM) will prepare a similar document. Other members may also contribute to this document, but your PM will be responsible for this management document.
  A Guide to the Project Management Body of Knowledge PMI Standards Committee.
  Recommended Approach to Software Development Revision 3, SEL-81-305 NASA Software Engineering Laboratory Series, June 1992.



 Date Material Comments
  Software Testing and Quality Assurance Portal  
  What Is Software Testing? And Why is it so Hard? J. A. Whittaker, IEEE Software, January/ February 2000.



 Date Material Comments
  Teaching Teamwork Thomas B. Hilburn, Watts S. Humphrey.
  UML Reference Card Allen I. Holub.



Some OO Links


Object-Oriented Software Development (Cetus links)


Martin Fowler


Douglas C. Schmidt