Presentation is loading. Please wait.

Presentation is loading. Please wait.

Employing the LiCAS analysis framework for MONALISA a.k.a. the "Java" project.

Similar presentations


Presentation on theme: "Employing the LiCAS analysis framework for MONALISA a.k.a. the "Java" project."— Presentation transcript:

1 Employing the LiCAS analysis framework for MONALISA a.k.a. the "Java" project

2 Analysis starting point Pre existing data analysis –MATLAB routines written by Matt –Java framework written by LiCAS (John Dale) –Routines from earlier work (ATLAS group) –A vast body of algorithms in the literature

3 Java starting point Mature Object Oriented (OO) language Important versions have been: –Ver 1.1 (basic core in place) –Ver 1.2 aka Java 2 (many new libraries) –Ver 1.5 aka Java 5 upgraded the language We user latest version 1.6 (Java 6) –code written with Netbeans software

4 Netbeans IDE User friendly environment for writing, compiling, testing running –Java –(and other languages)

5 What does OO really mean? Tasks delegated to "methods" in classes Linear programming in functions which become "coupled" Dataflow via (long) chains of short messages Dataflow is via detailed parameters Responsibility is delegated via a method (named after the task) to a class which agrees to take on the role Responsibility for tasks is distributed arbitrarily throughout the code You don't need to know how a job gets done You often have to understand what a function is doing internally when you call it, certainly what the parameters do

6 OO is often misunderstood dismissively you can design and write linear code to have all the benefits of OO code but: –you have to do all the "heavy lifting" (an OO compiler will do much of that for you) –the users of linear code can get round your design and inadvertently miss the benefits of your design (C++ "dodgy" OO language for this reason) –even if linear code is written "OO" style, users still have to read your functions in detail to know that

7 Delegating: Digging a trench Q: How does an army officer dig a trench? A: He yells out "Sergeant dig me a trench" not "Private! Swing your axe just here, etc" ad nausem

8 Important OO ideas Object: –Any entity to which agrees to handle messages Class: –An object which gets things done when it receives a message Interface: –this is a contract for classes to sign up to –compliance is "enforced" by the compiler

9 Important OO ideas 2 Inheritance: –An implicit compiler convention A more specialised version of an object inherits from its general "super" object –methods are inherited –contractual obligations are inherited –(most) internal data is inherited

10 Inheritance: Diagram convention Making a Canine entity bark public void printBark(Canine c) { System.out.println(c.getBark()); } N.B. This method doesn't "care" which specific kind of canine c is.

11 Early phase of the project Basic steps: –Learn basics of writing Java in NETBEANS –Get a simple example of Java code working –Starting looking over LiCAS framework with Paul –Take simple example analysis method from MATLAB which Matt has written –Put example method into the framework –Start working on reading and writing our data and results using the framework

12 Advanced parts of the project Once you're an expert –Use GIACoNDE to put our data into a context –Document a process for moving functions from MATLAB into the framework –Run through a "cradle to grave" analysis on some raw experimental data –Document a users guide for the analysis run


Download ppt "Employing the LiCAS analysis framework for MONALISA a.k.a. the "Java" project."

Similar presentations


Ads by Google