reusable component | high quality if its designer followed the same steps as the development of complete applications: domain and requirements analysis, design, documentation, testing and inspection, and if a software engineer is available to properly maintain it | more reliable than software not designed to be reused because it is tested in all the systems it is used in, and because it is used in different contexts, exposing any weak points | A piece of software, such as a library, command, framework or application that is reused in a software system | software engineer available to properly maintain it | | | if it is of high quality | component | the design of software systems |