首页
网站开发
桌面应用
管理软件
微信开发
App开发
嵌入式软件
工具软件
数据采集与分析
其他
首页
>
> 详细
Software程序设计讲解、JAVA编程设计调试、JAVA语言程序辅导 辅导R语言编程|辅导Python编程
项目预算:
开发周期:
发布时间:
要求地区:
Scalable Cross-Platform Software Design:
Coursework#3 – Assessment on JAVA and GUI Topic
25% of the module mark.
Read the marking scheme on Moodle to familiarised with what I am looking for.
Coursework Instructions:
1. Please submit as a single zip file which contains the whole NetBeans project folder
and a brief report (max 10 pages).
2. The NetBeans project should be prepared using JDK v8 and JavaFX v8 and should run
in my PC without modification. (how to install documents are in Moodle)
3. Graphical User Interface (GUI) will based on JavaFX v8 platform
4. The report will describe the answer for each Questions, (i.e. class name and their
purpose) and evidence to convince the client that it works correctly.
Document date: 20/09/2020
Context description
A well-known Aerospace company AirCoach requests you to design and implement
software with a user-friendly user interface to be integrated with their optical roughness
metrology device. Their plan is to use the optical roughness device to measure “how
smooth” the inner-lining of the inner engine cylinder of their new flagship plane Nimbus
2021. As they found from simulation that roughness of the engine cylinder degrades the
engine’s efficiency, lifetime, and increases carbon and noise emission.
Figure 1 Illustration of the cylinder and the roughness on the surface of an engine cylinder.
2
You have been supplied with the manual of the optical roughness metrology device
which describes with the working principle of the device. You note that the most
important aspect which related to your task, to develop the accompanying software, is
that the device will output a text file which lists the roughness as the deviation 𝛿 in the
unit of meter from an ideal circle (see Fig. 1).
For illustration purposes, the first few lines of such text file are given in Fig. 2,
6.000199e-05
-4.671694e-05
-1.083731e-04
-1.894823e-04
1.119588e-04
…
Figure 2 Few lines of the content of the measurement device in the unit of meter.
Specifically, the engine designers need the following information from the measurements
and wish that your software can provide it,
1. Has a user-friendly user interface
2. Streaming from the text file, to have the text file as an input
3. Calculate the mean, variance, median and standard deviation of 𝛿
4. Plot the normalised histogram of the deviation 𝛿, with an option to choose
different bin method.
5. Fit and plot the histogram with a Probability Density Function model (PDF).
6. Save the histogram and the fitted PDF as a Bitmap png file.
7. The software should also display the fitting parameters. For example: 𝛼, 𝜇 and 𝜎
for Normal Probability Density Function (Advice 3).
This is the context of the coursework.
You will work on this coursework through a step-by-step following the Questions given
in the following. Going through the Questions in-sequence will help you through
finishing the coursework.
Mark will be given for each Questions and its corresponding Tasks.
3
Question 1: [Mark 10%]
Develop a JAVA package called binmethod which contains the implementation of
Square root choice, Sturge’s and Rice rule bin rule formulae (see Review on the
mathematics 1 box). The package will comprise of three concrete classes (i.e. the three
bin rule formulae) and an Abstract Parent class called BinFormulae.
The client code Unit_test_binmethod.java will drive your code to compute the
number of bins for different bin rule formulae.
Unit_test_binmethod.java
/*
Client code to test the binmethod package
*/
import java.util.List;
import java.util.Arrays;
// the bin rule formulae must be implemented in binmethod package
import binmethod.*;
public class Unit_test_binmethod
{
public static void main(String[] args) {
// Create array of data
List
exampleData = Arrays.asList(1., 2., 3., 4., 5., 6., 7., 8., 9., 10.,11.);
// test SturgesFormula class
SturgesFormula SturgesInstance = new SturgesFormula(exampleData);
SturgesInstance.calculateNumberOfBins();
System.out.printf("By Sturges Formula: %d \n", SturgesInstance.getNumberOfBins());
// test SquareRootChoice class
SquareRootChoice SquareRootChoiceInstance = new SquareRootChoice(exampleData);
SquareRootChoiceInstance.calculateNumberOfBins();
System.out.printf("By Square Root Formula: %d \n", SquareRootChoiceInstance.getNumberOfBins());
// test RiceRule class
RiceRule RiceRuleInstance = new RiceRule(exampleData);
RiceRuleInstance.calculateNumberOfBins();
System.out.printf("By Rice Rule Formula: %d \n", RiceRuleInstance.getNumberOfBins());
}
}
Task 1a: Draw and discuss an UML diagram which show the member and the relations
between classes in the binmethod package.
Task 1b: Implement the classes so that the Unit_test_binmethod.java client
code will drive your code.
Review on the mathematics 1
In statistics, histogram is used to present the distribution of certain distributed data
into several clusters. For example, the distribution of income in the country or the
number of CoV-19 cases.
4
The first step in drawing a histogram is to “bin” the data into several cluster of value
marker, i.e. salary range or time in the examples given above.
There are several ways to determine the “number of bin” and there is no best way to
decide the “bin-width” or the “number of bin” as different “bin-width” or the “number
of bin” may reveal different features of data. In general, a good bin should
• Bins should be all the same size. See below how to calculate the bin size.
• Bins should include all the data.
It is common to display histogram using different bin number which can be calculated
using:
• Square root choice formula
𝑘 = √𝑛
• Sturge’s formula
𝑘 = 3.3 log 𝑛 + 1
• Rice rule formula
𝑘 = 2√𝑛
3
where, 𝑘 is the number of bins, 𝑛 is the total number of observation/measurement
data and log() is natural logarithm operator.
Question 2: [Mark 30%]
Task 2a: Develop a package named statutils which has the capability to calculate
basic statistical figures (i.e. mean, variance, max, min, median and standard deviation).
Task 2b: Add a capability to count the number of data in each bin.
5
Task 2c: Add a capability to perform histogram normalisation (see Review on the
mathematics 2 box).
Task 2d: Write client class with a main function which perform the unit testing of the
member functions, similar to the Unit_test_binmethod.java.
Task 2e: Draw and discuss an UML diagram which show the member of the class,
including their input and output arguments.
You may make several classes to perform Task 2a – Task 2d and
they should all in the statutils package.
Review on the mathematics 2
A histogram show “how many times” a certain value is observed from measurement,
i.e. frequency of data. Thus, its magnitude changes depending on the total number of
measurements. This type-of histogram is called un-normalised histogram.
A normalised histogram, on the other hand, shows what is the probability of a certain
value will be observed if there is an infinite number of measurements. Mathematically,
this means that the area under the curve is equal to 1. In most cases, a normalised
histogram is more useful than the un-normalised histogram in representing a large
measurement data as is our task.
Normalised frequency is obtained by dividing the number of observation in each bin by
the unnormalized_data_count*bin_size, where the bin_width = (max(measurement
data) - min(measurement data))/k and k is the “number of bins”.
Question 3: [Mark 10%]
Task 3a: Develop a package named mathutils in which contains a class to perform
data fitting. The class will have static member functions to calculate the fitting
parameters of the histogram (i.e. 𝜇, 𝜎, and 𝛼 parameters in the Review on the
mathematics 3 box). The static function will use GaussianCurveFitter class
implemented within the commons-math library from Apache.
Review on the mathematics 3
6
You need a normalised histogram to fit with a Probability Density Function (PDF). In our
case, Normal PDF is appropriate and is given by
where the PDF parameters are,
𝛼 is the normalisation coefficient
𝜇 is the centre of the PDF
𝜎 is the width of the PDF.
There are several ways to fit the histogram to a PDF, the most well-known method is
called Levenberg-Marquardt method.
Figure shows an example of an unnormalised histogram (left) and normalised with
fitted Normal PDF (right).
WE ARE NOT GOING INTO THE DETAIL OF MARQUARDT METHOD. IT IS QUITE MATHEMATICAL AND
OUT OF THE SCOPE OF THE MODULE.
I HAVE PROVIDED A NETBEANS PROJECT IN MOODLE IN WHICH I DEMONSTRATE THE USE OF WELLDEVELOPED
OPEN-SOURCED LIBRARY FROM APACHE WHICH IMPLEMENT THE MARQUARDT
METHOD. DOCUMENTATION OF THE LIBRARY CAN BE SEEN IN
http://commons.apache.org/proper/commons-math/apidocs/overview-summary.html
Question 4: [Mark 35%]
Task 4a: Develop and implement an operational Graphical User Interface application
satisfying the client request:
1. Has a user-friendly user interface
2. Streaming from the text file, to have the text file as an input
7
3. Calculate and display the mean, variance, median and standard deviation of
measurement data 𝛿
4. Plot the normalised histogram of the deviation 𝛿, with an option to choose
different bin method.
5. Fit and plot the histogram with a Probability Density Function model (PDF).
6. Save the histogram and the fitted PDF as a Bitmap png file.
7. The software should also display the fitting parameters. For example: 𝛼, 𝜇 and 𝜎
for Normal Probability Density Function (Advice 3).
Task 4b: Draw the hierarchical order of the GUI nodes.
Task 4c: Draw and discuss the GUI Event Handling UML diagrams of your app.
Good Programming Practice - [Mark 15%]
Detail on expected good programming practice is given in the rubric
End of document.
软件开发、广告设计客服
QQ:99515681
邮箱:99515681@qq.com
工作时间:8:00-23:00
微信:codinghelp
热点项目
更多
urba6006代写、java/c++编程语...
2024-12-26
代做program、代写python编程语...
2024-12-26
代写dts207tc、sql编程语言代做
2024-12-25
cs209a代做、java程序设计代写
2024-12-25
cs305程序代做、代写python程序...
2024-12-25
代写csc1001、代做python设计程...
2024-12-24
代写practice test preparatio...
2024-12-24
代写bre2031 – environmental...
2024-12-24
代写ece5550: applied kalman ...
2024-12-24
代做conmgnt 7049 – measurem...
2024-12-24
代写ece3700j introduction to...
2024-12-24
代做adad9311 designing the e...
2024-12-24
代做comp5618 - applied cyber...
2024-12-24
热点标签
mktg2509
csci 2600
38170
lng302
csse3010
phas3226
77938
arch1162
engn4536/engn6536
acx5903
comp151101
phl245
cse12
comp9312
stat3016/6016
phas0038
comp2140
6qqmb312
xjco3011
rest0005
ematm0051
5qqmn219
lubs5062m
eee8155
cege0100
eap033
artd1109
mat246
etc3430
ecmm462
mis102
inft6800
ddes9903
comp6521
comp9517
comp3331/9331
comp4337
comp6008
comp9414
bu.231.790.81
man00150m
csb352h
math1041
eengm4100
isys1002
08
6057cem
mktg3504
mthm036
mtrx1701
mth3241
eeee3086
cmp-7038b
cmp-7000a
ints4010
econ2151
infs5710
fins5516
fin3309
fins5510
gsoe9340
math2007
math2036
soee5010
mark3088
infs3605
elec9714
comp2271
ma214
comp2211
infs3604
600426
sit254
acct3091
bbt405
msin0116
com107/com113
mark5826
sit120
comp9021
eco2101
eeen40700
cs253
ece3114
ecmm447
chns3000
math377
itd102
comp9444
comp(2041|9044)
econ0060
econ7230
mgt001371
ecs-323
cs6250
mgdi60012
mdia2012
comm221001
comm5000
ma1008
engl642
econ241
com333
math367
mis201
nbs-7041x
meek16104
econ2003
comm1190
mbas902
comp-1027
dpst1091
comp7315
eppd1033
m06
ee3025
msci231
bb113/bbs1063
fc709
comp3425
comp9417
econ42915
cb9101
math1102e
chme0017
fc307
mkt60104
5522usst
litr1-uc6201.200
ee1102
cosc2803
math39512
omp9727
int2067/int5051
bsb151
mgt253
fc021
babs2202
mis2002s
phya21
18-213
cege0012
mdia1002
math38032
mech5125
07
cisc102
mgx3110
cs240
11175
fin3020s
eco3420
ictten622
comp9727
cpt111
de114102d
mgm320h5s
bafi1019
math21112
efim20036
mn-3503
fins5568
110.807
bcpm000028
info6030
bma0092
bcpm0054
math20212
ce335
cs365
cenv6141
ftec5580
math2010
ec3450
comm1170
ecmt1010
csci-ua.0480-003
econ12-200
ib3960
ectb60h3f
cs247—assignment
tk3163
ics3u
ib3j80
comp20008
comp9334
eppd1063
acct2343
cct109
isys1055/3412
math350-real
math2014
eec180
stat141b
econ2101
msinm014/msing014/msing014b
fit2004
comp643
bu1002
cm2030
联系我们
- QQ: 9951568
© 2021
www.rj363.com
软件定制开发网!