Recursive methods, hidden implementations, and cohesion and coupling


Legacy is a key rule of protest situated programming. It enables a class to “acquire” (conduct or qualities) of another, more broad class. The individual written work the class needs to choose what ought to be covered up and so forth. When we program, we should characterize as private each technique or field which different classes ought not to have the capacity to get to. The terms attachment and coupling are indistinguishable from OOP. They supplement and clarify promote a portion of the standards we have depicted up until this point.

Q: Discuss and explain recursive methods, hidden implementations, and cohesion and coupling.

Recursive methods:

Recursion in software engineering is where the answer for an issue relies upon answers for littler examples of a similar issue (rather than cycle). The approach can be connected to many sorts of issues, and recursion is one of the focal thoughts of software engineering. Factorial numbers (i.e., n!) defined recursively: factorial (0) = 1

Hidden implementations:

Most people have no idea how images and sound get to their television screen. It is a benefit that implementation hiding exists in that you do not need to worry about the details; instead, you just enjoy the programs. The drawback is that it is virtually impossible for you to fix your own television or even diagnose the problem if one should arise. Similarly, in programming, you can use methods written by others


Cohesion refers to the number and diversity of tasks that a single unit is responsible for. If each unit is responsible for one single logical task, we say it has cohesion. Cohesion applies to classes and methods. We should always aim for high cohesion.


Coupling or interconnection between two or multiple program units. And where highly interconnected program units are dependent on each other and loosely couple are independent to each other. So it is like indication of strength.

Q: How does a programmer determine the methods that should make up a program, bearing in mind the principles of information hiding, cohesion, and coupling?

Data stowing away is one of the fundamental ideas in code structure. A protest needs to give its clients just the basic data for control, without the inner subtle elements. A Secretary utilizing a Laptop just thinks about its screen, console and mouse. Everything else is concealed inside under the cover. She doesn’t think about the internal workings of Laptop, since she doesn’t have to, and on the off chance that she does, she may make a wreck. Thusly parts of the properties and techniques stay covered up to her. The individual written work the class needs to choose what ought to be covered up and so forth. When we program, we should characterize as private each strategy or field which different classes ought not to have the capacity to get to. The idea of attachment shows to what degree a program’s or a part’s different assignments and obligations are identified with each other, i.e. how much a program is centered on taking care of a solitary issue. Union is separated into solid union and feeble attachment. Coupling for the most part portrays the degree to which segments/classes rely upon each other. It is loosened up down into coupling and tight coupling. Free coupling more often than not associates with solid union and the other way around.

Q: What are some examples of programming problems that can be solved recursively.

Recursion calls a function by itself is called as recursion. Any function can call any function and function itself process of calling function continues until an exit condition become true

Example 1:

fibonacci example in c:
printf(“fibonacci(15) = %d\n”, fibonacci(15));

int fibonacci(int n)
if (n <= 1) return(1);
return(fibonacci(n – 1) + fibonacci(n – 2));

sample output:


Example 2:

Addition of n numbers in c


int main(){

int n,sum;

printf(“Enter the value of n: “);

sum = getSum(n);

printf(“Sum of n numbers: %d”,sum);

return 0;

int getSum(n){

static int sum=0;

sum = sum + n;

return sum;

sample output:

Enter the value of n:10

the sum of n numbers 55

Q: Hidden implementations are often said to exist in a black box. What are the advantages and disadvantages to this approach?

A black box, instead of a white box, is an idea in programming which treats a bit of code’s internal filling in as immaterial, as long as the capacity produces unsurprising yield in view of an arrangement of criteria for which input it will receive. You don’t really deliver “black box” or “white box” code, it’s just a reflection for investigation; a state of mind about code. The benefit of a discovery approach, given that you have a strict arrangement of information parameters, is that once the unit is tried, you can be genuinely sure that it will carry on not surprisingly when utilized as a part of other setting also. Be that as it may, as the name suggests, and identified with your inquiry, by not understanding its inward workings (or not thinking about them) you open for the likelihood of “shrouded executions”. At the end of the day, if few out of every odd conceivable case is tried for, at that point the code can do surprising things to your framework.



[1] Chapter 20 OOP principles, English into csharp book retrieved from

[2] Programming, Dorbio Cornell, retrieved from