CS 351: Design of Large Programs -------------------------------- Assignment # 5, Due Date 11/26/01 ---------------------------------- The goal of this assignment is to perform object-oriented analysis and design for a communication network simulation package. The network is similar to the one described in Assignment 3 but with far more ambitious features to be described shortly. The tasks involved in this assignment are: (i) Understanding our client's needs and requirements. (ii) Formulating Use Cases that summarize our client's expectations of the working of our software product. (iii) Brainstorming a Conceptual Model of the system. This will involve identification of key domain objects, their attributes and associations (but not responsibilities in this step.) (iv) Assigning responsibilities to objects and determining the interactions between them. (v) Translating some of the domain objects (and possibly adding more) to software classes and adding responsibilities to the classes (besides attributes and associations.) The output of this step is the Design Class Diagram. Requirements: ------------- You may choose any "reasonable" subset of the following features of the communication network to be simulated. 1. Link propagation delays are not necessarily equal. 2. Data transmission rates on all links are not necessarily equal. 3. Any node can be one or more of the following: a source of packets, a sink for packets or a switch. 4. Support for multicasting, i.e., a packet may need to be sent to multiple destinations. 5. Not all packets are the same size. 6. There can be, in general, multiple paths (possibly multiple shortest paths) between two nodes. For simplicity imagine the extra-stage Omega topology or the Omega with wrap-around connections as discussed in class. Traffic should be diverted in the event of node/link faults or in the event of congestion. 7. Switches are buffered using input buffers, output buffers or both. 8. In addition to packet switching, circuit switching and virtual cut-through routing are also supported. 9. The simulation package needs to be coupled to presentation software concerned with an animated display of packet transfers. 10.The package should enable a user to experiment with different traffic distributions and be able to monitor queue lengths or delays through individual nodes or in a specified subnet. What's to be turned in: ----------------------- A document summarizing your efforts at understanding the requirements, analyzing the system and your design. Use standard UML notation in general. However, feel free to Use/invent any other artifact you may need to analyse/design/document your work. Introduce any other methodology you feel is better suited, in general, or specifically for this system. Identify opportunities to use GRASP, GoF or any other patterns including those you may discover.