Depending on the context, either:
- A large-scale system (especially a distributed one), with zillions of requirements/user stories, and very complicated implementations (tens of millions of lines of code or more).
- A large ShrinkWrapApplication?, where tons of functionality is rolled up into one executable/binary image.
Many expression the opinion that
LargeApplications shouldn't be written; usually that statement refers to the second meaning of the term. (A huge monolithic application ought to be
ReFactored into constituent parts, which might be re-used elsewhere, and tested independently). Which is generally a good idea. (This observation refers to how an application/system is packaged/developed at the
source level; not how it's deployed. In many cases, it's more convenient to deliver to end-users one thing containing all the requried functionality--not the constituent modules. One doesn't go down to the auto dealership and buy an engine, a transmission, four tires, fenders, floormats, and a bag of bolts--one buys a
car, competely assembled and ready to drive off the lot.)
The first definition cannot be avoided--some systems are inherently large and complex (airline reservation systems are a canonical example); their development is a continuing challenge, both from a technical and management perspective.