Similarly to mechanical engineers who design mechanical system and electrical engineers who design electrical system, software engineer design software system. However, software differ in important ways from the types of artifacts produced by other types of engineer: