Software Analysis at Philips Healthcare MSc Project Matthijs Wessels 01/09/2009 – 01/05/2010.

Slides:



Advertisements
Similar presentations
© 2010 Delmar, Cengage Learning Chapter 1 Getting Started with Dreamweaver.
Advertisements

Requirements Engineering n Elicit requirements from customer  Information and control needs, product function and behavior, overall product performance,
Guide to Oracle10G1 Introduction To Forms Builder Chapter 5.
1 Introducing Collaboration to Single User Applications A Survey and Analysis of Recent Work by Brian Cornell For Collaborative Systems Fall 2006.
1 / 31 CS 425/625 Software Engineering User Interface Design Based on Chapter 15 of the textbook [SE-6] Ian Sommerville, Software Engineering, 6 th Ed.,
Software Engineering CSE470: Requirements Analysis 1 Requirements Analysis Defining the WHAT.
IS 421 Information Systems Analysis James Nowotarski 4 November 2002.
TimeCleanser: A Visual Analytics Approach for Data Cleansing of Time-Oriented Data Theresia Gschwandtner, Wolfgang Aigner, Silvia Miksch, Johannes Gärtner,
1 Chapter 5: Introduction To Form Builder. 2 Forms  Why Do We Use Form Builder?  Why Don’t We Use SQL Only?!
1 Case Study: Starting the Student Registration System Chapter 3.
SIMULATION. Simulation Definition of Simulation Simulation Methodology Proposing a New Experiment Considerations When Using Computer Models Types of Simulations.
1 Flash and Animation Presented by : Behzad Sajed Khosrowshahi.
1 User Interface Design CIS 375 Bruce R. Maxim UM-Dearborn.
Design Verification Design Profiler Course 8. All materials updated on: September 30, Design Profiler Design Profiler is a tool integrated within.
Section 13.1 Add a hit counter to a Web page Identify the limitations of hit counters Describe the information gathered by tracking systems Create a guest.
Developing Health Geographic Information Systems (HGIS) for Khorasan Province in Iran (Technical Report) S.H. Sanaei-Nejad, (MSc, PhD) Ferdowsi University.
Getting Started with Dreamweaver
Adobe Dreamweaver CS3 Revealed CHAPTER ONE: GETTING STARTED WITH DREAMWEAVER.
Lesson 7 Guide for Software Design Description (SDD)
UML REVIEW –PART1 1. Introduction What is UML visual modelling language UML is a language not a methodology? Q: why is this distinction important? UML.
1 BTEC HNC Systems Support Castle College 2007/8 Systems Analysis Lecture 9 Introduction to Design.
Introduction to SDLC: System Development Life Cycle Dr. Dania Bilal IS 582 Spring 2009.
Requirements Analysis
MAHI Research Database Data Validation System Software Prototype Demonstration September 18, 2001
An Experiment on Spatial Data Exchange May 22, 2002 SAIJO, Yuuki (Geographical Survey Institute Japan) ISO/TC211 Workshop on Standards.
Introduction to MDA (Model Driven Architecture) CYT.
FotoGazmic Software (From left to right: Chad Zbinden, Josey Baker, Rob Mills, Myra Bergman, Tinate Dejtiranukul)
Approaching a Problem Where do we start? How do we proceed?
Selected Topics in Software Engineering - Distributed Software Development.
A Case Study of Interaction Design. “Most people think it is a ludicrous idea to view Web pages on mobile phones because of the small screen and slow.
Chapter 12: User Interface Design
Recuperação de Informação B Cap. 10: User Interfaces and Visualization , , 10.9 November 29, 1999.
What is Web Site Administration Tool ? WAT Allow you to Configure Web Site With Simple Interface –Manage Users –Manage Roles –Manage Access Rules.
McGraw-Hill/Irwin © 2006 The McGraw-Hill Companies, Inc., All Rights Reserved. 1.
Graphical Enablement In this presentation… –What is graphical enablement? –Introduction to newlook dialogs and tools used to graphical enable System i.
Workforce Scheduling Release 5.0 for Windows Implementation Overview OWS Development Team.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Virtual Application Profiler (VAPP) Problem – Increasing hardware complexity – Programmers need to understand interactions between architecture and their.
Chapter 5 Introduction To Form Builder. Lesson A Objectives  Display Forms Builder forms in a Web browser  Use a data block form to view, insert, update,
Test Equipment Product Line Josh Bowen Capstone Project Presentation 2.
Survey of Tools to Support Safe Adaptation with Validation Alain Esteva-Ramirez School of Computing and Information Sciences Florida International University.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Software Quality Assurance and Testing Fazal Rehman Shamil.
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
1 Presentation Methodology Summary B. Golden. 2 Introduction Why use visualizations?  To facilitate user comprehension  To convey complexity and intricacy.
ANALYSIS PHASE OF BUSINESS SYSTEM DEVELOPMENT METHODOLOGY.
Winter 2007SEG2101 Chapter 121 Chapter 12 Verification and Validation.
Chapter – 8 Software Tools.
Chapter 5 Introduction To Form Builder. Lesson C Objectives  Use sequences to automatically generate primary key values in a form  Create lists of values.
JavaScript Introduction and Background. 2 Web languages Three formal languages HTML JavaScript CSS Three different tasks Document description Client-side.
Integrating and Extending Workflow 8 AA301 Carl Sykes Ed Heaney.
Design Evaluation Overview Introduction Model for Interface Design Evaluation Types of Evaluation –Conceptual Design –Usability –Learning Outcome.
Dillon: CSE470: ANALYSIS1 Requirements l Specify functionality »model objects and resources »model behavior l Specify data interfaces »type, quantity,
1 Chapter 6: Creating Oracle Data Block Forms. 2 Forms  Application with a graphical user interface that looks like a paper form  Used to insert, update,
Case Study: HL7 Conformance in VA Imaging Mike Henderson Principal Consultant Eastern Informatics, Inc.
Wednesday NI Vision Sessions
WP4 Models and Contents Quality Assessment
E- Patient Medical History System
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
Architecture Concept Documents
Chapter A - Getting Started with Dreamweaver MX 2004
Unified Modeling Language
System Design.
Systems Analysis and Design
About the Presentations
Course Name: QTP Trainer: Laxmi Duration: 25 Hrs Session: Daily 1 Hr.
Implementation of Efficient Check-pointing and Restart on CPU - GPU
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
On the notion of Variability in Software Product Lines
Kanban Task Manager SharePoint Editions ‒ Introduction
Presentation transcript:

Software Analysis at Philips Healthcare MSc Project Matthijs Wessels 01/09/2009 – 01/05/2010

Content 1.Introduction Philips Problem description 2.Static analysis Techniques Survey results 3.Dynamic analysis Desired data Acquiring data Visualizing data Verification 4.Conclusion

Organization

Minimum invasive surgery

CXA Architecture

BeX Back-end X-ray patient administration connectivity to hospital information systems graphical user interfaces imaging applications Based on PII

Philips Informatics Infrastructure Goal Allow re-use Global look-and-feel Before: Provide common components Now: Provide almost-finished product

Design PII Components Building blocks Well defined interfaces Protocol XML file Connects components through their interfaces

Design BeX Build on PII

Design BeX continued Unit Groups components

Problem description Software development phase Design Implementation Problem Implementation drifts away from design

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

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

Example use case Doctor presses pedal X-Ray turns on Back-end receives images Screen shows images

Problem Use case A takes too long! Where to look? Use profiler Use debug traces

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?

Dependency Structure Matrix Provides Dependency checking Dependency weights Easily incorporate hierarchy Highlighting violations

Dependency rules in BeX Between units Through public interfaces Between specified units Within units Through public or private interfaces

Reviewed tools NDepend Commercial tool.NET Reflector Open source tool Lattix Commercial tool

Found issues Non specified dependencies Dependencies through private interfaces Direct dependencies Dependencies on private PII interfaces

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

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?

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

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

Debug traces PII mechanism for tracing Split up in categories One category remains on ‘in the field’

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

Guidelines Define guidelines −Used by developers −First define an activity diagram −Insert trace statements for activity

Visualization Requirements −Show length of activities −Draw focus to problem areas −Localize problem areas

Verification approach Make prototype Apply in BeX Gather feedback Introduce to other business units

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

Examples Difficulties Unidentifiable ‘holes’ −E.g. new functionality Working or waiting? −E.g. synchronous call

Trace counting Count traces Group per unit Display per interval

Example

Example continued

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

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 35