Beruflich Dokumente
Kultur Dokumente
Task and criteria
For 2A.P1: learners should explain the purpose of the code for each of the two given
programs, e.g. to carry out calculations, and explain the characteristics, including
constructs and techniques being used within the program, e.g. variables and
functions. The two software programs should be designed for different purposes.
For level 1, as a minimum, learners should be able to identify the purpose of the
code and identify the constructs and techniques, e.g. variables and functions.
For 2A.M1: learners should review the quality (e.g. efficiency/performance,
maintainability and usability) of the program. Learners should provide specific
suggestions for improving the quality of this program. Learners should also include a
flowchart showing how the program functions.
Task 1
Introduction
I am going to explore two different programs, a length converter and a price
adjustment/calculator, I will find out what their purpose is and how well they
work, what are they good at? Do they have any flaws? Do the apps port to
other operating systems? I will also look into how efficient the code is written,
can you get the same result with less code? Finally, I will discuss the strengths
and weaknesses of one of the programs.
Event driven programming
Event driven programming is a programming paradigm, the way the
program runs depends on events such as mouse clicks, keyboard strokes and
other user generated actions or system generated actions like program
loading. The code listens out for these things to happen and when it does,
the code assigned to that action runs.
Event driven programming differs from sequential programming because the
flow of event driven programming is determined by the user’s inputs like
mouse clicks, sequential programming flow is executed in the order it is
instructed, the code runs from the top down. In summary if the program is
reacting to the user then it is event driven, if the user is reacting to the
program it is not.
Forms and Gui’s
Graphic user interface (GUI) uses icons, windows and menus to carry out
commands. A GUI uses event driven programming because the user naturally
produces events like clicks, mouse movement and keyboard presses, it is
made up of forms which are windows that contain controls and components
such as “OK” and “Cancel” buttons.
Program 1 - Length Converter
Purpose of program
The purpose of the length converter is exactly what the title says, to convert
lengths. A delivery business may use this if they have a distance in kilometres
and they want to work out how many miles it is so they know how many miles
they are getting per litre of fuel, or they have a delivery scheduled that is
written down in kilometres and the driver wants to know how far that is in
miles.
What do the different parts of it do?
What programming command terms are there and what do they do in this
program?
Program 2 - Wholesale App
Purpose of program
This program is a two in one, it has a calculator and also allows you to work
out a price with or without VAT and also percentage discounts. Self
employed people may use this app, say a plumber or electrician has come
to your home to price up a job they can use this app to quickly add the VAT
to their price so that you know the full amount. Retailers may also use this app
to quickly work out the sale price of an item after the discount is applied.
What do the different parts of it do?
This is called a splash screen, you are greeted with it when you open the app
and you have to choose what part of the app you want access.
What programming command terms are there and what do they do in this
program?
Dim … As Decimal - This means that you are setting something as a variable
with the data type decimal, which means it is not a whole number. In this
number
Const … As Decimal = 0.5 - This means that we know the thing we are setting
this decimal to is constant and will not change. In the common calculations
code Const VatAdd is set at decimal 1.2 because we know that VAT is 20%
and does not change, so when somebody puts a number in number1 it will
If,Then - This means the code is waiting for something to happen and if it does
then it will do something else. In part of the code for the common
End If - This is used when you have finished all your If statements. You have to
have this or you will get an error, although it does enter it automatically.
Double.Parse - This is used in the calculator code this converts what is entered
in number1 and number2 which both have data types double into numbers.
Math.Round - This rounds the answer to a set number of decimal places. In
Validation
In the calculator app if you do not select an
operation but enter numbers and press calculate
you get an error message saying, “Please
Choose an Operation.”
Also if you press calculate without entering any
numbers an error box asks you to “Please Enter a
Number.” This also appears if you have only
entered one number.
In the price adjustments app if you press
calculate without entering any numbers at
all an error box asks you to “Please Enter a
Number.”
In the price adjustments app if you enter
anything but a number the program
crashes and this error appears to say it was
not the correct format.
In the calculator app if you enter anything but
numbers into both the boxes and press calculate
you get the error message below, if you have
entered text into one of the boxes and left the
other blank then you will get an error saying,
“Please Enter a Number.”
Variables
These are the variables in the calculator app,
they are global variables and all have the data
type double which means they are “real
numbers” and can have decimal places in
them. These are used instead of integer
because a calculator needs to deal with all numbers not just whole ones.
These are the variables for adding VAT in the
common calculations app. They all use decimal
which means they are also “real numbers.”
Adding or subtracting VAT means that you on
about money, this why decimal is used instead
of integer because integer recognises numbers
like -9 which isn’t a “real number” and not
possible when talking about money.
What does each subroutine do? (Calculator)
Subroutine 1
This subroutine first sets out the variables, then uses a series of If and ElseIf
statements to state what calculation it wants the program to run.
Subroutine 2
This is to say if the addiction is checked then change the symbol to a plus sign
and also clear the any answer in the box.
Subroutine 3
This is to say if the subtract is checked then change the symbol to a subtract
sign and also clear the any answer in the box.
Subroutine 4
This is to say if the multiplication is checked then change the symbol to a
multiply sign and also clear the any answer in the box.
Common Calculations
Subroutine 1
This subroutine sets out the variables and then does a multiplication of the
number entered by 1.2 to add 20% to the value
Subroutine 2
This subroutine sets out the variables and then does a multiplication of the
number entered by 0.8 to remove 20% off the value
Subroutine 3
This subroutine sets out the variables and then does a multiplication of the
number entered by 0.9 to remove 10% off the value
Subroutine 4
This subroutine sets out the variables and then does a multiplication of the
number entered by 0.8 to remove 20% off the value
Subroutine 5
This subroutine sets out the variables and then does a multiplication of the
number entered by 0.7 to remove 30% off the value
Subroutine 5
This subroutine sets out the variables and then does a multiplication of the
number entered by 0.6 to remove 40% off the value
Subroutine 6
This subroutine sets out the variables and then does a multiplication of the
number entered by 0.6 to remove 40% off the value
Subroutine 7
This subroutine waits for you to press the clear button when you do it runs this
code to clear the text boxes and labels.
Task 2
EFFICIENCY
The wholesale app is really efficient when it comes to how much memory
and processing power it takes to run, as you can see from the screenshot it
takes up 5.6 MB of available memory and uses around 0.5% of the CPU
power.
The program runs very smooth and fast, when you choose an app from the
splash screen it takes milliseconds to open the selected app and is just as fast
when you ask it to make any calculations. The code in the calculator is
written as efficient as possible, however the common calculations program is
not written efficiently, it has been written with more lines than is necessary.
Examples of code i would change in common calculations:
There is no need to have these two variables. The rounding is unnecessary
because you are using Math.Round later on in the code, the answer variable
doesn’t need to be there because you have answer in the brackets that
follow Math.Round.
You can replace Rounding with Math.Round and put the number1 * VatAdd
in the brackets. This can be done for each subroutine changing the wording
after the brackets to suit what the subroutine is doing.
There is no need to have this in every subroutine, you could make a function
that clears them and then just add the function to each subroutine.
MAINTAINABILITY
Some of the code and its comments in the common calculations app and
calculator app can be improved to help with maintainability.
Common Calculations:
This variable does not tell you exactly
what the number1 is, it could be
renamed to NumberBeforePercent. This lets someone who is looking at the
code for the first time know exactly that it is the number entered before a
percentage is added or removed. The code comment should say exactly
what it does like 'This is the number entered before a percentage is added or
removed.
I think the variables and the code comments here tell you exactly what they
are and what they do.
All of these code comments tells you exactly what each of the lines do.
This also tells you clearly what it
does.
This variable does say it’s going to take ten but
ten of what? It should say take ten percent, this should be applied to all the
variables that have take and then a number after it.
There are no other code comments in the common calculations program,
however most of the code comments from the first subroutine can be
transferred over with a few changes.
The subroutines are named quite well, they say what each of them are
about, although if you want to be really precise you could rename the
TenPercentBtn one to RemoveTenPercentBtn and so on which is explaining it
is just removing percentage.
Calculator:
Both the two number
variables are not very
good because it does
not tell you what the
number is, should be named FirstNumberToCalculate and
SecondNumberToCalculate respectively. The code comments are good but
they should comment under everything to make sure everybody knows
exactly what it is.
There is no code comments here explaining that this is to stop the app from
crashing if certain things happen.
Even though this code explains what the code is doing when it comes to
checking for a zero because it cannot divide by zero, it fails to explain what
the code below does.
This explains clearly what this subroutine is doing and even though there are
no code comments in the rest of the similar subroutines these comments
apply with the change of just one word.
Some of the subroutines could be named better mainly the calculation
change ones, the should be named ChangedToAddition and so on.
PORTABILITY
The program will work on any computer running Windows without the need to
install anything because since Windows XP SP2 update they all have the .NET
1.1 Framework pre-installed. It will also work on a Mac if you have installed
Windows either, as a separate startup using Boot Camp, or using software
like Parallels Desktop which lets you run Windows as an application, it will not
however work on any machine running any other operating system.
“Microsoft held 89.23% of the OS market in April 2016” (1) which means that
the program has quite good portability because Microsoft has a huge share
of the market. To make it more portable it would be better if it was online, this
way everybody with an internet connection can use the app.
RELIABILITY
The calculator is really reliable unlike other calculators that start to round the
numbers up after a certain amount of decimal places. If two companies on
the stock exchange used different calculators, one with Google’s and the
other with this calculator and used them to work out a price of the same
thing they were buying and it had more than 9 decimal places then the
company using our calculator would pay less than the other company, the
price difference could be huge if large amounts were being bought.
The price adjustments are also very accurate if you do not need to know
exact decimal numbers, if you need to reduce or increase a number with
more than two decimals and need to know a very exact answer then this
calculator is not the one you should use. The internet percentage calculator
gives a very precise answer.
Validation
All of these error boxes should let the user know what they have done wrong
and give them an opportunity to correct their mistake.
This appears if you have not selected an
operation, I think this would be better if it said
“Please Choose a Calculation” instead of
operation because operation doesn’t mean
anything to the average person.
If you press calculate without entering any
numbers an error box asks you to “Please Enter a
Number.” This also appears if you have only
entered one number. While this is okay i think it
could be better if it said something like “Please
Enter 2 Numbers” if you pressed the calculate button without selecting or
entering anything, this lets the user know they have to enter two numbers. If
you have only entered one number then it should say “Please Enter a Second
Number” these give clear instructions to the user what to do.
Also if you enter anything but numbers into both
the boxes and press calculate the app crashes,
this is not good because the user may not know
what has gone on. There needs to be an error box
come up to explain saying something like “Please
Enter Only Numbers.”
If you have entered numbers in one box and text
in another it says “Please Enter a Number.” this is
not good because it does not tell you that the text
you have entered is wrong, it should say something like “Please Enter Only
Numbers.” this way the user knows not to enter text.
Like the calculator app if you click
calculate without entering a number a box
appears saying “Please Enter a Number”
this is perfectly fine because it is telling you
exactly what you need to do.
In the price adjustments app if you enter
anything but a number the program
crashes and this error appears to say it was
not the correct format. This is bad because
the user may have slipped a letter or symbol
into the box without realising and the app just crashes, the user will not know
what has happened. There needs to be an error box appear telling them
exactly what is wrong, something like “Please Enter Only Numbers” this will
make the user aware of exactly what they have done.
USABILITY
The program is very easy to use for the most part, the splash screen is a good
bright colour with two clear options of which program you want to choose,
although I don’t think you need to add the word program after calculator
because the word calculator says what it does. You could put these two
programs into one that does it all instead of having the need for a splash
screen and a choice. The calculator does not act like a normal calculator I
think the calculations should be buttons that you press instead of selecting a
radio button, this will make the calculator feel familiar to the user.
If we incorporate the two programs together then there can also be a
percentage button, if a user wants to add a percentage say VAT to a
number they will first enter the number, then press the add button and enter
the amount they want percentage of, in this case 20% then press the
percentage button to get the answer, so 100 + 20% =. This can also be done
for percentage reduction by swapping the add button for a minus one,
another reason to make it one program is, in the price adjustments program
the percentages are set, if it was built into the calculator the user could type
in the exact percentage they want also the common calculations, with the
exception of adding VAT only decreases.
There are error messages in this program that do not explain what the the
user has done wrong. This is really bad when it comes to usability because if
this app was used by the general public and they make one of these errors
the program will crash without warning, the user will not know what they have
done wrong and probably not use the app again
Flowcharts
20% reduction flowchart, all other buttons in the app do the same thing
Calculator flowchart
References
1. https://www.extremetech.com/computing/227693-windows-drops-bel
ow-90-market-share-for-the-first-time-in-years-windows-7-falls-below-50
Task 3
Strengths and weaknesses of Wholesale app
Strengths
The calculator app can handle up to 14 decimal which makes it really
precise compared to other online calculators that would round an answer,
this could save a company millions of pounds. Another strength is that it is
very simple with just the ability to add, subtract, multiply and divide although
this could be a weakness as well. The calculator is really straightforward and
easy to use with a lovely and bright yellow background which makes it
visually appealing. The price adjustments app gives the user a quick way to
add or remove VAT, it also lets you quickly work out certain percentage
reductions. It is quite clear to the user on what it does with the bold heading
saying “Price adjustments”, it also bright and colourful with the same yellow
background.
Weaknesses
The program is split into two different apps which seems unnecessary
because they would function completely fine as one program. As I have
already mentioned the calculator app is very simple and does not offer
anywhere as near as much as some online calculators, so unless you only
want to do some simple maths the calculator is not suitable. There are far too
many ways to crash both the calculator app and price adjustments one as
well, this makes it not ready for use by the general public. In the price
adjustments app it allows you to add or remove VAT which is great but it
should say what percentage VAT is because if VAT changed without the app
being updated someone using it will get the calculation wrong. The app also
only lets you reduce percentages and not increase them which limits its
usefulness, the percentages are also set at fixed amounts so does not give
the user full control over the percentage amount.