Re: [BLACKBOX] Questions about inheritance

From: [at]} <Wojtek>
Date: Sun, 13 Mar 2011 12:59:26 -0400

----boundary-LibPST-iamunique-854366610_-_-
Content-type: text/plain

> I am now with CP for some years, but I never had to use OO features.
> Creating clean modules and applying classes to get abstract data
> types was sufficient for my projects in the past.

If it was sufficient till now, it will probably suffice in future. The
point is, that you have conditioned yourself to think in a certain way. It
worked for your project for years. Why do you want to change your way of
thinking, if it worked over the years?

> It's about process control and deals with automatic test equipment.

So it is complex, demanding, and mission-critical. Not a good place to
learn and to exercise. Learning and experimenting is best done with small
projects. The lessons must take time to sink in and to get into the mental
background. After a while the lessons will look obvious. Only then the new
methods can be applied to larger projects.

Working on a new, demanding project and trying to apply new, demanding
approaches at the same time is likely to lead to a disaster.


> The big picture of the technical process to be controlled is always
> the same. But in reality there are some different types of machines,
> because they have different number and type of hardware equipment,
> different types of control algorithms and different types of calls to
> a relational data base for retrieving data about the parts to be
> tested automatically and for storing the results of the tests
> respectively.

The problem with this kind of design is that you will be trying to outline
a system, which has not been developed yet (top-bottom approach). You will
be trying to guess ahead of time the facilities, which you will need
later. In all likelihood, you will guess sort of righ, but not exactly
right. This will lead to iterative work: down the road you will discover,
that initial guesses were not quite righ, and you will have to revisit the
assumptions and rewrite large portions of your software. After two or
three such iterations you will get exhausted.

In my opinion, OO frameworks such as BB itself were never developed this
way. BB was not written on the first attempt. There were predecessors,
such as the Oberon System, Gadgets, Ethos, etc. At some points the
experience from these prototypes was refined in the form of the OO
framework Oberon/F, which then became BlackBox. Therefore, the amount of
top-down guessing was in fact pretty minimal, because most of the design
choices have been tried before.

> For me as a novice in object oriented design this project seems to
> require a small framework which is adaptable to the technical
> hardware at hand. Unfortunately I don't know when to apply which of
> all these interesting OO concepts and how to do this.

My advice is "don't". Stick with what you know. After you achieve a
working system and use it for a while, its patterns will become clear in
your mind. At that point you may choose to apply OO concepts to simplify
your software, which you will then know and understand. The OO rework of a
well understood project will not require the guesswork, which it would
require now, when you are working on a new project.

These remarks come from my own experience. Your experience may be
different, so please take them with the usual grain of salt.

Wojtek


----
To unsubscribe, send a message with body "SIGNOFF BLACKBOX" to LISTSERV{([at]})nowhere.xy----boundary-LibPST-iamunique-854366610_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"
e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzcyBBcmlhbDt9DQp7XGYxXGZtb2Rlcm4gQ291cmllciBOZXc7fQ0Ke1xmMlxmbmlsXGZjaGFy
c2V0MiBTeW1ib2w7fQ0Ke1xmM1xmbW9kZXJuXGZjaGFyc2V0MCBDb3VyaWVyIE5ldzt9fQ0Ke1xj
b2xvcnRibFxyZWQwXGdyZWVuMFxibHVlMDtccmVkMFxncmVlbjBcYmx1ZTI1NTt9DQpcdWMxXHBh
cmRccGxhaW5cZGVmdGFiMzYwIFxmMFxmczIwID4gSSBhbSBub3cgd2l0aCBDUCBmb3Igc29tZSB5
ZWFycywgYnV0IEkgbmV2ZXIgaGFkIHRvIHVzZSBPTyBmZWF0dXJlcy5ccGFyDQo+IENyZWF0aW5n
IGNsZWFuIG1vZHVsZXMgYW5kIGFwcGx5aW5nIGNsYXNzZXMgdG8gZ2V0IGFic3RyYWN0IGRhdGFc
cGFyDQo+IHR5cGVzIHdhcyBzdWZmaWNpZW50IGZvciBteSBwcm9qZWN0cyBpbiB0aGUgcGFzdC5c
cGFyDQpccGFyDQpJZiBpdCB3YXMgc3VmZmljaWVudCB0aWxsIG5vdywgaXQgd2lsbCBwcm9iYWJs
eSBzdWZmaWNlIGluIGZ1dHVyZS4gVGhlXHBhcg0KcG9pbnQgaXMsIHRoYXQgeW91IGhhdmUgY29u
ZGl0aW9uZWQgeW91cnNlbGYgdG8gdGhpbmsgaW4gYSBjZXJ0YWluIHdheS4gSXRccGFyDQp3b3Jr
ZWQgZm9yIHlvdXIgcHJvamVjdCBmb3IgeWVhcnMuIFdoeSBkbyB5b3Ugd2FudCB0byBjaGFuZ2Ug
eW91ciB3YXkgb2ZccGFyDQp0aGlua2luZywgaWYgaXQgd29ya2VkIG92ZXIgdGhlIHllYXJzP1xw
YXINClxwYXINCj4gSXQncyBhYm91dCBwcm9jZXNzIGNvbnRyb2wgYW5kIGRlYWxzIHdpdGggYXV0
b21hdGljIHRlc3QgZXF1aXBtZW50LlxwYXINClxwYXINClNvIGl0IGlzIGNvbXBsZXgsIGRlbWFu
ZGluZywgYW5kIG1pc3Npb24tY3JpdGljYWwuIE5vdCBhIGdvb2QgcGxhY2UgdG9ccGFyDQpsZWFy
biBhbmQgdG8gZXhlcmNpc2UuIExlYXJuaW5nIGFuZCBleHBlcmltZW50aW5nIGlzIGJlc3QgZG9u
ZSB3aXRoIHNtYWxsXHBhcg0KcHJvamVjdHMuIFRoZSBsZXNzb25zIG11c3QgdGFrZSB0aW1lIHRv
IHNpbmsgaW4gYW5kIHRvIGdldCBpbnRvIHRoZSBtZW50YWxccGFyDQpiYWNrZ3JvdW5kLiBBZnRl
ciBhIHdoaWxlIHRoZSBsZXNzb25zIHdpbGwgbG9vayBvYnZpb3VzLiBPbmx5IHRoZW4gdGhlIG5l
d1xwYXINCm1ldGhvZHMgY2FuIGJlIGFwcGxpZWQgdG8gbGFyZ2VyIHByb2plY3RzLlxwYXINClxw
YXINCldvcmtpbmcgb24gYSBuZXcsIGRlbWFuZGluZyBwcm9qZWN0IGFuZCB0cnlpbmcgdG8gYXBw
bHkgbmV3LCBkZW1hbmRpbmdccGFyDQphcHByb2FjaGVzIGF0IHRoZSBzYW1lIHRpbWUgaXMgbGlr
ZWx5IHRvIGxlYWQgdG8gYSBkaXNhc3Rlci5ccGFyDQpccGFyDQpccGFyDQo+IFRoZSBiaWcgcGlj
dHVyZSBvZiB0aGUgdGVjaG5pY2FsIHByb2Nlc3MgdG8gYmUgY29udHJvbGxlZCBpcyBhbHdheXNc
cGFyDQo+IHRoZSBzYW1lLiBCdXQgaW4gcmVhbGl0eSB0aGVyZSBhcmUgc29tZSBkaWZmZXJlbnQg
dHlwZXMgb2YgbWFjaGluZXMsXHBhcg0KPiBiZWNhdXNlIHRoZXkgaGF2ZSBkaWZmZXJlbnQgbnVt
YmVyIGFuZCB0eXBlIG9mIGhhcmR3YXJlIGVxdWlwbWVudCxccGFyDQo+IGRpZmZlcmVudCB0eXBl
cyBvZiBjb250cm9sIGFsZ29yaXRobXMgYW5kIGRpZmZlcmVudCB0eXBlcyBvZiBjYWxscyB0b1xw
YXINCj4gYSByZWxhdGlvbmFsIGRhdGEgYmFzZSBmb3IgcmV0cmlldmluZyBkYXRhIGFib3V0IHRo
ZSBwYXJ0cyB0byBiZVxwYXINCj4gdGVzdGVkIGF1dG9tYXRpY2FsbHkgYW5kIGZvciBzdG9yaW5n
IHRoZSByZXN1bHRzIG9mIHRoZSB0ZXN0c1xwYXINCj4gcmVzcGVjdGl2ZWx5LlxwYXINClxwYXIN
ClRoZSBwcm9ibGVtIHdpdGggdGhpcyBraW5kIG9mIGRlc2lnbiBpcyB0aGF0IHlvdSB3aWxsIGJl
IHRyeWluZyB0byBvdXRsaW5lXHBhcg0KYSBzeXN0ZW0sIHdoaWNoIGhhcyBub3QgYmVlbiBkZXZl
bG9wZWQgeWV0ICh0b3AtYm90dG9tIGFwcHJvYWNoKS4gWW91IHdpbGxccGFyDQpiZSB0cnlpbmcg
dG8gZ3Vlc3MgYWhlYWQgb2YgdGltZSB0aGUgZmFjaWxpdGllcywgd2hpY2ggeW91IHdpbGwgbmVl
ZFxwYXINCmxhdGVyLiBJbiBhbGwgbGlrZWxpaG9vZCwgeW91IHdpbGwgZ3Vlc3Mgc29ydCBvZiBy
aWdoLCBidXQgbm90IGV4YWN0bHlccGFyDQpyaWdodC4gVGhpcyB3aWxsIGxlYWQgdG8gaXRlcmF0
aXZlIHdvcms6IGRvd24gdGhlIHJvYWQgeW91IHdpbGwgZGlzY292ZXIsXHBhcg0KdGhhdCBpbml0
aWFsIGd1ZXNzZXMgd2VyZSBub3QgcXVpdGUgcmlnaCwgYW5kIHlvdSB3aWxsIGhhdmUgdG8gcmV2
aXNpdCB0aGVccGFyDQphc3N1bXB0aW9ucyBhbmQgcmV3cml0ZSBsYXJnZSBwb3J0aW9ucyBvZiB5
b3VyIHNvZnR3YXJlLiBBZnRlciB0d28gb3JccGFyDQp0aHJlZSBzdWNoIGl0ZXJhdGlvbnMgeW91
IHdpbGwgZ2V0IGV4aGF1c3RlZC5ccGFyDQpccGFyDQpJbiBteSBvcGluaW9uLCBPTyBmcmFtZXdv
cmtzIHN1Y2ggYXMgQkIgaXRzZWxmIHdlcmUgbmV2ZXIgZGV2ZWxvcGVkIHRoaXNccGFyDQp3YXku
IEJCIHdhcyBub3Qgd3JpdHRlbiBvbiB0aGUgZmlyc3QgYXR0ZW1wdC4gVGhlcmUgd2VyZSBwcmVk
ZWNlc3NvcnMsXHBhcg0Kc3VjaCBhcyB0aGUgT2Jlcm9uIFN5c3RlbSwgR2FkZ2V0cywgRXRob3Ms
IGV0Yy4gQXQgc29tZSBwb2ludHMgdGhlXHBhcg0KZXhwZXJpZW5jZSBmcm9tIHRoZXNlIHByb3Rv
dHlwZXMgd2FzIHJlZmluZWQgaW4gdGhlIGZvcm0gb2YgdGhlIE9PXHBhcg0KZnJhbWV3b3JrIE9i
ZXJvbi9GLCB3aGljaCB0aGVuIGJlY2FtZSBCbGFja0JveC4gVGhlcmVmb3JlLCB0aGUgYW1vdW50
IG9mXHBhcg0KdG9wLWRvd24gZ3Vlc3Npbmcgd2FzIGluIGZhY3QgcHJldHR5IG1pbmltYWwsIGJl
Y2F1c2UgbW9zdCBvZiB0aGUgZGVzaWduXHBhcg0KY2hvaWNlcyBoYXZlIGJlZW4gdHJpZWQgYmVm
b3JlLlxwYXINClxwYXINCj4gRm9yIG1lIGFzIGEgbm92aWNlIGluIG9iamVjdCBvcmllbnRlZCBk
ZXNpZ24gdGhpcyBwcm9qZWN0IHNlZW1zIHRvXHBhcg0KPiByZXF1aXJlIGEgc21hbGwgZnJhbWV3
b3JrIHdoaWNoIGlzIGFkYXB0YWJsZSB0byB0aGUgdGVjaG5pY2FsXHBhcg0KPiBoYXJkd2FyZSBh
dCBoYW5kLiBVbmZvcnR1bmF0ZWx5IEkgZG9uJ3Qga25vdyB3aGVuIHRvIGFwcGx5IHdoaWNoIG9m
XHBhcg0KPiBhbGwgdGhlc2UgaW50ZXJlc3RpbmcgT08gY29uY2VwdHMgYW5kIGhvdyB0byBkbyB0
aGlzLlxwYXINClxwYXINCk15IGFkdmljZSBpcyAiZG9uJ3QiLiBTdGljayB3aXRoIHdoYXQgeW91
IGtub3cuIEFmdGVyIHlvdSBhY2hpZXZlIGFccGFyDQp3b3JraW5nIHN5c3RlbSBhbmQgdXNlIGl0
IGZvciBhIHdoaWxlLCBpdHMgcGF0dGVybnMgd2lsbCBiZWNvbWUgY2xlYXIgaW5ccGFyDQp5b3Vy
IG1pbmQuIEF0IHRoYXQgcG9pbnQgeW91IG1heSBjaG9vc2UgdG8gYXBwbHkgT08gY29uY2VwdHMg
dG8gc2ltcGxpZnlccGFyDQp5b3VyIHNvZnR3YXJlLCB3aGljaCB5b3Ugd2lsbCB0aGVuIGtub3cg
YW5kIHVuZGVyc3RhbmQuIFRoZSBPTyByZXdvcmsgb2YgYVxwYXINCndlbGwgdW5kZXJzdG9vZCBw
cm9qZWN0IHdpbGwgbm90IHJlcXVpcmUgdGhlIGd1ZXNzd29yaywgd2hpY2ggaXQgd291bGRccGFy
DQpyZXF1aXJlIG5vdywgd2hlbiB5b3UgYXJlIHdvcmtpbmcgb24gYSBuZXcgcHJvamVjdC5ccGFy
DQpccGFyDQpUaGVzZSByZW1hcmtzIGNvbWUgZnJvbSBteSBvd24gZXhwZXJpZW5jZS4gWW91ciBl
eHBlcmllbmNlIG1heSBiZVxwYXINCmRpZmZlcmVudCwgc28gcGxlYXNlIHRha2UgdGhlbSB3aXRo
IHRoZSB1c3VhbCBncmFpbiBvZiBzYWx0LlxwYXINClxwYXINCldvanRla1xwYXINClxwYXINClxw
YXINCi0tLS1ccGFyDQpUbyB1bnN1YnNjcmliZSwgc2VuZCBhIG1lc3NhZ2Ugd2l0aCBib2R5ICJT
SUdOT0ZGIEJMQUNLQk9YIiB0byBMSVNUU0VSVkBMSVNUUy5PQkVST04uQ0hccGFyDQp9
----boundary-LibPST-iamunique-854366610_-_---
Received on Sun Mar 13 2011 - 17:59:26 UTC

This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:30:17 UTC