set of rules and methods that describe the functionality, organization and implementation of computer systems