d1b10bmlvqabco.cloudfront.net · web viewas this application has been developed with the idea of...
TRANSCRIPT
SWE 574 Software Development as a Team, Fall 2015Instructor: Suzan Üsküdarlı
PEP: Pink Elephant Project
Design Specifications Document
1.121.12.2015
By Group 2Barış Özcanlı, Hayri Can Akyel, Mehmet Çelikel, Orkun Koçyiğit,
Recep Günay, Sinan Can Sürücü
Revision History
Revision Date ExplanationDraft 23.10.2015 Initial high level design
Draft 2 26.10.2015 Draft is updated to reflect RSD 1.2 changes.● Attributes of the entity group are added.● ViewGroup is added to Controller● Individual group member invites for meeting
are removed● View meeting,discussion, note are added.● Peer to peer messaging requirements are
designed● New interface content are created to merge
relation between resource and message● Some of the controller methods are removed
due to new interface● ProposeMeeting and viewInvitedMeetings
requirements are fully designed.● Missing class “MeetingResults” are added.
1.0 02.11.2015 Draft is updated to reflect RSD 1.3 changes.● Server frameworks are detailed.● Register method has added into Main class.● Activity Diagrams of the all of the classes are
added.● Class description of the all of the variables for
all of the classes are added.● Method descriptions are added.
1.1 21.12.2015 2. PEP Software System Design and 3. PEP Software System Detailed Design sections are revised. Revisions are marked in gray in Table of Contents and sub-sections.
Page 2 / 45
Table of Contents
Revision History...................................................................................................................................2Table of Contents.................................................................................................................................31. Introduction......................................................................................................................................42. PEP Software System Design...........................................................................................................42.1. PEP Software System Architecture...............................................................................................42.2. PEP Software System Structure....................................................................................................42.2.1. PEP Package Diagram................................................................................................................42.2.2. PEP Class Diagram....................................................................................................................52.3. PEP Environment..........................................................................................................................63. PEP Software System Detailed Design............................................................................................73.1. PEP Main Class.............................................................................................................................73.2 PEP Other Classes........................................................................................................................23
3.2.1 User Class...........................................................................................................................23
3.2.2 UserDetails Class................................................................................................................25
3.2.3 Group Class.........................................................................................................................28
3.2.4 GroupMember Class...........................................................................................................29
3.2.5 Role Class...........................................................................................................................31
3.2.6 Resource Class...................................................................................................................32
3.2.7 Meeting Class......................................................................................................................33
3.2.8 Note Class...........................................................................................................................37
3.2.9 Discussion Class.................................................................................................................40
3.2.10 Message Class..................................................................................................................42
3.2.11 MeetingResults Class........................................................................................................43
4. Testing Design................................................................................................................................45
Page 3 / 45
1. Introduction
The purpose of the software project the Pink Elephant in Java and MongoDB is to combine discussion, meeting, documentation and semantic search aspects and enhance it in a usable way, both in web and mobile platforms.
The design is based on Requirements Specification Document, Revision 1.2, in online file[1] The notation used in this document to describe the design of Pink Elephant is mainly UML and conforms to organizational specifications given in [2]. The ISO standards in [3] are extensively used during the design.
The software architecture and overall high-level structure of Pink Elephant are given in Section 2 and design details of all application functions and the user interface in terms of are methods of all classes are given in Section 3 of this document.
2. PEP Software System Design
2.1. PEP Software System Architecture
Overall software architecture will be based on Client-server architecture.
Server side software architecture of the system will be multi-layered architecture.
Client side of the system will be based on monolithic architecture for both parts of the overall software system.
2.2. PEP Software System Structure
The overall software structure of the software solution can be split into distinct three parts.
The web part of the software system will mostly consist of web pages and javascript. By default most web pages will be independent from each other and will be created from data obtained from server side.
The android part of the software system will be based on default Android SDK. As like the prior case the classes will be independent from each other but may contain some bounds and application will be developed in iterative basis.
The server side of the application will be based on layered structure. In the basis Layered structure will contain 3 layers. First and topmost layer will contain classes where the will be responsible of handling the incoming requests, obtaining required data from below layer and repacking data in a way that is accepted by Web/Android part of the system. The middle part will be consist of classes that is responsible of fetching data requested from bottom layer, packaging data in the data structures that is in acceptable form to process as well as database manipulation operations that is requested from top layer. Bottom layer will consist of methods and processes that is required to get secure connections and statements through database.
2.2.1. PEP Package Diagram
Page 4 / 45
Package diagram of the Pink Elephant Project system is shown in Figure 2.2.1.1.
Figure 2.2.1.1 PEP Package Diagram
2.2.2. PEP Class Diagram
General class diagram of PEP can be examined in Figure 2.2.2.1.
Page 5 / 45
Figure 2.2.2.1 PEP Class Diagram
2.3. PEP Environment
The overall software system will be mostly based on Java 7. The application will be designed to work with any computer as a server that has an internet connection as long as Java Runtime (JRE) installed on the server computers. An open source variant of Java (openjdk) isn’t officially supported and any deployments on these computer system may or may not work. No support will be given to any computer that doesn’t have any versions of official Oracle Java 7 is installed. The further updates on Java 7 is still supported where as other versions of Java such as Java 6 or Java 8 will not be supported. Complete specifications of the release JDK are given below:Specification: JSR-000901 Java® Language Specification ("Specification")Version: 7Status: Final ReleaseRelease: July 2011
The database itself will be based MySQL 5.6.23 as a relational database while having an extra web service to handle database/client verifications. The database will be created by using official MySQL workbench where as it is not required to redeploy database on another server as DDL scripts will be provided. The web service will be based on various frameworks to be decided on later date.
Page 6 / 45
The web part of the application will mostly consist of HTML and javascript. The application may contain some of the Java Server Pages to provide extra functionality. The server will manage it is data with using DAO class supported with Java Hibernate Framework. The communication will be done with JSon strings with a backhand of Spring Framework.The Android part of the application will target Android Api 19 and will consist of all native frameworks to provide user interface and functionality.
3. PEP Software System Detailed Design
3.1. PEP Main Class
3.1.1. Class Controller Method login
This method takes the entered username and password and logins into server, if the verification is successful then the token will be returned and if it is not then error message will be displayed.
Page 7 / 45
3.1.2. Class Controller Method viewProfile
This method takes the logged on or selected user’s token and tries to retrieve selected token’s user information from server, if the selected token is valid and user have the permission then the user information will be returned and if it is not then error message will be displayed.
3.1.3. Class Controller Method updateProfile
This method takes the logged on token and creates a new instance of the User with updated information which is gotten from interface from server, if the selected token is valid and user have the permission then the user information will be updated and if it is not then error message will be displayed.
3.1.4. Class Controller Method search
This method takes the entered string and make a semantic search based on either entered user tags for contents or collected user behaviour. After the search results are collected they are converted into JSON then send to the client.
Page 8 / 45
3.1.5. Class Controller Method createGroup
This method will take information from the group page and verify it. If the verification passes it will parse the information into JSON object, assign the user as a creator of the group and commit it into database.
3.1.6. Class Controller Method updateGroup
This method takes instance of selected group and creates a new instance of the Group with updated information which is gotten from interface from server, if the selected group is exists and user have the permission then the group information will be updated and if it is not then error message will be displayed.
Page 9 / 45
3.1.7. Class Controller Method archiveGroup
This method takes instance of selected group and gathers all of the data which is related to group and saves it. Then disables write access into relevant data of the group and updates database entry of the group as disabled.
3.1.8. Class Controller Method viewGroup
This method takes the selected group’s id and tries to retrieve group’s information from server, if the user have the permission to see then the group information will be returned and if it is not then error message will be displayed.
3.1.9. Class Controller Method applyGroupPage 10 / 45
This method takes instance of the selected group and creates a new group member with status set as -1 then apply it to the database.
3.1.10. Class Controller Method leaveGroup
This method takes instance of the groupmember that is bound to the user then sets it is status to 3.
3.1.11. Class Controller Method viewMembershipRequests
This method takes the id of the selected group then queries all of the members with status field is set to -1. After that all of the results are gathered into a list and returned to the client.
Page 11 / 45
3.1.12. Class Controller Method updateMembershipRequests
This method will get instance of GroupMember class that points to the User which is selected from user interface, and updates it is status with respect to decision made by group admins.
3.1.13. Class Controller Method viewMeeting
This method takes the selected meeting’s id and tries to retrieve group’s information from server, if the user have the permission to see then the group information will be returned and if it is not then error message will be displayed.
3.1.14. Class Controller Method createMeetingPage 12 / 45
This method will take information from the meeting page and verify it. If the verification passes it will parse the information into JSON object, assign the user as a creator of the meeting and commit it into database.
3.1.15. Class Controller Method updateMeeting
This method takes instance of selected meeting and creates a new instance of the Meeting with updated information which is gotten from interface from server, if the selected meeting is exists and user have the permission then the group information will be updated and if it is not then error message will be displayed.
3.1.16. Class Controller Method deleteMeeting
This method takes instance of selected meeting and gathers all of the data which is related to meeting and saves it. Then disables write access into relevant data of the meeting and updates database entry of the group as disabled.
Page 13 / 45
3.1.17. Class Controller Method inviteMeeting
This method takes the instance of creating meeting then invites every member of the group which is approval into the meeting.
3.1.18. Class Controller Method viewNote
This method takes the selected note’s id and tries to retrieve note’s information from server, if the user have the permission to see then the note information will be returned and if it is not then error message will be displayed.
Page 14 / 45
3.1.19. Class Controller Method createNote
This method will take information from the note page and verify it. If the verification passes it will parse the information into JSON object, assign the user as a creator of the note and commit it into database.
3.1.20. Class Controller Method updateNote
This method takes instance of selected note and creates a new instance of the Note with updated information which is gotten from interface from server, if the selected note is exists and user have the permission then the group information will be updated and if it is not then error message will be displayed.
3.1.21. Class Controller Method deleteNote
This method takes instance of selected note and gathers all of the data which is related to note and saves it. Then disables write access into relevant data of the note and updates database entry of the group as disabled.
Page 15 / 45
3.1.22. Class Controller Method viewDiscussion
This method takes the selected discussion’s id and tries to retrieve discussion’s information from server, if the user have the permission to see then the discussion information will be returned and if it is not then error message will be displayed.
3.1.23. Class Controller Method createDiscussion
This method will take information from the discussion page and verify it. If the verification passes it will parse the information into JSON object, assign the user as a creator of the discussion and commit it into database.
Page 16 / 45
3.1.24. Class Controller Method updateDiscussion
This method takes instance of selected discussion and creates a new instance of the Discussion with updated information which is gotten from interface from server, if the selected discussion is exists and user have the permission then the group information will be updated and if it is not then error message will be displayed.
3.1.25. Class Controller Method deleteDiscussion
This method takes instance of selected discussion and gathers all of the data which is related to discussion and saves it. Then disables write access into relevant data of the discussion and updates database entry of the group as disabled.
3.1.26. Class Controller Method sendMessage
This method sends a message to either discussion or to another user. The method first takes the text form text box, then checks type of the message. If it is to the discussion then it adds discussion id if not then it will take user id. After that it will also past entered tags into json string then commit into database.
Page 17 / 45
3.1.27. Class Controller Method updateMessage
This method takes instance of selected message and creates a new instance of the Message with updated information which is gotten from interface from server, if the selected message is exists and user have the permission then the group information will be updated and if it is not then error message will be displayed.
3.1.28. Class Controller Method removeMessage
This method takes instance of selected message and gathers all of the data which is related to message and saves it. Then disables write access into relevant data of the message and updates database entry of the group as disabled.
3.1.29. Class Controller Method inviteUser
Page 18 / 45
This method takes entered string from textbox from user interface then checks the type of the invitation. If the invitation is via mail then it will get e-mail address and parse it to JSON else it will parse user’s id. After that it will send invite to the selected user.
3.1.30. Class Controller Method uploadFile
This method takes a file stream and entered user tags, upload the file into the database then returns the url of the file.
3.1.31. Class Controller Method reportContent
This method will take id of the content which is flagged by users. Then create a urlconnection and send the id of the content to database.
Page 19 / 45
3.1.32. Class Controller Method viewReportedContent
This method takes the all of the reported content bind to the group and tries to retrieve it from server, if the user have the permission to see then the all of the reports will be returned and if it is not then error message will be displayed.
3.1.33. Class Controller Method updateReportedContent
This method takes instance of selected report and creates a new instance of the Report with updated information which is gotten from interface from server, if the selected report is exists and user have the permission then the report status will be updated and if it is not then error message will be displayed.
Page 20 / 45
3.1.34. Class Controller Method removeReportedContent
This method takes instance of selected report and removes it from database.
3.1.35. Class Controller Method viewGroupMembers
This method takes the all of the members which is bind to the group and tries to retrieve it from server, if the user have the permission to see then the all of the members will be returned and if it is not then error message will be displayed.
3.1.36. Class Controller Method removeAccount
This method takes instance of selected user and gathers all of the data which is related to user and saves it. Then disables access into user instance and updates database entry of the user as disabled.
Page 21 / 45
3.1.37. Class Controller Method exportData
This method takes instance of selected user and gathers all of the data which is related to user and saves it into file.
3.1.38. Class Controller Method proposeMeeting
This method takes a meeting as a base point to recommend a potential meeting for the discussion, then creates a pool for people to vote and decide on the creating meeting.
3.1.39. Class Controller Method viewInvitedMeetings
This method takes the logged in user’s token and tries to retrieve all of the user meeting invitations from server.
3.1.40. Class Controller Method registerPage 22 / 45
This method will sent collection of data obtained from register interface and submit it into database. Upon complication it will sent validation email to the user’s given e-mail.
3.2 PEP Other Classes
3.2.1 User Class
Figure 3.2.1.1 User Class
Type Name Description Value
String mName The name of the user.
Length must be more than 3, no special characters.
String mLastname The lastname of the user.
Length must be more than 3, no special characters.
String mUserName The user name (mail) of the user.
Length must be more than 3, no special
Page 23 / 45
characters.
String mPassword The password of the user.
Length must be more than 3, no special characters.
UserDetails mDetails The details of the user.
Not null or null
List<GroupMember>
mGroups The groups of the user.
Not null
Table 3.2.1.1 User Class Data Attributes
3.2.1.1. Class User Method getName
This method returns the user’s name.
3.2.1.2. Class User Method getLastname
This method returns the user’s last name.
3.2.1.3. Class User Method getMail
This method returns the user’s mail.
3.2.1.4. Class User Method getPassword
This method returns the user’s password.
3.2.1.5. Class User Method getDetails
This method returns the user’s details.
3.2.1.6. Class User Method getGroups
This method returns the user’s groups.
3.2.1.7. Class User Method setName
This method sets the user’s name.
Page 24 / 45
3.2.1.8. Class User Method setLastname
This method sets the user’s last name.
3.2.1.9. Class User Method setMail
This method sets the user’s mail.
3.2.1.10. Class User Method setPassword
This method sets the user’s password.
3.2.1.11. Class User Method setDetails
This method sets the user’s details.
3.2.2 UserDetails Class
Figure 3.2.2.1 UserDetails Class
Type Name Description Value
Calendar mBirthDate The date of registration.
The date must be valid and less than current date
String mProfession The profession of the user.
Length must be more than 3, no special characters.
Page 25 / 45
String mUniversity The university of the user.
Length must be more than 3, no special characters.
String mProgramme The programme of the user.
Length must be more than 3, no special characters.
List<String> mInterestedAreas The list of interested areas of the user.
Not null, not empty.
Url mLinkedinProfile The linkedin of the user.
Must be valid web page.
Url mAcademiaProfile The academia of the user.
Must be valid web page.
Url mImagePath The image of the user.
Must be valid web page.
List<Boolean> mPrivacy The list of permissions of the user.
Not null, not empty
Table 3.2.2.1 UserDetails Class Data Attributes
3.2.2.1 Class UserDetails Method getBirthDate
This method returns the user’s birthdate.
3.2.2.2 Class UserDetails Method getProfession
This method returns the user’s profession.
3.2.2.3 Class UserDetails Method getUniversity
This method returns the user’s university.
3.2.2.4 Class UserDetails Method getProgramme
This method returns the user’s programme.
3.2.2.5 Class UserDetails Method getInterestedAreas
This method returns the user’s interested areas.
Page 26 / 45
3.2.2.6 Class UserDetails Method getLinkedinProfile
This method returns the user’s linkedin profile.
3.2.2.7 Class UserDetails Method getAcademiaProfile
This method returns the user’s academia profile.
3.2.2.8 Class UserDetails Method getImagePath
This method returns the user’s image path.
3.2.2.9 Class UserDetails Method getPrivacy
This method returns the user’s privacy settings.
3.2.2.10 Class UserDetails Method setBirthDate
This method sets the user’s birthdate.
3.2.2.11 Class UserDetails Method setProfession
This method sets the user’s profession.
3.2.2.12 Class UserDetails Method setUniversity
This method sets the user’s university.
3.2.2.13 Class UserDetails Method setProgramme
This method sets the user’s programme.
3.2.2.14 Class UserDetails Method setInterestedAreas
This method sets the user’s interested areas.
3.2.2.15 Class UserDetails Method setLinkedinProfile
This method sets the user’s linkedin profile.
Page 27 / 45
3.2.2.16 Class UserDetails Method setAcademiaProfile
This method sets the user’s academia profile.
3.2.2.17 Class UserDetails Method setImagePath
This method sets the user’s image path.
3.2.2.18 Class UserDetails Method setPrivacy
This method sets the user’s privacy settings.
3.2.3 Group Class
Figure 3.2.3.1 Group Class
Type Name Description Value
String mName The name of the group.
Length must be more than 3, no special characters.
String mDescription The description of the group.
Length must be more than 10, no special characters.
List<String> mTags The list of tags of the group.
Not null, not empty
List<GroupMember>
mMembers The list of members of the group.
Not null, not empty
Table 3.2.3.1 Group Class Data Attributes
3.2.3.1. Class Group Method getName
Page 28 / 45
This method returns group’s name.3.2.3.2. Class Group Method getDescription
This method returns group’s description.
3.2.3.3. Class Group Method getTags
This method returns group’s tags.
3.2.3.4. Class Group Method getMembers
This method returns group’s members.
3.2.3.5. Class Group Method setName
This method sets group’s name.
3.2.3.6. Class Group Method setDescription
This method sets group’s description.
3.2.3.7. Class Group Method setTags
This method sets group’s tags.
3.2.3.8. Class Group Method setMembers
This method sets group’s members.
3.2.4 GroupMember Class
Figure 3.2.4.1 GroupMember Class
Page 29 / 45
Type Name Description Value
User mUser The user which is in the group
Not null
Group mGroup The reference of the group
Not null
Role mRole List of allowed roles of the member
Not null, not empty
int mApproval Status of the group member
-1 for pending, 0 for rejected, 1 for accepted, 3 for left
boolean mActive Whatever member is active or not
True for active, false for left
Table 3.2.4.1 GroupMember Class Data Attributes
3.2.4.1. Class GroupMember Method getUser
This method returns group member’s user.
3.2.4.2. Class GroupMember Method getGroup
This method returns group member’s group.
3.2.4.3. Class GroupMember Method getRole
This method returns group member’s role.
3.2.4.4. Class GroupMember Method getApproval
This method returns group member’s approval.
3.2.4.5. Class GroupMember Method getActive
This method returns group member’s activity.
3.2.4.6. Class GroupMember Method setRole
This method sets group member’s role.
3.2.4.7. Class GroupMember Method setApproval
Page 30 / 45
This method sets group member’s approval.
3.2.4.8. Class GroupMember Method setActive
This method sets group member’s activity.
3.2.5 Role Class
Figure 3.2.5.1 Role Class
Type Name Description Value
String mName Name of the role. Length must be more than 2, no special characters.
List<Boolean> mPermissions List of permissions that role can do.
Not null, fixed size.
Url mImage The image of the user role.
Null or valid web page.
Table 3.2.5.1 Role Class Data Attributes
3.2.5.1. Class Role Method getName
This method returns the role’s name.
3.2.5.2. Class Role Method getPermissions
This method returns the role’s permissions.
3.2.5.3. Class Role Method getImage
This method returns the role’s image.
3.2.5.4. Class Role Method setName
Page 31 / 45
This method sets the role’s name.
3.2.5.5. Class Role Method setPermissions
This method sets the role’s permissions.
3.2.5.6. Class Role Method setImage
This method sets the role’s image.
3.2.6 Resource Class
Figure 3.2.6.1 Resource Class
Type Name Description Value
Url mUrl The url of the resource.
Must be a valid web page.
List<String> mTags The list of the tags. Not null and not empty.
Table 3.2.6.1 Resource Class Data Attributes
3.2.6.1. Class Resource Method getUrl
This method returns the role’s url.
3.2.6.2. Class Resource Method getTags
This method returns the role’s tags.
3.2.6.3. Class Resource Method setUrl
This method sets the role’s url.
Page 32 / 45
3.2.6.4. Class Resource Method setTags
This method sets the role’s tags.
3.2.7 Meeting Class
Figure 3.2.7.1 Meeting Class
Type Name Description Value
Calendar mDate The date of the meeting.
The date must be valid and more than current date
Group mGroup The group of the meeting.
Not null
List<GroupMember>
mInvited The list of invited of the meeting.
Not null, not empty.
Page 33 / 45
List<String> mAgenda The list of agenda items of the meeting.
Not null, not empty.
List<String> mTags The list of tags of the meeting.
Not null, not empty.
List<GroupMember>
mRoles The roles of the meeting.
Not null, not empty.
String mDuration The expected duration of the meeting.
Length must be more than 2, no special characters.
String mLocation The location of the meeting.
Length must be more than 3, no special characters.
List<Resource> mResources The list of resources of the meeting.
Not null.
String mDescription The description of the meeting.
Length must be more than 10, no special characters.
MeetingResults mResults The results of the meeting.
Null if meeting isn’t conducted. Not null after meeting is done.
int mPhase The phase of the meeting.
0 for not started, 1 for started, 2 for finished.
Boolean mIsPinned Pin status of a meeting
0 for not pinned, 1 for pinned
ContactDetails mName Name of a contact person
Length must be more than 3, no special characters.
ContactDetails mSurname Surname of contact person
Length must be more than 3, no special characters.
ContactDetails mEmail Email of contact person
Length must be more than 5, no special characters.
ContactDetails mPhoneNumber Phone of contact person
Length must be more than 10, no special characters.
Page 34 / 45
Table 3.2.7.1 Meeting Class Data Attributes
3.2.7.1. Class Meeting Method getDate
This method returns the meeting’s date.
3.2.7.2. Class Meeting Method getGroup
This method returns the meeting’s group.
3.2.7.3. Class Meeting Method getInvited
This method returns the meeting’s list of invited.
3.2.7.4. Class Meeting Method getAgenda
This method returns the meeting’s agenda items.
3.2.7.5. Class Meeting Method getTags
This method returns the meeting’s list of tags.
3.2.7.6. Class Meeting Method getRoles
This method returns the meeting’s user with special roles.
3.2.7.7. Class Meeting Method getDuration
This method returns the meeting’s duration.
3.2.7.8. Class Meeting Method getLocation
This method returns the meeting’s location.
3.2.7.9. Class Meeting Method getResources
This method returns the meeting’s resources.
3.2.7.10. Class Meeting Method getDescription
This method returns the meeting’s description.
Page 35 / 45
3.2.7.11. Class Meeting Method getResults
This method returns the meeting’s results.
3.2.7.12. Class Meeting Method getPhase
This method returns the meeting’s phase.
3.2.7.13. Class Meeting Method setDate
This method returns the meeting’s date.
3.2.7.14. Class Meeting Method setGroup
This method returns the meeting’s group
3.2.7.15. Class Meeting Method setInvited
This method returns the meeting’s list of invited.
3.2.7.16. Class Meeting Method setAgenda
This method returns the meeting’s agenda items.
3.2.7.17. Class Meeting Method setTags
This method returns the meeting’s list of tags.
3.2.7.18. Class Meeting Method setRoles
This method returns the meeting’s user with special roles.
3.2.7.19. Class Meeting Method setDuration
This method returns the meeting’s duration.
3.2.7.20. Class Meeting Method setLocation
This method returns the meeting’s location.
Page 36 / 45
3.2.7.21. Class Meeting Method setResources
This method returns the meeting’s resources.
3.2.7.22. Class Meeting Method setDescription
This method returns the meeting’s description.
3.2.7.23. Class Meeting Method setResults
This method returns the meeting’s results.
3.2.7.24. Class Meeting Method setPhase
This method returns the meeting’s phase.
3.2.8 Note Class
Figure 3.2.8.1 Note Class
Page 37 / 45
Type Name Description Value
String mTitle The title of the note. Length must be more than 3, no special characters.
User mCreator The user who created the note.
Not null.
User mLastModifiedUser The user who send last message.
Not null, same as creator at start.
List<Resource> mResources The list of resources of the note.
Not null.
List<Map<Date, String>>
mText The list of messages with date.
Not null, not empty.
List<Communication>
mCommunication The text and tags of the messages.
Not null, first message is text of the note.
List<String> mTags The tags of the note. Not null, not empty.
Boolean mIsPinned Pin status of a note 0 for not pinned, 1 for pinned
Table 3.2.8.1 Note Class Data Attributes
3.2.8.1. Class Note Method getTitle
This method returns the note’s title.
3.2.8.2. Class Note Method getCreator
This method returns the note’s creator.
3.2.8.3. Class Note Method getLastModifiedUser
This method returns the last user who sent message.
3.2.8.4. Class Note Method getResources
This method returns the note’s resources.
3.2.8.5. Class Note Method getText
Page 38 / 45
This method returns the note’s text.
3.2.8.6. Class Note Method getCommunucation
This method returns the note’s comments and their tags.
3.2.8.7. Class Note Method getTags
This method returns the note’s tags.
3.2.8.8. Class Note Method setTitle
This method sets the note’s title.
3.2.8.9. Class Note Method setCreator
This method sets the note’s creator.
3.2.8.10. Class Note Method setLastModifiedUser
This method sets the last user who sent message.
3.2.8.11. Class Note Method setResources
This method sets the note’s resources.
3.2.8.12. Class Note Method setText
This method sets the note’s text.
3.2.8.13. Class Note Method setCommunucation
This method sets the note’s comments and their tags.
3.2.8.14. Class Note Method setTags
This method sets the note’s tags.
Page 39 / 45
3.2.9 Discussion Class
Figure 3.2.9.1 Discussion Class
Type Name Description Value
String mTitle The title of the discussion.
Length must be more than 3, no special characters.
List<Resource> mResource The resources of the discussion.
Not null
List<String> mTags The tags of the discussion.
Not null, not empty
List<Message> mMessages The messages of the discussion.
Not null, first element is first message.
List<Communication>
mCommunication The messages of the discussion.
Not null, first element is first message.
Boolean mIsPinned Pin status of a meeting
0 for not pinned, 1 for pinned
Table 3.2.9.1 Discussion Class Data Attributes
3.2.9.1. Class Discussion Method getTitle
This method returns the discussion’s title.
Page 40 / 45
3.2.9.2. Class Discussion Method getTags
This method returns the discussion’s tags.
3.2.9.3. Class Discussion Method getResources
This method returns the discussion’s resources.
3.2.9.4. Class Discussion Method getMessages
This method returns the discussion’s messages.
3.2.9.5. Class Discussion Method getCommunication
This method returns the discussion’s messages.
3.2.9.6. Class Discussion Method setTitle
This method sets the discussion’s title.
3.2.9.7. Class Discussion Method setTags
This method sets the discussion’s tags.
3.2.9.8. Class Discussion Method setResources
This method sets the discussion’s resources.
3.2.9.9. Class Discussion Method setMessages
This method sets the discussion’s messages.
3.2.9.10. Class Discussion Method setCommunication
This method sets the discussion’s messages.
Page 41 / 45
3.2.10 Message Class
Figure 3.2.10.1 Message Class
Type Name Description Value
GroupMember mUser The member who sent the message.
Not null.
List<String> mTags The tags of the message.
Not null, not empty.
String mText The text of the message.
Length must be more than 3 less than 65535.
Calendar mDate The date of the message.
Current date
Table 3.2.10.1 Message Class Data Attributes
3.2.10.1. Class Message Method getUser
This method returns the message’s sender.
3.2.10.2. Class Message Method getTags
This method returns the message’s tags.
3.2.10.3. Class Message Method getText
This method returns the message’s text.
3.2.10.4. Class Message Method getDate
This method returns the message’s date.
Page 42 / 45
3.2.10.5. Class Message Method setUser
This method sets the message’s sender.
3.2.10.6. Class Message Method setTags
This method sets the message’s tags.
3.2.10.7. Class Message Method setText
This method sets the message’s text.
3.2.10.8. Class Message Method setDate
This method sets the message’s date.
3.2.11 MeetingResults Class
Type Name Description Value
String mDuration The actual duration of the meeting.
Length must be more than 2. Only numbers are allowed.
List<GroupMember>
mAttendants The list of attendants of the meeting.
Not null, not empty.
List<String> mNotes The notes of the meeting.
Not null, not empty.
List<Resource> mResources The resources of the meeting.
Not null.
Page 43 / 45
String mToDo The todo of the meeting.
Not null, not empty.
3.2.10.1. Class MeetingResults Method getDuration
This method returns the meeting's actual duration.
3.2.10.2. Class MeetingResults Method getAttendants
This method returns the meeting's attendants.
3.2.10.3. Class MeetingResults Method getNotes
This method returns the meeting's notes.
3.2.10.4. Class MeetingResults Method getResources
This method returns the meeting's resources.
3.2.10.5. Class MeetingResults Method getToDo
This method returns the meeting's todo list.
3.2.10.6. Class MeetingResults Method setDuration
This method sets the meeting's actual duration.
3.2.10.7. Class MeetingResults Method setAttendants
This method sets the meeting's attendants.
3.2.10.8. Class MeetingResults Method setNotes
This method the meeting's notes.
3.2.10.9. Class MeetingResults Method setResources
This method sets the meeting's resources.
3.2.10.10. Class MeetingResults Method setToDo
This method sets the meeting's todo list.
Page 44 / 45
4. Testing Design
As this application has been developed with the idea of reliability and security in mind, it is very important to test our application with relevant and well thought test cases to ensure software quality. However it is also very important to note that due to extremely short time to deliver working system it is not realistic to do most of the principal component testing methodologies. As a result, most of the testing will be committed on actual programmed code, also known as white box testing, instead of relying more requirement focused black box approaches. As a result most of the testing will be based on Unit testing on the decision points to ensure data and process reliability to ensure complete statement and decision coverage.
References
1. Özcanlı, B., Akyel, H. C., Çelikel, M., Koçyiğit, O., Günay, R., Sürücü, S. C., “PEP: Pink Elephant Project Requirements Specifications Document”, 2015, v1.6.
2. Information technology - Object Management Group Unified Modeling Language (OMG UML), 2012, accessible at: http://www.omg.org/spec/UML/
3. ISO 9001, 2011, http://www.iso.org/iso/catalogue_detail?csnumber=50675
Page 45 / 45