ICT167 Topic1-Part2 Murdoch University Page 12 12 In software development, abstraction is used in two ways: 1. Procedural (functional) abstraction: we have procedural abstraction when we have a simple name for a more or less complicated procedure, eg, firstchar = the first character in s (the procedure finds the first character in a string). 2. Data abstraction: we have data abstraction when we have a simple name for a more or less complicated piece of data, like the value of a variable. Eg, s is a whole string of characters.
ICT167 Topic1-Part2 Murdoch University Page 13 13 Using Procedural Abstraction (We will look at data abstraction later) Coding at low-level is very boring and time consuming. Productivity (and convenience and ease of design and ease of understanding and maintenance etc) is increased greatly when the programming language supports abstraction. Much larger and more complex programs become feasible. Early high-level languages supported procedural abstraction by allowing named functions, procedures, subroutines or methods. The idea was perhaps most developed in the traditional teaching language Pascal. Even modern OO languages like Java continue to do so (in a very slightly different way). The idea of using a procedure in design (and then in coding) is to capture a common and well-defined task. It might be a task which is undertaken many times at many places in your program (or even in other programs too) or it might be a task which you want to think about separately.