Software designing is very anesthetic phase of software development cycle. The beauty of heart, skill of mind and practical thinking is mixed with system objective to implement design.
The designing process is not simple, but complex, cumbersome and frustrating with many curves in the way of successful design.
Here are some approaches:
- Structural Programming
- Modular Designing
- Top Down Designing
- Bottom Up Designing
- Object Oriented Programming
The objective of Program design are:
(i) Replace old system: The new system is used to replace old system because maintenance cost is high in old system and efficiency level low.
(ii) Demand of Organization: The new system is developed and installed on the demand of organization and working groups.
(iii) Productivity: The new system is installed to increase productivity of company or organization.
(iv) Competition: The new system is a matter of status also. In the age of roaring competition, if organization does not cope with modem technology failed to face competitions.
(v) Maintenance: The new system is needed to maintain organization status.
1. Structured Programming
This is the first programming approach used widely in beginning. Professor Edsger Wybe Dijkstra (1960) coins the term Structural Programming. Italian computer scientist C. Bohm and G. Jacopini (1966) give the basic principal that supports this approach. The structured programming movement started in 1970, and much has been written about it. It is often regarded as “goto-less” programming, because it is avoided by programmers.
The program is divided into several basic structures. These structures are called building blocks.
These are following:
(a) Sequence Structure: This module contains program statements one after another. This is a very simple module of Structured Programming.
(b) Selection or Conditional Structure: The Program has many conditions from which correct condition is selected to solve problems. These are (a) if-else (b) else-if, and (c) switch-case
(c) Repetition or loop Structure: The process of repetition or iteration repeats statements blocks several times when condition is matched, if condition is not matched, looping process is terminated. In C, (a) goto, (b) for (), (c) do, (d) do – while are used for this purpose.
- Problem can be easily described using Flowchart and flowchart can be easily coded into program because the nature of this technique is like as flowchart.
- The program is easily coded using modules.
- The testing and debugging is easy because testing and debugging can be performed module-wise.
- Program development cost low.
- Higher productivity, high quality program production.
- Easy to modify and maintain
- It is called “gotoless” programming because use of goto for unconditional branching is strongly avoided. The goto is a sign of poor program design, so many designing concepts are not favoring it but it is used in all programming language widely. When more goto is used in program, program become less readable and its impact is negative in program functionality. So it is saying about goto:”Never, ever, ever use goto! It is evil”.
More memory space is required. When the numbers of modules are out of certain range, performance of program is not satisfactory.
2. Modular Programming
When we study educational philosophy, the concept of modulation can be clear without any ambiguity. Rene Descartes (1596-1650) of France has given concept to reconstruct our knowledge by piece by piece. The piece is nothing, but it is a module of modem programming context.
In modular approach, large program is divided into many small discrete components called Modules. In programming language, different names are used for it.
Procedure or Function
C, C+, C#, Java
It is logically separable part of program. Modules are independent and easily manageable. Generally modules of 20 to 50 lines considered as good modules when lines are increased, the controlling of module become complex.
Modules are debugged and tested separately and combined to build system. The top module is called root or boss modules which charges control over all sub-modules from top to bottom. The control flows from top to bottom, but not from bottom to top.
The evaluation of modeling is called coupling and cohesion. The module coupling denotes number of interconnections between modules and module cohesion shows relationship among data or elements within a module.
3. Top down Approach
(a) The large program is divided into many small module or subprogram or function or procedure from top to bottom.
(b) At first supervisor program is identified to control other sub modules. Main modules are divided into sub modules, sub-modules into sub- sub- modules. The decomposition of modules is continuing whenever desired module level is not obtained.
(c) Top module is tested first, and then sub-modules are combined one by one and tested.
Example: The main program is divided into sub-program A, B, and C. The A is divided into subprogram A1, A2 and A3.The B is into B1, and B2. Just like these subprograms, C is also divided into three subprogram C1, C2 and C3. The solution of Main program is obtained from sub program A, B and C.
4. Bottom up Approach
- In this approach designing is started from bottom and advanced stepwise to top. So, this approach is called Bottom up approach.
- At first bottom layer modules are designed and tested, second layer modules are designed and combined with bottom layer and combined modules are tested. In this way, designing and testing progressed from bottom to top.
- In software designing, only pure top down or Bottom up approach is not used. The hybrid type of approach is recommended by many designers in which top down and bottom up, both approaches are utilized.
5. Object oriented programming
In the object-oriented programming, program is divided into a set of objects. The emphasis given on objects, not on procedures. All the programming activities revolve around objects. An object is a real world entity. It may be airplane, ship, car, house, horse, customer, bank Account, loan, petrol, fee, courses, and Registration number etc. Objects are tied with functions. Objects are not free for walk without leg of functions. One object talks with other through earphone of functions. Object is a boss but captive of functions.
Features of Object oriented Language
- The program is decomposed into several objects. In this language, emphasis is given to the objects and objects are central points of programming. All the activities are object centered.
- Objects occupy spaces in memory and have memory address like as records in PASCAL and structure in C language.
- Data and its functions are encapsulated into a single entity.
- Reusability: In C++, we create classes and these classes have power of reusability. Other programmers can use these classes.
- It supports bottom up approach of programming. In this approach designing is started from bottom and advanced stepwise to top.
Some technical terms supporting object-oriented languages are:
(i) Abstraction: The abstraction is an important property of OOP. The use of essential features over less essential features is called abstraction. The following examples will help to understand abstraction.
Example: The computer operators know only to operate computer, but they are unaware to internal organization of computer.
In OOP, there are many devices used for data abstraction such as class, encapsulation, data hiding etc.
(ii) Class: A class is a collection of similar objects. Objects are members of class. Once a class is declared, its many members can be easily created in programs. The class binds attributes (data and functions or methods) of member objects.
(iii) Polymorphism: The ability to find in many forms is called polymorphism (Poly: many, Morphe: shape / form). For instance, + is mathematical operator, it concatenates two strings and give sum of two digits (numbers). Here, operator + has different behavior for numerical data and strings. Just like it, once declared function has different meaning that is called function overloading. If operator has different meaning, it is called operator overloading.
(iv) Encapsulation: The encapsulation is a very striking feature of OOP in which data and function is bound into single unit. Array, records, structure are also example of low level encapsulation but term encapsulation is mostly used in object oriented language. The data and function are encapsulated into class. External world or external function cannot access the data. It can be accessed by its own function or method encapsulated with it into class. It hides private elements of objects behind public interface.
(v) Inheritance: Inheritance is a hierarchy of class in which some properties of base class is transferred to derived class. The main types of inheritance are:
(a) Single Inheritance: A derived class (child class or sub class) of single base (super or parent) class is called single Inheritance.
(b) Multiple Inheritances: A derived class of multiple base classes is called Multiple Inheritance.
(c) Multilevel Inheritance: When derived class is derived from another derived class, such type of inheritance is called Multilevel Inheritance.
- Object oriented programming Object oriented programming : The main idea behind object oriented...
- Programming Concepts Step of Programming The programming is the coding instruction...
- Procedural oriented programming Procedural oriented programming (pop):- A program in a procedural language...
- Programming Tools The programming is a solution of different problems of our...
- Programming Language Language is a medium of communication. There are several languages...