Re: Books / Articles on Embedded SW Architecture



"Paul Keinanen" <keinanen@xxxxxx> wrote in message
news:lg6r921pvusobjq2fdgeqoh7o34p1bl12i@xxxxxxxxxx
On Sat, 24 Jun 2006 19:39:40 +0100, "Paul E. Bennett"
<peb@xxxxxxxxxxxxxxxxxx> wrote:

Steve at fivetrees wrote:
One other thing: the word "interaction" keeps getting mentioned. There
should be none - other than those intended, of course. Possibly *the*
most
important part of good design is defining the interfaces between the
"trivial" bits.

Absolutely. The interfaces between the components is of absolute
importance.
I thank you for adding that reminder Steve.

While in principle dividing a complex task into multiple simple tasks
should be the way to solve complex problems, in practice you are
faced with the problem of last minutes changes demanded by the
customer that would require redesigning the high level architecture.

If you are in the ideal position of saying that any change will
require some drastic changes in the system architecture and will delay
the project with x month and will cost you xxx euros, then this path
should be used to create a product that is maintainable even in the
future.

Unfortunately, these options are not always available and some quick
and dirty patches must be done to already fixed architecture.

Hmmm.

I know the point you're making, and I sympathise, but - let me take the
harsh view and say that if an addition requires a rethink of the
decomposition, then there was a problem with the decomposition. Nowadays I
take the view that this is a Good Thing - these kinds of Wrong Models tend
to come back and bite sooner or later. Sooner == better, and most certainly
cheaper.

Having said that, let me add that it's taken me *years* to get to a point
when I'm (mostly) happy with my own work in this regard. It's been quite a
long time now since any last-minute change, or later enhancement, has caused
me to substantially restructure a design. (One of those projects has had
something like 40 major additions in the last 17 years, and is still going
strong. I *did* do a major restructure, mostly to decouple [1] the human
interface further, about 10 years back, and it's held me in good stead
since.) It's down to what CBFalconer said: one learns from one's mistakes
[2].

[1] Now there's a word: "decouple". I put a lot of effort into decoupling
things nowadays. Again it's part of the "avoiding unwanted interactions"
thing. Vital, in my opinion.

[2] As I get older (I'm 50 next birthday), I get more desperate to pass my
hard-won skills on. Hence the book idea. Occasionally I get to do some
mentoring, and I absolutely love it. At the last company I worked for, I
wound up being the elder sage that the young 'uns would come to if they were
stuck. I was honoured. And very pleased to find that I could almost always
help - not by sermonising (as I do here ;)), but by asking awkward
questions... and getting them to think differently. More, please.

Steve
aka Yoda
http://www.fivetrees.com


.



Relevant Pages

  • Re: exposing interfaces
    ... hierarchy (architectural design). ... current system (system architecture). ... > I want to expose some interfaces like _IDTExtensibility2.Can anybody give ... How can I expose interfaces with some functionality ...
    (microsoft.public.win32.programmer.ole)
  • Re: Interfaces define Contracts? what does it mean exaclty..?
    ... Interfaces define contracts of service. ... Interfaces do not define implementation details. ... and classes implement contracts in this design model. ... I just learning the nacks of application designing and architecture and ...
    (microsoft.public.dotnet.framework.aspnet)
  • Re: OT: Binary Search - Should They Know It?
    ... Considering you are having problems it would be advisable to design the app ... that the classes inside the DLL are unlikely to change but are reused ... Interfaces - This holds the interfaces for the data objects in the ... Our calculation engine is a monster. ...
    (microsoft.public.dotnet.languages.csharp)
  • Interface standards (was Re: Dual Port RAM)
    ... instead of hiding complex functions behind simple interfaces, ... "TTL 7400" design mentality. ... Of course, vendors' in-house synthesis tools ... do anything similar on the IP core side. ...
    (comp.arch.fpga)
  • Re: How Our Brains Ignore Unpleasant Facts was: Re: The Reasonable
    ... and independently the interfaces between ... If so then can one attempt to detect certain approaches to said design ... elements, inferred techniques, inferred specifications for certain ... the least with the ongoing work of large aspects of scientific work ...
    (talk.origins)