Rechnernetze / Kommunikationssysteme
SW-Klassendiagramm
classDiagram direction BT class ARQ { <<Interface >> + data_req(byte[], int, boolean) boolean + data_ind_req(int[]) byte[] + closeConnection() void int retryCounterStat int backData int retransmissionCounter int MTU } class ARQAbst { + ARQAbst(Socket) + ARQAbst(Socket, int) # int MTU # int retransmissionCounter # int retryCounterStat # int backData + data_req(byte[], int, boolean) boolean + data_ind_req(int[]) byte[] ~ sendAck(int) void ~ generateAckPacket(int) byte[] ~ checkStart(DatagramPacket) boolean # getPacketNr(DatagramPacket) int # getAckData(DatagramPacket) void # getSessionID(DatagramPacket) int # waitForAck(int) boolean # generateDataPacket(byte[], int) byte[] int retryCounterStat int backData int retransmissionCounter int MTU } class Channel { ~ Channel(DatagramSocket, double, int) + sendPacket(DatagramPacket) void + setChannelSimulator(double, int) void + receivePacket(DatagramPacket) DatagramPacket - simulateLoss() boolean } class FT { <<Interface >> + file_init() boolean + file_req() boolean } class FileCopy { + FileCopy() + main(String[]) void - handleConnection(int) void - sendFile(String, int, String, byte) void } class FileTransfer { + FileTransfer(Socket, String) + FileTransfer(String, Socket, String, byte) + file_init() boolean + file_req() boolean - setFileOut() CheckedOutputStream - printTime(boolean) void - generateStartPacket(String, long) byte[] - printCRC(byte[]) boolean - printVersion() void - readStartPacket(byte[]) boolean - getDataFromArq(ARQ, byte[], int[]) boolean } class SW { + SW(Socket, int) + SW(Socket) + data_ind_req(int[]) byte[] + data_req(byte[], int, boolean) boolean + closeConnection() void ~ generateAckPacket(int) byte[] ~ sendAck(int) void ~ checkStart(DatagramPacket) boolean # generateDataPacket(byte[], int) byte[] # getAckData(DatagramPacket) void # getPacketNr(DatagramPacket) int # getSessionID(DatagramPacket) int # waitForAck(int) boolean - extractData(DatagramPacket, int) byte[] } class Socket { + Socket(String, int) + Socket(int, double, int) + sendPacket(byte[]) void + receivePacket() DatagramPacket int timeout } class TimeoutCalculation { + TimeoutCalculation() - long startTime - int rto + checkRto(long) boolean + updateRto(int) void + setStartTime() void + updateRto() void - calculateRto(long) void int startTime int rto } ARQAbst ..|> ARQ ARQAbst "1" *--> "socket 1" Socket FileCopy ..> FileTransfer : «create» FileCopy ..> Socket : «create» FileTransfer "1" *--> "myARQ 1" ARQ FileTransfer ..|> FT FileTransfer ..> SW : «create» FileTransfer "1" *--> "socket 1" Socket SW --|> ARQAbst SW ..> Socket SW ..> TimeoutCalculation Socket "1" *--> "channel 1" Channel Socket ..> Channel : «create»
Letzte Änderung: 17. September 2025 12:14