570 likes | 786 Views
State of the Project. GEEK. (Graphical Event Enquiry Kit). A Program for Tracking Software Events. Schroeder Bernstein Brain Landbonner Burce Snaders Bolzano Weierstrass. The GEEK Team. … Schroeder Bernstein … Burce Snaders … Bolzano Weierstraas
E N D
State of the Project GEEK (Graphical Event Enquiry Kit) A Program for Tracking Software Events Schroeder Bernstein Brain Landbonner Burce Snaders Bolzano Weierstrass
The GEEK Team • … Schroeder Bernstein • … Burce Snaders • … Bolzano Weierstraas • … Brain Landbonner Brain Landbonner
Focus of This Presentation • Project Overview • User Interface Design • Architecture • Software Demo Brain Landbonner
Focus of This Presentation Project Overview • Project Overview • The Class • TheProblem • The Solution • User Interface Design • Architecture • Prototype Brain Landbonner
The Class Project Overview • Computer Science Capstone • 61 Students … 13 Teams • Industry Projects • Multi-User Cell Phone Game • (QUALCOMM Incorporated) • Peer Distributed Transfer Protocol • (ClickCaster, Inc.) • Remote Icing Sensing System • (NASA) Brain Landbonner
Problem: Optimization Project Overview • Highly Competitive Market • Selling Point: • Fast and Small Programs • Needed: • Tool for Code Optimization Brain Landbonner
The Solution: GEEK Project Overview • Uses of GEEK • Major Requirements • Environmental • Functional • Conceptual View of GEEK Brain Landbonner
Solution: GEEK Project Overview 400 • Capture Software Events • Display in Easy-to-Understand Manner • Event Any Optimizable Feature 300 Number of Occurrences 200 100 event 1 event 2 event 3 event 4 event 5 event 6 Software Events Brain Landbonner
Example: System Calls Project Overview 4000 • Uncover Errors • Uncover Inefficiencies 3000 Number of Occurrences 2000 1000 getpid read write open close getgid System Calls Brain Landbonner
Other Optimization Uses Project Overview • Network Packet Transmissions • X Windows Client-Server Communications • Database Queries • Method Calls • Web Server Communication • . . . and more Brain Landbonner
Environmental Requirements Project Overview • Software/Development Environment • ANSI C • X Window System X11R7 • OpenMotif • Red Hat Linux • RCS • Hardware Environment • 1024 x 768 24-bit Color Display • Pointing Device and Keyboard • Supports the Software Environment • PostScript Printer Brain Landbonner
Functional Requirements Project Overview • Event Configuration File • Interface to Generator • Screen Display Format • ASCII Output File • PostScript Output • Screen Update Interval • Software Event Collection • Multiple GEEK Sessions Brain Landbonner
GEEK Conceptual Diagram Project Overview Brain Landbonner
Focus of This Presentation • Project Overview • User Interface Design • Architecture • Software Demo Schroeder Bernstein
Focus of This Presentation User Interface Design • Project Overview • User Interface Design • Command Line Interface • Graphical User Interface • Architecture • Software Demo Schroeder Bernstein
Command Line Interface User Interface Design • Maximum Event • Event Specification File • Standard X Arguments • Generator Command % geek-m 1000 -l labels -display yquem:0.0 -- facmon -t3 -l -z Schroeder Bernstein
The GEEK Window User Interface Design Schroeder Bernstein
Current View User Interface Design • Horizontal Histogram • Scale • Event Labels • Scroll Bar Schroeder Bernstein
Global View User Interface Design • Event Space Visualization • Current View Location Schroeder Bernstein
Status Bar: Collection User Interface Design • Counting • Events Counted When Received • Not Counting • Events Ignored When Received Schroeder Bernstein
Status Bar: Update User Interface Design • Automatic • Update at Periodic Intervals • Manual • Update on Explicit User Request Schroeder Bernstein
Status Bar: Sort User Interface Design • By Event • Ordered by Increasing Event ID • By Count • Ordered by Decreasing Event Count • By Nothing • Order Unchanged Schroeder Bernstein
Status Bar: Elapsed Time User Interface Design • Time During Which Counting Occurred • Displayed As … • Hours • Minutes • Seconds Schroeder Bernstein
Button Bar User Interface Design • Start • Count Events When Received • Stop • Ignore Events When Received • Reset • Set Counts to Zero • Update • Immediately Update Histogram Schroeder Bernstein
Menu Bar: File User Interface Design • Save • Save Event Counts • Save As … • Save Event Counts in Named File • Preferences … • Modify User Preferences • Exit … • Terminate GEEK Session Schroeder Bernstein
Menu Bar: Screen User Interface Design • Sort • By Event Set Criteria “By Event” • By Count Set Criteria “By Count” • By Nothing Set Criteria “By Nothing” • Update • Automatic Set Periodic Update • Manual Set Update on User Request Schroeder Bernstein
Menu Bar: Help User Interface Design • Manuals • Update • Collection • Sorting • Time • Saving • Printing Schroeder Bernstein
An Example Help Window User Interface Design Schroeder Bernstein
Focus of This Presentation • Project Overview • User Interface Design • Architecture • Software Demo Bolzano Weierstraas
Focus of This Presentation Architecture • Project Overview • User Interface Design • Architecture • Overview • GEEK Classes • File Formats • Software Demo Bolzano Weierstraas
GEEK Modules Architecture invocation events commands event counts Bolzano Weierstraas
Generator Architecture • Means to Execute Generator Program invocation events • Outputs Stream of Event IDs Bolzano Weierstraas
Accumulator Architecture • Accepts Stream of Event IDs • Counts Events events commands • Accepts Accumulator Commands • Start Start Counting Events • Stop Stop Counting Events • Reset Set Event Counts to Zero • Send Return Event Counts event counts Bolzano Weierstraas
PostScript Converter Architecture • Translates • ASCII Event Count File • to • PostScript Event Count File Bolzano Weierstraas
Graphical User Interface Architecture • Provides All User Interaction invocation commands • Reads Event Specification File event counts • Writes ASCII Event Count File Bolzano Weierstraas
Process Structure Architecture • Each Module a Process • Communication via Pipes Bolzano Weierstraas
Object Structure Architecture Geek Application Generator Accumulator SortOrder Labels Form Counter Clock Graph SortOrder Counter Bolzano Weierstraas
Object Structure Architecture Geek Application Generator Accumulator SortOrder Labels Form Counter Clock Graph SortOrder Counter Bolzano Weierstraas
Object Structure Architecture Geek Application Generator Accumulator SortOrder Labels Form Counter Clock Graph SortOrder Counter Bolzano Weierstraas
Object Structure Architecture Geek Application Generator Accumulator SortOrder Labels Form Counter Clock Graph SortOrder Counter Bolzano Weierstraas
Object Structure Architecture Geek Application Generator Accumulator SortOrder Labels Form Counter Clock Graph SortOrder Counter Bolzano Weierstraas
Focus of This Presentation Architecture • Project Overview • User Interface Design • Architecture • Overview • GEEK Classes • File Formats • Software Demo Burce Snaders
GEEK Classes Architecture Geek Application Generator Accumulator SortOrder Labels Form Counter Clock Graph SortOrder Counter Burce Snaders
The Counter Class Architecture • CounterID Create(GeekEvent maxevent) • ErrorStatus Load(Integer fd) • EventCount EventCount(GeekEvent event) • GeekEvent MaxEvent() • Copy(CounterID destination) • Delete() Burce Snaders
The Form Class Architecture • FormID Create(LabelsID labels, Widget shell, Menus menus, Buttons buttons, Statuses statuses, Data data) • SetStatus(Integer status, String string) • StartElapsedTime() • StopElapsedTime() • ResetElapsedTime() • Time ReadElapsedTime() • Update(SortOrderID sortorder, CounterID counter) • Delete() Burce Snaders
The Form Window Architecture Burce Snaders
The Accumulator Class Architecture • AccumulatorID Create(String path, Integer eventfd, GeekEvent maxevent) • ErrorStatus Send() • ErrorStatus Start() • ErrorStatus Stop() • ErrorStatus Reset() • GeekEvent MaxEvent() • CounterID Counter() • Delete() Burce Snaders
Application Architecture • ApplicationID Create( String genfile, String genargs[], GeekEvent maxevent, String labelsfile, Integer argc, String argv[], Function exitcallback) • Delete() Burce Snaders
Focus of This Presentation Architecture • Project Overview • User Interface Design • Architecture • Overview • GEEK Classes • File Formats • Software Demo Burce Snaders
File Formats Architecture • Event Specification File • ASCII Event Count File • PostScript Event Count File Burce Snaders