software components deployment repository structure test suites xal version 2 christopher k. allen,...
TRANSCRIPT
SOFTWARE COMPONENTSDEPLOYMENT
REPOSITORY STRUCTURETEST SUITES
XAL Version 2
Christopher K. Allen, ORNL
Outline: XAL Version 2
10/14/2007XAL Meeting - ICALEPCS 2007
2
1. Motivation
2. Development Strategy
3. Version 2 Architecture1. Installation2. Components3. Repository structure
4. Test Suites
5. Summary
6. Open Issues
XAL Version 1
XAL Version 2
1. Motivation
Many new features and capabilities have been added to XAL since its original design XAL is getting big Not all capabilities fit naturally
into the original design Multi-site development(?) Deployment is getting
complicated 3rd party software
New Architecture to supported the evolved framework XAL2
"Engineers believe that if it ain't broke, it doesn't have enough features yet." — Scott Adams.
10/14/2007
3
XAL Meeting - ICALEPCS 2007
2. XAL 2 Development Plan
10/14/2007XAL Meeting - ICALEPCS 2007
4
Version 2 Development Maintain working
“operational” version
Migrate/develop XAL 2 concurrently into different repository
New installations from XAL 2 repository
operation
migration
Working Repository(Version 1)
XAL
Development Repository(Version 2)
XAL
5
3 Original XAL Conceptual DesignXAL was originally
designed with the following objectives:
Hware representation (introspective)
High-level connection management
Fast simulation
Tool suite
It is natural to break out these components directly into software components
10/14/2007XAL Meeting - ICALEPCS 2007
3. XAL2 Components
10/14/2007XAL Meeting - ICALEPCS 2007
6
Create separate JAR files for each component Eases deployment
Install in stages
Compartmentalize XAL development Mnging team develop. Maintenance Quality control Development is Harder
Application development Easier?
xalcore2.jar(hardware)
xaltools2.jar
xalservice2.jar(connection)
xalhware2.jar(online model)
xaltest2.jar(testsuites)
EPICS
xalapps.jar(MIC)
xalapps.jar(MRC)
3. XAL2 Installation
10/14/2007XAL Meeting - ICALEPCS 2007
7
xalhware2.jar(hardware)
xaltools2.jar
xalservice2.jar(connection)
xalmodel2.jar(online model)
CAJJCA
xal.xml
DB
Eff
ort
model_params
element_map
node_map
XAL Components What goes where?
The number of outgoing edges indicates dependency
The number of incoming edges indicates importance (include multi-vertex edges)
For example,Break a Core Tool:
breaks XAL Core
break Online Model
breaks applications
8
10/14/2007XAL Meeting - ICALEPCS 2007
XAL2 Collaboration Diagram
3. XAL2 Site Extensions
10/14/2007XAL Meeting - ICALEPCS 2007
9 We have addressed “core”
XAL XAL elements common to all
sites
“Extension” XAL Specific to site Developed by site
xalhware2.jar(hardware)
xalservice2.jar(connection)
jparchware.jar(J-PARC HW)
snshware.jar(SNS HW)
3. XAL2 Repository Structure
10/14/2007XAL Meeting - ICALEPCS 2007
10
Accommodate: Component builds Multi-site development Multi-site extensions
Management? Test suites? High-priest of XXX.jar?
4. Test Suites
Must ensure new code does not break repository
Developers love to write testing code (Developers should write testing code) Provide test suites for important code
Critical code – must ensure operation Many people are developing XAL With a standard test suite we can check modifications
10/14/2007
11
XAL Meeting - ICALEPCS 2007
4. Test Suites
Where do we put them? In development branch? Mirror branch (e.g., test.core.model.alg
xal.core.model.alg) Separate jar (testxalmodel2.jar)
Naming convention? “TestClassName.java” “TestClassName.py”
JUnit?!
10/14/2007
12
XAL Meeting - ICALEPCS 2007
5. Summary
10/14/2007XAL Meeting - ICALEPCS 2007
13
XAL has become a very large software system
New version would address- deployment- maintenance- usability
We can start moving to a version 2 without interrupting operation
6. Open Issues
10/14/2007XAL Meeting - ICALEPCS 2007
14
Repository management
3rd Party softwareTestingScheduleResponsible parties…
Software Development and Social Values
A man was crossing a road one day when a frog called out to him and said: "If you kiss me, I'll turn into a beautiful princess“.
He bent over, picked up the frog and put it in his pocket. The frog spoke up again and said: "If you kiss me and turn me back into a beautiful princess, I will stay with you for one week.”
The man took the frog out of his pocket, smiled at it and returned it to the pocket. The frog then cried out: "If you kiss me and turn me back into a princess, I'll stay with you and do ANYTHING you want".
Again the man took the frog out, smiled at it and put it back into his pocket.
Finally, the frog asked: "What is the matter ? I've told you I'm a beautiful princess, that I'll stay with you for a week and do anything you want. Why won't you kiss me ?”
The man said, "Look I'm a software engineer. I don't have time for a girlfriend, but a talking frog is cool."
15
10/14/2007XAL Meeting - ICALEPCS 2007
10/14/2007XAL Meeting - ICALEPCS 2007 16