Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.forth > #27447

Re: how do forthers control compexity and make easy user interfaces?

Path csiph.com!newsfeed.hal-mli.net!feeder3.hal-mli.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!newsfeed.fsmpi.rwth-aachen.de!news-1.dfn.de!news.dfn.de!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
From Paul E Bennett <Paul_E.Bennett@topmail.co.uk>
Newsgroups comp.lang.forth
Subject Re: how do forthers control compexity and make easy user interfaces?
Date Thu, 26 Dec 2013 10:16:15 +0000
Organization Hidecs Consultancy
Lines 70
Message-ID <bi2dvgFmeuU1@mid.individual.net> (permalink)
References <7619435e-495f-458c-a1cb-d878db85dac5@googlegroups.com>
Mime-Version 1.0
Content-Type text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding 7Bit
X-Trace individual.net R1zkoBssVFbp2obHiJW9ng8d2fsvZNfLyM/DprIfjf7eqA6U62
Cancel-Lock sha1:fCc4kWwWutcbUHzsSTtf7BIbIsA=
User-Agent KNode/4.10.5
Xref csiph.com comp.lang.forth:27447

Show key headers only | View raw


the_gavino_himself wrote:

> two problem I have a tuff time with

The complexity and user interface problems are two that really should be 
resolved long before you start coding. I deal with Industrial Control 
Systems and have used quite a bit of the Forth Philosophy which actually 
seems to have come from the mathematical philosophy of George Polya (see 
"How to Solve It" by George Polya published in 1945).

From getting the true goals of the customer I usually perform a Task 
Analysis first, to ensure that I know all the sequence of actions that the 
User and the Systems is going to have to perform. As my systems ar often 
Safety Critical I will run a HAZOP analysis at this stage and adjust the 
resultant task plan and re-analyse both the task plan and HAZOP. It is here 
that you make your first decompositions of the problem space and begin to 
see the natural structure of the resultant system.

I write descriptive documents for the system (functional specifications etc) 
and when the custoimer agrees I proceed with further decomposition of the 
system following the naturally emerging stucture.

When it come to the software portion I begin at the higher level (user 
visible functions) and write the glossary commentary for the words that are 
natural language in the problem domain, attaching those comments to each of 
those words of the Application Specific Language. I write no code at this 
level, just the comments for each word I decide will make sense in 
fulfilling the functions. Eventually I descend the levels of abstraction 
towards meeting words that look like they would appear in a standard Forth. 
All through this activity there are regular reviews to ensure that the whole 
intent of the system is coherent, meets with the customer requirements for 
function and has notes relating to the related fault actions (time-out 
periods, mis-entered data etc).

When I am close to approaching the level of words in a Standard Forth I can 
then start fleshing out the words with code, starting at the bottom and 
working up the levels. I functionally test immediately after coding. Reviews 
continue of this code and ther begins formal inspections, functional tests 
and limitations testing as the system builds from the bottom. These reviews 
ensure that the coded implentation performs the requirements (comments) as 
specified. When you get to the top you should have the whole system, no 
matter how complex it started, written and able to perform as it should. 

When I was developing one application in view of the client it came to a 
point that the client started to see new opportunities he could explore as 
the Application Specific Language was familiar to him already. That was a 
system I sealed at a level just below his ASL and allowed him the freedom to 
generate his own new functionality (not a safety critical application). Most 
of teh other applications get sealed into the system and there are no user 
changeable elements.

So, to control complexity and make user interfaces easier you have to start 
outside the software with the rest of the system and make sure that you have 
understood the cusomer needs well enough. Then decompose the problem space 
from the complex problem to a set of much smaller ones. Solving lots of 
smaller, simpler problems is easier than trying to get your head around a 
much more complex one.

With that, Merry Christmas Gavino. May you get to grips with writing some 
code soon. You can always try a small problem out and post your efforts for 
helpful commentary.

-- 
********************************************************************
Paul E. Bennett IEng MIET.....<email://Paul_E.Bennett@topmail.co.uk>
Forth based HIDECS Consultancy.............<http://www.hidecs.co.uk>
Mob: +44 (0)7811-639972
Tel: +44 (0)1235-510979
Going Forth Safely ..... EBA. www.electric-boat-association.org.uk..
********************************************************************

Back to comp.lang.forth | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

how do forthers control compexity and make easy user interfaces? the_gavino_himself <visphatesjava@gmail.com> - 2013-12-25 21:54 -0800
  Re: how do forthers control compexity and make easy user interfaces? Paul E Bennett <Paul_E.Bennett@topmail.co.uk> - 2013-12-26 10:16 +0000
    How to specify complex code? mhx@iae.nl - 2013-12-26 02:52 -0800
      Re: How to specify complex code? ForthFreak <forthfreak@gmail.com> - 2013-12-26 03:45 -0800
        Re: How to specify complex code? mhx@iae.nl - 2013-12-26 05:20 -0800
      Re: How to specify complex code? Paul E Bennett <Paul_E.Bennett@topmail.co.uk> - 2013-12-26 22:34 +0000
        Re: How to specify complex code? "Rod Pemberton" <dont_use_email@xnohavenotit.cnm> - 2013-12-27 01:07 -0500
          Re: How to specify complex code? Mark Wills <markrobertwills@yahoo.co.uk> - 2013-12-27 02:20 -0800
          Re: How to specify complex code? Paul E Bennett <Paul_E.Bennett@topmail.co.uk> - 2013-12-27 12:27 +0000
    Re: how do forthers control compexity and make easy user interfaces? Richard Owlett <rowlett@pcnetinc.com> - 2013-12-26 06:54 -0600
      Re: how do forthers control compexity and make easy user interfaces? Paul E Bennett <Paul_E.Bennett@topmail.co.uk> - 2013-12-26 22:37 +0000
    Re: how do forthers control compexity and make easy user interfaces? Spam@ControlQ.com - 2013-12-27 17:13 -0500
    Re: how do forthers control compexity and make easy user interfaces? the_gavino_himself <visphatesjava@gmail.com> - 2013-12-31 17:34 -0800
  Re: how do forthers control compexity and make easy user interfaces? Richard Owlett <rowlett@pcnetinc.com> - 2013-12-26 06:52 -0600
    Re: how do forthers control compexity and make easy user interfaces? the_gavino_himself <visphatesjava@gmail.com> - 2013-12-31 17:42 -0800

csiph-web