COSC 4353 - Software Design
Prof. Amin Alipour
- Bryan Alvarez
- Atharva Rajurkar
- Diogo Aires
The goal of the project in this course is to design and implement a software system with the principles that you learn during the course. The project is a group assignment. Each group is composed of 2 or 3 students that are randomly assigned by the instruction staff.
You will extract the core functional and non-functional requirements, and prototype appropriate command-line java solutions. You will be using agile methodology: 2-week sprints/ biweekly group and personal reports for Wireshark (https://www.wireshark.org/)
- For whatever task you take on, create new branch
- Update the task backlog and work on the task
- If you need help, ask for it so that the others can jump in and help you out
- When done submit pull request
- Request other members review
- Other members review your branch
- Approve it, or request changes
- Fix changes
- Approve pull request
- Merge branch to the master
- Test master with new branch
- Created repository
- Added ReadMe file
- Created tag
- Task1: Add packet capturing library
- Task2: Create command line class to handle user input
- Task3: Add basic packet capture functionality
- Task4: Integrate different components on main class
- Task5: Add junit dependency in pom.xml
- Task6: ipv4 or ipv6 address checker
- Task7: Writing packets into a file
- Task2: Create command line class to handle user input
- Task4: Integrate different components on main class
- Task8: Reading packets from pcap file
- Task9: Add reading packets given an amount of time on an interface
- Task10: Add junit tests
- Task11: Set up general test class to implement samples and calling all tests in one class
- Task12: add getting network interfaces connected to a certain network, Diogo and Bryan
- Task14: Add support for filtering packets
- Task16: Integrate filtering packets in main class
- Task15: Determine next commands to add.
- Task12: add getting network interfaces connected to a certain network, Diogo and Bryan
- Created repository
- Added ReadMe file
- Created tag
- Task4: Integrate different components on main class (eliminated redundant task)
- Task5: Add junit dependency in pom.xml, Atharva
- Task1: Add packet capturing library, Bryan
- Task3: Add basic packet capture functionality, Bryan
- Task6: ipv4 or ipv6 address checker, Diogo
- Task7: Writing packets into a file, Bryan
- Task8: Reading packets from pcap file, Bryan
- Task9: Add reading packets given an amount of time on an interface, Atharva
- Task11: Set up general test class to implement samples and calling all tests in one class, Bryan
- Task2: Create command line class to handle user input, Diogo
- Task10: Add junit tests, Atharva
- Task13: add filtering of packets by protocol, Atharva
- Task16: Integrate filtering packets in main class, Atharva
If extension is present, it is a file. Otherwise, folder
- .idea: this folder stores custom run/debug configurations, git repository mapping and other project specific info.
- .gitignore(file): to specify files that will not be uploaded to the repository
- src: All code we write.
- main: Application code
- test: All tests code
- target: Holds all output of the build.
- Packet capture -> wireshark listens to a network connection in real time and grabs entire streams of traffic (can be up to thousands of packets)
- Packet monitor -> displays source and destination addresses, the protocol used, contents of packet in text/encoded format and if applicable destination port.
- Filtering -> Slices and dices, the sniffed random data using filters to obtain specific data in needed by the user
- Filtering can be based on:
- ip address
- port
- protocol
- keyword in data packets
- Filtering can be based on:
- Visualization -> wireshark allows user to analyze into the very middle of a network packet, entire conversations (messages between server and client), and network streams.
- Output export -> The packet info can be exported and saved in different file formats like xml, csv or plain text.