CSE 668 Applied Component-based Software Engineeing

Software Development Assignments

(25%) Lab1 Waterworks - Valves and Tanks

Summary: Write a small class library (.dll) for valves with different behaviors and tanks or resevoirs with difference behaviors. Develop unit tests for all of your classes.

Objectives: Basic C# Visual Studio usage, developing type libraries, doing things the wrong way so we can correct them later, unit testing, code documentation.

Due: The last minute in January 2009. 1-31-2009 at 11:59pm (note that the CSE labs close early on Saturdays).

Specifications:

 

(35%) Lab2 Waterworks - Programming to Interfaces and Design Patterns

Summary: Refactor your Lab1 into two type libraries, one containing only interfaces for your valve base and your tank base. A second class library contains all of your concrete classes. Add a third project that will be a crude simulator. We will use a Windows Console Application for this.

Objectives: Programming to events. Implementing the Composite, Builder, Singleton and Factory method design patterns. Reading in XML files. Working with .NET events.

Part I Due: February 17, 2009 at 11:59pm (note that the CSE labs close before midnight).

Specifications Part I (40 points):

Part II Due: February 25, 2009 at 11:59pm (note that the CSE labs close before midnight).

Specifications Part II (60 points):

 

(40%) Lab3 Waterworks - Plug-in Architectures and .NET Remoting

Summary: Refactor your Lab2 such that your factories dynamically detects new valves or tanks to create at run-time. Allow the creation and hosting of tanks or valves on different processes or even different machines.

Objectives: Working with .NET Remoting, include singleton objects and persistent instance objects.

Due: March 14, 2009 at 11:59pm (note that the CSE labs close before midnight).

Specifications: