Case Scenario
The Forest Health project aims to undertake a pilot study of a citizen science app to collect observations and data for environmental monitoring and evaluation of bushfire impacts on native forests and their post-fire recovery. The Forest Health project is looking for software developers to produce a production ready and scalable app which will enable much larger cohorts of citizen scientists to perform data collection.
Requirements
The Overall System: The Forest Health platform (API backend and database) is expected to have thousands of users. It must be scalable and affordable with a capacity to process up to 100 requests per minute with heavier burst periods expected to align with weekends and public holidays. Allowing for growth, the application should be able to manage 500 requests per minute.
The platform includes an Internet-facing Application Programming Interface (API) to facilitate users of the mobile application sending data to the backend database. The mobile application will interact with the API to send collected location and sample data to the database. It also includes a dashboard for visualisation of the collected data and an interface to interact with the backend database directly via SQL requests.
The Database: A PostgreSQL database is the preferred option due to the familiarity of the research team, but it can also be other database systems given good justifications. The research team will need to interact with the database via SQL queries and perform database administration tasks, while the end users of the mobile application will interact with the database via the API.
The Mobile Application: The mobile application will be available for the iOS and Android mobile platform, as well as internet browsers, and will allow citizen scientists to collect and upload data about a specific location including:
Geotagged photo of the survey area
Date and Time
Landscape Position: Flat / undulating, Ridge or hill, Slope, Valley / gully
Vegetation Type and its Development stage:
oTypes: Eucalypt forest (fern or herb), Eucalypt forest (grassy), Eucalypt forest (shrubby), Rainforest, Riparian;
oStages: Old, Mature, Regrowth, Mixed, Few trees present.
Burn Severity and Recovery stage of flora:
oSeverity: Unburnt, Low, Moderate, High, Extreme
oGround Layer Recovery: Unburnt, New Growth visible, No new growth, No ground cover present
oShrub Layer Recovery: Unburnt, Shoots present, Seedling’s present, Both shoots and seedlings present, No shoots or seedlings present, No shrub layer present
oSub canopy layer recovery: Unburnt, Shoots present, No shoots present, No sub canopy present
oTallest tree layer recovery: Unburnt, Basal shoots present, Epicormic shoots present, Epicormic and basal shoots present, No epicormic or basal shoots present.
Species Name or Animal type of any fauna that are noticed in the survey location.
Record of Bird or Animal calls in survey location.
The state of any flowering plants: Ground Layer, Shrub Layer, Upper Canopy Layer
Optionally, Altitude and/or barometric pressure.
Optionally, Compass direction, accelerometer data.
The mobile application will often be used in remote locations with poor or no mobile service and therefore will need to cache any collected data and synchronize with the API once the mobile phone is back within service range.
No specific advice regarding the style of the application has been provided therefore, UI/UX design will be at the discretion of the development team.
Deliverables and Final Report
Task 1. Executive Summary
Provide an overview of your project with some background information (including what the prototype is and how it relates to the Forest Health project), the project stakeholders (imaginary names can be used), project objectives (i.e., what you want to achieve with the prototype), the milestones and overall time estimation, and a list of deliverables. Also, outline the content of this final report. (5 points, minimum 300 words)
Task 2. Project Plan
This task requires you to develop the project plan. (20 points)
You should plan the scope of the project based on the personnel and expertise of your team and the time allocated to the assignment. Specify what you are going to develop, what it is expected to achieve, and how this can be tested. Note that your prototype only needs to reflect certain aspects of the Forest Health application, e.g., some user interfaces and/or interaction, some related functionality, or the database, etc. The development workload should be appropriate with respect to the allocated time of the assignment, and the prototype should be demonstratable and testable.
Then, come up with a sensible list of items in your work breakdown structure. This should contain all of the deliverables involved in this project, including your project plan.
The activity definition should further specify the tasks identified in the work breakdown structure, analyse their dependencies, and provide some time estimates.
Then, you should be able to construct a Gantt chart to complete your project plan. The project plan with its updated versions should be submitted in each sprint.
Task 3. Requirements Analysis
This task requires you to model and analyse the requirements. (20 points)
Based on the case scenario, you need to identify different stakeholders and understand their requirements. You will not be able to approach the real client (the research team) but you may interview your classmates or friends outside your team as end users. Note that the requirements must cover but not necessarily limited to what can be shown in the prototype. Separate non-functional and functional requirements.
Specify the requirements using User Stories or the FURPS framework, i.e., listing the requirements under different categories.
Model the requirements of the system in a Use Case diagram, and describe one use case in full detail with a complete description of one scenario.
Model each of the functional requirements as a Requirement Behaviour Tree (RBT), and integrate them into an Integrated Behaviour Tree (IBT).
The requirement specification should be submitted by the end of the first sprint.
Task 4. Prototype Development
This task requires you to develop the prototype. (20 points)
If you are developing a prototype of the UI/UX, you can use prototyping tools such as Marvelapp https://marvelapp.com/
If you are implement certain functionalities, you can use any programming language of your choice. Make sure your code is well commented, executable, and testable.
If you are developing the database, you can design your database using UML diagrams and convert your design into the table structures. Also, you need to implement your database with SQL and populate your database with some synthesized data.
Task 5. Project Testing
This task requires you to create a test plan and perform the testing. (20 points)
The test plan should contain the overall test strategy, including the test environment, test inputs, and expected test results. It can involve unit test, integration test, performance test, customer acceptance test, or any mixture of them.
For customer acceptance testing, you can invite your classmates or friends. You may record the testing process as a video.
For testing functional requirements, such as unit tests and integration testing, create a set of test cases. Each requirement must be covered by at least one test case. You need to demonstrate the application of equivalence partitioning and boundary value analysis in your test cases.
Task 6. Software Process
The final task requires you to discuss software metrics and software process. (5 points)
Based on the objectives of the overall project (not necessarily limited to your prototype), apply the Goal/Question/Metrics paradigm to design two corresponding metrics. Then, justify the validity and reliability of your metrics related to the goals, and explain how to collect the required data. (minimum 200 words)
ISO/IEC 29110 is the standards specification for the Software Development Lifecycle Model for Very Small Entities (VSEs) [1]. For example, Section 6.7 contains information about four activities, seven objectives and about eight work-products of project management. Pages 5-6 list the detailed process objectives of PM.O2. In order to achieve PM.O2 completely, pages 12-14 list all the relevant process activities and what those activities provide. Select a few examples from the standard and discuss them with relevance to your project.