Software engineering is the process of systematic application of different engineering approaches to develop software. The engineering approach applied in software is equivalent to the approach taken across all other engineering disciplines. Engineering approaches in software include user requirement identification, design of software, software development, quality assurance and maintenance.


Dependency Inversion Principle (DIP) is a technique used in Object Oriented Programing paradigm. The pattern was surfaced by Robert Martin (Uncle Bob) around 1994. Dependency Inversion is one of the five principles in SOLID. Before digging into DIP, it is good to understand what are Dependency Injection (DI) and Inversion…


Software development is still a human art. One or two developers cannot develop a sizable software. A successful significant software development needs properly working teams. Therefore in a product development company, the team organisation is one of the decisive factors.

Teams are responsible for creating outcomes (deliveries). At the same…

Lahiru Karunatilake


Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store