KNOWLEDGE AT WORK IN SOFTWARE DEVELOPMENT: A COGNITIVE APPROACH FOR SHARING KNOWLEDGE AND CREATE DECISION SUPPORT IN LIFE CYCLE SELECTION