This is the full description of the second networking assignment, Assignment #5.
The focus for this assignment will be to continue to refine the design and testing documents, but more importantly to create a system requirements document which will describe what the system model is and what it is supposed to do, replacing the partial and informal documentation that I gave you in the first installment of this assignment and in class discussions. That is, you should describe what the ethernet model that you're building is all about -- what it should contain and how it or your simulation of it should work. You will also be expected to make substantial progress on your implementation.
The final assignment, due a week after this one, will be to produce a thoroughly refined project that properly addresses all issues of requirements, design, implementation, development and testing, and including a finished implementation.
In general, do not make it necessary for us to run your code in order for us to check your work. We may want to execute your code, so you do have to make your sources and compiled files available. But you should do test runs that you capture in files, with added notes as to what the files should and do contain. And of course, put your name, date, etc. in all your source and test results files and documents.
This document that you must write should specify what the system is to do, as if a customer came to you and asked you to develop an ethernet simulation. To understand what this entails, first read through Chapter 11. You should describe a scenario or scenarios for you system, Sidebar 11.1 and related text. Also, use the ideas in Sidebars 11.2, 11.3 and related text. Important issues are discussed in Sec. 11.4.
The form for the requirements specification, which your document will contain, is elaborated in Chap. 12. This chapter contains a lot of material, but we will ignore the diagrams it uses and the logic expressions also. What you should focus on and include in your document are the types of textual information exemplified by Figs. 12.3 and 12.6. In addition, you should try to emulate the style of the textual comments (the ones in italics, not the logical notation) shown in the various examples in the Chap. 12, e.g., pgs. 279-281, and later examples in the chapter.
You should be paying close attention to the OO design ideas and suggestions in the textbook such as the use of class hierarchies, containment, and the practical aspects of abstraction such as the use of private variables, abstract classes and/or interfaces, etc. Do your best to include these types of software constructs in your implementation, but don't go out of your way to include them if they don't fit. When you do make decisions as how to or how not to design and implement some aspect of your classes, data structures and procedures, explain your decisions with respect to the various principles in your book. So read the appropriate parts of the book before you design and implement, while your designing and implementing and after you design and implement and are finishing up your various documents and possibly further refining your system.
Looking ahead to the final assignment, #6: You will also be required to produce a document describing your entire development process, related to Fig. 11.1. This will include describing your own work as well as the sources of your ideas, discussions with other students, other texts and web information sources, attempts at implementation, debugging, etc. So the final result of your work in COM1204 this summer will be a collection of code and documents describing all aspects of your object-oriented system development.
Sim.java, the simulation class that runs it.
Single file with all three class files appended.
Go to COM1204 home page
Return to Prof. Futrelle's home page