Large software is built from components
On this page 1 headings
An online shopping website is not developed as one giant program all at once. Teams often add features gradually. At the beginning, they may not even know every feature that will be needed later.
Component (module) One manageable part of a big system, such as login, stock management or payment.
Components break complexity into manageable parts. Different teams build different components and integrate them later. You do not need to know how every component works — only what response it gives when asked. Components hide their implementation and provide an interface.
THINK Does the Cart team need to understand every line of code in the Payment team? Why not?
Two examples from the lecture
Inventory management is measuring the amount, location, pricing and mix of products available on Amazon. Inventory gets updated based on current purchasing and seasonal trends, fluctuating customer demand, and logistics and analytics. The homepage is also customised based on each user's shopping and viewing history — so my Amazon homepage can be very different from yours.
A payment gateway is a service that authorizes electronic payments such as online banking, debit cards and cash cards. It acts as a middleman between the bank and the merchant's website or application. When a user wants to pay, the Amazon website sends the encrypted card information to the payment gateway; the gateway confirms the validity of these details with the bank, and the required amount is transferred from the user's account to the Amazon account.
REMEMBER Nobody builds a large system all at once. It is broken into components, called modules, built by different teams and integrated later. Software can be divided into separately addressable components called modules that are integrated to satisfy requirements.
