473,508 Members | 2,412 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

(macro) recorder for service requests in a model-view-controller architecture

We are in the process of refactoring our GUI-based test application
for radio equipment and are rewriting a significant part in Python.
The new architecture will substantially be based on the
model-view-controller pattern, as follows:
User Input
|
v
+-------------+ service request service request +-------------+
| aController +----------------+ +----------------+ aTestScript |
+-------------+ | | +-------------+
v v
+--------+ update +------------------+
| aView |<------------+ aModelObject |
+--------+ +------------------+
^
|
v
test equipment
In interactive mode, the user generates stimuli for and performs
measurements on the devices under test via the GUI, using controller
objects. The controller objects send service request to model objects
where the actual work is performed. Changes in the (data of) model
objects are visualized by view objects. So far nothing special ;-)

In order to automate test sequences, the user can also write test
scripts (in Python), which send similar requests to the model objects
(which are also written in Python). This should be made as simple as
possible, as the users are not software developers. For instance, the
user should normally not have to worry about the creation of the model
objects ? these are typically created (in the user's global namespace)
at initialization time (based on configuration files) or interactively
using factories (which are also model objects).

In addition, we have the requirement to record the service requests
resulting from user input in interactive mode, in order to 'replay'
these later - in other words a kind of macro recorder. The recording
should be in the form of a Python script, which could be edited before
its execution. It is important to record the service requests and not
the user's interaction with controller objects. Naturally only the
requests originating from controller objects should be intercepted and
recorded.

For the recording mechanism, we have two very different ideas:
1. The controller objects issue the requests as texts strings,
which are eval'ed to perform the actual service request
invocation. These texts could then be intercepted and
recorded.
2. Using an interceptor (see thread 'Python interceptor package'
of 2004-06-16) to intercept the method invocations of model
objects.
The interceptor then obtains the name of the object from the
user's global namespace (see thread 'Import into specified
namespace' of 2004-09-08), analyses the call parameters and
reconstructs a textual representation of the invocation
(before delegating the invocation to the actual method).

Both approaches have advantages and drawbacks, and we probably don't
see all implications as yet.

Does anyone have experience with such mechanisms, or could point me to
relevant literature or (even better) to open source projects employing
such mechanisms (preferably in Python)?

Thanks in advance
Fritz
Jul 18 '05 #1
0 1497

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
396
by: vince | last post by:
Couldn't find a better place to post the question, feel free to direct me to a better place... Needing to automate our application testing using a keystroke/mouseclick recorder for playing back...
1
1195
by: Andrew Wied | last post by:
Hello I am writing a macro in Visual Studio .Net 2003, and I was wondering if it is possible for a macro to access properties of objects that are selected. For instance, assume I have the following...
3
1368
by: Alex Stevens | last post by:
Hi All, I was hoping that someone could put me in the right direction with a utility I'm trying to write for myself. I would like to have a search which would find a string anywhere in my...
5
4665
by: Mad Scientist Jr | last post by:
I'm trying to record a voice memo on a Pocket PC (2000) from VB.NET (smart device application from vs.net 2003). Tom Shelton did an initial conversion to VB.NET which I am trying to run, but am...
0
1922
by: Emma Gumbdough | last post by:
Okay we have here a VB.NET version of the .net compact framework voice recorder sample that uses open net CF c# version at: http://www.opennetcf.org/forums/topic.asp?TOPIC_ID=79 THIS CODE...
3
1717
by: Hans Merkl | last post by:
Hi, I am helping to build a web app that's pretty much a wrapper around a web service. The question now is how to store the handle of the web service object between requests. My client is using...
1
3663
by: Lee Greco | last post by:
I'm looking for some advice on how to proceed. Here's the scenario: I've got to develop a high availability VB.Net web service that basically acts as a middle man between the web service...
2
1608
by: ilyas | last post by:
Hi all I have a web service that I have written. It is written in C# I want to use this web service from a browser, but my users all have different browsers so its important that the code to...
0
1056
by: larsliden | last post by:
Anyone have an idea how to write a Macro for attaching to a process in Visual Studio? The Macro recorder doesn't work and I haven't been able to build one by hand. Thanks for your thoughts!
0
921
by: theonlydavewilliams | last post by:
Hello. I'm facing a bit of an annoying indecision regarding the design of a particular component of my solution. Perhaps there's someone who can offer some experience/creative insight into it?...
0
7233
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
7135
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
7342
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
7410
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
1
7067
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
5650
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
4729
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and...
0
3215
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The...
0
440
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.