Consciência de software (software awareness) tornou-se um requisito importante na construção de sistemas com capacidade de autoadaptação. Para que aplicações de software possam melhor se adaptar a mudanças nos diversos ambientes em que operam, ter consciência (no sentido de perceber e entender esses ambientes) é fundamental. Nosso trabalho propõe a organização de um catálogo para o requisito de consciência de software, com mecanismos para instanciação e uso do conhecimento nele armazenado na modelagem e implementação de software para problemas onde a autoadaptação, e por consequência consciência, sejam requisitos chave.