class diagram messaging extension (#13)

Co-authored-by: Anthony Debucquoy <debucquoy.anthony@gmail.com>
Reviewed-on: #13
Reviewed-by: Maxime <231026@umons.ac.be>
This commit is contained in:
Debucquoy Anthony 2023-12-15 14:36:44 +01:00
parent 4f1a44549b
commit abef330bd7
2 changed files with 88 additions and 1 deletions

View File

@ -11,7 +11,7 @@ extension_messagerie.pdf:use_case_messagerie.tex extension_messagerie.bbl extens
use_case_messagerie.tex: use_case_messagerie.uml
plantuml -tlatex:nopreamble use_case_messagerie.uml
image: use_case_messagerie.uml interaction_diagram.uml
image: use_case_messagerie.uml interaction_diagram.uml class.uml
plantuml $^
mmdc -i ERD.md -o ERD.png
@ -25,6 +25,7 @@ clean:
latexmk -C
rm -f use_case_messagerie.tex
rm -f extension_messagerie.{bbl,run.xml}
rm -f class.tex
run: extension_messagerie.pdf
xdg-open $<

View File

@ -0,0 +1,86 @@
@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