CS 241, Software Engineering

Spring 2006 - 2007


Purandar Bhaduri, ext: 2360, email: pbhaduri.

Teaching Assistants

1.  Hari Prasad Perabattula

2.  Suneel Anchipaka

3.  Chokshi Devesh Bharatkumar

4.  Venkatesh Iyer

5.  Anshul Zunke

6.  Ajay Chetry

Groups for Lab Projects


CS 101, CS 102

You are expected to be familiar with the basics of Java.


Object Oriented Software Engineering
Timothy C Lethbridge and Robert Laganiere
Tata Mcgraw Hill Publishing Co Ltd
ISBN       007058754X

Reference Books

You may refer to the following books for additional reading.

Software Engineering:  A Practitioner's Approach

Roger S. Pressman

Sixth Edition, McGraw-Hill, 2005


We will be using Java and UML for the course assignments and projects. Please download and install the following from the CSE Server.

1.                   Rational Doc: Documentation for the Rational Unified Process (RUP), for modelling in UML.

Start from the page Rational_Doc/rationalunifiedprocess/index.htm for an understanding of the Rational Unified Process.

      2.          Using Rose: Documentation on using Rational Rose.

            3.          Eclipse: An open source IDE for Java.

Rational Rose is installed on all the Department Linux servers. Use the command rose to invoke the program.

Java Online Books

                 1. Java Unleashed (O’Reilly)

                 2. Java Language Reference (O’Reilly)

                 3. Java Precisely, Peter Sestoft, old online version


1. UML Applied – Object Oriented Analysis and Design using the UML

2. D. Harel and E. Gery, "Executable Object Modeling with Statecharts", Computer 30:7 (July 1997), IEEE Press, 31-42 (cover feature).

3. Slides on UML “State Machines and Statecharts” (Part 1 and Part 2) by Bruce Powell Douglass.

4. Brunce Powel Douglass, "UML Statecharts", Embedded Systems Programming, January 1999, pp. 22-42.

5. Bruce Powel Douglass, "Class 505/525: State machines and Statecharts", Proceedings of Embedded Systems Conference, San Francisco 2001.


Lab Exercises

Lab 1 (11/01/2007): This exercise is to be done by every one on his or her own and not in groups.

·        Install Java and Eclipse on your machine

·        Write a small Java program to print the first 100 prime numbers. Use Eclipse to edit, compile and run the program.

Lab 2 (25/01/2007): This is a group exercise. Please divide the work in your team and coordinate with team members to arrive at a solution.

Project exercise E 2.30 from page 59 of the textbook. The problem is to write a Java package for implementing a hierarchy of 2D shapes. See page 43 for the details.

Labs 3 and 4 (01/02/2007) and (08/02/2007): Group exercise.

Project exercises P3.1, P3.2 and P3.3 from page 97 of the book. These involve running, understanding and modifying the SimpleChat program from the text.

Lab 5 (15/02/2007): Group exercise.

Modified exercises P4.3 and P4.4 (page 149 of textbook). Instead of a hotel reservation system, perform domain analysis and full requirements definition for an automated system for managing our CSE Department library. For domain analysis, follow the method of Example 4.2 on pages 104-106. For requirements definition you can use this document template, but not all of it may be applicable at this stage. You may find it helpful to talk to the students in charge of the library to find out more about the system requirements. Be brief – the domain analysis document should not exceed two pages, and the requirements definition document five pages in length. Later on in the course, you may want to develop more detailed requirements for the same system.

Lab 6 (22/02/2007): Group exercise.

Develop a complete set of use cases for the library system, based on the requirements you specified in the previous lab exercise. Use the format described in Section 7.3 (pages 235 – 236).

Lab 7 (15/03/2007): Group exercise.

Create a class diagram for the library system, based on the requirements you specified in the previous lab exercises. Your diagram should include all necessary classes, associations, generalizations and attributes. Also identify the main operations, but this list could be incomplete at this stage. Follow the guidelines on pages 181 – 194 of the textbook. Use Rational Rose for drawing the class diagram.

Lab 8 (22/03/2007): Group exercise.

Create a list of responsibilities and allocate them to the classes you developed for the library system. Update your class diagram if necessary. Then identify the operations to realize the responsibilities of each class. Follow the guidelines on pages 189 – 194 of the textbook. Update you class diagram in rose.

Lab 9 (29/03/2007): Group exercise.

Design and develop in Java a user interface for the library system. Follow the direction in Sections 7.4 – 7.7 (pages 243 – 263) of the textbook.

Lab 9 (05/04/2007): Group exercise.

Exercise P8.3 (page 291 of textbook) for the library system.

Lab 10 (12/04/2007): Group exercise.

Draw UML diagrams in Rose to describe an architecture for the library system. The architecture should specify the subsystems, their interactions and interfaces (see pages 325 – 329 of the textbook for guidelines). Based on the architecture, start implementing the subsystems in Java.

Lab 11 (19/04/2007): Group exercise.

Complete your Java implementation of the library system, based on the design you carried out in previous exercises.

 back to homepage