Software design involves translating a set of task requirements into a
structured description of a computer program that will perform the ta
sk. A software designer can use design schema, collaborative design kn
owledge, or can reuse design artifacts, Very little has been done to i
nclude reuse of design artifacts in the software development life cycl
e. despite tremendous promises of reuse. As a result, this technique h
as not seen widespread use, possibly due to a lack of cognitive unders
tanding of the reuse process. This research explores the role of a spe
cific cognitive aspect, opportunism in demand-side software reuse. We
propose a cognitive model based on opportunism that describes the soft
ware design process with reuse. Protocol analysis verifies that the so
ftware design with reuse is indeed opportunistic and reveals that some
software designers employ certain tasks of the reuse process frequent
ly. Based on these findings, we propose a reuse support system that in
corporates blackboard technology and existing reuse library management
system.