Co-authored-by: Anthony Debucquoy <debucquoy.anthony@gmail.com> Reviewed-on: #13 Reviewed-by: Maxime <231026@umons.ac.be>
		
			
				
	
	
		
			87 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| @startuml
 | |
| title Class diagram for Messaging extension
 | |
| 
 | |
| package Messages {
 | |
| 	class Message{
 | |
| 		content: String
 | |
| 		response: Message
 | |
| 		respond(User, String)
 | |
| 	}
 | |
| 	class Discussion{
 | |
| 		name: String
 | |
| 		users: ArrayList<User>
 | |
| 		invite(User)
 | |
| 		sendMessage(User, String)
 | |
| 	}
 | |
| 	Discussion *-- Message
 | |
| }
 | |
| 
 | |
| package Forums {
 | |
| 	class Forum{
 | |
| 		name: String
 | |
| 		Owner: Teacher
 | |
| 		Registered: ArrayList<User>
 | |
| 		{static} createForum(Course): Forum
 | |
| 		createTopic(String): Topic
 | |
| 		createPoll(String, PollType, ArrayList<Option>): Poll
 | |
| 	}
 | |
| 	class Topic{
 | |
| 		subject: String
 | |
| 		author: Teacher 
 | |
| 		content: String
 | |
| 		answer(User, String): Answer
 | |
| 		lock(Boolean)
 | |
| 	}
 | |
| 	class Answer{
 | |
| 		author: User
 | |
| 		content: String
 | |
| 		anonymous: Boolean 
 | |
| 		remove()
 | |
| 	}
 | |
| 	class Poll{
 | |
| 		options: ArrayList<Option>
 | |
| 		type: PollType
 | |
| 		answer(User, Option): Vote
 | |
| 		addOption(Option)
 | |
| 	}
 | |
| 	class Option{
 | |
| 		name: String
 | |
| 	}
 | |
| 	class Vote{
 | |
| 		voter: User
 | |
| 	}
 | |
| 	enum PollType {
 | |
| 		ALLOW_NEW_OPTIONS
 | |
| 		ALLOW_MULTIPLE_CHOICE
 | |
| 	}
 | |
| 	note "Change the behaviour of poll" as N
 | |
| 
 | |
| 	Forum *-l- Topic
 | |
| 	Topic *-l- Answer
 | |
| 
 | |
| 	Topic <|-d- Poll
 | |
| 	Poll *-l- Option
 | |
| 	Option "1..*" -d-x Vote
 | |
| 	Poll *-- Vote
 | |
| 
 | |
| 	Poll -- PollType
 | |
| 	PollType .r. N
 | |
| 
 | |
| }
 | |
| 
 | |
| package Appointments{
 | |
| 	class Appointment{
 | |
| 		date: Date
 | |
| 		teacher: Teacher
 | |
| 		student: Student
 | |
| 		{static} Appointment(Student, Teacher, Date)
 | |
| 		accept()
 | |
| 		refuse()
 | |
| 		propose(Date)
 | |
| 		export(): File
 | |
| 	}
 | |
| }
 | |
| 
 | |
| Appointments -[hidden]d- Messages
 | |
| @enduml
 |