Using SansGUI in Academia - ProtoDesign, Incprotodesign-inc.com/files/SGeduSho.pdf · • Extending...
Transcript of Using SansGUI in Academia - ProtoDesign, Incprotodesign-inc.com/files/SGeduSho.pdf · • Extending...
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
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
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]