Sie sind auf Seite 1von 44

2012/2013

1





llnal ?ear ro[ecL
Pandbook


ueparLmenL of CompuLer Sclence
naLlonal unlverslLy of lreland, MaynooLh

Academlc ?ear 2012/2013
2012/2013
2
Spec|a| Note on |ag|ar|sm
keference the un|vers|ty po||cy at
http:]]exam|nat|ons.nu|m.|e]documents]p|ag|ar|sm.pdf
wh|ch |s |nc|uded as an append|x to the handbook
resent|ng the work of others as your own |s not acceptab|e.
A reader must be ab|e to c|ear|y d|st|ngu|sh between
your own work and the work of others.
If you use the work of others, e|ther as a d|rect copy, or summar|s|ng or
us|ng the|r |deas, you must (a) c|te the|r work at every p|ace where you
make use of |t, and (b) |nc|ude a fu|| reference to the|r work
(see Append|x 8 for deta||s).
A|| pro[ects w||| be subm|tted to "1urn|t|n" to ass|st the Department
|n ensur|ng that your work |s or|g|na|.
Cffenders w||| be sub[ect to d|sc|p||nary act|on.
2012/2013
3
1ab|e of Contents
1. IN1kCDUC1ICN ...................................................................................................................................... S
1.1 CvL8vlLW .................................................................................................................................................. 3
1.2 LLA8nlnC Cu1CCMLS .................................................................................................................................. 3
1.3 LLA8nlnC ML1PCuS .................................................................................................................................... 3
1.4 ASSLSSMLn1 ............................................................................................................................................... 3
1.3 8C!LC1 1?LS ............................................................................................................................................ 6
2. 1nL IMCk1ANCL CI IINAL LAk kCILC1S ........................................................................................... 7
2.1 8LSCnSl8lLl1? ........................................................................................................................................... 7
2.2 8LCCMMLnuLu 8LAulnC ............................................................................................................................. 7
3. kCILC1 CkGANISA1ICN ........................................................................................................................ 7
3.1 8C!LC1 8CCSAL ...................................................................................................................................... 7
3.2 8CC8LSS 8LC81S ..................................................................................................................................... 8
3.4 ln1L8lM 8LC81 ....................................................................................................................................... 8
3.3 llnAL 8LC81 ............................................................................................................................................. 8
4. LANNING CUk kCILC1 ...................................................................................................................... 8
4.1 8C!LC1 LAnnlnC ................................................................................................................................... 9
S LkLCU1ING CUk kCILC1 ..................................................................................................................... 9
3.1 8LAulnC ?Cu8 WA? ln1C 1PL 1ClC .............................................................................................................. 9
3.2 8C8LLM AnAL?SlS .................................................................................................................................... 10
3.3 SCLu1lCn................................................................................................................................................. 11
3.4 uLSlCn .................................................................................................................................................... 12
3.3 lMLLMLn1A1lCn ...................................................................................................................................... 12
3.6 SCLu1lCn LvALuA1lCn ............................................................................................................................... 13
6 DCCUMLN1A1ICN ................................................................................................................................ 14
6.1 uCCuMLn1lnC ?Cu8 8C!LC1 .................................................................................................................... 14
6.2 uCCuMLn1lnC ?Cu8 WC8k ........................................................................................................................ 14
6.3 8C!LC1 8LC81 ....................................................................................................................................... 13
6.6 8C!LC1 8LSLn1A1lCn ......................................................................................................................... 17
7. ASSLSSMLN1 CI CUk kCILC1 ............................................................................................................... 17
7.1 8C!LC1 uLLlvL8A8LLS ............................................................................................................................... 17
7.2 ASSLSSMLn1 C8l1L8lA ................................................................................................................................ 18
7.3 Auul1lCnAL lnlC8MA1lCn .......................................................................................................................... 18
ALNDIk A: GLNLkAL kCILC1 INICkMA1ICN ........................................................................................... 19
uLAuLlnLS ........................................................................................................................................................... 19
8LC81 LLnC1P .................................................................................................................................................... 19
PCW 1C Su8Ml1 ?Cu8 8LC81 ............................................................................................................................... 19
llnAL ?LA8 8C!LC1 CC-C8ulnA1C8 ........................................................................................................................ 19
ALNDIk 8: WnA1 IS kLSLAkCn? ............................................................................................................... 20
ALNDIk C: A VLk SnCk1 GUIDL 1C GCCD WkI1INGf ............................................................................. 21
ALNDIk D: GIVING kLSLN1A1ICNS ......................................................................................................... 22
ALNDIk L: 1ICAL S1kUC1UkL CI A IINAL LAk DLVLLCMLN1 kCILC1 kLCk1 ................................. 23
ALNDIk I: 1ICAL S1kUC1UkL CI A IINAL LAk kLSLAkCn kCILC1 kLCk1 ........................................ 27
ALNDIk G: 1I1LL AGL AND DLCLAkA1ICN ............................................................................................... 31
ALNDIk n: kCILC1 LANNING ................................................................................................................ 33
C.1 1ASkS ...................................................................................................................................................... 33
C.2 1PL 8C!LC1 LAn .................................................................................................................................... 33
C.3 uuA1lnC 1PL 8C!LC1 LAn ...................................................................................................................... 34
ALNDIk I: DLSIGN ..................................................................................................................................... 36
ALNDIk I: 1LS1ING ................................................................................................................................... 38
ALNDIk k: SCI1WAkL LNGINLLkING DCCUMLN1S .................................................................................. 39
2012/2013
4
ALNDIk L: IINAL LAk kCILC1 kCCSAL 1LMLA1L ............................................................................. 40
ALNDIk M: IINAL LAk kCILC1 MAkkING ICkM ................................................................................... 41
ALNDIk N:UNIVLkSI1 CLIC CN LAGIAkISM ....................................................................................... 43

2012/2013
3

1. IN1kCDUC1ICN

1he flnal year pro[ecL ls one of Lhe mosL lmporLanL aspecLs of your degree. lL provldes you wlLh an opporLunlLy
Lo apply Lhe prlnclples learned ln dlfferenL modules, and lnLegraLe maLerlal learned aL dlfferenL sLages of Lhe
course. 1here may also be a need for addlLlonal, domaln-speclflc knowledge for your pro[ecL, whlch wlll
necesslLaLe addlLlonal sLudy.

1.1 CvL8vlLW

?ou wlll execuLe a slgnlflcanL pro[ecL ln an area of relevance Lo CompuLer Sclence and SofLware Lnglneerlng.
Lvery pro[ecL ls unlque, buL Lhls wlll generally lnvolve:

1. lannlng your pro[ecL.
2. LxecuLlng your pro[ecL.
3. uocumenLlng your work.
4. CrlLlcally assesslng your pro[ecL.

?ou are expecLed Lo produce someLhlng slgnlflcanL ln your pro[ecL: a sofLware lmplemenLaLlon, Lhe evaluaLlon
of your soluLlon Lo a research problem, or an evaluaLlon of exlsLlng soluLlons.

1.2 LLA8nlnC Cu1CCMLS

Cn successful compleLlon of Lhe module, you should be able Lo apply your knowledge and undersLandlng of
compuLer sclence and sofLware englneerlng Lo analyslng problems, creaLlng and evaluaLlng soluLlons, and
crlLlcally assesslng your own work. ?ou should also be able Lo prepare pro[ecL plans, glve presenLaLlons, and
wrlLe reporLs.

1.3 LLA8nlnC ML1PCuS

1he flnal year pro[ecL ls a self-learnlng exerclse, under Lhe guldance of your supervlsor. 1he followlng slx
learnlng elemenLs form Lhe basls of your pro[ecL: know|edge, understand|ng, app|y|ng, ana|ys|ng, eva|uat|ng,
and creat|ng.

uurlng your pro[ecL, you are expecLed Lo use Lhese as follows:

uevelop an understand|ng of Lhe Lechnlcal domaln know|edge on whlch your pro[ecL ls based

App|y your knowledge and undersLandlng ln execuLlng Lhe pro[ecL

Ana|yse a problem

Create a soluLlon (synLhesls")

And eva|uate your work


1.4 ASSLSSMLn1

SemesLer 1
lnLerlm 8eporL and resenLaLlon

SemesLer 2
2012/2013
6
llnal 8eporL, resenLaLlon, and uemonsLraLlon

1he submlsslon deadllnes for Lhls year are shown ln Appendlx A.

1.3 8C!LC1 1?LS

1here are Lwo Lypes of llnal ?ear ro[ecL: Lhe uevelopmenL ro[ecL and Lhe 8esearch ro[ecL.

1.S.1 DLVLLCMLN1 kCILC1S

1he ob[ecLlve of Lhls Lype of pro[ecL ls Lo develop a sysLem LhaL meeLs a seL of user needs. 1hls may Lake many
forms, for example: an appllcaLlon, a server, a program, a llbrary, a collecLlon of programs, an embedded
sysLem, a hardware-sofLware sysLem, plug-lns, exLenslons, modlflcaLlons Lo exlsLlng sofLware eLc.

1he focus ls on followlng sound sofLware englneerlng prlnclples, and evaluaLlng your work Lhoroughly.

1he maln ouLpuL ls your reporL. 1hls shows LhaL Lhe sysLem you have developed ls of sulLable quallLy, and
solves Lhe user needs.

?ou wlll do background research lnLo boLh Lhe Lechnology and Lhe markeLplace. ?ou wlll evaluaLe Lhe success
of your sysLem ln Lerms of how well lL meeLs Lhe user's needs. 1he sysLem you develop ls Lhe prlnclple ouLpuL
of your pro[ecL. ?ou musL LesL your sofLware Lo make sure lL works correcLly, and Lhen evaluaLe how well lL
meeLs Lhe user's needs.

uevelopmenL pro[ecLs are based on Lhe prlnclples of quallLy sofLware developmenL, whlch can be summarlzed
as follows:

1. undersLand whaL ls needed
2. ueslgn a soluLlon
3. ueslgn and lmplemenL a sysLem Lo reallze Lhe soluLlon
4. verlfy LhaL Lhe lmplemenLaLlon maLches Lhe deslgn
3. valldaLe LhaL Lhe lmplemenLaLlon correcLly reallzes your soluLlon
6. LvaluaLe how well Lhe soluLlon solves Lhe problem

?ou only have a llmlLed amounL of Llme avallable, so you may declde wlLh your supervlsor LhaL you are golng Lo
puL equal emphasls on each of Lhe sofLware developmenL sLeps, or [usL emphaslse one (for example analysls or
LesLlng) and puL less emphasls on Lhe oLhers. Make sure your pro[ecL reporL clearly ldenLlfles Lhls declslon.

1.S.2 kLSLAkCn kCILC1S

1he ob[ecLlve of Lhe research pro[ecL ls Lo solve a research-orlenLed problem. 1hls may Lake Lhe form of
evaluaLlng Lhe effecLlveness of exlsLlng soluLlons, modlfylng exlsLlng soluLlons, or even developlng a new
soluLlon Lo Lhe problem. ln any case, your evaluaLlon of Lhe soluLlon ls Lhe key ouLpuL.

1he focus ls on followlng sound experlmenLal Lechnlques, and evaluaLlng Lhe soluLlon Lhoroughly.

1he maln ouLpuL ls your reporL. 1hls shows how well Lhe soluLlon you have worked on solves Lhe problem.

?ou wlll do background research lnLo Lhe domaln area, and a llLeraLure revlew of exlsLlng publlcaLlons Lo
develop a sound basls for your work. ?ou wlll evaluaLe Lhe success of your soluLlon, uslng experlmenLal
meLhods, ln Lerms of how well lL solves Lhe research problem. 1he soluLlon you develop ls Lhe prlnclple ouLpuL
of your pro[ecL, any sofLware you develop ls a Lool Lo evaluaLe your soluLlon. ?ou musL LesL your sofLware Lo
make sure lL correcLly lmplemenLs your soluLlon before you run experlmenLs Lo evaluaLe lLs effecLlveness.

2012/2013
7
LxperlmenLal research ln compuLer sclence and sofLware englneerlng ls based on Lhe sclenLlflc meLhod, whlch
can be summarlzed as follows:

1. lormulaLe a hypoLhesls (LhaL your soluLlon solves a problem agalnsL selecLed crlLerla)
2. SelecL meanlngful measuremenLs
3. ueslgn and conducL experlmenLs, and collecL Lhe resulLs
4. use sLaLlsLlcal meLhods Lo analyse Lhe daLa
3. lnLerpreL and explaln Lhe resulLs
6. LvaluaLe any LhreaLs Lo Lhe valldlLy of Lhe research resulLs
7. use Lhe resulLs Lo conflrm or refuLe your hypoLhesls

?ou wlll probably puL a slgnlflcanL amounL of efforL lnLo solvlng Lhe problem. ?ou only have a llmlLed amounL
of Llme avallable, so you musL declde wlLh your supervlsor how you are golng Lo balance Lhe Llme for solvlng
Lhe problem agalnsL lmplemenLlng and LesLlng your soluLlon. noLe LhaL unLesLed sofLware ls a LhreaL Lo Lhe
valldlLy of your resulLs!

2. 1nL IMCk1ANCL CI IINAL LAk kCILC1S

?ou wlll conLlnue Lo galn experlence afLer you graduaLe, buL Lhe flnal year pro[ecL wlll be your flrsL exposure Lo
a slgnlflcanL compuLer sclence and sofLware englneerlng pro[ecL. lL ls essenLlal LhaL you learn from Lhls
exposure, and pracLlce all of Lhe meLhodologles lnvolved. lL ls also lmporLanL LhaL you learn noL [usL how Lo
apply whaL you know, buL also Lo apply lL wlLh [udgemenL, wlLh Lhe ablllLy Lo assess whaL you are dolng and Lo
be crlLlcal of lL.

?our flnal year pro[ecL ls also an lmporLanL elemenL ln deLermlnlng your flnal degree grade. Also, for borderllne
cases, examlners may use your pro[ecL performance ln decldlng your overall resulL.

2.1 8LSCnSl8lLl1?

lL ls lmporLanL Lo noLe LhaL yoo are responslble for your pro[ecL. ?our supervlsor wlll provlde you wlLh guldance
and feedback, buL you musL puL ln Lhe efforL Lo achleve a successful pro[ecL. So work hard on your flnal year
pro[ecL, whlle balanclng your Llme and efforL wlLh your LaughL modules.

2.2 8LCCMMLnuLu 8LAulnC

1he followlng provlde reference maLerlal LhaL you may flnd useful durlng your pro[ecL:

! 1he Lssence of CompuLlng ro[ecLs", by C. W. uawson, renLlce-Pall, (laLesL edlLlon)
! A LlghLwelghL SofLware uevelopmenL rocess for SLudenL ro[ecLs", nulM-CS-18-2003-09
! 1esLlng Culdellnes for SLudenL ro[ecLs , nulM-CS-18-2003-03
! CS333 Culdellnes for Condensed SofLware uevelopmenL uocumenLaLlon" verslon 1.0.0, SepLember
27Lh 2010
! Culdellnes for uocumenLs roduced by SLudenLs ro[ecLs ln SofLware Lnglneerlng", nulM-CS-18-
2002-03
! uocumenL 1emplaLes for SLudenL ro[ecLs ln SofLware Lnglneerlng", nulM-CS-18-2002-06

All Lechnlcal reporLs are avallable on Lhe ueparLmenL of CompuLer Sclence webslLe.

3. kCILC1 CkGANISA1ICN

1here are a number of organlzaLlonal maLLers you should be aware of Lo compleLe your pro[ecL successfully.

3.1 8C!LC1 8CCSAL

2012/2013
8
8efore belng accepLed for a pro[ecL, you musL submlL a roposal" Lo your lnLended supervlsor. 1hls musL
descrlbe Lhe alms of Lhe pro[ecL and dlscuss Lhe meLhodology you lnLend Lo use ln achlevlng Lhose alms. See
Lhe l? roposal 1emplaLe ln Lhe Appendlx for deLalls.

Supervlsors suggesL boLh speclflc pro[ecLs, and pro[ecL areas, on Lhe deparLmenLal webslLe. 8evlew Lhese
carefully, and Lhen go and Lalk Lo poLenLlal supervlsors who have lndlcaLed pro[ecLs LhaL sound of lnLeresL Lo
you.

3.2 8CC8LSS 8LC81S

?our supervlsor may requlre you Lo submlL perlodlc, wrlLLen progress reporLs. A Lyplcal reporL mlghL conLaln:

1. 1he pro[ecL LlLle
2. ?our name
3. A shorL descrlpLlon of your progress slnce Lhe prevlous reporL
4. A summary of Lhe work you expecL Lo compleLe before Lhe nexL reporL

3.4 ln1L8lM 8LC81

?ou wlll be requlred Lo submlL an lnLerlm reporL, and make a shorL presenLaLlon on your pro[ecL, aL Lhe end of
SemesLer 1.

1he reporL should descrlbe Lhe background maLerlal/llLeraLure revlew for your pro[ecL, deLall Lhe problem
descrlpLlon, and summarlse your approach.

1hls presenLaLlon should conslsL of flve slldes (See Appendlx u: Clvlng resenLaLlons):
Coals of your ro[ecL
Cvervlew of 8ackground
rogress Lo uaLe
roblems LncounLered
lanned nexL SLeps


3.3 llnAL 8LC81

?ou wlll submlL a flnal reporL aL Lhe end of your pro[ecL. See Appendlx u for suggesLed reporL sLrucLures.

4. LANNING CUk kCILC1

Cne of Lhem mosL lmporLanL Lhlngs you wlll learn when dolng your pro[ecL ls Lhe need Lo manage your Llme.
llnal ?ear ro[ecLs are compleLely dlfferenL from smaller pro[ecLs you may have underLaken. 1hey requlre a
conslderable amounL of Llme:

! Slngle Ponours
1
Sclence sLudenLs should spend 240 hours (accounLlng for 23 of flnal year marks)
! CSSL sLudenLs should spend 240 hours (accounLlng for 23 of flnal year marks)
! uouble Ponours Sclence sLudenLs should spend 80 hours, normally ln Lhe flrsL semesLer (accounLlng for
16.7 of flnal year marks)


1
lncludlng speclal enLry courses: CompuLer Sclence & 1heoreLlcal hyslcs, PulpCS, eLc.
2012/2013
9
8egln your pro[ecL early, work conslsLenLly aL lL, and Lrack your progress. A pro[ecL plan helps you Lo Lhlnklng
abouL all Lhe Lhlngs you need Lo do, Lhelr lnLer-relaLlonshlps, and Lhe Llme each wlll Lake.

4.1 8C!LC1 LAnnlnC

ln order Lo plan your pro[ecL, you should ldenLlfy Lhe Lasks you need Lo compleLe. lL helps Lo organlse Lhese by
ma[or acLlvlLles (as descrlbed, for example, ln SecLlons 1.3.1/1.3.2).

lor each acLlvlLy, you should llsL Lhe Lasks.

lor each Lask, you should ldenLlfy Lhe followlng:
1lLle
8rlef descrlpLlon of Lhe work Lo be done
ldenLlfy whaL Lhe ouLpuL or dellverable wlll be
LsLlmaLe Lhe sLarL and end daLes
ldenLlfy Lhe dependencles (whaL Lasks cannoL be sLarLed, or compleLed, unLll Lhls Lask ls compleLed)
ldenLlfy Lhe key rlsks Lo compleLlng Lhe Lask on Llme, and whaL conLlngency" acLlon you wlll Lake lf
you are unable Lo do Lhls

8efer Lo Appendlx C for more deLalls.

S LkLCU1ING CUk kCILC1

lL ls lmporLanL LhaL you Lake a sysLemaLlc, prob|em-so|v|ng approach Lo your pro[ecL: undersLandlng Lhe
problem, deslgnlng a soluLlon, lmplemenLlng Lhe soluLlon, LesLlng Lhe code, and flnally evaluaLlng your
soluLlon.

uependlng on Lhe approach you Lake, you may sLarL some of Lhese acLlvlLles before compleLlng prevlous ones.
?ou may also break Lhe problem lnLo smaller problems, and address Lhese ln Lurn. ?ou musL dlscuss your
lndlvldual pro[ecL wlLh your supervlsor Lo ldenLlfy Lhe prlorlLy of Lhe dlfferenL acLlvlLles for your pro[ecL.

?our pro[ecL reporL ls a record of how you addressed solvlng Lhe problem, and records Lhe resulLs of Lhe
varlous acLlvlLles. 1he documenLaLlon should noL Lake up much Llme lf you have approached Lhese acLlvlLles ln
a well-sLrucLured way.

lL ls crlLlcal LhaL all maLerlal ln your reporL be your own work. ?ou musL noL use dlrecL quoLes ln your reporL,
even lf you have clLed Lhe source. lf you wanL Lo lnclude resulLs from oLher people's work, Lhen you musL
express |t |n your own words, and c|te the source. 1hls does noL mean merely replaclng words wlLh synonyms,
lL means rewrlLlng lL compleLely Lo show your undersLandlng of Lhe maLerlal. CuLLlng and pasLlng any maLerlal
dlrecLly lnLo your reporL or plaglarlsm - a severe academlc offence.

3.1 8LAulnC ?Cu8 WA? l n1C 1PL 1ClC

AL Lhe ouLseL you need Lo learn as much as posslble abouL Lhe area ln whlch you'll be dolng Lhe pro[ecL, as
qulckly and efflclenLly as posslble. SLrucLure your research, and avold readlng much buL learnlng llLLle".

! CollecL any papers, arLlcles, book chapLers you can on Lhe area and make a copy for your own personal
archlve.

! Make sure you keep a deLalled record of Lhe source of everyLhlng you read. 1yplcally, you need Lo record
Lhe LlLle of Lhe arLlcle, Lhe auLhors, Lhe name of Lhe magazlne/[ournal/book, Lhe volume and number of
Lhe [ournal or magazlne, Lhe publlsher, Lhe year lL was publlshed, and Lhe page numbers. lf lL's a chapLer ln
a book and Lhe auLhor of Lhe chapLer ls dlfferenL from Lhe edlLor of Lhe book, you need Lo record boLh seLs
of names. lncompleLe references are noL accepLable - you musL provlde all lnformaLlon necessary Lo geL a
copy of LhaL arLlcle. ?ou wlll lnclude all Lhls lnformaLlon aL Lhe end of your pro[ecL reporL ln Lhe
2012/2013
10
8eferences" secLlon. (noLe: A u8L alone ls noL accepLable as a reference, buL you may lnclude u8Ls Lo
asslsL Lhe reader ln accesslng a copy Lo read).

! noL all Lhe arLlcles you collecL wlll be equally relevanL or lmporLanL. ConsequenLly, lL's noL efflclenL Lo glve
each of Lhem Lhe same aLLenLlon. 8uL lL's noL easy Lo know how relevanL lL ls unLll you read lL. So how do
you proceed? 1o solve Lhls dllemma, you should know LhaL Lhere are Lhree levels of readlng:

1. 5bollow keoJloq: you [usL read Lhe arLlcle qulckly Lo geL an lmpresslon of Lhe general ldea. 8ead lL
Lwlce. 1hls should Lake a half-an-hour Lo an hour.

2. MoJetote keoJloq: 8ead Lhe arLlcle ln deLall and undersLand all of Lhe maln concepLs, Lhls wlll
probably requlre you Lo read lL several Llmes and Lake a couple of hours Lo asslmllaLe.

3. ueep keoJloq: Pere you make an ln-depLh sLudy of Lhe arLlcle. 1hls may Lake you several hours or
even a couple of days. AfLer many careful readlngs, you should know as much abouL Lhe Loplc as Lhe
auLhor.

1he way Lo proceed wlLh your 'readlng ln' ls Lo:

! Shallow read everyLhlng and wrlLe a 3-llne summary of Lhe arLlcle.

! lf you Lhlnk Lhe arLlcle ls dlrecLly relevanL Lo your pro[ecL, label lL, and puL lL on a llsL of arLlcles Lo be read
aL Lhe nexL level, l.e. ModeraLe 8eadlng.

! 8ead all Lhe labelled arLlcles and wrlLe a 1-page summary.

! lf Lhe arLlcle ls golng Lo be used dlrecLly ln Lhe pro[ecL, e.g. as a basls for a hardware deslgn or a sofLware
algorlLhm, Lhen you need Lo add lL Lo your llsL of arLlcles Lo be read aL Lhe nexL level, l.e. ueep 8eadlng.

! 8ead all Lhe ueep-8ead arLlcles and wrlLe exLenslve noLes on Lhem.

noLe LhaL Lhe 'readlng ln' phase of Lhe pro[ecL can lasL qulLe a long Llme (Lhere's a loL of readlng ooJ wtltloq Lo
be done) and lL can overlap parLlally wlLh some of Lhe oLher early Lasks).

llnally, lL ls very lmporLanL Lo reallse LhaL, ln order Lo fully undersLand anyLhlng LhaL you read, you musL wrlLe lL
up ln yoot owo wotJs. lf you can'L express or speak abouL a glven ldea, Lhen you haven'L Lruly undersLood lL ln
any useful way. 1hls ls so lmporLanL, lL's worLh saylng a Lhlrd Llme:

Wr|t|ng |s an Lssent|a| art of Understand|ng

1hls ls why, ln all of Lhe above guldellnes, you see recommendaLlons Lo wrlLe Lhlngs down. (See Lhe secLlon on
documenLlng your research).


3.2 8C8LLM AnAL?SlS

Pavlng chosen your pro[ecL, you wlll have ln your possesslon a shorL descrlpLlon of whaL ls lnvolved ln Lhe
pro[ecL. ?ou wlll reallse by now LhaL Lhls ls compleLely lnsufflclenL for you as a basls for dolng Lhe pro[ecL.
ConsequenLly, your nexL Lask musL be Lo flnd ouL exacLly - and compleLely - whaL Lhe pro[ecL enLalls. 1hls lsn'L
as easy as lL sounds. ?ou mlghL Lhlnk LhaL you should [usL ask your supervlsor and he or she should Lell you. lL
doesn'L work llke LhaL. CulLe ofLen, a supervlsor won'L have an exacL (and compleLe) model of whaL ls requlred
- supervlsors are [usL llke cllenLs and cusLomers ln Lhe buslness and lndusLrlal world. lL ls your [ob Lo help your
supervlsor ldenLlfy exacLly whaL he wanLs. 1haL's whaL good compuLer sclence pracLlLloners do: Lhey help
people undersLand whaL Lhey wanL and Lhen Lhey bulld lL for Lhem. Pere's how you do lL.

1. 1alk Lo your supervlsor
2012/2013
11
2. WrlLe down everyLhlng he or she says (by 'wrlLe down' l mean Lake noLes of hls or her words)
3. WrlLe up everyLhlng he or she says (by 'wrlLe up' l mean express whaL your supervlsor sald lo yoot owo
wotJs).
4. ConsulL wlLh your supervlsor Lo make sure you have undersLood Lhem (show your supervlsor your wrlLe-
up, and ask for Lhelr feedback).
3. 8ead lnLo Lhe problem area, Lo see whaL oLhers have done. 1hls wlll generally hlghllghL a number of
opporLunlLles and plLfalls.
6. uocumenL whaL you Lhlnk ls requlred, lncludlng funcLlonal and non-funcLlonal requlremenLs.
7. Cr, bulld a proLoLype of whaL you Lhlnk ls requlred.
8. Co back Lo your supervlsor and ask for her or hls commenLs.
9. 8eLurn Lo sLep 1, and keep reLurnlng unLll you are boLh happy wlLh yoot requlremenLs documenL.

1hls all LranslaLes lnLo one slmple rule: flnd ouL whaL you wanL Lhe flnal sysLem Lo do, wrlLe lL down, and geL
everyone lnvolved Lo agree Lo lL. ln wrlLlng. Make sure you lnclude all televoot deLall: every slngle aspecL of
whaL's wanLed should be Leased ouL and agreed: whaL lL does, whaL lL doesn'L do, how Lhe user ls Lo use lL or
how lL communlcaLes wlLh Lhe user, whaL messages lL dlsplays, how lL behaves when Lhe user asks lL Lo do
someLhlng lL expecLs, and especlally how lL behaves when Lhe user asks lL Lo do someLhlng lL doesn'L expecL.

lor a developmenL pro[ecL, Lhls process ls called tepoltemeots ellcltotloo - you have Lo work acLlvely wlLh Lhe
cllenL Lo flnd ouL whaL Lhey really wanL (as opposed Lo whaL Lhey lnlLlally say Lhey wanL, whlch ls a compleLely
dlfferenL Lhlng). lL ls lmporLanL, as lL ls Lhe basls of all your work LhaL follows, buL lL wlll probably only Lake up
abouL 10 of your pro[ecL Llme. 1he user 8equlremenLs uocumenL provldes a LemplaLe for how you may
presenL Lhe resulLs of Lhls work.

lor a research pro[ecL, Lhls ls probably golng Lo be a longer acLlvlLy. lL ls half of your research work: Lhe oLher
half ls creaLlng a soluLlon. ?ou should consulL wlLh your supervlsor how besL Lo presenL Lhe resulLs of Lhls work
- lL wlll form Lhe core of your background" or llLeraLure revlew" of your reporL.
lor boLh Lypes of pro[ecL, a key ouLpuL ls your problem sLaLemenL: a clear and conclse descrlpLlon of Lhe
problem you are solvlng ln your flnal year pro[ecL.

3.2.1 MCuLLLlnC ?Cu8 8C8LLM

1hls ls Lhe foundaLlon of all sclence: Lhe creaLlon of a rlgorous - usually maLhemaLlcal - descrlpLlon of Lhe
problem Lo be addressed. lor example, lf your problem concerned wlLh packeL rouLlng, you mlghL represenL lL
uslng a graph and deploy formal graph LheoreLlc Lools for lLs analysls, lf your problem ls concerned wlLh slgnal
analysls, you mlghL choose a lourler represenLaLlon or an Llgen-vecLor represenLaLlon and deploy Lhe
approprlaLe Lheorems ln lourler analysls or llnear sysLem Lheory. lf your problem ls Lo do wlLh bulldlng a
daLabase, you wlll probably model Lhe sysLem wlLh an enLlLy-relaLlonshlp dlagram and valldaLe Lhe model by
normallsaLlon.

8e careful noL Lo lnvolve deslgn declslons ln your analysls. SomeLlmes Lhe deslgn soluLlon wall fall ouL naLurally
from Lhe analysls, buL lf you are maklng declslons Lhen you have moved Lo Lhe SoluLlon" acLlvlLy as descrlbed
ln Lhe nexL secLlon.

3.3 SCLu1lCn

Pavlng developed a clear undersLandlng of Lhe problem, you now need Lo lnvenL or deslgn a soluLlon.

lor a research pro[ecL, Lhls ls Lhe mosL lmporLanL elemenL of your work. ?ou wlll probably do some LheoreLlcal
developmenL, and usually prove or aL leasL demonsLraLe Lhe effecLlveness of your soluLlon uslng analyLlcal
Lechnlques. ?ou wlll documenL Lhls ln your pro[ecL reporL.

lor a developmenL pro[ecL, you wlll be analyslng Lhe problem, decldlng whaL lnpuLs your soluLlon musL accepL,
and Lhe funcLlonallLy and sLorage requlred Lo produce Lhe ouLpuLs. uo noL concern yourself wlLh deLalls of Lhe
lnLerface yeL - you wlll be deslgnlng Lhem nexL.

2012/2013
12
lor boLh Lypes of pro[ecLs, you wlll need Lo work ouL Lhe requlremenLs for lnpuL daLa, processlng, and ouLpuL
daLa. ?ou can documenL your work by produclng a user 8equlremenLs SpeclflcaLlon".

3.4 uLSlCn

?ou musL do aL leasL Lwo dlfferenL Lypes of deslgn. 1he flrsL ls Lo deslgn a sofLware 'producL' LhaL reallses your
soluLlon Lo Lhe problem. 1hls wlll ldenLlfy Lhe deLalls of Lhe lnpuLs and ouLpuLs, and ldenLlfy any processlng and
sLorage requlremenLs. lor example, you wlll deslgn your Cul screens here. 1hls ls LradlLlonally called a
SofLware 8equlremenLs SpeclflcaLlon", as lL speclfles Lhe requlremenLs LhaL your sofLware musL meeL.

1he second ls Lo deslgn Lhe sofLware Lo lmplemenL Lhls producL. 1hls wlll show how Lhe lnpuLs are handled,
how Lhe processlng ls done, how lnLernal daLa sLorage ls achleved, and how Lhe ouLpuLs are generaLed. uo noL
confuse Lhese Lwo: aL Lhe sofLware deslgn sLage you should noL, for example, be maklng declslons abouL whaL
Lhe Cul wlll look llke, buL raLher how you are golng Lo lmplemenL lL glven Lhe programmlng
language/envlronmenL you are uslng.

1yplcally you need Lo use Lwo levels of absLracLlon for your sofLware deslgn:

1. a h|gh-|eve| des|gn, showlng Lhe archlLecLure of your soluLlon (e.g. Lhe ma[or classes, and how Lhey
lnLeracL wlLh each oLher)
2. a deta||ed des|gn, showlng Lhe deLalls of Lhe sofLware componenLs (e.g. Lhe aLLrlbuLes and meLhods
for each class).

use an |ncrementa| lmplemenLaLlon approach. uon'L aLLempL Lo bulld Lhe enLlre sysLem ln one go ln Lhe hope
LhaL, when you swlLch lL on or run lL, lL wlll work. 1hls ls Lhe so-called 8lg 8ang" approach (everyLhlng comes
lnLo exlsLence aL one lnsLanL) and lLs name ls very approprlaLe, for lL almosL always resulLs ln lnlLlal chaos.

lL ls much beLLer Lo deslgn, code, and LesL each sofLware feaLure lndlvldually and add Lhem Lo an ever
expandlng sysLem. ln general, lL ls besL Lo compleLe Lhe hlgh-level deslgn flrsL, buL Lhen deslgn, code, and LesL
ln an lncremenLal manner.

See Appendlx l for more deLalls.

3.3 lMLLMLn1A1lCn
?our lmplemenLaLlon conslsLs of wrlLlng Lhe code and LesLlng lL.
3.3.1 CCulnC

When re-uslng code LhaL you dld noL wrlLe, you most creaLe a separaLe flle conLalnlng Lhls code. All such
reused code musL be properly documenLed and also properly LesLed before use, and Lhls LesLlng musL be
documenLed. lL ls prohlblLed Lo mlx your code wlLh reused code ln any flle.

ou w||| be expected to subm|t your source code for assessment. Make sure lL ls clearly sLrucLured, conforms
Lo your codlng sLandard, and ls well documenLed and commenLed. Make sure LhaL any code LhaL ls noL
compleLely your own work ls clearly ldenLlfled. Source code should by submlLLed along wlLh your pro[ecL
reporL.

3.3.2 SCl1WA8L 1LS1lnC

1here are Lwo aspecLs Lo sofLware LesLlng: verlflcaLlon and valldaLlon.

! Ver|f|cat|on ensures you have bullL Lhe sysLem correcLly". 1haL ls, LhaL Lhe sofLware correcLly
lmplemenLs your soluLlon. lor your pro[ecL, you wlll normally carry Lhls ouL aL Lwo dlfferenL levels:
unlL LesLlng, and sysLem LesLlng.
2012/2013
13

! Va||dat|on ensures LhaL you have bullL Lhe correcL sysLem". 1haL ls, LhaL your soluLlon as reallsed ln
Lhe sofLware does acLually solve Lhe orlglnal problem.

SofLware LesLlng should usually be auLomaLed (uslng, for example, CunlL or !unlL) for speed of execuLlon,
rellablllLy, and repeaLabllLy. unlL LesLlng should always be auLomaLed. SysLem LesLlng can usually be auLomaLed
uslng varlous LesL Lools (e.g. web LesL Lools such as WebpageLesL, or Cul LesL Lools such as AbboL/CosLello or
vlsual SLudlo 1esL rofesslonal).

Appendlx ! glves more deLalls on LesLlng.

8ead nulM-CS-18-2003-03 for more deLalls on how you mlghL go abouL LesLlng your sofLware.


3.6 SCLu1lCn LvALuA1lCn
Pavlng developed an lmplemenLaLlon of your soluLlon, and demonsLraLed LhaL lL works correcLly, you now
need Lo evaluaLe how well lL works ln solvlng Lhe orlglnal problem.
3.6.1 uLvLLCMLn1 8C!LC1S

llnally, we ask: bove l bollt tbe best system? Agaln, Lhe hallmark of good compuLer sclence: we seek Lo assess
Lhe sysLems performance and compare lL Lo LhaL of oLher slmllar sysLems. ldeally, you should ldenLlfy some
quanLlLaLlve meLrlc by whlch Lo compare Lhe sysLems, slnce numbers are Lhe besL and perhaps Lhe only way Lo
ob[ecLlvely descrlbe performance - for example, Lhe mean Llme beLween fallures (M18l). CulLe ofLen, we use
sLaLlsLlcal measures as our comparaLlve meLrlc, e.q. Lhe mean and sLandard devlaLlon of some performance
measure when Lhe sysLem ls sub[ecLed Lo a large varleLy of lnpuL parameLers and condlLlons.

LvaluaLlon ls Lhe acL of measurlng how well (uslng quanLlLaLlve measures) your sofLware sysLem works. noLe
LhaL LesLlng your sofLware ls dlfferenL from runnlng your sofLware Lo geL resulLs. 1esLlng your sofLware makes
sure LhaL lL ls dolng whaL lL ls supposed Lo do. valldaLlng your sofLware makes sure LhaL whaL lL ls supposed Lo
do acLually solves Lhe orlglnal problem. LvaluaLlng your sofLware explores how well your sofLware operaLes.
Address Lhese Lhree lssues separaLely.

?ou need Lo ldenLlfy Lhe dlfferenL 'meLrlcs' whlch you need Lo measure Lo evaluaLe your soluLlon. Some of Lhe
obvlous ones, whlch you should normally lnclude, are:

! performance (LhroughpuL, laLency, memory/dlsk usage, eLc)
! sLablllLy under load (also called sLress LesLlng)


3.6.2 8LSLA8CP 8C!LC1S

A research pro[ecL fundamenLally conslsLs of a hypoLhesls" and experlmenLs Lo elLher conflrm or refuLe lL.
?our hypoLhesls ls LhaL your soluLlon solves Lhe problem - you wlll need Lo formulaLe a more deLalled wordlng
for your pro[ecL however. ?ou lmplemenL your soluLlon ln code, and run experlmenLs agalnsL lL. 8y collecLlng
Lhe resulLs, and analyslng Lhem uslng sLaLlsLlcal meLhods (usually), you can Lhen elLher prove or refuLe Lhe
hypoLhesls. ?ou musL be careful abouL LhreaLs Lo valldlLy" - conslder how valld your resulLs are, and how far
can you generallse Lhem.

lf you have done some LheoreLlcal developmenL durlng your research, whlch you are evaluaLlng wlLh a
sofLware lmplemenLaLlon, Lhen your verlflcaLlon ls LesLlng lndlvldual funcLlons or classes Lo make sure Lhey
perform as speclfled, valldaLlon ls maklng sure LhaL Lhe sysLem meeLs Lhe requlremenLs, and evaluaLlon ls
measurlng how well your sysLem works.

2012/2013
14
3.6.3 MAln1AlnA8lLl1? Anu 8L-uSL

ln Lhe normal course of evenLs ln a compuLer sclence pro[ecL, Lhere comes a Llme when Lhe sysLem ls
commlssloned and lL becomes operaLlonal. As Llme passes, lL ls necessary Lo monlLor Lhe performance of Lhe
sysLem and make ad[usLmenLs and, occaslonally, Lo replace lL. lL ls almosL lnevlLable, Loo, LhaL Lhe
requlremenLs wlll change wlLh Llme and Lhls, ln Lurn, wlll necesslLaLe alLeraLlons and upgrades. 1yplcally, Lhls
phase ls noL of ma[or concern ln a flnal year pro[ecL buL lL's as well Lo be aware of lL slnce Lhe ma[orlLy of Lhe
llfe of a sysLem ls spenL ln Lhls phase of lLs llfe-cycle.

6 DCCUMLN1A1ICN

We noLed earller LhaL wrlLlng ls an essenLlal parL of undersLandlng. We noLe lL agaln here buL ln a dlfferenL
sense. ln Lhls case, wrlLlng ls essenLlal ln order for oLhers Lo undersLand whaL you have done. 1here are Lwo
reasons why you wanL oLhers Lo undersLand your work:

1. So LhaL you can be glven credlL for lL (your flnal mark depends on lL),
2. So LhaL oLhers can carry on your work and develop or malnLaln your sysLem.

lL ls exLremely lmporLanL LhaL you documenL your work aL every sLage of your pro[ecL. We saw already LhaL
documenLaLlon ls essenLlal ln Lhe lnlLlal readlng-ln, requlremenLs, and speclflcaLlon phases buL lL ls equally
lmporLanL ln Lhe deslgn, lmplemenLaLlon, LesL, and malnLenance phases.

1he besL way Lo organlse your wrlLlng ls Lo keep a a log book of all work ln progress. ?ou should go ouL and buy
a hard-cover noLebook and wrlLe everyLhlng you do on Lhe pro[ecL lnLo Lhls log book evety Joy. Lvery LhoughL
and observaLlon you have on your pro[ecL should go lnLo Lhls book, along wlLh noLes of meeLlngs wlLh your
supervlsor, resulLs, LheoreLlcal developmenLs, calculaLlons, everyLhlng. 1hls log book wlll become an lnvaluable
source of maLerlal when you come Lo wrlLe up your pro[ecL ln Lhe flnal reporL. lL wlll also provlde relevanL
maLerlal for your monLhly reporLs. ?ou should submlL Lhe log-book Lo your supervlsor aL Lhe end of Lhe pro[ecL.

Powever, don'L walL unLll Lhe end of Lhe pro[ecL Lo begln Lhe process of formal documenLaLlon. AL Lhe end of
each phase of Lhe pro[ecL (or aL Lhe end of each Lask) you should wrlLe up any documenLaLlon and reporLs
relaLed Lo LhaL phase. 1hese wlll, ln Lurn, conLrlbuLe Lo your flnal reporL.

llnally, Lhere ls one oLher form of documenLaLlon LhaL you wlll have Lo creaLe durlng your pro[ecL. 1hls ls Lhe
f|na| presentat|on.

6.1 uCCuMLn1lnC ?Cu8 8C!LC1

?our assessmenL ls prlmarlly based on Lhe quallLy of Lhe work you have done, as expressed Lhrough Lhe reporL
you produce.

6.2 uCCuMLn1lnC ?Cu8 WC8k

1he maln reason for documenLlng Lhe work you have done for your flnal year pro[ecL ls assessmenL. lor Lhls
reason lL ls lmporLanL LhaL Lhls ls: conclse, preclse, and compleLe. A suggesLed reporL layouL ls lncluded ln
Appendlx: 1yplcal SLrucLure of a llnal ?ear ro[ecL - buL remember lL ls Lhe conLenL LhaL ls mosL lmporLanL.
noLe LhaL Lhls does noL mean LhaL you [usL slmply have Lo flll ln Lhe gaps ln a general reporL LemplaLe. 1he
sLandard sLrucLure slmply provldes you wlLh a place Lo sLarL as you begln Lo deslgn Lhe flnal sLrucLure and
conLenL of your documenLs. ?ou wlll sLlll have Lo do qulLe a loL of work Lo make lL flL your own pro[ecL

A second reason for documenLlng your work ls Lo provlde experlence for Lhe fuLure: be lL ln lndusLrlal
developmenL, or research, or anoLher seLLlng. ?ou wlll need Lo produce documenLaLlon and reporLs ln almosL
all careers, and Lhe flnal year pro[ecL provldes you wlLh an opporLunlLy Lo experlence Lhls ln a gulded and
supervlsed conLexL.
2012/2013
13

noLe LhaL for some pro[ecLs Lhe research wlll provlde Lhe basls for your sofLware developmenL, ln oLher
pro[ecLs, your sofLware developmenL wlll provlde Lhe basls for evaluaLlng your own LheoreLlcal developmenLs.
ln elLher case, Lhe research musL be well performed, and Lhe sofLware musL be developed and LesLed ln a
sysLemaLlc manner.

8eference Lechnlcal reporL nulM-CS-182003-09 for addlLlonal deLalls of how Lo documenL your work ln a
sLrucLured manner.

6.3 8C!LC1 8LC81

?our flnal reporL ls a crlLlcal parL of your pro[ecL. lL deflnes whaL you have done and why you have done lL. lL ls
Lhe chlef way LhaL your pro[ecL ls examlned and assessed and lL on Lhe basls of Lhe reporL LhaL you wlll be
assessed.

ln wrlLlng your llnal 8eporL, you wlll need Lo declde on lLs cooteot and on lLs sttoctote. We wlll look aL boLh of
Lhese aspecLs ln Lurn, beglnnlng wlLh Lhe conLenL. We wlll conclude wlLh a few guldellnes on good wrlLlng
pracLlce.

6.S.1 CCN1LN1 CI 1nL kLCk1

Clearly, Lhe conLenL of Lhe reporL ls golng Lo vary from pro[ecL Lo pro[ecL and lL ls dlfflculL Lo make any sLrlcL
recommendaLlons. Powever, we can make a few general observaLlons abouL Lhe conLenL of your reporL. A
compuLer sclence pro[ecL ls an exerclse ln Lhe well-[udged appllcaLlon of knowledge ln Lhe soluLlon of some
problem. ?our flnal year pro[ecL provldes you wlLh an opporLunlLy Lo demonsLraLe your ablllLy Lo use your
[udgemenL. 1hls means LhaL you musL show your sklll aL: Ass|m||at|ng, Synthes|s|ng, and Cr|t|ca||y Appra|s|ng
all maLerlal relevanL Lo Lhe compuLer sclence pro[ecL.

?our maln opporLunlLy Lo dlsplay your LalenLs aL asslmllaLlon and synLhesls comes when you wrlLe Lhe pro[ecL
reporL. needless Lo say, synLhesls means LhaL you musL wrlLe Lhe LexL yourself, expresslng your undersLandlng
of Lhe maLerlal ln your own words.

1here ls a sLrlcL page llmlL on your flnal year pro[ecL, so you musL deLermlne Lhe mosL slgnlflcanL lnformaLlon
LhaL needs Lo be lncluded ln your pro[ecL. ?ou need an approprlaLe balance beLween Lhe dlfferenL faceLs of
your pro[ecL Lo glve your readers (and markers) a clear plcLure of whaL you have achleved and how you
achleved lL.

8eslsL Lhe LempLaLlon, no maLLer how sLrong, Lo copy senLences or paragraphs (or whole secLlons) from oLher
books or arLlcles. Copylng ls noL synLhesls and lL demonsLraLes nelLher your asslmllaLlon of maLerlal nor your
undersLandlng of lL. lf you do come across a senLence or paragraph whlch ls so good LhaL ls [usL has Lo be used,
Lhen do so and lnclude lL as a dlrecL quoLaLlon, provldlng a proper reference Lo Lhe orlglnal source. resent|ng
the work of others as your own work w||| not be to|erated. In part|cu|ar, copy|ng mater|a| from the web and
present|ng |t as your own work |s express|y forb|dden. Cffenders w||| be pena||sed.

lL ls exLremely lmporLanL LhaL you also appralse, or assess, your own work crlLlcally, l.e. wlLh ob[ecLlvlLy and
wlLh a vlew Lo seelng how lL could be lmproved. Such honesL crlLlclsm does noL mean you wlll recelve fewer
marks, ln facL, lL ls llkely LhaL you wlll recelve more. 1yplcally, you exerclse your LalenLs of crlLlcal appralsal aL
Lhe end of Lhe reporL ln a dlscusslon chapLer buL you can also exerclse lL LhroughouL Lhe reporL wherever lL
seems approprlaLe. noLe LhaL Lhls exerclse of crlLlcal appralsal ls dlfferenL from Lhe LesLlng processes of
verlflcaLlon, valldaLlon, and evaluaLlon, whlch refer Lo Lhe funcLlonallLy of Lhe sysLem you have deslgned. 1he
crlLlque you wrlLe applles less Lo Lhe sysLem and more Lo Lhe overall ob[ecLlves, meLhodologles, flndlngs and
ulLlmaLe ouLcome of Lhe pro[ecL.




2012/2013
16
6.S.2 S1kUC1UkL CI 1nL kLCk1

1he sLrucLure of your reporL ls crlLlcal Lo Lhe lmpacL you make ln your wrlLlng. 8emember LhaL you are Lrylng Lo
convey a message Lo Lhe reader and, slnce Lhls message ls llkely Lo be qulLe compllcaLed, you musL asslsL hlm
or her by maklng your polnLs clearly and ln a loglcal order. 1hlnk of lL as Lelllng an exclLlng sLory: you wanL Lo
Lell enough early on Lo aLLracL Lhe reader's lnLeresL buL noL Loo much oLherwlse he wlll become confused. ?ou
wanL Lo bulld up Lo a cllmax, lncremenLally reveallng more and more of your message, buL dolng so ln a way
whlch bullds on whaL you have already sald. 1hls ls whaL we mean by a loglcal sLrucLure: breaklng up Lhe 'sLory'
lnLo a sequence of messages whlch follow naLurally one from Lhe oLher and whlch lead Lo an lnLeresLlng
concluslon (l.e. a concluslon you couldn'L have guessed from readlng page 1). A clear sLrucLure wlll help you
avold repeaLlng (or conLradlcLlng) yourself. SLrucLure also makes sure LhaL Lhe reader knows whaL parL Lhe
currenL lnformaLlon plays ln Lhe overall Lhesls.

?ou should deslgn your own reporL Lo Lhe level of deLall glven ln Lhe proposed sLrucLure, adapLlng lL Lo your
own parLlcular needs. noLe LhaL you should do Lhls befote you sLarL wrlLlng anyLhlng. lL's [usL llke deslgnlng a
plece of sofLware: Lhe sooner you sLarL codlng, Lhe longer lL wlll Lake (and Lhe more llkely lL ls Lo be wrong). 1ry
Lo achleve modularlLy and lndependence amongsL your chapLers and secLlons. AL Lhe same Llme, remember
you are Lrylng Lo convey a convlnclng message Lo Lhe reader. Agaln, lL's llke Lelllng a good sLory: you have Lo
keep Lhe reader lnLeresLed and he has Lo be able Lo follow Lhe sLory-llne (whlch means Lhere has Lo be one:
make sure Lhere ls). keep Lhe Lhread of Lhe sLory golng conLlnuously, from secLlon Lo secLlon, and from chapLer
Lo chapLer by provldlng llnk senLences or paragraphs: aL Lhe end of a chapLer, for example, remlnd Lhe reader
of Lhe lmporLanL messages, Lell hlm why Lhey are lmporLanL, and Lhen say whaL you need Lo look aL nexL, and
why, ln order Lo conLlnue wlLh Lhe sLory. 1haL's your cue for Lhe nexL chapLer. A Lyplcal ouLllne of a flnal year
pro[ecL reporL ls provlded ln Lhe followlng pages.

A Lyplcal reporL would conslsL of a fronL page and declaraLlon, an absLracL, a Lable of conLenLs, and Lhe
followlng chapLers:

lnLroducLlon
ro[ecL lannlng
8ackground and roblem SLaLemenL
SoluLlon
SofLware lmplemenLaLlon
LxperlmenLs and 8esulLs
Concluslons

lollowed by a 8eferences secLlon.

ueLalls of Lhe slze of your reporL eLc. are glven ln Appendlx A. ueLalled examples of reporL layouLs are glven ln
Appendlces L and l.

noLe LhaL copyrlghL of Lhe pro[ecLs resLs wlLh Lhe unlverslLy as do all lnLellecLual properLy rlghLs assoclaLed
wlLh Lhe pro[ecL. ln essence, Lhls means LhaL Lhe reporL ls confldenLlal Lo Lhe unlverslLy and may noL be copled,
publlshed, or oLherwlse dlssemlnaLed wlLhouL Lhe prlor wrlLLen permlsslon of Lhe unlverslLy.
2012/2013
17

6.6 8C!LC1 8LSLn1A1lCn

?our flnal presenLaLlon should conslsL of flve slldes - suggesLed LlLles are:

Introduct|on
o Clve a very brlef descrlpLlon of your pro[ecL goals.
o uescrlbe Lhe moLlvaLlon for your pro[ecL.
8ackground
o uescrlbe Lhe background Lo your work.
o ldenLlfy prevlous work your based your work on.
o Show you undersLand Lhe conLexL" of your work.
1he rob|em
o uescrlbe Lhe problem.
o lnclude Lechnlcal deLalls.
1he So|ut|on
o uescrlbe Lhe soluLlon(s) you developed and/or evaluaLed.
o lnclude Lechnlcal deLalls.
o ldenLlfy any LhreaLs Lo Lhe valldlLy of Lhe soluLlon.
Lva|uat|on
o Summarlse how you evaluaLed Lhe soluLlon.
o Summarlse Lhe resulLs of your evaluaLlon of Lhe soluLlon.
o LvaluaLe how well you execuLed your pro[ecL - for example:
" how well you undersLood new knowledge
" how well you learned Lo use new Lools
" how well you evaluaLed Lhe soluLlon

7. ASSLSSMLN1 CI CUk kCILC1
?our pro[ecL ls assessed on Lhe dellverables uslng Lhe crlLerla shown below.
7.1 8C!LC1 uLLlvL8A8LLS

?ou wlll be marked on Lhe followlng pro[ecL dellverables:
1. llnal ?ear ro[ecL 8eporL
2. ALLachmenLs
2.1. Source code
2.2. lull deLalls of any models developed
2.3. All pro[ecL plannlng documenLs and records
2.4. lull deLalls of your sofLware LesLlng (verlflcaLlon and valldaLlon), lncludlng LesL cases eLc.
2.3. lull deLalls of your experlmenLs (meLrlcs, experlmenLal seLup, experlmenLs, daLa, resulLs, analysls)
2.6. Coples of your presenLaLlons
3. SupporLlng MaLerlal
3.1. LxecuLable flles
3.2. SpreadsheeLs
3.3. uaLa flles
3.4. uaLabases
3.3. eLc.
4. ro[ecL resenLaLlons (lnLerlm and flnal)
3. ro[ecL uemonsLraLlon
2012/2013
18


7.2 ASSLSSMLn1 C8l1L8lA

?our pro[ecL wlll be assessed on your demonsLraLlon of Lhe followlng:


Category
Nom|na|
We|ght|ng
Note
knowledge & undersLandlng
18
MusL add Lo 90
Analysls
18
AppllcaLlon
18
SynLhesls
18
LvaluaLlon
18
resenLaLlons 10 Always 10
1he relaLlve welghL of each of Lhe flrsL 3 caLegorles ls Lallored by your supervlsor Lo maLch your pro[ecL.
See Appendlx M for deLalls.
7.3 Auul1lCnAL lnlC8MA1lCn

ln speclal cases, Lhe LxLernal Lxamlner may ask Lo lnLervlew sLudenLs on Lhe flnal year pro[ecL.

2012/2013
19

ALNDIk A: GLNLkAL kCILC1 INICkMA1ICN

uLAuLlnLS

De||verab|e rov|s|ona| Dates
SubmlL your pro[ecL accepLance form CcLober 1sL, 2012
uellver your lnLerlm presenLaLlon 18u
uellver progress reporLs: monLhly MonLhly: CcL 19Lh, nov 23rd, uec 21sL
SubmlL your flnal reporL Lo Moodle March 22
nd
2013
uellver your flnal presenLaLlon Aprll 2-3, 2013
uemonsLraLe your work Aprll 10Lh 2012

1he marks awarded for reporLs submlLLed afLer Lhe deadllne wlll be reduced by 2 for every day (or any parL of
a day) LhaL Lhey are laLe - up Lo a maxlmum of 14 deducLlon for pro[ecLs 7 days overdue. ro[ecLs wlll noL be
accepLed laLer Lhan one week pasL Lhe deadllne.

8LC81 LLnC1P

?our flnal reporL, ln ul formaL, musL noL exceed elLher 40 pages or 12,000 words.
1he reporL page layouL should be A4, uslng 12 olnL 1lme new 8oman, 1.3 llne spaclng, and leavlng
lefL and rlghL marglns of approxlmaLely 23mm. ?ou can use Word, LaLex, or any oLher sulLable Lool Lo
prepare your reporL: consulL wlLh your supervlsor flrsL.
1hls LoLal lncludes everyLhlng ln Lhe reporL: Lhe fronL page, Lable of conLenLs, conLenLs, lndex, flgures,
references, eLc.
ALLachmenLs (source code, models, plannlng documenLs and records, sofLware LesLlng deLalls and
resulLs, experlmenL deLalls and resulLs, eLc. ln ul formaL) do noL conLrlbuLe Lo Lhls page counL.
Cverdue, overslzed or oLherwlse unsaLlsfacLory reporLs wlll be penallsed (by up Lo 20).

PCW 1C Su8Ml1 ?Cu8 8LC81

CompleLed flnal year pro[ecL reporLs musL be uploaded Lo Moodle (use module CS440 for all courses). ?ou
musL submlL Lwo flles:

1. 1he 8eporL, as a DI flle.

2. 1he ALLachmenLs and SupporLlng MaLerlal, lncludlng your source code, as a slngle Zl flle:

a. 1hls flle may only conLaln only Lwo folders aL Lhe Lop level \aLLachmenLs and \supporLlng".
b. Lvery flle ln /aLLachmenLs musL be ln DI formaL, wlLh no sub-folders. 1he conLenLs are as
descrlbed above for ALLachmenLs".
c. ?ou may use sub-folders ln /supporLlng, and lnclude any flle Lype as requlred. ?ou musL
lnclude a flle 8LAuML.1x1 descrlblng Lhe folder conLenLs ln deLall, how Lo run any blnary
programs lncluded, eLc. noLe LhaL lf you use non-sLandard flle Lypes, or requlred speclal
sofLware Lools Lo use Lhese flles, Lhey may noL be assessed.

ln addlLlon, you musL also submlL your pro[ecL log-book Lo your supervlsor.

llnAL ?LA8 8C!LC1 CC-C8ulnA1C8

! rof. 8onan 8ellly, Callan room 2.23
2012/2013
20

ALNDIk 8: WnA1 IS kLSLAkCn?

1he book racLlcal 8esearch: lannlng and ueslgn" by aul Leedy llsLs elghL characLerlsLlcs of research:

1. 8esearch orlglnaLes wlLh a quesLlon or a problem.

2. 8esearch requlres a clear arLlculaLlon of a goal.

3. 8esearch follows a speclflc plan of procedure.

4. 8esearch usually dlvldes Lhe prlnclpal problem lnLo more manageable sub-problems.

3. 8esearch ls gulded by Lhe speclflc research problem, quesLlon, or hypoLhesls.

6. 8esearch accepLs cerLaln crlLlcal assumpLlons. 1hese assumpLlons are underlylng Lheorles or ldeas
abouL how Lhe world works.

7. 8esearch requlres Lhe collecLlon and lnLerpreLaLlon of daLa ln aLLempLlng Lo resolve Lhe problem LhaL
lnlLlaLed Lhe research.

8. 8esearch ls, by lLs naLure, cycllcal, LhaL ls, lL requlres mulLlple passes ln order Lo flnd Lhe besL soluLlon.

1hls should seL Lhe 'conLexL' for your pro[ecL. lL should provlde a summary of Lechnlcal aspecLs of your pro[ecL,
and also provlde a revlew of relevanL research ln Lhe area. Make good use of ptopet tefeteoces Lo clLe Lhe
papers, books, and oLher maLerlal you have read. ?our llLeraLure revlew should show LhaL you undersLand Lhe
area LhaL your pro[ecL work wlll be ln, boLh from a Lechnlcal vlewpolnL, and from a vlewpolnL of relevanL
research ln Lhe area. lf you underLake any LheoreLlcal developmenLs as parL of your research, Lhese may derlve
from your llLeraLure revlew or may orlglnaLe from a dlsLlncL requlremenLs ellclLaLlon process.

ln CompuLer Sclence publlcaLlons, a clLaLlon wlll normally Lake Lhe form of a number ln square brackeLs, such
as [1]. An alLernaLlve form ls Lo use auLhor's name and a year ln square brackeLs, such as [8rown 2010]. ln your
references, you musL have a llsL of Lhese, and Lhen Lhe full deLalls for each so LhaL Lhe reader can look lL up -
you musL lnclude Lhe publlcaLlon LlLle, auLhor, year and publlsher. noLe LhaL [usL a u8L ls noL accepLable as Lhe
only conLenL.

8ook: AuLhor(s). 8ook LlLle. LocaLlon: ubllshlng company, year, pp.
Lxamp|e: W.k. Chen. Llnear neLworks and SysLems. 8elmonL, CA: WadsworLh, 1993, pp. 123-33.

Art|c|e |n a Iourna|: AuLhor(s). ArLlcle LlLle". !ournal LlLle, vol., pp, daLe.
Lxamp|e: C. evere. lnfrared naLlon." 1he lnLernaLlonal !ournal of lnfrared ueslgn, vol. 33, pp. 36-99, !an.
1979.

Art|c|es from Conference roceed|ngs (pub||shed): AuLhor(s). ArLlcle LlLle." Conference proceedlngs, year, pp.
Lxamp|e: u.8. ayne and P.C. Cunhold. ulglLal sundlals and broadband Lechnology," ln roc. lCCC-LCCC,
1986, pp. 337-998.

L|ectron|c Iourna|: AuLhor. (year, monLh). ArLlcle LlLle." !ournal LlLle. [1ype of medlum]. vol. (lssue), pages.
Avallable: slLe/paLh/flle [daLe accessed].
Lxamp|e: A. aul. (1987, CcL.). LlecLrlcal properLles of flylng machlnes." llylng Machlnes. [Cn-llne]. 38(1), pp.
778-998. Avallable: www.flylngmach[ourn/properLles/fly.edu [uec. 1, 2003].

Wor|d W|de Web: AuLhor(s)*. 1lLle." lnLerneL: compleLe u8L, daLe updaLed* [daLe accessed].
Lxamp|e: M. uuncan. Lnglneerlng ConcepLs on lce. lnLerneL: www.lceengg.edu/sLaff.hLml, CcL. 23, 2000 [nov.
29, 2003].
2012/2013
21

ALNDIk C: A VLk SnCk1 GUIDL 1C GCCD WkI1INGf

! use shorL senLences and make sure Lhe senLences are compleLe.

A complete sentence usually has a subject followed by a verb and an object. For example:
The compiler identified two syntax errors. We can add other words to enhance the
descriptiveness and richness of the sentence: The C++ compiler identified two subtle
syntax errors but, unfortunately, it was unable to find the semantic errors in my program.

lf you remove all anclllary words, you should be lefL wlLh a valld senLence, lf noL, Lhen you
haven'L wrlLLen Lhe senLence correcLly. lL's a good ldea Lo check all your senLences Lhls way.

! Cood wrlLlng sLrlkes a balance beLween shorL senLences and longer ones. !usL as ln speaklng, Lhe
full sLops mean pauses: Loo many pauses and Lhe LexL sounds dlsconnecLed, Loo few and lL can
be hard Lo follow Lhe sLory llne. SLrlke a balance: favour brevlLy over complexlLy.

! use plcLures and dlagrams, wlLh a self-conLalned explanaLory capLlon for each. never refer Lo a
plcLure or dlagram ln Lhe maln LexL wlLhouL saylng whaL lL ls. lor example, never say llgure 2.3
shows Lhe resulLs of Lhe nolse LesL" and Lhen carry on Lo anoLher Loplc. Pelp Lhe reader.
Summarlse Lhe conLenL of Lhe flgure ln a shorL senLence: llgure 2.3 shows Lhe resulLs of Lhe
nolse LesL whlch demonsLraLe Lhe robusLness of Lhe sysLem Lo Causslan nolse wlLh a sLandard
devlaLlon of 2.3 or less." lf you have copled Lhe flgure you musL clLe Lhe source.

! Make Lhe paragraph your unlL of consLrucLlon. Lach paragraph should conLaln senLences abouL a
glven sub[ecL. lf Lhe sub[ecL changes, sLarL a new paragraph.

! CmlL unnecessary words - Lhey dlsLracL Lhe reader. uon'L wrlLe: 1hls ls a sysLem Lhe
performance of whlch ls very useful". lnsLead, wrlLe: 1hls ls a useful sysLem".

! WrlLe ln a way LhaL comes naLurally. Speak Lhe senLence. lf lL sounds correcL, LrusL your ear and
use Lhe senLence. lf lL sounds unnaLural, rewrlLe lL.

! 8e clear ln your expresslon. lf Lhe ldea you are Lrylng Lo convey ls geLLlng losL ln a sea of words
and phrases, draw a llne Lhrough Lhe senLence and sLarL agaln. Avold unusual words, unless Lhey
have a speclflc meanlng LhaL ls lmporLanL Lo your senLence.

! uon'L Lake shorL-cuLs. Lxplaln whaL you mean. uon'L leave Lhe reader Lo sLruggle Lrylng Lo flgure
ouL whaL Lhe real meanlng ls of a complex senLence, he may conclude Lhere ls none. Lxplaln all
acronyms Lhe flrsL Llme you use Lhem.

! 8evlse and rewrlLe. lL ls unllkely LhaL you wlll manage Lo flnd Lhe besL way of expresslng an ldea
wlLh your flrsL aLLempL. 8e prepared Lo revlse lL, agaln and agaln.

! llnally, lf you wanL Lo learn how Lo wrlLe a good reporL, you need Lo do Lwo Lhlngs: you need Lo
read oLher good reporLs and you need Lo pracLlse your own wrlLlng.

1
AdapLed from 1be lemeots of 5tyle" by W. SLrunk & L.8. WhlLe, Macmlllan 1979.
2012/2013
22

ALNDIk D: GIVING kLSLN1A1ICNS

You should have learned something about presentation skills during your time in the University.
Nonetheless, a few pointers may help you give a professional and impressive presentation.

! uon'L depend Loo much on owerolnL slldes: your speech ls Lhe presenLaLlon and Lhe slldes
supporL you (noL Lhe oLher way around). uo nC1 [usL read Lhe LexL from slldes - lL ls very borlng
for Lhe audlence. use slldes Lo show oLher aspecLs of your research (for example, dlagrams,
anlmaLlons, screen-shoLs, phoLographs, dlagrams, eLc.). 1hese make a presenLaLlon more
lnLeresLlng.

! 1ake your Llme: pause frequenLly. SomeLlmes, Lhe besL Lhlng Lo say ls noLhlng. ShorL one-second
resLs creaLe dramaLlc lmpacL and also glve your audlence Llme Lo asslmllaLe whaL you've sald. Cf
course, you also have Lo malnLaln conLlnulLy and flow, oLherwlse people forgeL whaL you are
Lalklng abouL. lL's a quesLlon of balance.

! use a mlcrophone (and pracLlce uslng lL before your presenLaLlon).

! Arrlve early and make sure you know where all Lhe equlpmenL ls. know how Lo use lL.

! Copy your presenLaLlon onLo Lhe machlne before your sesslon.

! Look aL Lhe audlence, noL aL your slldes.

! ro[ecL your volce (buL don'L shouL).

! Smlle: en[oy glvlng your presenLaLlon.

! 8e confldenL: you've done some greaL work - here ls your opporLunlLy Lo geL credlL for lL.

! 1he people ln Lhe audlence ote on your slde (Lhough someLlmes Lhey dlsgulse lL well!) 1hey wanL
you Lo succeed. lf Lhey ask you a quesLlon you don'L undersLand, say so and ask Lhelr help. Ask
Lhem Lo explaln, and ask nlcely. lf you sLlll don'L undersLand, don'L bluff. AdmlL your lgnorance
and suggesL ways of how you wlll overcome LhaL lack of knowledge.

! nobody knows everyLhlng, buL LhaL's no excuse for noL ttyloq Lo know everyLhlng. A
knowledgeable person knows enough Lo do hls [ob well, a wlse person knows LhaL he doesn'L
know everyLhlng, and an lnLelllgenL person knows how Lo flnd ouL whaL he doesn'L know. 8e
knowledgeable, wlse, and lnLelllgenL: be a compuLer sclenLlsL.
2012/2013
23

ALNDIk L: 1ICAL S1kUC1UkL CI A IINAL LAk DLVLLCMLN1 kCILC1 kLCk1

noLe: text |n bo|d you may keep as head|ngs. 1ext lo ltollcs ls qolJelloes tbot yoo most teploce.

1|t|e age

1bls poqe sboolJ be fotmotteJ os sbowo lo AllNul\. 1l1l lAC

Dec|arat|on

1bls poqe sboolJ be fotmotteJ os sbowo lo AllNul\. uclAkA1lON

Abstract

! use opptoxlmotely J00 wotJs to sommotlse tbe sobject mottet of tbe tepott, tbe ptoblem beloq
solveJ, tbe motlvotloo fot solvloq lt, tbe opptoocb tokeo, yoot floJloqs ooJ cooclosloos.
! complete tbe obsttoct oftet yoo bove completeJ tbe test of tbe tepott. lt ootmolly tokes sevetol
tevlsloos to ocbleve o qooJ obsttoct.

Acknow|edgements

! oo moy ockoowleJqe belp ftom ftleoJs ooJ colleoqoes, ftom yoot sopetvlsot, stoff, Jepottmeot ooJ
oolvetslty, ooJ ftom yoot poteots ooJ fomlly.

1ab|e of Contents

! llst tbe cboptets ooJ top-level 5ectloos, qlvloq tbe poqe oombets. Ceoetote tbls ootomotlcolly, oot by
booJ.

Chapter 1 Introduct|on

Every chapter should start with an introductory paragraph to summarise the content. This tells the
reader both how this chapter follows on from previous chapters, and what to expect in the chapter. Do
not just repeat the table of contents for the chapter!
1.1 Goals
State what was to be achieved in the project
1.2 Motivation
Describe why the problem is worth solving
1.3 Method
Summarise how was the project was carried out
1.4 Overview
Give a brief summary of the technical area
1.5 Report Overview
Summarise what material you will cover and how is it arranged

Chapter 2 8ackground and rob|em Statement

Introductory paragraph
2.1 Introduction
In your own words, provide a description of the problem domain
2.2 Literature Review
Present the state-of-the-art of product/systems in this area. You should organise this in some
other way than by company or by date in order to show your understanding!
2.3 Problem Statement
Clearly state the problem that you are attempting to solve in your project
2012/2013
24

Chapter 3 ro[ect Management

Introductory paragraph
3.1 Approach
Discuss how you planned the project, and why you planned it the way you did
3.2 Initial Project Plan
Show your initial project plan in the form of a Gantt Chart and a brief description, showing
planned dates. If your task names are not self-explanatory, provide a table to explain the
tasks.
3.3 Problems and Changes to the Plan
Identify problems you faced that caused you to change the plan, and justify the changes.
3.4 Final Project Record
Show your final project plan in the form of a Gantt Chart and a brief description, showing
actual dates.

You should include your full project plan, all intermediate plans, and status reports (see Project Plan)
in an appendix.
Chapter 4 Ana|ys|s

Introductory Paragraph this is where you describe and analyse the problem in detail

4.1 Problem Modelling
Breakdown the problem into the different user tasks that the user needs to perform in
order to solve their problem. Summarise the tasks here, perhaps describing a few key ones
in more detail, and identifying the inputs and outputs for each. You might find it useful to
include a summary User Case diagram.
4.2 Non-Functional Requirements
Summarise any requirements that the user has for security, reliability, maintainability,
portability, performance etc.

Include full analysis details (see User Requirements Specification), with Use Case Diagrams, State
Machines, and Activity Diagrams in the Appendix.

Chapter S roduct]System Des|gn

Introductory paragraph this is where you describe your solution to the problem
5.1 Introduction
Discuss how you designed the software, identify different design options, and justify why you
picked the one used
6.2 Product Features
Identify and summarise the key product features. For a GUI these are the main commands that
the user can give. For a networked system, these are the main protocol messages accepted.
For an embedded system these are the main external events that the system must respond to
6.3 User Interface
For each product feature, state what each user interface component must do (state the inputs,
actions, and outputs). Include a detailed design for each screen in the Appendix.
6.4 Interfaces to External Hardware and Software
For each product feature, identify the key inputs, actions, and outputs to each important item
of external hardware or software. Include a detailed design in the Appendix.
6.5 Non-Functional Requirements
Summarise requirements on your product/system for security, reliability, maintainability,
portability, performance etc. You should review your software design against these
requirements.
6.6 Data Storage
Summarise what data must be placed in persistent store within the product/system, and what
relationships must be maintained.
2012/2013
23
6.7 Design Verification
Summarise how your product/system design satisfies the user requirements. One way is to
walk through a few key user tasks, using Sequence Diagrams to show how the combination
of features allows the user to achieve the task.

Include full design details (see Product Design Document) in the Appendix.

Chapter 6 Software Des|gn
Introductory paragraph
6.1 Introduction
Discuss how you designed the software, identify different design options, and justify why you
picked the one used
6.2 High Level Design
Summarise the top level objects and their relationships (e.g. UML Class Diagrams)
6.3 Detailed Design
Summarise the object contents (e.g. Javadoc specifications for Methods and Attributes)
6.4 Design Verification
Summarise how your design satisfies the product/system design requirements. One way is to
walk through a few key product features, showing how the combination of classes allows
the feature to be supported.

Include full design details (see Software Design Specification) in the Appendix.

Chapter 7 Imp|ementat|on

Introductory paragraph
7.1 Introduction
Discuss your choice of language, tools and platform.
7.2 Coding
Where not obvious, discuss how you translated the detailed design into code (for example:
how you decide to code association classes and two-way associations).
7.3 Verification
Summarise how you tested the code (unit test and system test). Discuss the techniques you
used to select test cases and test data. Summarise the test results, showing that the software
satisfied the detailed design, and that the product/system satisfies the product/system design.
7.4 Validation
Summarise how you showed that the solution satisfies the user requirements. This normally
consists of manual execution of each user task.

Include full source code and testing details (see Software Testing Document and Software Product
Validation) in the Appendix.

Chapter 8 Lva|uat|on

Introductory paragraph
8.1 Metrics
Identify and describe the metrics you used to evaluate your software.
8.2 Experimental Setup
Describe the experimental setup for each metric, and how you obtained the measurements.
8.3 The Experiments
Describe the inputs for each experiment
8.4 Results
Summarise the output data, and the statistical or other techniques to deduce your results.
Summarise your results, including tables or graphs as appropriate with a brief description of
each. Where possible, compare your results with other products/systems.
8.5 Validity
2012/2013
26
Identify any possible threats to the validity of your results, and discuss each.

Include detailed data and results in the Appendix.

Chapter 9 D|scuss|on and Conc|us|on

Introductory paragraph

9.1 Solution Review
Discuss how well your solution solves the problem, based on your results from Chapter 8.
9.2 Project Review
Discuss how well you addressed the project, and what you might do differently if you were to
do it again. In particular, make sure to identify how you handled any problems that arose
during the project.
9.3 Key Skills
Identify key skills that you learnt during the project, and clearly describe how you applied
these, and how you might apply them differently if you were to do a similar project.
9.3 Future Work
Discuss any proposals for completion of the project, or for enhancements, or for re-design of
your solution or software.
9.4 Conclusion
Summarise the project and your solution in one or two paragraphs.

References

Include a list of references cited in the report here. Either use the [numbered] or [namedate] convention.

Appendices (in a ZIP file)
! Source Code (lncludlng all scrlpLs, makeflles, xML, P1ML, eLc.)
! lf posslble, lnclude a complled execuLable wlLh runnlng lnsLrucLlons
! 8eadlng reporLs
! lnLerlm rogress 8eporLs
! ro[ecL lan uocumenL
! user 8equlremenL uocumenL (uevelopmenL ro[ecL) or 1heoreLlcal uevelopmenL (8esearch ro[ecL)
! roducL/SysLem ueslgn uocumenL
! SofLware Plgh-Level ueslgn
! ueLalled SofLware ueslgns (for example, lf uslng !ava, lnclude Lhe !avadoc ouLpuL flles here)
! SofLware 1esL uocumenLs (LesLs & LesL resulLs)
! SofLware LvaluaLlon 8esulLs
! Any addlLlonal ouLpuLs LhaL you creaLed durlng Lhe pro[ecL

1bls ls oo ootlloe tepott sttoctote. Mooy ptojects wlll voty ftom tbls. coosolt wltb yoot ptoject sopetvlsot to
cteote tbe most opptoptlote sttoctote fot yoot tepott!
2012/2013
27

ALNDIk I: 1ICAL S1kUC1UkL CI A IINAL LAk kLSLAkCn kCILC1 kLCk1

noLe: text |n bo|d you may keep as head|ngs. 1ext lo ltollcs ls qolJelloes tbot yoo most teploce.

1|t|e age

1bls poqe sboolJ be fotmotteJ os sbowo lo AllNul\. 1l1l lAC

Dec|arat|on

1bls poqe sboolJ be fotmotteJ os sbowo lo AllNul\. uclAkA1lON

Abstract

! use opptoxlmotely J00 wotJs to sommotlse tbe sobject mottet of tbe tepott, tbe ptoblem beloq
solveJ, tbe motlvotloo fot solvloq lt, tbe opptoocb tokeo, yoot floJloqs ooJ cooclosloos. cleotly lJeotlfy
ooy otlqlool coottlbotloos yoot wotk bos moJe to tbe flelJ.
! complete tbe obsttoct oftet yoo bove completeJ tbe test of tbe tepott. lt ootmolly tokes sevetol
tevlsloos to ocbleve o qooJ obsttoct.

Acknow|edgements

! oo moy ockoowleJqe belp ftom ftleoJs ooJ colleoqoes, ftom yoot sopetvlsot, stoff, Jepottmeot ooJ
oolvetslty, ooJ ftom yoot poteots ooJ fomlly.

1ab|e of Contents

! llst tbe cboptets ooJ top-level 5ectloos, qlvloq tbe poqe oombets. Ceoetote tbls ootomotlcolly, oot by
booJ.

Chapter 1 Introduct|on

Every chapter should start with an introductory paragraph to summarise the content. This tells the
reader both how this chapter follows on from previous chapters, and what to expect in the chapter. Do
not just repeat the table of contents for the chapter!
1.1 Goals
State what was to be achieved in the project
1.2 Motivation
Describe why the problem is worth solving
1.3 Method
Summarise how was the project was carried out
1.4 Overview
Give a brief summary of the technical area
1.5 Report Overview
Summarise what material you will cover and how is it arranged

Chapter 2 8ackground and rob|em Statement

Introductory paragraph
2.1 Introduction
In your own words, provide a description of the problem domain
2.2 Literature Review
Present the state-of-the-art of research in this area. You should organise this in some other
way than by author or by date in order to show your understanding!
2.3 Problem Statement
2012/2013
28
Clearly state the problem that you are attempting to solve in your project

Chapter 3 ro[ect Management

Introductory paragraph
3.1 Approach
Discuss how you planned the project, and why you planned it the way you did
3.2 Initial Project Plan
Show your initial project plan in the form of a Gantt Chart and a brief description, showing
planned dates. If your task names are not self-explanatory, provide a table to explain the
tasks.
3.3 Problems and Changes to the Plan
Identify problems you faced that caused you to change the plan, and justify the changes.
3.4 Final Project Record
Show your final project plan in the form of a Gantt Chart and a brief description, showing
actual dates.

You should include your full project plan, all intermediate plans, and status reports (see Project Plan)
in an appendix.
Chapter 4 Ana|ys|s and So|ut|on

Introductory Paragraph this is where you describe and analyse the problem in detail

4.1 Problem Modelling
This is the foundation of all science: the creation of a rigorous usually mathematical
description of the real physical problem to be addressed. For example, if your problem
concerned with packet routing, you might represent it using a graph and deploy formal graph
theoretic tools for its analysis; if your problem is concerned with signal analysis, you might
choose a Fourier representation or an Eigen-vector representation and deploy the appropriate
theorems in Fourier analysis or linear system theory. If your problem is to do with building a
database, you will probably model the problem with an entity-relationship diagram. Your
model should identify the inputs that your solution should accept, and the outputs that it
should produce.
4.2 Solution
This is the most critical section of your report. Describe your solution, identifying different
options and their pros and cons. Show, preferably mathematically, how your solution solves
the problem. Provide a model of your solution that clearly identifies the computation required
to produce the outputs from the inputs.

If you need extra space, then include full analysis details in the Appendix.

Chapter S roduct]System Des|gn

Introductory paragraph this is where you describe the realisation of your solution to the problem
5.1 Introduction
Discuss how you designed the software, identify different design options, and justify why you
picked the one used
6.2 Product Features
Identify and summarise the key product features. For a GUI these are the main commands that
the user can give. For a networked system, these are the main protocol messages accepted.
For an embedded system these are the main external events that the system must respond to
6.3 User Interface
For each product feature, state what each user interface component must do (state the inputs,
actions, and outputs). Include a detailed design for each screen in the Appendix.
6.4 Interfaces to External Hardware and Software
2012/2013
29
For each product feature, identify the key inputs, actions, and outputs to each important item
of external hardware or software. Include a detailed design in the Appendix.
6.5 Non-Functional Requirements
Summarise requirements on your product/system for security, reliability, maintainability,
portability, performance etc. You should review your software design against these
requirements.
6.6 Data Storage
Summarise what data must be placed in persistent store within the product/system, and what
relationships must be maintained.
6.7 Design Verification
Summarise how your product/system design implements your solution. One way is to walk
through different applications of the solution, using Sequence Diagrams to show how the
combination of features allows the product/system to produce the correct output.

Include full design details (see Product Design Document) in the Appendix.

Chapter 6 Software Des|gn
Introductory paragraph
6.1 Introduction
Discuss how you designed the software, identify different design options, and justify why you
picked the one used
6.2 High Level Design
Summarise the top level objects and their relationships (e.g. UML Class Diagrams)
6.3 Detailed Design
Summarise the object contents (e.g. Javadoc specifications for Methods and Attributes)
6.4 Design Verification
Summarise how your design satisfies the product/system design requirements. One way is to
walk through a few key product features, showing how the combination of classes allows
the feature to be supported.

Include full design details (see Software Design Specification) in the Appendix.

Chapter 7 Imp|ementat|on

Introductory paragraph
7.1 Introduction
Discuss your choice of language, tools and platform.
7.2 Coding
Where not obvious, discuss how you translated the detailed design into code (for example:
how you decide to code association classes and two-way associations).
7.3 Verification
Summarise how you tested the code (unit test and system test). Discuss the techniques you
used to select test cases and test data. Summarise the test results, showing that the software
satisfied the detailed design, and that the product/system satisfies the product/system design.
7.4 Validation
Summarise how you showed that the solution satisfies the user requirements. This normally
consists of manual execution of each user task.

Include full source code and testing details (see Software Testing Document and Software Product
Validation) in the Appendix.

Chapter 8 Lva|uat|on

Introductory paragraph
8.6 Metrics
Identify and describe the metrics you used to evaluate your software.
2012/2013
30
8.7 Experimental Setup
Describe the experimental setup for each metric, and how you obtained the measurements.
8.8 The Experiments
Describe the inputs for each experiment
8.9 Results
Summarise the output data, and the statistical or other techniques to deduce your results.
Summarise your results, including tables or graphs as appropriate with a brief description of
each. Where possible, compare your results with other products/systems.
8.10 Validity
Identify any possible threats to the validity of your results, and discuss each. Make sure to
explicitly cover the threat to validity that would be introduced if you software did not actually
implement your solution correctly.

Include detailed data and results in the Appendix.

Chapter 9 D|scuss|on and Conc|us|on

Introductory paragraph

9.1 Solution Review
Discuss how well your solution solves the problem, based on your results from Chapter 8.
9.2 Project Review
Discuss how well you addressed the project, and what you might do differently if you were to
do it again. In particular, make sure to identify how you handled any problems that arose
during the project.
9.3 Key Skills
Identify key skills that you learnt during the project, and clearly describe how you applied
these, and how you might apply them differently if you were to do a similar project.
9.3 Future Work
Discuss any proposals for completion of the project, or for enhancements, or for re-design of
your solution or software.
9.4 Conclusion
Summarise the project and your solution in one or two paragraphs.

References

Include a list of references cited in the report here. Either use the [numbered] or [namedate] convention.

Appendices (in a ZIP file)
! Source Code (lncludlng all scrlpLs, makeflles, xML, P1ML, eLc.)
! lf posslble, lnclude a complled execuLable wlLh runnlng lnsLrucLlons
! 8eadlng reporLs
! lnLerlm rogress 8eporLs
! ro[ecL lan uocumenL
! user 8equlremenL uocumenL (uevelopmenL ro[ecL) or 1heoreLlcal uevelopmenL (8esearch ro[ecL)
! roducL/SysLem ueslgn uocumenL
! SofLware Plgh-Level ueslgn
! ueLalled SofLware ueslgns (for example, lf uslng !ava, lnclude Lhe !avadoc ouLpuL flles here)
! SofLware 1esL uocumenLs (LesLs & LesL resulLs)
! SofLware LvaluaLlon 8esulLs
! Any addlLlonal ouLpuLs LhaL you creaLed durlng Lhe pro[ecL

1bls ls oo ootlloe tepott sttoctote. Mooy ptojects wlll voty ftom tbls. coosolt wltb yoot ptoject sopetvlsot to
cteote tbe most opptoptlote sttoctote fot yoot tepott!
2012/2013
31


ALNDIk G: 1I1LL AGL AND DLCLAkA1ICN

ro[ect 1|t|e
Cpt|ona| Subt|t|e

Iu|| Name




llnal ?ear ro[ecL - 2012
8.Sc. Slngle/uouble Ponours ln
CompuLer Sclence/CompuLer Sclence and SofLware Lnglneerlng
(deleLe where noL appllcable)







ueparLmenL of CompuLer Sclence
naLlonal unlverslLy of lreland, MaynooLh
Co. klldare
lreland




A Lhesls submlLLed ln parLlal fulfllmenL of Lhe requlremenLs for Lhe 8.Sc. Slngle/uouble Ponours ln CompuLer
Sclence/CompuLer Sclence and SofLware Lnglneerlng.
Supervlsor: ur. A.n. CLher
2012/2013
32













Dec|arat|on

l hereby cerLlfy LhaL Lhls maLerlal, whlch l now submlL for assessmenL on Lhe program of
sLudy leadlng Lo Lhe award of 8.Sc. Slngle/uouble Ponours ln CompuLer Sclence/CompuLer
Sclence and SofLware Lnglneerlng, ls eotltely my own work and has noL been Laken from Lhe
work of oLhers - save and Lo Lhe exLenL LhaL such work has been clLed and acknowledged
wlLhln Lhe LexL of my work.


Slgned: _________________________________ uaLe: _________________
2012/2013
33
ALNDIk n: kCILC1 LANNING

ro[ecLs are complex and requlre careful LhoughL and analysls Lo ldenLlfy manageable Lasks. Lach unlL of work
ln a pro[ecL ls called a Lask. A large Lask may be dlvlded lnLo sub-Lasks. lf necessary, sub-Lasks may ln Lurn be
broken lnLo sub-sub-Lasks.

C.1 1ASkS

1he followlng ls a gulde Lo ldenLlfylng Lhe Lasks for a pro[ecL plan

! ldenLlfy and number all Lhe ma[or Lasks, use Lhe Lyplcal pro[ecL ma[or acLlvlLles shown prevlously as a
sLarLlng polnL

! 8reak large Lasks lnLo sub-Lasks (as a rule of Lhumb, each sub-Lask should Lake abouL 1 week Lo compleLe).
Clve Lhese unlque numbers of Lhe form Lask-number.sub-Lask-number. A Lask wlLh sub-Lasks ls referred Lo
as a summary" Lask.

! lor each Lask, and sub-Lask, whlch ls NC1 a summary Lask:

# As dlscussed above, provlde a unlque, numerlcal Lask ldenLlfler of Lhe form Lasknumber or
Lasknumber.subLasknumber or Lasknumber.subLasknumber.subsubLasknumber.

# LsLlmaLe how much efforL you expecL lL Lo Lake (Lhls ls Lhe work ln hours) and over whaL perlod you
wlll spread LhaL efforL (Lhls ls Lhe durat|on ln days).

# ldenLlfy Lhe requlred lnpuLs - lnformaLlon, sofLware, hardware, and, mosL lmporLanL of all, any
ouLpuLs from prevlous Lasks ln your pro[ecL.

# ldenLlfy Lhe expecLed resulLs (also called Lhe ouLpuLs or dellverables) of Lhe Lask.

# ldenLlfy a course of acLlon Lo Lake lf Lhe Lask falls for some reason (e.q. Lhe sofLware/hardware doesn'L
arrlve ln Llme).

! now ldenLlfy Lhe order ln whlch you should underLake Lhe Lasks. ln Lhls, you wlll have Lo conslder Lhe
relaLlonshlps beLween each Lask, and Lhe use of Lhe ouLpuLs of some Lasks as lnpuLs Lo oLhers. Some Lasks
wlll overlap - ofLen you won'L be able Lo compleLe one Lask unLll you have compleLed anoLher.

C.2 1PL 8C!LC1 LAn

ln drawlng up your pro[ecL plan, you should use a sLandard pro[ecL managemenL Lool (such as MlcrosofL
ro[ecL, or CanLLro[ecL. 1hese Lools make lL easler Lo draw Lhe schedule, make changes, and Lrack your
progress. Powever, Lhey won'L do Lhe plannlng for you, l.e. Lhey can'L ldenLlfy Lasks, subLasks, efforL, duraLlon,
eLc. 1haL's someLhlng you have Lo do yourself. ?ou should be able Lo make a flrsL aLLempL aL Lhls by Lhe Llme
you've flnlshed readlng Lhe handbook.

MosL pro[ecLs can be besL presenLed uslng Lhe followlng Lwo Lechnlques:

1. a Lable of Lasks, wlLh daLes, duraLlons, and work for each (see llg. 1)
2. a CanLL charL (see llg. 2)

?ou should use summary Lasks" Lo summarlse or represenL ma[or acLlvlLles. 1he work, duraLlon, sLarL-daLe
and end-daLe of a summary Lask are calculaLed auLomaLlcally, so don't enLer Lhem manually!

lL ls clearesL Lo produce one Lop-level plan Lo show acLlvlLles and ma[or Lasks, wlLh only Lhe Lop-level Lasks
shown, and Lhen develop addlLlonal more deLalled plans for each acLlvlLy. CLherwlse your CanLL charL probably
2012/2013
34
wonL flL on a slngle page. 1hese more deLalled plans wlll usually be drawn up once you geL nearer Lo Lhe
acLlvlLy or Lask ln quesLlon, and have a clearer ldea of exacLly you wlll go abouL lL. ?ou may even need Lo break
lL lnLo sub-Lasks once you have clearer undersLandlng of Lhe work lnvolved.

Make sure Lo puL a daLe and revlslon number on every plan you produce.


llgure 1: An Lxample of a CAn11 CharL uslng MlcrosofL ro[ecL.
Task Table
Activities & Tasks Start Date
Duration
[days]
Work
[days] End Date
1 PREPARATION Mon,30-Sep-02 64 45 days Mon,02-Dec-02
1.1 Initial reading Mon,30-Sep-02 19 15 days Fri,18-Oct-02
1.2 Review the literature Mon,21-Oct-02 12 10 days Fri,01-Nov-02
1.3 Exploratory programming Mon,04-Nov-02 19 15 days Fri,22-Nov-02
1.4 Prepare requirements specification Mon,25-Nov-02 5 5 days Fri,29-Nov-02
1.5 Update the project plan Mon,02-Dec-02 1 1 days Mon,02-Dec-02
2 DEVELOPMENT Tue,03-Dec-02 60 40 days Fri,31-Jan-03
2.1 Develop system design Tue,03-Dec-02 7 5 days Mon,09-Dec-02
2.2 Develop basic program Tue,10-Dec-02 7 5 days Mon,16-Dec-02
2.3 Add support for feature <xxx>Tue,17-Dec-02 7 5 days Mon,23-Dec-02
2.4 Add support for feature <yyy>Tue,24-Dec-02 7 5 days Mon,30-Dec-02
Christmas Break Tue,31-Dec-02 5 Fri,27-Dec-02
2.5 Extend feature <yyy> Mon,30-Dec-02 5 5 days Fri,03-Jan-03
2.6 Add <zz1> and <zz2> Mon,06-Jan-03 12 10 days Fri,17-Jan-03
2.7 Enhance the GUI Mon,20-Jan-03 5 5 days Fri,24-Jan-03
2.8 Fix major faults Mon,27-Jan-03 5 5 days Fri,31-Jan-03
3 WRITEUP Mon,03-Feb-03 26 20 days Fri,28-Feb-03
3.1 Prepare project report Mon,03-Feb-03 24 18 days Wed,26-Feb-03
3.2 Prepare demonstration Thu,27-Feb-03 1 1 days Thu,27-Feb-03
3.3 Prepare presentation Fri,28-Feb-03 1 1 days Fri,28-Feb-03
Project Summary
Start Date Mon,30-Sep-02
End Date Fri,28-Feb-03
Duration 151 days
Workdays 105 days
Total Work Hours 240 hours
Work/day 2.3 hours
Work/week 11.4 hours

llgure 2: An Lxample of a 1ask 1able

C.3 uuA1lnC 1PL 8C!LC1 LAn

2012/2013
33
?ou wlll probably need Lo updaLe Lhe plan once you have fully undersLood Lhe requlremenLs and done some
exploraLory programmlng. ?ou may need Lo make furLher updaLes aL each sLage of Lhe pro[ecL ln order Lo plan
ln more deLall. Modlfy Lhe plan as necessary, maklng sure Lo updaLe Lhe verslon number and Lhe verslon
conLrol hlsLory secLlons each Llme. do nC1 deleLe Lhe old CanLL charLs from your plan, buL raLher add Lhe new
ones.

?our flnal plan should conLaln Lwo CanLL charLs ln Lhe body of Lhe documenL, Lhe flrsL one and Lhe lasL one. A
hlsLorlcal record of all Lhe lnLerlm CanLL charLs should be lncluded as an appendlx. Make sure Lo dlscuss
slgnlflcanL changes, and Lhe reasons for Lhem, ln your pro[ecL reporL.

?our reporL should lnclude boLh your orlglnal LlmeLable (besL shown as a CanLL CharL), and your flnal pro[ecL
plan (whlch ls ln effecL a record of when each Lask was acLually worked on and compleLed).


2012/2013
36

ALNDIk I: DLSIGN

l.1 8CuuC1 uLSlCn

ueslgn a producL" Lo encapsulaLe your soluLlon. ln many cases Lhls wlll be an appllcaLlon wlLh a Cul lnLerface
- buL Lhere are many oLher Lypes of programs. ueslgn sofLware Lo reallse Lhls producL. And flnally code Lhe
program, and LesL lL agalnsL Lhe deslgn and producL speclflcaLlons.

1he naLural concluslon of requlremenLs analysls ls Lhe sysLem speclflcaLlon. 1hls speclflcaLlon shows whaL Lhe
sysLem wlll do Lo meeL Lhe user requlremenLs. lL says whaL Lhe sysLem wlll do, under whaL condlLlons, and
whaL lL wlll noL do. ln wrlLlng Lhe speclflcaLlon, you should begln wlLh Lhe requlremenLs documenL and Lhen
you should deslgn and speclfy Lhe followlng:

1. 1he sysLem funcLlonallLy
2. 1he operaLlonal parameLers (condlLlons under whlch your sysLem wlll operaLe)
3. lallure modes and acLlons on fallure
4. LlmlLaLlons & resLrlcLlons
3. ueLall Lhe sysLem lnLerface (user lnLerface, neLwork lnLerface, eLc.)

?ou should Lhen valldaLe Lhe speclflcaLlon agalnsL Lhe requlremenLs, and you should geL Lhe expllclL agreemenL
of your supervlsor LhaL all ls ln order. lf lL lsn'L, Lhen you musL go back Lo requlremenLs lf necessary and revlse
Lhem and Lhe speclflcaLlons (wlLh your supervlsor's agreemenL on everyLhlng). AfLer Lhls, you valldaLe agaln,
and you keep dolng Lhls unLll everyone agrees.

resent|ng your des|gn resu|ts: see Lhe roducL ueslgn SpeclflcaLlon" LemplaLe.

l.2 SCl1WA8L uLSlCn

WlLh your model ln hand, you are now ln a poslLlon Lo deslgn your sysLem uslng whaLever deslgn meLhodology
ls approprlaLe for Lhe area (and Lhese wlll lnevlLably be speclflc Lo Lhe parLlcular area). 1haL sald, Lhere are a
few general guldellnes LhaL apply Lo all areas:

! ldenLlfy several deslgn opLlons and compare Lhem
! Analyse your deslgn Lo ensure lL ls Lechnlcally feaslble (l.e. valldaLe lLs reallzablllLy). 8emember, you
can'L always bulld everyLhlng you deslgn, elLher for LheoreLlcal reasons (e.g. n-compleLeness) or for
pragmaLlc reasons (Lhe requlred hardware ls noL lnsLalled).
! Analyse your deslgn Lo ensure lL meeLs Lhe speclflcaLlons (l.e. verlfy LhaL lL does whaL ls requlred)
! Choose Lhe besL deslgn. oo wlll have Lo deflne whaL 'besL' means for your parLlcular pro[ecL. lL mlghL
mean Lhe cheapesL Lo manufacLure, lL mlghL mean Lhe fasLesL, and lL mlghL mean Lhe smallesL - lL all
depends. lL's up Lo you Lo ldenLlfy Lhe LesL for opLlmallLy.
! noLe LhaL Lhls ls Lhe hallmark of good compuLer sclence (and sofLware englneerlng): Lhe pracLlce of
quallLaLlve and quanLlLaLlve assessmenL of dlfferenL opLlons.

Make use of exlsLlng Cpen Source sofLware where approprlaLe.

resent|ng your des|gn resu|ts: see Lhe SofLware ueslgn SpeclflcaLlon" LemplaLes.

l.2.1 PlCP-LLvLL uLSlCn

lor a hlgh-level deslgn you should ldenLlfy Lhe prlnclple sofLware componenLs and whaL Lhelr relaLlonshlp Lo
each oLher ls. ?ou should verlfy your deslgn by showlng how, ln prlnclple, Lhese componenLs can acL LogeLher
Lo meeL Lhe sofLware requlremenLs speclflcaLlon.
2012/2013
37

lor example, ln an ob[ecL-orlenLed lmplemenLaLlon, you would use uML Class ulagrams Lo ldenLlfy Lhe
componenLs and Lhelr relaLlonshlps, and Sequence ulagrams Lo show how Lhey work LogeLher Lo meeL Lhe
requlremenLs.

l.2.2 uL1AlLLu uLSlCn

lor a deLalled deslgn, you should deslgn Lhe lnLernal deLalls of each componenL ln Lhe code.

lor example, ln an ob[ecL orlenLed lmplemenLaLlon, you mlghL use !avadoc Lo speclfy Lhe aLLrlbuLes and
meLhods for Lhe Classes Lo meeL Lhe hlgh-level deslgn. ?ou may, ln some cases, also speclfy Lhe algorlLhm Lo be
used.
2012/2013
38

ALNDIk I: 1LS1ING

!.1 unl1 1LS1lnC

ln unlL LesLlng you execuLe a unlL" of code (for Cb[ecL-CrlenLed code Lhls ls normally a Class), uslng lLs
programmlng lnLerface, and make sure LhaL Lhe ouLpuLs are as expecLed" for Lhe parLlcular lnpuLs. lf you don'L
do Lhls, Lhen your code may well work under Lhe llmlLed seL of LesLs achleved by LesLlng Lhe enLlre sysLem, buL
may sLlll have many faulLs whlch may resulL ln fallure of Lhe code. 1hls can resulL ln Lhe sofLware crashlng, or
even worse glvlng corrupL resulLs. lor boLh developmenL and research pro[ecLs lL ls Lherefore lmporLanL Lo do
aL leasL a mlnlmal level of unlL LesL.

noLe LhaL Lo enable unlL LesLlng your need Lo conslder des|gn for testab|||ty". 1he key lssue for mosL
programs ls Lo separaLe your lnLerface and funcLlonal code. 1hls boLh makes your deslgn more modular, so you
could move Lo a dlfferenL lnLerface relaLlvely easlly, and allows you Lo LesL Lhe funcLlonallLy separaLely from
Lhe lnLerface. lor example, lf you embed calls Lo Lhe Cul ln your funcLlonal code Lo dlsplay Lhe resulLs, Lhen
you cannoL LesL Lhe funcLlonallLy. Powever, lf Lhe Cul code calls Lhe funcLlonal code Lo geL and dlsplay Lhe
resulLs, Lhen you can easlly LesL Lhe funcLlonallLy separaLely.

!.2 S?S1LM 1LS1lnC

ln sysLem LesLlng you execuLe Lhe enLlre sysLem, uslng lLs sysLem, lnLerface (l.e. Lhe Cul, a neLwork lnLerface,
Lhe drlver lnLerfaces Lo hardware) and make sure LhaL Lhe ouLpuLs are as expecLed" for Lhe parLlcular lnpuLs.

lf you don'L do Lhls, Lhen your unlLs" may be operaLlng correcLly lndlvldually, buL may noL be worklng LogeLher
correcLly as a sysLem. Agaln, Lhls can resulL ln Lhe sofLware crashlng, or even worse glvlng corrupL resulLs. lor
boLh developmenL and research pro[ecLs lL ls Lherefore lmporLanL Lo do aL leasL a mlnlmal level of sysLem LesL.

Some sysLems, especlally for developmenL pro[ecLs, wlll have well deflned responses Lo lnpuL sLlmull. lor
example, cllcklng on a parLlcular buLLon ln Lhe Cul may be requlred Lo pop up a parLlcular wlndow. CLher
sysLem, especlally for research pro[ecLs, may have less well deflned responses. lor example, drawlng a lmage
wlLh all Lhe edges hlghllghLed. lor Lhls, lL ls suggesLed LhaL you esLabllsh some ground LruLhs", or sLandard LesL
daLa, derlved from analysls Lo ensure LhaL Lhe sofLware ls acLually lmplemenLlng your soluLlon before you sLarL
evaluaLlng how well your soluLlon works.

!.3 8CuuC1 vALluA1lCn

WlLh forward englneerlng" worklng from problem Lo soluLlon Lo lmplemenLaLlon you can expecL Lhe
lmplemenLaLlon Lo solve Lhe problem Lo a cerLaln exLenL. 8uL Lhls ls noL always Lhe case. roblems usually
resulL from poor undersLandlng of Lhe orlglnal requlremenLs, or lnadequaLe problem analysls. valldaLlon makes
sure LhaL Lhe sysLem acLually solves Lhe problem LhaL lL was lnLended Lo. Lven lf Lhe sysLem has passed sysLem
LesLlng, LhaL has really made sure LhaL Lhe sysLem responds correcLly Lo each lndlvldual lnpuL, raLher Lhan lL
acLually solvlng Lhe problem.

lor a developmenL pro[ecL, valldaLlon ls Lhe acL of deLermlnlng wheLher your sofLware sysLem meeLs Lhe user's
needs. lor example: can you acLually book an alrllne LlckeL wlLh your program.

lor a research pro[ecL, valldaLlon ls ensurlng LhaL Lhe soluLlon baslcally solves Lhe problem. lor example: ls
every edge ln an lmage hlghllghLed?

valldaLlon wlll lnvarlably lnvolve manual LesLlng, wlLh a user lnpuLLlng a serles daLa or commands, and Lhen
examlnlng Lhe ouLpuL Lo make sure lL solves Lhe problem. ?ou wlll also be assessed on a valldaLlon LesL of your
sofLware by your supervlsor and second reader. So make sure LhaL you undersLand Lhe requlremenLs well, LhaL
Lhe sofLware operaLes correcLly, and lL has adequaLe documenLaLlon (or ease-of-use) Lo allow lLs funcLlonallLy
Lo be easlly LesLed.
2012/2013
39

ALNDIk k: SCI1WAkL LNGINLLkING DCCUMLN1S

?ou may documenL Lhe resulLs of your sofLware englneerlng work ln Lhe followlng documenLs (see Lhe CS333
uocumenLaLlon Culdellnes):

1. ro[ecL lan
2. user 8equlremenLs SpeclflcaLlon
3. roducL ueslgn SpeclflcaLlon
4. SofLware ueslgn SpeclflcaLlon (Plgh Level)
3. SofLware ueslgn SpeclflcaLlon (Low Level)
6. SofLware 1esLlng uocumenL
7. SofLware roducL valldaLlon uocumenL

2012/2013
40

ALNDIk L: IINAL LAk kCILC1 kCCSAL 1LMLA1L

Note: th|s |s prov|ded for |nformat|on on|y. Use the |atest vers|on of the temp|ate from the webs|te.



NUIM I|na| ear ro[ect kCILC1 kCCSAL
lease send Lhls form elecLronlcally Lo Lhe llnal ?ear ro[ecL Co-ordlnaLor by emall prlor Lo worklng
on your pro[ecL. ?ou MuS1 send Lhls documenL uslng your ueparLmenL of CompuLer Sclence or
unlverslLy emall address - emalls from ouLslde Lhe nulM domaln wlll be lgnored.
Student Name:
Student Number:
Superv|sor Name:

1I1LL oot tltle sboolJ lJeolly pose o poestloo tbot yoot ptoject wlll lovestlqote, ot
sboolJ soccloctly Jesctlbe tbe potpose of tbe ptoject.
CU1LINL of 1CIC
and kLLLVANCL to
SCI1WAkL
LNGINLLkING
and]or CCMU1Lk
SCILNCL
oo sboolJ soccloctly Jesctlbe yoot toplc ooJ tbe televooce to 5oftwote
oqloeetloq ooJ/ot compotet 5cleoce. lt ls esseotlol tbot yoo Jesctlbe yoot
ptoposeJ ptoject lo tbe cootext of yoot wotk plocemeot (200-J00 wotJs
moxlmom). oo sboolJ cleotly ootlloe tbe 5peclflcotloo of kepoltemeots fot tbe
ptoject.
AkCACn oo sboolJ Jesctlbe yoot opptoocb to yoot ptoject locloJloq oo ovetvlew of
mojot octlvltles. oo sboolJ locloJe o ptovlsloool wotk scbeJole lJeotlfyloq
mojot lotetlm Jellvetobles (J00 wotJs moxlmom). oo sboolJ locloJe o Coott
(ot slmllot) cbott Jetollloq o tlmetoble of wotk, locloJloq cootloqeocy ploooloq.
kLILkLNCLS and
kLSCUkCLS
oo sboolJ ptovlJe !" $%!&" "'( opptoptlote key tefeteoces bete (e.q.
coofeteoce/jootool pobllcotloos, ot books, ot cootse motetlol). uo oot locloJe o
blblloqtopby, yoo most speclflcolly tefeteoce tbese wotks lo tbe ptevloos two
sectloos. oo ote JlscootoqeJ ftom tefeteocloq ooo-peet tevleweJ sootces socb
os cotpotote ot ptoject websltes, ooless speclflcolly opptoptlote. oo olso sboolJ
Jetoll tesootces tepolteJ, ooJ skllls Jevelopmeot tepolteJ fot tbe ptoject.
SLCCND kLADLk
kLSCNSL
leove 8look.

2012/2013
41

ALNDIk M: IINAL LAk kCILC1 MAkkING ICkM

Student Name:


Title of Project:



Supervisor:



1st Reader



2nd Reader:






Section Category
Valid
Range
Given
Values
Marks
Awarded Grade
Report,
Attachments
1
,
Demonstration
90%
Knowledge and Understanding 10-25 18

Application 10-25 18
Analysis 10-25 18
Synthesis 10-25 18
Evaluation 10-25 18
Project
Presentation 10%
Interim Presentation 5 5
Final Presentation 5 5

TOTAL 100 0

Lxam|ner's Comments



See next page for mark|ng gu|de||nes.
(1) ALLachmenLs and SupporLlng MaLerlal as deLalled ln secLlon 7.1 ro[ecL uellverables"
2012/2013
42

1he pro[ecL ls assessed on Lhe 8eporL, ALLachmenLs, resenLaLlon, uemonsLraLlon, and any
oLher supporLlng maLerlal, based on Lhe followlng crlLerla.

Learn|ng Cutcome: knowledge & undersLandlng

o Descr|pt|on: mark reflecLs how well Lhe sLudenL shows LhaL Lhey have
developed an undersLandlng of Lhe Lechnlcal domaln knowledge on whlch Lhe
pro[ecL ls based. 1hls lncludes boLh maLerlal from Lhelr compuLer sclence
course and LhaL acqulred by Lhe sLudenL as parL of Lhe pro[ecL.
o erformance Ind|cators: Memorlze, 8eclLe, name, ldenLlfy, uescrlbe, Lxplaln,
Classlfy, ulscuss.

Learn|ng Cutcome: AppllcaLlon

o Descr|pt|on: mark reflecLs how well Lhe sLudenL has applled Lhelr knowledge
and undersLandlng ln execuLlng Lhe pro[ecL. 1hls lncludes Lechnlcal
appllcaLlon and pro[ecL organlsaLlon.
o erformance Ind|cators: Apply, Choose, Lmploy, CperaLe, racLlce.

Learn|ng Cutcome: Analysls

o Descr|pt|on: mark reflecLs how well Lhe sLudenL has applled analyLlcal skllls,
lncludlng sLaLlsLlcal analysls, Lo Lhe pro[ecL. 1hls may be as applled Lo
analyslng Lhe problem, Lo analyslng Lhelr soluLlon, and Lo analyslng Lhelr
pro[ecL execuLlon.
o erformance Ind|cators: Compare, ConLrasL, CalculaLe, 1esL, Analyze.

Learn|ng Cutcome: SynLhesls

o Descr|pt|on: mark reflecLs how well Lhe sLudenL has creaLed a soluLlon. 1hls
lncludes boLh Lhe absLracL soluLlon, and Lhe lmplemenLaLlon.
o erformance Ind|cators: ConsLrucL, Compose, CreaLe, ueslgn, ropose.

Learn|ng Cutcome: LvaluaLlon

o Descr|pt|on: mark reflecLs how well Lhe sLudenL has evaluaLed Lhelr work.
1hls lncludes sofLware LesLlng ('verlflcaLlon'), evaluaLlon of Lhe effecLlveness
of Lhelr soluLlon (e.g. Lhrough experlmenLs or sysLem 'valldaLlon'), and overall
evaluaLlon of Lhelr pro[ecL execuLlon.
o erformance Ind|cators: Argue, Assess, uefend, !udge, LvaluaLe.
2012/2013
43

ALNDIk N:UNIVLkSI1 CLIC CN LAGIAkISM

!"#$%&'( *+, -."$(&./

It is iecogniseu that neaily all assignments anu essays uiaw on the woik of otheis:
publisheu ieseaich anu ciitical commentaiy, lectuieis' notes anu hanu-outs, etc. The
effective use anu evaluation of existing mateiial aie among the skills that stuuents aie
expecteu to uevelop.

Nateiial is citeu in oiuei to contiibute to a laigei line of aigument, oi to be subjecteu to
sciutiny, oi to be combineu with othei mateiial in oiuei to aiiive at new peispectives;
value shoulu be auueu by some oiiginal thinking in the way in which it is useu. In all
cases, the souice of the mateiial (an iuea oi opinion, a quote, uata, etc) must be
acknowleugeu in a stanuaiu foim of iefeiencing.

Plagiaiism is the passing off of anothei peison's woik as youi own. It incluues copying
without acknowleugement fiom a publisheu souice (piint oi electionic), oi fiom
unpublisheu souices (e.g. anothei stuuent's essay oi notes). Plagiaiism occuis when
mateiial is copieu woiu foi woiu, but not only in that ciicumstance. Plagiaiism also
occuis when the substance oi aigument of a text is copieu even with some veibal
alteiations, such as in paiaphiase oi
tianslation, without acknowleugement.

Plagiaiism incluues using mateiial fiom books oi peiiouicals, fiom the inteinet, fiom
giinu tutois, oi fiom othei stuuents, without full acknowleugement of the souices.
Copying anu collusion aie ielateu to plagiaiism. Copying occuis when a stuuent copies
woik fiom a peei, with oi without the consent of the oiiginal authoi. Collusion is when
stuuents collaboiate to piesent woik as if it weie inuiviuual anu oiiginal. Both copying
anu collusion aie foims of plagiaiism.

In instances wheie two oi moie puipoiteuly oiiginal assignments show cleaily
ueiivative similaiities that aie unacknowleugeu, they shall both oi all be tieateu as
plagiaiism unless the contiaiy can be uemonstiateu.

Plagiaiism in any foim of assignment contiibuting to maiks oi a giaue foi a couise is a
seiious offence. It is a foim of cheating on seveial counts: the peipetiatoi is attempting
to obtain cieuit foi woik not uone, anu is also attempting to benefit fiom woik uone by
somebouy else. Plagiaiism unueicuts the whole thiust of scholaily enquiiy that is the
essence of euucation.

Plagiaiism will be seveiely penaliseu wheievei it is uetecteu. Stuuents submitting
assignments, essays, uisseitations oi any foim of woik foi assessment may be iequiieu
to sign a ueclaiation that the mateiial in question is wholly theii own woik except
wheie inuicateu by iefeiencing oi acknowleugement.

Stuuents aie ieminueu that any stuuent submitting wiitten woik foi continuous
assessment can be askeu by the maikei oi the uepaitment to take a supplementaiy test.
2012/2013
44
This may take the foim of an oial examination on the assignment in question anu
ielateu issues, oi the wiiting of a papei in contiolleu conuitions.
Stuuents shoulu pioviue auequate anu accuiate iefeiencing foi theii assignments.
uoiuon Baivey, !"#$#%& (#$) *+,"-./0 1 2,#3. 4+" *$,3.%$/5 (Backett Publishing
Company, 1998) is one of a numbei of booklets outlining goou piactice in iefeience anu
citation.

0#/'#12#&%,3 4+&/(5"(&'(/

Plagiaiism is a foim of acauemic uishonesty anu will be tieateu with the utmost
seiiousness wheievei uiscoveieu.

Examineis, tutois anu maikeis aie iequiieu to iepoit instances of suspecteu plagiaiism
to the ielevant Beau of Bepaitment conceineu.
PLAuIARISN
Any stuuent submitting wiitten woik foi continuous assessment can be askeu by the
maikei oi the uepaitment to take a fuithei test. This may take the foim of an oial
examination on the assignment in question anu ielateu issues, oi the wiiting of a test
papei in contiolleu conuitions.

Requiiing a stuuent to take such a test uoes not necessaiily imply that plagiaiism is
suspecteu.

In instances wheie an element foiming pait of an assignment (fiom a phiase oi
sentence up to a paiagiaph oi two) is founu to be plagiaiiseu, maiks will be ueuucteu
foi that assignment, theie will be no possibility of submitting a "make-up" assignment,
anu pievious anu subsequent woik submitteu in connection with the couise may be
subject to paiticulai sciutiny. While the amount of maiks ueuucteu will be
piopoitionate to the extent of the plagiaiiseu mateiial, the ueuuction may be seveie.

In instances wheie a significant pait oi all of an assignment is founu to be plagiaiiseu,
zeio maiks may be awaiueu foi that assignment, theie may be no possibility of
submitting a "makeup" assignment, anu pievious anu subsequent woik submitteu in
connection with the couise may be subject to paiticulai sciutiny. In seiious cases the
plagiaiism will be iepoiteu to the Supeivisoi of Examinations anu the Committee of
Biscipline.

Plagiaiism in postgiauuate oi ieseaich mateiial is a paiticulaily seiious offence.
Penalties imposeu may involve suspension oi expulsion fiom the couise anu fiom the
0niveisity, in auuition to ueuuction of maiks. Eaily offenueis may be iequiieu to attenu
euucative classes.

Das könnte Ihnen auch gefallen