greenbay.usc.edu · web viewaditya kathuria prototyper chris harman operation concept engineer...

32
Feasibility Evidence Description (FED) 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/17

Upload: truongdien

Post on 14-Apr-2018

224 views

Category:

Documents


5 download

TRANSCRIPT

Feasibility Evidence Description (FED)

Software Quality Analysis as a Service (SQAaaS)

Team No.1

Kavneet KaurRequirement Engineer

George LlamesIIV & V

Aleksandr ChernousovLife Cycle Planner

Supicha PhadungsilpFeasibility Analyst

Reza KhazaliSoftware Architect

Jincheng HeQuality Focus Point

Aditya KathuriaPrototyper

Chris HarmanOperation Concept Engineer

10/15/17

Feasibility Evidence Description (FED) Version 1.1

Version History

Date Author Version Changes made Rationale

10/15/17 SP 1.0 - · Initial draft for use with SQAaaS v1.0

11/26/17 SP 1.1 Section 1.2, 2, 3.2, 4, 5, 6 • Update document status• Update business case analysis• Add more capability feasibility• Update process feasibility• Update risk assessment• Add NDI/NCS information

FED_DCP_F17a_T01_V1.1 2 Version Date: 12/01/17

Feasibility Evidence Description (FED) Version 1.1

Table of Contents Feasibility Evidence Description (FED)........................................................................................................................1

Version History..............................................................................................................................................................ii

Table of Contents ........................................................................................................................................................iii

Table of Tables..............................................................................................................................................................iv

Table of Figures.............................................................................................................................................................1

1. Introduction...........................................................................................................................................................2

1.1. Purpose of the FED Document.....................................................................................................................2

1.2. Status of the FED Document........................................................................................................................2

1. Business Case Analysis..........................................................................................................................................3

1.1. Cost Analysis..................................................................................................................................................5

1.2. Benefit Analysis.............................................................................................................................................6

1.3. ROI Analysis..................................................................................................................................................6

3. Architecture Feasibility.........................................................................................................................................9

1.1. Level of Service Feasibility...........................................................................................................................9

1.2. Capability Feasibility..................................................................................................................................11

1.3. Evolutionary Feasibility..............................................................................................................................13

1. Process Feasibility...............................................................................................................................................14

1. Risk Assessment...................................................................................................................................................18

1. NDI/NCS Interoperability Analysis ..................................................................................................................22

1.3. Introduction.................................................................................................................................................22

1.1. Evaluation Summary...................................................................................................................................24

FED_DCP_F17a_T01_V1.1 3 Version Date: 12/01/17

Feasibility Evidence Description (FED) Version 1.1

Table of TablesTable 1: Personnel Costs...............................................................................................................................................5

*Let client’s hour costs $30/hour...................................................................................................................................5

Table 2: Hardware and Software Costs.........................................................................................................................5

Table 3: Benefits of SQAaaS System..............................................................................................................................6

Table 4: ROI Analysis....................................................................................................................................................7

Table 5: Level of Service Feasibility............................................................................................................................10

Table 6: Capability Requirements and Their Feasibility Evidence.............................................................................11

Table 7: Evolutionary Requirements and Their Feasibility Evidence.........................................................................13

Table 8: Rationales for Selecting Architected Agile Model.........................................................................................15

Table 9: Risk Assessment.............................................................................................................................................18

Table 10: NDI Products Listing...................................................................................................................................22

Table 11: NDI Evaluation............................................................................................................................................24

FED_DCP_F17a_T01_V1.1 4 Version Date: 12/01/17

Feasibility Evidence Description (FED) Version 1.1

Table of FiguresFigure 1: ROI Analysis Graph.......................................................................................................................................8

1

Feasibility Evidence Description (FED) Version 1.1

1. Introduction1.1. Purpose of the FED DocumentThe purpose of FED document is to determine the possibility to complete the project based on business case analysis, cost analysis, architecture feasibility, process feasibility, risk assessment and NDI/NCS interoperability analysis.

1.2. Status of the FED DocumentBusiness case analysis, cost analysis, architecture feasibility, process feasibility, risk assessment and. NDI/NCS interoperability analysis has been added. The information in this part can be changed later during the development process.

2

Feasibility Evidence Description (FED) Version 1.1

2. Business Case Analysis

Assumptions• Users want a way to analyze the quality of the software they have developed, managed, or in-

vested in.• Users will make business decisions based on the findings revealed by the software quality anal-

ysis.• Users will access the system using Chrome on Desktop devices.• Users will create an account using their email address.

Stakeholders Initiatives Value Propositions Beneficiaries are

· Developer - CSCI 577 Team

· Maintainer - Pooyan

· Client - Pooyan· Admin - Pooyan· Users - Researcher,

Project Manager, Contributors (Navy, NASA, students)

· Developers: De-velop system

· Maintainer: Main-tain the system

· Client: Properly host system using HTTPS, Advertise the system

· Admin: Manage user permission

· Users: Present project for analysis, hoping to examine software quality across various met-rics.

· Users able to ana-lyze projects using various software quality metrics.

· Users able to evalu-ate development team member con-tributions to soft-ware quality

· Opportunity to fix major flaws identi-fied by software quality metrics.

· Grow system’s cus-tomer base.

· Users can better un-derstand the value of their investment.

· System security will be consistent with industry standards.

· Client· Users - Researchers,

Project Manager, Contributors

Cost· Maintainer costs· Hosting costs· Certificate costs· Server costs

Benefits· Number of customers increases for analyzed

software· Analyzed software security increases· Analyzed software increases in overall quality

3

Feasibility Evidence Description (FED) Version 1.1

and value

2.1. Cost Analysis2.1.1. Personnel Costs

Table 1: Personnel Costs

Activities Time Spent (Hours)

Exploration, Valuation and Foundation Phases: Time Invested (CS577a, 12 weeks)

35

• Group: 1st WinWin session [1.5 hr * 1 person] 1.5

• Group: 2st WinWin session [1.5 hr * 1 person] 1.5

• Client: Meeting via email, phone, and other channels [ 2hr/week * 12 weeks * 1 person]

24

• Group: Architecture Review Boards[4 hr * 2 times * 1 people] 8

Development Phase: Time Invested (CS577b, 12 weeks) 37

• Client: Meeting via email, phone, and other channels [2hr/week * 12 weeks * 1 person]

24

• Installation & deployment [5 hr * 2 times * 1 person] 10

• Support [ 3 hr * 1 time * 1 person] 3

Total Time Spent 72

Total Cost [$30 / hours] * $2,160

Maintenance Period (1 year) 52

• Maintenance [1hr/week * 52 weeks * 1 person] 52

4

Feasibility Evidence Description (FED) Version 1.1

Total Maintenance Time Spent 52

Total Cost [$30 / hours] * $1,560

*Let client’s hour costs $30/hour

2.1.2. Hardware and Software CostsTable 2: Hardware and Software Costs

Type Cost / Year Rationale

Web Hosting $101.62 Amazon web service - Hosting for ReactJS fron-tend and NodeJS Backend. (https://aws.amazon.-com/ec2/pricing/on-demand/)

Domain Name Host-ing

Dreamhost - Domain name is need to access

page. (https://www.dreamhost.com/domains/pric-

ing/)• First year $11.95

• The following year $13.95

SSL Certificate $15 Dreamhost - Client security issues (https://

goo.gl/D6dA25)

Total Cost • First year: $128.57• The following year: $130.57

2.2. Benefit AnalysisOur project are the part of the research project which the target user are client, researcher and contributor (navy, NASA, student). The project current activities are increasing number of cus-tomers for analyzed, analyzed software security increases, analyzed software quality increases and analyzed software value increases.

Table 3: Benefits of SQAaaS System

Current activities & resources used % Increase Time Saved (Hours/Year)

5

Feasibility Evidence Description (FED) Version 1.1

Number of customers increases for analyzed software 25% Not Quantifiable

Analyzed software security increases 70% Not Quantifiable

Analyzed software quality increases 70% Not Quantifiable

Analyzed software value increases 25% Not Quantifiable

Total

Let the user works 40 hours/week. It will be 40 hours * 52 weeks = 2080 hours/yearWe expect that our project will reduce his work by 20% which is 416 hours/year

2.3. ROI AnalysisAssuming cost increase 10% every year.Let client’s and user’s hour cost $30/hours and increase 10% every year.Cost• Development cost = 72 hours * $30/hour = $2,160• Maintenance cost = 52 hours * $30/hour = $1,560• Hardware cost = $128.57 for first year and 130.57 for the following yearBenefitNumber of user in first release = 20 users.We forecast that we have potential to increase it by 200% every year.

Year 1 2 3 4 5

#user 0 20 60 180 540

Each user can save his time 416 hours/year. According to user’s hour value, it will be $12,480/year.

Table 4: ROI Analysis

Year Cost Benefit(Effort Saved)

Cumulative Cost

Cumulative Benefit ROI

1 $2288.57 0 $2288.57 0 -1.00

2 $1690.57 $249,600 3979.14 $249,600 61.73

3 1859.627 823680 5838.767 1073280 182.82

6

Feasibility Evidence Description (FED) Version 1.1

4 2045.5897 2718144 7884.3567 3791424 479.88

5 2250.14867 8969875,2 10134.50537 12761299,2 1258.19

7

Feasibility Evidence Description (FED) Version 1.1

Figure 1: ROI Analysis Graph

May 2018 May 2019 May 2020 May 2021 May 2022-438

0

438

875

1313

1750

ROIYear

RO

I

8

Feasibility Evidence Description (FED) Version 1.1

3. Architecture Feasibility3.1. Level of Service Feasibility

Level of Service Requirement Product Satisfaction

LOS-1: System should be able to support 20 users working on the system simultaneously.

Product Strategies: Node.js

Process Strategies: Node.js server concept is support scala-bility such as Node.js can delegate execution of the request to a separate component and avoids spinning up threads for each request

Analysis: The system will be able to handle 20 users working on the system simultaneously based on Node.js server.

LOS-2: System should compat-ible with Chrome browser.

Product Strategies: ReactJS, ReactBootstrap, PrimeReact, D3&Canvas

Process Strategies: develop product using ReactJS, React-Bootstrap, PrimeReact, D3&Canvas which are support in chrome.

Analysis: The system will compatible with Chrome browser.

LOS3: System should be able to smoothly interact with the scatterplot chart of the coevolu-tion of a system with10,000 data points for up to 4 metrics.

Product Strategies: D3 &Canvas

Process Strategies: implement chart prototype using D3.

Analysis: After implement prototype using D3 & canvas, we found that system can smoothly interact with 10,000 data points for up to 4 metrics.

LOS4: System should be able to load project analysis view in 2 seconds.

Product Strategies: ReactJS, ReactBootstrap, PrimeReact, D3&Canvas, Node.js

Process Strategies: prototype statistic view using ReactJS, ReactBootstrap, ReactPrime, D3&Canvas as a frontend com-ponent and Node.js as a backend component.

9

Feasibility Evidence Description (FED) Version 1.1

Analysis: System has high change to be able to load project analysis page in 2 seconds because we already prototype chart display. This chart can load in 2 second. For the back-end part, Node.js average response time of 20 concurrent re-quests is 19 ms. It can support 509 requests/sec. [2017, Per-formance Comparison Between Node.js and Java EE, Re-trieved from https://dzone.com/articles/performance-compar-ison-between]

3.2.Table 5: Level of Service Feasibility

3.2. Capability FeasibilityTable 6: Capability Requirements and Their Feasibility Evidence

Capability Requirement Product Satisfaction

CR-1: Register as Con-tributor

Software/Technology used: ReactJS, ReactBootstrap, PrimeRe-act, PostgreSQL and Node.js

Feasibility Evidence: Sign up page

Referred use case diagram: UC-1

CR-2: Login page Software/Technology used: ReactJS, ReactBootstrap, PrimeRe-act, PostgreSQL and Node.js

Feasibility Evidence: Login Page

Referred use case diagram: UC-2

CR-3: Log out page Software/Technology used: ReactJS, ReactBootstrap, PrimeRe-act, PostgreSQL and Node.js

Feasibility Evidence: Log out flow

Referred use case diagram: UC-3

CR-4: View Project List Software/Technology used: ReactJS, ReactBootstrap, PrimeRe-act, PostgreSQL and Node.js

10

Feasibility Evidence Description (FED) Version 1.1

Feasibility Evidence: Open source project display on a dashboard page. The user can select the open source project to view statistical data of that project.

Referred use case diagram: UC-9

CR-5: Request to add new collaborator page

Software/Technology used: ReactJS, ReactBootstrap, PrimeRe-act, PostgreSQL and Node.js

Feasibility Evidence: Add collaborator page

Referred use case diagram: UC-6

CR-6: Add project to analysis system

Software/Technology used: ReactJS, ReactBootstrap, PrimeRe-act, PostgreSQL and Node.js

Feasibility Evidence: Project Submission Page

Referred use case diagram: UC-7

CR-7: Statistical page Software/Technology used: ReactJS, ReactBootstrap, PrimeReact , D3&Canvas, PostgreSQL and Node.js

Feasibility Evidence: Statistical Page Prototype

Referred use case diagram: UC-10

CR-8: See list of favorite project

Software/Technology used: ReactJS, ReactBootstrap, PrimeRe-act, PostgreSQL and Node.js

Feasibility Evidence: Add favorite project prototype page, fa-vorite project list in dashboard page

Referred use case diagram: UC-11

CR-9: Admin Panel Software/Technology used: ReactJS, ReactBootstrap, PrimeRe-act, PostgreSQL and Node.js

Feasibility Evidence: Admin panel prototype

11

Feasibility Evidence Description (FED) Version 1.1

Referred use case diagram: UC-12, UC-13, UC-14, UC-15, UC-16, UC-17, UC-18, UC-19, UC-20

3.3. Evolutionary FeasibilityTable 7: Evolutionary Requirements and Their Feasibility Evidence

Evolutionary Require-ment

Product Satisfaction

ER-1: Scalability of the system

Software/Technology used: AWS

Feasibility Evidence: This application have plan to deploy on AWS which is a scalable and highly available server.

Referred use case diagram: -

12

Feasibility Evidence Description (FED) Version 1.1

4. Process FeasibilityDecision Criteria Rating Scale: 0:Very Low; 1:Low; 2:Medium; 3:High; 4:Very High Impor-tance Rating Scale: 1:Low; 2:Medium; 3:High

Table 8: Rationales for Selecting Architected Agile Model

Criteria Importance Project Status Rationales

30 % of NDI/NCS features 3 4 Using ReactJS, ReactBootstrap, PrimeReact

Single NDI/NCS 1 0 There is no a NDI/NCS that can support all project expectation.

Unique/ inflexible business process

2 0 The business process is not unique and able to negotiate wit h client.

Need control over upgrade / maintenance

3 1 Project should be easy to add more metrics.

Rapid deployment 2 2 The deployment deadline is Apr, 20 2018. I

Critical on compatibility 3 3 This project must compatibility with chrome browser.

Internet connection inde-pendence

1 0 Need internet connection to connect with backend server.

Need high level of ser-vices / performance

3 2 20 users can work on the sys-tem simultaneously.

Need high security 3 4 User and password requires for user authentication.

Asynchronous communica-tion

1 0 All communication are syn-chronous.

Be accessed from any-where

3 4 Internet is need to access web application.

Critical on mass schedule constraints

1 0 No mass schedule.

Lack of personnel capabil-ity

3 1 Team members have enough skill on web application tech-nology.

13

Feasibility Evidence Description (FED) Version 1.1

Require little upfront costs 2 3 All developer tool and library are open-source. We have a plan to deploy on AWS when our project is more stable.

Require low total cost of ownership

2 2 Need to pay for AWS, Domain hosting and SSL Certificate.

Not-so-powerful local ma-chines

1 4 Not require powerful local machimes.

From Table 8 Rationales for Selecting Architected Agile Model, SQAaaS project match with an Architected Agile team project status with the NDI-Intensive Decision Pattern the most.

14

Feasibility Evidence Description (FED) Version 1.1

5. Risk AssessmentTable 9: Risk Assessment

# Risks

Risk Exposure

Risk MitigationsPotential

MagnitudeProbability

LossRisk Expo-

sure

1 Not consulting end users, and focusing on Pooyan will result in a system that is not accepted.

6 8 48 Should gather feedback and interact with eventual end-users to establish initial re-quirements

2 Scope creep to include substantial back end devel-opment

4 8 32 Review back end code and identify structural elements to retain, document existing API endpoint, and strate-gize for alterations on ap-plication database and new end point creation; learn with incremental prototyp-ing

3 Programmatic testing might go unexplored

4 8 32 Consider the risks of not in-cluding code-based testing practices. Research avail-able options and possibly implement tests, depending on risk factors.

4 Collaboration may be dif-ficult, and siloing may oc-cur within the team.

3 9 27 Establish a plan for collabo-ration, so that very large de-liverables are not assigned to only an individual.

5 Obsoleteness due to COTS products

4 6 24 Examine alternatives (tableau), and assess how our product might exceed its use-case.

15

Feasibility Evidence Description (FED) Version 1.1

7 Client doesn’t have final idea on user interfaces

2 8 16 Use feedback from upcom-ing CCD with client.

7 Not sure how to imple-ment Email Verification

4 4 16 Investigate how to send email verification using Ex-press JS, Investigate differ-ent email packages(Mailgun/SMTP email client)

8 Vague definiition of statis-tical analysis view may lead to wasted time and energy, an unsatisfied client, and disapproving users

3 5 15 Prototype several proto-types for layout and data vi-sualization to narrow down implementation options

9 Deployment, hosting, and certificate assignment will be prioritized for later in the project since there will be little to deploy initially, leading to a stressful scramble as the semester nears completion.

2 7 14 - Need to make decision on domain - Will we have shell access on host? - Using LetsEncrypt for SSL, we'll need to run Cert-bot ACME to demonstrate this control

10

Bikeshedding will be pref-ered over prototyping, ca-suing a lack of prototype options to chose from.

3 4 12 Focus on creating actual prototypes. Generate at least 3.

11

Not sure about new system scalability

3 4 12 Explore restructuring the data

12

Have no experience on NodeJS login system; ac-cess tokens, token expired time, etc.

2 5 10 Research, implement login service and integrate test with current React Application.

16

Feasibility Evidence Description (FED) Version 1.1

13

React may be difficult to learn quickly

1 8 8 Continue incremental learn-ing with prototyping

17

Feasibility Evidence Description (FED) Version 1.1

6. NDI/NCS Interoperability Analysis 6.1. IntroductionThis project plans to develop using ReactJS as a frontend framework, Node.js as a backend and Postgres as a database. This application runs on Docker and plans to deploy on either Herculus or AWS. There will be other third-party framework to be integrated with the system such as D3.js, React-bootstrap, Canvas, Axios, Mocha. Some of NDI still in the evaluation process and haven’t finalized such as Jenkins, Mailgun and Buildbot

6.1.1. COTS / GOTS / ROTS / Open Source / NCSTable 10: NDI Products Listing

NDI/NCS Products Purposes

React.js Front-end framework for the system

D3.js Javascript data visualization package

React-bootstrap Componentized bootstrap React module

Canvas

Added in HTML5, the HTML <canvas> element can be used to draw graphics via scripting in JavaScript.

Bootstrap Style Package

React-table React table component

Node.js Backend Server Technology

Docker Container

Axios HTTP requests

Jenkins Continuous Integration

Mocha Unit & end-to-end testing

Mailgun Email service

Buildbot Continuous Integration

6.1.2. Connectors

Connectors Purposes

18

Feasibility Evidence Description (FED) Version 1.1

axios Promise based HTTP client for the browser and node.js

Bluebird & pg-promise Enable Node.js backend to retrieve and query data from Postgres database.

6.1.3. Legacy System• There is no legacy system. • The client provides UI prototype implemented by AngularJS. This prototype shows a rough

design. The team implements a new web application based on it.• The client expects web application to develop using ReactJS and PostgreSQL.• Web server should be either Hercules or AWS

6.2. Evaluation SummaryTable 11: NDI Evaluation

NDI Usages Comments

React.js Front-end framework for the system

Positive Points• Virtual DOM in ReactJS makes user

experience better and developer’s work faster

• ReactJS permits reusing code compo-nents – significantly saving time

• One-direction data flow in ReactJS provides a stable code

• An open-source library: constantly de-veloping and open to contributions

Negative Points • High pace of development • Poor documentation

D3.js Javascript data visual-ization package

Positive Points• It’s elegant and beautiful• Lightweight• Highly customizable• huge communityNegative Points• Steep learning curve• D3 doesn’t support IE 6, 7, 8. It’s

sometimes not smooth on IE 9• Doesn’t support chart export

19

Feasibility Evidence Description (FED) Version 1.1

React-bootstrap Componentized bootstrap React module

Positive Points• It’s elegant and beautiful• Lightweight• huge communityNegative Points• The project is under active develop-

ment, and APIs will change.

Canvas Added in HTML5, the HTML <canvas> element can be used to draw graphics via scripting in JavaScript.

Positive Points• Good Rendering Support• ensures better interactions, enabling

the user to operate with ease with the content

Negative Points• Scalability Issues• Extremely Dependable on JavaScript

Bootstrap Style Package Positive Points• Great standardized platform with all

the basic styles and components needed (layout grid, panels, tables, buttons, modals, form styles, etc) to build on which saves a lot of time.

• Support for all major browsers and fixes CSS compatibility issues.

• Consistent UI that looks good out of the box.

• Lightweight and customizable (on their site or via less and sass) files so you can include only what you use.

• Designed with responsive structures and styles for mobile devices.

• Good documentation and community support.

React-table React table component

Positive Points• Lightweight

• Minimal design & easily themeable• Easy to implement

20

Feasibility Evidence Description (FED) Version 1.1

Node.js Backend Server Technology

Positive Points• Easy to Learn• Freedom in Building Apps• Fullstack JS• Active CommunityNegative Points• Unstable API

Docker Container Positive Points• well documented• Easy to distribute/collaborate on your

app's operating system with a team• run your code on your laptop in the

same environment as you have on your server

Axios HTTP requests Positive Points• Lightweight• Easy to implement

Jenkins Continuous Integration

Positive Points• Customization• Full control of the systemNegative Points• Time needed for configuration / cus-

tomization

Mocha Unit & end-to-end testing

Positive Points• Integrates really well with NodeJS• Runs in Node.js and the browser• Promise supportNegative Points• Can be intimidating for beginners

Mailgun Email service Positive Points• Easy setupNegative Points• All Mails from Mailgun for GMAIL

going in spam.

Buildbot Continuous Integration

Positive Points• supports distributed• supports parallel execution of jobs

across multiple platforms• flexible integration with version-con-

trol systemsNegative Points

21

Feasibility Evidence Description (FED) Version 1.1

• Poor documentation• Small community

22