Keep Informed

Reviews

"As a programmer from 30 years ago, I couldn’t quite get a handle on LSL structure and syntax. I saw MOAB advertised and grabbed it. ... MOAB is truly brilliant in how it works, and the ease of use. Antonius is a nice fellow and will always answer any queries you may have. ...The price is great value for what you get, you get more than what you see. "

"...I got this about a month ago, has some quirks felt like a noob not understanding it, but I kept at it and it's an awesome tool. ... this is really good, it's fun and I'm always learning. 5 stars is a must. Keep up the good work Antonius"

"Felt like a newbie for a few days. I can script by hand but this just makes it so much easier. Very nice work Antonius."

"I have been in SL for quite a few years now and my main interest has been Building. I have dabbled in scripting but up until now I have found it quite a chore ... Creating scripts with this application is a little like building. You put the blocks together and if you are lucky it all looks good and works. ... As far as price is concerned I feel its worth much more than it is sold for. It must have taken ages to create and I take my hat off to Antonius. ... Anyway, to sum it up. Well worth the money."

"Damn I wish this had been around when I started scripting all those years ago! This thing is just, to be blunt, bloody brilliant. ... Worth every L$ in my opinion. New to scripting or even a professional scripter, this tool is just what we have been waiting for."

"I love this tool. MiceOnABeam is awesome. I have been trying hard to learn scripting and having a hard time. Then I found this... The best 3000L I ever spent. I haven't stopped using it since I got it... Making script after script just to see how it works."

More Reviews...

« MiceOnABeam Version 0.1.3A Released | Main | Modeling Script Communications »
Sunday
Nov292009

Slice 'n Dice

Here's the latest on the upcoming MiceOnABeam Release v0.1.3A.

Musings on Methodologies

The MiceOnABeam modeling tool has been designed with an iterative software development strategy in mind. Iterative development has been around for many years and over more recent years, several good methodologies of this type have been developed (e.g., Agile Software Development, Extreme Programming). Typically if one is working as part of a large project, a more heavy-weight solution is chosen for the development team. For a very small group consisting of three or less developers (probably typical for SL), the much closer communication among team members provides the flexibility to adapt these development methods to an even more informal style; yet still retain much of the method's benefits.

For me, a development strategy for such smaller projects (such as used developing MiceOnABeam), consists simply of first developing a requirements specification for what you're trying to do; i.e., the Feature Spec. A rough design framework must then be worked out (to support the Feature Spec.), which typically consists of structural elements and protocols together with main data structures, objects and their relationships. This framework can be specified using a variety of techniques (such as Use Cases) most of which can be found in the UML specification.

At this point, a cycle of iterative software development is started, consisting of a bit of design followed by implementation and testing. This cycle is then repeated with the next feature unit and continues until a sufficient feature set is developed whereby the product can start being released. Initially, releases are done within a trial environment leading from an early limited-availability alpha version through a wider-release beta to a general release. A key point is that at every point between iterations, you should have a working product. Testing always consists of testing the incremental feature(s) within the context of the whole system and ensuring that the previously developed system parts continue to work properly.

The benefits of such an approach are extensive and may include more robust software, features that are better tuned to customer needs (through early trials) and greater flexibility in issuing releases; as releases can more easily be based on an earlier iteration therefore leaving out problematic features.

Cut/Copy/Paste

One of the demands that an iterative software development strategy makes upon a modeling tool is the ability to "slice and dice" model components in a variety of ways to accommodate the evolving nature of the design. The most basic of these is Cut/Copy/Paste. Nothing to crow about of course, but a non-trivial exercise nonetheless for semantic-based graphical models such as MiceOnABeam. Which is all to say that in Release v0.1.3A, a group of selected modeling components can now be cut, copied and pasted within the same or different model.

Aggregate / Decompose

A key element of modeling scripts within MiceOnABeam is the ability to create multiple sub-states contained within any given state to create hierarchical states. This Composite State can then serve as a higher-level abstraction that hides away more detailed behavior. Typically, a designer will start by laying out the high-level view of the script's behavior and then add in additional decompositional detail as the design progresses.

Life however is rarely that linear in practice; particularly in an iterative development environment, the ability to come at a design from multiple directions is essential. To that end Release v0.1.3A now supports the Aggregate operation, whereby a group of selected components can be pushed down a level, to become contained within a newly-created Composite State.

The reverse of this operation is called Decompose, whereby the contained components of a Composite State are removed and brought up a level within the state hierarchy and the (former) Composite State is then removed. Very handy!

Component Library

A sister strategy to iterative development is the use of reusable components to leverage past development. In the small, some reuse can be achieved on the language level via functions or classes and methods. In the large, whole frameworks have been developed (such as .NET among many others) which have greatly facilitated software development.

The key is that within any chosen software paradigm, the ability to reuse components is essential. Release v0.1.3A now provides a simple directory-based component library, where essentially snippets of script models can be saved to serve as templates or even design patterns and later dragged from the Component Library browser and copied into other models. In this case they can be further refined and manipulated, including using the new capabilities described above. In the future, some version of inheritance between model components will also hopefully be provided.

- - -

Over the next couple of weeks, Release v0.1.3A will continue to undergo testing, targeting a mid-December release.

If you're interested in joining the trial, see:  Join the Trial.

Antonius

Reader Comments

There are no comments for this journal entry. To create a new comment, use the form below.

PostPost a New Comment

Enter your information below to add a new comment.
Author Email (optional):
Author URL (optional):
Post:
 
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>