Harry Terhanian.com Wisdom from the son of Armenia.

Categories

  • OOPS – Object Oriented Programming

    Object Oriented Process for Software (Development) – OOPS

    OOPS

    It is said in the Bible that man is made in the image of God. This statement implies that by carefully studying ourselves we can understand many things about God. We can use such a process to begin to understand the mystery and complexity of the universe. A question that has always fascinated man is “How did this universe come about? There are many speculative theories about the origin of the universe. One that is invoked today is called the Big Bang Theory. Rather than imagine something that we can never prove definitively, it is better to begin with our own experience and rational sense to understand the mystery of creation. One glaring anomaly of modern scientific theories that attempt to explain the origin of the universe is that they claim there is no intelligent person guiding it.

    Man is developing new inventions every day. One example of this is the creation or development of a computer program. A popular methodology used by major software corporations for computer program creation is Object Oriented Programming also known as OOPS. A careful analysis of this methodology will reveal that creation is not something that takes place by accident or without superior intelligent guidance. No one who knows about OOPS would dare say that the creation of a computer program happens randomly without the guidance of an intelligent person. With this said, we can analyze all the complicated steps required to create a computer program.

    The purpose of OOPS is to employ a rational methodology that can avoid or quickly correct mistakes of logic or design in the process of program development. OOPS requires that each stage of development must be rigorously verified to be free of mistakes of logic or design before going to the next stage.

    The creation of a computer program begins by defining a problem. When there is a problem, there is a desire to find a solution. A project manager will consult experts in different disciplines that are related to the problem. The expert consultants will brainstorm possible solutions and present their conclusions to a core group of programming experts under the guidance of a project manager. The project manager is responsible to create a functional specification for the features of the product.
    Each of the proposed solution is evaluated and one is chosen around which all the team of experts rally to make it operational.
    The creation of a computer program begins by defining a problem. When there is a problem, there is a desire to find a solution. A program manager will consult experts in different disciplines that are related to the problem. The expert consultants will brainstorm possible solutions and present their conclusions to a core group of programming experts under the guidance of a project manager. The project manager is responsible to create a functional specification for the features of the product and each proposed solution is evaluated based on the following factors:

    -the feasibility of solving problems based on computer science
    -resource constraints such as manpower, money, time
    -review of competitors
    -study existing market competition, determine how to differentiate the new product,if necessary hire an outside company to do market research to determine what specifications of a new product will appeal to public demand
    -make sure the new product aligns with the overall strategy of the company.

    The solution that best corresponds to the above factors is chosen to produce a new product. Then, the expert consultants concentrate their efforts to make it operational.
    1- The first step after the determination is to define the functional specification for all features of the solution. The team comes up with a “high level” design of the solution. The program manager or team leader creates a plan how each particular feature of the solution will work.

    In other words, the OOPS process begins with intelligent people who define a problem and use their rational powers to find a solution. Right from the beginning of the creation or development, there is guided intelligence without any trace of accident, hazard or random combinations. Each step is guided by intelligent decision making of a team of experts.

    In a typical software program there may be from 3000 or more functions or features. Let us examine just one feature of the Internet Explorer (MS). In this program there is the Tool option. When you mouse over it there is a drop down window that shows a menu option called the pop up blocker. If you mouse over or click on it, you will see two options from which to choose. The first option is the turn on or off the pop up blocker. If you turn it on, you can proceed with the second option. This feature permits you to choose a particular website whose pop up you can accept whereas all others are blocked. There are many features like the pop up one in the Internet Explorer (MS).

    Once the functional specifications are created, there will be a review meeting where all the stake holders of the product will examine the function’s specifications. The meeting will be attended by the product manager, software architects, the development manager, the development lead, the test manager and senior developers.

    The program manager’s responsibility is to convince all the stake holders that this feature or functionality should be implemented as part of the final product. This is an example of a very minor feature of a program.

    2- In the next step, the development manager or lead will work with a product architect to create an architecture and design document. These are technical documents. The architect already has an overall product design which is the “big picture.” He knows the product’s “eco-system,” or how everything works together. He understands how the feature will impact the entire system. The architect updates the architect’s document or creates one. Once this is completed, the software development or lead will create the design of that particular feature.

    Now the architecture document (or specification) and the design document are both ready for review.

    3- A meeting of the stake holders will be called to make a review of the design and architecture. It will go on until everyone is convinced. If necessary #1 and #2 can be repeated again for other features that integrate with the one in question. After everything is done and everyone is satisfied intellectually that the feature or features are ready for the next step, the implementation phase begins.

    4- In the implementation phase or stage, the developers take the design document and start coding using computer language. Once the coding is completed , there is a code review of the implementation which is a very rigorous and tedious process. Even though this system of checks and balances is so thorough, any software consultant will admit that there has never been a new system that has been launched without “bugs.” In fact, there has never been a “bug free” software. Every man-made program is only near perfect. Software companies continually upgrade their programs to eliminate defects. But, the upgrades often create new defects and unforeseen issues.

    After the code review is completed, the test phase begins. The test or quality control engineers will perform many different types of testing such as functional, integration, performance, stability and reliability. These are called high level categories. If the tests certify that the feature is ready for launch, then it goes to the next phase. What we have detailed is the process that is followed for only one feature. There can be a minimum of 3000 features in a typical program.

    5- Once all the features are completed, they are “bundled” into the “build” which means the features are grouped together to form a product. DVDs are created of the “build” and given to manufacturers who will label or brand the product with a catchy name and “obfuscate” or confuse the arrangement of the internal structure of the binary files so that the other software pirates cannot do reverse engineering of the programs. When this step is completed, the advertisement, business deals, marketing and launch date are organized to go public with the product.

    After every launch of a new product, there is a post-mortem evaluation of what went well and what did not. This evaluation examines the resource, service and process gaps.

    In conclusion, OOPS is a structured approach to solving a problem by creating a software program. It has many checks and balances in place to insure that the program functions exactly the way the end user would like it to perform. At every step of the process, intelligent persons are required to advance it. Nothing is left to hazard or random combinations and permutations. In other words, the whole process from start to finish is intelligence driven by highly educated persons whose conscious intervention keeps the process moving coherently and according to a design plan.

    Creation of a system that orders matter with function and design requires intelligence and guidance at every step. It is not a random process that happens haphazardly without the intervention and guidance of intelligent persons. Anyone who has engaged in a creation and development project knows irrefutably that chance, random permutations and
    combinations would never result in a finished product that satisfies the end user and functions in a predictable way.

    However, when educated persons speak about the creation of the universe, they develop a selective amnesia and make claims that the universe developed without the intervention of s supreme intelligent being. Their own experience in life contradicts such a conclusion.

    Man is made in the image of God. He is a secondary creator. God creates the primary elements and man can rearrange them to create functional objects. Both types of creation, primary and secondary, require an intelligent being to produce a functionally designed object that works predictably.

    Published on July 2, 2010 · Filed under: , God;
    No Comments

Leave a Reply

You must be logged in to post a comment.