Re: [BLACKBOX] Modeling software

From: [at]} <Bob>
Date: Sat, 17 Sep 2011 22:57:12 +0100

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

> Every now and then I want to depict graphically the structure of my
> actual toy program in order to keep an overview. There exist several
> relations between parts of programs (module import, object inheritance,

> procedure call hierarchy and some more) and there exist large
> solutions:
> UML, SysML and probably some more (which I don't know).
>
> After a closer look at UML and SysML I began to doubt whether it is
> worth to learn such a complicated system. After all I don't want it as
> a
> base for a large software project with huge groups of developers, but
> only for a survey of relatively small programs (10-20 modules) in an
> advanced development state.
>
> Any thoughts? What do you use?
> --
> Frank Hrebabetzky +55 / 48 / 3235 1106
> Florianopolis, Brazil

there are numerous types of graph which people have used over the years to
design different types of program. "Software Design" by David Budgen gives
an excellent overview.

When I was a programmer I used a technique called JSP - Jackson Structured
Programming - which is a method of describing the sequence of inputs and
outputs, and combining them to produce a program structure. The graphical
technique uses decorated boxes and lines to show sequence, selection and
iteration, and is equivalent to EBNF.
<http://www.jacksonworkbench.co.uk/stevefergspages/jackson_methods/index.htm
l>

An equivalent graph that is better than Jackson diagrams for event-driven
programs is the statechart. Harel's original paper is a good source for
learning about them.

Statecharts are also excellent for designing the behaviour of user
interfaces.

For depicting module relationships I find dependency graphs very useful.

Inheritance is essentially the same thing as module dependency and for most
purposes a dependency graph is suitable. When I'm sketching ideas I tend to
use Venn diagrams. I don't usually do class diagrams unless someone's
holding a loaded gun at my head, but use the crow's foot notation instead.
If nesting the boxes becomes too messy I separate them and use an arrow to
show inheritance.

All of these things I sketch by hand first, then use Visio for the formal
documentation. I've found very few CASE tools, eg Rational Rose, to be
useful.

Bob


----
To unsubscribe, send a message with body "SIGNOFF BLACKBOX" to LISTSERV{([at]})nowhere.xy----boundary-LibPST-iamunique-1389234619_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"
e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzcyBBcmlhbDt9DQp7XGYxXGZtb2Rlcm4gQ291cmllciBOZXc7fQ0Ke1xmMlxmbmlsXGZjaGFy
c2V0MiBTeW1ib2w7fQ0Ke1xmM1xmbW9kZXJuXGZjaGFyc2V0MCBDb3VyaWVyIE5ldzt9fQ0Ke1xj
b2xvcnRibFxyZWQwXGdyZWVuMFxibHVlMDtccmVkMFxncmVlbjBcYmx1ZTI1NTt9DQpcdWMxXHBh
cmRccGxhaW5cZGVmdGFiMzYwIFxmMFxmczIwID4gRXZlcnkgbm93IGFuZCB0aGVuIEkgd2FudCB0
byBkZXBpY3QgZ3JhcGhpY2FsbHkgdGhlIHN0cnVjdHVyZSBvZiBteVxwYXINCj4gYWN0dWFsIHRv
eSBwcm9ncmFtIGluIG9yZGVyIHRvIGtlZXAgYW4gb3ZlcnZpZXcuIFRoZXJlIGV4aXN0IHNldmVy
YWxccGFyDQo+IHJlbGF0aW9ucyBiZXR3ZWVuIHBhcnRzIG9mIHByb2dyYW1zIChtb2R1bGUgaW1w
b3J0LCBvYmplY3QgaW5oZXJpdGFuY2UsXHBhcg0KPiBwcm9jZWR1cmUgY2FsbCBoaWVyYXJjaHkg
YW5kIHNvbWUgbW9yZSkgYW5kIHRoZXJlIGV4aXN0IGxhcmdlXHBhcg0KPiBzb2x1dGlvbnM6XHBh
cg0KPiBVTUwsIFN5c01MIGFuZCBwcm9iYWJseSBzb21lIG1vcmUgKHdoaWNoIEkgZG9uJ3Qga25v
dykuXHBhcg0KPiBccGFyDQo+IEFmdGVyIGEgY2xvc2VyIGxvb2sgYXQgVU1MIGFuZCBTeXNNTCBJ
IGJlZ2FuIHRvIGRvdWJ0IHdoZXRoZXIgaXQgaXNccGFyDQo+IHdvcnRoIHRvIGxlYXJuIHN1Y2gg
YSBjb21wbGljYXRlZCBzeXN0ZW0uIEFmdGVyIGFsbCBJIGRvbid0IHdhbnQgaXQgYXNccGFyDQo+
IGFccGFyDQo+IGJhc2UgZm9yIGEgbGFyZ2Ugc29mdHdhcmUgcHJvamVjdCB3aXRoIGh1Z2UgZ3Jv
dXBzIG9mIGRldmVsb3BlcnMsIGJ1dFxwYXINCj4gb25seSBmb3IgYSBzdXJ2ZXkgb2YgcmVsYXRp
dmVseSBzbWFsbCBwcm9ncmFtcyAoMTAtMjAgbW9kdWxlcykgaW4gYW5ccGFyDQo+IGFkdmFuY2Vk
IGRldmVsb3BtZW50IHN0YXRlLlxwYXINCj4gXHBhcg0KPiBBbnkgdGhvdWdodHM/IFdoYXQgZG8g
eW91IHVzZT9ccGFyDQo+IC0tXHBhcg0KPiBGcmFuayBIcmViYWJldHpreVx0YWIgXHRhYiArNTUg
LyA0OCAvIDMyMzUgMTEwNlxwYXINCj4gRmxvcmlhbm9wb2xpcywgQnJhemlsXHBhcg0KXHBhcg0K
dGhlcmUgYXJlIG51bWVyb3VzIHR5cGVzIG9mIGdyYXBoIHdoaWNoIHBlb3BsZSBoYXZlIHVzZWQg
b3ZlciB0aGUgeWVhcnMgdG9ccGFyDQpkZXNpZ24gZGlmZmVyZW50IHR5cGVzIG9mIHByb2dyYW0u
ICJTb2Z0d2FyZSBEZXNpZ24iIGJ5IERhdmlkIEJ1ZGdlbiBnaXZlc1xwYXINCmFuIGV4Y2VsbGVu
dCBvdmVydmlldy5ccGFyDQpccGFyDQpXaGVuIEkgd2FzIGEgcHJvZ3JhbW1lciBJIHVzZWQgYSB0
ZWNobmlxdWUgY2FsbGVkIEpTUCAtIEphY2tzb24gU3RydWN0dXJlZFxwYXINClByb2dyYW1taW5n
IC0gd2hpY2ggaXMgYSBtZXRob2Qgb2YgZGVzY3JpYmluZyB0aGUgc2VxdWVuY2Ugb2YgaW5wdXRz
IGFuZFxwYXINCm91dHB1dHMsIGFuZCBjb21iaW5pbmcgdGhlbSB0byBwcm9kdWNlIGEgcHJvZ3Jh
bSBzdHJ1Y3R1cmUuIFRoZSBncmFwaGljYWxccGFyDQp0ZWNobmlxdWUgdXNlcyBkZWNvcmF0ZWQg
Ym94ZXMgYW5kIGxpbmVzIHRvIHNob3cgc2VxdWVuY2UsIHNlbGVjdGlvbiBhbmRccGFyDQppdGVy
YXRpb24sIGFuZCBpcyBlcXVpdmFsZW50IHRvIEVCTkYuXHBhcg0KPGh0dHA6Ly93d3cuamFja3Nv
bndvcmtiZW5jaC5jby51ay9zdGV2ZWZlcmdzcGFnZXMvamFja3Nvbl9tZXRob2RzL2luZGV4Lmh0
bVxwYXINCmw+XHBhcg0KXHBhcg0KQW4gZXF1aXZhbGVudCBncmFwaCB0aGF0IGlzIGJldHRlciB0
aGFuIEphY2tzb24gZGlhZ3JhbXMgZm9yIGV2ZW50LWRyaXZlblxwYXINCnByb2dyYW1zIGlzIHRo
ZSBzdGF0ZWNoYXJ0LiBIYXJlbCdzIG9yaWdpbmFsIHBhcGVyIGlzIGEgZ29vZCBzb3VyY2UgZm9y
XHBhcg0KbGVhcm5pbmcgYWJvdXQgdGhlbS4gXHBhcg0KXHBhcg0KU3RhdGVjaGFydHMgYXJlIGFs
c28gZXhjZWxsZW50IGZvciBkZXNpZ25pbmcgdGhlIGJlaGF2aW91ciBvZiB1c2VyXHBhcg0KaW50
ZXJmYWNlcy5ccGFyDQpccGFyDQpGb3IgZGVwaWN0aW5nIG1vZHVsZSByZWxhdGlvbnNoaXBzIEkg
ZmluZCBkZXBlbmRlbmN5IGdyYXBocyB2ZXJ5IHVzZWZ1bC4gXHBhcg0KXHBhcg0KSW5oZXJpdGFu
Y2UgaXMgZXNzZW50aWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgbW9kdWxlIGRlcGVuZGVuY3kgYW5k
IGZvciBtb3N0XHBhcg0KcHVycG9zZXMgYSBkZXBlbmRlbmN5IGdyYXBoIGlzIHN1aXRhYmxlLiBX
aGVuIEknbSBza2V0Y2hpbmcgaWRlYXMgSSB0ZW5kIHRvXHBhcg0KdXNlIFZlbm4gZGlhZ3JhbXMu
IEkgZG9uJ3QgdXN1YWxseSBkbyBjbGFzcyBkaWFncmFtcyB1bmxlc3Mgc29tZW9uZSdzXHBhcg0K
aG9sZGluZyBhIGxvYWRlZCBndW4gYXQgbXkgaGVhZCwgYnV0IHVzZSB0aGUgY3JvdydzIGZvb3Qg
bm90YXRpb24gaW5zdGVhZC5ccGFyDQpJZiBuZXN0aW5nIHRoZSBib3hlcyBiZWNvbWVzIHRvbyBt
ZXNzeSBJIHNlcGFyYXRlIHRoZW0gYW5kIHVzZSBhbiBhcnJvdyB0b1xwYXINCnNob3cgaW5oZXJp
dGFuY2UuXHBhcg0KXHBhcg0KQWxsIG9mIHRoZXNlIHRoaW5ncyBJIHNrZXRjaCBieSBoYW5kIGZp
cnN0LCB0aGVuIHVzZSBWaXNpbyBmb3IgdGhlIGZvcm1hbFxwYXINCmRvY3VtZW50YXRpb24uIEkn
dmUgZm91bmQgdmVyeSBmZXcgQ0FTRSB0b29scywgZWcgUmF0aW9uYWwgUm9zZSwgdG8gYmVccGFy
DQp1c2VmdWwuIFxwYXINClxwYXINCkJvYlxwYXINClxwYXINClxwYXINCi0tLS1ccGFyDQpUbyB1
bnN1YnNjcmliZSwgc2VuZCBhIG1lc3NhZ2Ugd2l0aCBib2R5ICJTSUdOT0ZGIEJMQUNLQk9YIiB0
byBMSVNUU0VSVkBMSVNUUy5PQkVST04uQ0h9fQBjAFAz
----boundary-LibPST-iamunique-1389234619_-_---
Received on Sat Sep 17 2011 - 23:57:12 UTC

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