Chapter 4

  [1]Page HistoryLast edited by PBworks 8 years, 7 months ago

                 UNDERSTANDING AND UNDERSTANDING -

  KEY ISSUES OF INFORMATION

   Understanding - the function of the mind, its main function ...

                                                Natalia Avtonomova

         Lack of understanding LEADS TO millions in losses

  The main requirement of the language is considered DRAGON relief
  and  improvement  of  the  mind,  improving   understandability,
  algorithms, programs  and technological  knowledge. To  indicate
  this  requirement,   introduced  the   concept  of   "ultra-high
  understandability criterion." It is  believed that the  language
  satisfies this criterion if written on its projects, algorithms,
  programs and technologies have the highest cognitive quality.

  Let us recall the well-known facts  is not so distant past.  One
  of the  leaders  of  IBM  Joseph Fox  said  that  in  the  early
  1970s.two major airlines sue  its contractors because they  have
  created a data processing system worth 40 million. dollars.  Not
  only did not  work, but in  general showed no  signs of life.  A
  major European bank has sent a lawsuit to recover 70 mln.  USD.,
  Paid for the software.  Air Force United  States has spent  more
  than 300 million.  Dollars. Futile attempt  to automate  complex
  system of transportation  and logistics.  Continuing the  theme,
  Algirdas Avizhenis  noted  cases  where  complex  and  expensive
  systems have not been able to make of the fact that, within  the
  deadlines and resources  does not fix  software bugs. John  Musa
  points: operational and economic consequences of software errors
  are "truly awful". The cause  of all these "earth  catastrophes"
  large programming  projects tend  to lay  in the  fact that  the
  customer and performer  quite differently  understood the  task.
  Roughly speaking, the client was hoping to get the system "about
  Thomas," and artist made "about Eremu."

  These classic examples of large-scale failures, as well as  many
  other facts,  including  the  epidemic  seemed  incomprehensible
  failure of the project ACS ^1 in our country although they  have
  become part of history, nevertheless remains instructive to this
  day.  The  analysis  in  such   incidents  allows  us  to   four
  conclusions:

   1. the success of a major project depends on the mutual
      understanding between its participants;
   2. to achieve mutual understanding, it takes weeks and months,
      and in severe cases - years of painstaking work together
      customer and performer;
   3. Understanding the problem can not be considered solved until
      now; mutual understanding - a heavy and complex intellectual
      work, the performance of which is extremely low;
   4. it would be highly desirable to formalize this work and
      dramatically increase productivity.

                      Mockery of common sense

  CALLED "absolutely correct program"

  In all  these  cases  the system  generated  were  subjected  to
  scrutiny. The question arises:  why is such  a powerful tool  as
  the tests revealed no gross errors in the software product?

  The answer is clear. In  the example described the beginning  of
  the work was seemingly quite reasonable. Artist advance made and
  agreed with the  customer multivolume document  - the  technical
  specification  for   development   of   software   (the   formal
  specification),  and  only  then  started  to  work:  designing,
  programming and testing. Testing has shown that the program code
  has   been   unmistakable,    and   corresponded   exactly    to
  specifications. In short, the program was absolutely right.

  The paradox is that the program is called proper if it meets the
  terms of reference. And  if mistakes have  managed to seep  into
  the "holy of holies" - the task of designing the system?  Here's
  the crux of the  matter! It turns  out that testing  - is not  a
  panacea.  In  other  words,  testing  programs,  even  the  most
  meticulous nagging  and  in most  cases  in principle  does  not
  detect errors in specifications.

         Program specification - are the main "gadyuchnik"!

  Over time, it became clear  that wearing "hats invisible"  error
  in the specifications the most insidious and represent the  main
  danger. They are virtually invulnerable to attack massed frontal
  tank testing. However, the  most sensational was the  conclusion
  that the preparation of specifications - one of the main sources
  of errors. It turned out that  the elimination of errors in  the
  requirements for  the program  takes an  average of  82% of  all
  effort spent on a team of developers fixing bugs project,  while
  eliminating coding errors - 1%.

  The errors in  the specifications usually  found only after  the
  acceptance tests of the developed system. They "float like mines
  in the fairway at the stage of implementation and maintenance of
  the finished software product in the contracting authority"  (G.
  Gromov, 1993).

  Problem specifications - one  central programming. James  Martin
  writes: "Every  now  and then  met  the same  sad  story:  after
  several years of intensive  development of data end-users  claim
  that this is not  what they want ...  normal reaction to such  a
  development a  bad situation  - the  statement that  the  system
  requirements have not been  adequately defined by the  user.This
  is despite the fact that  the system requirements are  sometimes
  presented as many volumes of documentation. "

  What is the  cause of the  error in the  specifications? Let  us
  consider  the  example  of  the  development  of  automation  of
  technological processes  of  nuclear  power  plant  (NPP  APCS).
  Customers (developers of nuclear power plants) are well aware of
  "physics of the  process", t.  E. Technology  works reactor  and
  turbine units and  other systems of  nuclear power plants,  but,
  unfortunately, are  not  part  of  the  professors  at  ASU  and
  programming. Artists  (developers  NPP APCS),  contrast,  detail
  familiar  with  computers,  programming,  features  of  building
  management systems,  but, alas,  there is  little sense  in  the
  reactors, special  water treatment  and other  nuclear  secrets.
  Thus, the  problem is  that they  both need  to understand  each
  other. To do so, mutual learning, mutual exchange of  knowledge,
  which are  usually  presented  in  the  form  of  one  or  other
  documentation. The success of peer education depends largely  on
  the cognitive features used by professional language  (knowledge
  representation). It  is  obvious  that  this  is  a  very  thin,
  delicate and  complex cognitive  problems  in the  first  place,
  about the problem of understanding.

  The analysis allows to make two observations:

   1. errors in specifications are one of the most difficult
      problems in the theory and practice of programming;
   2. unresolved the problem is related to the whole range of
      reasons, among which recently took underestimation cognitive
      problems and the lack of effective linguistic tools to
      facilitate and improve the work of the mind and solve the
      problem of understanding.

            SPECIFICATIONS AND METHODOLOGY PROGRAMS RAD

  The RAD methodology used a very original approach to the problem
  of specifications - something like  "Smart in the mountain  will
  not go,  the  clever  mountain  bypass."  In  fact,  why  create
  labor-intensive paper  specifications when  in the  presence  of
  CASE -Instrument much easier to get a workable prototype of  the
  system!

  The new approach is closely  related to the concept of  "quality
  of software". According to James Martin, before the majority  of
  organizations use a bad definition of the term. They knew him as
  "the best possible match between the written specifications." In
  the traditional approach the specification, signed by the  user,
  frozen for the entire period as  long as the design, coding  and
  testing. This  often  led  to  the  fact  that  changes  in  the
  specifications forbidden for  a period of  eighteen months,  and
  was allowed only  after the  system starts to  work. Of  course,
  during this  time the  business requirements  for the  projected
  system time  to change  significantly, but  to create  a  system
  completely ignored this fact! So that the customer was forced to
  start with  a  known  system unsuitable,  since  it  takes  into
  account not all  but only  a part  of its  requirements, not  to
  mention an error in the specifications caused by failures in the
  connection of  the baseline  requirements were  inaccurate,  and
  many have lost out of sight.

  So it was. However, the  methodology RAD gives a new  definition
  of program quality, understanding  it as "the greatest  possible
  satisfaction of the true  business requirements (user needs)  at
  the time of submission of  the running system to the  customer."
  To achieve this, we had  to change a lot: dramatically  increase
  the speed of development with the help of I-CASE-Instrument and,
  above all, radically improve relations between the developer and
  the user. If before the user "twisted arms", forcing to sign the
  paper specifications that it is  poorly understood, but now  the
  situation has changed.  After a short  series of  well-organized
  study of  initial  negotiations,  the  results  are  immediately
  entered into  the  computer,  the  developer  quickly  create  a
  prototype of a  computer system and  immediately transmit it  to
  the user. The latter, sitting at the computer, trying to project
  "to the tooth",  realizes his  error and  directs the  developer
  feedback  portion   refinements.  Developer   rapidly   changing
  prototype and then gives the user an improved version. This game
  of ping-pong  between the  developer and  the user  is  repeated
  several times  and  leads to  the  fact that  the  prototype  is
  gradually turning into a working system.

  Main trick is that users no longer  have to buy a pig in a  poke
  and sign swarming bugs  paper specification (understand where  -
  beyond their powers). They put signature on the draft,  obtained
  using  tools  I-CASE,  which   is  fully  accessible  to   their
  understanding and they  can professionally  evaluate. Thus,  the
  user's actions related to the  control of the project, have  the
  computer accuracy. Taking part in working out the project for  a
  computer screen, the user is much deeper delve into the  details
  than with speculative analysis  paper specifications. The  above
  method  is  sometimes  called   "early  prototyping  in   spiral
  development cycle",  because  the  prototype is  tested  by  the
  customer at every turn of  the spiral, to reduce the  likelihood
  of errors in the complete system.

  There is  no  doubt  that these  are  very  useful  innovations.
  However, we should not forget two  things. Firstly, RAD - it  is
  not shared, private and methodology, as it is not applicable  to
  any system, but  only to  a certain class  of systems  (business
  applications).  Secondly,   along   with  the   advantages   RAD
  methodology   has    significant    shortcomings.    They    are
  underestimating the importance of  the problem of improving  the
  work   of   the    mind,   problems    of   understanding    and
  cognitive-ergonomic design  approach  of  linguistic  resources.
  Consequently, graphic and other means RAD have weaknesses and in
  need of improvement.

  According to  the author,  the inability  to understand  and  to
  prioritize the issue of improving the priority role of the  mind
  and the  problem is  a  general lack  of understanding  of  many
  contemporary approaches to the creation of linguistic  resources
  of design and programming.

                  CONCEPT OF COGNITIVE PROGRAMMING

  When  a  new  programming  language,  usually  try  to  find   a
  reasonable compromise between the various and often  conflicting
  requirements, which, inter alia, include the following:

   1. ease of understanding of the program;
   2. the complexity of writing small programs;
   3. minimize the need for computer memory;
   4. a small run-time programs;
   5. small the broadcast;
   6. ease of automated error detection.

  These  requirements  can  be  divided  into  two  groups.  Group
  cognitive requirements include ease of writing programs and  the
  possibility  of  a   quick  and   deep  understanding.   Machine
  requirements  cover  all  the   rest:  the  saving  of   machine
  resources, small and run-time  translation software, and so  on.
  D.

  The development  of  language is  based  on the  concept  DRAGON
  cognitive  programming,  which   is  based   on  the   following
  postulates.

  Postulate 1. Cognitive language  requirements are considered  as
  basic machine -  as secondary. Justification  of a postulate  is
  that today, when the speed of computers and the amount of memory
  has increased dramatically, and  their unit cost decreased,  the
  main problem  is  the  low productivity  of  personnel  in  this
  improving the work of the  mind, increasing the productivity  of
  the human brain is the number one task.

  Postulate 2.  Ease of  understanding programs  - more  important
  requirement than the convenience of their writing. According  to
  J. Pyle, an opportunity to read the program and is clearly aware
  of its meaning is more  important than the ability to  concisely
  and quickly write it.  The reason is  a one-time performance  of
  work by the  author of  the program  and the  need for  repeated
  reading program during its life cycle ^1. It is known that  high
  readability software facilitates their support.

  Postulate 3. When you create a language performance of cognitive
  and computer requirements should be  carried out in two  stages,
  using different means. In  the first phase  should focus on  the
  implementation of the cognitive requirements and (reasonably) to
  ignore the  issues of  machine  efficiency programs.  With  this
  approach, the  use of  language  is guaranteed  to lead  to  the
  creation of  clear, but  possibly ineffective  programs. In  the
  second phase (which  may overlap  in time with  the first)  must
  address engine efficiency programs, which should be used:

   1. optimizing compilers of the new generation;
   2. Automatic methods of improvement (optimization) programs
      allow conversion of inefficient, but it is clear to
      equivalent programs are more effective;
   3. methods of intellectualization of computers;
   4. improved performance computers to the borders, making
      massive operation inefficient (or partially ineffective)
      program is economically feasible, and even profitable;
   5. an introduction to the main language more opportunities, you
      can write individual pieces of programs in assembly
      language. This feature is used when the ineffectiveness of a
      program written in fixed assets language goes beyond reason.

  The advantage of  a two-step approach  to the implementation  of
  cognitive and computer  requirements is  that it  allows you  to
  ease the  pressure  on  the requirements  of  machine  language,
  making it easier  development of language  and allowing them  to
  concentrate on the radical improvement of the properties of  the
  language, on which  depends the solution  of the most  important
  task - a radical increase staff productivity.

  Thus, the  paradigm  of cognitive  programming  considering  the
  criterion  of  improving  the  work   of  the  mind  and   super
  understanding  as  the   main  requirement   for  the   language
  (although, of course,  in life there  is always some  exceptions
  possible).

                            CONCLUSIONS

   1. To solve the problem of understanding and reduce the
      economic losses caused by mutual misunderstanding between
      customers, developers and operators, it is necessary to
      accept the concept of cognitive programming and radically
      change the priorities in creating a new generation of
      languages.
   2. Today paramount requirement to facilitate and improve the
      work of the mind, to minimize the cost of intelligent staff
      spent on the creation and maintenance of software throughout
      the life cycle.
   3. Significant or even the major share intellectual efforts of
      staff in the development of complex projects is spent on the
      process of cognition, perception and understanding of the
      information. Therefore, the requirement cognizability
      projects and algorithms and the associated test ultra high
      understandability become decisive.

References

  Visible links
  1. https://translate.googleusercontent.com/translate_c?depth=1&hl=en&rurl=translate.google.com&sl=ru&tl=en&u=http://drakon.pbworks.com/w/page-revisions/18205509/%25D0%2593%25D0%25BB%25D0%25B0%25D0%25B2%25D0%25B0%25204&usg=ALkJrhh4RSUm0BkVfR_Mc71EU43mma_saQ