Object-oriented – What exactly are SDLC and OOP

object-orientedsdlcterminology

I have been asked "What are SDLC and OOP?" many times in job interviews but I am still not sure how to answer this question. I am a web developer for quite some time but I still have problem with explaining OOP and SDLC (System Development Life Cycle) .

Can someone help me to explain what these are to another person?

Best Answer

These would be my "off the top of my head" answers that may be revised a little under some situations:

Systems Development Life Cycle has the following main points:

  • Requirements Gathering - What is it that is needed?
  • Solution Design and Analysis - How will this be done?
  • Implementation - Build it.
  • Testing - Do we build what was needed?
  • Deployment and Maintenance - Release the system into the wild.

Object-oriented programming is the paradigm of programming where everything is an object and has methods for what can be done with an object. For example, if one were to model animals as classes then their actions like walking, swimming, and barking would be methods. There are a few principles commonly found in this paradigm:

  • Abstraction - Modeling the object in software - For example let's take the simple shape of a square. Now this could be represented by the length of a side, Cartesian co-ordinates of 4 vertices, equalities that cover an area in an XY-plane, its area, or its perimeter. Translating any one representation to another is fairly straightforward.
  • Encapsulation - Restricting access to parts of the class,e.g. private methods versus public methods. Hiding the details of an implementation is another part of this.
  • Polymorphism - A variable being of various forms, literally. Example:

There are many examples of Polymorphism in the .NET framework. One of them is the Membership provider. When you call Membership.GetUser or any other method, it calls the default provider, which is defined as a MembershipProvider class. Any derivatives (SqlMembershipProvider or other custom providers) expose the MembershipProvider interface to create a concrete implementation. You can easily switch the underlying data store without having to change any code for the Membership object.

  • Inheritance - Being able to pass along functionality as some classes may relate to each other,e.g. cats and dogs may be subclasses of Mammal.
Related Topic