280 likes | 624 Views
Background. BackgroundDoing AP233-based proof-of-concept converters between UML/SysML, DoDAF/CADM and AP233 using XSLTNeed something more powerful than XSLTTrying to use only free or open-source softwareSeveral years off-and-on efforts to make EXPRESS/STEP available to a widespread communityEagerly awaiting for tools to ease my workloadNASA presentation on ideas around open-source SE toolsSee the next three slides.
E N D
1. Creating an AP233 Systems Engineering Scripting Language in Ruby David Price
8th NASA/ESA PDE Workshop
April 2006
2. Background Background
Doing AP233-based proof-of-concept converters between UML/SysML, DoDAF/CADM and AP233 using XSLT
Need something more powerful than XSLT
Trying to use only free or open-source software
Several years off-and-on efforts to make EXPRESS/STEP available to a widespread community
Eagerly awaiting for tools to ease my workload
NASA presentation on ideas around open-source SE tools
See the next three slides
7. AP233 Scope
8. DoDAF CADM/AP233 Project Purpose
Evaluate feasibility of system architecture data exchange using emerging ISO AP233 Systems Engineering standard
Not a fully validated design effort
Provide a body of work that future efforts can build upon
12. AP233 Systems Engineering On-schedule for AP233 modules to go out for ISO ballot starting in the summer
Committee Draft ballot (July-October 2006)
After ballot completes, workshops are held to address ballot comments
AP233 modules should be published 1Q2007
The complete AP233 Application Protocol that includes Business Use Cases, etc. takes a bit longer
13. AP233 Testing AP233 Development Team is working strategy for critical testing
Includes internal team testing
Includes approaching vendors to participate
AP233 Team developing a “test harness”
Fitting into the “test harness” is now the main focus for the DODAF CADM/AP233 demo work
14. AP233 Test harness
15. Many things are coming together
16. Goals Add to tools available for testing and quick prototyping of AP233
AP233 has very few rules so EXPRESS structure-only tools are OK
Keep it simple, simple, simple for people using the tools
Be available on Windows, Linux, Mac OS (at least)
Simplify introduction of AP233 to non-STEP-literate community
Do more with less effort
17. Sounds good to me From: Should Ruby Be Added to Your Programming Repertoire? By W. Jason Gilmore
100% object-oriented
dynamically typed
devoid of superfluous syntactical requirements such as indentation and semi-colons
replete with libraries for facilitating practically any conceivable task
Ruby (and Rails) mantras
DRY = Don’t Repeat Yourself
Convention over Configuration
18. Details (From Gilmore) Has capabilities expected of full-featured languages
text file processing, string manipulation, networking, exception handling, and language extendability
Supports wide variety of platforms
UNIX flavors, Windows 95/98/NT/Me/2000/XP, and Mac OS X
Web application development opportunities through mod_ruby
Apache module for embedding the Ruby interpreter into the Apache Web server
A database-independent interface similar to Perl's DBI module
DB2, InterBase, mSQL, MySQL, Oracle, PostgreSQL, SQLite, etc.
19. More Details (From Gilmore) Create cross-platform GUI-based applications via projects like wxRuby
Easy package and application management using RubyGems.
RubyGems operates similarly to the inestimably useful Perl CPAN, enabling complete control over packages through a convenient console interface.
Built-in support for Web Services through packages such as RSS and soap.
A hyper-active user community.
See Ruby Application Archive and RubyForge for a sampling of the hundreds of projects
20. From: why's (poignant) guide to ruby
21. Project 1 : EXPRESS-Ruby-XML EXPRESS-as-XML input
Generate Ruby code to read/write XML (Part 28 Edition 2)
Working today
Entity and Multiple inheritance (Ruby uses “modules” for this)
1-D Aggregate of Entity instance, String, Integer, Real
Select types (only through dynamic typing)
Validation not in Ruby code, use the XML Schema
Not included yet
Rename in redeclared attribute
Defined types (except through dynamic typing)
n-D Aggregates
Exact Part 28 E2 DIS XML
22. Example: State definition
23. Generated Ruby modules
24. Generated Ruby Classes
25. Using the API
26. Using the API (2)
27. AP233 XML (simple P28E2)
28. Next steps Project 1: exp2ruby
Support more of EXPRESS
Generate convenience functions (e.g. Get/Set all attributes)
Other backends
Part 21 write should be simple, Part 21 read is harder
RDF or OWL?
There is a Ruby wrapper for Redland RDF API already
Use meta-model of EXPRESS replacing XPath over XML
Project 2: Support for UML/SysML
For example, a SysML API that can read/write XMI 2.1 and AP233 P28 E2 XML
Project 3: EXPRESS to Rails Web Framework integration
Project 4: EXPRESS to C for HDF5
29. Conclusions Ruby is a nice language
Initial hurdle to Ruby is far less than C/C++, Java, eclipse or netBeans
This is one small step for the ideas Steve Jenkins presented last year
Ruby-related technology for AP233, SysML, and other standard and non-standard SE applications has benefits
Eurostep will deliver free AP233 ARM Ruby API in DoD DODAF/CADM/AP233 project
AP233 Working Draft 2 available in a couple of weeks