Software technology evolution:
Nowadays to make complicated software, it is not enough to put a series of programming instructions and a set of processes and modules together.
Nowadays it is needed to use advanced techniques such as structural programs which are easy to understand, execute and modify.
Since computer is invented, many programming methods have been used. These methods include different techniques such as modular programming, top-down programming, bottom-up programming and structured programming. But growing up and enlargement of programs, even structural programming are not enough to show desired result (without error).
Object oriented programming definition:
Object oriented programming is a method that jams the best facilities of structured programming and applying new and strong ideas, tries to remove common difficulties of other programming methods and it is used by organizations which attempt in this way.
The main factor of object oriented programming invention is to remove defects seen in the procedural approach.
Object oriented programming behaves data such a main and sensitive element in the field system development and modification and do not let data to flow freely around the system. In the other word this approach ties data to the function that operates on the data and protects data from accidental changes of outside functions.
Object oriented programming lets us to decompose problem into the several entities that is called as an object and construct functions around these objects.
Information or data of an object are accessible by the functions that are related. But functions of an object are able to access functions of other objects.
Object orientation:
Since in this approach everything is considered as an object and a part of real world, it is called as object oriented. For example in this method telephone is an object as well as cycle and even humanity or insurance letter.
In routine life, we simplify objects in our thoughts and work on them by models, and in fact software development performs the same work.
features of object orientation approach:
- Particular attention to data more than attention to procedure
- Programs are divided into smaller units called objects
- Data structures are designed such that specify objects
- Function which operate on an object, are connected in data structures
- Data are hidden and are not accessible by outside functions
- Objects maybe in relationship to each other through their functions
- New information and data can be added any time required
Thus an object is considered as a part of computer memory that saves set of information and operations ( these information and operations can be different and various programs) without changing and manipulation.
Basic concepts of object orientation:
- Objects
- Classes
- Data abstraction and encapsulation
- Inheritance
- Polymorphism
- Messaging
Objects:
Objects are real or logical items that include information (data or specification) to define object it and methods (functions) which are able to operate those information. Therefore objects are combination of information and methods.
Classes:
Class, pattern, template or blueprint is used by a group of items that have same structure. The items that are created using class, are called instance.
Class is a set including pattern and also a mechanism to create items base on that pattern.
Class is a set of all created items using same and particular sample.
Encapsulation:
In terms encapsulation of information and functions in a single unit (class) is called as encapsulation.
Encapsulation of information is one of the important properties of class. Capsulated information is not accessible by outside world of capsule and only those functions are able to access them which are packed with them in class. These functions provide an interface between information of object and program. The process of separating information from other parts of code is called as encapsulating of information.
Data abstraction:
Data abstraction deals with expression of specific points and features of object, irrespective of details and descriptions.
Abstracted data are used by classes.
Inheritance:
Inheritance is a property that a class expands by setting methods and or extra variables of other class through it.
In other word inherit of methods and extra variables of a class by other class. The main class is called as super class and expanded class is called as subclass.
Since subclass includes all information and methods of super class and its extra sources, so it is more specific and complete.
Polymorphism:
Polymorphism is one the most important concepts of object oriented programming. Polymorphism is a Greek word that means “possibility of being more than one form”. For example an operation may show different behavior with different samples. Behaviors depend on type of an operator which is used in operation.
The process that causes an operator to show different behaviors with different samples is called as operator overloading.
Messaging:
An object oriented system includes a set of objects that are related.
Object oriented system include following main steps:
- Creation of classes along with data, in other word definition of objects, methods, methods operations.
- Creation of objects for classes
- Creation of connection between objects.Objects make connection with each other through sending and delivering message, same as people sending message to each other.
A message for an object is a request to execute a method and therefore it is applied in message receiver object, till desired result is achieved.
Object oriented system development:
In object oriented system everything is seen as an object and each object has its own responsibility. For example in each window application, each window is responsible of its opening, closing and sizing. Means all these operations are done by that window.
In other word instead of saying “system calculated employee salary” say:”employee object calculated its own salary”.
Different phases of object oriented system development:
- Presenting components or objects of system through following phases:
Analysis
Plan/design
Construction
- Research and evaluation that is related to all above phases.
- Modeling that is review and summery of gathered information in primary level of research.
- Model development that causes to make model more accurate in analysis phases.
Object oriented analysis phase (O.O.A):
This phase converts user requirement into system responsibilities and requirements.
The main goal of analysis is to extract a complete image, clear and consistent of needs and requirements of a system and also to extract what should be done by system to satisfy all these requirements and needs.
Analysis is a phase that can determine classes which plays important role in the way of achieving goals and system requirements.
Is analysis a difficault activity?
Analysis is a creative activity that includes complete understanding of problem, related limitations of problem and methods to remove these limitations. So analysis is the difficult activity because it deals with accurate understanding of problem and difficulties in the field of request and then definition of solution that is executable by any software.
3 factors that makes analysis activity hard:
- Ambiguous describes of requirements:
Ambiguous and non clear description causes to go to the ambiguous needs and requirments.
- Incomplete requirments:
Main requirments that have not been considered for various reasons and they may be neccesary and required to have a successful system.
- Unneccesary requirments and features:
Any extra feature may influence on operation,complexity, stability and support cost.
Object oriented design phase:
This phase starts with concepts of problem and ends with accurate and full of details designing that can be converted into applicable system.
In this phase technical solutions such as yser interface, form of information, objects, classes and etc. that had been determined in analysis phase, are designed.
This phase deals with system architecture and fixing system faults that usually have not been considered in analysis phase.
Object oriented construction/programming (O.O.C/O.O.P):
This phase is the real phase of design implementation. The final design is implemented using object oriented programming language or database managemanet systems or CASE tools.
The main purpose of CASE technology is automation of all information (development phases) using a set of integrated software tools like modeling and producing automatic code.
Verification phase:
In this phase the constructed component is tested. (quality assurance)
In this phase it is determined whether the constructed product satisfies user requirments.
Verification phase looking for UI inductions and bugs and other architectural bugs of product and is important in all mentioned phases.
Iteration process:
If at any phase, the component is discovered to be fundamentally incorrect or scop is expanded, the componet is iterated. Means all phases start over again.
We can say that, object oriented system development is highly incremental. You start with analsis phase,making model, design creation, and then more and more, again and again analysing design, gradually refining and completing models of the system.
And then after all the above tasks are carried out successfully, itassembles all componets to costruct a complete software system.
Advantages of object oriented system development:
- Ability to tackle mor challenging problem domains.
- Improved communication among users, analysts, designers and programmers.
- Increased consistency among analysis, design and programming activities.
- Reusability of analysis, design and programming results
- Increased consistency among the models developed during objrct-oriented analysis,design, and programming.
Note: Publication of this article is allowed only with
Pars Data
name, as authorized source.