A Knowledge Maturity Model: An Integration Of Problem Framing, Software Design, And Cognitive Engineering