👉 The process of breaking down a software program or code into its component parts, usually in order to understand and modify it. This is often used in the context of software development, where the goal is to create new programs from existing ones by changing only part of their structure without altering any of their functionality.