Geant4 Software Process 3rd LCB Computing Workshop, Marseilles 29 September, 1999 John Apostolakis (CERN) for Geant4 with thanks for material and suggestions.

Slides:



Advertisements
Similar presentations
Use of G EANT 4 in CMS AIHENP’99 Crete, April 1999 Véronique Lefébure CERN EP/CMC.
Advertisements

Maria Grazia Pia, INFN Genova Maria Grazia Pia INFN Genova, Italy Advanced software engineering in simulation development and.
Object-Oriented Software Development CS 3331 Fall 2009.
Virtual University - Human Computer Interaction 1 © Imran Hussain | UMT Imran Hussain University of Management and Technology (UMT) Lecture 16 HCI PROCESS.
Systems Analysis and Design in a Changing World, 6th Edition
Chapter 4 Quality Assurance in Context
Approaches to Systems Development
Ch 3 System Development Environment
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Maria Grazia Pia, INFN Genova 1 Part V The lesson learned Summary and conclusions.
Object-Oriented Analysis and Design
Systems Engineering in a System of Systems Context
1 Software & Grid Middleware for Tier 2 Centers Rob Gardner Indiana University DOE/NSF Review of U.S. ATLAS and CMS Computing Projects Brookhaven National.
Introduction to Geant4 Part I – General Introduction Makoto Asai (SLAC) Takashi Sasaki (KEK) March 22 nd, NIRS.
SE curriculum in CC2001 made by IEEE and ACM: Overview and Ideas for Our Work Katerina Zdravkova Institute of Informatics
Development Processes UML just is a modeling technique, yet for using it we need to know: »what do we model in an analysis model? »what do we model in.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –
1/31 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2005] January 22, 2009.
GEANT4 Introduction, History Geant4 User’s Workshop February 2002.
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
1 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2002] January 26, 2006.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Chapter 6 View Alignment Techniques and Method Customization (Part I) Object-Oriented Technology From Diagram to Code with Visual Paradigm for UML Curtis.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
PowerPoint Presentation for Dennis, Wixom, & Tegarden Systems Analysis and Design with UML, 3rd Edition Copyright © 2009 John Wiley & Sons, Inc. All rights.
S/W Project Management
What is UML? What is UP? [Arlow and Neustadt, 2005] January 23, 2014
2Object-Oriented Analysis and Design with the Unified Process Objectives  Explain the purpose and various phases of the traditional systems development.
Maria Grazia Pia, INFN Genova Software Process: Physics Maria Grazia Pia INFN Genova on behalf of the Geant4 Collaboration Budker Inst. of Physics IHEP.
REVIEW OF NA61 SOFTWRE UPGRADE PROPOSAL. Mandate The NA61 experiment is contemplating to rewrite its fortran software in modern technology and are requesting.
RUP Implementation and Testing
Understand Application Lifecycle Management
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Team Skill 6: Building the Right System From Use Cases to Implementation (25)
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
Lecture 7: Requirements Engineering
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
5 May 98 1 Jürgen Knobloch Computing Planning for ATLAS ATLAS Software Week 5 May 1998 Jürgen Knobloch Slides also on:
1 Planning for Reuse (based on some ideas currently being discussed in LHCb ) m Obstacles to reuse m Process for reuse m Project organisation for reuse.
19 November 98 1 Jürgen Knobloch ATLAS Computing ATLAS Computing - issues for 1999 Jürgen Knobloch Slides also on:
UML Use Case Diagramming Guidelines. What is UML? The Unified Modeling Language (UML) is a standard language for specifying, visualizing, constructing,
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Systems Analysis and Design in a Changing World, Fourth Edition
Atlas Simulation Activities What is Geant 4 Atlas Strategy.
SEAL Core Libraries and Services CLHEP Workshop 28 January 2003 P. Mato / CERN Shared Environment for Applications at LHC.
PROC-1 1. Software Development Process. PROC-2 A Process Software Development Process User’s Requirements Software System Unified Process: Component Based.
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
Introduction What is detector simulation? A detector simulation program must provide the possibility of describing accurately an experimental setup (both.
Geant4 Training 2006 Short Course Katsuya Amako (KEK) Gabriele Cosmo (CERN) Susanna Guatelli (INFN Genova) Aatos Heikkinen (Helsinki Institute of Physics)
Object-Oriented Systems. Goals Object-Oriented Methodologies – The Rumbaugh et al. OMT – The Booch methodology – Jacobson's methodologies.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Session 1 What Is the UML? Written by Thomas A. Pender Published by Wiley Publishing, Inc. October 5, 2011 Presented by Kang-Pyo Lee.
Lectures 2 & 3: Software Process Models Neelam Gupta.
Maria Grazia Pia, INFN Genova and CERN1 Geant4 highlights of relevance for medical physics applications Maria Grazia Pia INFN Genova and CERN.
Detector SimOOlation activities in ATLAS A.Dell’Acqua CERN-EP/ATC May 19th, 1999.
Follow-up to SFT Review (2009/2010) Priorities and Organization for 2011 and 2012.
Marco Cattaneo, 3-June Event Reconstruction for LHCb  What is the scope of the project?  What are the goals (short+medium term)?  How do we organise.
Software Engineering Salihu Ibrahim Dasuki (PhD) CSC102 INTRODUCTION TO COMPUTER SCIENCE.
Process 4 Hours.
Pragmatics 4 Hours.
Lecture 3 Prescriptive Process Models
What is UML? What is UP? [Arlow and Neustadt, 2005] October 5, 2017
CS 5150 Software Engineering
THE BOOCH METHODOLOGY.
Introduction to Software Engineering
Object oriented analysis and design
Use of Geant4 in experiment interactive frameworks AliRoot
Logical Architecture & UML Package Diagrams
Presentation transcript:

Geant4 Software Process 3rd LCB Computing Workshop, Marseilles 29 September, 1999 John Apostolakis (CERN) for Geant4 with thanks for material and suggestions to Katsuya Amako, Simone Giani

3rd LHC Workshop, Marseilles J.Apostolakis 29th September Overview of the talk Aspects of Geant4 software process Context: Worldwide Collaboration Software Methodology  Macro and Micro Processes  OOA&D Testing, Quality Assurance Software Tools

3rd LHC Workshop, Marseilles J.Apostolakis 29th September Geant4 Overview What is Geant4? Toolkit to simulate the passage of particles through the matter. It’s for Monte Carlo simulations of detectors in high energy physics. But also for space and cosmic rays applications, nuclear and radiation computations, heavy ions and medical applications. How has it been developed? Development based totally on the object-oriented software technology. Benefit from experience and the algorithmic techniques accumulated in GEANT. Worldwide collaboration of ~100 physicists, engineers, computer scientists from 15 countries.

3rd LHC Workshop, Marseilles J.Apostolakis 29th September Software Methodology Why software methodology? For development of a complex software like Geant4, introduction of an engineering discipline is essential OO methodology à la Booch employed because it provides a very pragmatic approach has easy-to-understand models with rich notations. provides a way to design a system into independent subsystem  allows efficient work sharing in design and implementation stages.

3rd LHC Workshop, Marseilles J.Apostolakis 29th September OO Methodology a la Booch: Benefits Common-sense approach: Common-sense approach: with an incremental and iterative process Clear models with rich notations fill the gap between design and implementation. Clear models with rich notations fill the gap between design and implementation. these models/notations help to exchange idea of design between people dispersed over the world Seperation into independent subsystems Seperation into independent subsystems allows efficient job sharing scheme can be defined both in design and implementation stages.

3rd LHC Workshop, Marseilles J.Apostolakis 29th September Software development in Booch method Structure of the software process: Macro process  This provides the framework for a global software process.  Borrowing from the waterfall and spiral model Micro process  This provides the framework for a fine structure of the software process, which consist of an iterative and incremental approach.  Similar to spiral model

3rd LHC Workshop, Marseilles J.Apostolakis 29th September The Macro Development Process OO Analysis Requirement Maintenance OO Design Evolution Establish core requirement Develop a model of the system’s desired behavior Create an architecture for the implementation Manage post-delivery evolution Evolve the implementation through successive refinement

3rd LHC Workshop, Marseilles J.Apostolakis 29th September Application of Booch method to Geant4 Basic principle Don’t blindly follow the method.  There is no “silver bullet” in constructing a complex software system. Judge ourselves which elements of the method are important and applicable to our project.  Adapt not adopt  Booch method is flexible enough to allow this.

3rd LHC Workshop, Marseilles J.Apostolakis 29th September Macro Process: OO Analysis Goal: To identify all major objects/classes in the problem domain. To produce a central model (class diagram) using objects/classes already found. To identify clusters of classes that are themselves cohesive, but are loosely coupled relative to other clusters. Major Products: Requirements document (ESA PSS-05: URD v.06) Class diagram - analysis phase  Scenario (Object/Interaction) diagram - analysis phase Scenario (Object/Interaction) diagram - analysis phase Class category diagram (preliminary)

3rd LHC Workshop, Marseilles J.Apostolakis 29th September Macro Process: OO Analysis - continued OO analysis and the worldwide collaboration: Close collaboration of people dispersed worldwide from the beginning stage of OOA. The fundamental design of Geant4 was totally defined in this phase. In Geant4 a core team was 6 / 7 people played an essential role.  As the number was small, the core people could work very closely together even from various countries.  Yet the number was large enough to bring together different expertise (and was 1/3 of Geant in 1994)  no clear rule of thumb

3rd LHC Workshop, Marseilles J.Apostolakis 29th September Macro Process: OO Design Goal: To refine the diagrams produced in the OOA phase using the computing domain classes and objects (for example, manager objects, interface objects, etc) so that objects and classes can be coded and executed. [Note]  OOA and OOD progressed concurrently in most category developments.  The 2/3 of the first year was spent for OOA and OOD. Major Products: Object diagram - design phase Scenario (Object/Interaction) diagram - design phase

3rd LHC Workshop, Marseilles J.Apostolakis 29th September Macro Process: OO Design - continued Set of classes that are closely coupled make a Class Category.Class Category. Class categories are cohesive and have looser couplings with each other.  We used class category as a unit to share tasks in OOD (and also in the implementation phase).  Loose couplings enabled each category to work relatively independent.  Essential for worldwide collaboration Class Category Diagram had a fundamental importance in the worldwide collaboration. Class Category Diagram  Much larger number of people could work together under each category. [Note]  Class category is NOT a functional separation of the software system - well defined interface to other category.  Class category is not a class wrapping “FORTRAN”.

3rd LHC Workshop, Marseilles J.Apostolakis 29th September Class Category Diagram Run Geant4 Readout Event Event Gen. Digi Hit Magnetic Fields Magnetic Fields Tracking Detector Physics Track Material Particle Definition Particle Definition Visualization ODBMS Utilities Geometry CAD Interface CAD Interface

3rd LHC Workshop, Marseilles J.Apostolakis 29th September The Micro Development Process Identify classes and objects Specify class and object interface and implementation Identify class and object relationships Identify class and object semantics

3rd LHC Workshop, Marseilles J.Apostolakis 29th September The Micro Development Process It deals with the OO analysis & design at the small, detailed level In contrast with large scale macro development process Great similarities in its process with macro process analysis and design detailed class diagrams Tools (micro & macro) CASE Rose/C++  extensive use for OOA/OOD stage

3rd LHC Workshop, Marseilles J.Apostolakis 29th September Macro Process: Evolution Goal: Construct the production version via incremental unofficial and official releases. Provide usage examples and user’s documents. Major Products: Refined OOA/OOD via prototype coding. Regular incremental releases of the product. Official release of the product/examples/documents. [Note]  Micro process played a major role in this phase.  Regular incremental releases of the prototype provided a clean milestone in the project.

3rd LHC Workshop, Marseilles J.Apostolakis 29th September Testing Procedures Different levels of testing: unit testing of classes by developers  required for each class - exercising it thoroughly  testing single physics model against data system integration testing  tests developed together by developers & test team  continuously refined as components are added  run regularly (see following slide) system testing  continuous comparisons of “full setups” with selected data  under discussion

3rd LHC Workshop, Marseilles J.Apostolakis 29th September Testing procedures - continued Category coordinators create tags submit them to system testing team Testing team does incremental testing, category by category  following dependency order of class-category diagram accepts or rejects tags  if they succeed or fail to pass (global) system tests So we avoid “big bang” integration of parts by regular incremental releases.  Loosely couplings of class categories prevent wide- spread influence caused of a design change in a class.

3rd LHC Workshop, Marseilles J.Apostolakis 29th September Macro Process: Maintenance Goal: No final goal in maintenance! Major Products: Major upgrade release Minor bug fixed release Improved examples and documents [Note] The maintenance phase is the new big challenge that Geant4 has faced this year.

3rd LHC Workshop, Marseilles J.Apostolakis 29th September Code Management Current status of Geant4 codes  Over a thousand classes, plus associated data. Code management and class category Class category is a unit of a code management and code release.  Careful design to avoid circular dependencies is crucial.  The dependency structure sets the release order.  The release order dictates the working group schedule. One coordinator per class category.  A coordinator has a total responsibility to manage codes. Coding rule  Few coding rules -- global guide lines Tools: CVS, remote CVS

3rd LHC Workshop, Marseilles J.Apostolakis 29th September Quality assurance Software reliability and metrics: Insure++ and Logiscope Coding guidelines automatic checking by scripts Code inspection within class categories Code and design inspection for categories interfaces Test to ensure that categories respect dependencies  on other categories - using our own tool

3rd LHC Workshop, Marseilles J.Apostolakis 29th September Collaboration management Distributed management Code release coordinator - SLAC Example w.g. coordinator - Hiroshima Document coordinator - KEK Progress review and planning General workshops: KEK/CERN 95, TRIUMF 96, SLAC 97, Niigata-JP 98 Specific local workshops: per sub-domain or group Formal reports & milestones C ERN /D RDC 94, C ERN /L CRB 95, C ERN /L CB 97 & 98 Geant4 collaboration milestones (1999)

3rd LHC Workshop, Marseilles J.Apostolakis 29th September GEANT4: Conclusions Worldwide software development allows us to exploit the expertise of world authorities on physics (& more) distributed resources (people) and results in a greatly improved product (“quantum-leap”) To successfully manage worldwide software development, the engineering discipline of a rigorous software process is an absolute necessity. Key parts user requirements OO Analysis and design according to recognised method a detail design before coding is vital OO design had fundamental importance in the Geant4 construction, offering clear tools e.g.  The concept of class category provided a excellent scheme of sharing the code development.

THE END

3rd LHC Workshop, Marseilles J.Apostolakis 29th September Atlas Geometry - 1

3rd LHC Workshop, Marseilles J.Apostolakis 29th September Atlas Geometry - 2

3rd LHC Workshop, Marseilles J.Apostolakis 29th September Hadronic Interaction: G3 vs. G4 Preliminary results reported in CERN/LCB report ‘97 CERN/LHCC/97-40, 10 June 1997 Distributions obtained by G3 and G4 are overlaid.  Can’t distinguish Neutron Capture Coherent elastic scattering Neutron induced fission

3rd LHC Workshop, Marseilles J.Apostolakis 29th September VRML: Walk Through Atlas Detector

3rd LHC Workshop, Marseilles J.Apostolakis 29th September DAVID: Detector Overlap Viewer Example: Overlap of a box and parameterized volumes.

3rd LHC Workshop, Marseilles J.Apostolakis 29th September Geant4 Collaboration Map Member country Member institute

3rd LHC Workshop, Marseilles J.Apostolakis 29th September The Macro Development Process OO Analysis Requirement Maintenance OO Design Evolution Establish core requirement Develop a model of the system’s desired behavior Create an architecture for the implementation Manage post-delivery evolution Evolve the implementation through successive refinement

3rd LHC Workshop, Marseilles J.Apostolakis 29th September The Micro Development Process Identify classes and objects Specify class and object interface and implementation Identify class and object relationships Identify class and object semantics

3rd LHC Workshop, Marseilles J.Apostolakis 29th September Collaboration management Management Technical Steering Board (TSB) Collaboration Board Working groups Responsible for design and implementation work in specific class categories: Event/Digi/Hits - CERN, HiroshimaGeometry - CERN Tracks+Tracking - KEK, KyotoPersistency - SLAC, KEK Hadronics - TRIUMF, Aachen E.Mag. - TRIUMF, LAPP FastMC - PNHE, SLAC GUI/Visualisation - Naruto, Manchester QA/Tools - CERN, KEK, SLAC, TRIUMF

3rd LHC Workshop, Marseilles J.Apostolakis 29th September Collaboration management - continued Other distributed management Code release coordinator - SLAC System Testing Team coordinator - Manchester Example codes working group coordinator - Hiroshima Document coordinator - KEK Progress review and planning General workshops: KEK/CERN 95, TRIUMF 96, SLAC 97, Niigata-JP 98 Specific local workshops: per sub-domain or group Formal reports CERN/DRDC 94, CERN/LCRB 95, CERN/LCB 97

3rd LHC Workshop, Marseilles J.Apostolakis 29th September Software tools Basic principle No special tools for the distributed development.  Employ commonly available ones. List of tools RationalRose/C++, C++/g++ RW-Tools.h++, STL, LHC++ OODBMS (CERN/ RD45) CVS, GNUmake gdb, prof, gprof Fukui Graphic System, OpenGL/OpenInventor,OX, VRML Purify, Logiscope

3rd LHC Workshop, Marseilles J.Apostolakis 29th September Object Diagram - Tracking

3rd LHC Workshop, Marseilles J.Apostolakis 29th September Scenario Diagram - Tracking

3rd LHC Workshop, Marseilles J.Apostolakis 29th September Class Category Diagram Run Geant4 Readout Event Event Gen. Digi Hit Magnetic Fields Magnetic Fields Tracking Detector Physics Track Material Particle Definition Particle Definition Visualization ODBMS Utilities Geometry CAD Interface CAD Interface

3rd LHC Workshop, Marseilles J.Apostolakis 29th September Infrastructure Network Without INTERNET, we couldn’t make it - it’s obvious! Bandwidth has been improved much better since we started the project - though we need more. Tools for everyday life telnet, ftp, WWW, Video conference  CODEC for most cases Telephone and teleconference Face-to-face Meeting Still most efficient and critical for concentrated works