Professional Documents
Culture Documents
NoteBucket Project
1
Preface
The purpose of this document is to gather all documents for our project NoteBucket as a Final Report. This
documents contains Project Management Plan (PMP), Software Requirement Specification (SRS), Software
Design Document (SDD) and Software Test Document (STD)
2
Contents
Document History ......................................................................................................................................... 1
Preface........................................................................................................................................................... 2
1. Project Overview ....................................................................................................................................... 7
1.1 Project summary ................................................................................................................................. 7
1.1.1 Purpose, scope and objectives ..................................................................................................... 7
1.1.2 Assumptions and constraints ....................................................................................................... 7
1.1.3 Project Deliverables...................................................................................................................... 8
1.1.4 Schedule ....................................................................................................................................... 9
1.2 Evolution of the Plan ......................................................................................................................... 10
2. References ............................................................................................................................................... 10
3. Definitions ............................................................................................................................................... 10
4. Project Context ........................................................................................................................................ 11
4.1 Process Model ................................................................................................................................... 11
4.2 Process Improvement Plan ................................................................................................................ 12
4.3 Methods, Tools and Techniques ....................................................................................................... 12
4.4 Infrastructure Plan............................................................................................................................. 12
4.5 Product Acceptance Plan................................................................................................................... 12
4.6 Project Organization .......................................................................................................................... 12
5. Project Planning....................................................................................................................................... 12
5.1 Project Initiation ................................................................................................................................ 12
5.1.1 Estimation Plan ........................................................................................................................... 12
5.1.2 Staffing Plan ................................................................................................................................ 12
5.1.3 Resource Acquisition Plan .......................................................................................................... 13
5.1.4 Project Staff Training Plan .......................................................................................................... 13
5.2 Project Work Plans ............................................................................................................................ 13
5.2.1 Work Activities ........................................................................................................................... 13
5.2.2 Schedule Allocation .................................................................................................................... 13
5.2.3 Resource Allocation .................................................................................................................... 13
5.2.4 Budget Allocation ....................................................................................................................... 13
5.2.5 Procurement Plan ....................................................................................................................... 13
6. Project Assessment and Control ............................................................................................................. 13
6.1 Requirements Management Plan...................................................................................................... 13
3
6.2 Scope Control Plan ............................................................................................................................ 13
6.3 Schedule Control Plan ....................................................................................................................... 14
6.4 Budget Control Plan........................................................................................................................... 14
6.5 Quality Assurance Plan ...................................................................................................................... 14
6.6 Subcontractor Management Plan ..................................................................................................... 14
6.7 Project Closeout Plan ........................................................................................................................ 14
7. Product Delivery ...................................................................................................................................... 14
8. Supporting Process Plans ........................................................................................................................ 14
8.1 Project Supervision and Work Environment ..................................................................................... 14
8.2 Decision Management....................................................................................................................... 14
8.3 Risk Management .............................................................................................................................. 15
8.4 Configuration Management .............................................................................................................. 15
8.5 Information Management ................................................................................................................. 15
8.5.1 Documentation........................................................................................................................... 15
8.5.2 Communication and Publicity .................................................................................................... 15
8.6 Quality Assurance .............................................................................................................................. 15
8.7 Measurement .................................................................................................................................... 15
8.8 Reviews and Audits ........................................................................................................................... 16
8.9 Verification and Validation ................................................................................................................ 16
9. SRS Overview ........................................................................................................................................... 18
9.1 Product Perspective .......................................................................................................................... 18
9.2 Product functions .............................................................................................................................. 18
9.2.1 Create new note ......................................................................................................................... 18
9.2.2 Delete note ................................................................................................................................. 18
9.2.3 Send note.................................................................................................................................... 18
9.2.4 Edit note ..................................................................................................................................... 18
9.3 User Characteristics ........................................................................................................................... 19
9.4 Limitations ......................................................................................................................................... 19
9.5 Assumptions and Dependencies ....................................................................................................... 19
9.6 Apportioning of Requirements .......................................................................................................... 20
10. Requirements ........................................................................................................................................ 20
10.1 External Interface Interfaces ........................................................................................................... 20
10.2 Functions ......................................................................................................................................... 20
4
10.3 Usability Requirements ................................................................................................................... 21
10.4 Performance requirements ............................................................................................................. 21
10.5 Logical Database Requirements ...................................................................................................... 22
10.6 Software system attributes ............................................................................................................. 22
10.7 Other Requirements ........................................................................................................................ 22
11. Verification ............................................................................................................................................ 23
12. Use Case ................................................................................................................................................ 24
12.1 Use Case descriptions and Sequence Diagrams .................................................................................. 25
13. Class Diagram ........................................................................................................................................ 32
14. Design Introduction ............................................................................................................................... 33
14.1 Purpose............................................................................................................................................ 33
14.2 Scope ............................................................................................................................................... 34
14.3 Definitions ....................................................................................................................................... 34
14.4 Context ............................................................................................................................................ 35
14.5 Summary.......................................................................................................................................... 36
15. References: ............................................................................................................................................ 36
16. Design Viewpoints ................................................................................................................................. 37
16.1 Context Viewpoints ......................................................................................................................... 37
16.1.1 Use Cases .................................................................................................................................. 37
16.2 Composition Viewpoint ................................................................................................................... 44
16.3 Logical Viewpoint ............................................................................................................................ 45
16.4 Patterns Viewpoint .......................................................................................................................... 47
16.5 Interface Viewpoint ......................................................................................................................... 48
16.6 Interaction Viewpoint...................................................................................................................... 49
17. Introduction ........................................................................................................................................... 55
17.1 Scope ............................................................................................................................................... 55
17.2 References ....................................................................................................................................... 55
18. Plan Context .......................................................................................................................................... 56
18.1 Project ............................................................................................................................................. 56
18.2 Test Items ........................................................................................................................................ 58
19. Test Strategy .......................................................................................................................................... 59
19.1 Test Sub-processes .......................................................................................................................... 59
19.2 Test Deliverables ............................................................................................................................. 59
5
19.2 Test design Techniques ................................................................................................................... 59
19.3 Test Completion Criteria ................................................................................................................. 59
20. Test Design Specification ....................................................................................................................... 60
21. Test Case Specification .......................................................................................................................... 61
22. Test Data Requirements ....................................................................................................................... 64
23. Test Environment Requirements........................................................................................................... 64
24. Test Completion Report ........................................................................................................................ 65
6
1. Project Overview
1.1 Project summary
1.1.1 Purpose, scope and objectives
Note-Bucket is a platform for users to keep their notes on the cloud and share them with other
registered users in the system. The user can take notes as text, voice and create reminder for
specific events. The purpose of this project is to help users to keep all their notes in a cloud based
environment so that they can access them from anywhere. The user can edit, delete, read existing
notes and create new notes. If a note has a reminder function set up beforehand, the system shall
inform the user about it.
With this project, we aim to help people keep on top of their to-do more efficiently and organize
their daily/weekly etc. activities better.
1.1.2 Assumptions and constraints
The project will both be a web application and an android application. The technologies
to be used are Java, Spring Framework, ElasticSearch, RESTfull API and Maven in Server
side
HTML5, JS, CSS, Flash, RESTfull API and Maven in client side to implement the project.
Then, PhoneGap will be used to port our web client for mobile applications.
Testing will done using Selenium Framework for java and Selenium Web Driver for
automated testing.
The project will be open source. Github will be used both to make teamwork easier and
to match to the evolving software development trends.
The end product will be delivered in 13.07.2016 making the whole project lifecycle 3.5
months (not including maintenance).
Free trial cloud services will be used thus, it is assumed that the budget will be close to
non-existent or none at all.
Since NoSql is not optimal for relational data handling, MySQL will be used for storing user
related information. For other information handling, NoSql Will be used
Since PhoneGap will be used, the mobile application will not be native thus, complex
animations will not be used to make the front end performance effective.
7
1.1.3 Project Deliverables
Table 1 Deliverables
8
1.1.4 Schedule
Weekly Schedule
9
1.2 Evolution of the Plan
The plan shall go through internal review and internal acceptance steps, after that, it shall be
presented to the Stakeholders for approval. If there is any change (update) request, the PMP shall
be reviewed and changed accordingly and shall be subjected to internal review and internal
acceptance steps again. This cycle will continue until all stakeholders approves the PMP. All these
steps shall be documented according to the configuration plan
2. References
3. Definitions
Name Definitions
10
Waterfall The waterfall model is a sequential design process, used in software development
processes
Table 4 Definitions
4. Project Context
4.1 Process Model
Project life cycle model has been determined according to the corporate Life Cycle Processes document
and Waterfall Model has been selected as life cycle for NoteBucket project. Milestones and baselines are
determined as for work product publish and approval at the end of each phases.
Figure 1 Waterfall
11
4.2 Process Improvement Plan
There is no process improvement plan that would be conducted for this project.
5. Project Planning
5.1 Project Initiation
5.1.1 Estimation Plan
The cost of the project will be 16 man-months. There is no other cost or budget planning for the
project. Schedule is very strict and shown in the Gantt chart. To satisfy the necessary schedule
milestones, each week there will be a weekly progress meeting between project members. In
these meetings progress will be discussed and how to improve the process will be defined.
12
5.1.3 Resource Acquisition Plan
The release activities are specified in the Gantt chart.
13
6.3 Schedule Control Plan
Every member shall be responsible for fallowing the schedule described in Gantt chart. The
conformance to the schedule shall be checked biweekly to assure that the team is on schedule.
In case of derivations from the plan, all stakeholders will be informed and weekly Development
sprints shall be conducted by the development team to get the schedule back on track.
7. Product Delivery
Below can be seen the delivery lists:
For the delivery, the plan is shown in the Gantt chart. To deliver each report, demonstrations and other
documents waterfall approach will be used as mentioned above. In each phases of the project a delivery
will be done with cooperative work among the project members.
Necessary hardware and software described in 3.3 Methods, Tools, and Techniques will be provided to the
team members.
14
8.3 Risk Management
Initially anticipated risks with high priority rate are listed in Table 6 Risk List. This list will be updated
throughout the project.
Requirements
Function Points
Test cases
Verification and validation processes
8.7 Measurement
Git, UML modeling tools (Star UML) and Function Points will be the guides for measurements.
Requirements will be the base for measurement of the final product.
15
8.8 Reviews and Audits
Feedback, review of our instructor will maintain our projects faults and we will be correcting these
drawbacks.
16
Figure 2 Gantt
17
9. SRS Overview
9.1 Product Perspective
The product is shall be an open source, under the GNU general Public License. It is a web based
system implementing client-server model. The NoteBucket application provides simple
mechanism for users to save and share their daily notes and reminders.
User interfaces will be implemented as html pages and also since NoteBucket will support Android
Devices, there will be an .apk Android application.
Google Cloud Services will be used as web service provider. Facebook API - OAuth will be used as
external services to enable users to login with Facebook accounts.
NoteBucket is multiple user environment so the server will have multi-core processor and at least
6 GB ram needed. There will be both relational database for user credentials and stored
document links, also there will be a NoSQL Database for text base input storage.
18
9.3 User Characteristics
The application shall be used by users who have at least passing knowledge about using
computers i.e. Novice and upper level users. Thus, the application shall not be aiming to teach
how to use a device; rather it will try to make users understand the note taking, sharing etc. and
accessing them through cloud. Other than this, the application shall appeal to anyone who knows
how to use a device that is connected to internet.
9.4 Limitations
Regular limitations of a Cloud application such as data security and network connection reliability
naturally applies to our project. In addition to these, complex animations will be limited in number
since we will be auto porting our web client to mobile.
Data security is a crucial part of the project because of 2 reasons. First one is that users will have
to sign up using their personal info (such as e-mail address, Facebook account etc.) and the second
reason is that users may take notes that includes personal data or something they do not want to
be publicized. The clients data can be susceptible to hacking or phishing attacks. Since the servers
on cloud are interconnected it is easy for malware to spread further to other clients.
Another limitations is that we cannot assume that the user has a reliable network connection that
can handle big data transfers on high speed. Because of this, most of our data transfers are text
based like text notes and reminders. The only exception to this is that the user can take voice
based notes (voice recordings).
The last limitation is about animations on the client side. We are planning to have both a web
client and a mobile client. In order to achieve this we will first create our web client and then port
it to mobile using PhoneGap. While PhoneGap is an effective way to make the product delivery
faster, it also has trouble converting web based animations to mobile animations.
19
The end product will be delivered in 13.07.2016 making the whole project lifecycle 3.5
months (not including maintenance).
Free trial cloud services will be used thus, it is assumed that the budget will be close to
non-existent or none at all.
Since NoSql is not optimal for relational data handling, MySQL will be used for storing user
related information. For other information handling, NoSql Will be used
Since PhoneGap will be used, the mobile application will not be native thus, complex
animations will not be used to make the front end performance effective.
10. Requirements
10.1 External Interface Interfaces
Google Cloud Platform will be used as web service provider. It provides the building blocks to
quickly develop everything from simple websites to complex applications. All MySQL and NoSql
queries and services will go through it
10.2 Functions
1. The software shall authenticate user login info upon entrance
2. The software shall take data (text, voice etc.) from the user and process it for a saving action
3. The software shall send data to be saved to the server as JSON object
4. The software shall take data (text, voice etc.) from the user and process it for an editing action
5. The software shall send data to be edited to the server as JSON object
6. The software shall only take a request and Note ID from the user and process it for a deleting
action
7. The software shall send delete request and Note ID to the server as JSON object
8. The software shall take data (text, voice etc.) from the user and process it for a sharing action
9. The software shall send share request and Note ID data to be shared to the server as JSON
object
10. The software shall give error feedback to the user in case of save, edit, delete or share error
occurs
11. The software shall give feedback to the user upon the success and fail of each operation
12. The server shall process any input JSON according to its operation type, data type and user
13. The software shall give reminder notifications if the reminder option is selected for any note
20
10.3 Usability Requirements
The interfaces shall be consistent throughout the application such as having same and clear image
buttons for all buttons. Tutorial for new users shall be offered to improve the learnability by
decreasing the time of learning. Feedback for user actions (such as deleting a note or adding a
note or error handling) shall be implemented to ensure a smoother usage of the application by
all users.
The application shall be designed with minimalistic design in mind to improve its attractiveness
and its chance to be used again by the users.
21
10.5 Logical Database Requirements
22
Privacy and Security
Every user shall only access their own and the files sent to them by other users. There shall be no
public data that everyone can access. With this, the aim is to make sure the private information
of the users is kept save and secure
Scalability
A NoSql database shall be used to ensure the application to scale regardless of the number of
users. To ensure
Extensibility
The application shall be designed with future expansions in mind. It shall be designed modular
enough to allow future changes with minimal internal structural changes or optimally, none at all.
11. Verification
All requirements shall be subjected to unit and integration testing to qualify the software. In addition to
that, performance and system requirements shall be tested with a prototype of the application.
23
12. Use Case
24
12.1 Use Case descriptions and Sequence Diagrams
Use Case ID 1
Description User logs in to the NoteBucket to create and share his/her notes.
Preconditions User is defined in NoteBucket: user exists in the system with a valid
username and password.
Exceptions 3a. If the username and/or password entered by the user is/are
not valid:
25
Login Sequence Diagram
Use Case ID 2
Preconditions User is defined in NoteBucket: user exists in the system with a valid
username and password.
Alternative Flow 3.a. User clicks Cancel button to cancel for creating a text note.
26
Crete text note Sequence Diagram
Use Case ID 4
Preconditions User is defined in NoteBucket: user exists in the system with a valid
username and password.
Alternative Flow 3.a. User clicks Cancel button to cancel for creating an image
note.
27
Create Image note Sequence Diagram
Use Case ID 5
Preconditions User is defined in NoteBucket: user exists in the system with a valid
username and password.
Normal Flow 1. User selects Reminder option to add reminder to the current
note.
2. User selects the date that he/she will be reminded at that date.
3. User clicks Save button to add the reminder to the current
note.
Alternative Flow 3.a. User clicks Cancel button to cancel for adding reminder.
28
Add Reminder Sequence Diagram
Use Case ID 6
Preconditions User is defined in NoteBucket: user exists in the system with a valid
username and password.
Alternative Flow 3.a. User clicks Cancel button to cancel for editing a text note.
29
Edit Note Sequence Diagram
Use Case ID 7
Preconditions User is defined in NoteBucket: user exists in the system with a valid
username and password.
30
Remove Note Sequence Diagram
31
13. Class Diagram
32
14. Design Introduction
The document follows the IEEE STD 10162009, IEEE Standard for Information Technology Systems
Design Software Design Description.
The development and maintenance of NoteBucket are provided at this document. The design Viewpoints
are stated in detail at this document. This document is helpful for acquirers, project managers, quality
assurance staff, configuration managers, software designers, programmers, testers and maintainers. It is
important to meet unique requirements of these stakeholders.
14.1 Purpose
This document is for acquirers, project managers, quality assurance staff, configuration managers,
software designers, programmers, testers and maintainers:
Acquirers use this document to check their design requirements are met.
Project manager uses this document to control the dynamics of development activities according
to the plans
Quality assurance staff use this document to check the development activities according to the
quality plans
Configuration manager use this document to check development activities for different
configurations
Software designers serve this document for stakeholders
Programmer use this document to implement the system
Testers use this document to prepare test plans and documents
Maintainers use this document to maintain system according to the changing needs after the
delivery of the system
33
14.2 Scope
This document is restricted according to IEEE Std 10162009, IEEE Standard for Information Technology
Systems Design Software Design Description. In this document the following design viewpoints are used
to describe the system:
Whole structure of the design is explained by providing UML diagrams particularly. These diagrams are
prepared in detail to show the key aspects of design decisions.
14.3 Definitions
Definitions for the terms, acronyms and abbreviations are presented in this section.
Star UML: is a UML tool by MKLab. The software was licensed under a modified version of GNU
GPL until 2014, when a rewritten version 2.0.0 was released for beta testing under a proprietary
license.
Java EE: is a widely used enterprise computing platform developed under the Java Community
Process. The platform provides an API and runtime environment for developing and running
enterprise software, including network and web services, and other largescale, multi-tiered,
scalable, reliable, and secure network applications. Java EE extends the Java Platform, Standard
Edition (Java SE),[1] providing an API for object relational mapping, distributed and multitier
architectures, and web services. The platform incorporates a design based largely on modular
components running on an application server.
Software for Java EE is primarily developed in the Java programming language. The platform
emphasizes convention over configuration [2] and annotations for configuration. Optionally XML
can be used to override annotations or to deviate from the platform defaults.
Spring Framework: is an application framework and inversion of control container for the Java
platform. The framework's core features can be used by any Java application, but there are
extensions for building web applications on top of the Java EE platform. Although the framework
34
does not impose any specific programming model, it has become popular in the Java community
as an alternative to, replacement for, or even addition to the Enterprise JavaBeans (EJB) model.
The Spring Framework is open source.
Cloud Computing: is a kind of Internet based computing that provides shared processing resources
and data to computers and other devices on demand. It is a model for enabling ubiquitous, on
demand access to a shared pool of configurable computing resources (e.g., networks, servers,
storage, applications and services),[1][2] which can be rapidly provisioned and released with
minimal management effort. Cloud computing and storage solutions provide users and enterprises
with various capabilities to store and process their data in third-party data centers.[3] It relies on
sharing of resources to achieve coherence and economy of scale, similar to a utility (like the
electricity grid) over a network.
MySQL: is an open source relational database management system (RDBMS).[6] In July 2013, it
was the world's second most[a] widely used RDBMS, and the most widely used open source client
server model RDBMS.[9] It is named after Michael Widenius' (who is a cofounder of MySQL)
daughter, My, [10] While "SQL" stands as the abbreviation for Structured Query Language. The
MySQL development project has made its source code available under the terms of the GNU
General Public License, as well as under a variety of proprietary agreements. MySQL was owned
and sponsored by a single for-profit firm, the Swedish company MySQL AB, now owned by Oracle
Corporation.[11] For proprietary use, several paid editions are available, and offer additional
functionality.
Google Cloud Datastore: Cloud Datastore is a highly-scalable NoSQL database for your
applications. Cloud Datastore automatically handles sharding and replication, providing you with
a highly available and durable database that scales automatically to handle your applications' load.
Cloud Datastore provides a myriad of capabilities such as ACID transactions, SQL-like queries,
indexes and much more.
14.4 Context
In this document, composition, logical, interface and interaction viewpoints are provided according to 1.1.
Purpose Section. The tools that used to display these viewpoints are listed at below:
35
14.5 Summary
In section 1 introduction to SDD, design purpose, scope and context of the design are provided. Section 1
gives an introduction to the reader, section 1.1 expresses the responsibilities and duty of stakeholders,
section 1.2 provides the viewpoints for design, section 1.3 explains the terms and abbreviations and finally
section 1.4 gives an abstract understanding about the design according to the requirements.
15. References:
1. https://en.wikipedia.org/wiki/Unified_Modeling_Language
2. https://en.wikipedia.org/wiki/StarUML
3. https://en.wikipedia.org/wiki/Java_Platform,_Enterprise_Edition
4. https://en.wikipedia.org/wiki/Spring_Framework
5. https://en.wikipedia.org/wiki/Cloud_computing
6. https://en.wikipedia.org/wiki/MySQL
7. https://cloud.google.com/datastore
36
16. Design Viewpoints
16.1 Context Viewpoints
The Context viewpoint describes services provided by a design subject, relationships and dependencies in
the software development environment. The Context viewpoint is a way of representing the system as a
black box, users, stakeholders and their interaction are represented. Context diagram is shown below:
37
The detailed explanation of the user case's scenarios are provided from the following tables:
Use Case ID 1
Description User logs in to the NoteBucket to create and share his/her notes.
Preconditions User is defined in NoteBucket: user exists in the system with a valid
username and password.
Exceptions 3a. If the username and/or password entered by the user is/are
not valid:
38
Use Case ID 2
Preconditions User is defined in NoteBucket: user exists in the system with a valid
username and password.
Alternative Flow 3.a. User clicks Cancel button to cancel for creating a text note.
39
Use Case ID 4
Preconditions User is defined in NoteBucket: user exists in the system with a valid
username and password.
Alternative Flow 3.a. User clicks Cancel button to cancel for creating an image
note.
40
Use Case ID 5
Preconditions User is defined in NoteBucket: user exists in the system with a valid
username and password.
Normal Flow 4. User selects Reminder option to add reminder to the current
note.
5. User selects the date that he/she will be reminded at that date.
6. User clicks Save button to add the reminder to the current
note.
Alternative Flow 3.a. User clicks Cancel button to cancel for adding reminder.
41
Use Case ID 6
Preconditions User is defined in NoteBucket: user exists in the system with a valid
username and password.
Alternative Flow 3.a. User clicks Cancel button to cancel for editing a text note.
42
Use Case ID 7
Preconditions User is defined in NoteBucket: user exists in the system with a valid
username and password.
43
16.2 Composition Viewpoint
For this Viewpoint, we chose to use UML Component Diagram. The diagram below allows us to view the
bigger picture of the system by reducing complexity and giving us a more abstract view of the system. A
note for the reader; the Note Ops lollipop interface denotes multiple different operations the user can
perform on the notes
44
16.3 Logical Viewpoint
The relationship between the server-side system classes are shown in this viewpoint to elaborate designed
types and their implementations. This relationship is shown as a UML Class Diagram below.
As can be seen from the class diagram above, server side classes are separated into two main packages
called Account and Note. Account represents the user accounts and Note represents all types of Note
entities that will be created through the system's lifetime.
45
HomeController:
The main controller of the server side is the HomeController class that is aggregated with the
AccountController. Home controller has a constructor and an index method for directing service URLs to
appropriate classes.
AccountController:
AccountController is the class for controlling user account requests. It has two methods, currentAccount
and account, the former returns the current user's Account object, the latter returns the Account of the
requested user.
Account:
The account class is the main representative of the users' accounts. It has all the needed account
properties of the user with their getters and setters. The Account class is associated with the
AccountController and AccountService classes.
AccountService:
This class will be used to serve the main account operations requested by the user. These operations are
currently limited with signing in and saving the account properties of the user, which are operated with
the methods named respectively.
AccountModel:
This class is the model that will be used with the database operations. The properties listed as username,
mail and password will also be used as relational database columns.
Note:
The Note class is the main representative class for note entities. With its basic properties for defining a
note entity, it also has a shareNote method for sharing a note with a specified user account. This class is
associated with the NoteService and NoteController classes which are described below.
NoteController:
This class is used as the controller class for sending and actually showing the note entity to the user.
NoteService:
The NoteService class is the main service provider for the requested note related tasks. Saving, editing and
deleting note objects are carried out with this service class.
NoteModel:
NoteModel is an abstract base class that will be used with the database operations. With its basic
properties for identifying a note, it also has a method called saveNote for saving the requested note in the
database. It has three children TextNoteModel, VoiceNoteModel and ImageNoteModel which will be
expanded later on.
46
16.4 Patterns Viewpoint
This viewpoint addresses design ideas (emergent concepts) as collaboration patterns involving abstracted
roles and connectors. In NoteBucket MVC architectural pattern.
Model - The lowest level of the pattern which is responsible for maintaining data.
View - This is responsible for displaying all or a portion of the data to the user.
Controller - Software Code that controls the interactions between the Model and View.
47
16.5 Interface Viewpoint
With this Viewpoint we aimed to provide a complete documentation of the internal and external interfaces
used in the system. The Diagram below is created using UML Component Diagram to give all stakeholders
that take part in the development and testing phases of the project
48
16.6 Interaction Viewpoint
Interaction between key parts of the system are shown in this viewpoint with sequence diagrams. The
sequence diagrams discussed below are linked to the Use Case descriptions analyzed in the Context
Viewpoints in section 3.1. Although the flow of interaction and the data passed between the class
representatives are self-explanatory, the steps in the diagrams are described thoroughly below.
1: When user wants to login to the system the login method of the: Display class is called.
49
Create Text Note Sequence Diagram:
1.4: The: Display class sends the encodedNote object to the: ServerConnector class.
1.4.1: The: ServerConnector class sends the encodedNote object to the: Controller class located at the
server side.
50
Create Image Note Sequence Diagram:
1.4: The: Display class sends the encodedNote object to the: ServerConnector class.
1.4.1: The: ServerConnector class sends the encodedNote object to the: Controller class located at the
server side.
51
Add Reminder Sequence Diagram:
1: User selects the note from the list of notes by calling the selectNote method of the: Display class.
1.3: The: Display class sends the encodedReminder object to the: ServerConnector class.
1.3.1: The: ServerConnector class sends the encodedReminder object to the: Controller class located
at the server side.
52
Edit Note Sequence Diagram:
1: User selects a note for editing from the list of notes by calling the editNote method of the: Display
class.
1.1: When editing completes, the note is sent to the: JSONHelper class for JSON string encoding.
1.3: The: Display class sends the encodedNote object to the: ServerConnector class.
1.3.1: The: ServerConnector class sends the encodedNote object to the: Controller class located at the
server side.
53
Remove Note Sequence Diagram:
1: User selects a note for removal from the list of notes by calling the removeNote method of the
:Display class.
1.1: The information of the note to be removed is sent to the: JSONHelper class for JSON string
encoding.
1.3: The: Display class sends the encodedNote object to the: ServerConnector class.
1.3.1: The: ServerConnector class sends the encodedNote object to the: Controller class located at the
server side.
54
17. Introduction
17.1 Scope
This document aims to describe the testing process plan of NoteBucket in detail. The processes detailed
in this document shall be used verbatim during testing phase.
17.2 References
ISO/IEC/IEEE 29119
NoteBucket Software Project Management Plan Document
NoteBucket Software Requirement Specification Document
NoteBucket Software Design Description Document
55
18. Plan Context
18.1 Project
Note-Bucket is a platform for users to keep their notes on the cloud and share them with other registered
users in the system. The user can take notes as text, voice and create reminder for specific events. The
purpose of this project is to help users to keep all their notes in a cloud based environment so that they
can access them from anywhere. The user can edit, delete, read existing notes and create new notes. If a
note has a reminder function set up beforehand, the system shall inform the user about it.
With this project, we aim to help people keep on top of their to-do more efficiently and organize their
daily/weekly etc. activities better.
Main use case diagram below is the basis for our testing of the software
56
The Context view of the NoteBucket is as fallows
57
The software modules of the system is as follows:
Cloud Module: the backend of the system. Runs on Google App Engine
Client Module: the frontend of the system. Implemented using HTML, CSS and JS
58
19. Test Strategy
59
20. Test Design Specification
60
7. Feature Set (FS3): Remove note
Test Case 1 1 test if an existing user will try to register to the system
61
Test Case ID: 13
Priority: Medium
Purpose: To test if user enters invalid input in registration
form.
Preconditions: User must not be registered to the system and
enter invalid input data.
Input: User credentials including; username, email,
password, name and surname.
Expected Result: The system shows valid input expression format
to user. User is not registered to the system until
input field filled in correctly.
62
Test Case ID: 31
Priority: High
Purpose: To test creating a text note.
Preconditions: User must be registered and logged in.
Input: Enter a text note and click Share button.
Expected Result: Entered text note is created on the cloud
environment.
63
Test Case ID: 71
Priority: Medium
Purpose: To test removing a note.
Preconditions: User must be registered and logged in.
Input: Select the note which will be removed. Click
Remove button.
Expected Result: Selected text note is removed on the cloud
environment.
System is published to Google App Engine. Test data will include user and note information. Notes will be
populated by beta users and it will be used as test data. For generating note data, administrator of the
system will add notes to system to be tests by users.
Hardware
Windows machines will be used for the testing. Every team member (developer) is responsible for
setting the testing environment for their own PC.
Software
Every team member will have Intellij IDEA 2016 1.1 configured on their PCs and Git is used for
communication and revision control of the software. Additionally, Google Datastore and SQL server are
used for database management.
64
24. Test Completion Report
Testing performed:
All functional test procedures are executed with failures in User registration (High severity) and minor
failures Editing Text Note.
65