THAAD GUI Redevelopment By Frank J. Lhota August 1, 2011
Overview of THAAD <ul><li>THAAD has two major applications, DCP and RTCP, whose GUIs are required to have a common “look a...
DOD Problems with the Old GUI <ul><li>The GUI had some quirks that would confuse users familiar with more modern GUI conve...
Raytheon Problems with the Old GUI <ul><li>There were some concerns over whether the Motif tools used to design and mainta...
Raytheon Problems with the Old GUI <ul><li>DCP and RTCP did  not  share GUI code </li></ul><ul><ul><li>Maintenance costs w...
THAAD GUI Replacement Project <ul><li>The DOD Missile Defense program contracted with Raytheon to develop a new GUI for th...
First Solution: A Java Front End  <ul><li>The first solution was to split the GUI portion of the application into a separa...
First Solution: A Java Front End  <ul><li>In the first prototypes, the GUI portion was written in Java </li></ul><ul><ul><...
First Solution: A Java Front End  <ul><li>The disadvantage of Java: Speed </li></ul><ul><ul><li>Java code is interpreted a...
Second Solution: Qt Front End  <ul><li>To get the desired speed, the team decided that the GUI front end would be compiled...
Second Solution: Qt Front End  <ul><li>Qt has many of the same advantages as Java </li></ul><ul><li>But what about the pro...
Second Solution: Qt Front End  <ul><li>Qt had two features that could be used to solve the code duplication problem: </li>...
Using Plug-ins to Cut Duplication <ul><li>My solution was to have one application serve as the front end of both DCP and R...
Using Plug-ins to Cut Duplication <ul><li>The GUI main window starts off with only the few widgets that are common to both...
Using Plug-ins to Cut Duplication <ul><li>After the GUI determines whether it is the front end for DCP or RTCP, it then lo...
Using Plug-ins to Cut Duplication <ul><li>Some plug-ins will need to interact with the main window, e.g. a plug-in may wan...
Advantages of Plug-ins <ul><li>Plug-ins promote a common DCP / RTCP look and feel </li></ul><ul><ul><li>The front end for ...
Reception of the New GUI <ul><li>The clients were very happy with the new interface </li></ul><ul><ul><li>The soldiers sur...
Reception of the New GUI <ul><li>Michael  Longo, manager for the GUI project, said of my work  </li></ul><ul><ul><li>“ Fra...
Upcoming SlideShare
Loading in …5
×

Thaad Gui

916 views

Published on

My work on developing a new GUI for Raytheon radar software

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
916
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Thaad Gui

  1. 1. THAAD GUI Redevelopment By Frank J. Lhota August 1, 2011
  2. 2. Overview of THAAD <ul><li>THAAD has two major applications, DCP and RTCP, whose GUIs are required to have a common “look and feel” </li></ul><ul><li>DCP and RTCP actually share some display elements </li></ul><ul><li>Both of these GUIs were developed many years ago using Motif </li></ul><ul><li>These GUI’s run on HP and Sun workstations </li></ul>August 1, 2011 Frank J. Lhota Slide
  3. 3. DOD Problems with the Old GUI <ul><li>The GUI had some quirks that would confuse users familiar with more modern GUI conventions </li></ul><ul><li>The applications did not include more modern GUI conventions, such as tabs and wizard dialogs, that could have simplified the GUI </li></ul><ul><li>The GUI required a lot of training time </li></ul><ul><li>They were concerned about operator errors </li></ul>August 1, 2011 Frank J. Lhota Slide
  4. 4. Raytheon Problems with the Old GUI <ul><li>There were some concerns over whether the Motif tools used to design and maintain the GUI would have continued support, or whether they would be available on other platforms </li></ul><ul><li>The GUI was ascetically unappealing (has the look of a 16 bit windows app.) </li></ul>August 1, 2011 Frank J. Lhota Slide
  5. 5. Raytheon Problems with the Old GUI <ul><li>DCP and RTCP did not share GUI code </li></ul><ul><ul><li>Maintenance costs were driven up by making parallel changes in the two applications </li></ul></ul><ul><ul><li>This arrangement increased the possibility for inconsistencies, such as updating a display in RTCP but not updating the same display in DCP </li></ul></ul>August 1, 2011 Frank J. Lhota Slide
  6. 6. THAAD GUI Replacement Project <ul><li>The DOD Missile Defense program contracted with Raytheon to develop a new GUI for the THAAD </li></ul><ul><li>I was hired to work on this project, based in part on my successful work on developing a new GUI for the Howitzer cannon </li></ul><ul><li>My first duties were to evaluate tools and approaches for the new GUI </li></ul>August 1, 2011 Frank J. Lhota Slide
  7. 7. First Solution: A Java Front End <ul><li>The first solution was to split the GUI portion of the application into a separate application, communicating with the back end via messages </li></ul>August 1, 2011 Frank J. Lhota Slide Back End Java GUI Display Data User Input
  8. 8. First Solution: A Java Front End <ul><li>In the first prototypes, the GUI portion was written in Java </li></ul><ul><ul><li>Java is supported on all of the currently used and planned future THAAD platforms </li></ul></ul><ul><ul><li>Java supports all the modern GUI widgets </li></ul></ul><ul><ul><li>Java has excellent, well supported tools on multiple platforms </li></ul></ul>August 1, 2011 Frank J. Lhota Slide
  9. 9. First Solution: A Java Front End <ul><li>The disadvantage of Java: Speed </li></ul><ul><ul><li>Java code is interpreted at run time, and hence is often not as fast as native code </li></ul></ul><ul><ul><li>There are strict requirements for how fast the radar display updates (if a new object is a missile, the operator clearly needs to know right away) </li></ul></ul><ul><ul><li>The Java prototype simply wasn’t updating the radar display fast enough </li></ul></ul><ul><ul><li>Speed was deal killer: Java was dropped </li></ul></ul>August 1, 2011 Frank J. Lhota Slide
  10. 10. Second Solution: Qt Front End <ul><li>To get the desired speed, the team decided that the GUI front end would be compiled into native code </li></ul><ul><li>Based on my recommendation, Raytheon decided to code the front end in C++ using the Qt framework </li></ul>August 1, 2011 Frank J. Lhota Slide
  11. 11. Second Solution: Qt Front End <ul><li>Qt has many of the same advantages as Java </li></ul><ul><li>But what about the problem of code duplication? </li></ul>August 1, 2011 Frank J. Lhota Slide
  12. 12. Second Solution: Qt Front End <ul><li>Qt had two features that could be used to solve the code duplication problem: </li></ul><ul><ul><li>Programmer can write their own Qt widgets, and </li></ul></ul><ul><ul><li>On all platforms, Qt supports loading a shared library at runtime </li></ul></ul><ul><li>Using these two features together, custom widgets can be loaded at runtime, i.e. plug-ins </li></ul>August 1, 2011 Frank J. Lhota Slide
  13. 13. Using Plug-ins to Cut Duplication <ul><li>My solution was to have one application serve as the front end of both DCP and RTCP </li></ul><ul><ul><li>There were separate file names for the DCP and RTCP front end applications… </li></ul></ul><ul><ul><li>... but these names are soft links to the one common front end </li></ul></ul><ul><ul><li>On start up, the application looks at its own name to determine if it is running in DCP or RTCP mode </li></ul></ul>August 1, 2011 Frank J. Lhota Slide
  14. 14. Using Plug-ins to Cut Duplication <ul><li>The GUI main window starts off with only the few widgets that are common to both DCP and RTCP </li></ul>August 1, 2011 Frank J. Lhota Slide GUI
  15. 15. Using Plug-ins to Cut Duplication <ul><li>After the GUI determines whether it is the front end for DCP or RTCP, it then loads the plug-ins that are specific to the application </li></ul>August 1, 2011 Frank J. Lhota Slide DCP yyy xxx zzz Radar Status DCP Plug-ins
  16. 16. Using Plug-ins to Cut Duplication <ul><li>Some plug-ins will need to interact with the main window, e.g. a plug-in may want to set the current tab in the main window’s tab control </li></ul><ul><li>I created a base class for the DCP / RTCP plug-ins; this base class defines signals for interacting with the main window </li></ul><ul><li>When the main window loads each plug-in, it connects these signal to slots that will carry out the desired action </li></ul>August 1, 2011 Frank J. Lhota Slide
  17. 17. Advantages of Plug-ins <ul><li>Plug-ins promote a common DCP / RTCP look and feel </li></ul><ul><ul><li>The front end for both these applications have the same framework </li></ul></ul><ul><ul><li>Common graphic elements are shared between the 2 apps, guaranteeing the same look and feel </li></ul></ul><ul><li>Code duplication is eliminated </li></ul>August 1, 2011 Frank J. Lhota Slide
  18. 18. Reception of the New GUI <ul><li>The clients were very happy with the new interface </li></ul><ul><ul><li>The soldiers surveyed overwhelming preferred the new GUI </li></ul></ul><ul><ul><li>Commanders also indicated that the new GUI reduced training time </li></ul></ul><ul><li>Raytheon decided that this interface would be used for future radar products, e.g. AN/TPY-2 </li></ul>August 1, 2011 Frank J. Lhota Slide
  19. 19. Reception of the New GUI <ul><li>Michael Longo, manager for the GUI project, said of my work </li></ul><ul><ul><li>“ Frank has great technical skills and impressive experience. He is willing to take on new tasks and he takes ownership of his tasks. Frank brings a lot of good ideas to the table and routinely thinks outside the box.” </li></ul></ul>August 1, 2011 Frank J. Lhota Slide

×