Genova 10-Dec-2001 Andreas Pfeiffer, CERN/IT-API, AIDA Abstract Interfaces for Data Analysis Andreas Pfeiffer CERN IT/API

Slides:



Advertisements
Similar presentations
Physicist Interfaces Project an overview Physicist Interfaces Project an overview Jakub T. Moscicki CERN June 2003.
Advertisements

COMPSCI 105 S Principles of Computer Science 12 Abstract Data Type.
CS487 Software Engineering Omar Aldawud
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
Processes. Outline Definition of process Type of processes Improvement models Example Next steps… 1.
Alternate Software Development Methodologies
CS 5150 Software Engineering
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 2 Software Processes.
OO Development Process. UML and Process UML standardizes notation, not process –Increase likelihood of widespread acceptance There is significant variability.
Software Engineering.
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
CS 501: Software Engineering
- 1 - Component Based Development R&D SDM Theo Schouten.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
Analysis with Geant4 and AIDA Tony Johnson SLAC-Geant4 Workshop February 2002 Tony Johnson.
Susanna GuatelliGeant4 Workshop 2004 Use of Analysis Tools Geant4 Workshop 2004, Catania Susanna Guatelli, INFN Genova.
The web application development process Basharat Mahmood, COMSATS Institute of Information Technology, Islamabad, Pakistan. 1.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
CIS 375—Web App Dev II Microsoft’s.NET. 2 Introduction to.NET Steve Ballmer (January 2000): Steve Ballmer "Delivering an Internet-based platform of Next.
Java Analysis Studio Status Update 12 May 2000 Altas Software Week Tony Johnson
An Introduction to Software Architecture
JAS3 + AIDA LC Simulations Workshop SLAC 19 th May 2003.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Teaching material for a course in Software Project Management & Software Engineering – part II.
Nightly Releases and Testing Alexander Undrus Atlas SW week, May
IX International Workshop on Advanced Computing and Analysis Techniques in Physics Research KEK, Tsukuba, December 2003
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
Java Root IO Part of the FreeHEP Java Library Tony Johnson Mark Dönszelmann
G.Barrand, LAL-Orsay OpenScientist Status (v11) Relationship with AIDA
The LCG SPI project in LCG Phase II CHEP’06, Mumbai, India Feb. 14, 2006 Andreas Pfeiffer -- for the SPI team
CHEP Feb 7-11, 2000 Andreas Pfeiffer, CERN/IT, 1 AIDA - Abstract Interfaces for Data Analysis Andreas Pfeiffer CERN IT
MINER A Software The Goals Software being developed have to be portable maintainable over the expected lifetime of the experiment extensible accessible.
Using JAS3 for LCD Analysis Tony Johnson 20 th May 2003.
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
Design Analysis builds a logical model that delivers the functionality. Design fully specifies how this functionality will be delivered. Design looks from.
ESTEC 14-Jun-2001 Andreas Pfeiffer, CERN/IT-API, Architecture of Collaborating Frameworks Andreas Pfeiffer CERN IT/API
GranSasso, Jul-2002 Andreas Pfeiffer, CERN/IT-API, AIDA Abstract Interfaces for Data Analysis Andreas Pfeiffer CERN IT/API
GranSasso, Jul-2002 Andreas Pfeiffer, CERN/IT-API, AIDA Abstract Interfaces for Data Analysis Andreas Pfeiffer CERN IT/API
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Visualization of Geant4 Data: Exploiting Component Architecture through AIDA, HepRep, JAS and WIRED Geant4 Workshop, CERN - 2 October 2002 Joseph Perl.
CASE (Computer-Aided Software Engineering) Tools Software that is used to support software process activities. Provides software process support by:- –
Overview of RUP Lunch and Learn. Overview of RUP © 2008 Cardinal Solutions Group 2 Welcome  Introductions  What is your experience with RUP  What is.
23/2/2000Status of GAUDI 1 P. Mato / CERN Computing meeting, LHCb Week 23 February 2000.
FreeHEP, JAS and WIRED Mark Dönszelmann, CERN/IT Charles Loomis, UC, Santa Cruz ATLAS Software Week, 30 November 2000.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Analysis Software Strategy Jürgen Knobloch HTASC, DESY 9 October 2001 AIDA ANAPHE LIZARD.
Meghe Group of Institutions Department for Technology Enhanced Learning 1.
Features of JAS Plots Plots update in real time. Data for plots can be local or remote (use Java RMI to connect to JAS Data Server). Rich variety of styles.
Summary of the AIDA workshop AIDA Workshop, July What is AIDA  AIDA defines today interfaces for some common analysis data objects  IHistogram,
AIDA Abstract Interfaces for Data Analysis Massimiliano Turri, SLACCHEP, La Jolla, March “The goal of the AIDA project is to define abstract.
Aug 2000 Andreas Pfeiffer, CERN/IT, 1 Lizard A Flexible and Modular Data Analysis Tool using Abstract Types Andreas Pfeiffer CERN.
David Adams ATLAS ATLAS Distributed Analysis (ADA) David Adams BNL December 5, 2003 ATLAS software workshop CERN.
CERN 13-Jun-2002 Andreas Pfeiffer, CERN/IT-API, Development Infrastructure Andreas Pfeiffer CERN IT/API
Review of Definitions Software life cycle: –Set of activities and their relationships to each other to support the development of a software system Software.
Software Engineering Salihu Ibrahim Dasuki (PhD) CSC102 INTRODUCTION TO COMPUTER SCIENCE.
eTrice Release Review Planned Review Date:
CIM Modeling for E&U - (Short Version)
Project Status and Plan
Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Software life cycle models
Chapter 8 Software Evolution.
The Waterfall Model Also known as: classic life cycle, the waterfall model, the linear model Rarely projects are sequential (allows iteration indirectly)
Introduction Software maintenance:
Presentation transcript:

Genova 10-Dec-2001 Andreas Pfeiffer, CERN/IT-API, AIDA Abstract Interfaces for Data Analysis Andreas Pfeiffer CERN IT/API

Genova 10-Dec-2001 Andreas Pfeiffer, CERN/IT-API, 2 Outline zIntroduction and Motivation zArchitectural issues yAbstract Interfaces zIterative development yWhy software engineering ? zStatus and future plans zSummary

Genova 10-Dec-2001 Andreas Pfeiffer, CERN/IT-API, 3 The AIDA project zAIDA project (Abstract Interfaces for Data Analysis) was initiated at the HepVis’99 workshop in Orsay zPresently active mainly developers from existing packages yTony Johnson (JAS) yAndreas Pfeiffer (Lizard/Anaphe) yGuy Barrand (OpenScientist ) yMark Dönszelmann (Wired) yDevelopers from LHCb/Gaudi

Genova 10-Dec-2001 Andreas Pfeiffer, CERN/IT-API, 4 Introduction zDesign Interfaces for Data Analysis (in HEP) y“The goals of the AIDA project are to define abstract interfaces for common physics analysis tools, such as histograms. The adoption of these interfaces should make it easier for developers and users to select to use different tools without having to learn new interfaces or change their code. In addition it should be possible to exchange data (objects) between AIDA compliant applications.” ( zOpen for contributions of any kind yquestions, suggestions, code, implementations …

Genova 10-Dec-2001 Andreas Pfeiffer, CERN/IT-API, 5 Motivation zUnify/standardize “look and feel” for various tools ythere is no longer “only one tool” zProvide flexibility to interchange implementations of these interfaces ycan use specific features of specific tools w/o change ! zAllows and try to re-use existing packages yeven across “language boundaries” xe.g., C++ analysis using Java Histograms zMinimize coupling between components zAllow for faster turn-around time

Genova 10-Dec-2001 Andreas Pfeiffer, CERN/IT-API, Architectural Issues

Genova 10-Dec-2001 Andreas Pfeiffer, CERN/IT-API, 7 Use of Components with Abstract Interfaces  User Code uses only Interface classes  IHistogram1D * hist = histoFactory-> create1D(‘track quality’, 100, 0., 10.) zActual implementations are selected at run-time yloading of shared libraries zNo change at all to user code but keep freedom to choose implementation yflexible ycustomizable Histo- Impl. 2 Histo-IFFitter-IF User Code Fitter- Impl. Y Histo- Impl. 1 Fitter- Impl. X

Genova 10-Dec-2001 Andreas Pfeiffer, CERN/IT-API, 8 Architectural issue: Abstract Interfaces zAbstract Interfaces yOnly pure virtual methods, inheritance only from other Abstract Interfaces yComponents use other components only through their Abstract Interface yDefines a kind of a “protocol” for a component yAllow each component to develop independently xreduces maintenance effort significantly yMaximize flexibility and re-use of packages xRe-use of existing packages to implement components reduces start-up time significantly

Genova 10-Dec-2001 Andreas Pfeiffer, CERN/IT-API, 9 Abstract Interfaces zAbstract Interfaces yonly pure virtual methods, inheritance only from other A.I. ycomponents use other components only through their A.I. ydefines a kind of a “protocol” for a component yMaximize flexibility and re-use of packages yallow each component to develop independently yre-use of existing packages to implement components reduces start-up time significantly zDe-couple implementation of a component from its use

Genova 10-Dec-2001 Andreas Pfeiffer, CERN/IT-API, 10 Architectural issue: Components (I) zIdentify components by functionality zDefine “protocol” using Abstract Interfaces zEmphasize separation of different aspects for each component yExample: Histogram xstatistical entity (density distribution of a physics quantity) xview of a “collection of data points” (which can be a density distribution but also a detector efficiency curve) xcommand to manipulate/store/plot/fit/... y“User’s view” is different from “implementor’s (developer’s) view” xseparate Abstract Interfaces for both aspects

Genova 10-Dec-2001 Andreas Pfeiffer, CERN/IT-API, 11 Initial Categories and dependencies

Genova 10-Dec-2001 Andreas Pfeiffer, CERN/IT-API, 12 AIDA Workshop Autumn 2000 (Orsay) zStart working from “users view” zConcentrated discussions on yHistogram x“developer” vs. “user” view yManagement xdirectory-like Tree yStore (developer only, hidden from user) yTuple zprepared next round of iterations

Genova 10-Dec-2001 Andreas Pfeiffer, CERN/IT-API, 13 AIDA Workshop Spring 2001 (Boston) zContinued discussion on Interfaces yconcentrated on open issues from Paris workshop and Infrastructure zNew developments yJAida: C++ access to Java libs yJava reference implementation zInfrastructure yCVS repository, mailing lists, web,... zVery constructive zResulted in V-2.0 (“for discussion & feedback”) z==> Iterate

Genova 10-Dec-2001 Andreas Pfeiffer, CERN/IT-API, Iterative development “Why s/w engineering”

Genova 10-Dec-2001 Andreas Pfeiffer, CERN/IT-API, 15 What is so good about iterative development anyway? zImage the project is not to build software but a bridge… zInitial Requirements: A to B AB

Genova 10-Dec-2001 Andreas Pfeiffer, CERN/IT-API, 16 Iteration I zMeets primary requirement: A to B zBasic architecture is in place zSingle user version zCan only be used in winter zNot very safe

Genova 10-Dec-2001 Andreas Pfeiffer, CERN/IT-API, 17 Iteration II zNew requirements: yWorks in the summer yMulti-user zSame basic architecture but different technology zMulti-user version! zCan be used all year round

Genova 10-Dec-2001 Andreas Pfeiffer, CERN/IT-API, 18 Iteration III zNew requirements ymore stable and safe zSame architecture and technology zMore solid construction zExtra security

Genova 10-Dec-2001 Andreas Pfeiffer, CERN/IT-API, 19 Iteration V zNew requirements yProtected from the rain yTwo-way zSame architecture with improved technology zProtected from environment (at least from above) zBi-directional

Genova 10-Dec-2001 Andreas Pfeiffer, CERN/IT-API, 20 Iteration VI zNew requirements: y “I want to move house to B” zSame basic architecture but advanced technology zCan carry other goods

Genova 10-Dec-2001 Andreas Pfeiffer, CERN/IT-API, 21 Iteration VII zNew requirements: y“I want to be able to use my car and let ships go by” zMulti-purpose

Genova 10-Dec-2001 Andreas Pfeiffer, CERN/IT-API, 22 Successful Development Analogy shows successful iterations: ythe basic product existed from the first iteration and met the primary requirement: A to B yearly emphasis on defining the architecture ybasic architecture remained the same over iterations yextra functionality was added at each iteration yeach iteration required more analysis, design, implementation and testing yuse case (requirements) driven does what the users want - not what the developers think is cool

Genova 10-Dec-2001 Andreas Pfeiffer, CERN/IT-API, 23 How to pick what goes in the next iteration? Choice of additions for an iteration is risk driven yEarly development focuses on components with the highest risk and uncertainty xavoids investing resources in a project that is not feasible

Genova 10-Dec-2001 Andreas Pfeiffer, CERN/IT-API, 24 Bad iterations I zDoes not go from A to B zWent for “full functionality” from the start ybig bang approach yface full complexity at the start zUsers/sponsors got cold feet? yRan out of resources, patience y or enthusiasm zRequirements have long since changed yno feedback from users since never used Sounds like the water-fall lifecycle?

Genova 10-Dec-2001 Andreas Pfeiffer, CERN/IT-API, 25 Bad iterations II zDoes not go from A to B any more zInsufficient testing? zUnstable environment? zLack of routine maintenance? zToo many concurrent users? Went straight to the code?

Genova 10-Dec-2001 Andreas Pfeiffer, CERN/IT-API, 26 Legacy systems zStill goes from A to B zBeen in use for a long time zDifficult to determine the original architecture zThe original development team are no longer around zNo documentation zLots of inconsistencies resulting from later additions made with insufficient analysis and design

Genova 10-Dec-2001 Andreas Pfeiffer, CERN/IT-API, 27 Advantages of Iterative and Incremental Development zComplexity is never overwhelming only tackle small bits at a time avoid analysis paralysis and design decline zEarly feedback from users provides input to the analysis of subsequent iterations zDevelopers skills can grow with the project don’t need to apply latest techniques/technology at the start get use to delivering finished software zRequirements can be modified each iteration is a mini-project (analysis, design….)

Genova 10-Dec-2001 Andreas Pfeiffer, CERN/IT-API, Status and future plans

Genova 10-Dec-2001 Andreas Pfeiffer, CERN/IT-API, 29 Status of Components

Genova 10-Dec-2001 Andreas Pfeiffer, CERN/IT-API, 30 Across the languages zJAida : C++ access to Java libs yusing C++ proxies implementing the C++ Abstract Interfaces to the Java interfaces C++UserCode AIDA-IF C++AIDA-IF Java Java Lib JAida

Genova 10-Dec-2001 Andreas Pfeiffer, CERN/IT-API, 31 “Use-cases” of AIDA zJava reference implementation in FreeHEP repository zJAS, OpenScientist and Lizard/Anaphe plan for implementations of version 2.2 by end 2001 zUsed by Gaudi/Athena (LHCb, Atlas, Harp) yGaudi people involved in design zAdopted and used in Geant-4 examples/testing zNo need to go for “least common denominator” yuse “reasonable” superset and concentrate on design

Genova 10-Dec-2001 Andreas Pfeiffer, CERN/IT-API, 32 AIDA XML standards zDefining DTDs yschema will come later (C++) zStarted with 1D and 2D Histograms yaim: easy transfer between applications zWill extend to other data types yother histos, fits, ntuples, … zComments/contributions welcome !

Genova 10-Dec-2001 Andreas Pfeiffer, CERN/IT-API, 33 Time schedule / release plan zV 2.0 mid May 2001 (“Boston release”) yRelease for discussion and feedback yeven if not (yet) “complete” yC++ and Java version of the Interfaces zV 2.1 Aug (“Genova release”) yupdates from discussions at Geant-4 workshop zV 2.2 Nov 2001 ywork on implementations has started yOpenScientist (v8) ready yAnaphe/Lizard and JAS plan for end 2001 zNext iteration on design after feedback yfrom users and implementers

Genova 10-Dec-2001 Andreas Pfeiffer, CERN/IT-API, 34 Summary zAIs unify/standardize “look and feel” for various tools ythere is no longer “only one tool” ycan use specific features of specific tools w/o change ! zDesign (and use) of Abstract Interfaces for Data Analysis yMaximize flexibility and re-use yAllow for faster turn-around time yAllows for and try to re-use existing packages zSoftware engineering provides useful tools/methodologies ytimes of “just writing code” are over yneed to use them to cope with rapidly changing environment

Genova 10-Dec-2001 Andreas Pfeiffer, CERN/IT-API, 35 More information  yUpdated automatically from repository yOn web page links to implementations xfrom whoever provides one (and informs us) zMailing lists (archived) xproject-aida-dev (open) xproject-aida (open) xproject-aida-announce (posting moderated, subscription open)