rj@tcom.stc.co.uk (Ray Jones) (07/20/88)
I've just been browsing through the sw-eng digest and have come across discussions about software design methods, that, being a newcomer to the net, I have previously missed. Sorry if this is a little late but... I am astounded that I have not heard more talk about formal methodologies that we in the UK have imported (I think) from the USA. Haven't (most of you) heard of Ed Yourdon or Michael Jackson (no, no, the *other* one) and their respective methodologies. I was introduced to the Yourdon method for real-time systems design, a while ago, only to find that I've been using the same tools as he suggests for years (i.e. data flow diagrams, state transition diagrams and structure charts) but in a less formal way. Yourdon has formalised a structured method that good analysts and designers would, I think, find very familiar. If you want to know more about this, check out the books published by the Yourdon Press (available from Prentice-Hall, in the UK) by authors such as Ward and Mellor, DeMarco, Yourdon and others. Don't buy them yourself, though, they cost a fortune (in the UK at least). Changing the subject slightly... One tool that I have not used in years (don't you dare!) is the flow diagram. The traditional flow diagram is ok for describing simple systems that have already been designed, but as a design tool they can be a menace. They encourage non-structured programming and the indiscriminent use of gotos (let's not get into a discussion about gotos though, please). Flow diagrams do not, directly, support the constructs used in modern languages, i.e. while loops, case statements functions, etc., and are more suitable to the construction of programs in Fortran IV (Oh, God those were the days...) than languages such as C and Pascal (and even F77). I find that a high level pseudo-code or structured English, is a more suitable method of describing the procedural aspects of a system. Enough of that, anyone know about any good books on object orientated design ? Keep on hacking you guys (snigger, snigger) Ray
simont@praxis.co.uk (Simon Tait) (07/21/88)
In article <1440@bute.tcom.stc.co.uk> Ray Jones <rj@stc.UUCP> writes: > > I am astounded that I have not heard more talk about formal > methodologies that we in the UK have imported (I think) from the USA. > Haven't (most of you) heard of Ed Yourdon or Michael Jackson (no, no, .. and goes on to describe a number of other methods. None of these would seem to be truly "formal", however. The term "formal methods" is usually reserved for development and specification methods based on mathematics, such as VDM, Z, OBJ, Larch etc. JSP, OOD, etc are usually termed "semi-formal" methods. Michael Jackson is based in London :-) ------------------------------------------------------------------------------- Simon P Tait, ELLA Group, Telephone (0225) 444700. Praxis Systems plc, Telex 445848 PRAXIS G. 20 Manvers Street, Facsimile (0225) 65205. Bath BA11PX, England. -------------------------------------------------------------------------------
acwf@ivax.doc.ic.ac.uk (Anthony Finkelstein) (07/23/88)
Simon Tait in article <2672@newton.praxis.co.uk> writes that JSP and OOD are normally termed semi-formal methods. This is the normal usage but is inaccurate - something is either formal or not! I prefer to use the term formatted to describe such methods - it more accurately captures the essence of the representation schemes associated with such techniques. Pedants rule OK! Anthony Finkelstein
david@geac.UUCP (David Haynes) (07/23/88)
In article <1440@bute.tcom.stc.co.uk> Ray Jones <rj@stc.UUCP> writes: > > Enough of that, anyone know about any good books on object orientated > design ? This, through a tangential leap of astronomic proportions, triggered off a thought which I was going to ask you folks about... In working through possible extensions to my design of a thing called Prism, I was struck by the fact that, while I was not proposing to have a 3GL as the main interface, I was not planning on having a 4GL either, or even an object oriented approach. (in my understanding of the term) A little history: Prism is a protocol-driven, windowed, forms system which works equally well for dumb ascii terminals as it does for, say, X11. The system employs the use of ``smart agents'' to isolate the presentational aspects from the computational aspects of the code, so that the application folk have minimal changes to go from, say, English to French. (or Hebrew or kanji Japanese). When thinking of what sort of language should be used to program this beastie, I was struck by the fact that the language really supports ``transitions'' via ``events''. That is to say, the processing is driven by (almost) random changes in the data. Perhaps, it is clearer to say that the system must handle changes to any of a set of data elements at any time... Where am I leading with all this? Well, the problem is that a dataflow system will not aid the user in the design of this type of system, a flow chart is useless, and the state transition diagram for this would quickly be unweildly (think of a spreadsheet as a form in this system). In some object-oriented systems, this sort of triggered action would be assigned to ``methods'', but I don't think that is a really viable analysis of what is going on here. Your thoughts? -david-
eeartym@cybaswan.UUCP (Dr R.Artym eleceng ) (07/28/88)
>In article <382@gould.doc.ic.ac.uk> acwf@doc.ic.ac.uk (Anthony Finkelstein) >writes: >>Simon Tait in article <2672@newton.praxis.co.uk> writes that JSP and >>OOD are normally termed semi-formal methods. This is the normal usage >>but is inaccurate - something is either formal or not! I prefer to >>use the term formatted to describe such methods - it more accurately >>captures the essence of the representation schemes associated with >>such techniques. Pedants rule OK! >> > "Formatted" ?? Sounds aweful! Anyway, why invent yet another tag when those methods have been called "STRUCTURED" since time immemorial. Incidentally, pedantry is a pre-requisite to working in formal methods! Rich -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Keywords: Parallel, Applicative, and Object-Oriented Languages and Systems --------------------------------------------------------------------------- Dr. Richard Artym, + UUCP : ..!ukc!pyr.swan.ac.uk!eeartym Electrical Engineering Dept., + JANET : eeartym@uk.ac.swan.pyr University of Wales, + Phone : [(0792) or (+44 792)] 295536 Swansea, SA2 8PP, + Fax : [(0792) or (+44 792)] 295532 U.K. + Telex : 48358 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ralf@mucs.UX.CS.MAN.AC.UK (Ralf Kneuper) (07/28/88)
In article <382@gould.doc.ic.ac.uk> acwf@doc.ic.ac.uk (Anthony Finkelstein) writes: >Simon Tait in article <2672@newton.praxis.co.uk> writes that JSP and >OOD are normally termed semi-formal methods. This is the normal usage >but is inaccurate - something is either formal or not! I prefer to ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >use the term formatted to describe such methods - it more accurately >captures the essence of the representation schemes associated with >such techniques. Pedants rule OK! > >Anthony Finkelstein Sorry, but there can be no method that is 100 percent formal, formality is a question of degree. The problem is that if you want to be formal, you have to use a language and method with formally defined semantics, The language for describing these has to be defined formally itself, etc. - you never get to the bottom of it. At some stage you just have to say "Ok, I *know* what this means and I am not going to take formalization any further". In some way, this is similar to axiomatization in mathematics. When defining the semantics of something you always have to use some language for describing them and just assume that you know what its constructs mean. The difference between informal, semi-formal and formal methods then lies in how far you take this process - do you explain what the various objects of your method mean in terms of natural language plus pretty pictures, in terms of mathematics (in particular mathematical logic), or do you stop somewhere in between? If you are interested, this was put rather strongly by Naur (Formalization in Program Development, BIT 22, 1982, pp 437-453), but he then went over the top and claimed that formal methods are no use since you cannot be completely formal. Ralf -- Ralf Kneuper, Dept of Computer Science, The University, Oxford Road, Manchester M13 9PL, UNITED KINGDOM. UUCP: uunet!mcvax!ukc!man.cs.ux!ralf | Tel: (+44) 61-275 2000 Ext 6134 JANET: ralf@uk.ac.man.cs.ux