Students are required to:
1. Work in a team and engage in negotiation of goals and methods. (PTS4)
2. Solve a software development related problem while choosing the right methods, techniques, and tools. (PTS5)
3. Explicate the understanding of programming techniques and skills. (RKCSI) 4. Analyze and select the appropriate design patterns and techniques. (RKCS2)
Title: The Network Simulator Deadline: 14.01.2022
Assessment Criteria and Indicative Weighting
1 Analysis: All main entities are properly identified and the basic relationships between them are identified. The main concept of the simulation is properly defined. 30
2 Application of design patterns: The design patterns are properly incorporated into the initial design. The usage of each pattern is correctly justified. 30
3 Implementation: The implementation follows the prepared design and it uses correctly
Java programming techniques for the implementation of the suggested design patterns. 30
4 Coordination: The whole project is well distributed among programmers. The project is also well maintained by utilizing some version control systems (VCS). 10
The total is 100 points accounting for 80% of the final module grade.
The application of design patterns into any project is very challenging. Such a task requires the correct mindset, sufficient theoretical background and a lot of experience. The proposed project in this document expects from the students the mindset and theoretical background and it provides a good opportunity to gain some experience. The entire project is closely guided by the lecturer, who acts as a boss and a customer at the same time.
10/27/21, 8:11 PM DPJ(FT/BL) - ICA
Your task is to design and implement a basis for the network simulator, which simulates the first three layers of ISO-OSI network model with a simple traffic simulation. Your final product should be able to take the network topology (specified in the code or in the separate file) and simulate network traffic above it. The purpose of the simulation is to test traffic behaviour in changing conditions. The output from the simulation is the statistics for example about how many packets were lost during the communication, what was the average travel time for packets, all depending on the user requirements. The output is the implementation and technical report.
Fl - the simulator creates a network topology according to the specification in the source code or some external file. F2 - the simulator provides a platform for simulating various physical layer technologies like cabled connections and wireless connections F3 - the simulator provides a platform for simulating various link layer protocols like Ethernet or WiFi F4 - the simulator provides a platform for simulating various network-layer protocols like IPv4 and IPv6 F5 - all the physical connection simulates the environmental effects (the data corruption due to the communication distance, electromagnetic interference, etc.) F6 - each physical connection simulates the traffic delay for each data package sent through F7 - for each simulated network device is possible to define the set of physical network interfaces (variable number of interfaces and various types of interfaces) F8 - the network traffic is specified directly in the source code or it can be specified in the external file F9 - the implementation provides the tools for custom logging and statistical data collection
NFI - the simulator is implemented for the command-line interface NF2 - the simulation type is eventdriven (the simulation is not running in real-time but it uses virtual time and events) NF3 - the solution provides good support for maintenance and expandability by utilizing the design principles
Create the initial (naive) design, which will serve as a base for applying design patterns. The suggested design will be described in the technical report. Each identified entity and relationship is well described in the text and with a UML class diagram.
Identify the parts of your implementation which vary over time or between simulations.
Apply the suitable design patterns into your initial design in such a way as to provide the simplest possible interface for adding the new functionality into your network simulator. Describe all usage of all design patterns in the text and by using UML class diagrams. Justify the usage of each pattern.
Implement the suggested design by using appropriate Java programming techniques and test your implementation of the simulation on simplified protocols Ethernet and IPv4. Demonstrate how difficult is to add new features to your simulator.
Use appropriate techniques for dividing and distributing the project between all developers.
The final project will be delivered in the form of a ZIP file which contains all the source codes with generated documentation. As a part of the archive will be the report in the form of a PDF. The report will follow all the recommendations for writing a technical document.