56
SWE 574 Software Development as a Team, Fall 2015 Instructor: Suzan Üsküdarlı PEP: Pink Elephant Project Design Specifications Document 1.1 21.12.2015

d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

  • Upload
    vutruc

  • View
    213

  • Download
    1

Embed Size (px)

Citation preview

Page 1: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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ü

Page 2: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 3: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 4: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 5: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 6: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 7: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 8: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 9: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 10: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 11: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 12: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 13: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 14: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 15: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 16: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 17: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 18: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 19: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 20: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 21: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 22: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 23: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 24: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 25: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 26: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 27: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 28: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 29: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 30: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 31: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 32: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 33: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 34: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 35: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 36: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 37: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 38: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 39: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 40: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 41: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 42: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 43: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 44: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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

Page 45: d1b10bmlvqabco.cloudfront.net · Web viewAs this application has been developed with the idea of reliability and security in mind, it is very important to test our application with

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