Software Development in B A B AR Neil Geddes Rutherford Appleton Laboratory.

Slides:



Advertisements
Similar presentations
CSE 331 SOFTWARE DESIGN & IMPLEMENTATION DEBUGGING Autumn 2011 Bug-Date: Sept 9, 1947.
Advertisements

McGraw-Hill/Irwin © 2006 The McGraw-Hill Companies, Inc. All rights reserved BUSINESS DRIVEN TECHNOLOGY Chapter Nineteen: Building Software to Support.
BUSINESS DRIVEN TECHNOLOGY
Transforming Organizations
Maria Grazia Pia, INFN Genova 1 Part V The lesson learned Summary and conclusions.
Software Architecture in Practice
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 16 Slide 1 User interface design.
SEG Software Maintenance1 Software Maintenance “The modification of a software product after delivery to correct faults, to improve performance or.
William H. Bowers – Planning a UI Design and Development Effort Torres 8.
Annual SERC Research Review - Student Presentation, October 5-6, Extending Model Based System Engineering to Utilize 3D Virtual Environments Peter.
What is Concurrent Programming? Maram Bani Younes.
Welcome to Computing. How is Computing assessed? AS Unit 1 Practical Theory of computation. Fundamentals of programming, data structures and algorithms.
Ekrem Kocaguneli 11/29/2010. Introduction CLISSPE and its background Application to be Modeled Steps of the Model Assessment of Performance Interpretation.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
25 February 2000Tim Adye1 Using an Object Oriented Database to Store BaBar's Terabytes Tim Adye Particle Physics Department Rutherford Appleton Laboratory.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
“Kuality” Assurance What does that look like? Scott Heise Indiana University KFS - Quality Assurance Manager Paul Sandoval University of Arizona KRA –
02/10/2015 Page 1 R. Theeuws Siemens Atea Filename: CBD_ervaring Werkgroep Component Based Developments Ervaring CBD.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
SOEN 6011 Software Engineering Processes Section SS Fall 2007 Dr Greg Butler
Software Development in B A B AR Neil Geddes Rutherford Appleton Laboratory.
Software Engineering Introduction and Overview Takes customer-defined goals and constraints and derives a representation of function, performance, interfaces,
CSE 219 Computer Science III Program Design Principles.
Ethics of Software Testing Thomas LaToza CS 210 Final Presentation 12 / 2 / 2002.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Software Engineering Principles. SE Principles Principles are statements describing desirable properties of the product and process.
1 An Aspect-Oriented Implementation Method Sérgio Soares CIn – UFPE Orientador: Paulo Borba.
CPSC 371 John D. McGregor Session 32 This is it..
Software Engineering Design & UML.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Task 1-Language Choice By Joshua Wild.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
CS 5150 Software Engineering Lecture 2 Software Processes 1.
Status of the LAr OO Reconstruction Srini Rajagopalan ATLAS Larg Week December 7, 1999.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
System Maintenance Modifications or corrections made to an information system after it has been released to its customers Changing an information system.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
04 - OOD Intro.CSC4071 Software Design ‘Requirements’ defines –The goals the system needs to satisfy. ‘Specification’ defines –The externally-observable.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Lecture 6 Title: Project Cost Management MIS 434.
Efficient Opportunistic Sensing using Mobile Collaborative Platform MOSDEN.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
B. Franek, poster presented at Computing in High Energy and Nuclear Physics, Praha – Czech Republic, 21 – 27 March 2009 This framework provides: -A method.
GCSE Computer Science Content Overview
CompSci 280 S Introduction to Software Development
Levels of testing.
Transforming Organizations
Building a Whole-Program Type Analysis in Eclipse
AP Computer Science Principals Course Importance and Overview
Software Prototyping.
Key Stage 4 Options 2018.
Key Stage 4 Options 2017.
Design and Programming
Global Challenge Walking for Water Lesson 2.
CSE 503 – Software Engineering
Global Challenge Walking for Water Lesson 2.
Global Challenge Walking for Water Lesson 2.
The Purpose of this Course
AP Computer Science Principals Course Importance and Overview
Global Challenge Walking for Water Lesson 2.
Global Challenge Walking for Water Lesson 2.
Global Challenge Walking for Water Lesson 2.
Global Challenge Walking for Water Lesson 2.
Key Stage 4 Options 2019.
Global Challenge Walking for Water Lesson 2.
Global Challenge Walking for Water Lesson 2.
Global Challenge Walking for Water Lesson 2.
Graduate Thesis GRAD 699 (90)
From Use Cases to Implementation
Presentation transcript:

Software Development in B A B AR Neil Geddes Rutherford Appleton Laboratory

BACKGROUND BaBar  CP violation experiment at SLAC Approved 1995 Start May 1999, run for 5-10 years Software  Learn from experience and the software industry  Computing Group proposed OO in C++  Accepted by the Collaboration

OO Program to interfaces  Polymorphism  Hide the representation  Separate data and algorithms Code Re-use  Separate data and algorithms Abstract data types  Objects

C++ Not the real issue  Software is only written slowly Why C++ ?  Only viable choice for large OO project. But  Learning new language Language choice does affect design decisions  No language Standard  Complicated language

BaBar Walk before we learned to run  Break problem into manageable pieces  Infrastructure to support developers Early prototype - Analysis/user interface in 1996 “Learning while doing” Extensive training of core developers Continued user training  BaBar Mock Data Challenges Could do better !

LESSONS Core Team  Must have a core team of principal developers  Regular and frequent contact Infrastructure  Support requirements will be underestimated  Burden increases as some power of platforms distribution of users and developers overall project size  Failures here will impact overall project design...

TRAINING Developers  Importance can not be over-emphasised Users  C++ and OO new to HEP  This is perhaps the real issue with language choice Better software vs effort and complication

THE REAL ISSUES Software development is free Isn’t it ? We are scattered all over the world  Complicates the project management and support  Central decisions have wide reaching consequences So what are the real issues ? ResourcesProject Management Resources and Project Management

CONCLUSIONS Did we make the correct decision in 1995 ? OF COURSE WE DID!