software analysis at philips healthcare msc project matthijs wessels 01/09/2009 – 01/05/2010
TRANSCRIPT
![Page 1: Software Analysis at Philips Healthcare MSc Project Matthijs Wessels 01/09/2009 – 01/05/2010](https://reader035.vdocument.in/reader035/viewer/2022062511/551bfd8e550346ad4f8b4a5b/html5/thumbnails/1.jpg)
Software Analysis at Philips Healthcare
MSc Project Matthijs Wessels
01/09/2009 – 01/05/2010
![Page 2: Software Analysis at Philips Healthcare MSc Project Matthijs Wessels 01/09/2009 – 01/05/2010](https://reader035.vdocument.in/reader035/viewer/2022062511/551bfd8e550346ad4f8b4a5b/html5/thumbnails/2.jpg)
Content
1. Introduction• Philips• Problem description
2. Static analysis• Techniques• Survey results
3. Dynamic analysis• Desired data• Acquiring data• Visualizing data• Verification
4. Conclusion
![Page 3: Software Analysis at Philips Healthcare MSc Project Matthijs Wessels 01/09/2009 – 01/05/2010](https://reader035.vdocument.in/reader035/viewer/2022062511/551bfd8e550346ad4f8b4a5b/html5/thumbnails/3.jpg)
Organization
![Page 4: Software Analysis at Philips Healthcare MSc Project Matthijs Wessels 01/09/2009 – 01/05/2010](https://reader035.vdocument.in/reader035/viewer/2022062511/551bfd8e550346ad4f8b4a5b/html5/thumbnails/4.jpg)
Minimum invasive surgery
![Page 5: Software Analysis at Philips Healthcare MSc Project Matthijs Wessels 01/09/2009 – 01/05/2010](https://reader035.vdocument.in/reader035/viewer/2022062511/551bfd8e550346ad4f8b4a5b/html5/thumbnails/5.jpg)
CXA Architecture
![Page 6: Software Analysis at Philips Healthcare MSc Project Matthijs Wessels 01/09/2009 – 01/05/2010](https://reader035.vdocument.in/reader035/viewer/2022062511/551bfd8e550346ad4f8b4a5b/html5/thumbnails/6.jpg)
BeX
• Back-end X-ray• patient administration• connectivity to hospital information systems• graphical user interfaces • imaging applications
• Based on PII
![Page 7: Software Analysis at Philips Healthcare MSc Project Matthijs Wessels 01/09/2009 – 01/05/2010](https://reader035.vdocument.in/reader035/viewer/2022062511/551bfd8e550346ad4f8b4a5b/html5/thumbnails/7.jpg)
Philips Informatics Infrastructure
• Goal• Allow re-use• Global look-and-feel
• Before: Provide common components• Now: Provide almost-finished product
![Page 8: Software Analysis at Philips Healthcare MSc Project Matthijs Wessels 01/09/2009 – 01/05/2010](https://reader035.vdocument.in/reader035/viewer/2022062511/551bfd8e550346ad4f8b4a5b/html5/thumbnails/8.jpg)
Design PII
• Components• Building blocks• Well defined interfaces
• Protocol• XML file• Connects components
through their interfaces
![Page 9: Software Analysis at Philips Healthcare MSc Project Matthijs Wessels 01/09/2009 – 01/05/2010](https://reader035.vdocument.in/reader035/viewer/2022062511/551bfd8e550346ad4f8b4a5b/html5/thumbnails/9.jpg)
Design BeX
• Build on PII
![Page 10: Software Analysis at Philips Healthcare MSc Project Matthijs Wessels 01/09/2009 – 01/05/2010](https://reader035.vdocument.in/reader035/viewer/2022062511/551bfd8e550346ad4f8b4a5b/html5/thumbnails/10.jpg)
Design BeX continued
• Unit• Groups components
![Page 11: Software Analysis at Philips Healthcare MSc Project Matthijs Wessels 01/09/2009 – 01/05/2010](https://reader035.vdocument.in/reader035/viewer/2022062511/551bfd8e550346ad4f8b4a5b/html5/thumbnails/11.jpg)
Problem description
• Software development phase• Design• Implementation
• Problem• Implementation drifts away from design
![Page 12: Software Analysis at Philips Healthcare MSc Project Matthijs Wessels 01/09/2009 – 01/05/2010](https://reader035.vdocument.in/reader035/viewer/2022062511/551bfd8e550346ad4f8b4a5b/html5/thumbnails/12.jpg)
Example
• BeX design specifies dependencies• Unit A allowed to depend of Unit B
• Dependency• A uses functionality of B• If B changes, A might break
![Page 13: Software Analysis at Philips Healthcare MSc Project Matthijs Wessels 01/09/2009 – 01/05/2010](https://reader035.vdocument.in/reader035/viewer/2022062511/551bfd8e550346ad4f8b4a5b/html5/thumbnails/13.jpg)
Performance
• Medical sector => Quality is important• Slow system != quality
• BeX requirements• Performance use cases
− Not ordinary use case− No user interaction in between− Usually starts with user action− Usually end with feedback
![Page 14: Software Analysis at Philips Healthcare MSc Project Matthijs Wessels 01/09/2009 – 01/05/2010](https://reader035.vdocument.in/reader035/viewer/2022062511/551bfd8e550346ad4f8b4a5b/html5/thumbnails/14.jpg)
Example use case
• Doctor presses pedal• X-Ray turns on• Back-end receives images• Screen shows images
![Page 15: Software Analysis at Philips Healthcare MSc Project Matthijs Wessels 01/09/2009 – 01/05/2010](https://reader035.vdocument.in/reader035/viewer/2022062511/551bfd8e550346ad4f8b4a5b/html5/thumbnails/15.jpg)
Problem
• Use case A takes too long!
• Where to look?• Use profiler• Use debug traces
![Page 16: Software Analysis at Philips Healthcare MSc Project Matthijs Wessels 01/09/2009 – 01/05/2010](https://reader035.vdocument.in/reader035/viewer/2022062511/551bfd8e550346ad4f8b4a5b/html5/thumbnails/16.jpg)
Research questions
• What methods for dependency checking are available for Philips?
• How can we get insight in the execution and timing of a use case?
![Page 17: Software Analysis at Philips Healthcare MSc Project Matthijs Wessels 01/09/2009 – 01/05/2010](https://reader035.vdocument.in/reader035/viewer/2022062511/551bfd8e550346ad4f8b4a5b/html5/thumbnails/17.jpg)
Dependency Structure Matrix
• Provides• Dependency checking• Dependency weights• Easily incorporate hierarchy• Highlighting violations
![Page 18: Software Analysis at Philips Healthcare MSc Project Matthijs Wessels 01/09/2009 – 01/05/2010](https://reader035.vdocument.in/reader035/viewer/2022062511/551bfd8e550346ad4f8b4a5b/html5/thumbnails/18.jpg)
Dependency rules in BeX
• Between units• Through public interfaces• Between specified units
• Within units• Through public or
private interfaces
![Page 19: Software Analysis at Philips Healthcare MSc Project Matthijs Wessels 01/09/2009 – 01/05/2010](https://reader035.vdocument.in/reader035/viewer/2022062511/551bfd8e550346ad4f8b4a5b/html5/thumbnails/19.jpg)
Reviewed tools
• NDepend• Commercial tool
• .NET Reflector• Open source tool
• Lattix• Commercial tool
![Page 20: Software Analysis at Philips Healthcare MSc Project Matthijs Wessels 01/09/2009 – 01/05/2010](https://reader035.vdocument.in/reader035/viewer/2022062511/551bfd8e550346ad4f8b4a5b/html5/thumbnails/20.jpg)
Found issues
• Non specified dependencies• Dependencies through private interfaces• Direct dependencies• Dependencies on private PII interfaces
![Page 21: Software Analysis at Philips Healthcare MSc Project Matthijs Wessels 01/09/2009 – 01/05/2010](https://reader035.vdocument.in/reader035/viewer/2022062511/551bfd8e550346ad4f8b4a5b/html5/thumbnails/21.jpg)
Dynamic analysis (recap)
• How can we get insight in the execution and timing of a use case?
• Problem• Profiler and debug trace are too low level
![Page 22: Software Analysis at Philips Healthcare MSc Project Matthijs Wessels 01/09/2009 – 01/05/2010](https://reader035.vdocument.in/reader035/viewer/2022062511/551bfd8e550346ad4f8b4a5b/html5/thumbnails/22.jpg)
Dynamic analysis (recap)
• How can we get insight in the execution and timing of a use case?
• Sub questions• What level of detail?• How to measure?• How to visualize?
![Page 23: Software Analysis at Philips Healthcare MSc Project Matthijs Wessels 01/09/2009 – 01/05/2010](https://reader035.vdocument.in/reader035/viewer/2022062511/551bfd8e550346ad4f8b4a5b/html5/thumbnails/23.jpg)
Level of detail
• Activity diagrams• Specified in the design• Decomposes a use case in activities• Maps activities to units
− Load patient data− Prepare image pipelines− etc.
• Assigns time budgets to activities• Provides partial order
![Page 24: Software Analysis at Philips Healthcare MSc Project Matthijs Wessels 01/09/2009 – 01/05/2010](https://reader035.vdocument.in/reader035/viewer/2022062511/551bfd8e550346ad4f8b4a5b/html5/thumbnails/24.jpg)
Measuring the data
• Existing techniques based on function traces− “Feature-level Phase Detection for Execution Trace”
(Watanabe et al)− “Locating Features in Source Code” (Eisenbarth et al)
• Too invasive for timing
![Page 25: Software Analysis at Philips Healthcare MSc Project Matthijs Wessels 01/09/2009 – 01/05/2010](https://reader035.vdocument.in/reader035/viewer/2022062511/551bfd8e550346ad4f8b4a5b/html5/thumbnails/25.jpg)
Debug traces
• PII mechanism for tracing• Split up in categories• One category remains on ‘in the field’
![Page 26: Software Analysis at Philips Healthcare MSc Project Matthijs Wessels 01/09/2009 – 01/05/2010](https://reader035.vdocument.in/reader035/viewer/2022062511/551bfd8e550346ad4f8b4a5b/html5/thumbnails/26.jpg)
Instrumentation
• Manually instrument the code− Requires manual labor
• Automatically interpret existing trace− Requires complex algorithm− Possibly inaccurate
• Relatively small amount
of inserted traces.− Manual = feasible
![Page 27: Software Analysis at Philips Healthcare MSc Project Matthijs Wessels 01/09/2009 – 01/05/2010](https://reader035.vdocument.in/reader035/viewer/2022062511/551bfd8e550346ad4f8b4a5b/html5/thumbnails/27.jpg)
Guidelines
• Define guidelines− Used by developers− First define an activity diagram− Insert trace statements for activity
![Page 28: Software Analysis at Philips Healthcare MSc Project Matthijs Wessels 01/09/2009 – 01/05/2010](https://reader035.vdocument.in/reader035/viewer/2022062511/551bfd8e550346ad4f8b4a5b/html5/thumbnails/28.jpg)
Visualization
• Requirements− Show length of activities− Draw focus to problem areas− Localize problem areas
![Page 29: Software Analysis at Philips Healthcare MSc Project Matthijs Wessels 01/09/2009 – 01/05/2010](https://reader035.vdocument.in/reader035/viewer/2022062511/551bfd8e550346ad4f8b4a5b/html5/thumbnails/29.jpg)
Verification approach
• Make prototype• Apply in BeX• Gather feedback• Introduce to other business units
![Page 30: Software Analysis at Philips Healthcare MSc Project Matthijs Wessels 01/09/2009 – 01/05/2010](https://reader035.vdocument.in/reader035/viewer/2022062511/551bfd8e550346ad4f8b4a5b/html5/thumbnails/30.jpg)
Verification results
• Positive points− Problems can be localized (to units)− Easy instrumentation
• Negative points− Possible to forget an activity− Difficult to distinguish
working from waiting
![Page 31: Software Analysis at Philips Healthcare MSc Project Matthijs Wessels 01/09/2009 – 01/05/2010](https://reader035.vdocument.in/reader035/viewer/2022062511/551bfd8e550346ad4f8b4a5b/html5/thumbnails/31.jpg)
Examples
• Difficulties• Unidentifiable ‘holes’
− E.g. new functionality
• Working or waiting?− E.g. synchronous call
![Page 32: Software Analysis at Philips Healthcare MSc Project Matthijs Wessels 01/09/2009 – 01/05/2010](https://reader035.vdocument.in/reader035/viewer/2022062511/551bfd8e550346ad4f8b4a5b/html5/thumbnails/32.jpg)
Trace counting
• Count traces• Group per unit• Display per interval
![Page 33: Software Analysis at Philips Healthcare MSc Project Matthijs Wessels 01/09/2009 – 01/05/2010](https://reader035.vdocument.in/reader035/viewer/2022062511/551bfd8e550346ad4f8b4a5b/html5/thumbnails/33.jpg)
Example
Scenario
Acquisition.Service
XRayIPService
0 1000 2000 3000 4000 5000 6000 7000
Prepare 1(5734.299 ms)
Pre
pare
Xra
yIpS
ervi
ce P
repa
re
IP U
npre
pare
IP PrepareForAcquisition(3125.055 ms)
Prepare 1
Start: 2010/02/18 10:23:23:568772End: 2010/02/18 10:23:29:303071
![Page 34: Software Analysis at Philips Healthcare MSc Project Matthijs Wessels 01/09/2009 – 01/05/2010](https://reader035.vdocument.in/reader035/viewer/2022062511/551bfd8e550346ad4f8b4a5b/html5/thumbnails/34.jpg)
Example continued
Scenario
BEC
Acquisition
XRayIPService
UIDeviceService
Viewing
Philips
Drive
0 1000 2000 3000 4000 5000 6000 7000
Prepare 1 [185](5734.299 ms)
[34]
Pre
pare
[6]
Xra
yIpS
ervi
ce P
repa
re [
0]
[7]IP
Unp
repa
re [
0]IP PrepareForAcquisition [8]
(3125.055 ms)
[94]
Prepare 1
Start: 2010/02/18 10:23:23:568772End: 2010/02/18 10:23:29:303071
![Page 35: Software Analysis at Philips Healthcare MSc Project Matthijs Wessels 01/09/2009 – 01/05/2010](https://reader035.vdocument.in/reader035/viewer/2022062511/551bfd8e550346ad4f8b4a5b/html5/thumbnails/35.jpg)
Conclusions
• Dependency checking• Custom hierarchy important• Lattix best choice
• Performance analysis• Measure activities per unit• Measure manually inserted trace statements• Show in a bar diagram mapping on a time line• Add extra information to help identify errors
![Page 36: Software Analysis at Philips Healthcare MSc Project Matthijs Wessels 01/09/2009 – 01/05/2010](https://reader035.vdocument.in/reader035/viewer/2022062511/551bfd8e550346ad4f8b4a5b/html5/thumbnails/36.jpg)
Further work
• Add more info• Mix with CPU, Disc I/O
• Use statistics over multiple measurements• Get averages• Find outliers
• Add interactivity• Allow zooming to different levels
PAGE 36