In computer systems, a framework is often a layered structure indicating what kind of programs can or should be built and how they would interrelate . Some computer system frameworks also include actual programs, specify programming interfaces, or offer programming tools for using the frameworks.