Sei sulla pagina 1di 27

Preliminary

Software Design & Development


HSC 2019
Assessment Task 2

Paint Calculation System

Page 1 of 27
Table of Contents

1. Stage 1: Defining and Understanding the Problem . . . . 4

1.1 Problem Definition . . . . . . . 4

1.2 Objective Requirement . . . . . . . 4

1.3 Objective Boundaries . . . . . . . 5

1.4 Allocation of Resources . . . . . . . 5

2. STAGE 2: Planning and Designing of Software Solution

2.1 Preliminary Analysis . . . . . . . 7

2.1.1 Schedule (Gantt Chart) . . . . . . . 7

2.2 Design Specification/Modelling . . . . . . 8

2.2.1 Abstraction/Refinement . . . . . . 8

2.2.2 IPO Diagram . . . . . . . 9

2.2.3 Context Diagram . . . . . . . 10

2.2.4 Data Flow Diagram . . . . . . . 10

2.2.5 Storyboards . . . . . . . 12

2.2.6 Structure Charts . . . . . . . 13

2.2.7 System Flowcharts . . . . . . . 14

2.2.8 Data Dictionary . . . . . . . 15

2.2.9 Algorithms . . . . . . . . 17

3. STAGE 3: Implementation of Software Solutions

3.1 Technical Documentation . . . . . . . 21

3.1.1 Log Book . . . . . . . . 21

3.1.2 Minimum Hardware and Software Requirements . . . 23

Page 2 of 27
3.2 User Documentation: Manuals Help and FAQ . . . . 23

3.2.1 Manuals Help . . . . . . . . 23

3.2.2 FAQ (Frequently Asked Questions) . . . . . 24

4. STAGE 4: Testing and Evaluation of Software Solutions . . . 26

4.1 Testing Using Test Data . . . . . . 26

4.2 Evaluating The Implemented Solution . . . . . 26

Page 3 of 27
STAGE 1: Defining and Understanding the Problem

1.1 Problem Definition

This software aims to calculate the amount of paint needed to cover the surface of a given
object. Paint is a part of everything; it is an essential part of design and building. It is very prevalent
in our world today, but there is a widespread problem. Many times, people either overestimate or
underestimate the amount of paint needed to paint over surfaces. Our program helps calculate the
amount of paint required to cover the whole surface of an object, which can be seen below. By
precisely calculating the amount of paint needed, unnecessary wastage can be avoided, and the hassle
of purchasing paint again can also be avoided by using this software.

Our program will be called the Paint Calculator. To use this program, several inputs are
needed. These inputs include the likes of the number of shapes that will be painted, the spread rate of
the paint (Liters needed per sq. meter), and also the dimensions of the shape that will be calculated.
After inputting the data, the user will need to verify if the shape is a 2-dimensional shape or a
3-dimensional shape. There will be three choices given for each dimension, which are a rectangle,
circle, and a triangle for the 2D, and cube, sphere, and also pyramid for the 3D. The surface area will
be calculated based on the data input by the user. After that, the amount of paint needed will be
calculated by the multiplication of the surface area, the number of shapes, and also the spreading rate
of the paint. This result, the amount of paint will then be displayed to the user in Litres.

1.2 Objective Requirements

For the objective requirements, the software needs to determine the surface area of the
respective shape. From acquiring the surface area, we can calculate the amount of paint required to
cover the surface. This software must be able to use the proper formulas for different shapes to
process the data from the user’s input (spreading rate of the paint (meters covered per liter of paint),
height, length, width, and number of coats, its 2D or 3D shape) and produce the output of the amount
of paint needed. The input data has to be able to hold up to 2 decimal places.The output, which is the
amount of paint necessary to cover the area of the object in liters, from this software must show an
exact result of up to 2 decimal places.

Page 4 of 27
1.3 Objective Boundaries

In our objectives, there are certain boundaries that we have established in developing our
solution. Our software cannot store data, as the software only needs to immediately generate an
output after processing of the user’s input. Therefore, our software does not require a database to
manage stored data. Whenever the application is closed, the calculations need to be done again. Our
software does not require an Internet connection. Our software will create a new SWF (Flash) file,
and give it to the user every time we create a new update. The update will be done manually because
of the small size of our program. Thus, with the current internet connection, updating would be
convenient, and the user will not encounter problems related to the slow update process. Besides that,
it is essential to note that the software cannot repeat itself. Therefore, if the user wishes to calculate
another SET of shapes, the user must restart the application. Lastly, our software will be made using
Adobe Flash, so it requires Flash Player to run the program. Without it, the software cannot run.

1.4 Allocation of Resources

In the creation of the software, each member has a role in this project, which includes the
programming, planning, and lastly documenting the final result of the findings. In programming, the
person will be assigned to design and code a computer program for accomplishing a specific
computing task. In this case, it would be creating a code that can calculate the amount of paint
needed for a particular shape.
The next role which is to plan the whole project this role is responsible for preparing the
schedule (Gantt Chart) of doing each portion of the project in each respective time. The planner is
also responsible in creating several things, such as abstraction/refinement, IPO diagram, context
diagram, data flow diagram, storyboards, structure charts, system flowcharts, data dictionary, and
algorithms. For this project, the whole team is responsible for making these items.
The last role being the documentation team is in charge of making the logbook. In making the
logbook the documentation team must write down the activities that happened during that particular
day. He will also have to make sure that the team is on track with the planning based on the Gantt
chart. In this project, everyone reminded each other to stay on track and finish the work accordingly.
In this project, we would need software resources such as Adobe Flash to create the paint
calculator software. We will need Adobe Flash to both design the interface and program the
software. In addition to that, we will also need an Adobe Flash Player to test the software of its

Page 5 of 27
functionality. Lastly, we continuously need an Internet connection to use Google Docs and Google
Sheets for the team to collaborate in making the software successfully.

1.5 Suitable Development Approach

We have decided that the RAD (Rapid Application Development) approach was the best
solution for many reasons. The first reason is that we are using the RAD is because the software can
be created in a short amount of time (5 months). We also have the ability and the existing software
(Adobe Flash) to create this software, so it's easy to access and utilize to create the software. In
addition to that, the budget to use in RAD is relatively low, so it is appropriate to use in our current
position as students. We do not have the human and financial resources to use advanced software
that requires skill and experience to operate. We believe what is vital in our software is its
functionality, and that is why we chose RAD as the suitable development approach in the creation of
the software.

Page 6 of 27
STAGE 2: Defining and Understanding the Problem

2.1 GANTT CHART

Page 7 of 27
For clearer image, refer to the excel file attached in Google Classroom

2.2.1 Abstraction/Refinement

Page 8 of 27
2.2.2 IPO

Input Process Output

Processing Item: paint_amount


- paint_spreadrate - surface_area
- shapes_number
- dimension_selection 1. GET shapes_number, paint_spreadrate, dimension_selection
- 2D_type_of_shape 2. If dimension_selection is TRUE, go to subroutine ​2Dimension​.
- 3D_type_of_shape If dimension_selection is FALSE, go to ​3Dimension​ subroutine.
- cube_side_length 3. In ​3Dimension​, GET 3D_type_of_shape. If 3D_type_of_shape
- sphere_radius is cube, go to a, if it is sphere, go to b, if it is square pyramid, go
- pyramidbase_length to c.
- pyramidslant_height a) Insert cube_side_length. Square the cube_side_length and
- rectangle_width multiply by 6 to achieve surface_area.
- rectangle_length b) Insert sphere_radius. Square the sphere_radius and multiply it
- circle_radius with 4 Π to achieve surface_area.
- triangle_base c) Insert pyramidbase_length and pyramidslant_height. Square the
- triangle_height pyramidbase_length and add by 2 times pyramidbase_length
times pyramidslant_height to achieve surface_area.
4. In ​2Dimension​, GET 2D_type_of_shape. If 2D_type_of_shape
is rectangle, go to a, if it is a circle, go to b, if it is a triangle, go
to c.
a) Insert rectangle_width and rectangle_length. Multiply the
rectangle_width with rectangle_length to achieve surface_area.
b) Insert circle_radius. Square the circle_radius and multiply it
with Π (pi) to achieve surface_area.
c) Insert triangle_base and triangle_height. Multiply
triangle_height and triangle_base with ½ to achieve
surface_area.
7. Multiply the paint_spreadrate with the surface_area and also by
the shapes_number to achieve paint_amount.

8. Display paint_amount.

Page 9 of 27
2.2.3 Context Diagram

2.2.4 Data Flow Diagrams

Page 10 of 27
Note:
- “Paint Amount (L):” is text data to complement the value of paint_amount

Page 11 of 27
2.2.5 Storyboards

Page 12 of 27
Notes for storyboard:
- Bubbles are to be double clicked to move to the next screen.
- After a field is filled and “Enter” key is pressed it will move to the next screen.
- The 2D bubble in the initial screen is filled because it is initially set to true.
2.2.6 Structure Charts

Page 13 of 27
2.2.7 System Flowcharts

Page 14 of 27
2.2.8 Data Dictionary

Variable Name Data Type Scope Length Purpose

paint_spreadrate Real Global 2 dec. places To determine how


many litres of paint
covers 1 sq meter

shapes_number Integer Global -32,768 to 32,767 To determine the


(values) quantity of shapes
of the same shape
and dimension the
user needs

dimension_selection Boolean Global 2 bit To determine


which dimension is
selected whether a
3D/2D shape.

3D_type_of_shape Boolean Local 2 bit To determine what


kind of 3D shape
the user wants to
calculate for. The
choices given will
be either cube,
square pyramid, or
sphere.

2D_type_of_shape Boolean Local 2 bit To determine


which shape of the
2D dimension is
wanted (rectangle,
circle, or triangle)

cube_side_length Real Local 2 dec. places It is the on of the


side length of the
cube.

sphere_radius Real Local 2 dec. places The length from the


center of the sphere
to any side of the
sphere

pyramidbase_length Real Local 2 dec. places Is the length of the


square base
pyramid.

pyramidslant_height Real Local 2 dec. places The height of one


of the triangle’s
sides.

Page 15 of 27
rectangle_width Real Local 2 dec. places It is the width of
the rectangle

rectangle_length Real Local 2 dec. places The length of the


rectangle’s length

circle_radius Real Local 2 dec. places This represents the


distance from the
center of the circle
to any point on its
circumference

triangle_height Real Local 2 dec. places It is the height of


the triangle

triangle_length Real Local 2 dec. places It is the base length


of the triangle

surface_area Real Global 2 dec. places It is the area to


cover the whole
surface of the
shape.

paint_amount Real Global 2 dec. places It is the amount of


paint needed to
cover the surface.

2.2.9 Algorithms
BEGIN PaintCalculator
DECLARE shapes_number as real
DECLARE surface_area as real

Page 16 of 27
DECLARE dimension_selection as boolean
DECLARE paint_spreadrate as real
SET shapes_number = 0
SET surface_area = 0
SET dimension_selection = TRUE
SET paint_spreadrate = 0
PRINT “Number of Shapes:”
GET shapes_number
PRINT “Paint Spread Rate (L/ m2 ):”
GET paint_spreadrate
PRINT “Dimension Selection:”
GET dimension_selection
IF dimension_selection = TRUE THEN
DO ​2Dimension​ (surface_area)
paint_amount=shapes_number*paint_spreadrate*surface_area
ELSE
DO ​3Dimension​ (surface_area)
paint_amount=shapes_number*paint_spreadrate*surface area
END IF
PRINT “Paint Amount (L):”
Display paint_amount
END PaintCalculator

BEGIN ​2Dimension ​(surface_area)


PRINT “Choose 2D type of shape: rectangle, circle, or triangle.”
DECLARE 2D_type_of_shape as Boolean
GET 2D_type_of_shape
CASEWHERE 2D_type_of_shape is
Choice 1: rectangle

Page 17 of 27
DECLARE rectangle_length as real
DECLARE rectangle_width as real
SET rectangle_width=0
SET rectangle_length=0
PRINT “Rectangle length (meters):”
PRINT “Rectangle width (meters):”
GET rectangle_length
GET rectangle_width
surface_area = (rectangle_width*rectangle_length)
Return surface_area
Choice 2: circle
DECLARE circle_radius as real
SET circle_radius=0
PRINT “Circle radius (meters):”
GET circle_radius
surface_area = (circle_radius*circle_radius*π)
Return surface_area
Choice 3: triangle
DECLARE triangle_height as real
DECLARE triangle_base as real
SET triangle_height=0
SET triangle_base=0
PRINT “Triangle height (meters):”
PRINT “Triangle base (meters):”
GET triangle_height
GET triangle_base
surface_area = (triangle_base*triangle_height*½)
Return surface_area
END ​2Dimension

Page 18 of 27
BEGIN ​3Dimension (​surface_area)
PRINT “Choose 3D type of shape: cube, sphere, square pyramid.”
DECLARE 3D_type_of_shape as Boolean
GET 3D_type_of_shape
CASEWHERE 3D_type_of_shape is
Choice 1: cube
DECLARE cube_side_length as real
SET cube_side_length=0
PRINT “Cube side length (meters):”
GET cube_side_length
surface_area = (cube_side_length^2)*6
Return surface_area
Choice 2: sphere
DECLARE sphere_radius as real
SET sphere_radius=0
PRINT “Sphere radius (meters):”
GET sphere_radius
surface_area = (sphere_radius*sphere_radius*4𝚷)
Return surface_area
Choice 3: square pyramid
DECLARE pyramidbase_length as real
DECLARE pyramidslant_height as real
SET pyramidbase_length=0
SET pyramidslant_height=0
PRINT “Pyramid Base Length (meters):”
PRINT “Pyramid Slant Height (meters):”
GET pyramidbase_length
GET pyramidslant_height
surface_area = (pyramidbase_length*pyramid

Page 19 of 27
base_length)+(pyramidslant_height*2*pyramid_base_length)
Return surface_area
END ​3Dimension

STAGE 3: Implementation of Software Solutions

3.1 Technical Documentation

Page 20 of 27
3.1.1 Log Book

Date Activity

20 March 2019 Discuss the idea for software and defining


the problem. We started discussing about the
Gantt Chart.

25 March 2019 Our group started the first stage of the


project, defining and understanding the
problem. Marco started with the problem
definition. Michael did the objective
boundaries. Timothy and Russell started to
do the objective requirements. Armand is
doing the allocation of resources.

29 March 2019 Our group started doing the diagrams of the


dimension calculator system. We finished
doing the IPO chart and also started doing
the System flowchart.

22 April 2019 System flowchart is done. Refinement and


context diagram is started.

11 May 2019 The context diagram is done, the system


flowchart is done, and lastly, the refinement
is done. Structure chart started.

15 May 2019 Marco, Russell, and Timothy finished in


making the structure chart.

17 May 2019 Marco, Russell, and Timothy started and


completed doing the data flow diagram.
Michael fixed the structure chart.

Page 21 of 27
7 August 2019 We started doing the algorithms (Michael,
Timothy, Marco, and Russell) and fixed the
diagrams again (Michael). The storyboard
was started.

9 August 2019 We continued the progress of the algorithm.


(Marco, Russell, and Timothy)

13 August 2019 The algorithm (Timothy and Michael) and


data dictionary was finished (Marco and
Russell). The desk checking was started.
Other diagrams/charts were fixed.

15 August 2019 All charts are fixed. Algorithm was also


fixed.

16 August 2019 The desk checking is completed by (Russell


and Michael). The algorithm is being fixed
(Michael and Russell). Storyboard is made
by Timothy and DFD is fixed as well.

17 August 2019 The minimum software and hardware


requirements was created.

18 August 2019 The manuals help and the FAQs is completed


by Marco. The evaluation was completed by
Michael and Russell.

3.1.2 MINIMUM SOFTWARE REQUIREMENTS:

OS: Windows 98 or later versions (XP, Vista, Windows 7, Windows 8, Windows 10)
or alternative versions present in Linux or the Mac OS. As for Windows, Windows 7 and above is
recommended for the best experience in using the software.

Page 22 of 27
Processor: Intel Pentium 4 and above or the equivalent processors such as the AMD Athlon XP
3000 and above.
Graphics Card: Intel 4000 graphics card and above is recommended.
Hardware: Laptop or Personal Computer (PC) with appropriate accessories such as mouse,
keyboard, and monitor.
Memory: 2 GB RAM or above
Storage: Recommended to have over 500 GB free in the HDD.
Software: Flash Player is required to run the application

3.2 User Documentation - Manuals Help


3.2.1 Manuals Help
Using the software:
1. Beside “Number of Shapes:”, enter the quantity of the shape that is desired to be calculated.
2. Beside “Paint Spread Rate (L/ m2 ):”, enter the amount of paint (in Liters) that covers 1 m2 .
3. If the dimension of the object that is requested is 2-dimensional double click the 2D bubble,
if the dimension requested is 3-dimensional, double click the bubble of 3D.
4. TWO DIMENSIONAL:
a. Select either rectangle, square, or triangle by double clicking
i. If rectangle is selected, enter the rectangle length and width (in meters)
ii. If square is selected, enter the square side length (in meters)
iii. If triangle is selected, enter the triangle base length, and its height (in
meters)
THREE DIMENSIONAL:
a. Select either sphere, cube, or square pyramid by double clicking
i. If sphere is selected, type in the radius of the sphere (in meters)
ii. If the cube is selected, type in the length of any side of the cube (in meters)
iii. If the square pyramid is selected, type in the length of the base of the
​pyramid and the slant height of the pyramid (in meters)
5. Finally, the amount of paint in litres that is needed to cover the object/s requested will be
displayed.
3.2.2 FAQs (Frequently Asked Questions)

Page 23 of 27
1. How to determine the spreading rate of my paint?
The unit for the spreading rate of paint is Liters/ m2 . It is the amount of paint needed
to cover a square meter area. The paint spread rate depends on the user’s preference; namely
your choice of paint and the number of coating you wish to apply. After determining the paint
spread rate, input the data into the software to accurately determine the amount of paint
necessary.
2. What are the minimum hardware requirements to run this program?
Regarding operating systems, Windows 98 or later versions (XP, Vista, Windows 7,
Windows 8, Windows 10) or alternative versions present in Linux or the Mac OS are all able
to run our program. However, Windows 7 and above is recommended so users can have the
best experience using our software. As for processors, Intel Pentium 4 and above or the
equivalent processors such as the AMD Athlon XP 3000 and above, are able to run our
program. Concerning graphic cards, Intel 4000 graphics cards and above are recommended
for use with our program. For hardware, PC or a laptop is required to run the software.
Regarding memory, a minimum of 2 GB of RAM is required to run our program. For storage,
users are recommended to have over 500 GB free in the HDD (Hard Disk Drive). Lastly, a
Flash Player is required to run the application.
3. How many types of shapes can the program calculate?
There are 6 types of shapes this program can calculate: rectangle, triangle, circle,
sphere, square pyramid, and cube.
4. How to interact with the program?
Our program consists of two types of input, either typing or double clicking. If there
are several options that are presented to you, choose the one you would like to do by double
clicking. However, when the program asks for information such as: the number of shapes, or
the spreading rate of paint, or the length of the rectangle, etc. input the measurements
requested information by typing.

5. Can I calculate paint price in this program?


As of this moment, the program cannot calculate the paint price, as it can only
calculate the amount of paint required in Liters. However, it may be part of the software in
future development.

Page 24 of 27
Page 25 of 27
STAGE 4: Testing and Evaluation of Software Solutions

4.1 Testing using data: Desk Checking

Test Data
1. 20, 0.01, true, triangle, 50, 75
2. 30, 0.01, false, cube, 30
3. 15, 0.03, true, rectangle, 15, 20
4. 20, 0.04, false, sphere, 10
5. 40, 0.03, true, circle, 20
6. 25, 0.05, false, square pyramid, 30, 25

4.2 Evaluating the Software Solution

Overall, the software has been successfully implemented and has reached its original aim, which
is to create a paint calculating system. The software is able to calculate the amount of paint using
various user inputs, and it can do so for 6 shapes. The 6 shapes is consisted of three 2D shapes
(rectangle, triangle, circle) and three 3D shapes (square pyramid, sphere, cube). Overall this software
is a successful software solution that creates a means of simplicity for the user.
However, there are several improvements that must be made to the software. First, there
needs to be more functionality in the software. For example, the software cannot store data, and the
software cannot repeat itself. Secondly, as of now there is a limited variety of shapes that this
software is able to calculate (limited to 6 shapes). When these two things are absent, it may
potentially create inconvenience for the user. By adding these two things in the software, the user
experience when using the software will be better. The future development may be the usage of

Page 26 of 27
database in our software to store the data for later use/retrieval. In addition to that, adding more
shapes to the software would also be a possible development. To aid the addition of more shapes, we
will change the input from selecting the shape to typing the shapes because in the future, there will
be much more shapes.

Page 27 of 27

Potrebbero piacerti anche