First class diagram messaging extension

This commit is contained in:
Debucquoy Anthony 2023-12-12 20:16:55 +01:00
parent c2b6ad0693
commit 245d1a9f0e
Signed by: tonitch
GPG Key ID: A78D6421F083D42E
2 changed files with 87 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 use_case_messagerie.tex: use_case_messagerie.uml
plantuml -tlatex:nopreamble 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 $^ plantuml $^
extension_messagerie.bbl: extension_messagerie.bcf extension_messagerie.bbl: extension_messagerie.bcf
@ -24,6 +24,7 @@ clean:
latexmk -C latexmk -C
rm -f use_case_messagerie.tex rm -f use_case_messagerie.tex
rm -f extension_messagerie.{bbl,run.xml} rm -f extension_messagerie.{bbl,run.xml}
rm -f class.tex
run: extension_messagerie.pdf run: extension_messagerie.pdf
xdg-open $< xdg-open $<

View File

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