Real Estate Investment & Review Tool Team #2 - 15th October 2018 Alex Miller - Ashley O’Brian Venkata Sravanti Malapaka - Yuxuan Chen - Yonghyun Cho Md Shadman Rafid - Shiraksha Rao - Vikram Mudaliar Webber Wang - Jose G. Vicente H.
Agenda Remote Team Member Operational Concept Description Requirements Prototype Architecture Life Cycle Plan Feasibility Evidence Quality Focal Point
Remote Team Member
Team Strong Points Operational View Technical View Team members are very collaborative and goal oriented, they are always willing to help. Everybody has taken up their role and has been productive. Team members are always eager to learn new technologies (AngularJS, GraphQL) and tools (JIRA, GIT). Team keeps regular communication using “Whatsapp” and “Slack”. Weekly meeting. Team uses effectively the free resources provided by internet. Ex. Google Drive, Google Docs.
Team Weak Points Operational View Mitigation Technical View Mitigation Difficult to set meeting hours where everybody is available due to different personal schedules. Using internet resource as “doodle” we can find the time periods that fits the best for most of the team members. As this is a two semester project and some of the team members will be not in second semester. We are going to lose knowledge. Make sure that the architectural decisions and code are well documented. Technical View Mitigation Most of team members don’t have experience in IT industry. Look for expert experience in current course, in internet, and using it as reference. Most of team members don't have experience using Angular JS or GraphQL. Look for tutorials and documentation in internet.
Technical Concerns And Solutions AngularJS requires a lot of JavaScript files to load and this can result in website performance issues. Dynamic on demand load of JavaScript files using other products like RequireJS. Module dependency management Create unit and integration tests. Incorrect or inadequate interfaces with other systems like Zillow or Google API. We need to manage versions of the web or rest APIs provided by Zillow and Google. GraphQL poor performance for complex queries. Enabling Apollo Engine to cache query results for a certain time. Deficient website usability and understandability.. We provide prototypes to the client in order to know if the design is going well.
Operational Concept Description
System Purpose The Real Estate Investment and Review Tool is built for people with money who would like to invest on property to rent out. This allows prospective investors a medium to search for trustworthy and capable service providers. Investors can keep track of the financial performance of their properties. Users can review and rate service providers with whom they have worked or know. Service providers can reply to reviews on their page. People can discuss on different topics the discussion boards. Admin can use the blog to post about related topics.
Shared Vision Create a web application to find, review, rate and discuss about Service Providers in real estate sector. Web application to allow users to track their investments. Provide service providers ability to reply to reviews about them. Provide the admin with an ability to access the website usage statistics, to post on the blog and to moderate the site.
Program Model Stakeholders Initiatives Value Propositions Assumptions: Users will use the website once its deployed. Website will always be up from the server side. Website is able to connect with Google and Zillow APIs. Client (Maintainer) keeps the system updated and moderated. Users provide and add to the list of service providers over time. Stakeholders Initiatives Value Propositions Beneficiaries Developers: Team Members Client: Alex Miller Ashley O’Brian Maintainer (Admin): Users: Investors Service Providers Develop the website. Provide Requirements Win Conditions Hosting the System Feedback/Input Provide initial Service Provider data to populate the system. Use the System Test the System Moderate the Site Post on the Blog Add service provider data when needed Provides a trustworthy platform for new investors to search for service providers in an area no known to them. Decreases the amount of time, effort and money previously spent by investors to search for service providers Allowing investors to track the financial performance of their past investments which they used to do in the past with the help of an excel spreadsheet. Decreases the complexity of tracking the financial performances of investors’ properties. Client Unregistered Users
Benefit Chain Diagram
System Boundary & Environments
Element Relationship Diagram
Review Service Provider Core Capabilities Capability Description Priority Login/Logout Any registered user should be able to login/logout using the email address and password they used to create their account High User Types The user privileges should be separate according to the type of user one is i.e. Unregistered user, Investor, Service Provider, Admin etc. Search Any user registered or unregistered should be able to search for service providers by any field like name, area, address etc. Review Service Provider Any registered user should be able to review and rate a service provider. Track Investment Any Investor who has added properties to his/her profile can track the financial performance of those properties using the tracking tool Add Service Provider Any registered user can create a new profile for a new service provider providing all the required information as required by the website. Reply to Reviews A service provider should be able to reply to any review left on his/her page.
Level of Service Goals Level of Service Goals Priority Browsers Supported: Safari, Firefox, Chrome, Edge High RWD/Mobile Capability: Desktop, Laptop, Smartphone Database Scalability: Be able to handle and ever increasing list of service providers and users in the website System information shall always be accessible to manager or admin System shall be able to differentiate between different users accessing the website.
Organizational Goals Organizational Goal Priority Provide a trustworthy and easy to access platform to provide service provider data. High Provide investors easy means of tracking financial performance of their investments. Provide service providers a free platform to advertise and market their businesses. To reduce the physical and financial costs for prospective investors to look for service providers for their properties. To provide the community a means of discussing different topics and occurrences related to the real estate industry Medium
Constraints API Requirements: System should be able to extract information from Zillow, Google and other APIs required to track the financial performances of properties added by investors. OS Requirements: The Client wanted the development of the website to be Windows centric.
Business Workflow Search Service Providers - User Write Review – Registered User Business Workflow
Business Workflow Create New Service Provider Page- Registered user Create New Service Provider Page- Service provider Business Workflow
Business Workflow Add, Compare Track Property - Investor Read and reply to review - Service Provider Business Workflow
Business Workflow Read or Share blog –User Read, Create, Join Discussion – Registered User Business Workflow 21
Requirements
Win Conditions Priority Score Win Win Condition 0.850 0.813 WC- 1 As a registered user, I can reset my password through an email authentication system 0.850 WC- 2 As a non-registered user, I can create an account from a link on the home page 0.813 WC- 2.1 Registered user can make pages or profiles for service providers WC- 2.2 As a registered user, I can choose to activate two factor authentication for login WC- 2.3 Registered user can login using Social Media sites
Win Conditions (Contd) Win Win Condition Priority Score WC- 3 As a registered user, I can manage investments to my investment profile 0.781 WC- 3.1 Registered user can track an investment property by inputting the address, rent, purchase price, loan amount, down payment, and expenses WC- 3.2 Registered user can export my tracking tool data to a “CSV” file WC- 3.3 Registered user can see the performance of my investments over time using the visualization tool WC- 4 As an administrator, I can view website utilization statistics 0.698
Win Conditions (Contd) Win Win Condition Priority Score WC- 5 As an unregistered/registered user, I can view a list of service providers 0.650 WC- 5.1 Unregistered/registered user can search for service providers WC- 5.2 User can find a service provider by email, phone number, or name WC- 5.3 User can I have access to service providers contact information WC- 5.4 Non-registered user can search service providers by state, city, and service type (eg. Real Estate Agent, Property Manager, Contractors, etc)
Win Conditions (Contd) Win Win Condition Priority Score WC- 6 As a registered user, I would like to leave reviews for service providers 0.594 WC- 6.1 Service provider can see the reviews posted about them by others. WC- 6.2 Registered user can rate a service provider without leaving text reviews WC- 6.3 Registered user can vote on reviews WC- 6.4 Verified Service provider can reply to reviews left on their page WC- 6.5 As a non-registered user, I can read reviews
Win Conditions (Contd) Win Win Condition Priority Score WC- 7 As a site admin, I have at least all of the same permissions as a registered user 0.523 WC- 7.1 Administrator can verify the identity of a Service provider WC- 7.2 Administrator can post articles to the blog WC- 7.3 Admin can remove a flagged user WC- 7.4 As an administrator, I can moderate the user created content
Win Conditions (contd) Win Win Condition Priority Score WC- 8 Registered use can adjust their email notification settings 0.239 WC- 8.1 As a user (investor or service provider), I will receive notifications by email about the comment reviews others have registered WC- 9 Non-registered user can read the site blog 0.230 WC- 9.1 Non-registered user can share blog posts on popular social media applications through links inside of the blog WC- 9.2
Win Conditions (contd) Win Win Condition Priority Score WC-10 Registered user can start a discussion in the discussion board of the site 0.227 WC-10.1 Non-registered user can read the site discussion board WC-10.2 Non-registered user can search the discussion board using text input
Prototype
Service Provider List - (backup slide)
Service Provider Search - (backup slide)
Service Provider Profile - (backup slide)
Review - (backup slide)
Review - (backup slide)
Review - (backup slide)
Investments
Investments
Investments
Architecture
Top Level Logical Architecture
Top Level Physical Architecture
Class Diagram
Unregistered User Use Cases
Investor Use Cases
Service Providers Use Cases
Administrator Use Cases
System Context Diagram
Unregistered User Use-Cases REAL ESTATE INVESTMENT AND REVIEW TOOL
Registered User Use-Cases REAL ESTATE INVESTMENT AND REVIEW TOOL
Admin Use-Cases REAL ESTATE INVESTMENT AND REVIEW TOOL
Life Cycle Plan
Key Stakeholders STAKEHOLDERS ROLES Alex Miller Client and Website Maintainer Ashley O’Brian Client Shriraksha Rao Feasibility Analyst, Trainer Yonghyun Cho Requirements Engineer, Developer Yuxuan Chen Developer/ Prototyper, Trainer Vikram Mudaliar Life Cycle Planner, Software Architect Md Shadman Rafid Operational Concept Engineer, Trainer Venkata Sravanti Malapaka Project Manager, Software Architect Webber Wang Tester, Quality Focal Point, Developer Jose Gabriel Vicente Hernandez IV and V, Tester
Future Plan 1/2
Future Plan 2/2
COCOMO II Scale Drivers Factors Scale Rational Precedentedness Very Low No existing or similar System Development Flexibility Nominal Client’s negotiation is achievable and requirement is acceptable Architecture/Risk Resolution Majority of the risk is avoidable by following mitigation strategies Team Cohesion High Seamless Interaction in the team Process Maturity ICSM Principle Process Maturity - KPA (Key Performance Area)
COCOMO II Cost Drivers Login: DATA - Larger DataSet because of login credentials CPLX - Moderate Level Computational Operation & simple GUI builder SITE - Multisite Development (Multicity and Phone) Investment Page: CPLX - Use of standard math and statistical routines Tool - Software tool - Chart.js
COCOMO II Cost Drivers Search SP CPLX - Use of standard matching technique SP profile RELY - Required Software reliability (Trust requirement) CPLX - Evaluation of simple expression and simple read and write statement RUSE - The code can be reused for Investor’s profile creation
COCOMO II Cost Drivers ●Analysis Result: SLOC: 15129 Effort needed:- Optimistic: 26.6PM Most Likely: 33.1 PM Pessimistic: 41.4 PM ●Total time: 152 Hours/PM
Feasibility Evidence
Google Authentication API Analysis of NDI & COTS COTS Purpose Get Zestimate API •Extract the price associated with the properties Google Authentication API •Google Sign-In a secure authentication System instead of User Login •Connecting to Google user and service securely AngularJS •Comprehensive for Frontend development •Easier Data binding •Popular Language now and in near future NodeJS •High performance •Tight binding between Client and Server •Data Streaming - reducing the overall duration of the process Google Places API •Determines the physical location of the business •Provides places autocomplete and Query autocomplete
Business Case Analysis Objective ○Analyze cost and benefit of the project ○Calculate ROI value Steps ○Cost Analysis ○Benefit Analysis ○ROI Analysis
Business Case Analysis – Cost Analysis Cost includes Personal Cost , Hardware and Software Cost 1) Personal Cost Activities Time Spent (Person/Hour) Client Meeting 6 Win Win negotiation sessions 1 and 2 2 Weekly Team Meeting 4hr*4 week = 16 Development and Prototyping 12hr * 1 Person * 4 week = 48 Total 72 Maintenance Cost 2hr/week Total (PH/year) 108
Business Case Analysis – Cost Analysis 2) Hardware and Software Cost Type Cost Rationale Web Domain $12/yr Uses same infrastructure as Google as a result can be accessed faster AngularJS, NodeJS Free Free Frontend and Server side Scripting language GraphQL Free Data Storage – open source to fulfill query based on the available data APIs – Zillow, Google, Facebook, LinkedIn License Free APIs with License
Business Case Analysis – Benefit Analysis ●Non-financial benefits and cost ○Reduced amount of man-hour required to store and view the investment data ○Increase in Organization reputation and trust ○Easier to associate highly rated Service Provider with customer - increasing usability Activities & resources used % Reduce Time saved (Hours/Year) Investment tracking tool 98 62 Review of Service Provider 95 90 Total 152 Increase in Organization reputation and trust: the website will be the main point of contactbetween an Investor and Authorized service provide in or out of state
Business Case Analysis – ROI Analysis ●To determine the assurance of Project feasibility Year Cost Benefit Cumulation Cost Cumulation Benefit ROI 2018 72 -1 2019 108 152 180 -0.25 2020 118.8 298.8 304 0.02 2021 130.68 429.48 456 0.06
Business Case Analysis – ROI Analysis
Architectural Feasibility
Architectural Feasibility - LOS Level of Service Requirement Product Satisfaction LOS-1: Usability - The system will represent User’s investments using graphical visualization tool Product Strategy: GraphQL, Zillow API,& Chart.js Process Strategy: Line graph can be used to represent the investment of the Investor over month LOS-2: Performance - System will search for only authorized service provider based on location and Professional information Product Strategy: Google Places API Process Strategy: Maps the search to the location determined by the user LOS-3: Responsive - The system should be rendered properly on various browsers/devices Product Strategy: AngularJS - Custom Directive Process Strategy: Testing the website on different platform
Architectural Feasibility – Capability Feasibility Capability Requirement Product Satisfaction CR-1: Locate Service Provider Software/Technology used: GraphQL query Feasibility Evidence: Obtains accurate Service provider based on their information store in DB CR-2: Chart for Investment Statistic Software/Technology used: Chart.js Feasibility Evidence: Simplifies adding chart to web application for visualization by the user CR-3: Login - using social media Software/Technology used: Social media APIs Feasibility Evidence: Develop a prototype to determine the feasibility of third-party system login Locate Service Provider: Determines the Service providers based on location and personal information Investment Statistic: Generates the investment statistics based on the range/feature provided by the investor
Architectural Feasibility - Evolutionary Feasibility Evolutionary Requirement Product Satisfaction ER-1: Creating a Discussion Board on the website Software/Technology used: WordPress -> Forum Feasibility Evidence: Easy to create and use by the Registered User ER-2: Creating a Blog section Software/Technology used: WordPress Feasibility Evidence: Allowing people to interact and comment with ease
Risk and Risk Mitigation P(L) S(L) RE Risk Mitigation Update and Upgrade to API 8 5 40 Risk Avoidance - Compatible code and Reference/incremental checking Data Privacy and Security 2 7 14 Risk Transfer – Mitigating risk by using Encryption standards or COTS Data Reliability 4 Buying Information – Authorizing the Service provider based on the approval from the organization Risk Exposure Data Privacy and Security - third party tracking system embedded in the website
Quality Focal Point
Traceability Matrix WC-3: Investment tracking WC-5: Service Providers Requirements ID Verification Type Test Identifier Test Case [WC-1] A registered user can reset password through email Testing [TC-01] Password reset [TC-01-01] Check that a user can request & reset password using a URL [TC-01-02] Check that the user can login with the newly reset password. [WC-2] A non-registered user can create account from a link on the home page [TC-02] Account creation [TC-02-01] Check that the signup on home page links to the signup form [TC-02-02] Check that the signup form successfully registers a new user [WC-3] A registered user can manage investments on the investment profile page [TC-03] Investment tracking tool [TC-03-01] Check that a registered user can add an investment property with property details WC-3: Investment tracking WC-5: Service Providers
Traceability Matrix (Contd) Requirements ID Verification Type Test Identifier Test Case [TC-03-02] Check that a registered user can export the tracking data to a “CSV” file [TC-03-03] Check that a registered user can view the investment metrics with a visualization tool [WC-4] An admin can view website statistics Testing [TC-04] Website Analytics [TC-04-01] Check that admin can view analytics such as site traffic, bounce rate, avg time on page [WC-5] An user can view a list of service providers [TC-05] Viewing service providers [TC-05-01] Check that both registered & unregistered have permission to view service providers
Traceability Matrix (Contd) Requirements ID Verification Type Test Identifier Test Case [TC-05-02] Check that service providers can be searched for using email, phone number, name, location, or service type [WC-05-03] Check that the service provider’s contact info is available for the user [WC-6] A registered user can leave reviews for service providers Testing [TC-06] Review system [WC-06-01] Check that a registered user can leave reviews for providers [TC-06-02] Check that a registered user can leave reviews without text [WC-06-03] Check that a service provider can read their own reviews given by others
Traceability Matrix (Contd) Requirements ID Verification Type Test Identifier Test Case [TC-06-06] Check that a registered user can vote on reviews (like/unlike) [TC-06-07] Check that only a verified service provider can reply to reviews [WC-7] An admin has at least all of the same permissions as a registered Testing [WC-07] Admin privileges [WC-07-01] Check that an admin can edit the verification status of a service provider [WC-07-02] Check that an admin can delete a flagged user [WC-07-03] Check that an admin can delete user content
Traceability Matrix (Contd) Requirements ID Verification Type Test Identifier Test Case [WC-8] Registered user can adjust their email notification setting Testing [TC-08] Notification system [TC-08-01] Check that a registered user can update email notification setting in his profile [TC-08-02] Check that a registered user receives a notification when a review is posted [WC-9] Non-registered user can post blogs [TC-09] User permissions [TC-09-01] Check that a non-registered user can share blogs using a link [TC-09-02] Check that a non-registered user can read a blog [WC-10] Non-registered user can start a discussion on the discussion board [TC-10-01] Check that a user can start a discussion [TC-10-02] Check that a user can search discussions using text input
Traceability Matrix Summary Completed Incompleted Total Requirements 2 8 10 Passed Failed Untested Total Test Cases 5 1 19 25
Defect Injection and Removal Matrix Avoidable Defects: Modules dependency could be broken. COTS package may not integrate with codebase Unavoidable Defects: C. Diagrams don’t reflect the current requirements D. Inability to test on client’s server environment Defect Injection Phase Defect Removal Step Requirements Design Coding Total Requirements Review C 1 Design Review B Testing D A 2 Customer Detected 4 Map each defect by which phase the defect started in, and when it phase it can be removed
Quality Management Strategy: Defect Prevention Priority Level Description Buying Information High Team Identify key risk areas through prototyping, allow better resource managements. Following good coding standard Personal, Team Good practices help reduce number of bugs introduced Version control Version tracking allows work to be merged more easily Peer Review Medium Team review helps coders catch errors before committing them to the codebase Team Meetings Weekly meetings can help prioritize and mitigate risk
Quality Management Strategy: Defect Detection Automated Testing: Unit test the individual modules before system wide integration. Integration tests validate modules still work after integration Code linting: Run a program that analyzes code for potential errors Checks for adherence to coding standards or conventions UI/UX Testing: Test for functionality & performance of user interface Code Review Help identify additional bugs that automated tests can’t catch
Quality Management Strategy: Defect Tracking Jira Each defect is created as a new issue with Issue Type “Bug” Quality Focal Point will prioritize defects and assign them accordingly Bi-Weekly Risk and Defect Report: All team members may contribute additional risk items to the report Track progress of identified defects and quality of solutions
Technical Debt Description Category 1 Category 2 Fixed? How to fix it? Active Weeks Lack of unit tests and integration tests Methods, Tools & Process Shortfalls Prudent Deliberate No Need to schedule time for create unit test and integration tests. 2 Undocumented code Need to schedule time to comment code. Our system has technology that not all developers are familiar with Personal Shortfalls Reckless Inadvertent Yes Need to delegate portions of development to proper teammates 1
Definition of done Code associated to the requirement completed. Code with unit and integration tests. Code well commented. Code reviewed for at least two different developers. Feature related to code tested in standalone server. Non-functional requirements accepted. Feature accepted by product owner. End-to-end user testing
Metrics considered by the team Requirements Volatility - number of changes in System requirements, each week Developer Code Review 3. Test Defect per LOC- measuring test defects incrementally whenever there is an increase in the number of lines of code (per added feature)
Questions
Thank you!