Business Case Analysis Assumptions Users want a way to analyze the quality of the software they have developed, managed, or invested in. Users will make business decisions based on the findings revealed by the software quality analysis. 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: Develop system Maintainer: Maintain 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 metrics. Users able to analyze projects using various software quality metrics. Users able to evaluate development team member contributions to software quality Opportunity to fix major flaws identified by software quality metrics. Grow system’s customer base. Users can better understand 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 and value Cost Analysis 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
Risk Assessment Table 9: Risk Assessment # Risks Risk Exposure Risk Mitigations Potential Magnitude Probability Loss Risk Exposure 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 to establish initial requirements 2 Scope creep to include substantial back end development 4 8 32 Review back end code and identify structural elements to retain, document existing API endpoint, and strategize for alterations on application database and new end point creation; learn with incremental prototyping 3 Programmatic testing might go unexplored 4 8 32 Consider the risks of not including code-based testing practices. Research available options and possibly implement tests, depending on risk factors. 4 Collaboration may be difficult, and siloing may occur within the team. 3 9 27 Establish a plan for collaboration, so that very large deliverables 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.
7 Client doesn’t have final idea on user interfaces 2 8 16 Use feedback from upcoming CCD with client. 7 Not sure how to implement Email Verification 4 4 16 Investigate how to send email verification using Express JS, Investigate different email packages (Mailgun/SMTP email client) 8 Vague definiition of statistical analysis view may lead to wasted time and energy, an unsatisfied client, and disapproving users 3 5 15 Prototype several prototypes for layout and data visualization 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 Certbot ACME to demonstrate this control Bikeshedding will be prefered over prototyping, casuing a lack of prototype options to chose from. 3 4 12 Focus on creating actual prototypes. Generate at least 3. Not sure about new system scalability 3 4 12 Explore restructuring the data
Have no experience on NodeJS login system; access tokens, token expired time, etc. 2 5 10 Research, implement login service and integrate test with current React Application. React may be difficult to learn quickly 1 8 8 Continue incremental learning with prototyping
D3.js Javascript data visualization package Positive Points It’s elegant and beautiful Lightweight Highly customizable huge community Negative 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 React-bootstrap Componentized bootstrap React module Positive Points It’s elegant and beautiful Lightweight huge community Negative Points The project is under active development, 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
Jenkins Continuous Integration Positive Points Customization Full control of the system Negative Points Time needed for configuration / customization Mocha Unit & end-to-end testing Positive Points Integrates really well with NodeJS Runs in Node.js and the browser Promise support Negative Points Can be intimidating for beginners Mailgun Email service Positive Points Easy setup Negative 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 systems Negative Points Poor documentation Small community