CS 241,
Software Engineering
Spring 2007 - 2008Instructor Purandar Bhaduri, ext: 2360, email: pbhaduri. Teaching Assistants Devesh Bharatkumar Chokshi Chandra Sekhara Rao Routh Ajay Chetry Surendranath Chowdary Sudipta Samanta Alpesh Kumar Patel Gaurav Makhon Baruah Prerequisites CS 101, CS 102 You are expected to be
familiar with the basics of Java. Textbook Object Oriented
Software Engineering (The home page has useful material, including lecture
slides). Software 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 UML
1. UML Applied – Object Oriented Analysis and
Design using the UML 2. UML 2.0 Tutorial by Ileana Ober. 3. Unified Modeling Language 2.0 by Harald Störrle and Alexander Knapp.
4. Introductory
chapter from the book Real-Time UML
Workshop for Embedded Systems by Bruce Powel Douglass, Elsevier. 1.
D. Harel and 2.
Slides on UML “State Machines and
Statecharts” (Part 1 and Part 2) by Bruce Powell
Douglass. 3. Brunce Powel Douglass, "UML Statecharts", Embedded Systems Programming, January 1999, pp. 22-42. 4.
Bruce Powel Douglass, "Class 505/525:
State machines and Statecharts", Proceedings of Embedded
Systems Conference, San Francisco 2001. Lab
Exercises Lab 1 (10/01/2008): 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 Java program to implement a simple
phone book containing entries with names and telephone numbers. The program
should allow users to add, delete and search for entries in the book. A
person can have more than one phone number, and each number has a
description, such as residence, office or cell phone number. Allow partial name search for more credit. ·
Use Eclipse to edit, compile and run the
program. Lab 2 (24/01/2008): This exercise is to be
done in groups. Please spend time on planning who will do what, and work
according to the plan. ·
Project exercise E 2.30 from page 59 of the
textbook. See page 43 for the background details. Lab 3 (31/01/2008): Complete the previous
week’s exercise. Lab 4 (07/02/2008): Group exercise. Project exercises 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 (14/02/2008): Complete the previous
week’s exercise. Lab 6 (21/02/2008): 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 the student registration system at IIT Guwahati. 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. While doing requirements analysis you
may want to consider not just the current system, but also its shortcomings
and possible enhancements. 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 will be required to develop more detailed requirements for the
same system. Lab 7 (13/03/2008): Group exercise. Develop a complete set
of use cases for the student registration system, based on the requirements
you specified in the previous lab exercise. Use the format described in
Section 7.3 (pages 235 – 236). Use Rational Rose for modelling use
cases. Lab 8 (20/03/2007): Group exercise. Create a class diagram
for the student registration system, based on the requirements you specified in
the previous lab exercises. Your diagram should include all necessary
classes, associations, generalizations and attributes. Then create a list of
responsibilities and allocate them to the classes you developed for the
system. Update your class diagram if necessary. Then identify the operations
to realize the responsibilities of each class. Follow the guidelines on pages
181 – 194 of the textbook.
Use Rational Rose for drawing the class diagram. Lab 9 (27/03/2008): Complete the previous
week’s exercise. Lab 10 (03/04/2008): Group exercise. Design and develop in
Java a user interface for the student registration system. Follow the
direction in Sections 7.4 – 7.7 (pages 243 – 263) of the
textbook. Also, draw sequence diagrams using Rose for the main collaborations
(use cases and responsibilities) you identified in lab exercise 8 and 9. Lab 11 (10/04/2008): Group exercise. Exercise P8.3 (page 291
of textbook) for the student registration system. This is a continuation of
last week’s lab exercise. Lab 12 (17/04/2008): Group exercise. Draw UML diagrams in
Rose to describe a client-server architecture for
the student registration 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. Use the OCSF framework as much as
possible for the final implementation of the client server system. Lab 13 (25/04/2008): Complete the
implementation of the student registration system as a client-server system. |