rdcr arb - university of southern california€™s roles and responsibility member name role...

78
RDCR ARB CS 577B Team 1 PicShare

Upload: dokhuong

Post on 14-May-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

RDCR ARBCS 577B Team 1 PicShare

Page 2: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Outline- Project & Team Evaluation- Operational Concept Description (OCD)- Architecture & Designs- Prototype Progress- Parse

- Parse Alternatives- Parse Open Source Server Code

- Life Cycle Plan (LCP)- Project plan, Team roles & responsibilities

- Test Plan- Test Schedule, Test Cases

- Feasibility Evidence- Traceability Matrix, Risk Analysis, Metrics- Technical Debt, Definition of Done

Page 3: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Project & Team Evaluation

Page 4: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Project & Team - OperationalStuff we’re knocking out of the park

● Process!● Tools● Communication● Documentation

Stuff we’re still working on

● Peer reviews● Group work meetings

○ NOT Hackathons!!!

Page 5: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Project & Team - TechnicalStuff we’re knocking out of the park

● Steady development progress● Flexibility

Stuff we’re still working on

● Spinning (back) up on iOS● Functional demos during sprint

meetings● How best to coordinate testing

Page 6: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Operational Concept Description (OCD)

Page 7: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Program ModelAssumptions:

● People desire to share photos● People are interested in what is happening around them● People are dissatisfied with existing means of sharing photos

Stakeholders Initiatives Value Propositions Beneficiaries

● Developers

● Client

● Maintainers

● Users

● Design and develop system● Marketing● Maintenance● Documentation, training and

knowledge transfer● Using the app to share photos

● To increase efficiency of photo sharing

● To allow users to share photos through private and public events as well as their current location

● To improve user experience in photo sharing

● To promote sharing of photos

● Users (Tech-

savvy people

aged 18-45)

Costs Benefits

● Development costs● Maintenance costs● Server costs● COTS costs

● Revenue

● Increase number of users

Page 8: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Architecture & Designs

Page 9: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

High Level Architecture

- iOS Native Client Mobile App- Backend Server to host photos and events- Admin tool to manage photos and events

Page 10: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;
Page 11: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Login/Sign up

Page 12: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Profile

Page 13: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Upload photo to location

Page 14: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Search photos by location

Page 15: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Create Event

Page 16: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Prototype Progress

Page 17: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Prototype Progress

Features Implemented

- Account Registration/Login- Upload Account Profile Photo- Upload Photo to Location- Browse Photos by Location- Create Public/Private Event

Page 18: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Parse

Page 19: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Moving on from Parse

● Parse’s hosted services will be fully retired on January 28, 2017● Possible options

➔ Migrate to another back-end provider which is similar to Parse1. Appcelerator Arrow2. Backendless Cloud

➔ Build a custom back-end using open source Parse Server code

Page 20: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Parse Alternatives

● Pros:➔ Does not need to develop custom back-end➔ Reduces the risk of scalability issues as the usage of PicShare

increases➔ Less server maintenance required

● Cons:➔ Most of the existing mobile app code has to be rewritten➔ Any back-end provider may end services just like Parse.

Page 21: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Appcelerator Arrow

● Founded in 2006 and recently acquired by Axway● Two key parts: Arrow Builder and Arrow Cloud● Arrow Builder

➔ Framework for building APIs ● Arrow Cloud

➔ Includes the schema-less datastore (ArrowDB) and full MBaaS capabilities (like Parse)

Page 22: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Pricing (Appcelerator Arrow)

Indie ($39/month) - Single Seat Team ($259/seat/month)

ArrowDB only Arrow Builder and Arrow Cloud (includes ArrowDB)

1 million monthly API calls 10 million monthly API calls

5 GB file storage 10 GB

1 million monthly push notifications 10 million monthly push notifications

1 developer on the team 1 developer per seat

No containers 4 containers per seat

Page 23: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Backendless Cloud

● Founded in 2012 and self-funded● Highly similar to Parse

➔ Data Storage➔ File Hosting➔ GeoPoints➔ Users/Roles/Access Control List (ACL)➔ Push Notifications➔ Cloud Code (Server-Side Code)

● Allows import of Parse data objects into Backendless

Page 24: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Pricing (Backendless Cloud)

Free Limit Extension (Function Pack) Extension Price

50 API calls/sec additional 10 API calls/sec $50/month

20 GB file storage additional 20 GB $1/month

1 million push notifications additional 100,000 push notifications

$10/month

1 developer on the team unlimited team size $10/month

Management only via Console

Management REST API $5/month

Page 25: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Open Source Parse Server

Introduction

Open source Parse server is the implement code of Parse backend service. It is based on Express framework and contains almost all the function of Parse service.

Page 26: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Open Source Parse Server Solution

Necessary Components

- Parse Server Code

- Node.js, Express

- MongoDB

Other Components

- Plugins to implement complete cloud functionality

Page 27: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Open Source Parse Server Solution

Solution 1:

Infrastructure: AWS(or other similar cloud service)

Process:

1. Build a virtual machine(S2 service in AWS)2. Deploy Node.js, Express Framework, MongoDB3. Deploy Parser server code4. Deploy App backend code and connect Mobile end code5. Hook Parser server to MongoDB

Page 28: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Open Source Parse Server Solution

Solution 2:

Infrastructure: Heroku, MongoLab

Process:

1. Create accounts in Heroku and MongoLab2. Create an Express App in Heroku and deploy Parse server3. Create a MongoDB instance on MongoLab4. Deploy App backend code and connect Mobile end code5. Hook Parser server to MongoLab

Page 29: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Open Source Parse Server SolutionAspects Solution 1 Solution 2

Work Build all native framework Learn how to use Heroku and MongoLab

Build Complexity Handle all native details Cloud service handles all platform things

Free VersionStudent free account MongoLab Free 500MB

Heroku 500RAM, Sleep 6 hours per 24hour running

Pricing(basic option)

Only based on AWS pricing100$/mon (performance similar to right )

MongoLab 40$ / Mon Heroku 25$ / standard node per Mon

Performance Based on software architecture and Server hardware

Dynamic increasing

Page 30: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Life Cycle Plan (LCP)

Page 31: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Life Cycle Plan (LCP)

- Project Plan- iOS Mobile App- Backend/Admin- Testing- Milestones

- Team Roles and Responsibilities

Page 32: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

iOS Mobile App

Page 33: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Backend/Admin

Page 34: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Testing

Page 35: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Milestones

Page 36: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Team’s Roles and ResponsibilityMember Name Role Responsibility

Logan Chang Team manager and IOS developer

Managing project; System integration; Develop iOS mobile client app

Andy Chua Backend developer Develop backend solution and admin tool.

Haihao Lu Backend developer Researching and developing backend solution and admin tool.

Jiashun Zhou IOS developer Develop iOS mobile client app.

Weili Zhang Backend developer Develop backend solution and admin tool.

Yao Wang IOS developer Develop iOS mobile client app.

Yunwei Yuan IOS developer Develop iOS mobile client app.

Nick Funk Backend developer, QFP Develop backend solution and admin tool.

Joseph Mouawad Backend developer Develop backend solution and admin tool.

Page 37: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Test Plan

Page 38: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Testing Overview79 Individual Tests across 14 Test Cases

42 nominal, 37 off-nominal

100% Requirements Coverage

100% Use Case Coverage

Full traceability between testing, requirements, and use cases

Page 39: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Test Cases● TC-08: Create Account

● TC-13: Account Login and Logout

● TC-12: Take Photo with Device Camera

● TC-03: Upload Photo to Location

● TC-02: Search by Location

● TC-01: Create Event

● TC-09: Search for Event

● TC-10: Join Event

● TC-11: Upload Photo to Event

● TC-05: Download Photo for Event

● TC-04: Delete Uploaded Photo

● TC-06: User Interface Actions

● TC-07: Administrator Photo Management

● TC-14: Automated System Functions

Page 40: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Testing ScheduleDate Test Identifier Personnel Required Resources Status

11 Jan - 29 Jan Scan all test cases, familiarize with technical Requirements Tester TPC, Requirements Traceability COMPLETE

16 Feb - 22 Feb [TC-08] Create Account Tester TPC

16 Feb - 22 Feb [TC-13] Account Login and Logout Tester TPC

23 Feb - 29 Feb [TC-12] Taking Photos with Device Camera Tester TPC, Physical iOS Device

23 Feb - 29 Feb [TC-03] Upload Photos to Current Location Tester TPC

23 Feb - 29 Feb [TC-02] Search for Photo by Location Tester TPC

1 Mar - 7 Mar [TC-01] Create Event Tester TPC

1 Mar - 7 Mar [TC-11] Upload Photos for Event Tester TPC

8 Mar - 14 Mar [TC-09] Search for Event Tester TPC

8 Mar - 14 Mar [TC-10] Join an Event Tester TPC

15 Mar - 21 Mar [TC-05] Download Photos for Events Tester TPC

15 Mar - 21 Mar [TC-04] Delete Uploaded Photos Tester TPC

22 Mar - 28 Mar [TC-06] User Interface Interactions Tester TPC

TBD [TC-07] Administrator Photo Management Tester TPC

TBD [TC-14] Automatic System Functions Tester TPC

29 Mar - 25 Apr User TestingTester, Developers, Project Manager TPC, Requirements Traceability

Page 41: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

TC-08: Create AccountTest Level: Software Item

Test Class: Erroneous

Test Completion Criteria:

1. An account is created correctly2. The create profile screen is

displayed3. Profile photo can be applied4. Errors displayed as appropriate

7 Subtest Cases:TC-08-01: Check creating an account with correct informationTC-08-02: Check creating account with missing required field (off-nominal)TC-08-03: Check creating an account with email address or username that is already in use (off-nominal)TC-08-04: Check creating an account with username or password that does not meet requirements (off-nominal)TC-08-05: Check adding a photo to profile from camera deviceTC-08-06: Check removing a photo from profileTC-08-07: Check adding a photo from photo roll

Page 42: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

TC-13: Account Login and LogoutTest Level: Software Item

Test Class: Erroneous

Test Completion Criteria:

1. The user is able to login with valid username and correct password

2. The user is unable to login with valid username and incorrect password

3. The user is able to log out

10 Subtest Cases:TC-13-01: Check user able to login with valid username and correct passwordTC-13-02: Check user unable to login with valid username and incorrect password (off-nominal)TC-13-03: Check user unable to login with invalid username (off-nominal)TC-13-04: Check user able to log out of accountTC-14-05: Check user able to cancel log out of account (off-nominal)TC-14-06: Check administrator able to login with valid username and correct passwordTC-14-07: Check administrator unable to login with valid username and incorrect password (off-nominal)TC-14-08: Check administrator unable to login with invalid username (off-nominal)TC-14-09: Check administrator able to log out of accountTC-14-10: Check administrator able to cancel logout of account (off-nominal)

Page 43: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

TC-12: Take Photos with Device CameraTest Level: Software Item

Test Class: Erroneous

Test Completion Criteria:

1. The user is able to take a photo with the camera built into their device

2. Errors displayed as appropriate

4 Subtest Cases:TC-12-01: Check user able to take a photoTC-12-02: Check user able to retake a photoTC-12-03: Check user able to cancel taking a photoTC-12-04: Check user attempt to take photo while there is a camera error (off-nominal)

Page 44: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

TC-03: Upload Photo to User’s Current LocationTest Level: Software Item

Test Class: Erroneous

Test Completion Criteria:

1. A photo is tagged with location data and descriptive text

2. Photo and tag data are submitted to database

3. Uploaded photo may be viewed by browsing photos in current user location

4 Subtest Cases:TC-03-01: Choose a photo to uploadTC-03-02: Upload a photo with valid tag data and server connectivityTC-03-03: Upload a photo with invalid tag data (off-nominal)TC-03-04: Upload a photo with no server connectivity (off-nominal)

Page 45: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

TC-02: Search by LocationTest Level: Software Item / System

Test Class: Erroneous

Test Completion Criteria:

1. System queries test region and returns all photos within test region and no photos outside region

2. Errors displayed as appropriate

8 Subtest Cases:TC-02-01: Functional Sensor TestTC-02-02: Non-Functional Sensor Test (off-nominal)TC-02-03: Populated Location Query TestTC-02-04: Null-Result Location Query Test (off-nominal)TC-02-05: Valid Database Connection TestTC-02-06: Invalid Database Connection Test (off-nominal)TC-02-07: Non-connection Database Error Test (off-nominal)TC-02-08: Partial-Result Location Filter Test

Page 46: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

TC-01: Create EventTest Level: Software Item

Test Class: Erroneous

Test Completion Criteria:

1. System creates a public and private event

2. System displays newly created events on the event screen

3. Errors displayed as appropriate

7 Subtest Cases:TC-01-01: Check create public event with valid hashtag nameTC-01-02: Check create private event with valid hashtag name and passwordTC-01-03: Check create public event with invalid hashtag name (off-nominal)TC-01-04: Check create private event with invalid hashtag name (off-nominal)TC-01-05: Check create private event with invalid password (off-nominal)TC-01-06: Check create private event with no network connection (off-nominal)TC-01-07: Check create public event with already used hashtag name (off-nominal)

Page 47: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

TC-09: Search for EventTest Level: Software Item

Test Class: Erroneous, Timing

Test Completion Criteria:

1. System stops searching if user types in illegal search term

2. System returns search results within one second

3. Errors displayed as appropriate

3 Subtest Cases:TC-09-01: Check input search term legalityTC-09-02: Check server error statusTC-09-03: Test search response speed

Page 48: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

TC-10: Join EventTest Level: Software Item

Test Class: Erroneous

Test Completion Criteria:

1. User is able to join a public event2. User is able to join private event3. User prevented from joining private

events with incorrect credentials4. User is able to view joined events5. User is able to cancel joining event

5 Subtest Cases:TC-10-01: Check user able to join public eventTC-10-02: Check user able to join private event with correct passwordTC-10-03: Check user unable to join private event with incorrect password (off-nominal)TC-10-04: Check user able to cancel joining eventTC-10-05: Check user able to view joined events

Page 49: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

TC-11: Upload Photo to EventTest Level: Software Item

Test Class: Erroneous

Test Completion Criteria:

1. User is able to upload a photo to an event they have joined

2. Errors displayed as appropriate

5 Subtest Cases:TC-11-01: Check upload to event which user has joinedTC-11-02: Check upload to event which user has not joined (off-nominal)TC-11-03: Check upload to event when device has no network connection (off-nominal)TC-11-04: Check upload to event when database unavailable (off-nominal)TC-11-05: Check user cancels upload action (off-nominal)

Page 50: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

TC-05: Download Photo for EventTest Level: Software Item

Test Class: Erroneous

Test Completion Criteria:

1. User is able to download photos for an event

2. Errors displayed as appropriate

3 Subtest Cases:TC-05-01: Check downloading a photo when every part of the system works wellTC-05-02: Check downloading a photo with Internet interruption (off-nominal)TC-05-03: Check downloading a photo when local device is out of storage (off-nominal)

Page 51: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

TC-04: Delete Uploaded Photo Test Level: Software Item

Test Class: Erroneous

Test Completion Criteria:

1. User is able to delete photos for an event

2. Event owner able to delete photos tagged to their event

3. Errors displayed as appropriate

7 Subtest Cases:TC-04-01: Check deleting a photo when every part of the system works wellTC-04-02: Check deleting a photo without Internet access (off-nominal)TC-04-03: Check deleting a photo when server is unavailable (off-nominal)TC-04-04: Check event owner able to delete a photo uploaded to their eventTC-04-05: Check event owner able to cancel deleting a photo (off-nominal)TC-04-06: Check event owner deleting a photo without Internet access (off-nominal)TC-04-07: Check event owner deleting a photo when server is unavailable (off-nominal)

Page 52: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

TC-06: User Interface Interactions Test Level: Software Item

Test Class: Erroneous

Test Completion Criteria:

1. System displays navigation bar2. System receives user inputs on

navigation bar3. Navigation bar invokes correct

screens4. Events display remaining time in

correct format

4 Subtest Cases:TC-06-01: Check navigation bar displayTC-06-02: Check navigation bar input receiptTC-06-03: Check navigation invoke functionalityTC-06-04: Check event expiration countdown

Page 53: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

TC-07: Administrator Photo Management Test Level: Software Item

Test Class: Erroneous

Test Completion Criteria:

1. Searching by user and event returns correctly

2. Admin is able to delete photos3. Errors displayed as appropriate

9 Subtest Cases:TC-07-01: Check search for phto by user with legal nameTC-07-02: Check search for photo by user automaticallyTC-07-03: Check search for photo by user without Internet access (off-nominal)TC-07-04: Check search for photo by event hashtag with legal nameTC-07-05: Check search for photo by event hashtag automaticallyTC-07-06: Check search for photo by event hashtag without Internet access (off-nominal)TC-07-07: Check admin able to delete photoTC-07-08: Check admin able to cancel photo deletion (off-nominal)TC-07-09: Check admin not able to delete photo during connection error (off-nominal)

Page 54: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

TC-14: Automated System Functions Test Level: Software Item

Test Class: Erroneous

Test Completion Criteria:

1. System deletes expired events automatically

2. System deletes expired event photos automatically

3. System deletes expired location photos automatically

3 Subtest Cases:TC-14-01: Check system deletes expired location photos automaticallyTC-14-02: Check system deletes expired event photos automaticallyTC-14-03: Check system deletes expired events automatically

Page 55: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Feasibility Evidence

Page 56: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Feasibility Evidence- Traceability Matrix- Risk Analysis- Metrics- Technical Debt- Definition of Done

Page 57: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

# Requirement Use Case # Use Case Description Sequence Diagram Class Diagram Test Case

1 The system shall allow a user to upload a photo to an event. 1,24

Upload photo to my event, Search for event & upload photo

Upload photo to my event Photo management TC-11

2

The system shall allow a user to reserve a hashtag for a private event, allowing the user to specify a password to upload and view photos of the event.

4, 5,6,7,8

Create private event, Reserve Hashtag, Set a password, View photos of event, View event with password

Set a password, reserve a hashtag, view photos of event/private with password

Event Management TC-01

3 The system shall allow users to view photos uploaded from nearby locations in a grid layout.

9 Search by location Search Location Search Location TC-02

4 The system shall allow users to search for events by hashtag. 10 Search for event Search Event Search Event TC-09

5 The system shall delete expired events and any photos associated with them.

17,18 Delete expired events, Delete photos of expired events

Auto expiration Admin TC-14

6

The system shall provide functionality for users to delete their own photos and for administrators to delete photos.

11,19 Delete uploaded photos, Admin delete photos

Admin delete photo, Delete photos in event if owner

Admin, Event Management

TC-04, TC-07

7 The system shall allow a user to take a photo with the camera on the device.

13 Take photo Take a photo Photo management TC-12

Traceability (1 of 3)

Page 58: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

# Requirement Use Case # Use Case Description Sequence Diagram Class Diagram Test

Case

8The system shall prevent users from uploading photos to private events without the password.

28,29 Join event, view joined event

view joined event, search for event Event Management TC-10,

TC-11

9 The system shall provide an interface for users to create a new account or login to an existing one.

14,16 Create account, Login to account

Create account, Log in to account Account TC-08,

TC-13

10 The system shall allow a user to create a public event. 3 Create public event Create public event Event Management TC-01

11 The system shall allow an owner to delete photos in their event. 12 Delete photos in private

event Delete Photos in Event if Owner Event Management TC-04

12 The system shall delete expired photos uploaded to a location. 20 Delete expired location

photos Auto expiration Admin TC-14

13 The system shall allow users to download photos to their device. 21 Download photo to device Download photos to device Event Management TC-05

14The system shall prevent events from having the same hashtag as any other non-expired event.

3 Create a public event Create public event Event Management TC-01

15

The system shall only allow users to take photos when uploading to their current location. 2 Take photo for location

Upload to location after taking photo Photo management TC-03

Traceability (2 of 3)

Page 59: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

# Requirement Use Case # Use Case Description Sequence Diagram Class Diagram Test

Case

16 The system shall allow users to view photos on their device to upload. 26 View photos on device View photos on device Photo management TC-03

17 The system shall allow users to filter nearby photos by a predefined radius (My Home, My Block, My City).

9 Search by location Search Location Search Location TC-02

18 The system shall allow hashtag names only contain alphanumeric and dashes and underscore characters.

3,4 Create a public event, Create a private event Create public event Event Management TC-01

19 The system shall display the remaining time on an event as days if greater than 1 day or hours:minutes if less than 1 day.

7,8 View photos of event/private with password

View photos of event/private with password

Event Management TC-06

20 The system shall allow administrators to filter the list of all events by hashtag name and users by username.

22,23 Search for photos by user, Search for photos by event

Admin search for photo by user, Admin search for photo by event

Admin TC-07

21 The system shall allow users to create an account profile and logout of their account. 15,25 Create profile, Log in

to account Create profile, Log in to account Account TC-08,

TC-13

22 The system shall allow users to navigate between screens with a tab bar. 27 Navigate between

screens Navigate between screens Navigation TC-09

Traceability (3 of 3)

Page 60: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

RiskRank Risk Description Cause Mitigation Method P(L) 1-

10 S(L) 1-10

RE

1 Using a Parse alternative MBaaS will result in significant project delay

Using a Parse alternative will result in the need to rewrite most of the existing mobile app code. Also there is no guarantee that the alternative will be a long term solution. If Parse can be shut down, other third party solutions can also be shut down at some point in the future.

Develop our own custom backend instead using Parse Open Source Server code

9 7 63

Rank Risk Description Cause Mitigation Method P(L) 1-10

S(L) 1-10

RE

2 Custom backend may not be completed on time.

We have decided to implement our own backend based on Parse's Open Source Server code.

We have adjusted our priorities as well as assigned additional resources onto this project. We can also research other projects that have been working with the Parse Open Source code and be proactive by asking questions on StackOverflow and Parse Forums

6 7 42

Page 61: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Risk

Rank Risk Description Cause Mitigation Method P(L) 1-10

S(L) 1-10

RE

4 Unknown system load constraints

We have not defined how well the system should work such as how many users it should support or the expected load to our servers and database.

We plan to discuss the technical and non-functional requirements among our teams and then negotiate with the client. In addition we can begin formulating test cases in our test plan for load testing.

5 4 20

Rank Risk Description Cause Mitigation Method P(L) 1-10

S(L) 1-10

RE

3 Backend security Since we are developing our own custom backend solution based on Parse Open Source code, there may be security issues that arise that could compromise our data.

Research security issues about the Parse Open Source code and test it as well as our own backend by exploiting it. Add additional test cases to account for security testing.

7 3 21

Page 62: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Rank Risk Description Cause Mitigation Method P(L) 1-10

S(L) 1-10

RE

5 Management Change We may have different integrators for different parts in the future process of project. Also staff turnover makes team management different.

We plan to reduce the amount of work for the system integrator and make it more efficient by clearly defining the responsibilities of each team member.

5 3 15

Risk

Rank Risk Description Cause Mitigation Method P(L) 1-10

S(L) 1-10

RE

6 The scope of the project is large for the time frame.

Even after negotiating with the client to create a core set of MVP requirements, the project is still sizable for our time frame. Also new requirements were discovered as we performed robustness analysis and FCR ARB presentation adding to the scope.

We plan to consistently negotiate with the client for any new requirements to reduce the scope. We also plan to begin prototyping in order to buy information about our system to get a better estimate of development tasks.

6 5 30

Page 63: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Rank Risk Description Cause Mitigation Method P(L) 1-10

S(L) 1-10

RE

7 The project may not be completed on schedule due to lack of mobile app and backend development experience.

Since the team is inexperienced in mobile app development and backend development experience, there will be an initial high learning curve.

We plan to mitigate this risk by modifying our team structure and process to match the strengths of our team. Likewise we plan to start learning more about our development platform and begin prototyping.

7 7 49

Risk

Rank Risk Description Cause Mitigation Method P(L) 1-10

S(L) 1-10

RE

8 Requirement Change As a part of agile development, our client have changed some requirements and may change more in the future.

We will assign any changes in the requirements to the team member that is most familiar with that part of the system. That way, they will be able integrate the change faster with less chance of error.

4 3 12

Page 64: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Rank Risk Description Cause Mitigation Method P(L) 1-10

S(L) 1-10

RE

9 System may not function according to user expectations

Due to a lack of end-user involvement during the system development, the system may be difficult to use or not what the user has expected.

We plan to have the client test our system as we develop prototypes in order to buy information about what our end-user may expect from our application.

2 6 12

Risk

Rank Risk Description Cause Mitigation Method P(L) 1-10

S(L) 1-10

RE

10 Pair testing may not be efficient and comprehensive

By pairing up to handle tests, each person is in charge of testing their pair's use cases. This is inefficient as it requires each person to context switch from development to play a QA/QFP role resulting in inconsistencies.

Appoint a single person as a QFP/QA/IV&V to handle all the testing, so that developers can focus on development and the QFP can focus on testing and researching automated testing.

4 3 12

Page 65: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Rank Risk Description Cause Mitigation Method P(L) 1-10

S(L) 1-10

RE

11 Potential COTS conflicts and integration issues

We may decide to use some COTS as part of our system to help expedite our development. However, since we have not started development, we don't know if they will integrate well with our system.

We plan to mitigate this risk through buying more information through prototyping the components that will use these COTS.

5 4 20

Risk

Rank Risk Description Cause Mitigation Method P(L) 1-10 S(L) 1-10 RE

12 A single QFP/QA/IV&V may be unreliable and allow bugs to persistent

Due to the large number of test cases and features, a single QFP is prone to inconsistencies and error.

Create a thorough test plan and schedule that includes specific test cases for each features. Also research automated testing tools to help alleviate the heavy test case load. The developer should also perform basic testing before committing their code. Also PR/Code Review will help reduce bugs and errors. Potentially, appoint additional testers for more complex use cases.

3 3 9

Page 66: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Rank Risk Description Cause Mitigation Method P(L) 1-10

S(L) 1-10

RE

13 Design assets may contain incompatible elements

While we have gotten the final designs from our client and vetted them properly, we may still run into the scenario that some design features may be incompatible with iOS. This will result in potential delays or changes to features.

Create proof of concept for any complex areas of the designs

2 3 6

Risk

Rank Risk Description Cause Mitigation Method P(L) 1-10

S(L) 1-10

RE

14 Staff Turnover Our den student team members may not take 577b in the next semester and other students may join our team.

We plan to have a consistent development style to make it easier for new team members to pick up where the old ones left off. Also, we will provide good documentation to make it easier for the new team members to understand what we have completed. Lastly, we will reach out to the professor to recruit students for our team for CS 577b.

2 1 2

Page 67: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Metrics for Hours

Name Week 1 Week 2 Week 3 Week 4

Logan 6 9 14 12

Yao 6 10 10 8

Jiashun 6 8 6 8

Andy(Yew Hua) 9 9 10 12

Joseph 0 8 9 12

Nick 5 20 18 19

Weili 2 22 17 14

Haihao 7 9 12 15

Vincent(Yunwei) 9 11 9 9

Metrics for Defects per KLOC

Week 1 Week 2 Week 3 Week 4

5.2 12.5 11.8 7.8

Metrics

Page 68: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Contributions

Page 69: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Technical Debt# Technical Debt Mitigation Plan

1Focus only on critical MVP requirements of the app may cause additional rework to add additional features for new requirements.

Compile list of additional features and have team members keep these features in mind as they are developing the MVP features.

2Lack of thorough system prototype of may reveal undiscovered flaws in architecture.

Begin prototyping major risk and areas of concern to unveil any potential problems or integration issues.

3

Lack of well-considered and solid infrastructure as the team chose a solution based more on team experience rather than the best solution for the product

After completing the MVP, team will negotiate with client and decide on next steps.

4Design assets may contain incompatible elements that may not be discovered due to the focus on developing functionality first.

Create proof of concept for any complex areas of the designs.

Page 70: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Definition of Done

Application- App MVP features developed- App design reviewed and approved- Admin tool MVP features developed- Backend server developed and completed

Code- All code committed to Github repositories - All code commented (where needed)- All code has gone through Pull Request

Code Review

Documentation- Transition Readiness plan completed

Test- All App MVP features test cases passed- All Admin tool MVP features test cases passed- All Backend server test cases passed- All blockers/bugs fixed and validated by QA/QFP- Backlog of minor bugs and tasks groomed and

properly estimated - Acceptance Test Complete

Live on Production Service

- Admin tool deployed on production server- Backend server deployed on production server

Page 71: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Backup Slides!

Page 72: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Search by event

Page 73: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Search by event cont.

Page 74: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Photo management

Page 75: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Photo management cont.

Page 76: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Photo management cont.

Page 77: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Event management

Page 78: RDCR ARB - University of Southern California€™s Roles and Responsibility Member Name Role Responsibility Logan Chang Team manager and IOS developer Managing project; System integration;

Event management cont.