40
Using SansGUI Using SansGUI Using SansGUI Using SansGUI in Academia in Academia in Academia in Academia Raising Software Standards in Higher Scientific & Engineering Education Copyright ' 2002 ProtoDesign, Inc. Copyright ' 2002 ProtoDesign, Inc. Copyright ' 2002 ProtoDesign, Inc. Copyright ' 2002 ProtoDesign, Inc. All rights reserved. All rights reserved. All rights reserved. All rights reserved.

Using SansGUI in Academia - ProtoDesign, Incprotodesign-inc.com/files/SGeduSho.pdf · • Extending class work to future research • Performance issues: simulation code and GUI

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Using SansGUIUsing SansGUIUsing SansGUIUsing SansGUI® in Academia in Academia in Academia in AcademiaRaising Software Standards in Higher

Scientific & Engineering Education

Copyright © 2002 ProtoDesign, Inc.Copyright © 2002 ProtoDesign, Inc.Copyright © 2002 ProtoDesign, Inc.Copyright © 2002 ProtoDesign, Inc.All rights reserved.All rights reserved.All rights reserved.All rights reserved.

OverviewOverviewOverviewOverview

� Academic Environment

� Software Requirements

� Software Tools

� The SansGUI Solution

� Development and Deployment

� Demonstration - SansGUI in Action

� Configurations and Support

Academic EnvironmentAcademic EnvironmentAcademic EnvironmentAcademic Environment

� Teaching• Exposing students to emerging technologies• Providing interactive learning environments

� Research• Concentrating on research subjects• Employing leading edge software tools

� Educational & Industrial Affiliation• Publicizing and sharing research results

Current ProblemsCurrent ProblemsCurrent ProblemsCurrent Problems

� Primitive User Interfaces• Command-line driven applications• Text-base input and output files

� No Interactive Schematic Editor

� No Simple Mechanism to IntegrateExisting Code with Modern GUI

� No Standard for ProjectSpecifications and Consolidation

Software Requirements � 1/6Software Requirements � 1/6Software Requirements � 1/6Software Requirements � 1/6

� Graphical User Interface (GUI)• Classifying model building blocks• Configuring models with schematic diagrams• Assisting data entry and validation• Using familiar GUI operations• Unifying coding and data accessing interfaces

among instructors, students, and researchers• Extending class work to future research• Performance issues: simulation code and GUI

Software Requirements � 2/6Software Requirements � 2/6Software Requirements � 2/6Software Requirements � 2/6

� Model Semantics• Conveying the original intent of the model

developer to the users• Ensuring integrity of measuring units• Encoding input data range semantics• Generating comments from qualitative

descriptions• Incorporating context-sensitive documentation

Software Requirements � 3/6Software Requirements � 3/6Software Requirements � 3/6Software Requirements � 3/6

� Data from Various Sources• Integrating data filters, pre-processors, and

post-processors• Supporting column-major and row-major data

storage orders of multi-dimensional arrays

� Code from Various Sources• Incorporating existing code and libraries• Integrating with other software packages and

environments

Software Requirements � 4/6Software Requirements � 4/6Software Requirements � 4/6Software Requirements � 4/6

� Model Evolution & Version Control• Cumulating models and simulation results

from years of research and development• Handling model specification changes• Synchronizing simulation code and user data• Sharing or merging software components,

code, and data among projects• Maintaining backward and, even better,

forward compatibility

Software Requirements � 5/6Software Requirements � 5/6Software Requirements � 5/6Software Requirements � 5/6

� Development Environment• Supporting main-stream programming

languages (C/C++, Fortran, Java®, etc.)• Integrating with main-stream software

packages (MATLAB®, MS Office®, etc.)• Providing verbose debugging facilities• Concentrating on underlying logic and

mathematics, not details of syntax or usage• Supporting legacy code integration

Software Requirements � 6/6Software Requirements � 6/6Software Requirements � 6/6Software Requirements � 6/6

� Web-Based Publishing• Constraints on web-based applications

♦ Form based data entry♦ Limited interactivity and data validation♦ Project management issues

• Publication quality of diagrams, charts, andtables

• Consolidation of software documents• On-line and off-line application versions

Academic Software ToolsAcademic Software ToolsAcademic Software ToolsAcademic Software Tools

� Office and Presentation Tools

� Internet Browsing / Authoring Tools

� Database & Data Access Tools

� Mathematical Packages & Libraries

� 3D Geometry & Visualization Tools

� Development Environments

� Domain Specific / Custom Tools

GUI Development � 1/3GUI Development � 1/3GUI Development � 1/3GUI Development � 1/3

� Low-Level API• Microsoft Windows

♦ Win32, MFC, ...

• Unix♦ Xlib / Xt / Motif, Qt, ...

• Java platform♦ Swing, SWT, �

Operating SystemOperating System

Low-level GUI APILow-level GUI API

GUI Class LibraryGUI Class Library

Simulation ProgramSimulation Program

GUI Development � 2/3GUI Development � 2/3GUI Development � 2/3GUI Development � 2/3

� Mid-Level API• Scripting tools

♦ Tcl / Tk, Python, ...

• GUI builders withlayout managers

• GUI components• RAD tools• UML GUI generation

♦ MVC, MVP, ...

Operating SystemOperating System

Low-level GUI APILow-level GUI API

GUI Class LibraryGUI Class Library

Simulation ProgramSimulation Program

ScriptingTools

ScriptingTools

GUIBuilder

GUIBuilder

RADToolsRADTools

UMLToolsUMLTools

GUI Development � 3/3GUI Development � 3/3GUI Development � 3/3GUI Development � 3/3

� High-Level Environment• Separation of GUI and simulator modules• Simple communication protocol• No GUI layout nor coding in development

Operating SystemOperating System

SansGUI ImplementationSansGUI Implementation

SansGUI Modeling andSimulation EnvironmentSansGUI Modeling and

Simulation Environment Simulation ProgramSimulation Program

GUI LayerGUI Layer

The SansGUIThe SansGUIThe SansGUIThe SansGUI® Solution Solution Solution Solution

What is SansGUI ...What is SansGUI ...What is SansGUI ...What is SansGUI ...

� A Software Framework• For developing and deploying simulation

programs without tedious Graphical UserInterface programming

� An Interactive Environment• For building models, entering parameters,

running simulations, monitoring progress,and viewing results

Who are the users ...Who are the users ...Who are the users ...Who are the users ...

� Simulation Developer• Professors / Instructors / Research Associates

Research Scientists / Research Engineers

� Simulation User• Students / Data Analysts / Design Engineers

Anyone who is involved in developing and using computer simulation in

scientific and engineering fields.

SansGUI AbstractionSansGUI AbstractionSansGUI AbstractionSansGUI Abstraction

� SansGUI Object System• Hierarchical class schema definitions• Attribute and behavior inheritance• Component and connection objects

♦ Ports and connectivity definitions

• Reference objects♦ Collections, Matrices, and Tables

• Simulation control objects• User-extensible unit objects

Project ModelsProject ModelsProject ModelsProject Models

� Class Hierarchy � Assembly Hierarchy

ClassClass ObjectObject

TOPTOP

AssemblyAssembly

PartPart

PartPart

PartPart

PartPart

ObjectObject

ObjectObject

ClassClass

ClassClass

Project ModelsProject ModelsProject ModelsProject Models

� Class Hierarchy � Assembly Hierarchy

ClassClass ObjectObject

TOPTOP

AssemblyAssembly

PartPart

PartPart

PartPart

PartPart

ObjectObject

ObjectObject

ClassClass

ClassClass

Model ConfigurationsModel ConfigurationsModel ConfigurationsModel Configurations

TOP Assembly

PartPart

SubassemblySubassembly

PartPart

PartPart

PartPart

Model ConfigurationsModel ConfigurationsModel ConfigurationsModel Configurations

TOP Assembly

PartPart

SubassemblySubassembly

PartPart

PartPart

PartPart

Subassembly

denotes Exported Portdenotes Exported Port

PartPart

PartPart

PartPart PartPart

SansGUI ArchitectureSansGUI ArchitectureSansGUI ArchitectureSansGUI Architecture

� SansGUI Development Environment• Define model building blocks in classes• Specify attributes involved in simulation model• Implement simulator logic and mathematics

� SansGUI Run-Time Environment• Configure model and prepare input data• Run simulation and monitor progress• Analyze simulation results to refine design

Development EnvironmentDevelopment EnvironmentDevelopment EnvironmentDevelopment EnvironmentSansGUI Development EnvironmentSansGUI Development Environment Schema Definition

.SGS FileSchema Definition

.SGS File

SimulationDeveloper

SimulationDeveloper

Object Library.SGO File

Object Library.SGO File

Meta-SchemaMeta-

SchemaObjectSystemObjectSystem

SourceFramework

SourceFramework

VersionControlVersionControl

SchemaCompilerSchemaCompiler

In-Process Source FilesC/C++ or Fortran

In-Process Source FilesC/C++ or Fortran

Development EnvironmentDevelopment EnvironmentDevelopment EnvironmentDevelopment EnvironmentSansGUI Development EnvironmentSansGUI Development Environment Schema Definition

.SGS FileSchema Definition

.SGS File

SimulationDeveloper

SimulationDeveloper

Object Library.SGO File

Object Library.SGO File

Meta-SchemaMeta-

SchemaObjectSystemObjectSystem

SourceFramework

SourceFramework

VersionControlVersionControl

External ProcessSource Files

External ProcessSource Files

In-Process.DLL File

In-Process.DLL File

External Process.EXE File

External Process.EXE File

Other ProgrammingLibraries

Other ProgrammingLibraries

Programming Language - IDEProgramming Language - IDE

SchemaCompilerSchemaCompiler

Text EditorText Editor

In-Process Source FilesC/C++ or Fortran

In-Process Source FilesC/C++ or Fortran

Files for DistributionFiles for Distribution

Development EnvironmentDevelopment EnvironmentDevelopment EnvironmentDevelopment EnvironmentSansGUI Development EnvironmentSansGUI Development Environment Schema Definition

.SGS FileSchema Definition

.SGS File

SimulationDeveloper

SimulationDeveloper

Object Library.SGO File

Object Library.SGO File

Meta-SchemaMeta-

SchemaObjectSystemObjectSystem

SourceFramework

SourceFramework

VersionControlVersionControl

External ProcessSource Files

External ProcessSource Files

In-Process.DLL File

In-Process.DLL File

External Process.EXE File

External Process.EXE File

Other ProgrammingLibraries

Other ProgrammingLibraries

Text EditorText Editor

Help Authoring ToolHelp Authoring Tool

Invocation Script.BAT File (optional)

Invocation Script.BAT File (optional)

On-Line Help.HTM, .HLP, etc.On-Line Help.HTM, .HLP, etc.

Programming Language - IDEProgramming Language - IDE

SchemaCompilerSchemaCompiler

Development FeaturesDevelopment FeaturesDevelopment FeaturesDevelopment Features

� Simulation Program Definition

� Class Schema Creation andMaintenance

� Class Persistence and Evolution

� Unit Object Creation & Maintenance

� SansGUI Source Code Framework

� Interactive Tracing and Debugging

Run-Time EnvironmentRun-Time EnvironmentRun-Time EnvironmentRun-Time Environment

SansGUI Run-Time EnvironmentSansGUI Run-Time Environment

SimulationUser

SimulationUser

Object Library.SGO File

Object Library.SGO File

On-Line Help.HTM, .HLP, etc.On-Line Help.HTM, .HLP, etc.

SansGUI Object SystemSansGUI Object System

Model & Schematic EditorModel & Schematic Editor

Execution ControlExecution Control

Version ControlVersion Control

Result Logger & ViewerResult Logger & Viewer

Project Model.SGP File

Project Model.SGP File

Model File.TXT or .XMLModel File

.TXT or .XML

Run-Time EnvironmentRun-Time EnvironmentRun-Time EnvironmentRun-Time Environment

SansGUI Run-Time EnvironmentSansGUI Run-Time Environment

Software ImplementationSoftware Implementation

SimulationUser

SimulationUser

Object Library.SGO File

Object Library.SGO File

In-Process.DLL File

In-Process.DLL File

External ProcessLocal or Remote

External ProcessLocal or Remote

User OverrideRoutines

User OverrideRoutines

Invocation Script.BAT File

Invocation Script.BAT File

On-Line Help.HTM, .HLP, etc.On-Line Help.HTM, .HLP, etc.

SansGUI Object SystemSansGUI Object System

Model & Schematic EditorModel & Schematic Editor

Execution ControlExecution Control

Version ControlVersion Control

Result Logger & ViewerResult Logger & Viewer

Project Model.SGP File

Project Model.SGP File

Core SimulatorCore Simulator

EditingEditing

ExecutionExecution

EvaluationEvaluation

Model File.TXT or .XMLModel File

.TXT or .XML

SansGUI Run-Time EnvironmentSansGUI Run-Time Environment

Software ImplementationSoftware Implementation

Run-Time EnvironmentRun-Time EnvironmentRun-Time EnvironmentRun-Time Environment

SimulationUser

SimulationUser

Object Library.SGO File

Object Library.SGO File

In-Process.DLL File

In-Process.DLL File

External ProcessLocal or Remote

External ProcessLocal or Remote

User OverrideRoutines

User OverrideRoutines

Database AccessDatabase Access

Data AcquisitionData Acquisition

Invocation Script.BAT File

Invocation Script.BAT File

On-Line Help.HTM, .HLP, etc.On-Line Help.HTM, .HLP, etc.

Hardware-in-the-loopHardware-in-the-loop

SansGUI Object SystemSansGUI Object System

Model & Schematic EditorModel & Schematic Editor

Execution ControlExecution Control

Version ControlVersion Control

Result Logger & ViewerResult Logger & Viewer

Project Model.SGP File

Project Model.SGP File

Custom Pre-ProcessorCustom Pre-Processor

Device ControlDevice Control

Custom Post ProcessorCustom Post Processor

Core SimulatorCore Simulator

Other ProgramsOther Programs

IPC or RPCIPC or RPC

EditingEditing

ExecutionExecution

EvaluationEvaluation

Model File.TXT or .XMLModel File

.TXT or .XML

Run-Time FeaturesRun-Time FeaturesRun-Time FeaturesRun-Time Features

� Object Creation and Maintenance

� Data Entry Assistance and Validation

� Interactive Model Building Features

� Model Data Persistence and Evolution

� Parameter Resolution

� Simulation Control

� Dynamic Charting

DeploymentDeploymentDeploymentDeployment

� Object Library• Default or customized with convenient objects

� Executable Code in .DLL or .EXE

� Invocation Script (Optional)

� On-Line Documentation

� Example Project Models

� Examples on ProtoDesign Web Site

SansGUISansGUISansGUISansGUI® in Action in Action in Action in Action

Supported LanguagesSupported LanguagesSupported LanguagesSupported Languages

� Microsoft Visual C++ 6.0 (SP3) +• Earlier versions may still work

� Compaq Visual Fortran 6.1a +

� DLL Project Creation

� Interactive Code Debugging

� XML Model Data Support

� Class Schema Version Control

Other Language Support / PCOther Language Support / PCOther Language Support / PCOther Language Support / PC

� In-Process Simulation• Can create Win32 DLLs• Can be called from Microsoft Visual C++

♦ Function names (length and case sensitivity)♦ Compatible function argument list

• Can access C data structures with pointers

� External Process Simulation• Can create stand-alone programs

♦ Batch command / Shell script invocation

Licensing SansGUILicensing SansGUILicensing SansGUILicensing SansGUI

� SGpro - Professional Edition• Full featured Development Environment

� SGstu - Student Edition• Development Environment with 10 classes

and 20 attributes per class limitation

� SGrun - Run-time Edition• No Schema Definition access

� SGdemo - Run-time Demo, No Save

Configurations for TeachingConfigurations for TeachingConfigurations for TeachingConfigurations for Teaching

� Classes Requiring Programming• Instructor: Professional Edition• Students create new classes: Student Edition• Students use predefined classes: Run-Time

� Classes without Programming• Instructor: Professional Edition• Students: Run-Time Edition

� Playback Only: Free Demo Edition

Configurations for ResearchConfigurations for ResearchConfigurations for ResearchConfigurations for Research

� Group Research• Laboratory computers: Professional Edition• Group leaders: Professional Edition• Research users: Run-Time Edition

� Individual Research• Professional Edition

� Colleagues and Interested Parties• Run-Time Edition or free Demo Edition

Educational Grants*Educational Grants*Educational Grants*Educational Grants*

� Course Adoptions• Verifiable course information

♦ School, Department, Professor(s)♦ Course Number, Title, Description, Term, Web Link

• One Professional Edition to instructor• Free Evaluation Licenses to students

� Special Projects• Specially arranged with ProtoDesign, Inc.

*Grant terms subject to change without notice.

Thank You !Thank You !Thank You !Thank You !

� Visit Our Web Site• http://protodesign-inc.com• http://sansgui.com

� E-Mail• Information: [email protected]• Sales: [email protected]• Support: [email protected]• Beta Testing: [email protected]