Recent Question/Assignment
2813ICT Software Engineering Fundamentals Assignment
Trimester 2, 2022
Project Management
Requirement Analysis
Prototype Development
Software Testing
Rationale
The purpose of this assignment is to demonstrate your ability to initiate and manage a software project with proper methods and tools. You need to plan for your project and manage your project for timely completion. Also, you need to conduct requirements analysis and specification, so that document can be used as an input for software design. Then, you need to develop prototypes of your software and perform testing to validate your design. In the development process, you need to demonstrate your understanding of software best practices. All the concepts are introduced in the course but you may also need to carry out some research to show your learning ability.
Tasks
In this assignment, you will complete some major steps of the SDLC with different roles.
Firstly, as a project manager, you will prepare a project plan for the prototype development based on the resources in your team and the time allocated to the assignment. Task deliverables include an overview of your project (a brief executive summary about project stakeholders, objectives, and deliverables), a work-breakdown structure, a PDM for activity definition and dependency, and a Gantt chart for scheduling and time estimation.
Note: You are not required to plan for the whole software but only your prototype.
Secondly, as a requirements analyst, you will model and analyse the requirements using different modelling techniques. Task deliverables include a use case diagram, an integrated behavior tree, and a requirement specification (using the FURPS framework or User Stories).
Thirdly, as a developer, you will develop the prototype that covers certain aspects of the software such as UI/UX, account management, data storage and processing, etc. Then, you will also develop a test plan and carry out the testing on the prototype. Task deliverables include the prototype you developed, a test plan, and a report OR a short video clip showing the test results.
Finally, as a quality assurance manager, you will discuss some software metrics and justify their suitability to the project, and you will also prepare some guidelines to assist the software process. Task deliverables include documentation of the above aspects.
Agile & Teamwork
You are encouraged to practice Agile development with 2-3 sprints. You may work in a team of up to 3 students, or you can do the assignment by yourself.
In particular, if you work as a team, you may select a team leader as the product owner. If your team has 2 members, you MUST have at least 2 sprints and make a submission at the end of each sprint. If your team has 3 members, you MUST have at least 3 sprints and make a submission at the end of each sprint.
While you may take different roles, the workload should be evenly distributed, and by default, each student in the same team receives the same marks. If there is a concern of work contribution, please contact the course convenor at the earliest moment of concern.
Submission
A final report in PDF format and all other deliverables (e.g., diagrams, drawings, code, video, etc.) must be submitted at Learning@Griffith, one report per team with the following contribution history of the team members. You should use the report template provided as a starting point and make sure you present professional looking documents.
Date of Change Contributor Summary of Change
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: o Types: Eucalypt forest (fern or herb), Eucalypt forest (grassy), Eucalypt forest (shrubby),
Rainforest, Riparian; o Stages: Old, Mature, Regrowth, Mixed, Few trees present.
• Burn Severity and Recovery stage of flora: o Severity: Unburnt, Low, Moderate, High, Extreme
o Ground Layer Recovery: Unburnt, New Growth visible, No new growth, No ground cover present
o Shrub Layer Recovery: Unburnt, Shoots present, Seedling's present, Both shoots and seedlings present, No shoots or seedlings present, No shrub layer present
o Sub canopy layer recovery: Unburnt, Shoots present, No shoots present, No sub canopy present
o Tallest 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.
References
[1] Software engineering— lifecycle profiles for very small entities (VSEs). Technical Report, January 1st, 2012.