CS 241,
Software Engineering
Spring 2006 - 2007Instructor 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 Prerequisites CS 101, CS 102 You are expected to be
familiar with the basics of Java. Textbook Object Oriented
Software Engineering 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 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. D.
Harel and 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. |