Life Cycle Plan (LCP) Version 1.0 Life Cycle Plan (LCP) architecture 10/13/2017 .vpp Team Website...
Transcript of Life Cycle Plan (LCP) Version 1.0 Life Cycle Plan (LCP) architecture 10/13/2017 .vpp Team Website...
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
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)
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.