Download presentation
Presentation is loading. Please wait.
Published byEric Hall Modified over 9 years ago
1
M.Ellis 17th August 20041 MICE Software School Aims Course content –Management –Specifications –Design –Production –Testing –Use Information –Operation Follow-up course School website: http://www.hep.ph.ic.ac.uk/~ellis/mice_school/ school1.html
2
M.Ellis 17th August 20042 Aims To learn about the way large software engineering projects are run outside of HEP, with examples from Space and reference to the international and European standards. To develop a trivially simple piece of software during the course to illustrate the execution of each of the processes and better understand how it all works.
3
M.Ellis 17th August 20043 Course Content The course was run over 5 days, and following an introduction, the days were spent addressing the 7 processes that are needed to successfully run a software project. The programme can be seen at this link: –http://www.hep.ph.ic.ac.uk/~ellis/mice_school/school1- agenda.htmlhttp://www.hep.ph.ic.ac.uk/~ellis/mice_school/school1- agenda.html The example programme was chosen as a simple simulation of a Pion Decay. For each process, the methods were followed and various documents were produced, that can be accessed through the directory available from this link: –http://www.hep.ph.ic.ac.uk/~ellis/mice_school/PionDecay/r1.0/http://www.hep.ph.ic.ac.uk/~ellis/mice_school/PionDecay/r1.0/
4
M.Ellis 17th August 20044 Management We decided upon a model for the software life cycle, configuration and release procedures, the development environment and a project plan for the mini-project. The resulting documents can be seen from this link: –http://www.hep.ph.ic.ac.uk/~ellis/mice_school/ PionDecay/r1.0/Management/http://www.hep.ph.ic.ac.uk/~ellis/mice_school/ PionDecay/r1.0/Management/
5
M.Ellis 17th August 20045 Specifications Having agreed on an operating framework, the next step was to develop specifications for the project. We defined a single Use Case, and derived functional requirements and constraints that the software must fulfill. These documents can be accessed from: –http://www.hep.ph.ic.ac.uk/~ellis/mice_school/ PionDecay/r1.0/Specifications/http://www.hep.ph.ic.ac.uk/~ellis/mice_school/ PionDecay/r1.0/Specifications/
6
M.Ellis 17th August 20046 Design The design process was executed in a bottom- up manner. The functional requirements were used to define classes (static model), and then these were grouped together into domains (the architectural model). An Object Diagram showing the flow of information in the main executable was developed as an example of dynamic modelling. The resulting documents can be found here: –http://www.hep.ph.ic.ac.uk/~ellis/mice_school/PionDe cay/r1.0/Design/http://www.hep.ph.ic.ac.uk/~ellis/mice_school/PionDe cay/r1.0/Design/
7
M.Ellis 17th August 20047 Production “Production” in this context means the production of code, not the usual sense that we apply in HEP. Nothing fancy was used in the production of the code. We had a Makefile, edited the source code with vi and used the g++ compiler. The source code, etc can be found here: –http://www.hep.ph.ic.ac.uk/~ellis/mice_school/PionDe cay/r1.0/Production/http://www.hep.ph.ic.ac.uk/~ellis/mice_school/PionDe cay/r1.0/Production/
8
M.Ellis 17th August 20048 Testing Testing is a crucial, and almost universally (in HEP) ignored process in the correct development of software. The definition and importance of Validation and Verification were discussed. Testing can be broken down into: –Unit tests, which test the functionality of the individual “units” of the software. In our case, these are the C++ classes. –Integration tests, which test the interfaces between different domains, and –System tests, which test the use cases and –Verification, which in our case confirms that the actual physics output is correct (irrespective that the software may meet all the requirements specified, that may not be sufficient to guarantee the accuracy of the physics!)
9
M.Ellis 17th August 20049 Testing – continued... The validation procedures were defined and a physics example from KARMEN of a pion decay was used to Verify the physics accuracy of the output of the program. Our project involved 3 complete iterations of the code production and testing process: –Iteration 1: 9 bugs, 8 found in Unit Testing, 1 found in Integration testing. –Iteration 2: 1 bug found in the Integration test, which also affected the System test. –Iteration 3: 0 bugs found – all tests passed, including verification by comparison to the results published in a KARMEN paper. The tests and output can be found here: –http://www.hep.ph.ic.ac.uk/~ellis/mice_school/PionDecay/r1.0/Te sting/http://www.hep.ph.ic.ac.uk/~ellis/mice_school/PionDecay/r1.0/Te sting/
10
M.Ellis 17th August 200410 Use Information Use Information is all information provided to the user and is not limited to just a user guide, but can be in many different formats, and for our project included: –User Guides (Installation and Operation) –Reference Manual (html and latex output from the doxygen program) –And a movie (avi format) demonstration of the operation of the program. These can all be found here: –http://www.hep.ph.ic.ac.uk/~ellis/mice_school/PionDe cay/r1.0/Use%20Information/http://www.hep.ph.ic.ac.uk/~ellis/mice_school/PionDe cay/r1.0/Use%20Information/
11
M.Ellis 17th August 200411 Operation The operation phase is when we would normally be running productions, performing analyses, etc. For the mini-project, we chose to study the effect the momentum of the pion in the lab frame has on the decay angle of the muon in the lab frame. A perl script was prepared the executes the program many times, and extracts the output in a format that can be read by PAW. PAW was then used to plot the relationship between the decay angle and the pion momentum. All documents, including the script and the results can be found here: –http://www.hep.ph.ic.ac.uk/~ellis/mice_school/PionDecay/r1.0/O peration/http://www.hep.ph.ic.ac.uk/~ellis/mice_school/PionDecay/r1.0/O peration/
12
M.Ellis 17th August 200412 Follow-up Course The plan is to hold a second, 1 week long, course that would be more hands-on for all participants. In this course, as the theory has been covered, everyone would work as a team on a slightly less trivial (although still manageable within a week) physics case and use the same processes and methods explained and demonstrated in this first course. So long as sufficient members of the first course attend the second, it would be open to anyone from MICE who is able to attend. I am currently checking Simone’s availability, but it is likely to be held at some point after the MICE meeting (and software workshop). Please let me know if you are interested in attending.
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.