Cloud computing makes it possible to use thousands of commodity computers to carry out large scale tasks. However, to explore the full power of this combined computational capacity, there is need for supporting mechanisms to write programs that are capable of utilising the full potential. Such programmes should distribute the subtasks across the different computers and use every opportunity to engage each computer in parallel. Map Reduce provides a means to engage many computers in parallel...
Read More
The distinction between functional and procedural programs remains a confusing concept. In fact, many programmers use the terms function and procedure interchangeably. For this reason am going use the term pure function when i want to refer to a functional program. A procedure in a program is a named block of code that can use several times by name to carry out a task. When a function or procedure is “called” to do a task. The...
Read More
Programming is a problem solving activity. When you write a program, you are actually writing an instruction for a computer to solve some problem. Overtime, there are several strategies that have been developed and applied to solve problems. Problem solving is the processing of transforming problem from initial state to a desired state. Some techniques are more effective while others are less. Here I outline some of the common strategies Trial and Error – This is...
Read More
As I was talking to a former a student, he asked me what kind of advice I can give him to advance his software engineering career. I quickly told him, do not compete with anybody set your standards! Many times, students tend to compare themselves with their friends in terms of what they are able to achieve including scores. Little do they factor in their own desires and what exactly they want to do with their...
Read More
In the article about problem solving in software engineering, i highlighted the major problem solving steps as:- Define the problem Analyse the problem List/Identify alternative solutions Select the best solution List instructions that lead to the solution using the selected solution Evaluate the solution In this post, i will focus on how to generate alternative solutions.The first solution you are arrive at may not be best of all possible options. It is important that we generate...
Read More
“It is not only the violin that shapes the violinist, we are all shaped by the tools we train ourselves to use, and in this respect programming languages have a devious influence: they shape our thinking habits.” ― Edsger W. Dijkstra “Program testing can be used to show the presence of bugs, but never to show their absence!” ― Edsger W. Dijkstra
Read More
This article looks at how to turn an existing software that is not service oriented into a service that can be used in a service oriented architecture. We need to know exactly- what is a service? We are assuming the resulting service will provide identical functionality. So the only difference between a software service and other software components is at the interfaces. The interfaces define how the service can be used individually or as part of...
Read More
The goal of problem analysis is to gain better understanding of the problem being solved before development begins. It is import to know why the problem is occurring, when and how often. Try to understand the first cause of the problem. Root cause analysis is a systematic way of uncovering the root, or underlying first cause of an identified problem or a symptom to the problem. Tools such as fishbone diagram or pareto chart can help...
Read More
“Until the problem is well defined and articulated it is impossible to arrive at a solution” The first step to solving any software engineering problem is to define the problem. Articulate the problem and eliminate all unnecessary terminologies and jargons. Start by reading the problem completely at least twice. Read and establish the context of each key word. If time allows, research about the problem. Ensure that there is agreement on the problem to be solved....
Read More
Programming is the process of planning a sequence of steps called instructions for the computer to follow. The fact that you are reading this post you already know that computers lack common sense and cannot make any judgment. So the computer will do as instructed by the programmer through the computer program. Programming is more about problem solving than coding. A problem is the difference between things as perceived and things as desired. A solution will...
Read More
0