Re: Something about ACTIVE OBJECT pattern




"Robert C. Martin" <unclebob@xxxxxxxxxxxxxxxx> wrote in message
news:ved4715tm45vqe1bp215pt1ofjrpsihtao@xxxxxxxxxx
> On Fri, 29 Apr 2005 00:26:03 GMT, <adaworks@xxxxxxxxxxxxx> wrote:
>
> Richard, just a quibble. TDD is a specification technique, not a
> verification technique. The idea is to specify the behavior of your
> code with tests. If the tests pass, it means that the specified
> behavior has been achieved.
>
Robert,

All good points. Important point. I am having trouble, lately, with
people who want to use TDD for "proof of correctness," and I am
overreacting, I suppose.

You and I both realize that designing with active objects is not easy.
There are more things that can go wrong than even the experienced
designer can anticipate. It is amazing the new problems we sometimes
discover when doing this kind of thing. Unfortunately, even with our
best design practices, our most intensive testing, and our multiple-eyeball
code inspections, we still get these persnickety little unexpected
behaviors.

Sometimes, when teaching software requirements and software design,
I introduce the students to Langton's Ant. There are programs that
run the Langton's Any algorithm that one can download. For Langton's
Ant, the entire universe is fully specified. Yet we cannot predict, in
advance, what will happen, given even the slightest change in the
environment of the Ant.

As we increase complexity, we are in even greater trouble.

The solution? There are a few things we can sometimes do.
One approach, not the only one, is controls. With active
objects we are required to build in run-time controls that
keep the system as stable as possible based on a feedback
loop(s) that acts as additional input to the control modules.
Even with this additional level of control, it is still difficult to
consistently get it absolutely right the first, second, or third time.

I guess what I am saying is, when designing with active objects,
one needs to understand that the context, the environment, the
mathematics, and the technical demands are such that the
developer needs to avoid oversimplifying the challenges.

I know you already know this, Robert. I just want to emphasize
the point for those who think that, by reading a book on the
subject, they are ready to start doing it. The apprenticeship
is long, hard, sometimes discouraging, but eventually rewarding.

Richard Riehle



.



Relevant Pages

  • Re: Reflection and aspx pages
    ... I am designing a system where we can dyanamically create forms and link them ... xml config files which we use to determine which property is associated with ... Some of the way I was thinking of doing it, was to bind groups of controls ... Regards, Chris. ...
    (microsoft.public.dotnet.framework.aspnet)
  • Re: Is there a way to either disable or hide tab pages??
    ... James, ... I have copied the very useful code from the dotnetrix.co.uk ... with their original controls still on them. ... > After designing your TabPages, with all the controls on each one ( ...
    (microsoft.public.dotnet.languages.vb)
  • Re: Hurricane Bertha
    ... hinted that I had used this, that and the other technique but without ... seemed to work," not "I built a 1Mbps FSK demodulator, designing the loop ... The main problem with being humble on resumes is that yours will often never ... As the Linux guys like to point out, ...
    (sci.electronics.design)
  • A question of design
    ... Consider one is designing a windows ... the various sets of controls and hides the logic of the processing from the ... intercept and pass-off events to the various objects encapsulating the logic ... have the controls encapsulated in the processing classes? ...
    (microsoft.public.dotnet.languages.vb)
  • Re: This newsgroup should be cancelled
    ... It has been effectively hijacked by a fool who monopolizes the posts ... and controls all of the readers like puppets through the technique of ... antagonism. ...
    (rec.music.makers.trumpet)