A reusable set of components integrated in a convenient package that serves a specific set of goals
An application for compiling java code
A method for documenting data flow through an application