19
Life Cycle Plan (LCP) Version 1.0 LCP_FCP_F17a_T01_V1.0.doc 10/15/2017 Life Cycle Plan (LCP) Software Quality Analysis as a Service (SQAaaS) Team No.1 Kavneet Kaur Requirement Engineer George Llames IIV & V Aleksandr Chernousov Life Cycle Planner Supicha Phadungsilp Feasibility Analyst Reza Khazali Software Architect Jincheng He Quality Focus Point Aditya Kathuria Prototyper Chris Harman Operation Concept Engineer 10/15/2017

Life Cycle Plan (LCP) Version 1.0 Life Cycle Plan (LCP) architecture 10/13/2017 .vpp Team Website FED 10/13/2017 .doc Team Website OCD 10/13/2017 .doc Team Website Life Cycle Plan

  • Upload
    phamque

  • View
    218

  • Download
    0

Embed Size (px)

Citation preview

Life Cycle Plan (LCP) Version 1.0

LCP_FCP_F17a_T01_V1.0.doc 10/15/2017

Life Cycle Plan (LCP)

Software Quality Analysis as a Service (SQAaaS)

Team No.1

Kavneet Kaur

Requirement Engineer

George Llames

IIV & V

Aleksandr Chernousov

Life Cycle Planner

Supicha Phadungsilp

Feasibility Analyst

Reza Khazali

Software Architect

Jincheng He

Quality Focus Point

Aditya Kathuria

Prototyper

Chris Harman

Operation Concept Engineer

10/15/2017

ii

Version History

Date Author Version Changes made Rationale

10/15/17 AC 1.0 - Initial LCP

iii

Table of Contents

Life Cycle Plan (LCP) ..................................................................................................................................................i Version History ........................................................................................................................................................... ii Table of Contents ....................................................................................................................................................... iii Table of Tables ............................................................................................................................................................iv Table of Figures ........................................................................................................................................................... v

1. Introduction ................................................................................................................................................ 1

1.1 Purpose of the LCP .................................................................................................................................... 1

1.2 Status of the LCP ....................................................................................................................................... 1

1.3 Assumptions ................................................................................................................................................ 1

2. Milestones and Products ............................................................................................................................ 2

2.1 Overall Strategy ......................................................................................................................................... 2

2.2 Project Deliverables ................................................................................................................................... 2

3. Responsibilities ........................................................................................................................................... 4

3.1 Project-specific stakeholder’s responsibilities ......................................................................................... 4

3.2 Responsibilities by Phase ........................................................................................................................... 4

3.3 Skills ............................................................................................................................................................ 7

4. Approach .................................................................................................................................................... 9

4.1 Monitoring and Control ............................................................................................................................ 9

4.2 Methods, Tools and Facilities .................................................................................................................... 9

5. Resources .................................................................................................................................................. 11

Life Cycle Plan (LCP) Version 1.0

LCP_FCP_F17a_T01_V1.0.doc 10/15/2017

Table of Tables

Table 1: Artifacts Deliverables in Exploration Phase ................................................................................................... 3 Table 2: Artifact deliverable in Valuation Phase .......................................................................................................... 3 Table 3: Artifact deliverable in Foundations Phase ...................................................................................................... 3 Table 4: Stakeholder's Responsibilities in each phase .................................................................................................. 4 Table 5: Development Team’s Skills ............................................................................................................................. 7 Table 6: Tools used for the Project ............................................................................................................................... 9 Table 7: COCOMOII Scale Driver .............................................................................................................................. 11 Table 8: COCOMOII Cost Driver. Module 1: Statistical Page (2000 SLOC, 15% REVL) ........................................ 11 Table 9: COCOMOII Cost Driver. Module 2: Profiling System (5000 SLOC, 15% REVL) ....................................... 12 Table 10: COCOMOII Cost Driver. Module 3: HTTPS (1000 SLOC, 15% REVL) .................................................... 13

Life Cycle Plan (LCP) Version 1.0

LCP_FCP_F17a_T01_V1.0.doc 10/15/2017

Table of Figures

No table of figures entries found.

Life Cycle Plan (LCP) Version no 1.0

1

1. Introduction

1.1 Purpose of the LCP

LCP helps us to complete project on time (not to overrun its time and costs). Careful and precise

planning, finding out and addressing risks on each phase, eliminating technical debts- all of those

helps us to finish all the task and modules on time, not to be too optimistic (along with not being

too pessimistic), not to overrun the costs of the project (in case of CSCI 577 it helps not to

overrun time constraints).

LCP also helps to keep all the team members and stakeholders on the same page and clearly

understand the purpose and final aim of the project.

1.2 Status of the LCP

Current version of LCP is 1.0. It is an initial LCP for finding out the goals of Foundation Phase

of ICSM. This version is going to be updated as the time goes on, new ICSM phases take place

and project’s progress is evaluated.

1.3 Assumptions

• The project’s duration is 24 weeks- 12 weeks in Fall 2017 and 12 weeks in Spring

2018

• Eight members will work in Fall 2017. Seven members will work in Spring 2018

(all members exept for Aditya Kathuria, who is graduating this semester).

• Requirements for Sping 2018 won’t contradict with requirements stated in Fall

2017

Life Cycle Plan (LCP) Version no 1.0

2

2. Milestones and Products

2.1 Overall Strategy

SQAaaS is a project that had a prototype that was used as an example- the project was almost

written from a scratch. We use some COTS in this project (D3). This project is based on ReactJS

for front-end and node.js for backend. Furthermore this project communicates with other parts of

this project using JSON data.

Exploration phase

Duration: 09/06/2017- 09/13/2017

Concept: Identify overall system’s state, requirements, architecture. Plan the overall

software cycle.

Deliverables: Risk Deflect report, WinBook, Overall system architecture.

Milestone: Requirements list

Strategy: One IC cycle, Risk analysis, Win-Win negotiations.

Valuation phase:

Duration: 09/14/2017- 09/25/2017

Concept: Find out most important and analyze final requirements, analyze risks, make

LCP clearer, make UI prototype (mockup), find out project feasibility.

Deliverables: UI prototype (mockup), Initial architecture design, Prototype Presentation

Milestone: Prototype Presentation

Strategy: One IC cycle, Risk Analysis, Win-Win negotiations, Prototyping, Planning

Poker

Foundation phase

Duration: 09/26/2017- 11/25/2017

Concept: Work on Statistical page, Profiling System prototypes and implementation,

HTTPS implementation, learning technologies and languages used in project by team members

Deliverables: Working initial system

Milestone: End of CSCI 577a

Strategy: One IC cycle, Risk analysis, development

2.2 Project Deliverables

Below is the list of all deliverables on each phase.

Life Cycle Plan (LCP) Version no 1.0

3

2.2.1 Exploration Phase

Table 1: Artifacts Deliverables in Exploration Phase

Artifact Due date Format Medium

Team Website 09/13/2017 .html Website hosted

online

WinBook 09/13/2017 .html Online Website

Jira tickets and report Every Monday .html Online Website

2.2.2 Valuation Phase

Table 2: Artifact deliverable in Valuation Phase

Artifact Due date Format Medium

Prototype presentation 09/27/2017 .ppt In-class presentation

Jira tickets and report Every Monday .html Online Website

UI mockup 09/27/2017 .bmpl Balsamiq

2.2.3 /Foundations Phase

Table 3: Artifact deliverable in Foundations Phase

Artifact Due date Format Medium

Jira tickets and report Every Monday .html Online Website

ARB Presentation 10/13/2017 .ppt In-class presentation

LCP 10/13/2017 .doc Team website

Prototypes 10/13/2017 .js Team Website, GitHub

Software architecture 10/13/2017 .vpp Team Website

FED 10/13/2017 .doc Team Website

OCD 10/13/2017 .doc Team Website

Life Cycle Plan (LCP) Version no 1.0

4

3. Responsibilities

3.1 Project-specific stakeholder’s responsibilities

We do not have project-specific stakeholders. The only project’s specialty is that our client will

also be the maintainer (at least for now).

3.2 Responsibilities by Phase

Table 4: Stakeholder's Responsibilities in each phase

Team Member /

Role

Primary / Secondary Responsibility

Exploration Valuation Foundations Development-

Construction

Iteration

Development-

Transition

Iteration Name:

Kavneet Kaur

Role:

Manager & Team

Leader/

Requirements

Engineer

Primary

Responsibility

Analyze scope of

the project

Arrange team

meetings

Arrange

negotiation

sessions with the

client

Keep track of

project progress

Secondary

Responsibility

Interact with the

client

Gather project

requirements

Fill in the

Winbook

Primary

Responsibility

Analyze scope

of the project

Arrange team

meetings

Arrange

negotiation

sessions with the

client

Keep track of

project progress

Secondary

Responsibility

Interact with the

client

Gather project

requirements

Make sure, that

project progress

meets the

requirements

Update the

Winbook

Primary

Responsibility

Analyze scope of

the project

Arrange team

meetings

Arrange

negotiation

sessions with the

client

Keep track of

project progress

Secondary

Responsibility

Interact with the

client

Gather project

requirements

Make sure, that

project progress

meets the

requirements

Name:

Aleksandr

Chernousov

Role:

Life Cycle Planner/

Developer

Primary

Responsibility

Plan the project’s

life cycle

Analyze the

requirements

Share

responsibilities

between team

Primary

Responsibility

Plan the

project’s life

cycle

Analyze the

requirements

Share

responsibilities

Primary

Responsibility

Plan the project’s

life cycle

Analyze the

requirements

Share

responsibilities

between team

Life Cycle Plan (LCP) Version no 1.0

5

members

Secondary

Responsibility

-

between team

members

Estimate time

and costs for

each task

Secondary

Responsibility

Prototype

project’s

features

according to the

plan

members

Estimate time and

costs for each

task

Secondary

Responsibility

Implement

project’s features

according to the

plan

Name:

Supicha

Phadungslip

Role:

Feasibility Analysis/

Developer

Primary

Responsibility

Gather the

requirements

Analyze risks

Secondary

Responsibility

-

Primary

Responsibility

Gather the

requirements

Analyze risks

Figure out top

risks of the

project

Suggest risks

mitigation

strategy

Secondary

Responsibility

Prototype

project’s

features

according to the

plan

Primary

Responsibility

Analyze risks

Figure out top

risks of the

project

Suggest risks

mitigation

strategy

Do “Return On

Investment”

analysis

Do feasibility

analysis on

project’s

prototype

Secondary

Responsibility

Implement

project’s features

according to the

plan

Name:

Reza Khazali

Role:

Systems and

Software Architect/

Manager & Team

Leader

Primary

Responsibility

Evaluate overall

system

requirements

Make initial

system

architecture

assumption

Secondary

Responsibility

Arrange team

meetings

Arrange

negotiation

sessions with the

client

Primary

Responsibility

Evaluate

specific system

requirements

Make initial

system

architecture

Make initial use

cases

Secondary

Responsibility

Arrange team

meetings

Arrange

negotiation

sessions with the

client

Primary

Responsibility

Make system

architecture

Make use cases

Make class and

workflow

diagrams

Assign IDs to all

use cases and

diagrams

Explain system

architecture to

other team

members

Secondary

Responsibility

Arrange team

meetings

Arrange

negotiation

sessions with the

Life Cycle Plan (LCP) Version no 1.0

6

client

Name:

Jincheng He

Role:

Developer/

Requirements

engineer

Primary

Responsibility

Gather

requirements

Secondary

Responsibility

Interact with the

client

Gather project

requirements

Fill in the

Winbook

Primary

Responsibility

Prototype

project’s

features

according to the

plan

Secondary

Responsibility

Interact with the

client

Gather project

requirements

Make sure, that

project progress

meets the

requirements

Update the

Winbook

Primary

Responsibility

Implement

project’s features

according to the

plan

Secondary

Responsibility

Interact with the

client

Gather project

requirements

Make sure, that

project progress

meets the

requirements

Name:

Aditya Kathuria

Role:

Prototyper/

Developer

Primary

Responsibility

Gather

requirements

Make initial

system’s

prototype design

Secondary

Responsibility

-

Primary

Responsibility

Update initial

system’s

prototype design

Make UI

mockups

Make

prototyping plan

of most

important

modules

Secondary

Responsibility

Prototype

project’s

features

according to the

plan

Primary

Responsibility

Make modules’

prototypes

Make whole

system prototype

Identify problems

that can arise

during

implementation

of system

Secondary

Responsibility

Implement

project’s features

according to the

plan

Name:

George Llames

Role:

Verification and

Validation/

Operational Concept

Engineer

Primary

Responsibility

Verify and

validate work

products and

requirements

Secondary

Responsibility

Get an overall

system overview

Make initial

operational

concept

assumptions

Primary

Responsibility

Verify and

validate work

products and

requirements

Negotiate with

team about

issues in project

development

Secondary

Responsibility

Develop

operational

concept

Primary

Responsibility

Verify and

validate work

products and

requirements

Negotiate with

team about issues

in project

development

Secondary

Responsibility

Update

operational

concept to meet

changing

requirements

Life Cycle Plan (LCP) Version no 1.0

7

Name:

Chris Harman

Role:

Developer/

Verification and

Validation

Primary

Responsibility

Gather

requirements

Secondary

Responsibility

Verify and

validate work

products and

requirements

Primary

Responsibility

Prototype

project’s

features

according to the

plan

Secondary

Responsibility

Verify and

validate work

products and

requirements

Negotiate with

team about

issues in project

development

Primary

Responsibility

Implement

project’s features

according to the

plan

Secondary

Responsibility

Verify and

validate work

products and

requirements

Negotiate with

team about issues

in project

development

Other stakeholders’ responsibilities

Name:

Pooyan

Behnamghader

Role:

Client, Maintainer

Primary

Responsibility

Provide the

requirements

Primary

Responsibility

Provide the

requirements

Attend team’s

Prototype

presentation

Comment the

development of

the system

Primary

Responsibility

Provide the

requirements

Attend team’s

ARB

Comment the

development of

the system

3.3 Skills

Table 5: Development Team’s Skills

Team members Role Skills

Kavneet Kaur Manager & Team Leader/

Requirements Engineer

Current Skills:

COCOMO II, C/C++, Java,

HTML, Javascript, MySQL,

PostgreSQL

Required Skills:

JavaScript, ReactJS, HTML,

CSS

Aleksandr Chernousov Life Cycle Planner/ Developer Current Skills:

C/C++, Java, HTML,

Javascript, MS Access, C#,

Objective-C

Required Skills:

JavaScript, ReactJS, HTML,

CSS, COCOMO II, Life cycle

planning understanding

Supicha Phadungslip Feasibility Analysis/ Current Skills:

Life Cycle Plan (LCP) Version no 1.0

8

Developer Java, Objective-C, JavaScript,

MySQL, Oracle

Required Skills:

JavaScript, ReactJS, HTML,

CSS, Feasibility analysis

understanding

Reza Khazali Systems and Software

Architect/ Manager & Team

Leader

Current Skills:

Java, Python, JavaScript,

MySQL, PostgreSQL

Required Skills:

JavaScript, ReactJS, HTML,

CSS, Visual Paradigm, UML,

Software architecting

understanding

Jincheng He Developer/ Requirements

engineer

Current Skills:

C/C++, PHP, Python,

JavaScript, MySQL,

PostgreSQL

Required Skills:

JavaScript, ReactJS, HTML,

CSS

Aditya Kathuria Prototyper/ Developer Current Skills:

Java, C/C++, JavaScript,

AngularJS, ReactJS,

PostgreSQL, MySQL

Required Skills:

JavaScript, ReactJS, HTML,

CSS, prototyping

understanding

George Llames Verification and Validation/

Operational Concept Engineer

Current Skills:

Java, C/C++, Python, HTML,

MySQL, MS Access

Required Skills:

JavaScript, ReactJS, HTML,

CSS, IIV&V and OC

understanding

Chris Harman Developer/ Verification and

Validation

Current Skills:

JavaScript, Python, HTML,

PostgreSQL, Oracle, Node.js,

AngularJS, Docker

Required Skills:

JavaScript, ReactJS, HTML,

CSS, IIV&V understanding

Life Cycle Plan (LCP) Version no 1.0

9

4. Approach

4.1 Monitoring and Control

The project is monitored using project plan, bi-weekly progress report, Jira tickets and Git

repository. Project’s risks, development plan, COTS usage are included to progress reports.

Furthermore, weekly team meetings are being held to keep all team members on the same pace.

4.1.1 Closed Loop Feedback Control

Our team uses Google Drive folder and team meetings to provide internal feedback to each other.

Personal meetings between team members are also being held to discuss about certain concerns.

4.1.2 Reviews

• We have a team meeting every week (mostly on Tuesday, but day can vary according to

team members availability). We discuss project updates, completed work and project

issues.

• We use Git repository to update project’s state frequently and easily. It also helps to

understand project’s current state before team meetings.

• Win-win negotiations help us to keep contact with the client and to receive a feedback

about our job and tasks.

4.2 Methods, Tools and Facilities

Table 6: Tools used for the Project

Tools Usage Provider

GitHub Repository version control system to keep all code changes in

one place

GitHub

Skype Skype is used during team meetings to have communication

with DEN students

Microsoft

Slack Slack is used as a communication tool between team members Slack

Technologies

Jira Jira is used to monitor progress of each team member USC

Google Drive Google Drive is used to share files between team members

(especially files that are being updated constantly)

Google

Visual

Paradigm

Visual Paradigm is used to develop system architecture (UML

diagrams)

Visual

Paradigm

MS office MS Office is used to create files with important information Microsoft

Life Cycle Plan (LCP) Version no 1.0

10

that is needed to be shared between team members

(Presentations, Timelines, Tasks)

WinBook WinBook is used to understand requirements and risks better

and to identify win conditions for all stakeholders

USC

COCOMO II COCOMO II helps us to estimate cost and duration of project’s

development

USC

Balsamiq Balsamiq is used to create UI mockups Balsamiq

ReactJS ReactJS is used to develop front-end part of the system Facebook

React

Bootstrap

React Bootstrap is used to design better UI with less efforts Bootstrap

Core Team

Visual Studio

Code

Visual Studio Code is used to write source code of our project Microsoft

Node.js Node.js is used to develop back-end part of our project Joyent

PostgreSQL PostgreSQL is used manage our system’s database PostgreSQL

Global

Development

Group

Life Cycle Plan (LCP) Version no 1.0

11

5. Resources

• Estimated CSCI577a Effort: 8 team members at 12 hrs/week for 12 weeks

• Estimated CSCI577b Effort: 7 team members at 12 hrs/week for 12 weeks

• Total estimated effort: (8 members * 12 hrs/week * 12 weeks) + (7 members * 12

hrs/week * 12 weeks) = 2160

• Budget information: $0 for CSCI577a. $122 for CSCI577b (Hosting + certificate costs)

• Project duration: 24 weeks

• Component modules: ReactJS, ReactBootstrap, Node.js, D3, Canvas

• Programming languages: Javascript, SQL, HTML, CSS

Table 7: COCOMOII Scale Driver

Scale Driver Value Rationale

PREC LOW Only 37,5% of team members (3 out of 8) have

experience in web development

FLEX HIGH We don’t have pre-established requirements of external

interface specifications

RESL HIGH Most of the risks can be eliminated by buying information

(prototyping)

TEAM NOMINAL Most stakeholders’ objectives can be synchronized easily,

but lack of users involvement can make things much

harder later on

PMAT NOMINAL Team has no expertise about CMM Maturity, but has a

good understanding of it

Table 8: COCOMOII Cost Driver. Module 1: Statistical Page (2000 SLOC, 15% REVL)

Cost Driver Value Rationale

RELY VERY

LOW

Module failure will lead to slight inconvenience

DATA VERY

LOW

There will be no database for this module

CPLX HIGH Coding is going to be pretty complicated. Large

amounts of preprocessing is required before displaying

data

RUSE LOW This code is unlikely to be used in many other projects.

But it can be used for showing data (specific task)

DOCU HIGH Most of the module’s code had to be documented to

ease future changes in displaying data

TIME HIGH Data needs to be shown very smoothly. Otherwise,

project can become unsuccessful

Life Cycle Plan (LCP) Version no 1.0

12

STOR HIGH This module takes most of the computational time

PVOL NOMINAL We expect this module to be changed pretty often- every

6 months

ACAP HIGH Team members have good analytical skills

PCAP HIGH Team members are capable of completing complex tasks

PCON VERY

HIGH

We are expecting that only one team member will not be

present for CSCI577b

APEX NOMINAL We have some team members with big amount of

experience along with team members with almost no

experience

PLEX HIGH Most of team members have experience with platforms

LTEX HIGH Most of team members have experience with used

programming languages

TOOL HIGH We use advanced tools to aid us during the development

SITE LOW We don’t use much communication for this module

SCED LOW We expect to be able to complete this module a little bit

ahead of schedule

Table 9: COCOMOII Cost Driver. Module 2: Profiling System (5000 SLOC, 15% REVL)

Cost Driver Value Rationale

RELY NOMINAL Module failure can lead to unrestricted access to data

DATA LOW There will be no big database for this module (assuming

2 tables right now)

CPLX NOMINAL Coding is not going to be too complicated

RUSE HIGH Profiling system can be reused in many other projects

DOCU HIGH Most of the module’s code had to be documented to

ease future changes in profiling system

TIME LOW Time constraints are not tight at all- even 5-10 seconds

response will be acceptable

STOR NOMINAL This module doesn’t take many of computational time

PVOL LOW We don’t expect this module to be changed more often

than once per year

ACAP NOMINAL Team members have good analytical skills, but this

module can be hard to analyze

PCAP NOMINAL Team members are capable of completing complex

tasks, but this module can be hard to get done

PCON VERY

HIGH

We are expecting that only one team member will not be

present for CSCI577b

APEX LOW None of our team members have decent experience in

creating profiling systems

PLEX LOW None of our team members have decent experience in

platforms needed for this module

LTEX HIGH Most of team members have experience with used

programming languages

Life Cycle Plan (LCP) Version no 1.0

13

TOOL HIGH We use advanced tools to aid us during the development

SITE NOMINAL Decent communication will be needed for this module

SCED NOMINAL We expect this module to be completed on time

Table 10: COCOMOII Cost Driver. Module 3: HTTPS (1000 SLOC, 15% REVL)

Cost Driver Value Rationale

RELY LOW Module failure won’t lead to critical situations

DATA VERY

LOW

No database will be used for this module

CPLX LOW Coding is not going to be too complicated

RUSE NOMINAL This module may be reused in other projects

DOCU LOW Low amount of documentation is needed for this module

TIME LOW Time constraints are not tight at all- even 5-10 seconds

response will be acceptable

STOR VERY

LOW

This module takes almost no computational time at all

PVOL VERY

LOW

We don’t expect changes to this module

ACAP LOW Team members have good analytical skills, but this

module can be hard to analyze

PCAP LOW Team members are capable of completing complex

tasks, but this module can be hard to get done

PCON VERY

HIGH

We are expecting that only one team member will not be

present for CSCI577b

APEX VERY

LOW

None of our team members have decent experience in

creating HTTPS

PLEX LOW None of our team members have decent experience in

platforms needed for this module

LTEX HIGH Most of team members have experience with used

programming languages

TOOL NOMINAL There is no big difference in tools that can be used to get

this module done

SITE LOW Low level of communication will be needed for this

module

SCED LOW We expect this module to be completed ahead of

schedule

Life Cycle Plan (LCP) Version no 1.0

14

Assumption: COCOMO II doesn’t allow to set Hours/PM less than 120 and more than 184. Our

team members work 12 hours/week, which is approximately 50 Hours/PM. Setting Hours/PM to

150 in COCOMO II we assume that if we multiply estimated staff by 3 then we can get real

estimated data for our project. By letting this assumption we can leave other estimated data

unchanged.

Estimation:

Total Lines of Code: 9200

Effort needed (Pessimistic): 26.1 person-months

Schedule (Pessimistic): 10.3

Each member works: 12 Hours/week for 12 weeks ≈ 50 Hours/PM for 3 months

Time spent by members: 12 Hours/week * 12 weeks * 8 persons = 1152 person-hours =

23.04 person-months

Project development can run out of time in the pessimistic case, but it will be done in the

most likely case.