Newer
Older
%\documentclass[handout]{beamer}
\documentclass[t,12pt,numbers,fleqn]{beamer}
%\documentclass[ignorenonframetext]{beamer}
\newif\ifquestions
%\questionstrue
\questionsfalse
\usepackage{pgfpages}
\usepackage{hyperref}
\hypersetup{colorlinks=true,
linkcolor=blue,
citecolor=blue,
filecolor=blue,
urlcolor=blue,
unicode=false}
\urlstyle{same}
\usepackage{booktabs}
\usepackage{hhline}
\usepackage{multirow}
\usepackage{multicol}
\usepackage{array}
\bibliographystyle{plain}
%\usetheme{Iimenau}
\useoutertheme{split} %so the footline can be seen, without needing pgfpages
%\pgfpagesuselayout{resize to}[letterpaper,border shrink=5mm,landscape] %if this is uncommented, the hyperref links do not work
\mode<presentation>{}
\input{../def-beamer}
\newcommand{\topic}{03 Requirements}
\input{../titlepage}
\begin{document}
\input{../footline}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Requirements}
\bi
\item Administrative details
\item Questions: project choices?, software tools?

W. Spencer Smith
committed
\item Problem statement and example
\item Software Engineering for Scientific Computing literature
\item Scientific Computing Software Qualities
\item Motivation: Challenges to Developing Quality Scientific Software
\item Requirements documentation for scientific computing
\item A requirements template
\item Advantages of new template and examples
\item The template from a software engineering perspective
\item Concluding remarks
\item References
\ei
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Administrative Details}
\bi
% \item Can everyone access GitLab?
% \href{https://gitlab.cas.mcmaster.ca/smiths/cas741}{https://gitlab.cas.mcmaster.ca/smiths/cas741}
\item Create a GitHub account if you don't already have one
\item Add \texttt{smiths} to your GitHub repos

W. Spencer Smith
committed
\item Linked-In
\item \structure{Assign the instructor an issue to review your problem
statement - Due by Sept 19}

W. Spencer Smith
committed
\item Issue creating exercises
\begin{itemize}
\item due Thurs, Sept 19 by 10:30 am
\item \textbf{No more issues related to document formatting please}
\end{itemize}
\ei
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Administrative Details: Presentations}
~\newline
\begin{tabular}{l l l}
SRS Present & Week 05 & Week of Sept 30\\
Syst.\ VnV Present & Week 07 & Week of Oct 21\\
MG + MIS Syntax Present & Week 9 & Week of Nov 4\\
MIS Semantics Present & Week 11 & Week of Nov 18\\
Unit VnV or Impl.\ Present & Week 12/13 & Week of Nov 28\\
\end {tabular}
\bi
%\item Very tentative dates
\item Specific schedule depends on final class registration and need
\item Informal presentations with the goal of improving everyone's written
deliverables
\item Domain experts and secondary reviewers (and others) will ask questions
\ei
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Administrative Details: Report Deadlines}
~\newline
\begin{tabular}{l l l}
Issue Creation Exercise & Week 03 & Sept 19\\
Problem Statement & Week 03 & Sept 19\\
SRS & Week 06 & Oct 7\\
System VnV Plan & Week 08 & Oct 28\\
MG + MIS & Week 10 & Nov 25\\
%Unit VnV Plan & Week 14 & Dec 3\\
Final Documentation & Week 14 & Dec 9\\
\end {tabular}
\bi
\item The written deliverables will be graded based on the repo contents as of
11:59 pm of the due date
\item If you need an extension, please ask
\item Two days after each major deliverable, your GitHub issues will be due
\item Domain expert code due 1 week after MIS deadline
\ei
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Questions?}
\begin{itemize}
\item Questions about project choices?
\item Questions about software tools?
\bi
\item git?
\item LaTex?
\ei
\item Partial tex files in the blank project template
\item
\href{https://gitlab.cas.mcmaster.ca/smiths/cas741/tree/master/BlankProjectTemplate/docs/ProblemStatement}{Problem
statement}
\item Copy the folder structure and README files from the blank project, but
wait for tex files for deliverables
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Problem Statement}
\bi
\item Written in LaTeX
\item Due electronically (on GitHub) by deadline
\item Generated files should NOT be under source control (except pdf)
\item Comments might be typed directly into your source
\item For all assignments with LaTeX source, include the LaTeX
commands for comments
\item \textbf{What} problem are you trying to solve?
\item \textbf{Not how} you are going to solve the problem
\item Why is this an important problem?
\item What is the context of the problem you are solving?
\bi
\item Who are the stakeholders? (``fake it'' so it is not 741 specific)
\item What is the environment for the software?
\ei
\item A page description should be sufficient
\ei
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Sample Project Statements}
\item
\href{https://github.com/icbicket/SpectrumImageAnalysisPy/blob/master/Doc/ProblemStatement/ProblemStatement.tex}
{SpectrumImageAnalysisPy}
\item
\href{https://github.com/palmerst/cas741_sp/blob/master/Doc/ProblemStatement/ProblemStatement.pdf}{Aqueous
Speciation Diagram Generator}
\item
\href{https://github.com/aoananp/cas741/blob/master/Doc/ProblemStatement/ProblemStatement.pdf}{System
of ODE solver library}
\item \href{https://gitlab.cas.mcmaster.ca/ThisTooShallParse/3XA3_CParser}{CParser}
\item \href{https://gitlab.cas.mcmaster.ca/theateam/FloppyFishGroup}{FloppyFish}
\item
\href{https://gitlab.cas.mcmaster.ca/screenholders/screenholders}{Screenholders}
\item Template in repo
\ei
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Definition of Software Qualities}
\begin{itemize}
\item Measures of the excellence or worth of a software product (code or document) or process
with respect to some aspect
\item \structure{What are some important aspects (qualities) for scientific software?}
\item User Satisfaction = The Important Qualities are High + Within Budget
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
\begin{frame}
\frametitle{Important Qualities for Scientific Computing Software}
\begin{itemize}
\item External qualities
\begin{itemize}
\item Correctness (Thou shalt not lie)
\item Reliability
\item Robustness
\item Performance
\begin{itemize}
%\item Tight bounds
\item Time efficiency
\item Space efficiency
\end{itemize}
\end{itemize}
\item Internal qualities
\begin{itemize}
\item Verifiability
%\item Productivity
\item Usability
\item Maintainability
%\begin{itemize}
%\item Repairability
%\item Evolvability
%\end{itemize}
\item Reusability
\item Portability
\end{itemize}
\end{itemize}
Definitions in \cite{GhezziEtAl2003}.
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
\begin{frame}
\frametitle{Correctness Versus Reliability Versus Robustness}
What is the difference between these 3 qualities?\\
~\\
Can you assess correctness without a requirements specification?
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Correctness}
\begin{itemize}
\item A software product is correct if it satisfies its requirements specification
\item Correctness is extremely difficult to achieve because
\begin{itemize}
\item The requirements specification may be imprecise, ambiguous, inconsistent,
based on incorrect knowledge, or nonexistent
\item Requirements often compete with each other
\item It is virtually impossible to produce ``bug-free'' software
\item It is very difficult to verify or measure correctness
\end{itemize}
\item If the requirements specification is formal, correctness can in theory and
possibly in practise be
\begin{itemize}
\item Mathematically defined
\item Proven by mathematical proof
\item Disproven by counterexample
\end{itemize}
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Reliability}
\begin{itemize}
\item A software product is reliable if it usually does what is intended to do
\item Correctness is an absolute quality, while reliability is a relative quality
\item A software product can be both reliable and incorrect
\item Reliability can be statistically measured
\item Software products are usually much less reliable than other engineering
products
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Robustness}
\begin{itemize}
\item A software product is robust if it behaves reasonably even in
unanticipated or exceptional situations
% example of saving a file and power is lost
\item A correct software product need not be robust
\begin{itemize}
\item Correctness is accomplished by satisfying requirements
\item Robustness is accomplished by satisfying unstated requirements
\end{itemize}
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Question on Correctness. Reliability and Robustness}
Reliable programs are a superset of correct programs AND robust programs are a
superset of reliable programs. Is this statement True or False?
\begin{enumerate}[A.]
\item True
\item False %answer - robust programs may or may not be correct or reliable
\end{enumerate}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Performance}
What are some ways you could measure software performance?\\
~\\
What are some ways you could specify performance requirements to make them
unambiguous and verifiable?
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Performance}
\begin{itemize}
\item The performance of a computer product is the efficiency with which the
product uses its resources (memory, time, communication)
\item Performance can be evaluated in three ways
\begin{itemize}
\item Empirical measurement
\item Analysis of an analytic model
\item Analysis of a simulation model
\end{itemize}
\item Poor performance often adversely affects the usability and scalability of
the product
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Usability}
\structure{What are some examples of excellent usability?}\\
\structure{When you go to a friend's house, you can likely operate their microwave without
reading the manual. What did human factors engineers do to make this possible?}
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Usability}
\begin{itemize}
\item The usability of a software product is the ease with which a typical human
user can use the product
\item Usability depends strongly on the capabilities and preferences of the user
\item The user interface of a software product is usually the principle factor
affecting the product's usability
\item Human computer interaction (HCI) is a major interdisciplinary subject
concerned with understanding and improving interaction between humans and
computers
\end{itemize}
% talk about IBM usability lab and other things that Muir mentioned
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Verifiability}
\begin{itemize}
\item The verifiability of a software product is the ease with which the
product's properties (such as correctness and performance) can be verified
\item Verifiability can be both an internal and an external quality
%\item What is the relationship between verifiability and correctness?
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Maintainability}
\begin{itemize}
\item The maintainability of a software product is the ease with which the
product can be modified after its initial release
\item Maintenance costs can exceed 60\% of the total cost of the software product
\item There are three main categories of software maintenance
\begin{enumerate}
\item Corrective: Modifications to fix residual and introduced errors
\item Adaptive: Modifications to handle changes in the environment in which the product is used
\item Perfective: Modifications to improve the qualities of the software
\end{enumerate}
\item Software maintenance can be divided into two separate qualities
\begin{enumerate}
\item Repairability: The ability to correct defects
\item Evolvability: The ability to improve the software and to keep it current
\end{enumerate}
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Maintainability}
What do software developers do to promote maintainability?
% documentation, traceability, separation of concerns, modularity, design for
% change, design for generality
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Reusability}
\structure{What are the advantages of reusing code?}\\
\structure{Why doesn't it happen more often?}
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Reusability}
\begin{itemize}
\item A software product or component is reusable if it can be used to create a
new product
\item Reuse comes in two forms
\begin{enumerate}
\item Standardized, interchangeable parts
\item Generic, instantiable components
\end{enumerate}
\item Reusability is a bigger challenge in software engineering than in other
areas of engineering
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Portability}
\begin{itemize}
\item A software product is portable if it can run in different environments
\item The environment for a software product includes the hardware platform, the
operating system, the supporting software and the user base
\item Since environments are constantly changing, portability is often crucial
to the success of a software product
\item Some software such as operating systems and compilers, is inherently
machine specific
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Understandability}
\begin{itemize}
\item The understandability of a software product is the ease with which the
requirements, design, implementation, documentation, etc. can be understood
\item Understandability is an internal quality that has an impact on other
qualities such as verifiability, maintainability, and reusability
\item There is often a tension between understandability and the performance of
a software product
\item Some useful software products completely lack understandability
(e.g. those for which the source code is lost)
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
\begin{frame}
\frametitle{Reproducibility}
\begin{itemize}
\item The cornerstone of the scientific method
\item Historically not well done for SCS
\item Progress on re-running old code with docker, VMs
\item Long way to go to replicability from original theory
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Sustainability}
\begin{itemize}
\item The latest ``buzz word''
\item Seems to mean maintainability + productivity
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Relationship between Qualities}
Draw a diagram showing the relationships between the various software qualities
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Measurement of Quality}
\begin{itemize}
\item A software quality is only important if it can be measured - without
measurement there is no basis for claiming improvement
\item A software quality must be precisely defined before it can be measured
\item Most software qualities do not have universally accepted
\item Can you directly measure maintainability?
\item How might you measure maintainability?
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
\begin{frame}
\frametitle{SRS versus CA}
\begin{itemize}
\item SRS (Software Requirements Specification)
\begin{itemize}
\item Requirements for a software product
\item Usually for specific physical problems
\end{itemize}
\item CA (Commonality Analysis)
\begin{itemize}
\item Requirements for a family of related software products
\item Sometime for specific physical problems
\item Commonly used for a library of general purpose tools
\item Distinguish commonalities, variabilities and parameters of variation
\end{itemize}
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Big Picture View of SRS/CA}
\begin{itemize}
\item Goal statement(s)
\item Inputs and outputs
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Goal Statements for SWHS}
\structure{What are the goal statement for the Solar Water Heating System?}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Goal Statements for SWHS}
\noindent Given the temperature of the heating coil, initial conditions for the
temperature of the water and the temperature of the phase change material, and
material properties, the goal statements are:
\begin{itemize}
\item[GS1:] Predict the water temperature over time.
\item[GS2:] Predict the PCM temperature over time.
\item[GS3:] Predict the change in the energy of the water over time.
\item[GS4:] Predict the change in the energy of the PCM over time.
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
\end{itemize}
(Consider using names instead of numbers for labels.)
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Goal Statements for GlassBR}
Given the dimensions of the glass plane, glass type, the characteristics of the explosion, and
the tolerable probability of breakage, the goal statements are:
\begin{itemize}
\item[GS1:] Analyze and predict whether the
glass slab under consideration will be able to withstand the explosion of a
certain degree which is calculated based on user input.
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Goal Statements for Game Physics}
\begin{itemize}
\item[G\_linear:] Given the physical properties, initial positions and
velocities, and forces applied on a set of rigid bodies, determine their new
positions and velocities over a period of time (IM-IM\_FT).
\item[G\_ang:] Given the physical properties, initial orientations and
angular velocities, and forces applied on a set of rigid bodies, determine
their new orientations and angular velocities over a period of
time. (IM-IM\_FR).
\item[G\_dtcCol:] Given the initial positions and velocities of a set
of rigid bodies, determine if any of them will collide with one another over a
period of time.
\item[G\_Col:] Given the physical properties, initial linear and angular
positions and velocities, determine the new positions and velocities over a
period of time of rigid bodies that have undergone a collision (IM-IM\_C).
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Goal Statements for Linear Solver}
\structure{What would be a good goal statement for a library of linear solvers?}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Goal Statements for Linear Solver}
\begin{itemize}
\item[G1] Given a system of $n$ linear equations represented by matrix $A$ and
column vector $b$, return $x$ such that $Ax = b$, if possible
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[allowframebreaks]
\frametitle{References}
\nocite{Lai2004, SmithEtAl2004, SmithAndLai2005, IEEE1998, IEEE2000,
IEEE2000_ThayerAndDorfman, RobertsonAndRobertson1999Vol, DesharnaisEtAl2004,
JanickiAndKhedri2001, GhezziEtAl2003, KreymanAndParnas2002,
ParnasAndClements1986, Segal2007_Dagsthul, Segal2008, Segal2007, Segal2005, Dubois2002}
\bibliography{../../ReferenceMaterial/References}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\end{document}