Search the web
Sign In
New User? Sign Up
AgileEmbedded · Agile Embedded
? Already a member? Sign in to Yahoo!

Yahoo! Groups Tips

Did you know...
Real people. Real stories. See how Yahoo! Groups impacts members worldwide.

Best of Y! Groups

   Check them out and nominate your group.
Having problems with message search? Fill out this form to ensure your group is one of the first to be migrated to the new message search system.

Messages

  Messages Help
Advanced
Understanding Model-Conductor-Hardware pattern   Message List  
Reply | Forward Message #138 of 464 |
Re: [AgileEmbedded] Re:Understanding Model-Conductor-Hardware pattern

Michael Karlesky wrote:

> So, Model-View-Presenter translates to 'Business Logic'-'GUI
> Widgets'-'GUI Logic'. Separating business logic and presentation
> logic makes for cleaner, more flexible design and good testing.

That makes sense.

> We've found that in Agile fashion, stories map very, very well to
> Presenters. A customer usually talks about their actions in terms of
> a user interface.

I can understand that benefit to creating a Presenter in MVP.

> So, to answer your central question, the value of the Conductor in
> Model-Conductor-Hardware is that it allows the hardware control logic
> to be segregated from the business logic.

So do two separate modules, business and hardware.

> By testing the Conductor,
> hardware conditions and event handling (interrupts, etc.) can be
> tested apart from the data handling and number crunching logic of the
> Model.

So do two modules, with a test driver for each.

> Let me give you an example. Imagine an embedded system that processes
> temperature. The Hardware layer wraps the temperature sensor and the
> timer that triggers temperature reading (the wrapping is to make unit
> testing possible in the first place, of course). The Conductor
> handles timer events and asks the hardware for raw temperature
> values.

What I can imagine from your and Mr. Grenning's examples is that the two
interfaces, the MC and CH interfaces, are chosen such that
1. The MC interface is in terms of the natural core logic units and concepts,
somewhat independent of the particular hardware interface.
2. The CH interface is closely aligned to the particular hardware interface,
keeping the H layer thin.

With that scheme, the C layer can translate units (as suggested in Mr.
Grenning's
message), do hardware dependent sequencing, like your example of taking a
reading
when the timer expires, and probably isolating the core logic from at the lower
levels of timing service. One of the keys to that type of mapping, I think,
would
be determining the proper division between the core logic and the conductor,
since
it doesn't seem as obvious as the division between the model and the presenter
in
the MVP pattern: should input averaging be done in the C or M layer, for
example.

Am I getting warm?

As a suggestion to presentation, it helps me to see guidelines for drawing the
borders. Specifying an interface at some natural or logical level seems to me
to
be a key here. The example in the paper I read basically had a pass-through
wrapper for the conductor, as I recall, so it wasn't obvious what the benefit of
such a layer would be. I think a more complex example, showing the separation
of
the different abstractions at the two interfaces (and corresponding conductor
processing) would help me, as well as potentially others.

Thanks for the detailed response.

Thad



Fri Jan 12, 2007 2:20 am

thadsmith3
Offline Offline
Send Email Send Email

Forward
Message #138 of 464 |
Expand Messages Author Sort by Date

I just joined this group after seeing a message on comp.software-eng by Mike Karlesky. I followed some links he provided and found an interesting article,...
Thad Smith
thadsmith3
Offline Send Email
Jan 10, 2007
6:22 am

Thad, I'll try to answer your questions as well as I can. We're pretty excited that there's some discussion starting on this topic. Pardon the length of what...
Michael Karlesky
mkarlesky
Offline Send Email
Jan 11, 2007
4:11 pm

... I think the something (Hardware or Conductor) might want to hide the hardware a little more by normalizing the temperature. so the model deals with...
James Grenning
jwgrenning
Offline Send Email
Jan 11, 2007
5:14 pm

... The intent of the MHC pattern is to allow for maximum automated testability; it does this by decoupling hardware from code. In MVP the same thing is...
mkarlesky
Offline Send Email
Jan 12, 2007
3:50 am

I like the comparison of MHC to MVP and have found that analogy useful before. I agree that you want a very thin layer covering the hardware. I also think...
James Grenning
jwgrenning
Offline Send Email
Jan 12, 2007
4:55 am

... from current website: » Unity – embedded unit test framework for C (released 2008) http://sourceforge.net/projects/embunity/ Doesn't seem to have any...
marktxx
Offline Send Email
Apr 27, 2008
6:51 pm

... » Unity – embedded unit test framework for C (released 2008) http://sourceforge.net/projects/embunity/ Follow the link above and select the 'Code' menu...
Greg Williams
willi297
Offline Send Email
Apr 28, 2008
3:36 am

... That makes sense. ... I can understand that benefit to creating a Presenter in MVP. ... So do two separate modules, business and hardware. ... So do two...
Thad Smith
thadsmith3
Offline Send Email
Jan 12, 2007
2:22 am

... logic ... I think I understand what you mean when you say two separate modules, but perhaps I don't. We think the value of three modules (Model, Conductor,...
mkarlesky
Offline Send Email
Jan 13, 2007
12:48 am

... A thin hardware interface layer, the same, I think, as you use for the H layer, plus the rest in the business layer / application logic. ... I understand...
Thad Smith
thadsmith3
Offline Send Email
Jan 13, 2007
6:47 pm

... the ... understand ... Yes. This is the case. Separating M and C makes things easier to test. The separation ensures that there's no coupling between the...
mkarlesky
Offline Send Email
Jan 21, 2007
3:12 am

In AgileEmbedded@yahoogroups.com <mailto:AgileEmbedded%40yahoogroups.com>, James Grenning <grenning@...> ... The purpose of the hardware layer is to provide...
Rick
rick_clements
Offline Send Email
Jan 13, 2007
8:06 pm

... board.) ... Rick, what you're describing is what we would call unit tests, system tests, and acceptance tests. The MCH pattern makes it possible to unit ...
mkarlesky
Offline Send Email
Jan 21, 2007
3:53 am
Advanced

Copyright © 2009 Yahoo! Inc. All rights reserved.
Privacy Policy - Terms of Service - Guidelines - Help