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

Slides:



Advertisements
Similar presentations
Object-Oriented Application Frameworks Much of the cost and effort stems from the continuous re- discovery and re-invention of core concepts and components.
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Ch 3: Unified Process CSCI 4320: Software Engineering.
McGraw-Hill/Irwin © 2006 The McGraw-Hill Companies, Inc. All rights reserved BUSINESS DRIVEN TECHNOLOGY Chapter Nineteen: Building Software to Support.
BUSINESS DRIVEN TECHNOLOGY
OBP Research Oy for simpler creation of embedded systems.
Software Development in B A B AR Neil Geddes Rutherford Appleton Laboratory.
Who is in control? Technical Committees ? Business Investment and IT Vendor Community ? Interdisciplinary Scholarship ? The public discussion space ?
MC365 Introduction to Class. Today We Will: Go over the goals of the class. Review the syllabus. Introduce ourselves. Break up into teams to exchange.
Software Architecture in Practice
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Lecture 1.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 16 Slide 1 User interface design.
Methodology for Architectural Level Reliability Risk Analysis Lalitha Krothapalli CSC 532.
Annual SERC Research Review - Student Presentation, October 5-6, Extending Model Based System Engineering to Utilize 3D Virtual Environments Peter.
Welcome to Computing. How is Computing assessed? AS Unit 1 Practical Theory of computation. Fundamentals of programming, data structures and algorithms.
CLEANROOM SOFTWARE ENGINEERING.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
Planning for the Solution
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
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.
Introduction To System Analysis and Design
Problem Statement: Users can get too busy at work or at home to check the current weather condition for sever weather. Many of the free weather software.
© 2012 xtUML.org Bill Chown – Mentor Graphics Model Driven Engineering.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
CSE 303 – Software Design and Architecture LECTURE 4.
Software Engineering Principles. SE Principles Principles are statements describing desirable properties of the product and process.
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.
CPSC 873 John D. McGregor Session 9 Testing Vocabulary.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
CSE 303 – Software Design and Architecture
Metadata By N.Gopinath AP/CSE Metadata and it’s role in the lifecycle. The collection, maintenance, and deployment of metadata Metadata and tool integration.
Status of the LAr OO Reconstruction Srini Rajagopalan ATLAS Larg Week December 7, 1999.
Chapter 2: Software Maintenance Omar Meqdadi SE 3860 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
CPSC 871 John D. McGregor Module 8 Session 1 Testing.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
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 the customer’s perspective the SRS is: How smart people are going to solve the problem that was stated in the System Spec. A “contract”, more or less.
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.
CPSC 372 John D. McGregor Module 8 Session 1 Testing.
B. Franek, poster presented at Computing in High Energy and Nuclear Physics, Praha – Czech Republic, 21 – 27 March 2009 This framework provides: -A method.
CSC 222: Object-Oriented Programming
CompSci 280 S Introduction to Software Development
Programming paradigms
Analysis and Comparison is ICS4U
John D. McGregor Session 9 Testing Vocabulary
Levels of testing.
Transforming Organizations
Managing the System PPT SOURCE : Shari L. Pfleeger Joann M. Atlee.
CSC 222: Object-Oriented Programming
Software Prototyping.
John D. McGregor Session 9 Testing Vocabulary
Frequently asked questions about software engineering
Designing Software for Ease of Extension and Contraction
Key Stage 4 Options 2018.
John D. McGregor Session 9 Testing Vocabulary
Computer Science Life Cycle Models.
Chapter 6 – Architectural Design
Baisc Of Software Testing
Team Skill 6 - Building The Right System Part 1: Applying Use Cases
Methodology for Architectural Level Reliability Risk Analysis
Key Stage 4 Options 2019.
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 !

METHODOLOGY Method what ? Early prototyping  Part of the training  It will be wrong the first time  We are not good at specifications + we change our minds  Better match to the way we work Do it Again

Development Cycle 1995  Overall architecture 1996  Core functionality, analysis interface  No real aligment/calibration 1997  Mock Data Challenge 1  Alignment/calibration 1998  Mock Data Challenge 2  Performance

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

OO/C++ - THE PROBLEMS Fanatics  Search for the correct answer  Confusing ignorance with incompetence Running before walking  Pandoras box of neat C++ tricks  Complicated inheritance Learning C++ rather than OO programming  They are not the same C++ code dependencies  Removed by good design

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!