CS699: Professional Seminar in CS / Professor V. Riabov Keith Armentrout Presentation #3 : Portable GUI in Ada and GtkAda 2005 March 12Keith Armentrout1.

Slides:



Advertisements
Similar presentations
What is a Computer Program? For a computer to be able to do anything (multiply, play a song, run a word processor), it must be given the instructions.
Advertisements

CE 311 K Introduction to Computer Methods VB Controls and Events Daene C. McKinney.
COMP 6703 Project A GUI Interface to the Gene Microarray Data Analysis Program SigMotif. Student: Ye Luo (u ) Clients: Professor Susan Wilson and.
Computers: Tools for an Information Age
Advanced Object-Oriented Programming Features
Java Programming, 3e Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Chapter 2: Operating-System Structures Modified from the text book.
1 An Introduction to Visual Basic Objectives Explain the history of programming languages Define the terminology used in object-oriented programming.
Objectives Machine language vs.. High-level language Procedure-oriented, object-oriented, and event- driven languages Background of Visual Basic VB Integrated.
Chapter 3 Software Two major types of software
COMPUTER PROGRAMMING. Introduction to C++ History Merges notions from Smalltalk and notions from C The class concept was borrowed from Simular67 Developed.
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
Lesson 4 Computer Software
Introduction 01_intro.ppt
1 Chapter One A First Program Using C#. 2 Objectives Learn about programming tasks Learn object-oriented programming concepts Learn about the C# programming.
Chapter 2 Build Your First Project A Step-by-Step Approach 2 Exploring Microsoft Visual Basic 6.0 Copyright © 1999 Prentice-Hall, Inc. By Carlotta Eaton.
Java Programming, 2E Introductory Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
1 Integrated Development Environment Building Your First Project (A Step-By-Step Approach)
Programming Languages: Telling the Computers What to Do Chapter 16.
A First Program Using C#
Chapter 1 Introduction to Visual Basic Programming and Applications 1 Exploring Microsoft Visual Basic 6.0 Copyright © 1999 Prentice-Hall, Inc. By Carlotta.
1 Programming Concepts Module Code : CMV6107 Class Contact Hours: 45 hours (Lecture 15 hours) (Laboratory/Tutorial 30 hours) Module Value: 1 Textbook:
Lesson 6 Operating Systems and Software
CS110/CS119 Introduction to Computing (Java)
CS413: Java Programming language Applications Applets
 2008 Pearson Education, Inc. All rights reserved Introduction to Computers, the Internet and World Wide Web.
Microsoft Visual Basic 2005: Reloaded Second Edition
CMSC 202 Computer Science II for Majors Object-Oriented Programming.
An intro to programming. The purpose of writing a program is to solve a problem or take advantage of an opportunity Consists of multiple steps:  Understanding.
Copyright © 2012 Pearson Education, Inc. Chapter 1: Introduction to Computers and Programming 1.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Programming Languages Machine.
CHAPTER FOUR COMPUTER SOFTWARE.
Grob Systems, Inc., the customer, requires an industrial computer system that will have a function of acquiring raw data, processing the data, presenting.
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
Tutorial 111 The Visual Studio.NET Environment The major differences between Visual Basic 6.0 and Visual Basic.NET are the latter’s support for true object-oriented.
Chapter 11 An Introduction to Visual Basic 2008 Why Windows and Why Visual Basic How You Develop a Visual Basic Application The Different Versions of Visual.
CMPE13Cyrus Bazeghi 1 Programming Languages Telling computers what to do.
Khoros Yongqun He Dept. of Computer Science, Virginia Tech.
Visual C++ Programming: Concepts and Projects
Ch 1. A Python Q&A Session Spring Why do people use Python? Software quality Developer productivity Program portability Support libraries Component.
SIMPLE PROBLEM SOLVING in Java: a Problem Set Framework Viera K. Proulx Richard Rasala Jason Jay Rodrigues CCSCNE 2002 Conference.
The Joy of Programming (also known as) Introduction to Object-Oriented Programming.
FLUKA GUI Status FLUKA Meeting CERN, 10/7/2006.
Copyright 2003 Scott/Jones Publishing Standard Version of Starting Out with C++, 4th Edition Chapter 13 Introduction to Classes.
Object-Oriented Program Development Using Java: A Class-Centered Approach, Enhanced Edition.
The Programming Process Define the problem* Make or buy software? Design the program * Code (write) the program Test (debug) the program Document the.
CC111 Lec7 : Visual Basic 1 Visual Basic(1) Lecture 7.
Chapter 5 Information Systems in Business Software
Graphical User Interface You will be used to using programs that have a graphical user interface (GUI). So far you have been writing programs that have.
1.
Chapter 14 The User View of Operating Systems The Architecture of Computer Hardware and Systems Software: An Information Technology Approach 3rd Edition,
9-Nov-97Tri-Ada '971 TASH An Alternative to the Windows API TRI-Ada ‘97 Terry J. Westley
PROPOSAL : The Use of Voice Command in Operating Personal Computer By : COLLEGE OF ART & SCIENCE UNIVERSITI UTARA MALAYSIA STIW5023 ADVANCED PROGRAMMING.
Principles of Information Systems, Sixth Edition Software: Systems and Application Software Chapter 4.
The Development Process Compilation. Compilation - Dr. Craig A. Struble 2 Programming Process Problem Solving Phase We will spend significant time on.
Chapter – 8 Software Tools.
Visual Basic.Net. Software to Install Visual Studio 2005 Professional Edition (Requires Windows XP Pro) MSDN Library for Visual Studio 2005 Available.
RAPID: THE RAPID ADA PORTABLE INTERFACE DESIGNER Martin Carlisle Department of Computer Science US Air Force Academy.
CST 1101 Problem Solving Using Computers
INF230 Basics in C# Programming
Introduction to Computer CC111
CSCI-235 Micro-Computer Applications
Introduction to Computers and Java
Computer Science I CSC 135.
Social Media And Global Computing Introduction to Visual Studio
Computers: Hardware and Software
The Programming Process
Introduction to Computer Software
Chapter 1: Programming Basics, Python History and Program Components
Presentation transcript:

CS699: Professional Seminar in CS / Professor V. Riabov Keith Armentrout Presentation #3 : Portable GUI in Ada and GtkAda 2005 March 12Keith Armentrout1 Report On Portable Graphical User Interface (GUI) In Ada and GtkAda (pgag)

CS699: Professional Seminar in CS / Professor V. Riabov Keith Armentrout Presentation #3 : Portable GUI in Ada and GtkAda 2005 March 12Keith Armentrout2 Executive Summary: Portability is the “holy grail” of computer science a GUI is the Most Difficult Area to Make Portable Windows (Win32) -vs- Unix/Linux (X-Windows) Ada is not a dead language Still Widely Used Throughout the World A large, old, Application re-hosted from a Unisys Computer Fortran Converted Line-by-Line to Ada Remains Command Line Driven (difficult for non-programmers) Needs a GUI

CS699: Professional Seminar in CS / Professor V. Riabov Keith Armentrout Presentation #3 : Portable GUI in Ada and GtkAda 2005 March 12Keith Armentrout3 Introduction Project Justification: Old Command Line Driven Application Input Formerly Specified via “JCL” Inputs Now Edited into a Text Input File Needs a GUI Project Software Components: Three Ada “Tasks” Nine Encapsulated Packages

CS699: Professional Seminar in CS / Professor V. Riabov Keith Armentrout Presentation #3 : Portable GUI in Ada and GtkAda 2005 March 12Keith Armentrout4 Functional Specification Provide a GUI for the “Application” Input of Path/File names Directory Structure Browser Function Selection of Input/Processing Options Selection of Output Options Display of Status/Error Messages Control Buttons: RUNRESETDEFAULTS CLEARHELPEXIT

CS699: Professional Seminar in CS / Professor V. Riabov Keith Armentrout Presentation #3 : Portable GUI in Ada and GtkAda 2005 March 12Keith Armentrout5 System Design Approach Three Ada “Tasks” Nine Encapsulated Packages “Application” is only a simulation call status startup Setting & Controls status control GUI pgag application User Main Window Question Window Status Window Help Window Browser Window

CS699: Professional Seminar in CS / Professor V. Riabov Keith Armentrout Presentation #3 : Portable GUI in Ada and GtkAda 2005 March 12Keith Armentrout6 Object-Oriented Design Issues The Application (Old - Non OO) Re-hosted Fortran to Ada, Line-by-Line Retains Original Functionality, Structure, & Behavior GtkAda (New - OO) Nearly All Object-Oriented in its Design Thick Binding to X-Windows and Win32 pgag (A Mixture of the Old and the New) Object-Oriented at its Highest Levels (the Ada Tasks) Windows & Widgets Inherit from GtkAda Parents Some Old-Time Functional Design Internally

CS699: Professional Seminar in CS / Professor V. Riabov Keith Armentrout Presentation #3 : Portable GUI in Ada and GtkAda 2005 March 12Keith Armentrout7 Test Plan Unit Test Not Possible Programs Would Not Compile Without Type Definitions No Visible Results Until Nearly All Pieces Assembled The Plan: Formally Test Only the Final Product Follow Pre-Written Checklist Record Screen Captures

CS699: Professional Seminar in CS / Professor V. Riabov Keith Armentrout Presentation #3 : Portable GUI in Ada and GtkAda 2005 March 12Keith Armentrout8 Code Implementation Ada The World’s First Standardized OO Programming Language GtkAda (Free Software) A Graphical Toolkit which uses OO Features of Ada A “Thick” Binding to X-Windows & Win32 AdaGIDE (Free Software) An Integrated Development Environment (IDE) for Ada Developed by Faculty Members at US Air Force Academy GNAT (Free Ada Compiler for Both PC and Sun)

CS699: Professional Seminar in CS / Professor V. Riabov Keith Armentrout Presentation #3 : Portable GUI in Ada and GtkAda 2005 March 12Keith Armentrout9 Code Implementation (example) with Ada.Dynamic_Priorities; use Ada.Dynamic_Priorities; with pgag_Data; use pgag_Data; with pgag_GUI; use pgag_GUI; procedure pgag is begin -- pgag main Task Body Set_Priority( Task_Priority_Main ); GUI.StartUp; end pgag;

CS699: Professional Seminar in CS / Professor V. Riabov Keith Armentrout Presentation #3 : Portable GUI in Ada and GtkAda 2005 March 12Keith Armentrout10 Problems Solved Balancing the Tasks Selection of Task Priority Delay Statements Problem Solved by GtkAda 500 Millisecond Master Monitor Dynamically Linked Libraries (DLL) on PC Self-extracting Installation Program (future) Libraries on Sun Solaris Installation Procedure (search path setup) (future)

CS699: Professional Seminar in CS / Professor V. Riabov Keith Armentrout Presentation #3 : Portable GUI in Ada and GtkAda 2005 March 12Keith Armentrout11 Issues For Future Study Installation Problems (noted above) Porting to Other Platforms (Linux, Mac) The application May be Ported Soon Status Reporting Between pgag and Application Currently Implemented as a Simple/Limited Boolean Flag Doesn’t Distinguish Between Minor and Severe Errors Requires Significant Modifications to Application Application is Changing GUI Must Expand

CS699: Professional Seminar in CS / Professor V. Riabov Keith Armentrout Presentation #3 : Portable GUI in Ada and GtkAda 2005 March 12Keith Armentrout12 pgag on a PC

CS699: Professional Seminar in CS / Professor V. Riabov Keith Armentrout Presentation #3 : Portable GUI in Ada and GtkAda 2005 March 12Keith Armentrout13 pgag on a SUN SunOS (Solaris) 5.8

CS699: Professional Seminar in CS / Professor V. Riabov Keith Armentrout Presentation #3 : Portable GUI in Ada and GtkAda 2005 March 12Keith Armentrout14 pgag on a PC with Status Window

CS699: Professional Seminar in CS / Professor V. Riabov Keith Armentrout Presentation #3 : Portable GUI in Ada and GtkAda 2005 March 12Keith Armentrout15 pgag on a PC with Status Window and Question Window user selected “EXIT”

CS699: Professional Seminar in CS / Professor V. Riabov Keith Armentrout Presentation #3 : Portable GUI in Ada and GtkAda 2005 March 12Keith Armentrout16 Conclusion 1776 Lines of Code (3874 counting comments) Meets Existing Requirements of the Real Application Would Be Easy to Integrate with the Real Application Could be Easily Upgraded to Meet New Requirements Its Been Fun